-
Notifications
You must be signed in to change notification settings - Fork 38
Open
Description
Hi,
Similar to issue #41, the list comprehension is not decompiled:
>>> import meta.decompiler
>>> meta.decompiler.decompile_func(lambda x: [i for i in range(x)])This gives me a traceback:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/decompiler/__init__.py", line 37, in decompile_func
ast_node = make_function(code, defaults=[], lineno=code.co_firstlineno)
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/decompiler/instructions.py", line 137, in make_function
stmnts = instructions.stmnt()
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/decompiler/instructions.py", line 310, in stmnt
self.visit(instr)
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/decompiler/instructions.py", line 324, in visit
method(instr)
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/decompiler/instructions.py", line 372, in MAKE_FUNCTION
function = make_function(code, defaults, lineno=instr.lineno, annotations=annotations, kw_defaults=kw_defaults)
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/decompiler/instructions.py", line 135, in make_function
instructions = Instructions(disassemble(code))
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/decompiler/disassemble.py", line 20, in disassemble
return list(disassembler(co))
File "/home/marko/workspace/pqryopen/icontract/venv3/lib/python3.5/site-packages/meta/bytecodetools/disassembler_.py", line 25, in disassembler
code = co.co_code
AttributeError: 'Str' object has no attribute 'co_code'
I suppose the solution to #41 will be the same as here?
Metadata
Metadata
Assignees
Labels
No labels