[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_; }