Skip to content

Fix cases where error recovery could infinite loop#4262

Merged
maxbrunsfeld merged 1 commit intorelease-0.25from
backport-4257-to-release-0.25
Mar 4, 2025
Merged

Fix cases where error recovery could infinite loop#4262
maxbrunsfeld merged 1 commit intorelease-0.25from
backport-4257-to-release-0.25

Conversation

@tree-sitter-ci-bot
Copy link

Description

Backport of #4257 to release-0.25.

* Rename corpus test functions to allow easy filtering by language

* Use usize for seed argument

* Avoid retaining useless stack versions when reductions merge

We found this problem when debugging an infinite loop that happened
during error recovery when using the Zig grammar. The large number of
unnecessary paused stack versions were preventing the correct recovery
strategy from being tried.

* Fix leaked lookahead token when reduction results in a merged stack

* Enable running PHP tests in CI

* Fix possible infinite loop during error recovery at EOF

* Account for external scanner state changes when detecting changed ranges in subtrees

(cherry picked from commit 066fd77)
@maxbrunsfeld maxbrunsfeld merged commit 3ad1c7d into release-0.25 Mar 4, 2025
18 of 19 checks passed
@maxbrunsfeld maxbrunsfeld deleted the backport-4257-to-release-0.25 branch March 4, 2025 23:39
@tree-sitter tree-sitter locked and limited conversation to collaborators May 1, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant