[ruby/prism] RubyParser translation for stabby lambdas with it

c2e372a8d8
This commit is contained in:
Justin Collins 2025-07-30 16:58:05 -06:00 committed by git
parent fca2e6f8f5
commit d289eb2723
3 changed files with 8 additions and 2 deletions

View file

@ -1151,7 +1151,7 @@ module Prism
def visit_lambda_node(node) def visit_lambda_node(node)
parameters = parameters =
case node.parameters case node.parameters
when nil, NumberedParametersNode when nil, ItParametersNode, NumberedParametersNode
s(node, :args) s(node, :args)
else else
visit(node.parameters) visit(node.parameters)

View file

@ -1,3 +1,5 @@
x do x do
it it
end end
-> { it }

View file

@ -181,9 +181,13 @@ module Prism
actual_ast = Prism::Translation::Parser34.new.tokenize(buffer)[0] actual_ast = Prism::Translation::Parser34.new.tokenize(buffer)[0]
it_block_parameter_sexp = parse_sexp { it_block_parameter_sexp = parse_sexp {
s(:begin,
s(:itblock, s(:itblock,
s(:send, nil, :x), :it, s(:send, nil, :x), :it,
s(:lvar, :it)) s(:lvar, :it)),
s(:itblock,
s(:lambda), :it,
s(:lvar, :it)))
} }
assert_equal(it_block_parameter_sexp, actual_ast.to_sexp) assert_equal(it_block_parameter_sexp, actual_ast.to_sexp)