Skip to content

Improve Recovery of Unterminated Regular Expressions#58289

Merged
rbuckton merged 11 commits into
microsoft:mainfrom
graphemecluster:regex-recovery
May 24, 2024
Merged

Improve Recovery of Unterminated Regular Expressions#58289
rbuckton merged 11 commits into
microsoft:mainfrom
graphemecluster:regex-recovery

Conversation

@graphemecluster
Copy link
Copy Markdown
Contributor

@graphemecluster graphemecluster commented Apr 22, 2024

Since unterminated regexes are invalid that they don’t even form a complete RegularExpressionLiteral, we can do everything at our discretion as long as a syntax error is produced. But we should do all our best to parse the remaining parts with fewer subsequent syntax errors.

Instead of consuming all until the end of the line starting from the slash character, if we encounter an unbalanced bracket, which is likely a bracket balancing something before the regex, we stop scanning the regex here so as to increase the chance that a bracket forms a pair of syntax characters with the corresponding bracket before the regex.

Now that unterminated regexes are handled separately from the well-terminated ones and are no longer scanned (actually, parsed) by scanRegularExpressionWorker. This should make moving scanRegularExpressionWorker away to the parser or the checker in the future much easier.

#55600 (comment) no longer applies.

Loading
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

For Uncommitted Bug PR for untriaged, rejected, closed or missing bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants