From: Jeremy Hylton Date: Thu, 12 Apr 2001 07:06:25 +0000 (+0000) Subject: Only treat an AugAssign as def if its the target is a Name. X-Git-Tag: v2.1c1~66 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5c9aad6043724148f2159191cf14d751c6ec44d2;p=python Only treat an AugAssign as def if its the target is a Name. Fixes last bug found with test_scope.py. --- diff --git a/Lib/compiler/symbols.py b/Lib/compiler/symbols.py index cde937b753..6d834e0c1d 100644 --- a/Lib/compiler/symbols.py +++ b/Lib/compiler/symbols.py @@ -299,9 +299,11 @@ class SymbolVisitor: scope.add_def(node.name) def visitAugAssign(self, node, scope): - # basically, the node is referenced and defined by the same expr + # If the LHS is a name, then this counts as assignment. + # Otherwise, it's just use. self.visit(node.node, scope) - self.visit(node.node, scope, 1) + if isinstance(node.node, ast.Name): + self.visit(node.node, scope, 1) # XXX worry about this self.visit(node.expr, scope) def visitAssign(self, node, scope): diff --git a/Tools/compiler/compiler/symbols.py b/Tools/compiler/compiler/symbols.py index cde937b753..6d834e0c1d 100644 --- a/Tools/compiler/compiler/symbols.py +++ b/Tools/compiler/compiler/symbols.py @@ -299,9 +299,11 @@ class SymbolVisitor: scope.add_def(node.name) def visitAugAssign(self, node, scope): - # basically, the node is referenced and defined by the same expr + # If the LHS is a name, then this counts as assignment. + # Otherwise, it's just use. self.visit(node.node, scope) - self.visit(node.node, scope, 1) + if isinstance(node.node, ast.Name): + self.visit(node.node, scope, 1) # XXX worry about this self.visit(node.expr, scope) def visitAssign(self, node, scope):