parser: setup numbered parameters in new_lambda and adjust dump_prefix offset

This commit is contained in:
Hoshiumi Arata
2024-11-13 22:19:27 +09:00
parent 13acf12df5
commit 9fe2a5c46a
2 changed files with 3 additions and 1 deletions
+2 -1
View File
@@ -958,6 +958,7 @@ new_block(parser_state *p, node *a, node *b)
static node*
new_lambda(parser_state *p, node *a, node *b)
{
a = setup_numparams(p, a);
return list4((node*)NODE_LAMBDA, locals_node(p), a, b);
}
@@ -7165,7 +7166,7 @@ mrb_parser_dump(mrb_state *mrb, node *tree, int offset)
case NODE_LAMBDA:
printf("NODE_LAMBDA:\n");
dump_prefix(tree, offset);
dump_prefix(tree, offset+1);
goto block;
case NODE_BLOCK:
+1
View File
@@ -711,6 +711,7 @@ end
assert('numbered parameters') do
assert_equal(15, [1,2,3,4,5].reduce {_1+_2})
assert_equal(45, Proc.new do _1 + _2 + _3 + _4 + _5 + _6 + _7 + _8 + _9 end.call(*[1, 2, 3, 4, 5, 6, 7, 8, 9]))
assert_equal(5, -> { _1 }.call(5))
end
assert('_0 is not numbered parameter') do