[used-before-assignment] False negative for name defined inside loop that never runs
hydrargyrum opened this issue · 0 comments
hydrargyrum commented
Bug description
"""doc"""
def f():
"""doc"""
for i in []:
if i:
fail1 = 42
print(fail1) # bug detected
for i in []:
fail2 = 42
print(fail2) # bug not detected
Configuration
No response
Command used
pylint bad.py
Pylint output
************* Module bad
bad.py:9:10: E0606: Possibly using variable 'fail1' before assignment (possibly-used-before-assignment)
------------------------------------------------------------------
Your code has been rated at 3.75/10 (previous run: 3.75/10, +0.00)
Expected behavior
line 13 should also have possibly-used-before-assignment
for fail2
Pylint version
pylint 3.2.0
astroid 3.2.1
Python 3.11.9
OS / Environment
No response
Additional dependencies
No response