From e169fa941960ebcd7cc99eea64ef25d0fd9fe24d Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 17 Aug 2017 12:33:41 +0000 Subject: [PATCH] parse.y: unexpected tINTEGER message * parse.y (parser_number_literal_suffix): keep token after numeric suffix to show the value in an error message. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- parse.y | 6 +++--- test/ruby/test_parse.rb | 3 +++ 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/parse.y b/parse.y index ebf06a5c2d..26763e9a00 100644 --- a/parse.y +++ b/parse.y @@ -6563,7 +6563,6 @@ parser_number_literal_suffix(struct parser_params *parser, int mask) } break; } - literal_flush(lex_p); return result; } @@ -7935,6 +7934,9 @@ parser_yylex(struct parser_params *parser) parser->token_seen = TRUE; retry: last_state = lex_state; +#ifndef RIPPER + token_flush(parser); +#endif switch (c = nextc()) { case '\0': /* NUL */ case '\004': /* ^D */ @@ -7959,8 +7961,6 @@ parser_yylex(struct parser_params *parser) outofloop: pushback(c); dispatch_scan_event(tSP); -#else - token_flush(parser); #endif goto retry; diff --git a/test/ruby/test_parse.rb b/test/ruby/test_parse.rb index 819fc7df95..f92bb49e05 100644 --- a/test/ruby/test_parse.rb +++ b/test/ruby/test_parse.rb @@ -987,6 +987,9 @@ x = __ENCODING__ begin; assert_syntax_error("def f r:def d; def f 0end", /unexpected/) end; + + assert_syntax_error("def\nf(000)end", /^ \^~~/) + assert_syntax_error("def\nf(&)end", /^ \^/) end def test_method_location_in_rescue