From 6e70fa49b111e2a2839297b057a3df354cae265a Mon Sep 17 00:00:00 2001 From: Kazuki Tsujimoto Date: Sun, 10 Nov 2019 22:34:49 +0900 Subject: Disallow omission of parentheses/brackets in single line pattern matching [Feature #16182] --- parse.y | 2 +- test/ruby/test_pattern_matching.rb | 8 +++++++- 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 $$ = p->pvtbl; p->pvtbl = st_init_numtable(); } - p_top_expr_body + p_expr { st_free_table(p->pvtbl); p->pvtbl = $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 -- cgit v1.2.3