aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parse.y2
-rw-r--r--test/ruby/test_pattern_matching.rb8
2 files changed, 8 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 8b5e1d5ad7..e23439294b 100644
--- a/parse.y
+++ b/parse.y
@@ -1569,7 +1569,7 @@ expr : command_call
$<tbl>$ = p->pvtbl;
p->pvtbl = st_init_numtable();
}
- p_top_expr_body
+ p_expr
{
st_free_table(p->pvtbl);
p->pvtbl = $<tbl>4;
diff --git a/test/ruby/test_pattern_matching.rb b/test/ruby/test_pattern_matching.rb
index 9af091a5e5..69524cb7a7 100644
--- a/test/ruby/test_pattern_matching.rb
+++ b/test/ruby/test_pattern_matching.rb
@@ -1261,7 +1261,13 @@ END
def test_modifier_in
assert_equal true, (1 in a)
assert_equal 1, a
- assert_valid_syntax "p(({} in a:), a:\n 1)"
+ assert_valid_syntax "p(({} in {a:}), a:\n 1)"
+ assert_syntax_error(%q{
+ 1 in a, b
+ }, /unexpected/, '[ruby-core:95098]')
+ assert_syntax_error(%q{
+ 1 in a:
+ }, /unexpected/, '[ruby-core:95098]')
end
end
END_of_GUARD