Fixed up rest, keywords, keyword rest and block arguments
This commit is contained in:
parent
997133d595
commit
b22bfdaa9a
@ -53,8 +53,15 @@ def collect_params tree
|
|||||||
while tree
|
while tree
|
||||||
case tree.first
|
case tree.first
|
||||||
when :params
|
when :params
|
||||||
idents = (tree[1] || []) + (tree[2] || []).map(&:first)
|
params = []
|
||||||
return idents.map { |ident| ident[1].to_sym }
|
_, mand, opt, rest, post, kwds, kwrest, block = tree
|
||||||
|
mand.each {|_, v| params << v.to_sym} if mand
|
||||||
|
opt.each {|(_, v), | params << v.to_sym} if opt
|
||||||
|
params << rest[1][1].to_sym if rest
|
||||||
|
post.each {|_, v| params << v.to_sym} if post
|
||||||
|
params << kwrest[1][1].to_sym if kwrest
|
||||||
|
params << block[1][1].to_sym if block
|
||||||
|
return params
|
||||||
when :paren
|
when :paren
|
||||||
tree = tree[1]
|
tree = tree[1]
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user