From b4229c0a90ef902328e09a92fc5c6e884d01c542 Mon Sep 17 00:00:00 2001 From: Nobuyoshi Nakada Date: Tue, 29 Oct 2019 08:58:39 +0900 Subject: [PATCH] Restore `in_kwarg` flag properly --- parse.y | 2 +- test/ruby/test_pattern_matching.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/parse.y b/parse.y index e7fcffa2d6..e1fe38e0d7 100644 --- a/parse.y +++ b/parse.y @@ -1557,7 +1557,7 @@ expr : command_call } p_top_expr_body { - p->in_kwarg = !!$2; + p->in_kwarg = !!$3; /*%%%*/ $$ = NEW_CASE3($1, NEW_IN($4, NEW_TRUE(&@4), NEW_FALSE(&@4), &@4), &@$); rb_warn0L(nd_line($$), "Pattern matching is experimental, and the behavior may change in future versions of Ruby!"); diff --git a/test/ruby/test_pattern_matching.rb b/test/ruby/test_pattern_matching.rb index cb87529ccf..5283d5ce87 100644 --- a/test/ruby/test_pattern_matching.rb +++ b/test/ruby/test_pattern_matching.rb @@ -1186,6 +1186,7 @@ END def test_modifier_in assert_equal true, (1 in a) assert_equal 1, a + assert_valid_syntax "p(({} in a:), a:\n 1)" end end END_of_GUARD