Clear current argument name at empty block argument [Bug #16343]

This commit is contained in:
Nobuyoshi Nakada 2019-11-12 09:11:16 +09:00
parent 4a30fabfcf
commit ed90ec3e0d
No known key found for this signature in database
GPG Key ID: 4BC7D6DF58D8DF60
2 changed files with 21 additions and 0 deletions

View File

@ -3455,6 +3455,7 @@ block_param_def : '|' opt_bv_decl '|'
} }
| tOROP | tOROP
{ {
p->cur_arg = 0;
p->max_numparam = ORDINAL_PARAM; p->max_numparam = ORDINAL_PARAM;
/*%%%*/ /*%%%*/
$$ = 0; $$ = 0;

View File

@ -241,6 +241,16 @@ class TestSyntax < Test::Unit::TestCase
o.instance_eval("def foo(var: bar {|var| var}) var end") o.instance_eval("def foo(var: bar {|var| var}) var end")
end end
o = Object.new
assert_warn("") do
o.instance_eval("def foo(var: bar {| | var}) var end")
end
o = Object.new
assert_warn("") do
o.instance_eval("def foo(var: bar {|| var}) var end")
end
o = Object.new o = Object.new
assert_warn("") do assert_warn("") do
o.instance_eval("def foo(var: def bar(var) var; end) var end") o.instance_eval("def foo(var: def bar(var) var; end) var end")
@ -296,6 +306,16 @@ class TestSyntax < Test::Unit::TestCase
o.instance_eval("def foo(var = bar {|var| var}) var end") o.instance_eval("def foo(var = bar {|var| var}) var end")
end end
o = Object.new
assert_warn("") do
o.instance_eval("def foo(var = bar {| | var}) var end")
end
o = Object.new
assert_warn("") do
o.instance_eval("def foo(var = bar {|| var}) var end")
end
o = Object.new o = Object.new
assert_warn("") do assert_warn("") do
o.instance_eval("def foo(var = def bar(var) var; end) var end") o.instance_eval("def foo(var = def bar(var) var; end) var end")