aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
authornagachika <nagachika@ruby-lang.org>2020-07-25 13:40:48 +0900
committernagachika <nagachika@ruby-lang.org>2020-07-25 13:40:48 +0900
commitbe359442cb07c25fdc769431ffed3249b9016829 (patch)
tree5fef847a74965a9cbde9ce65451ce3f511177692 /parse.y
parent89f06ce8b8a887f12b53ea190d79a58e98b59008 (diff)
downloadruby-be359442cb07c25fdc769431ffed3249b9016829.tar.gz
merge revision(s) 71c166e11e761dcaaa943f9b94da38f86ada1bdb: [Backport #16854]
Fixed argument forwarding in reserved word method [Bug #16854]
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y7
1 files changed, 2 insertions, 5 deletions
diff --git a/parse.y b/parse.y
index e57cc11d0f..54515f9002 100644
--- a/parse.y
+++ b/parse.y
@@ -2023,10 +2023,6 @@ fname : tIDENTIFIER
$$ = $1;
}
| reswords
- {
- SET_LEX_STATE(EXPR_ENDFN);
- $$ = $1;
- }
;
fitem : fname
@@ -8738,11 +8734,12 @@ parse_ident(struct parser_params *p, int c, int cmd_state)
kw = rb_reserved_word(tok(p), toklen(p));
if (kw) {
enum lex_state_e state = p->lex.state;
- SET_LEX_STATE(kw->state);
if (IS_lex_state_for(state, EXPR_FNAME)) {
+ SET_LEX_STATE(EXPR_ENDFN);
set_yylval_name(rb_intern2(tok(p), toklen(p)));
return kw->id[0];
}
+ SET_LEX_STATE(kw->state);
if (IS_lex_state(EXPR_BEG)) {
p->command_start = TRUE;
}