summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--parse.y2
-rw-r--r--test/ruby/test_syntax.rb10
2 files changed, 12 insertions, 0 deletions
diff --git a/parse.y b/parse.y
index da91b53a02..6d04f4175e 100644
--- a/parse.y
+++ b/parse.y
@@ -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