New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Emit fewer errors after parse errors #48724

Open
estebank opened this Issue Mar 4, 2018 · 0 comments

Comments

Projects
None yet
1 participant
@estebank
Contributor

estebank commented Mar 4, 2018

In cases of parse errors, many times we continue checking the code generating errors that would be fixed if the syntax was corrected. We should be more proactive in detecting elements that were "recovered" during parsing, in the same spirit as #46732.

It is particularly bad when encountering unenclosed delimiters. On this, the parser should try some really conservative local recovery (simple substitutions) and unless the rest of the code successfully compiles, the parser should discard the rest of the code until it finds a closing curly brace at the beggining of the line or EOF. This assumes that the likelihood of the following code being correct and usable is high. This type of recovery might still fail during typeck as, for example, methods might be missing. If this is the case, the impl block in the AST should be marked as "recovered" and during typeck avoid emitting errors related to it.

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