Add diag::List::add_error() helper

Refactors a common pattern in the tint codebase.

Change-Id: Ia8a70d952fd8c204facd0120f24e43ccc9305622
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/38840
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
This commit is contained in:
Ben Clayton
2021-01-26 18:52:11 +00:00
committed by Commit Bot service account
parent a6b9a8eb2f
commit 1461cd96d6
9 changed files with 39 additions and 44 deletions

View File

@@ -14,6 +14,8 @@
#include "src/reader/spirv/parser.h"
#include <utility>
#include "src/reader/spirv/parser_impl.h"
namespace tint {
@@ -30,10 +32,9 @@ bool Parser::Parse() {
auto err_msg = impl_->error();
if (!err_msg.empty()) {
// TODO(bclayton): Migrate spirv::ParserImpl to using diagnostics.
diag::Diagnostic error{};
error.severity = diag::Severity::Error;
error.message = err_msg;
set_diagnostics({error});
diag::List diagnostics;
diagnostics.add_error(err_msg);
set_diagnostics(std::move(diagnostics));
}
return result;
}

View File

@@ -46,6 +46,7 @@ class Parser : public Reader {
private:
std::unique_ptr<ParserImpl> impl_;
Program program_;
};
} // namespace spirv

View File

@@ -230,11 +230,7 @@ ParserImpl::Failure::Errored ParserImpl::add_error(const Token& t,
ParserImpl::Failure::Errored ParserImpl::add_error(const Source& source,
const std::string& err) {
if (silence_errors_ == 0) {
diag::Diagnostic diagnostic;
diagnostic.severity = diag::Severity::Error;
diagnostic.message = err;
diagnostic.source = source;
diags_.add(std::move(diagnostic));
diags_.add_error(err, source);
}
return Failure::kErrored;
}