diff options
Diffstat (limited to 'checkers/variables.py')
-rw-r--r-- | checkers/variables.py | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/checkers/variables.py b/checkers/variables.py index 02ed3df..2517b0c 100644 --- a/checkers/variables.py +++ b/checkers/variables.py @@ -545,13 +545,18 @@ builtins. Remember that you should avoid to define new builtins when possible.' @check_messages('unbalanced-tuple-unpacking') def visit_assign(self, node): """ Check unbalanced tuple unpacking for assignments. """ - if not isinstance(node.value, astroid.Tuple): + try: + infered = next(node.value.infer()) + except astroid.InferenceError: return - if not isinstance(node.targets[0], astroid.Tuple): + + if not isinstance(infered, (astroid.Tuple, astroid.List)): + return + if not isinstance(node.targets[0], (astroid.Tuple, astroid.List)): return targets = node.targets[0].itered() - values = node.value.itered() + values = infered.itered() if any(not isinstance(target_node, astroid.AssName) for target_node in targets): |