mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-02 22:02:51 +01:00
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:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user