diff --git a/uncompyle6/main.py b/uncompyle6/main.py index 8f8f6d59..3d5533d3 100644 --- a/uncompyle6/main.py +++ b/uncompyle6/main.py @@ -69,7 +69,7 @@ def decompile( code_objects = code_objects, is_pypy = is_pypy, ) - header_count = 1+len(sys_version_lines) + header_count = 3+len(sys_version_lines) linemap = [(line_no, deparsed.source_linemap[line_no]+header_count) for line_no in sorted(deparsed.source_linemap.keys())] diff --git a/uncompyle6/semantics/linemap.py b/uncompyle6/semantics/linemap.py index f8f28842..7411f491 100644 --- a/uncompyle6/semantics/linemap.py +++ b/uncompyle6/semantics/linemap.py @@ -27,6 +27,13 @@ class LineMapWalker(SourceWalker): self.source_linemap[self.current_line_number] = node.linestart return super(LineMapWalker, self).default(node) + def n_LOAD_CONST(self, node): + if hasattr(node, 'linestart'): + if node.linestart: + self.source_linemap[self.current_line_number] = node.linestart + return super(LineMapWalker, self).n_LOAD_CONST(node) + + class LineMapFragmentWalker(fragments.FragmentsWalker, LineMapWalker): def __init__(self, *args, **kwargs): super(LineMapFragmentWalker, self).__init__(*args, **kwargs)