diff --git a/ChangeLog b/ChangeLog index 873c3487d9..52c2580b48 100644 --- a/ChangeLog +++ b/ChangeLog @@ -11,6 +11,10 @@ Release date: TBA Close #3373 +* Fix a false positive of ``self-assigning-variable`` on tuple unpacking. + + Close #3433 + * Fix a false positive for ``undefined-variable`` when ``__class__`` is used Close #3090 diff --git a/pylint/checkers/base.py b/pylint/checkers/base.py index 11c181be8d..eae308e201 100644 --- a/pylint/checkers/base.py +++ b/pylint/checkers/base.py @@ -1561,6 +1561,9 @@ def _check_self_assigning_variable(self, node): # A complex assignment, so bail out early. return targets = targets[0].elts + if len(targets) == 1: + # Unpacking a variable into the same name. + return if isinstance(node.value, astroid.Name): if len(targets) != 1: diff --git a/tests/functional/s/self_assigning_variable.py b/tests/functional/s/self_assigning_variable.py index 6df2647e6b..c9f2781db9 100644 --- a/tests/functional/s/self_assigning_variable.py +++ b/tests/functional/s/self_assigning_variable.py @@ -21,6 +21,7 @@ class Class: FOO = 1 +FOO, = [FOO] class RedefinedModuleLevel: