diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-04-09 13:16:57 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2026-04-09 13:32:31 +0900 |
| commit | 4644e4f2fafe45e2c49f18bc9712d0f5fff3d341 (patch) | |
| tree | b2eb7782c549ba9a7e236dea6f8c9ef0f0527af2 | |
| parent | f4b5566d0976f55b1fda8cea943283901a3fdc72 (diff) | |
[Bug #21986] Fix location of numeric literal
When checking for suffixes, do not flush the numeric literal token
even if no suffix is found.
| -rw-r--r-- | parse.y | 1 | ||||
| -rw-r--r-- | test/ruby/test_ast.rb | 8 |
2 files changed, 8 insertions, 1 deletions
@@ -8927,7 +8927,6 @@ number_literal_suffix(struct parser_params *p, int mask) } if (!ISASCII(c) || ISALPHA(c) || c == '_') { p->lex.pcur = lastp; - literal_flush(p, p->lex.pcur); return 0; } pushback(p, c); diff --git a/test/ruby/test_ast.rb b/test/ruby/test_ast.rb index 2ba87c6080..5d95dcd46f 100644 --- a/test/ruby/test_ast.rb +++ b/test/ruby/test_ast.rb @@ -1751,6 +1751,14 @@ dummy assert_locations(node.children.last.locations, [[1, 0, 1, 2]]) end + def test_numeric_location_with_nonsuffix + node = ast_parse("1if true") + assert_locations(node.children.last.children[1].locations, [[1, 0, 1, 1]]) + + node = ast_parse("1q", error_tolerant: true) + assert_locations(node.children.last.locations, [[1, 0, 1, 1]]) + end + private def ast_parse(src, **options) begin |
