aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-17 12:33:41 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-08-17 12:33:41 +0000
commit3b3154db30799a93c8a6e2afc35485a382fdc309 (patch)
tree749fadf690c54e39d681b054c7545b44ee141b64
parent497db51eb870c6e4b1ff730aaa07f4aaa0746a12 (diff)
downloadruby-3b3154db30799a93c8a6e2afc35485a382fdc309.tar.gz
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
-rw-r--r--parse.y6
-rw-r--r--test/ruby/test_parse.rb3
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