From 18565411429053a68ee318fc9e59370e8bd7b7b8 Mon Sep 17 00:00:00 2001 From: Jeremy Hylton Date: Tue, 31 Dec 2002 18:26:17 +0000 Subject: [PATCH] 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). --- Lib/compiler/pycodegen.py | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/Lib/compiler/pycodegen.py b/Lib/compiler/pycodegen.py index a3518d292c..a6face0a79 100644 --- a/Lib/compiler/pycodegen.py +++ b/Lib/compiler/pycodegen.py @@ -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) -- 2.40.0