From 8ade2da1f057ca6fd9743e8f130f4d67acbf39b6 Mon Sep 17 00:00:00 2001 From: Claudiu Popa Date: Tue, 3 Mar 2020 08:19:00 +0100 Subject: [PATCH] Fix a false positive of ``self-assigning-variable`` on tuple unpacking. Close #3433 --- ChangeLog | 4 ++++ pylint/checkers/base.py | 3 +++ tests/functional/s/self_assigning_variable.py | 1 + 3 files changed, 8 insertions(+) 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: