Add unused-ignore-comment rule
#15084
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements a new Red Knot rule that reports unused
type: ignoreorknot: ignore[code]comments.The tricky part about this rule is that
unused-ignore-commentcan itself be suppressed by using an ignore comment.Ruff only supports suppressing
unused-noqawarnings with a file-levelnoqacomment. Unfortunately, wedon't support file-level ignore comments other than
type: ignorebut we also want to warn about unusedfile-level
type: ignorecomments.That's why this PR proposes that we allow suppressing
unused-ignore-commentbut only by usingknot: ignore[unused-ignore-comment].Open questions
Ruff calls the rule
unused-noqa, but I'm not sure ifunnecessaryoruselesswould be more fitting because you can't use an ignore code. But an ignore code can be useless (or unnecessary).Test Plan
Added mdtests