Commit 18565411 authored by Jeremy Hylton's avatar Jeremy Hylton

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).
parent cf94ee81
......@@ -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)
......
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