diff options
-rw-r--r-- | parse.y | 6 | ||||
-rw-r--r-- | test/ruby/test_parse.rb | 3 |
2 files changed, 6 insertions, 3 deletions
@@ -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 |