mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Replace all but one explicit emit('SET_LINENO') with call to set_lineno().
Remove broken code in visitDict(). I assume the code was trying to add set lineno events for each line of a dict constructor, but I think it was using the wrong object (node instead of k or v).
This commit is contained in:
parent
cf94ee817c
commit
1856541142
1 changed files with 2 additions and 8 deletions
|
@ -608,7 +608,7 @@ class CodeGenerator:
|
|||
self.visit(node.list)
|
||||
self.emit('GET_ITER')
|
||||
self.nextBlock(start)
|
||||
self.emit('SET_LINENO', node.lineno)
|
||||
self.set_lineno(node, force=True)
|
||||
self.emit('FOR_ITER', anchor)
|
||||
self.nextBlock()
|
||||
self.visit(node.assign)
|
||||
|
@ -1117,15 +1117,9 @@ class CodeGenerator:
|
|||
self.emit('BUILD_SLICE', len(node.nodes))
|
||||
|
||||
def visitDict(self, node):
|
||||
lineno = getattr(node, 'lineno', None)
|
||||
if lineno:
|
||||
self.emit('SET_LINENO', lineno)
|
||||
self.set_lineno(node)
|
||||
self.emit('BUILD_MAP', 0)
|
||||
for k, v in node.items:
|
||||
lineno2 = getattr(node, 'lineno', None)
|
||||
if lineno2 is not None and lineno != lineno2:
|
||||
self.emit('SET_LINENO', lineno2)
|
||||
lineno = lineno2
|
||||
self.emit('DUP_TOP')
|
||||
self.visit(k)
|
||||
self.visit(v)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue