ast: Remove no-arg constructor for ast::ElseStatement

In a near-future change, AST nodes, such as ast::BlockStatement will no longer
be std::unique_ptrs, and will have to be constructed and owned by an external
class. This means AST nodes can no longer allocate default child nodes.

Bug: tint:322
Change-Id: I6173a63a243fdcbdd8a53c91010e2f628248298f
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/32678
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: dan sinclair <dsinclair@chromium.org>
This commit is contained in:
Ben Clayton 2020-11-14 09:53:12 +00:00 committed by Commit Bot service account
parent 6a788df30e
commit e5e9617220
4 changed files with 14 additions and 19 deletions

View File

@ -17,9 +17,6 @@
namespace tint {
namespace ast {
ElseStatement::ElseStatement()
: Statement(), body_(std::make_unique<ast::BlockStatement>()) {}
ElseStatement::ElseStatement(std::unique_ptr<BlockStatement> body)
: Statement(), body_(std::move(body)) {}

View File

@ -29,8 +29,6 @@ namespace ast {
/// An else statement
class ElseStatement : public Statement {
public:
/// Constructor
ElseStatement();
/// Constructor
/// @param body the else body
explicit ElseStatement(std::unique_ptr<BlockStatement> body);

View File

@ -51,7 +51,7 @@ TEST_F(ElseStatementTest, Creation_WithSource) {
}
TEST_F(ElseStatementTest, IsElse) {
ElseStatement e;
ElseStatement e(create<BlockStatement>());
EXPECT_TRUE(e.IsElse());
}
@ -64,12 +64,12 @@ TEST_F(ElseStatementTest, HasCondition) {
}
TEST_F(ElseStatementTest, HasContition_NullCondition) {
ElseStatement e;
ElseStatement e(create<BlockStatement>());
EXPECT_FALSE(e.HasCondition());
}
TEST_F(ElseStatementTest, IsValid) {
ElseStatement e;
ElseStatement e(create<BlockStatement>());
EXPECT_TRUE(e.IsValid());
}

View File

@ -70,9 +70,9 @@ TEST_F(IfStatementTest, IsValid_WithElseStatements) {
body->append(create<DiscardStatement>());
ElseStatementList else_stmts;
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts[0]->set_condition(create<IdentifierExpression>("Ident"));
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
IfStatement stmt(std::move(cond), std::move(body));
stmt.set_else_statements(std::move(else_stmts));
@ -122,9 +122,9 @@ TEST_F(IfStatementTest, IsValid_NullElseStatement) {
body->append(create<DiscardStatement>());
ElseStatementList else_stmts;
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts[0]->set_condition(create<IdentifierExpression>("Ident"));
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts.push_back(nullptr);
IfStatement stmt(std::move(cond), std::move(body));
@ -138,7 +138,7 @@ TEST_F(IfStatementTest, IsValid_InvalidElseStatement) {
body->append(create<DiscardStatement>());
ElseStatementList else_stmts;
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts[0]->set_condition(create<IdentifierExpression>(""));
IfStatement stmt(std::move(cond), std::move(body));
@ -152,8 +152,8 @@ TEST_F(IfStatementTest, IsValid_MultipleElseWiththoutCondition) {
body->append(create<DiscardStatement>());
ElseStatementList else_stmts;
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
IfStatement stmt(std::move(cond), std::move(body));
stmt.set_else_statements(std::move(else_stmts));
@ -166,8 +166,8 @@ TEST_F(IfStatementTest, IsValid_ElseNotLast) {
body->append(create<DiscardStatement>());
ElseStatementList else_stmts;
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts[1]->set_condition(create<IdentifierExpression>("ident"));
IfStatement stmt(std::move(cond), std::move(body));
@ -208,10 +208,10 @@ TEST_F(IfStatementTest, ToStr_WithElseStatements) {
else_body->append(create<DiscardStatement>());
ElseStatementList else_stmts;
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts[0]->set_condition(create<IdentifierExpression>("ident"));
else_stmts[0]->set_body(std::move(else_if_body));
else_stmts.push_back(create<ElseStatement>());
else_stmts.push_back(create<ElseStatement>(create<BlockStatement>()));
else_stmts[1]->set_body(std::move(else_body));
IfStatement stmt(std::move(cond), std::move(body));