]> granicus.if.org Git - python/commitdiff
The object-being sliced in an assignment to a slice is referenced, not
authorJeremy Hylton <jeremy@alum.mit.edu>
Fri, 14 Sep 2001 22:45:57 +0000 (22:45 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Fri, 14 Sep 2001 22:45:57 +0000 (22:45 +0000)
bound.

When a Yield() node is visited, assign to the generator attribute of
the scope, not the visitor.

Lib/compiler/symbols.py
Tools/compiler/compiler/symbols.py

index 946a8b1a3a6a6773475e6b4402c4407191634525..bf9a7243d444e139ce1cac92b37a6dc7d93c7920 100644 (file)
@@ -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):
index 946a8b1a3a6a6773475e6b4402c4407191634525..bf9a7243d444e139ce1cac92b37a6dc7d93c7920 100644 (file)
@@ -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):