[pylint] Fix false positives in PLR1733 and PLR1736#25233
Draft
ntBre wants to merge 1 commit into
Draft
Conversation
Summary -- This PR fixes #25182, as well as some related issues I didn't notice there. In short, both of these rules flag issues like: ```py FRUITS = {"apple": 1, "orange": 10, "berry": 22} for fruit_name, fruit_count in FRUITS.items(): print(FRUITS[fruit_name]) ``` where the `FRUITS[fruit_name]` can be replaced by `fruit_count` from the loop. However, both rules were missing some ways of shadowing these variables, so I added that to `SequenceIndexVisitor`. Initially I tried comparing `Binding`s instead of the `str` names currently stored on the visitor before realizing that the rules were tracking this information via the `is_modified` field, which also handles other modifications. I'm still not sure I'm entirely happy with this, but I wanted to check the ecosystem report and checkpoint the progress so far. Test Plan -- New mdtests based on the issue
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 fixes #25182, as well as some related issues I didn't notice there. In short, both of these
rules flag issues like:
where the
FRUITS[fruit_name]can be replaced byfruit_countfrom the loop. However, both ruleswere missing some ways of shadowing these variables, so I added more tracking to
SequenceIndexVisitor.Initially I tried comparing
Bindings instead of thestrnames currently stored on the visitorbefore realizing that the rules were tracking this information via the
is_modifiedfield, whichalso handles other modifications. I'm still not sure I'm entirely happy with this, but I wanted to
check the ecosystem report and checkpoint the progress so far.
Test Plan
New mdtests based on the issue