From 652a22437a973dddef7f82d0cc8271d60da7de36 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Fri, 14 Sep 2001 22:45:57 +0000 Subject: 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. --- Lib/compiler/symbols.py | 4 ++-- Tools/compiler/compiler/symbols.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Lib/compiler/symbols.py b/Lib/compiler/symbols.py index 946a8b1..bf9a724 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 946a8b1..bf9a724 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): -- cgit v0.12