]> granicus.if.org Git - python/commitdiff
Replace all but one explicit emit('SET_LINENO') with call to set_lineno().
authorJeremy Hylton <jeremy@alum.mit.edu>
Tue, 31 Dec 2002 18:26:17 +0000 (18:26 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Tue, 31 Dec 2002 18:26:17 +0000 (18:26 +0000)
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).

Lib/compiler/pycodegen.py

index a3518d292cdf889842aa5c2c23850e1cc55c4f1e..a6face0a796f4c23392ab90dacb16825bc4b7716 100644 (file)
@@ -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)