Skip to content
This repository was archived by the owner on Mar 23, 2023. It is now read-only.

Support tuple args in lambda #17

Open
trotterdylan opened this issue Jan 4, 2017 · 1 comment
Open

Support tuple args in lambda #17

trotterdylan opened this issue Jan 4, 2017 · 1 comment

Comments

@trotterdylan
Copy link
Contributor

Per justinsaccount on HN:

$ make run
c = {}
top = sorted(c.items(), key=lambda (k,v): v)
^D
Traceback (most recent call last):
File "./tools/grumpc", line 102, in
sys.exit(main(parser.parse_args()))
File "./tools/grumpc", line 60, in main
visitor.visit(mod)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/foo/src/grumpy/build/lib/python2.7/site-packages/grumpy/compiler/stmt.py", line 302, in visit_Module
self._visit_each(node.body)
File "/Users/foo/src/grumpy/build/lib/python2.7/site-packages/grumpy/compiler/stmt.py", line 632, in _visit_each
self.visit(node)
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/foo/src/grumpy/build/lib/python2.7/site-packages/grumpy/compiler/stin visit_Assign
with self.expr_visitor.visit(node.value) as value:
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/foo/src/grumpy/build/lib/python2.7/site-packages/grumpy/compiler/expr_visitor.py", line 101, in visit_Call
values.append((util.go_str(k.arg), self.visit(k.value)))
File "/usr/local/Cellar/python/2.7.12/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ast.py", line 241, in visit
return visitor(node)
File "/Users/foo/src/grumpy/build/lib/python2.7/site-packages/grumpy/compiler/expr_visitor.py", line 246, in visit_Lambda
return self.visit_function_inline(func_node)
File "/Users/foo/src/grumpy/build/lib/python2.7/site-packages/grumpy/compiler/expr_visitor.py", line 388, in visit_function_inline
func_visitor = block.FunctionBlockVisitor(node)
File "/Users/foo/src/grumpy/build/lib/python2.7/site-packages/grumpy/compiler/block.py", line 432, in init
args = [a.id for a in node_args.args]
AttributeError: 'Tuple' object has no attribute 'id'

@JustinAzoff
Copy link

Can also reproduce it using tuple unpacking in function arguments (not very common, was removed in py3)

$ cat /tmp/foof.py
def func((a,b)):
    return b

mytuple = 1,2
print func(mytuple)
$ python /tmp/foof.py
2

jamdagni86 added a commit to jamdagni86/grumpy that referenced this issue Mar 6, 2017
jamdagni86 added a commit to jamdagni86/grumpy that referenced this issue Aug 29, 2017
jamdagni86 added a commit to jamdagni86/grumpy that referenced this issue Sep 14, 2017
pombredanne pushed a commit to pombredanne/grumpy that referenced this issue Mar 12, 2019
Jamdagni86 fix for google#17 (Support tuple args in lambda)
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants