You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When parsing, don't swallow recursion depth errors.
This is necessary for both performance and correctness reasons. At many points
when parsing symbols a failure to parse as one construct is retried as a
different construct. This makes sense when parsing fails because the input does
not match the first construct. It does not make sense when the input triggers
the recursion limits.
1. Because the input might have been correctly parsed on the path that was
aborted due to the recursion limits, any other output produced may be wrong.
2. Even the error returned might be wrong, if the correct path was aborted due
to recursion limits and the last path tried was aborted for a different error.
3. Attempting to try additional constructs after a recursion error increases
the runtime, in some cases significantly.
0 commit comments