Implement late-binding loop check#265
Merged
Merged
Conversation
ea64354 to
249dc66
Compare
249dc66 to
69df590
Compare
i.e. don't complain about the default value of arguments, since that's an explicit solution to late binding!
Member
Author
|
Ping @cooperlees? |
cooperlees
approved these changes
Jul 1, 2022
Collaborator
cooperlees
left a comment
There was a problem hiding this comment.
Sorry about the delay. Been busy.
Makes sense to me. Includes Carl's suggestion + well documented + tested
- Plus links to a great doc for people to read to fully understand (like I did)
I feel this is going to find a lot of cases doing this. So lets release this on it's own and wreak havoc.
Member
Author
|
No worries, life happens! Bring on the havoc, we'll see if people are complaining about false-alarms or just alarms they don't like 😁 |
Closed
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.
Closes #263.
... for _ in ...is OK in a function, even if_is also a loop variableself.count += 1does not makeselfa loop variable. I'm generally fine ruling that detecting bugs around attributes is out of scope, but the false-alarms need to be fixedI've run this over our codebase at work (the motivating example 😅), and there are only a few false-positives where the function is used and then discarded within the loop iteration that defines it. These cases are also infeasible to reliably detect, so I'm comfortable leaving them to be handled by either manual
var=varcapture or# noqacomments.