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: ...@@ -608,7 +608,7 @@ class CodeGenerator:
self.visit(node.list) self.visit(node.list)
self.emit('GET_ITER') self.emit('GET_ITER')
self.nextBlock(start) self.nextBlock(start)
self.emit('SET_LINENO', node.lineno) self.set_lineno(node, force=True)
self.emit('FOR_ITER', anchor) self.emit('FOR_ITER', anchor)
self.nextBlock() self.nextBlock()
self.visit(node.assign) self.visit(node.assign)
...@@ -1117,15 +1117,9 @@ class CodeGenerator: ...@@ -1117,15 +1117,9 @@ class CodeGenerator:
self.emit('BUILD_SLICE', len(node.nodes)) self.emit('BUILD_SLICE', len(node.nodes))
def visitDict(self, node): def visitDict(self, node):
lineno = getattr(node, 'lineno', None) self.set_lineno(node)
if lineno:
self.emit('SET_LINENO', lineno)
self.emit('BUILD_MAP', 0) self.emit('BUILD_MAP', 0)
for k, v in node.items: 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.emit('DUP_TOP')
self.visit(k) self.visit(k)
self.visit(v) 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