inspector: Use diagnostic lists
Instead of concatenating to a string
Change-Id: Ib70bba2b0dbf9fcb04a232e0e78d3b576ab3ba88
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/59203
Auto-Submit: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ryan Harrison <rharrison@chromium.org>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/inspector/inspector.cc b/src/inspector/inspector.cc
index 07e942a..1003e0f 100644
--- a/src/inspector/inspector.cc
+++ b/src/inspector/inspector.cc
@@ -563,12 +563,13 @@
ast::Function* Inspector::FindEntryPointByName(const std::string& name) {
auto* func = program_->AST().Functions().Find(program_->Symbols().Get(name));
if (!func) {
- error_ += name + " was not found!";
+ diagnostics_.add_error(diag::System::Inspector, name + " was not found!");
return nullptr;
}
if (!func->IsEntryPoint()) {
- error_ += name + " is not an entry point!";
+ diagnostics_.add_error(diag::System::Inspector,
+ name + " is not an entry point!");
return nullptr;
}
diff --git a/src/inspector/inspector.h b/src/inspector/inspector.h
index a386a10..9ed9648 100644
--- a/src/inspector/inspector.h
+++ b/src/inspector/inspector.h
@@ -43,9 +43,9 @@
~Inspector();
/// @returns error messages from the Inspector
- const std::string& error() { return error_; }
+ std::string error() { return diagnostics_.str(); }
/// @returns true if an error was encountered
- bool has_error() const { return !error_.empty(); }
+ bool has_error() const { return diagnostics_.contains_errors(); }
/// @returns vector of entry point information
std::vector<EntryPoint> GetEntryPoints();
@@ -139,7 +139,7 @@
private:
const Program* program_;
- std::string error_;
+ diag::List diagnostics_;
std::unique_ptr<
std::unordered_map<std::string, UniqueVector<SamplerTexturePair>>>
sampler_targets_;