[tint] Use diag::List::str()
Instead of explicitly creating a formatter.
Change-Id: I437bf58fbc3187edb91bd2b48091a984db6368cd
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/143380
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Auto-Submit: Ben Clayton <bclayton@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/lang/core/type/test_helper.h b/src/tint/lang/core/type/test_helper.h
index a1f67c5..3917b5d 100644
--- a/src/tint/lang/core/type/test_helper.h
+++ b/src/tint/lang/core/type/test_helper.h
@@ -29,10 +29,8 @@
/// Builds and returns the program. Must only be called once per test
/// @return the built program
Program Build() {
- diag::Formatter formatter;
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << formatter.format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
return Program(std::move(*this));
}
diff --git a/src/tint/lang/glsl/writer/ast_printer/test_helper.h b/src/tint/lang/glsl/writer/ast_printer/test_helper.h
index 95f8a73..d7e28fb 100644
--- a/src/tint/lang/glsl/writer/ast_printer/test_helper.h
+++ b/src/tint/lang/glsl/writer/ast_printer/test_helper.h
@@ -52,13 +52,10 @@
return *gen_;
}
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << diag::Formatter().format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] {
- ASSERT_TRUE(program->IsValid()) << diag::Formatter().format(program->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
gen_ = std::make_unique<ASTPrinter>(program.get(), version);
return *gen_;
}
@@ -75,18 +72,16 @@
if (gen_) {
return *gen_;
}
- diag::Formatter formatter;
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << formatter.format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] { ASSERT_TRUE(program->IsValid()) << formatter.format(program->Diagnostics()); }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
auto sanitized_result = Sanitize(program.get(), options, /* entry_point */ "");
[&] {
ASSERT_TRUE(sanitized_result.program.IsValid())
- << formatter.format(sanitized_result.program.Diagnostics());
+ << sanitized_result.program.Diagnostics().str();
}();
*program = std::move(sanitized_result.program);
diff --git a/src/tint/lang/hlsl/writer/ast_printer/test_helper.h b/src/tint/lang/hlsl/writer/ast_printer/test_helper.h
index c7d6ecb..3eb5c90 100644
--- a/src/tint/lang/hlsl/writer/ast_printer/test_helper.h
+++ b/src/tint/lang/hlsl/writer/ast_printer/test_helper.h
@@ -51,13 +51,10 @@
return *gen_;
}
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << diag::Formatter().format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] {
- ASSERT_TRUE(program->IsValid()) << diag::Formatter().format(program->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
gen_ = std::make_unique<ASTPrinter>(program.get());
return *gen_;
}
@@ -72,18 +69,16 @@
if (gen_) {
return *gen_;
}
- diag::Formatter formatter;
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << formatter.format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] { ASSERT_TRUE(program->IsValid()) << formatter.format(program->Diagnostics()); }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
auto sanitized_result = Sanitize(program.get(), options);
[&] {
ASSERT_TRUE(sanitized_result.program.IsValid())
- << formatter.format(sanitized_result.program.Diagnostics());
+ << sanitized_result.program.Diagnostics().str();
}();
ast::transform::Manager transform_manager;
@@ -94,7 +89,7 @@
/* preserve_unicode */ true);
transform_manager.Add<tint::ast::transform::Renamer>();
auto result = transform_manager.Run(&sanitized_result.program, transform_data, outputs);
- [&] { ASSERT_TRUE(result.IsValid()) << formatter.format(result.Diagnostics()); }();
+ [&] { ASSERT_TRUE(result.IsValid()) << result.Diagnostics().str(); }();
*program = std::move(result);
gen_ = std::make_unique<ASTPrinter>(program.get());
return *gen_;
diff --git a/src/tint/lang/msl/writer/ast_printer/test_helper.h b/src/tint/lang/msl/writer/ast_printer/test_helper.h
index e8b3ebc..70dadf5 100644
--- a/src/tint/lang/msl/writer/ast_printer/test_helper.h
+++ b/src/tint/lang/msl/writer/ast_printer/test_helper.h
@@ -49,13 +49,10 @@
return *gen_;
}
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << diag::Formatter().format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] {
- ASSERT_TRUE(program->IsValid()) << diag::Formatter().format(program->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
gen_ = std::make_unique<ASTPrinter>(program.get());
return *gen_;
}
@@ -71,19 +68,13 @@
return *gen_;
}
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << diag::Formatter().format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] {
- ASSERT_TRUE(program->IsValid()) << diag::Formatter().format(program->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
auto result = Sanitize(program.get(), options);
- [&] {
- ASSERT_TRUE(result.program.IsValid())
- << diag::Formatter().format(result.program.Diagnostics());
- }();
+ [&] { ASSERT_TRUE(result.program.IsValid()) << result.program.Diagnostics().str(); }();
*program = std::move(result.program);
gen_ = std::make_unique<ASTPrinter>(program.get());
return *gen_;
diff --git a/src/tint/lang/spirv/reader/ast_parser/parser_test.cc b/src/tint/lang/spirv/reader/ast_parser/parser_test.cc
index fb89ec5..ef18b0f 100644
--- a/src/tint/lang/spirv/reader/ast_parser/parser_test.cc
+++ b/src/tint/lang/spirv/reader/ast_parser/parser_test.cc
@@ -26,9 +26,9 @@
TEST_F(ParserTest, DataEmpty) {
std::vector<uint32_t> data;
auto program = Parse(data);
- auto errs = diag::Formatter().format(program.Diagnostics());
+ auto errs = program.Diagnostics().str();
ASSERT_FALSE(program.IsValid()) << errs;
- EXPECT_EQ(errs, "error: line:0: Invalid SPIR-V magic number.\n");
+ EXPECT_EQ(errs, "error: line:0: Invalid SPIR-V magic number.");
}
constexpr auto kShaderWithNonUniformDerivative = R"(
@@ -63,7 +63,7 @@
Options options;
options.allow_non_uniform_derivatives = false;
auto program = Parse(spv, options);
- auto errs = diag::Formatter().format(program.Diagnostics());
+ auto errs = program.Diagnostics().str();
EXPECT_FALSE(program.IsValid()) << errs;
EXPECT_THAT(errs, ::testing::HasSubstr("'dpdx' must only be called from uniform control flow"));
}
@@ -73,7 +73,7 @@
Options options;
options.allow_non_uniform_derivatives = true;
auto program = Parse(spv, options);
- auto errs = diag::Formatter().format(program.Diagnostics());
+ auto errs = program.Diagnostics().str();
EXPECT_TRUE(program.IsValid()) << errs;
EXPECT_EQ(program.Diagnostics().count(), 0u) << errs;
}
diff --git a/src/tint/lang/spirv/writer/ast_printer/test_helper.h b/src/tint/lang/spirv/writer/ast_printer/test_helper.h
index 80ea25b..869b650 100644
--- a/src/tint/lang/spirv/writer/ast_printer/test_helper.h
+++ b/src/tint/lang/spirv/writer/ast_printer/test_helper.h
@@ -50,13 +50,10 @@
return *spirv_builder;
}
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << diag::Formatter().format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] {
- ASSERT_TRUE(program->IsValid()) << diag::Formatter().format(program->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
spirv_builder = std::make_unique<Builder>(program.get());
return *spirv_builder;
}
@@ -72,18 +69,12 @@
return *spirv_builder;
}
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << diag::Formatter().format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
program = std::make_unique<Program>(std::move(*this));
- [&] {
- ASSERT_TRUE(program->IsValid()) << diag::Formatter().format(program->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
auto result = Sanitize(program.get(), options);
- [&] {
- ASSERT_TRUE(result.program.IsValid())
- << diag::Formatter().format(result.program.Diagnostics());
- }();
+ [&] { ASSERT_TRUE(result.program.IsValid()) << result.program.Diagnostics().str(); }();
*program = std::move(result.program);
spirv_builder = std::make_unique<Builder>(program.get());
return *spirv_builder;
diff --git a/src/tint/lang/wgsl/ast/module_clone_test.cc b/src/tint/lang/wgsl/ast/module_clone_test.cc
index 701c353..a1d16ff 100644
--- a/src/tint/lang/wgsl/ast/module_clone_test.cc
+++ b/src/tint/lang/wgsl/ast/module_clone_test.cc
@@ -124,12 +124,12 @@
// Parse the wgsl, create the src program
auto src = wgsl::reader::Parse(&file);
- ASSERT_TRUE(src.IsValid()) << diag::Formatter().format(src.Diagnostics());
+ ASSERT_TRUE(src.IsValid()) << src.Diagnostics().str();
// Clone the src program to dst
Program dst(src.Clone());
- ASSERT_TRUE(dst.IsValid()) << diag::Formatter().format(dst.Diagnostics());
+ ASSERT_TRUE(dst.IsValid()) << dst.Diagnostics().str();
// Expect the printed strings to match
EXPECT_EQ(Program::printer(&src), Program::printer(&dst));
diff --git a/src/tint/lang/wgsl/ast/transform/test_helper.h b/src/tint/lang/wgsl/ast/transform/test_helper.h
index ed5a220..31bb6c3 100644
--- a/src/tint/lang/wgsl/ast/transform/test_helper.h
+++ b/src/tint/lang/wgsl/ast/transform/test_helper.h
@@ -32,11 +32,8 @@
/// @returns the output program as a WGSL string, or an error string if the
/// program is not valid.
inline std::string str(const Program& program) {
- diag::Formatter::Style style;
- style.print_newline_at_end = false;
-
if (!program.IsValid()) {
- return diag::Formatter(style).format(program.Diagnostics());
+ return program.Diagnostics().str();
}
wgsl::writer::Options options;
diff --git a/src/tint/lang/wgsl/inspector/test_inspector_builder.cc b/src/tint/lang/wgsl/inspector/test_inspector_builder.cc
index 6b657b3..4327c5e 100644
--- a/src/tint/lang/wgsl/inspector/test_inspector_builder.cc
+++ b/src/tint/lang/wgsl/inspector/test_inspector_builder.cc
@@ -353,9 +353,7 @@
return *inspector_;
}
program_ = std::make_unique<Program>(std::move(*this));
- [&] {
- ASSERT_TRUE(program_->IsValid()) << diag::Formatter().format(program_->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program_->IsValid()) << program_->Diagnostics().str(); }();
inspector_ = std::make_unique<Inspector>(program_.get());
return *inspector_;
}
diff --git a/src/tint/lang/wgsl/inspector/test_inspector_runner.cc b/src/tint/lang/wgsl/inspector/test_inspector_runner.cc
index e8e56eb..5f2754c 100644
--- a/src/tint/lang/wgsl/inspector/test_inspector_runner.cc
+++ b/src/tint/lang/wgsl/inspector/test_inspector_runner.cc
@@ -26,9 +26,7 @@
file_ = std::make_unique<Source::File>("test", shader);
program_ = std::make_unique<Program>(wgsl::reader::Parse(file_.get()));
- [&] {
- ASSERT_TRUE(program_->IsValid()) << diag::Formatter().format(program_->Diagnostics());
- }();
+ [&] { ASSERT_TRUE(program_->IsValid()) << program_->Diagnostics().str(); }();
inspector_ = std::make_unique<Inspector>(program_.get());
return *inspector_;
}
diff --git a/src/tint/lang/wgsl/resolver/const_eval_binary_op_test.cc b/src/tint/lang/wgsl/resolver/const_eval_binary_op_test.cc
index a40b11d..bca5f9c 100644
--- a/src/tint/lang/wgsl/resolver/const_eval_binary_op_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_binary_op_test.cc
@@ -2198,9 +2198,7 @@
auto program = wgsl::reader::Parse(file.get());
EXPECT_FALSE(program.IsValid());
- diag::Formatter::Style style;
- style.print_newline_at_end = false;
- auto error = diag::Formatter(style).format(program.Diagnostics());
+ auto error = program.Diagnostics().str();
EXPECT_EQ(error, R"(test:3:31 error: value cannot be represented as 'i32'
const result = (one == 0) && (1111111111111111111111111111111i == 0);
^
@@ -2219,9 +2217,7 @@
auto program = wgsl::reader::Parse(file.get());
EXPECT_FALSE(program.IsValid());
- diag::Formatter::Style style;
- style.print_newline_at_end = false;
- auto error = diag::Formatter(style).format(program.Diagnostics());
+ auto error = program.Diagnostics().str();
EXPECT_EQ(error, R"(test:3:31 error: value cannot be represented as 'i32'
const result = (one == 1) || (1111111111111111111111111111111i == 0);
^
@@ -2431,7 +2427,7 @@
if (should_pass) {
diag::Formatter::Style style;
style.print_newline_at_end = false;
- auto error = diag::Formatter(style).format(program.Diagnostics());
+ auto error = program.Diagnostics().str();
EXPECT_TRUE(program.IsValid()) << error;
} else {
diff --git a/src/tint/lang/wgsl/resolver/const_eval_runtime_semantics_test.cc b/src/tint/lang/wgsl/resolver/const_eval_runtime_semantics_test.cc
index 3caf048..6414eb6 100644
--- a/src/tint/lang/wgsl/resolver/const_eval_runtime_semantics_test.cc
+++ b/src/tint/lang/wgsl/resolver/const_eval_runtime_semantics_test.cc
@@ -31,12 +31,7 @@
ConstEval const_eval;
/// @returns the contents of the diagnostics list as a string
- std::string error() {
- diag::Formatter::Style style{};
- style.print_newline_at_end = false;
- diag::Formatter formatter{style};
- return formatter.format(Diagnostics());
- }
+ std::string error() { return Diagnostics().str(); }
};
TEST_F(ResolverConstEvalRuntimeSemanticsTest, Add_AInt_Overflow) {
diff --git a/src/tint/lang/wgsl/resolver/uniformity_test.cc b/src/tint/lang/wgsl/resolver/uniformity_test.cc
index 8977062..3478d2f 100644
--- a/src/tint/lang/wgsl/resolver/uniformity_test.cc
+++ b/src/tint/lang/wgsl/resolver/uniformity_test.cc
@@ -37,9 +37,7 @@
/// @param program the program
/// @param should_pass true if `builder` program should pass the analysis, otherwise false
void RunTest(Program&& program, bool should_pass) {
- diag::Formatter::Style style;
- style.print_newline_at_end = false;
- error_ = diag::Formatter(style).format(program.Diagnostics());
+ error_ = program.Diagnostics().str();
bool valid = program.IsValid();
if (should_pass) {
diff --git a/src/tint/lang/wgsl/sem/test_helper.h b/src/tint/lang/wgsl/sem/test_helper.h
index 2c80446..0e0ad7a 100644
--- a/src/tint/lang/wgsl/sem/test_helper.h
+++ b/src/tint/lang/wgsl/sem/test_helper.h
@@ -29,10 +29,8 @@
/// Builds and returns the program. Must only be called once per test
/// @return the built program
Program Build() {
- diag::Formatter formatter;
[&] {
- ASSERT_TRUE(IsValid()) << "Builder program is not valid\n"
- << formatter.format(Diagnostics());
+ ASSERT_TRUE(IsValid()) << "Builder program is not valid\n" << Diagnostics().str();
}();
return Program(std::move(*this));
}
diff --git a/src/tint/lang/wgsl/writer/ast_printer/test_helper.h b/src/tint/lang/wgsl/writer/ast_printer/test_helper.h
index 8cafa9c..aeba391 100644
--- a/src/tint/lang/wgsl/writer/ast_printer/test_helper.h
+++ b/src/tint/lang/wgsl/writer/ast_printer/test_helper.h
@@ -41,8 +41,7 @@
return *gen_;
}
program = std::make_unique<Program>(std::move(*this));
- diag::Formatter formatter;
- [&] { ASSERT_TRUE(program->IsValid()) << formatter.format(program->Diagnostics()); }();
+ [&] { ASSERT_TRUE(program->IsValid()) << program->Diagnostics().str(); }();
gen_ = std::make_unique<ASTPrinter>(program.get());
return *gen_;
}