diff options
-rw-r--r-- | parse.y | 2 | ||||
-rw-r--r-- | test/ruby/test_syntax.rb | 10 |
2 files changed, 12 insertions, 0 deletions
@@ -3409,6 +3409,7 @@ opt_block_param : none block_param_def : '|' opt_bv_decl '|' { + current_arg = 0; /*%%%*/ $$ = 0; /*% @@ -3427,6 +3428,7 @@ block_param_def : '|' opt_bv_decl '|' } | '|' block_param opt_bv_decl '|' { + current_arg = 0; /*%%%*/ $$ = $2; /*% diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index 55af33fe48..e70470555c 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -171,6 +171,11 @@ class TestSyntax < Test::Unit::TestCase assert_warn("") do o.instance_eval("def foo(var: def bar(var) var; end) var end") end + + o = Object.new + assert_warn("") do + o.instance_eval("proc {|var: 1| var}") + end end def test_optional_self_reference @@ -207,6 +212,11 @@ class TestSyntax < Test::Unit::TestCase assert_warn("") do o.instance_eval("def foo(var = def bar(var) var; end) var end") end + + o = Object.new + assert_warn("") do + o.instance_eval("proc {|var = 1| var}") + end end def test_warn_grouped_expression |