-
Notifications
You must be signed in to change notification settings - Fork 111
Open
Description
It seems that certain variable names can end up in name collisions in the generated code. For example, the code
def f(__print):
print __print
return __print * 4
y = f(5)
print y
is turned into the one-line code
(lambda __g, __print: [[(__print(y), None)[1] for __g['y'] in [(f(5))]][0] for __g['f'], f.__name__ in [(lambda __print: (lambda __l: [(__print(__l['__print']), (__l['__print'] * 4))[1] for __l['__print'] in [(__print)]][0])({}), 'f')]][0])(globals(), __import__('__builtin__').__dict__['print'])
which gives a TypeError when run.
Metadata
Metadata
Assignees
Labels
No labels