Commit 652a2243 authored by Jeremy Hylton's avatar Jeremy Hylton

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.
parent 9ee78f7d
...@@ -321,7 +321,7 @@ class SymbolVisitor: ...@@ -321,7 +321,7 @@ class SymbolVisitor:
self.visit(n, scope, 0) self.visit(n, scope, 0)
def visitSlice(self, node, scope, assign=0): def visitSlice(self, node, scope, assign=0):
self.visit(node.expr, scope, assign) self.visit(node.expr, scope, 0)
if node.lower: if node.lower:
self.visit(node.lower, scope, 0) self.visit(node.lower, scope, 0)
if node.upper: if node.upper:
...@@ -353,7 +353,7 @@ class SymbolVisitor: ...@@ -353,7 +353,7 @@ class SymbolVisitor:
# a yield statement signals a generator # a yield statement signals a generator
def visitYield(self, node, scope): def visitYield(self, node, scope):
self.generator = 1 scope.generator = 1
self.visit(node.value, scope) self.visit(node.value, scope)
def sort(l): def sort(l):
......
...@@ -321,7 +321,7 @@ class SymbolVisitor: ...@@ -321,7 +321,7 @@ class SymbolVisitor:
self.visit(n, scope, 0) self.visit(n, scope, 0)
def visitSlice(self, node, scope, assign=0): def visitSlice(self, node, scope, assign=0):
self.visit(node.expr, scope, assign) self.visit(node.expr, scope, 0)
if node.lower: if node.lower:
self.visit(node.lower, scope, 0) self.visit(node.lower, scope, 0)
if node.upper: if node.upper:
...@@ -353,7 +353,7 @@ class SymbolVisitor: ...@@ -353,7 +353,7 @@ class SymbolVisitor:
# a yield statement signals a generator # a yield statement signals a generator
def visitYield(self, node, scope): def visitYield(self, node, scope):
self.generator = 1 scope.generator = 1
self.visit(node.value, scope) self.visit(node.value, scope)
def sort(l): def sort(l):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment