aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-03-02 15:49:03 +0900
committerNARUSE, Yui <naruse@airemix.jp>2020-03-27 14:57:42 +0900
commit004c298738dc0924e7483b0c3f41c798dabe9e5b (patch)
tree95a0ce32442772382a2e1c3dced844ab3f5b5581 /parse.y
parent93aaa0bcce829b880d8f52a9168d17c93ecde85b (diff)
downloadruby-004c298738dc0924e7483b0c3f41c798dabe9e5b.tar.gz
Allow newlines inside braced pattern
(cherry picked from commit f5c904c2a907013e22ff74bc3686952c5448d493)
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y12
1 files changed, 10 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index b1a7e08e54..d249039024 100644
--- a/parse.y
+++ b/parse.y
@@ -3937,12 +3937,17 @@ p_expr_basic : p_value
$$ = new_array_pattern_tail(p, Qnone, 0, 0, Qnone, &@$);
$$ = new_array_pattern(p, Qnone, Qnone, $$, &@$);
}
- | tLBRACE {$<tbl>$ = push_pktbl(p);} p_kwargs '}'
+ | tLBRACE
+ {
+ $<tbl>$ = push_pktbl(p);
+ p->in_kwarg = 0;
+ }
+ p_kwargs rbrace
{
pop_pktbl(p, $<tbl>2);
$$ = new_hash_pattern(p, Qnone, $3, &@$);
}
- | tLBRACE '}'
+ | tLBRACE rbrace
{
$$ = new_hash_pattern_tail(p, Qnone, 0, &@$);
$$ = new_hash_pattern(p, Qnone, $$, &@$);
@@ -5402,6 +5407,9 @@ rparen : opt_nl ')'
rbracket : opt_nl ']'
;
+rbrace : opt_nl '}'
+ ;
+
trailer : /* none */
| '\n'
| ','