diff options
author | Zen Lee <53538590+zenlyj@users.noreply.github.com> | 2023-05-15 20:35:33 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-15 08:35:33 -0400 |
commit | 2c9d58563aa8268cdcb2ffa3e72d0776b3cf01ee (patch) | |
tree | 25bccdd9b0b63ef98ac7c259a057a406e35c9aed | |
parent | 4e48d46b7239c2d7a70a05929fd49595d45cc29f (diff) | |
download | pylint-git-2c9d58563aa8268cdcb2ffa3e72d0776b3cf01ee.tar.gz |
Regression fix for `unused-variable` false negative (#8684)
-rw-r--r-- | pylint/checkers/variables.py | 6 | ||||
-rw-r--r-- | tests/functional/u/unused/unused_variable.py | 17 | ||||
-rw-r--r-- | tests/functional/u/unused/unused_variable.txt | 1 |
3 files changed, 24 insertions, 0 deletions
diff --git a/pylint/checkers/variables.py b/pylint/checkers/variables.py index 2504c0c84..2bd553fa1 100644 --- a/pylint/checkers/variables.py +++ b/pylint/checkers/variables.py @@ -950,6 +950,12 @@ scope_type : {self._atomic.scope_type} return True if isinstance(node, (nodes.ClassDef, nodes.FunctionDef)) and node.name == name: return True + if ( + isinstance(node, nodes.ExceptHandler) + and node.name + and node.name.name == name + ): + return True return False @staticmethod diff --git a/tests/functional/u/unused/unused_variable.py b/tests/functional/u/unused/unused_variable.py index 9dabe5b59..f15ae7557 100644 --- a/tests/functional/u/unused/unused_variable.py +++ b/tests/functional/u/unused/unused_variable.py @@ -199,3 +199,20 @@ def func6(): nonlocal_writer() assert a == 9, a + +def test_regression_8595(): + # pylint: disable=broad-exception-caught + import logging + def compute(): + pass + try: + compute() + error = False + except Exception as e: + logging.error(e) + error = True + if error: + try: + compute() + except Exception as e: # [unused-variable] + pass diff --git a/tests/functional/u/unused/unused_variable.txt b/tests/functional/u/unused/unused_variable.txt index 19983d536..609ce9fef 100644 --- a/tests/functional/u/unused/unused_variable.txt +++ b/tests/functional/u/unused/unused_variable.txt @@ -26,3 +26,4 @@ unused-variable:150:4:154:26:func4:Unused variable 'error':UNDEFINED redefined-outer-name:153:8:154:26:func4:Redefining name 'error' from outer scope (line 150):UNDEFINED unused-variable:161:4:162:12:main:Unused variable 'e':UNDEFINED undefined-loop-variable:168:10:168:11:main:Using possibly undefined loop variable 'e':UNDEFINED +unused-variable:217:8:218:16:test_regression_8595:Unused variable 'e':UNDEFINED |