diff options
author | nagachika <nagachika@ruby-lang.org> | 2020-07-25 13:40:48 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2020-07-25 13:40:48 +0900 |
commit | be359442cb07c25fdc769431ffed3249b9016829 (patch) | |
tree | 5fef847a74965a9cbde9ce65451ce3f511177692 | |
parent | 89f06ce8b8a887f12b53ea190d79a58e98b59008 (diff) | |
download | ruby-be359442cb07c25fdc769431ffed3249b9016829.tar.gz |
merge revision(s) 71c166e11e761dcaaa943f9b94da38f86ada1bdb: [Backport #16854]
Fixed argument forwarding in reserved word method [Bug #16854]
-rw-r--r-- | parse.y | 7 | ||||
-rw-r--r-- | test/ruby/test_syntax.rb | 5 | ||||
-rw-r--r-- | version.h | 2 |
3 files changed, 8 insertions, 6 deletions
@@ -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; } diff --git a/test/ruby/test_syntax.rb b/test/ruby/test_syntax.rb index 21b0bc7ce7..93d944678d 100644 --- a/test/ruby/test_syntax.rb +++ b/test/ruby/test_syntax.rb @@ -1466,6 +1466,11 @@ eom def test_argument_forwarding assert_valid_syntax('def foo(...) bar(...) end') assert_valid_syntax('def foo(...) end') + assert_valid_syntax('def ==(...) end') + assert_valid_syntax('def [](...) end') + assert_valid_syntax('def nil(...) end') + assert_valid_syntax('def true(...) end') + assert_valid_syntax('def false(...) end') assert_syntax_error('iter do |...| end', /unexpected/) assert_syntax_error('iter {|...|}', /unexpected/) assert_syntax_error('->... {}', /unexpected/) @@ -2,7 +2,7 @@ # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR #define RUBY_VERSION_TEENY 1 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR -#define RUBY_PATCHLEVEL 109 +#define RUBY_PATCHLEVEL 110 #define RUBY_RELEASE_YEAR 2020 #define RUBY_RELEASE_MONTH 7 |