fix: warn unused ignores when not all specified error codes are used #11178
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.
Description
Fixes #11157
For
--warn-unused-ignored
, currentlyErrors.used_ignored_lines
keeps track of only the line numbers without error codes when errors appeares on the line with# type: ignore
or# type: ignore[...]
.This PR changes
used_ignored_lines
so that it also keeps track of error codes and that information used ingenerate_unused_ignore_errors
to show an error message likeunused "type: ignore[attr-defined]" comment
.I'm very new to mypy code base and one thing I'm not so confident about my change is that I might be using
MISC
error codes in an unintended way.Please let me know if this approach is correct and I appreciate any feedback.
Thank for the review!
Test Plan
There are some tests using
--warn-unused-ignores
, but this PR didn't change the result of those tests. So, I added a few test namedtestErrorCodeWarnUnusedIgnores
intest-data/unit/check-errorcodes.test
which have different behavior between this PR and current master.