From: Jeremy Hylton Date: Fri, 14 Sep 2001 22:45:57 +0000 (+0000) Subject: The object-being sliced in an assignment to a slice is referenced, not X-Git-Tag: v2.2.1c1~1795 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=652a22437a973dddef7f82d0cc8271d60da7de36;p=python The object-being sliced in an assignment to a slice is referenced, not bound. When a Yield() node is visited, assign to the generator attribute of the scope, not the visitor. --- diff --git a/Lib/compiler/symbols.py b/Lib/compiler/symbols.py index 946a8b1a3a..bf9a7243d4 100644 --- a/Lib/compiler/symbols.py +++ b/Lib/compiler/symbols.py @@ -321,7 +321,7 @@ class SymbolVisitor: self.visit(n, scope, 0) def visitSlice(self, node, scope, assign=0): - self.visit(node.expr, scope, assign) + self.visit(node.expr, scope, 0) if node.lower: self.visit(node.lower, scope, 0) if node.upper: @@ -353,7 +353,7 @@ class SymbolVisitor: # a yield statement signals a generator def visitYield(self, node, scope): - self.generator = 1 + scope.generator = 1 self.visit(node.value, scope) def sort(l): diff --git a/Tools/compiler/compiler/symbols.py b/Tools/compiler/compiler/symbols.py index 946a8b1a3a..bf9a7243d4 100644 --- a/Tools/compiler/compiler/symbols.py +++ b/Tools/compiler/compiler/symbols.py @@ -321,7 +321,7 @@ class SymbolVisitor: self.visit(n, scope, 0) def visitSlice(self, node, scope, assign=0): - self.visit(node.expr, scope, assign) + self.visit(node.expr, scope, 0) if node.lower: self.visit(node.lower, scope, 0) if node.upper: @@ -353,7 +353,7 @@ class SymbolVisitor: # a yield statement signals a generator def visitYield(self, node, scope): - self.generator = 1 + scope.generator = 1 self.visit(node.value, scope) def sort(l):