merge revision(s) 4644e4f2fafe45e2c49f18bc9712d0f5fff3d341: [Backport #21986]

[PATCH] [Bug #21986] Fix location of numeric literal

	When checking for suffixes, do not flush the numeric literal token
	even if no suffix is found.
This commit is contained in:
Takashi Kokubun 2026-05-11 13:40:35 -07:00
parent e4271b554c
commit 926b0ec4ed
2 changed files with 8 additions and 1 deletions

View File

@ -8959,7 +8959,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);

View File

@ -1739,6 +1739,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