Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 652a224

Browse files
committed
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.
1 parent 9ee78f7 commit 652a224

2 files changed

Lines changed: 4 additions & 4 deletions

File tree

Lib/compiler/symbols.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ def visitSubscript(self, node, scope, assign=0):
321321
self.visit(n, scope, 0)
322322

323323
def visitSlice(self, node, scope, assign=0):
324-
self.visit(node.expr, scope, assign)
324+
self.visit(node.expr, scope, 0)
325325
if node.lower:
326326
self.visit(node.lower, scope, 0)
327327
if node.upper:
@@ -353,7 +353,7 @@ def visitIf(self, node, scope):
353353
# a yield statement signals a generator
354354

355355
def visitYield(self, node, scope):
356-
self.generator = 1
356+
scope.generator = 1
357357
self.visit(node.value, scope)
358358

359359
def sort(l):

Tools/compiler/compiler/symbols.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -321,7 +321,7 @@ def visitSubscript(self, node, scope, assign=0):
321321
self.visit(n, scope, 0)
322322

323323
def visitSlice(self, node, scope, assign=0):
324-
self.visit(node.expr, scope, assign)
324+
self.visit(node.expr, scope, 0)
325325
if node.lower:
326326
self.visit(node.lower, scope, 0)
327327
if node.upper:
@@ -353,7 +353,7 @@ def visitIf(self, node, scope):
353353
# a yield statement signals a generator
354354

355355
def visitYield(self, node, scope):
356-
self.generator = 1
356+
scope.generator = 1
357357
self.visit(node.value, scope)
358358

359359
def sort(l):

0 commit comments

Comments
 (0)