Emit deprecated tag for deprecated LSP diagnostics#2887
Emit deprecated tag for deprecated LSP diagnostics#2887mvanhorn wants to merge 2 commits intofacebook:mainfrom
Conversation
When the error kind is Deprecated, emit DiagnosticTag::DEPRECATED on the LSP diagnostic. Editors that support this tag render a strikethrough over the deprecated name. Fixes facebook#2885
|
Hi @mvanhorn! Thank you for your pull request and welcome to our community. Action RequiredIn order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you. ProcessIn order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA. Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks! |
|
This should be tested somewhere. Did you verify the diagnostic ranges are correct for all the locations where this error is emitted? |
Verifies that diagnostics for deprecated functions include DiagnosticTag::DEPRECATED (tag value 2), which enables strikethrough rendering in editors that support LSP diagnostic tags.
|
Added an LSP interaction test in 6a21eb5 that opens a file with a On range correctness: the tag is applied in |
|
To clarify: I'm saying we should emit the Deprecated error at the position of the call expression's subject, not the whole expression. That way, if we have something like |
|
According to mypy_primer, this change doesn't affect type check results on a corpus of open source code. ✅ |
|
Looking at the call paths, Is there a specific case where you're seeing the range cover the arguments? |
|
Understood, I'll try to get this merged. thanks |
|
@yangdanny97 has imported this pull request. If you are a Meta employee, you can view this in D98246395. |
kinto0
left a comment
There was a problem hiding this comment.
Review automatically exported from Phabricator review in Meta.
|
@yangdanny97 merged this pull request in 8c5b8f3. |
|
Thanks for pulling this in, @yangdanny97. Appreciate the back-and-forth on the diagnostic ranges. |
Emits DiagnosticTag::DEPRECATED on LSP diagnostics for deprecated error codes.
Why this matters
Editors that support LSP diagnostic tags render strikethrough on deprecated names. Pyrefly was missing this tag. Now deprecated functions get the visual cue.
Changes
tags: Noneto emitDiagnosticTag::DEPRECATEDwhenerror_kind() == ErrorKind::Deprecated.Testing
The change is a 6-line addition to a single file. ErrorKind derives PartialEq so the comparison is sound.
Fixes #2885
This contribution was developed with AI assistance (Claude Code).