[wgsl-writer] Restore huggie-style braces
Change-Id: Ieec33cccbfeb2589d1292103001f0de5267e02bb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18040
Reviewed-by: dan sinclair <dsinclair@google.com>
diff --git a/src/writer/wgsl/generator_impl.cc b/src/writer/wgsl/generator_impl.cc
index a74c48e..c288b9d 100644
--- a/src/writer/wgsl/generator_impl.cc
+++ b/src/writer/wgsl/generator_impl.cc
@@ -363,7 +363,7 @@
return false;
}
- return EmitStatementBlock(func->body());
+ return EmitStatementBlockAndNewline(func->body());
}
bool GeneratorImpl::EmitType(ast::type::Type* type) {
@@ -704,11 +704,20 @@
decrement_indent();
make_indent();
- out_ << "}" << std::endl;
+ out_ << "}";
return true;
}
+bool GeneratorImpl::EmitStatementBlockAndNewline(
+ const std::vector<std::unique_ptr<ast::Statement>>& statements) {
+ const bool result = EmitStatementBlock(statements);
+ if (result) {
+ out_ << std::endl;
+ }
+ return result;
+}
+
bool GeneratorImpl::EmitStatement(ast::Statement* stmt) {
if (stmt->IsAssign()) {
return EmitAssign(stmt->AsAssign());
@@ -811,7 +820,7 @@
out_ << ":";
}
- return EmitStatementBlock(stmt->body());
+ return EmitStatementBlockAndNewline(stmt->body());
}
bool GeneratorImpl::EmitContinue(ast::ContinueStatement* stmt) {
@@ -840,15 +849,14 @@
}
bool GeneratorImpl::EmitElse(ast::ElseStatement* stmt) {
- make_indent();
if (stmt->HasCondition()) {
- out_ << "elseif (";
+ out_ << " elseif (";
if (!EmitExpression(stmt->condition())) {
return false;
}
out_ << ")";
} else {
- out_ << "else";
+ out_ << " else";
}
return EmitStatementBlock(stmt->body());
@@ -878,6 +886,7 @@
return false;
}
}
+ out_ << std::endl;
return true;
}
@@ -906,7 +915,7 @@
make_indent();
out_ << "continuing";
- if (!EmitStatementBlock(stmt->continuing())) {
+ if (!EmitStatementBlockAndNewline(stmt->continuing())) {
return false;
}
}
@@ -933,7 +942,7 @@
}
out_ << ")";
- return EmitStatementBlock(stmt->body());
+ return EmitStatementBlockAndNewline(stmt->body());
}
bool GeneratorImpl::EmitReturn(ast::ReturnStatement* stmt) {
@@ -983,7 +992,7 @@
}
out_ << ")";
- return EmitStatementBlock(stmt->body());
+ return EmitStatementBlockAndNewline(stmt->body());
}
} // namespace wgsl
diff --git a/src/writer/wgsl/generator_impl.h b/src/writer/wgsl/generator_impl.h
index e77ee95..8ec4572 100644
--- a/src/writer/wgsl/generator_impl.h
+++ b/src/writer/wgsl/generator_impl.h
@@ -176,11 +176,16 @@
/// @param stmt the statement to emit
/// @returns true if the statement was successfully emitted
bool EmitReturn(ast::ReturnStatement* stmt);
- /// Handles a list of statements
+ /// Handles a brace-enclosed list of statements.
/// @param statements the statements to output
/// @returns true if the statements were emitted
bool EmitStatementBlock(
const std::vector<std::unique_ptr<ast::Statement>>& statements);
+ /// Handles a brace-enclosed list of statements and trailing newline.
+ /// @param statements the statements to output
+ /// @returns true if the statements were emitted
+ bool EmitStatementBlockAndNewline(
+ const std::vector<std::unique_ptr<ast::Statement>>& statements);
/// Handles statement
/// @param stmt the statement to emit
/// @returns true if the statement was emitted
diff --git a/src/writer/wgsl/generator_impl_else_test.cc b/src/writer/wgsl/generator_impl_else_test.cc
index 0d1d98a..561babf 100644
--- a/src/writer/wgsl/generator_impl_else_test.cc
+++ b/src/writer/wgsl/generator_impl_else_test.cc
@@ -38,10 +38,9 @@
g.increment_indent();
ASSERT_TRUE(g.EmitElse(&e)) << g.error();
- EXPECT_EQ(g.result(), R"( else {
+ EXPECT_EQ(g.result(), R"( else {
kill;
- }
-)");
+ })");
}
TEST_F(GeneratorImplTest, Emit_ElseWithCondition) {
@@ -56,10 +55,9 @@
g.increment_indent();
ASSERT_TRUE(g.EmitElse(&e)) << g.error();
- EXPECT_EQ(g.result(), R"( elseif (cond) {
+ EXPECT_EQ(g.result(), R"( elseif (cond) {
kill;
- }
-)");
+ })");
}
} // namespace
diff --git a/src/writer/wgsl/generator_impl_if_test.cc b/src/writer/wgsl/generator_impl_if_test.cc
index cde3640..274c7c0 100644
--- a/src/writer/wgsl/generator_impl_if_test.cc
+++ b/src/writer/wgsl/generator_impl_if_test.cc
@@ -69,8 +69,7 @@
ASSERT_TRUE(g.EmitStatement(&i)) << g.error();
EXPECT_EQ(g.result(), R"( if (cond) {
kill;
- }
- elseif (else_cond) {
+ } elseif (else_cond) {
kill;
}
)");
@@ -96,8 +95,7 @@
ASSERT_TRUE(g.EmitStatement(&i)) << g.error();
EXPECT_EQ(g.result(), R"( if (cond) {
kill;
- }
- else {
+ } else {
kill;
}
)");
@@ -130,11 +128,9 @@
ASSERT_TRUE(g.EmitStatement(&i)) << g.error();
EXPECT_EQ(g.result(), R"( if (cond) {
kill;
- }
- elseif (else_cond) {
+ } elseif (else_cond) {
kill;
- }
- else {
+ } else {
kill;
}
)");