fix(lib): properly reset the lexer's start postiion

This commit is contained in:
Amaan Qureshi 2024-10-10 00:16:11 -04:00
parent 4b1ae40faf
commit fe92e978f9

View file

@ -367,7 +367,10 @@ void ts_lexer_finish(Lexer *self, uint32_t *lookahead_end_byte) {
// If the token ended at an included range boundary, then its end position
// will have been reset to the end of the preceding range. Reset the start
// position to match.
if (self->token_end_position.bytes < self->token_start_position.bytes) {
if (
self->token_end_position.bytes < self->token_start_position.bytes ||
point_lt(self->token_end_position.extent, self->token_start_position.extent)
) {
self->token_start_position = self->token_end_position;
}