Fix parse to use the error tracking consumer for has_errors_. (#4261)

This is how we are setting has_errors_ in other stages; this should only
make parse consistent.

Fixes #4259
This commit is contained in:
Jon Ross-Perkins
2024-08-28 18:41:36 +00:00
committed by GitHub
parent 702d0d8a53
commit b72826c431
13 changed files with 52 additions and 57 deletions
+3 -1
View File
@@ -20,7 +20,8 @@ auto HandleInvalid(Context& context) -> void {
auto Parse(Lex::TokenizedBuffer& tokens, DiagnosticConsumer& consumer,
llvm::raw_ostream* vlog_stream) -> Tree {
Lex::TokenDiagnosticConverter converter(&tokens);
Lex::TokenDiagnosticEmitter emitter(converter, consumer);
ErrorTrackingDiagnosticConsumer err_tracker(consumer);
Lex::TokenDiagnosticEmitter emitter(converter, err_tracker);
// Delegate to the parser.
Tree tree(tokens);
@@ -44,6 +45,7 @@ auto Parse(Lex::TokenizedBuffer& tokens, DiagnosticConsumer& consumer,
}
context.AddLeafNode(NodeKind::FileEnd, *context.position());
tree.set_has_errors(err_tracker.seen_error());
if (auto verify = tree.Verify(); !verify.ok()) {
// TODO: This is temporarily printing to stderr directly during development.