Skip to content

Commit

Permalink
[Backport maintenance/3.2.x] Fix a crash in undefined-loop-variable
Browse files Browse the repository at this point in the history
… with `enumerate()` (#9877)

* Fix a crash in `undefined-loop-variable` with `enumerate()` (#9876)

(cherry picked from commit cb6db06)

Co-authored-by: Jacob Walls <jacobtylerwalls@gmail.com>
  • Loading branch information
github-actions[bot] and jacobtylerwalls committed Aug 16, 2024
1 parent f1925f4 commit b4c2951
Show file tree
Hide file tree
Showing 4 changed files with 13 additions and 1 deletion.
3 changes: 3 additions & 0 deletions doc/whatsnew/fragments/9875.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
Fix a crash in ``undefined-loop-variable`` when providing the ``iterable`` argument to ``enumerate()``.

Closes #9875
2 changes: 1 addition & 1 deletion pylint/checkers/variables.py
Original file line number Diff line number Diff line change
Expand Up @@ -2683,7 +2683,7 @@ def _loopvar_name(self, node: astroid.Name) -> None:
likely_call = assign.iter
if isinstance(assign.iter, nodes.IfExp):
likely_call = assign.iter.body
if isinstance(likely_call, nodes.Call):
if isinstance(likely_call, nodes.Call) and likely_call.args:
inferred = next(likely_call.args[0].infer())
except astroid.InferenceError:
self.add_message("undefined-loop-variable", args=node.name, node=node)
Expand Down
7 changes: 7 additions & 0 deletions tests/functional/r/regression_02/regression_9875_enumerate.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
"""https://github.com/pylint-dev/pylint/issues/9875"""
# value = 0
for idx, value in enumerate(iterable=[1, 2, 3]):
print(f'{idx=} {value=}')
# +1: [undefined-loop-variable, undefined-loop-variable]
for idx, value in enumerate(iterable=[value-1, value-2*1]):
print(f'{idx=} {value=}')
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
undefined-loop-variable:6:38:6:43::Using possibly undefined loop variable 'value':UNDEFINED
undefined-loop-variable:6:47:6:52::Using possibly undefined loop variable 'value':UNDEFINED

0 comments on commit b4c2951

Please sign in to comment.