Add list helpers
This CL adds various using statements for the
std::vector<std::unique_ptr<CLASS>> constructs found in the AST.
Change-Id: Ic9a2357cd73b2aafd99e961a38727f2f9874cde5
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/18920
Reviewed-by: David Neto <dneto@google.com>
diff --git a/src/ast/as_expression.h b/src/ast/as_expression.h
index e2d1cc1..16b4f91 100644
--- a/src/ast/as_expression.h
+++ b/src/ast/as_expression.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/expression.h"
#include "src/ast/literal.h"
diff --git a/src/ast/call_expression.cc b/src/ast/call_expression.cc
index 6dad233..5cc9e73 100644
--- a/src/ast/call_expression.cc
+++ b/src/ast/call_expression.cc
@@ -20,12 +20,12 @@
CallExpression::CallExpression() : Expression() {}
CallExpression::CallExpression(std::unique_ptr<Expression> func,
- std::vector<std::unique_ptr<Expression>> params)
+ ExpressionList params)
: Expression(), func_(std::move(func)), params_(std::move(params)) {}
CallExpression::CallExpression(const Source& source,
std::unique_ptr<Expression> func,
- std::vector<std::unique_ptr<Expression>> params)
+ ExpressionList params)
: Expression(source), func_(std::move(func)), params_(std::move(params)) {}
CallExpression::~CallExpression() = default;
diff --git a/src/ast/call_expression.h b/src/ast/call_expression.h
index 56df9b9..597cf43 100644
--- a/src/ast/call_expression.h
+++ b/src/ast/call_expression.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/expression.h"
#include "src/ast/literal.h"
@@ -33,15 +32,14 @@
/// Constructor
/// @param func the function
/// @param params the parameters
- CallExpression(std::unique_ptr<Expression> func,
- std::vector<std::unique_ptr<Expression>> params);
+ CallExpression(std::unique_ptr<Expression> func, ExpressionList params);
/// Constructor
/// @param source the call expression source
/// @param func the function
/// @param params the parameters
CallExpression(const Source& source,
std::unique_ptr<Expression> func,
- std::vector<std::unique_ptr<Expression>> params);
+ ExpressionList params);
/// Move constructor
CallExpression(CallExpression&&) = default;
~CallExpression() override;
@@ -54,13 +52,9 @@
/// Sets the parameters
/// @param params the parameters
- void set_params(std::vector<std::unique_ptr<Expression>> params) {
- params_ = std::move(params);
- }
+ void set_params(ExpressionList params) { params_ = std::move(params); }
/// @returns the parameters
- const std::vector<std::unique_ptr<Expression>>& params() const {
- return params_;
- }
+ const ExpressionList& params() const { return params_; }
/// @returns true if this is a call expression
bool IsCall() const override { return true; }
@@ -77,7 +71,7 @@
CallExpression(const CallExpression&) = delete;
std::unique_ptr<Expression> func_;
- std::vector<std::unique_ptr<Expression>> params_;
+ ExpressionList params_;
};
} // namespace ast
diff --git a/src/ast/call_expression_test.cc b/src/ast/call_expression_test.cc
index 1425f06..e88627f 100644
--- a/src/ast/call_expression_test.cc
+++ b/src/ast/call_expression_test.cc
@@ -25,7 +25,7 @@
TEST_F(CallExpressionTest, Creation) {
auto func = std::make_unique<IdentifierExpression>("func");
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("param1"));
params.push_back(std::make_unique<IdentifierExpression>("param2"));
@@ -69,7 +69,7 @@
TEST_F(CallExpressionTest, IsValid_NullParam) {
auto func = std::make_unique<IdentifierExpression>("func");
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("param1"));
params.push_back(nullptr);
params.push_back(std::make_unique<IdentifierExpression>("param2"));
@@ -80,7 +80,7 @@
TEST_F(CallExpressionTest, IsValid_InvalidFunction) {
auto func = std::make_unique<IdentifierExpression>("");
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("param1"));
CallExpression stmt(std::move(func), std::move(params));
@@ -89,7 +89,7 @@
TEST_F(CallExpressionTest, IsValid_InvalidParam) {
auto func = std::make_unique<IdentifierExpression>("func");
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>(""));
CallExpression stmt(std::move(func), std::move(params));
@@ -111,7 +111,7 @@
TEST_F(CallExpressionTest, ToStr_WithParams) {
auto func = std::make_unique<IdentifierExpression>("func");
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("param1"));
params.push_back(std::make_unique<IdentifierExpression>("param2"));
diff --git a/src/ast/case_statement.cc b/src/ast/case_statement.cc
index 98e3a47..51412a1 100644
--- a/src/ast/case_statement.cc
+++ b/src/ast/case_statement.cc
@@ -20,12 +20,12 @@
CaseStatement::CaseStatement() : Statement() {}
CaseStatement::CaseStatement(std::unique_ptr<Literal> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(), condition_(std::move(condition)), body_(std::move(body)) {}
CaseStatement::CaseStatement(const Source& source,
std::unique_ptr<Literal> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(source),
condition_(std::move(condition)),
body_(std::move(body)) {}
diff --git a/src/ast/case_statement.h b/src/ast/case_statement.h
index 8a3ae09..b8db599 100644
--- a/src/ast/case_statement.h
+++ b/src/ast/case_statement.h
@@ -35,15 +35,14 @@
/// Constructor
/// @param condition the case condition
/// @param body the case body
- CaseStatement(std::unique_ptr<Literal> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ CaseStatement(std::unique_ptr<Literal> condition, StatementList body);
/// Constructor
/// @param source the source information
/// @param condition the case condition
/// @param body the case body
CaseStatement(const Source& source,
std::unique_ptr<Literal> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ StatementList body);
/// Move constructor
CaseStatement(CaseStatement&&) = default;
~CaseStatement() override;
@@ -60,11 +59,9 @@
/// Sets the case body
/// @param body the case body
- void set_body(std::vector<std::unique_ptr<Statement>> body) {
- body_ = std::move(body);
- }
+ void set_body(StatementList body) { body_ = std::move(body); }
/// @returns the case body
- const std::vector<std::unique_ptr<Statement>>& body() const { return body_; }
+ const StatementList& body() const { return body_; }
/// @returns true if this is a case statement
bool IsCase() const override { return true; }
@@ -81,9 +78,12 @@
CaseStatement(const CaseStatement&) = delete;
std::unique_ptr<Literal> condition_;
- std::vector<std::unique_ptr<Statement>> body_;
+ StatementList body_;
};
+/// A list of unique case statements
+using CaseStatementList = std::vector<std::unique_ptr<CaseStatement>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/case_statement_test.cc b/src/ast/case_statement_test.cc
index 27b94c5..b88b0fe 100644
--- a/src/ast/case_statement_test.cc
+++ b/src/ast/case_statement_test.cc
@@ -29,7 +29,7 @@
TEST_F(CaseStatementTest, Creation) {
ast::type::BoolType bool_type;
auto b = std::make_unique<BoolLiteral>(&bool_type, true);
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<NopStatement>());
auto bool_ptr = b.get();
@@ -44,7 +44,7 @@
TEST_F(CaseStatementTest, Creation_WithSource) {
ast::type::BoolType bool_type;
auto b = std::make_unique<BoolLiteral>(&bool_type, true);
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<NopStatement>());
CaseStatement c(Source{20, 2}, std::move(b), std::move(stmts));
@@ -54,7 +54,7 @@
}
TEST_F(CaseStatementTest, IsDefault_WithoutCondition) {
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<NopStatement>());
CaseStatement c;
@@ -83,7 +83,7 @@
TEST_F(CaseStatementTest, IsValid_NullBodyStatement) {
ast::type::BoolType bool_type;
auto b = std::make_unique<BoolLiteral>(&bool_type, true);
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<NopStatement>());
stmts.push_back(nullptr);
@@ -94,7 +94,7 @@
TEST_F(CaseStatementTest, IsValid_InvalidBodyStatement) {
ast::type::BoolType bool_type;
auto b = std::make_unique<BoolLiteral>(&bool_type, true);
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<IfStatement>());
CaseStatement c(std::move(b), std::move(stmts));
@@ -104,7 +104,7 @@
TEST_F(CaseStatementTest, ToStr_WithCondition) {
ast::type::BoolType bool_type;
auto b = std::make_unique<BoolLiteral>(&bool_type, true);
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<NopStatement>());
CaseStatement c(std::move(b), std::move(stmts));
@@ -117,7 +117,7 @@
}
TEST_F(CaseStatementTest, ToStr_WithoutCondition) {
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<NopStatement>());
CaseStatement c(nullptr, std::move(stmts));
diff --git a/src/ast/cast_expression.h b/src/ast/cast_expression.h
index 52966a2..69bfbf5 100644
--- a/src/ast/cast_expression.h
+++ b/src/ast/cast_expression.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/expression.h"
#include "src/ast/literal.h"
diff --git a/src/ast/decorated_variable.h b/src/ast/decorated_variable.h
index 4008a48..5f05416 100644
--- a/src/ast/decorated_variable.h
+++ b/src/ast/decorated_variable.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/variable.h"
#include "src/ast/variable_decoration.h"
@@ -40,13 +39,11 @@
/// Sets a decoration to the variable
/// @param decos the decorations to set
- void set_decorations(std::vector<std::unique_ptr<VariableDecoration>> decos) {
+ void set_decorations(VariableDecorationList decos) {
decorations_ = std::move(decos);
}
/// @returns the decorations attached to this variable
- const std::vector<std::unique_ptr<VariableDecoration>>& decorations() const {
- return decorations_;
- }
+ const VariableDecorationList& decorations() const { return decorations_; }
/// @returns true if this is a decorated variable
bool IsDecorated() const override { return true; }
@@ -61,7 +58,7 @@
private:
DecoratedVariable(const DecoratedVariable&) = delete;
- std::vector<std::unique_ptr<VariableDecoration>> decorations_;
+ VariableDecorationList decorations_;
};
} // namespace ast
diff --git a/src/ast/decorated_variable_test.cc b/src/ast/decorated_variable_test.cc
index 6d96f8e..11954ab 100644
--- a/src/ast/decorated_variable_test.cc
+++ b/src/ast/decorated_variable_test.cc
@@ -72,7 +72,7 @@
DecoratedVariable dv(std::move(var));
dv.set_constructor(std::make_unique<IdentifierExpression>("expr"));
- std::vector<std::unique_ptr<VariableDecoration>> decos;
+ VariableDecorationList decos;
decos.push_back(std::make_unique<BindingDecoration>(2));
decos.push_back(std::make_unique<SetDecoration>(1));
diff --git a/src/ast/else_statement.cc b/src/ast/else_statement.cc
index 307daec..b879a4f 100644
--- a/src/ast/else_statement.cc
+++ b/src/ast/else_statement.cc
@@ -19,20 +19,19 @@
ElseStatement::ElseStatement() : Statement() {}
-ElseStatement::ElseStatement(std::vector<std::unique_ptr<Statement>> body)
+ElseStatement::ElseStatement(StatementList body)
: Statement(), body_(std::move(body)) {}
ElseStatement::ElseStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(), condition_(std::move(condition)), body_(std::move(body)) {}
-ElseStatement::ElseStatement(const Source& source,
- std::vector<std::unique_ptr<Statement>> body)
+ElseStatement::ElseStatement(const Source& source, StatementList body)
: Statement(source), body_(std::move(body)) {}
ElseStatement::ElseStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(source),
condition_(std::move(condition)),
body_(std::move(body)) {}
diff --git a/src/ast/else_statement.h b/src/ast/else_statement.h
index 66511f3..a935bb4 100644
--- a/src/ast/else_statement.h
+++ b/src/ast/else_statement.h
@@ -32,24 +32,22 @@
ElseStatement();
/// Constructor
/// @param body the else body
- explicit ElseStatement(std::vector<std::unique_ptr<Statement>> body);
+ explicit ElseStatement(StatementList body);
/// Constructor
/// @param condition the else condition
/// @param body the else body
- ElseStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ ElseStatement(std::unique_ptr<Expression> condition, StatementList body);
/// Constructor
/// @param source the source information
/// @param body the else body
- ElseStatement(const Source& source,
- std::vector<std::unique_ptr<Statement>> body);
+ ElseStatement(const Source& source, StatementList body);
/// Constructor
/// @param source the source information
/// @param condition the else condition
/// @param body the else body
ElseStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ StatementList body);
/// Move constructor
ElseStatement(ElseStatement&&) = default;
~ElseStatement() override;
@@ -66,11 +64,9 @@
/// Sets the else body
/// @param body the else body
- void set_body(std::vector<std::unique_ptr<Statement>> body) {
- body_ = std::move(body);
- }
+ void set_body(StatementList body) { body_ = std::move(body); }
/// @returns the else body
- const std::vector<std::unique_ptr<Statement>>& body() const { return body_; }
+ const StatementList& body() const { return body_; }
/// @returns true if this is a else statement
bool IsElse() const override { return true; }
@@ -87,9 +83,12 @@
ElseStatement(const ElseStatement&) = delete;
std::unique_ptr<Expression> condition_;
- std::vector<std::unique_ptr<Statement>> body_;
+ StatementList body_;
};
+/// A list of unique else statements
+using ElseStatementList = std::vector<std::unique_ptr<ElseStatement>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/else_statement_test.cc b/src/ast/else_statement_test.cc
index 8e5143d..bfa0c77 100644
--- a/src/ast/else_statement_test.cc
+++ b/src/ast/else_statement_test.cc
@@ -31,7 +31,7 @@
ast::type::BoolType bool_type;
auto cond = std::make_unique<ScalarConstructorExpression>(
std::make_unique<BoolLiteral>(&bool_type, true));
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
auto cond_ptr = cond.get();
@@ -74,7 +74,7 @@
}
TEST_F(ElseStatementTest, IsValid_WithBody) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
ElseStatement e(std::move(body));
@@ -82,7 +82,7 @@
}
TEST_F(ElseStatementTest, IsValid_WithNullBodyStatement) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
body.push_back(nullptr);
@@ -97,7 +97,7 @@
}
TEST_F(ElseStatementTest, IsValid_InvalidBodyStatement) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<IfStatement>());
ElseStatement e(std::move(body));
@@ -108,7 +108,7 @@
ast::type::BoolType bool_type;
auto cond = std::make_unique<ScalarConstructorExpression>(
std::make_unique<BoolLiteral>(&bool_type, true));
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
ElseStatement e(std::move(cond), std::move(body));
@@ -126,7 +126,7 @@
}
TEST_F(ElseStatementTest, ToStr_NoCondition) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
ElseStatement e(std::move(body));
diff --git a/src/ast/entry_point.h b/src/ast/entry_point.h
index 40ca20f..3b4086e 100644
--- a/src/ast/entry_point.h
+++ b/src/ast/entry_point.h
@@ -15,8 +15,10 @@
#ifndef SRC_AST_ENTRY_POINT_H_
#define SRC_AST_ENTRY_POINT_H_
+#include <memory>
#include <ostream>
#include <string>
+#include <vector>
#include "src/ast/node.h"
#include "src/ast/pipeline_stage.h"
@@ -83,6 +85,9 @@
std::string fn_name_;
};
+/// A list of unique entry points.
+using EntryPointList = std::vector<std::unique_ptr<EntryPoint>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/expression.h b/src/ast/expression.h
index 63695b2..065755f 100644
--- a/src/ast/expression.h
+++ b/src/ast/expression.h
@@ -15,6 +15,9 @@
#ifndef SRC_AST_EXPRESSION_H_
#define SRC_AST_EXPRESSION_H_
+#include <memory>
+#include <vector>
+
#include "src/ast/node.h"
#include "src/ast/type/type.h"
@@ -105,6 +108,9 @@
type::Type* result_type_ = nullptr;
};
+/// A list of unique expressions
+using ExpressionList = std::vector<std::unique_ptr<Expression>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/fallthrough_statement.h b/src/ast/fallthrough_statement.h
index 34cd092..d9a8675 100644
--- a/src/ast/fallthrough_statement.h
+++ b/src/ast/fallthrough_statement.h
@@ -15,9 +15,6 @@
#ifndef SRC_AST_FALLTHROUGH_STATEMENT_H_
#define SRC_AST_FALLTHROUGH_STATEMENT_H_
-#include <memory>
-#include <utility>
-
#include "src/ast/expression.h"
#include "src/ast/statement.h"
#include "src/ast/statement_condition.h"
diff --git a/src/ast/function.cc b/src/ast/function.cc
index 4aa7c52..abe5809 100644
--- a/src/ast/function.cc
+++ b/src/ast/function.cc
@@ -20,7 +20,7 @@
namespace ast {
Function::Function(const std::string& name,
- std::vector<std::unique_ptr<Variable>> params,
+ VariableList params,
type::Type* return_type)
: Node(),
name_(name),
@@ -29,7 +29,7 @@
Function::Function(const Source& source,
const std::string& name,
- std::vector<std::unique_ptr<Variable>> params,
+ VariableList params,
type::Type* return_type)
: Node(source),
name_(name),
diff --git a/src/ast/function.h b/src/ast/function.h
index 71afe7c..06ea194 100644
--- a/src/ast/function.h
+++ b/src/ast/function.h
@@ -40,7 +40,7 @@
/// @param params the function parameters
/// @param return_type the return type
Function(const std::string& name,
- std::vector<std::unique_ptr<Variable>> params,
+ VariableList params,
type::Type* return_type);
/// Create a function
/// @param source the variable source
@@ -49,7 +49,7 @@
/// @param return_type the return type
Function(const Source& source,
const std::string& name,
- std::vector<std::unique_ptr<Variable>> params,
+ VariableList params,
type::Type* return_type);
/// Move constructor
Function(Function&&) = default;
@@ -64,13 +64,9 @@
/// Sets the function parameters
/// @param params the function parameters
- void set_params(std::vector<std::unique_ptr<Variable>> params) {
- params_ = std::move(params);
- }
+ void set_params(VariableList params) { params_ = std::move(params); }
/// @returns the function params
- const std::vector<std::unique_ptr<Variable>>& params() const {
- return params_;
- }
+ const VariableList& params() const { return params_; }
/// Sets the return type of the function
/// @param type the return type
@@ -80,11 +76,9 @@
/// Sets the body of the function
/// @param body the function body
- void set_body(std::vector<std::unique_ptr<Statement>> body) {
- body_ = std::move(body);
- }
+ void set_body(StatementList body) { body_ = std::move(body); }
/// @returns the function body
- const std::vector<std::unique_ptr<Statement>>& body() const { return body_; }
+ const StatementList& body() const { return body_; }
/// @returns true if the name and type are both present
bool IsValid() const override;
@@ -101,11 +95,14 @@
Function(const Function&) = delete;
std::string name_;
- std::vector<std::unique_ptr<Variable>> params_;
+ VariableList params_;
type::Type* return_type_ = nullptr;
- std::vector<std::unique_ptr<Statement>> body_;
+ StatementList body_;
};
+/// A list of unique functions
+using FunctionList = std::vector<std::unique_ptr<Function>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/function_test.cc b/src/ast/function_test.cc
index 0e9e2bf..adac67d 100644
--- a/src/ast/function_test.cc
+++ b/src/ast/function_test.cc
@@ -31,7 +31,7 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
auto var_ptr = params[0].get();
@@ -47,7 +47,7 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
@@ -61,11 +61,11 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
Function f("func", std::move(params), &void_type);
@@ -77,7 +77,7 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
@@ -88,7 +88,7 @@
TEST_F(FunctionTest, IsValid_MissingReturnType) {
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
@@ -100,7 +100,7 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
params.push_back(nullptr);
@@ -112,7 +112,7 @@
TEST_F(FunctionTest, IsValid_InvalidParam) {
type::VoidType void_type;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, nullptr));
@@ -124,11 +124,11 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
body.push_back(nullptr);
@@ -141,11 +141,11 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
body.push_back(nullptr);
@@ -158,7 +158,7 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
Function f("func", {}, &void_type);
@@ -178,11 +178,11 @@
type::VoidType void_type;
type::I32Type i32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var", StorageClass::kNone, &i32));
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
Function f("func", std::move(params), &void_type);
@@ -216,7 +216,7 @@
type::I32Type i32;
type::F32Type f32;
- std::vector<std::unique_ptr<Variable>> params;
+ VariableList params;
params.push_back(
std::make_unique<Variable>("var1", StorageClass::kNone, &i32));
params.push_back(
diff --git a/src/ast/identifier_expression.h b/src/ast/identifier_expression.h
index 38adc73..3e46129 100644
--- a/src/ast/identifier_expression.h
+++ b/src/ast/identifier_expression.h
@@ -15,7 +15,6 @@
#ifndef SRC_AST_IDENTIFIER_EXPRESSION_H_
#define SRC_AST_IDENTIFIER_EXPRESSION_H_
-#include <memory>
#include <string>
#include <utility>
#include <vector>
diff --git a/src/ast/if_statement.cc b/src/ast/if_statement.cc
index f000f2e..671cac3 100644
--- a/src/ast/if_statement.cc
+++ b/src/ast/if_statement.cc
@@ -22,12 +22,12 @@
IfStatement::IfStatement() : Statement() {}
IfStatement::IfStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(), condition_(std::move(condition)), body_(std::move(body)) {}
IfStatement::IfStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(source),
condition_(std::move(condition)),
body_(std::move(body)) {}
diff --git a/src/ast/if_statement.h b/src/ast/if_statement.h
index f628b1c..30f2e66 100644
--- a/src/ast/if_statement.h
+++ b/src/ast/if_statement.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/else_statement.h"
#include "src/ast/expression.h"
@@ -34,15 +33,14 @@
/// Constructor
/// @param condition the if condition
/// @param body the if body
- IfStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ IfStatement(std::unique_ptr<Expression> condition, StatementList body);
/// Constructor
/// @param source the source information
/// @param condition the if condition
/// @param body the if body
IfStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ StatementList body);
/// Move constructor
IfStatement(IfStatement&&) = default;
~IfStatement() override;
@@ -57,32 +55,23 @@
/// Sets the if body
/// @param body the if body
- void set_body(std::vector<std::unique_ptr<Statement>> body) {
- body_ = std::move(body);
- }
+ void set_body(StatementList body) { body_ = std::move(body); }
/// @returns the if body
- const std::vector<std::unique_ptr<Statement>>& body() const { return body_; }
+ const StatementList& body() const { return body_; }
/// Sets the else statements
/// @param else_statements the else statements to set
- void set_else_statements(
- std::vector<std::unique_ptr<ElseStatement>> else_statements) {
+ void set_else_statements(ElseStatementList else_statements) {
else_statements_ = std::move(else_statements);
}
/// @returns the else statements
- const std::vector<std::unique_ptr<ElseStatement>>& else_statements() const {
- return else_statements_;
- }
+ const ElseStatementList& else_statements() const { return else_statements_; }
/// Sets the premerge statements
/// @param premerge the premerge statements
- void set_premerge(std::vector<std::unique_ptr<Statement>> premerge) {
- premerge_ = std::move(premerge);
- }
+ void set_premerge(StatementList premerge) { premerge_ = std::move(premerge); }
/// @returns the premerge statements
- const std::vector<std::unique_ptr<Statement>>& premerge() const {
- return premerge_;
- }
+ const StatementList& premerge() const { return premerge_; }
/// @returns true if this is a if statement
bool IsIf() const override { return true; }
@@ -99,9 +88,9 @@
IfStatement(const IfStatement&) = delete;
std::unique_ptr<Expression> condition_;
- std::vector<std::unique_ptr<Statement>> body_;
- std::vector<std::unique_ptr<ElseStatement>> else_statements_;
- std::vector<std::unique_ptr<Statement>> premerge_;
+ StatementList body_;
+ ElseStatementList else_statements_;
+ StatementList premerge_;
};
} // namespace ast
diff --git a/src/ast/if_statement_test.cc b/src/ast/if_statement_test.cc
index 6d6abd4..4786ece 100644
--- a/src/ast/if_statement_test.cc
+++ b/src/ast/if_statement_test.cc
@@ -27,7 +27,7 @@
TEST_F(IfStatementTest, Creation) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
auto cond_ptr = cond.get();
@@ -41,7 +41,7 @@
TEST_F(IfStatementTest, Creation_WithSource) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
IfStatement stmt(Source{20, 2}, std::move(cond), std::move(body));
@@ -57,7 +57,7 @@
TEST_F(IfStatementTest, IsValid) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
IfStatement stmt(std::move(cond), std::move(body));
@@ -66,10 +66,10 @@
TEST_F(IfStatementTest, IsValid_WithElseStatements) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts[0]->set_condition(std::make_unique<IdentifierExpression>("Ident"));
else_stmts.push_back(std::make_unique<ElseStatement>());
@@ -81,13 +81,13 @@
TEST_F(IfStatementTest, IsValid_WithPremerge) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
- std::vector<std::unique_ptr<Statement>> premerge;
+ StatementList premerge;
premerge.push_back(std::make_unique<NopStatement>());
IfStatement stmt(std::move(cond), std::move(body));
@@ -97,7 +97,7 @@
}
TEST_F(IfStatementTest, IsValid_MissingCondition) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
IfStatement stmt(nullptr, std::move(body));
@@ -106,7 +106,7 @@
TEST_F(IfStatementTest, IsValid_InvalidCondition) {
auto cond = std::make_unique<IdentifierExpression>("");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
IfStatement stmt(std::move(cond), std::move(body));
@@ -115,7 +115,7 @@
TEST_F(IfStatementTest, IsValid_NullBodyStatement) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
body.push_back(nullptr);
@@ -125,7 +125,7 @@
TEST_F(IfStatementTest, IsValid_InvalidBodyStatement) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
body.push_back(std::make_unique<IfStatement>());
@@ -135,10 +135,10 @@
TEST_F(IfStatementTest, IsValid_NullElseStatement) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts[0]->set_condition(std::make_unique<IdentifierExpression>("Ident"));
else_stmts.push_back(std::make_unique<ElseStatement>());
@@ -151,10 +151,10 @@
TEST_F(IfStatementTest, IsValid_InvalidElseStatement) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts[0]->set_condition(std::make_unique<IdentifierExpression>(""));
@@ -165,13 +165,13 @@
TEST_F(IfStatementTest, IsValid_NullPremergeStatement) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
- std::vector<std::unique_ptr<Statement>> premerge;
+ StatementList premerge;
premerge.push_back(std::make_unique<NopStatement>());
premerge.push_back(nullptr);
@@ -183,13 +183,13 @@
TEST_F(IfStatementTest, IsValid_InvalidPremergeStatement) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
- std::vector<std::unique_ptr<Statement>> premerge;
+ StatementList premerge;
premerge.push_back(std::make_unique<IfStatement>());
IfStatement stmt(std::move(cond), std::move(body));
@@ -200,14 +200,14 @@
TEST_F(IfStatementTest, IsValid_PremergeWithElseIf) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts[0]->set_condition(std::make_unique<IdentifierExpression>("ident"));
- std::vector<std::unique_ptr<Statement>> premerge;
+ StatementList premerge;
premerge.push_back(std::make_unique<NopStatement>());
IfStatement stmt(std::move(cond), std::move(body));
@@ -218,10 +218,10 @@
TEST_F(IfStatementTest, IsValid_PremergeWithoutElse) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<Statement>> premerge;
+ StatementList premerge;
premerge.push_back(std::make_unique<NopStatement>());
IfStatement stmt(std::move(cond), std::move(body));
@@ -231,10 +231,10 @@
TEST_F(IfStatementTest, IsValid_MultipleElseWiththoutCondition) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts.push_back(std::make_unique<ElseStatement>());
@@ -245,10 +245,10 @@
TEST_F(IfStatementTest, IsValid_ElseNotLast) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts[1]->set_condition(std::make_unique<IdentifierExpression>("ident"));
@@ -260,7 +260,7 @@
TEST_F(IfStatementTest, ToStr) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
IfStatement stmt(std::move(cond), std::move(body));
@@ -280,17 +280,17 @@
TEST_F(IfStatementTest, ToStr_WithElseStatements) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<Statement>> else_if_body;
+ StatementList else_if_body;
else_if_body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<Statement>> else_body;
+ StatementList else_body;
else_body.push_back(std::make_unique<NopStatement>());
else_body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
else_stmts[0]->set_condition(std::make_unique<IdentifierExpression>("ident"));
else_stmts[0]->set_body(std::move(else_if_body));
@@ -329,13 +329,13 @@
TEST_F(IfStatementTest, ToStr_WithPremerge) {
auto cond = std::make_unique<IdentifierExpression>("cond");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
- std::vector<std::unique_ptr<ElseStatement>> else_stmts;
+ ElseStatementList else_stmts;
else_stmts.push_back(std::make_unique<ElseStatement>());
- std::vector<std::unique_ptr<Statement>> premerge;
+ StatementList premerge;
premerge.push_back(std::make_unique<NopStatement>());
IfStatement stmt(std::move(cond), std::move(body));
diff --git a/src/ast/import.h b/src/ast/import.h
index cb67c25..c3d6b82 100644
--- a/src/ast/import.h
+++ b/src/ast/import.h
@@ -15,8 +15,10 @@
#ifndef SRC_AST_IMPORT_H_
#define SRC_AST_IMPORT_H_
+#include <memory>
#include <ostream>
#include <string>
+#include <vector>
#include "src/ast/node.h"
@@ -70,6 +72,9 @@
std::string name_;
};
+/// A list of unique imports
+using ImportList = std::vector<std::unique_ptr<Import>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/loop_statement.cc b/src/ast/loop_statement.cc
index 97efc06..3a853c6 100644
--- a/src/ast/loop_statement.cc
+++ b/src/ast/loop_statement.cc
@@ -19,13 +19,12 @@
LoopStatement::LoopStatement() : Statement() {}
-LoopStatement::LoopStatement(std::vector<std::unique_ptr<Statement>> body,
- std::vector<std::unique_ptr<Statement>> continuing)
+LoopStatement::LoopStatement(StatementList body, StatementList continuing)
: Statement(), body_(std::move(body)), continuing_(std::move(continuing)) {}
LoopStatement::LoopStatement(const Source& source,
- std::vector<std::unique_ptr<Statement>> body,
- std::vector<std::unique_ptr<Statement>> continuing)
+ StatementList body,
+ StatementList continuing)
: Statement(source),
body_(std::move(body)),
continuing_(std::move(continuing)) {}
diff --git a/src/ast/loop_statement.h b/src/ast/loop_statement.h
index e7bd755..c70a0cf 100644
--- a/src/ast/loop_statement.h
+++ b/src/ast/loop_statement.h
@@ -15,9 +15,7 @@
#ifndef SRC_AST_LOOP_STATEMENT_H_
#define SRC_AST_LOOP_STATEMENT_H_
-#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/statement.h"
@@ -32,36 +30,31 @@
/// Constructor
/// @param body the body statements
/// @param continuing the continuing statements
- LoopStatement(std::vector<std::unique_ptr<Statement>> body,
- std::vector<std::unique_ptr<Statement>> continuing);
+ LoopStatement(StatementList body, StatementList continuing);
/// Constructor
/// @param source the loop statement source
/// @param body the body statements
/// @param continuing the continuing statements
LoopStatement(const Source& source,
- std::vector<std::unique_ptr<Statement>> body,
- std::vector<std::unique_ptr<Statement>> continuing);
+ StatementList body,
+ StatementList continuing);
/// Move constructor
LoopStatement(LoopStatement&&) = default;
~LoopStatement() override;
/// Sets the body statements
/// @param body the body statements
- void set_body(std::vector<std::unique_ptr<Statement>> body) {
- body_ = std::move(body);
- }
+ void set_body(StatementList body) { body_ = std::move(body); }
/// @returns the body statements
- const std::vector<std::unique_ptr<Statement>>& body() const { return body_; }
+ const StatementList& body() const { return body_; }
/// Sets the continuing statements
/// @param continuing the continuing statements
- void set_continuing(std::vector<std::unique_ptr<Statement>> continuing) {
+ void set_continuing(StatementList continuing) {
continuing_ = std::move(continuing);
}
/// @returns the continuing statements
- const std::vector<std::unique_ptr<Statement>>& continuing() const {
- return continuing_;
- }
+ const StatementList& continuing() const { return continuing_; }
/// @returns true if there are continuing statements in the loop
bool has_continuing() const { return !continuing_.empty(); }
@@ -79,8 +72,8 @@
private:
LoopStatement(const LoopStatement&) = delete;
- std::vector<std::unique_ptr<Statement>> body_;
- std::vector<std::unique_ptr<Statement>> continuing_;
+ StatementList body_;
+ StatementList continuing_;
};
} // namespace ast
diff --git a/src/ast/loop_statement_test.cc b/src/ast/loop_statement_test.cc
index 37788d5..dad5c6b 100644
--- a/src/ast/loop_statement_test.cc
+++ b/src/ast/loop_statement_test.cc
@@ -14,6 +14,7 @@
#include "src/ast/loop_statement.h"
+#include <memory>
#include <sstream>
#include "gtest/gtest.h"
@@ -28,11 +29,11 @@
using LoopStatementTest = testing::Test;
TEST_F(LoopStatementTest, Creation) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
auto b_ptr = body[0].get();
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
auto c_ptr = continuing[0].get();
@@ -44,10 +45,10 @@
}
TEST_F(LoopStatementTest, Creation_WithSource) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
LoopStatement l(Source{20, 2}, std::move(body), std::move(continuing));
@@ -62,7 +63,7 @@
}
TEST_F(LoopStatementTest, HasContinuing_WithoutContinuing) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
LoopStatement l(std::move(body), {});
@@ -70,10 +71,10 @@
}
TEST_F(LoopStatementTest, HasContinuing_WithContinuing) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
LoopStatement l(std::move(body), std::move(continuing));
@@ -81,10 +82,10 @@
}
TEST_F(LoopStatementTest, IsValid) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
LoopStatement l(std::move(body), std::move(continuing));
@@ -92,7 +93,7 @@
}
TEST_F(LoopStatementTest, IsValid_WithoutContinuing) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
LoopStatement l(std::move(body), {});
@@ -105,11 +106,11 @@
}
TEST_F(LoopStatementTest, IsValid_NullBodyStatement) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
body.push_back(nullptr);
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
LoopStatement l(std::move(body), std::move(continuing));
@@ -117,11 +118,11 @@
}
TEST_F(LoopStatementTest, IsValid_InvalidBodyStatement) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
body.push_back(std::make_unique<IfStatement>());
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
LoopStatement l(std::move(body), std::move(continuing));
@@ -129,10 +130,10 @@
}
TEST_F(LoopStatementTest, IsValid_NullContinuingStatement) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
continuing.push_back(nullptr);
@@ -141,10 +142,10 @@
}
TEST_F(LoopStatementTest, IsValid_InvalidContinuingStatement) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
continuing.push_back(std::make_unique<IfStatement>());
@@ -153,7 +154,7 @@
}
TEST_F(LoopStatementTest, ToStr) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
LoopStatement l(std::move(body), {});
@@ -166,10 +167,10 @@
}
TEST_F(LoopStatementTest, ToStr_WithContinuing) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<KillStatement>());
- std::vector<std::unique_ptr<Statement>> continuing;
+ StatementList continuing;
continuing.push_back(std::make_unique<NopStatement>());
LoopStatement l(std::move(body), std::move(continuing));
diff --git a/src/ast/module.h b/src/ast/module.h
index cfe26e7..8bada47 100644
--- a/src/ast/module.h
+++ b/src/ast/module.h
@@ -43,9 +43,7 @@
imports_.push_back(std::move(import));
}
/// @returns the imports for this module
- const std::vector<std::unique_ptr<Import>>& imports() const {
- return imports_;
- }
+ const ImportList& imports() const { return imports_; }
/// Find the import of the given name
/// @param name The import name to search for
/// @returns the import with the given name if found, nullptr otherwise.
@@ -57,9 +55,7 @@
global_variables_.push_back(std::move(var));
}
/// @returns the global variables for the module
- const std::vector<std::unique_ptr<Variable>>& global_variables() const {
- return global_variables_;
- }
+ const VariableList& global_variables() const { return global_variables_; }
/// Adds an entry point to the module
/// @param ep the entry point to add
@@ -67,9 +63,7 @@
entry_points_.push_back(std::move(ep));
}
/// @returns the entry points in the module
- const std::vector<std::unique_ptr<EntryPoint>>& entry_points() const {
- return entry_points_;
- }
+ const EntryPointList& entry_points() const { return entry_points_; }
/// Adds a type alias to the module
/// @param type the alias to add
@@ -85,9 +79,7 @@
functions_.push_back(std::move(func));
}
/// @returns the modules functions
- const std::vector<std::unique_ptr<Function>>& functions() const {
- return functions_;
- }
+ const FunctionList& functions() const { return functions_; }
/// @returns true if all required fields in the AST are present.
bool IsValid() const;
@@ -98,12 +90,12 @@
private:
Module(const Module&) = delete;
- std::vector<std::unique_ptr<Import>> imports_;
- std::vector<std::unique_ptr<Variable>> global_variables_;
- std::vector<std::unique_ptr<EntryPoint>> entry_points_;
+ ImportList imports_;
+ VariableList global_variables_;
+ EntryPointList entry_points_;
// The alias types are owned by the type manager
std::vector<type::AliasType*> alias_types_;
- std::vector<std::unique_ptr<Function>> functions_;
+ FunctionList functions_;
};
} // namespace ast
diff --git a/src/ast/module_test.cc b/src/ast/module_test.cc
index 2742bd4..f9f5968 100644
--- a/src/ast/module_test.cc
+++ b/src/ast/module_test.cc
@@ -163,8 +163,7 @@
TEST_F(ModuleTest, IsValid_Function) {
type::F32Type f32;
- auto func = std::make_unique<Function>(
- "main", std::vector<std::unique_ptr<Variable>>(), &f32);
+ auto func = std::make_unique<Function>("main", VariableList(), &f32);
Module m;
m.AddFunction(std::move(func));
diff --git a/src/ast/regardless_statement.cc b/src/ast/regardless_statement.cc
index 052ea3d..3e1c52a 100644
--- a/src/ast/regardless_statement.cc
+++ b/src/ast/regardless_statement.cc
@@ -19,15 +19,13 @@
RegardlessStatement::RegardlessStatement() : Statement() {}
-RegardlessStatement::RegardlessStatement(
- std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+RegardlessStatement::RegardlessStatement(std::unique_ptr<Expression> condition,
+ StatementList body)
: Statement(), condition_(std::move(condition)), body_(std::move(body)) {}
-RegardlessStatement::RegardlessStatement(
- const Source& source,
- std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+RegardlessStatement::RegardlessStatement(const Source& source,
+ std::unique_ptr<Expression> condition,
+ StatementList body)
: Statement(source),
condition_(std::move(condition)),
body_(std::move(body)) {}
diff --git a/src/ast/regardless_statement.h b/src/ast/regardless_statement.h
index 06e2959..aad9fc7 100644
--- a/src/ast/regardless_statement.h
+++ b/src/ast/regardless_statement.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/expression.h"
#include "src/ast/statement.h"
@@ -34,14 +33,14 @@
/// @param condition the condition expression
/// @param body the body statements
RegardlessStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ StatementList body);
/// Constructor
/// @param source the regardless statement source
/// @param condition the condition expression
/// @param body the body statements
RegardlessStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ StatementList body);
/// Move constructor
RegardlessStatement(RegardlessStatement&&) = default;
~RegardlessStatement() override;
@@ -56,11 +55,9 @@
/// Sets the body statements
/// @param body the body statements
- void set_body(std::vector<std::unique_ptr<Statement>> body) {
- body_ = std::move(body);
- }
+ void set_body(StatementList body) { body_ = std::move(body); }
/// @returns the body statements
- const std::vector<std::unique_ptr<Statement>>& body() const { return body_; }
+ const StatementList& body() const { return body_; }
/// @returns true if this is an regardless statement
bool IsRegardless() const override { return true; }
@@ -77,7 +74,7 @@
RegardlessStatement(const RegardlessStatement&) = delete;
std::unique_ptr<Expression> condition_;
- std::vector<std::unique_ptr<Statement>> body_;
+ StatementList body_;
};
} // namespace ast
diff --git a/src/ast/regardless_statement_test.cc b/src/ast/regardless_statement_test.cc
index cf15f1f..955ae07 100644
--- a/src/ast/regardless_statement_test.cc
+++ b/src/ast/regardless_statement_test.cc
@@ -29,7 +29,7 @@
TEST_F(RegardlessStatementTest, Creation) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
auto ident_ptr = ident.get();
@@ -43,7 +43,7 @@
TEST_F(RegardlessStatementTest, Creation_WithSource) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
RegardlessStatement r(Source{20, 2}, std::move(ident), std::move(stmts));
@@ -59,7 +59,7 @@
TEST_F(RegardlessStatementTest, IsValid) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
RegardlessStatement r(std::move(ident), std::move(stmts));
@@ -67,7 +67,7 @@
}
TEST_F(RegardlessStatementTest, IsValid_NullCondition) {
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
RegardlessStatement r;
@@ -77,7 +77,7 @@
TEST_F(RegardlessStatementTest, IsValid_InvalidCondition) {
auto ident = std::make_unique<IdentifierExpression>("");
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
RegardlessStatement r(std::move(ident), std::move(stmts));
@@ -86,7 +86,7 @@
TEST_F(RegardlessStatementTest, IsValid_NullBodyStatement) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
stmts.push_back(nullptr);
@@ -98,7 +98,7 @@
TEST_F(RegardlessStatementTest, IsValid_InvalidBodyStatement) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
stmts.push_back(std::make_unique<IfStatement>());
@@ -108,7 +108,7 @@
TEST_F(RegardlessStatementTest, ToStr) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> stmts;
+ StatementList stmts;
stmts.push_back(std::make_unique<KillStatement>());
RegardlessStatement r(std::move(ident), std::move(stmts));
diff --git a/src/ast/statement.h b/src/ast/statement.h
index d14ee31..ee9b13b 100644
--- a/src/ast/statement.h
+++ b/src/ast/statement.h
@@ -15,6 +15,9 @@
#ifndef SRC_AST_STATEMENT_H_
#define SRC_AST_STATEMENT_H_
+#include <memory>
+#include <vector>
+
#include "src/ast/node.h"
namespace tint {
@@ -116,6 +119,9 @@
Statement(const Statement&) = delete;
};
+/// A list of unique statements
+using StatementList = std::vector<std::unique_ptr<Statement>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/struct.cc b/src/ast/struct.cc
index e643e2b..73df8f8 100644
--- a/src/ast/struct.cc
+++ b/src/ast/struct.cc
@@ -19,13 +19,12 @@
Struct::Struct() : Node() {}
-Struct::Struct(StructDecoration decoration,
- std::vector<std::unique_ptr<StructMember>> members)
+Struct::Struct(StructDecoration decoration, StructMemberList members)
: Node(), decoration_(decoration), members_(std::move(members)) {}
Struct::Struct(const Source& source,
StructDecoration decoration,
- std::vector<std::unique_ptr<StructMember>> members)
+ StructMemberList members)
: Node(source), decoration_(decoration), members_(std::move(members)) {}
Struct::~Struct() = default;
diff --git a/src/ast/struct.h b/src/ast/struct.h
index b7b157c..76dcd2e 100644
--- a/src/ast/struct.h
+++ b/src/ast/struct.h
@@ -15,11 +15,9 @@
#ifndef SRC_AST_STRUCT_H_
#define SRC_AST_STRUCT_H_
-#include <memory>
#include <ostream>
#include <string>
#include <utility>
-#include <vector>
#include "src/ast/node.h"
#include "src/ast/struct_decoration.h"
@@ -36,15 +34,14 @@
/// Create a new struct statement
/// @param decoration The struct decorations
/// @param members The struct members
- Struct(StructDecoration decoration,
- std::vector<std::unique_ptr<StructMember>> members);
+ Struct(StructDecoration decoration, StructMemberList members);
/// Create a new struct statement
/// @param source The input source for the import statement
/// @param decoration The struct decorations
/// @param members The struct members
Struct(const Source& source,
StructDecoration decoration,
- std::vector<std::unique_ptr<StructMember>> members);
+ StructMemberList members);
/// Move constructor
Struct(Struct&&) = default;
@@ -58,13 +55,9 @@
/// Sets the struct members
/// @param members the members to set
- void set_members(std::vector<std::unique_ptr<StructMember>> members) {
- members_ = std::move(members);
- }
+ void set_members(StructMemberList members) { members_ = std::move(members); }
/// @returns the members
- const std::vector<std::unique_ptr<StructMember>>& members() const {
- return members_;
- }
+ const StructMemberList& members() const { return members_; }
/// @returns true if the node is valid
bool IsValid() const override;
@@ -78,7 +71,7 @@
Struct(const Struct&) = delete;
StructDecoration decoration_ = StructDecoration::kNone;
- std::vector<std::unique_ptr<StructMember>> members_;
+ StructMemberList members_;
};
} // namespace ast
diff --git a/src/ast/struct_member.cc b/src/ast/struct_member.cc
index 2a95131..a002c6e 100644
--- a/src/ast/struct_member.cc
+++ b/src/ast/struct_member.cc
@@ -17,17 +17,15 @@
namespace tint {
namespace ast {
-StructMember::StructMember(
- const std::string& name,
- type::Type* type,
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations)
+StructMember::StructMember(const std::string& name,
+ type::Type* type,
+ StructMemberDecorationList decorations)
: Node(), name_(name), type_(type), decorations_(std::move(decorations)) {}
-StructMember::StructMember(
- const Source& source,
- const std::string& name,
- type::Type* type,
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations)
+StructMember::StructMember(const Source& source,
+ const std::string& name,
+ type::Type* type,
+ StructMemberDecorationList decorations)
: Node(source),
name_(name),
type_(type),
diff --git a/src/ast/struct_member.h b/src/ast/struct_member.h
index 0aceb81..07af25d 100644
--- a/src/ast/struct_member.h
+++ b/src/ast/struct_member.h
@@ -37,20 +37,18 @@
/// @param name The struct member name
/// @param type The struct member type
/// @param decorations The struct member decorations
- StructMember(
- const std::string& name,
- type::Type* type,
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations);
+ StructMember(const std::string& name,
+ type::Type* type,
+ StructMemberDecorationList decorations);
/// Create a new struct member statement
/// @param source The input source for the struct member statement
/// @param name The struct member name
/// @param type The struct member type
/// @param decorations The struct member decorations
- StructMember(
- const Source& source,
- const std::string& name,
- type::Type* type,
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations);
+ StructMember(const Source& source,
+ const std::string& name,
+ type::Type* type,
+ StructMemberDecorationList decorations);
/// Move constructor
StructMember(StructMember&&) = default;
@@ -68,15 +66,11 @@
type::Type* type() const { return type_; }
/// Sets the decorations
/// @param decorations the decorations
- void set_decorations(
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations) {
+ void set_decorations(StructMemberDecorationList decorations) {
decorations_ = std::move(decorations);
}
/// @returns the decorations
- const std::vector<std::unique_ptr<StructMemberDecoration>>& decorations()
- const {
- return decorations_;
- }
+ const StructMemberDecorationList& decorations() const { return decorations_; }
/// @returns true if the node is valid
bool IsValid() const override;
@@ -91,9 +85,12 @@
std::string name_;
type::Type* type_ = nullptr;
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations_;
+ StructMemberDecorationList decorations_;
};
+/// A list of unique struct members
+using StructMemberList = std::vector<std::unique_ptr<StructMember>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/struct_member_decoration.h b/src/ast/struct_member_decoration.h
index 525bb64..e7a49ba 100644
--- a/src/ast/struct_member_decoration.h
+++ b/src/ast/struct_member_decoration.h
@@ -15,7 +15,9 @@
#ifndef SRC_AST_STRUCT_MEMBER_DECORATION_H_
#define SRC_AST_STRUCT_MEMBER_DECORATION_H_
+#include <memory>
#include <string>
+#include <vector>
namespace tint {
namespace ast {
@@ -40,6 +42,10 @@
StructMemberDecoration();
};
+/// A list of unique struct member decorations
+using StructMemberDecorationList =
+ std::vector<std::unique_ptr<StructMemberDecoration>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/struct_member_test.cc b/src/ast/struct_member_test.cc
index c164959..b6f3ded 100644
--- a/src/ast/struct_member_test.cc
+++ b/src/ast/struct_member_test.cc
@@ -29,7 +29,7 @@
TEST_F(StructMemberTest, Creation) {
type::I32Type i32;
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations;
+ StructMemberDecorationList decorations;
decorations.emplace_back(std::make_unique<StructMemberOffsetDecoration>(4));
StructMember st{"a", &i32, std::move(decorations)};
@@ -72,7 +72,7 @@
TEST_F(StructMemberTest, IsValid_Null_Decoration) {
type::I32Type i32;
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations;
+ StructMemberDecorationList decorations;
decorations.emplace_back(std::make_unique<StructMemberOffsetDecoration>(4));
decorations.push_back(nullptr);
@@ -82,7 +82,7 @@
TEST_F(StructMemberTest, ToStr) {
type::I32Type i32;
- std::vector<std::unique_ptr<StructMemberDecoration>> decorations;
+ StructMemberDecorationList decorations;
decorations.emplace_back(std::make_unique<StructMemberOffsetDecoration>(4));
StructMember st{"a", &i32, std::move(decorations)};
diff --git a/src/ast/struct_test.cc b/src/ast/struct_test.cc
index b214525..15dbad9 100644
--- a/src/ast/struct_test.cc
+++ b/src/ast/struct_test.cc
@@ -14,6 +14,7 @@
#include "src/ast/struct.h"
+#include <memory>
#include <sstream>
#include <utility>
@@ -30,9 +31,9 @@
TEST_F(StructTest, Creation) {
type::I32Type i32;
- std::vector<std::unique_ptr<StructMember>> members;
- members.push_back(std::make_unique<StructMember>(
- "a", &i32, std::vector<std::unique_ptr<StructMemberDecoration>>()));
+ StructMemberList members;
+ members.push_back(
+ std::make_unique<StructMember>("a", &i32, StructMemberDecorationList()));
Struct s{StructDecoration::kNone, std::move(members)};
EXPECT_EQ(s.members().size(), 1);
@@ -44,9 +45,9 @@
TEST_F(StructTest, CreationWithSource) {
type::I32Type i32;
Source source{27, 4};
- std::vector<std::unique_ptr<StructMember>> members;
- members.emplace_back(std::make_unique<StructMember>(
- "a", &i32, std::vector<std::unique_ptr<StructMemberDecoration>>()));
+ StructMemberList members;
+ members.emplace_back(
+ std::make_unique<StructMember>("a", &i32, StructMemberDecorationList()));
Struct s{source, StructDecoration::kNone, std::move(members)};
EXPECT_EQ(s.members().size(), 1);
@@ -62,9 +63,9 @@
TEST_F(StructTest, IsValid_Null_StructMember) {
type::I32Type i32;
- std::vector<std::unique_ptr<StructMember>> members;
- members.push_back(std::make_unique<StructMember>(
- "a", &i32, std::vector<std::unique_ptr<StructMemberDecoration>>()));
+ StructMemberList members;
+ members.push_back(
+ std::make_unique<StructMember>("a", &i32, StructMemberDecorationList()));
members.push_back(nullptr);
Struct s{StructDecoration::kNone, std::move(members)};
@@ -73,9 +74,9 @@
TEST_F(StructTest, IsValid_Invalid_StructMember) {
type::I32Type i32;
- std::vector<std::unique_ptr<StructMember>> members;
- members.push_back(std::make_unique<StructMember>(
- "", &i32, std::vector<std::unique_ptr<StructMemberDecoration>>()));
+ StructMemberList members;
+ members.push_back(
+ std::make_unique<StructMember>("", &i32, StructMemberDecorationList()));
Struct s{StructDecoration::kNone, std::move(members)};
EXPECT_FALSE(s.IsValid());
@@ -84,9 +85,9 @@
TEST_F(StructTest, ToStr) {
type::I32Type i32;
Source source{27, 4};
- std::vector<std::unique_ptr<StructMember>> members;
- members.emplace_back(std::make_unique<StructMember>(
- "a", &i32, std::vector<std::unique_ptr<StructMemberDecoration>>()));
+ StructMemberList members;
+ members.emplace_back(
+ std::make_unique<StructMember>("a", &i32, StructMemberDecorationList()));
Struct s{source, StructDecoration::kNone, std::move(members)};
diff --git a/src/ast/switch_statement.cc b/src/ast/switch_statement.cc
index 3512187..483f3d9 100644
--- a/src/ast/switch_statement.cc
+++ b/src/ast/switch_statement.cc
@@ -21,15 +21,13 @@
SwitchStatement::SwitchStatement() : Statement() {}
-SwitchStatement::SwitchStatement(
- std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<CaseStatement>> body)
+SwitchStatement::SwitchStatement(std::unique_ptr<Expression> condition,
+ CaseStatementList body)
: Statement(), condition_(std::move(condition)), body_(std::move(body)) {}
-SwitchStatement::SwitchStatement(
- const Source& source,
- std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<CaseStatement>> body)
+SwitchStatement::SwitchStatement(const Source& source,
+ std::unique_ptr<Expression> condition,
+ CaseStatementList body)
: Statement(source),
condition_(std::move(condition)),
body_(std::move(body)) {}
diff --git a/src/ast/switch_statement.h b/src/ast/switch_statement.h
index 9d13995..dceaef7 100644
--- a/src/ast/switch_statement.h
+++ b/src/ast/switch_statement.h
@@ -17,8 +17,8 @@
#include <memory>
#include <utility>
-#include <vector>
+#include "src/ast/case_statement.h"
#include "src/ast/expression.h"
#include "src/ast/literal.h"
#include "src/ast/statement.h"
@@ -36,14 +36,14 @@
/// @param condition the switch condition
/// @param body the switch body
SwitchStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<CaseStatement>> body);
+ CaseStatementList body);
/// Constructor
/// @param source the source information
/// @param condition the switch condition
/// @param body the switch body
SwitchStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<CaseStatement>> body);
+ CaseStatementList body);
/// Move constructor
SwitchStatement(SwitchStatement&&) = default;
~SwitchStatement() override;
@@ -60,13 +60,9 @@
/// Sets the switch body
/// @param body the switch body
- void set_body(std::vector<std::unique_ptr<CaseStatement>> body) {
- body_ = std::move(body);
- }
+ void set_body(CaseStatementList body) { body_ = std::move(body); }
/// @returns the Switch body
- const std::vector<std::unique_ptr<CaseStatement>>& body() const {
- return body_;
- }
+ const CaseStatementList& body() const { return body_; }
/// @returns true if this is a switch statement
bool IsSwitch() const override { return true; }
@@ -83,7 +79,7 @@
SwitchStatement(const SwitchStatement&) = delete;
std::unique_ptr<Expression> condition_;
- std::vector<std::unique_ptr<CaseStatement>> body_;
+ CaseStatementList body_;
};
} // namespace ast
diff --git a/src/ast/switch_statement_test.cc b/src/ast/switch_statement_test.cc
index 4bb71f5..08ea6f3 100644
--- a/src/ast/switch_statement_test.cc
+++ b/src/ast/switch_statement_test.cc
@@ -32,9 +32,9 @@
ast::type::BoolType bool_type;
auto lit = std::make_unique<BoolLiteral>(&bool_type, true);
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<CaseStatement>> body;
- body.push_back(std::make_unique<CaseStatement>(
- std::move(lit), std::vector<std::unique_ptr<Statement>>()));
+ CaseStatementList body;
+ body.push_back(
+ std::make_unique<CaseStatement>(std::move(lit), StatementList()));
auto ident_ptr = ident.get();
auto case_ptr = body[0].get();
@@ -48,8 +48,7 @@
TEST_F(SwitchStatementTest, Creation_WithSource) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- SwitchStatement stmt(Source{20, 2}, std::move(ident),
- std::vector<std::unique_ptr<CaseStatement>>());
+ SwitchStatement stmt(Source{20, 2}, std::move(ident), CaseStatementList());
auto src = stmt.source();
EXPECT_EQ(src.line, 20);
EXPECT_EQ(src.column, 2);
@@ -64,9 +63,9 @@
ast::type::BoolType bool_type;
auto lit = std::make_unique<BoolLiteral>(&bool_type, true);
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<CaseStatement>> body;
- body.push_back(std::make_unique<CaseStatement>(
- std::move(lit), std::vector<std::unique_ptr<Statement>>()));
+ CaseStatementList body;
+ body.push_back(
+ std::make_unique<CaseStatement>(std::move(lit), StatementList()));
SwitchStatement stmt(std::move(ident), std::move(body));
EXPECT_TRUE(stmt.IsValid());
@@ -75,9 +74,9 @@
TEST_F(SwitchStatementTest, IsValid_Null_Condition) {
ast::type::BoolType bool_type;
auto lit = std::make_unique<BoolLiteral>(&bool_type, true);
- std::vector<std::unique_ptr<CaseStatement>> body;
- body.push_back(std::make_unique<CaseStatement>(
- std::move(lit), std::vector<std::unique_ptr<Statement>>()));
+ CaseStatementList body;
+ body.push_back(
+ std::make_unique<CaseStatement>(std::move(lit), StatementList()));
SwitchStatement stmt;
stmt.set_body(std::move(body));
@@ -88,9 +87,9 @@
ast::type::BoolType bool_type;
auto lit = std::make_unique<BoolLiteral>(&bool_type, true);
auto ident = std::make_unique<IdentifierExpression>("");
- std::vector<std::unique_ptr<CaseStatement>> body;
- body.push_back(std::make_unique<CaseStatement>(
- std::move(lit), std::vector<std::unique_ptr<Statement>>()));
+ CaseStatementList body;
+ body.push_back(
+ std::make_unique<CaseStatement>(std::move(lit), StatementList()));
SwitchStatement stmt(std::move(ident), std::move(body));
EXPECT_FALSE(stmt.IsValid());
@@ -100,9 +99,9 @@
ast::type::BoolType bool_type;
auto lit = std::make_unique<BoolLiteral>(&bool_type, true);
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<CaseStatement>> body;
- body.push_back(std::make_unique<CaseStatement>(
- std::move(lit), std::vector<std::unique_ptr<Statement>>()));
+ CaseStatementList body;
+ body.push_back(
+ std::make_unique<CaseStatement>(std::move(lit), StatementList()));
body.push_back(nullptr);
SwitchStatement stmt(std::move(ident), std::move(body));
@@ -112,10 +111,10 @@
TEST_F(SwitchStatementTest, IsValid_Invalid_BodyStatement) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> case_body;
+ StatementList case_body;
case_body.push_back(nullptr);
- std::vector<std::unique_ptr<CaseStatement>> body;
+ CaseStatementList body;
body.push_back(
std::make_unique<CaseStatement>(nullptr, std::move(case_body)));
@@ -141,9 +140,9 @@
ast::type::BoolType bool_type;
auto lit = std::make_unique<BoolLiteral>(&bool_type, true);
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<CaseStatement>> body;
- body.push_back(std::make_unique<CaseStatement>(
- std::move(lit), std::vector<std::unique_ptr<Statement>>()));
+ CaseStatementList body;
+ body.push_back(
+ std::make_unique<CaseStatement>(std::move(lit), StatementList()));
SwitchStatement stmt(std::move(ident), std::move(body));
std::ostringstream out;
diff --git a/src/ast/type_constructor_expression.cc b/src/ast/type_constructor_expression.cc
index 4b33bbc..f555902 100644
--- a/src/ast/type_constructor_expression.cc
+++ b/src/ast/type_constructor_expression.cc
@@ -20,15 +20,13 @@
TypeConstructorExpression::TypeConstructorExpression()
: ConstructorExpression() {}
-TypeConstructorExpression::TypeConstructorExpression(
- type::Type* type,
- std::vector<std::unique_ptr<Expression>> values)
+TypeConstructorExpression::TypeConstructorExpression(type::Type* type,
+ ExpressionList values)
: ConstructorExpression(), type_(type), values_(std::move(values)) {}
-TypeConstructorExpression::TypeConstructorExpression(
- const Source& source,
- type::Type* type,
- std::vector<std::unique_ptr<Expression>> values)
+TypeConstructorExpression::TypeConstructorExpression(const Source& source,
+ type::Type* type,
+ ExpressionList values)
: ConstructorExpression(source), type_(type), values_(std::move(values)) {}
TypeConstructorExpression::~TypeConstructorExpression() = default;
diff --git a/src/ast/type_constructor_expression.h b/src/ast/type_constructor_expression.h
index fdc3941..a6e6aba 100644
--- a/src/ast/type_constructor_expression.h
+++ b/src/ast/type_constructor_expression.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/constructor_expression.h"
#include "src/ast/type/type.h"
@@ -32,16 +31,14 @@
/// Constructor
/// @param type the type
/// @param values the values
- explicit TypeConstructorExpression(
- type::Type* type,
- std::vector<std::unique_ptr<Expression>> values);
+ explicit TypeConstructorExpression(type::Type* type, ExpressionList values);
/// Constructor
/// @param source the constructor source
/// @param type the type
/// @param values the constructor values
TypeConstructorExpression(const Source& source,
type::Type* type,
- std::vector<std::unique_ptr<Expression>> values);
+ ExpressionList values);
/// Move constructor
TypeConstructorExpression(TypeConstructorExpression&&) = default;
~TypeConstructorExpression() override;
@@ -57,13 +54,9 @@
/// Set the values
/// @param values the values
- void set_values(std::vector<std::unique_ptr<Expression>> values) {
- values_ = std::move(values);
- }
+ void set_values(ExpressionList values) { values_ = std::move(values); }
/// @returns the values
- const std::vector<std::unique_ptr<Expression>>& values() const {
- return values_;
- }
+ const ExpressionList& values() const { return values_; }
/// @returns true if the node is valid
bool IsValid() const override;
@@ -77,7 +70,7 @@
TypeConstructorExpression(const TypeConstructorExpression&) = delete;
type::Type* type_ = nullptr;
- std::vector<std::unique_ptr<Expression>> values_;
+ ExpressionList values_;
};
} // namespace ast
diff --git a/src/ast/type_constructor_expression_test.cc b/src/ast/type_constructor_expression_test.cc
index 4166995..ad4e01a 100644
--- a/src/ast/type_constructor_expression_test.cc
+++ b/src/ast/type_constructor_expression_test.cc
@@ -16,7 +16,6 @@
#include <memory>
#include <sstream>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/constructor_expression.h"
@@ -32,7 +31,7 @@
TEST_F(TypeConstructorExpressionTest, Creation) {
type::F32Type f32;
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
expr.push_back(std::make_unique<IdentifierExpression>("expr"));
auto expr_ptr = expr[0].get();
@@ -44,7 +43,7 @@
TEST_F(TypeConstructorExpressionTest, Creation_WithSource) {
type::F32Type f32;
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
expr.push_back(std::make_unique<IdentifierExpression>("expr"));
TypeConstructorExpression t(Source{20, 2}, &f32, std::move(expr));
@@ -60,7 +59,7 @@
TEST_F(TypeConstructorExpressionTest, IsValid) {
type::F32Type f32;
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
expr.push_back(std::make_unique<IdentifierExpression>("expr"));
TypeConstructorExpression t(&f32, std::move(expr));
@@ -68,7 +67,7 @@
}
TEST_F(TypeConstructorExpressionTest, IsValid_NullType) {
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
expr.push_back(std::make_unique<IdentifierExpression>("expr"));
TypeConstructorExpression t;
@@ -78,7 +77,7 @@
TEST_F(TypeConstructorExpressionTest, IsValid_NullValue) {
type::F32Type f32;
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
expr.push_back(std::make_unique<IdentifierExpression>("expr"));
expr.push_back(nullptr);
@@ -88,7 +87,7 @@
TEST_F(TypeConstructorExpressionTest, IsValid_InvalidValue) {
type::F32Type f32;
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
expr.push_back(std::make_unique<IdentifierExpression>(""));
TypeConstructorExpression t(&f32, std::move(expr));
@@ -97,7 +96,7 @@
TEST_F(TypeConstructorExpressionTest, IsValid_EmptyValue) {
type::F32Type f32;
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
TypeConstructorExpression t(&f32, std::move(expr));
EXPECT_FALSE(t.IsValid());
@@ -106,7 +105,7 @@
TEST_F(TypeConstructorExpressionTest, ToStr) {
type::F32Type f32;
type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<Expression>> expr;
+ ExpressionList expr;
expr.push_back(std::make_unique<IdentifierExpression>("expr_1"));
expr.push_back(std::make_unique<IdentifierExpression>("expr_2"));
expr.push_back(std::make_unique<IdentifierExpression>("expr_3"));
diff --git a/src/ast/unary_method_expression.cc b/src/ast/unary_method_expression.cc
index 5898fee..9c8a77c 100644
--- a/src/ast/unary_method_expression.cc
+++ b/src/ast/unary_method_expression.cc
@@ -19,15 +19,13 @@
UnaryMethodExpression::UnaryMethodExpression() : Expression() {}
-UnaryMethodExpression::UnaryMethodExpression(
- UnaryMethod op,
- std::vector<std::unique_ptr<Expression>> params)
+UnaryMethodExpression::UnaryMethodExpression(UnaryMethod op,
+ ExpressionList params)
: Expression(), op_(op), params_(std::move(params)) {}
-UnaryMethodExpression::UnaryMethodExpression(
- const Source& source,
- UnaryMethod op,
- std::vector<std::unique_ptr<Expression>> params)
+UnaryMethodExpression::UnaryMethodExpression(const Source& source,
+ UnaryMethod op,
+ ExpressionList params)
: Expression(source), op_(op), params_(std::move(params)) {}
UnaryMethodExpression::~UnaryMethodExpression() = default;
diff --git a/src/ast/unary_method_expression.h b/src/ast/unary_method_expression.h
index 8e67471..58c86c5 100644
--- a/src/ast/unary_method_expression.h
+++ b/src/ast/unary_method_expression.h
@@ -15,9 +15,7 @@
#ifndef SRC_AST_UNARY_METHOD_EXPRESSION_H_
#define SRC_AST_UNARY_METHOD_EXPRESSION_H_
-#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/expression.h"
#include "src/ast/literal.h"
@@ -34,15 +32,14 @@
/// Constructor
/// @param op the op
/// @param params the params
- UnaryMethodExpression(UnaryMethod op,
- std::vector<std::unique_ptr<Expression>> params);
+ UnaryMethodExpression(UnaryMethod op, ExpressionList params);
/// Constructor
/// @param source the unary method source
/// @param op the op
/// @param params the params
UnaryMethodExpression(const Source& source,
UnaryMethod op,
- std::vector<std::unique_ptr<Expression>> params);
+ ExpressionList params);
/// Move constructor
UnaryMethodExpression(UnaryMethodExpression&&) = default;
~UnaryMethodExpression() override;
@@ -55,13 +52,9 @@
/// Sets the params
/// @param params the parameters
- void set_params(std::vector<std::unique_ptr<Expression>> params) {
- params_ = std::move(params);
- }
+ void set_params(ExpressionList params) { params_ = std::move(params); }
/// @returns the params
- const std::vector<std::unique_ptr<Expression>>& params() const {
- return params_;
- }
+ const ExpressionList& params() const { return params_; }
/// @returns true if this is an as expression
bool IsUnaryMethod() const override { return true; }
@@ -78,7 +71,7 @@
UnaryMethodExpression(const UnaryMethodExpression&) = delete;
UnaryMethod op_ = UnaryMethod::kAny;
- std::vector<std::unique_ptr<Expression>> params_;
+ ExpressionList params_;
};
} // namespace ast
diff --git a/src/ast/unary_method_expression_test.cc b/src/ast/unary_method_expression_test.cc
index 2d51e63..92f265e 100644
--- a/src/ast/unary_method_expression_test.cc
+++ b/src/ast/unary_method_expression_test.cc
@@ -14,6 +14,7 @@
#include "src/ast/unary_method_expression.h"
+#include <memory>
#include <sstream>
#include "gtest/gtest.h"
@@ -26,7 +27,7 @@
using UnaryMethodExpressionTest = testing::Test;
TEST_F(UnaryMethodExpressionTest, Creation) {
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("ident"));
auto ident_ptr = params[0].get();
@@ -38,7 +39,7 @@
}
TEST_F(UnaryMethodExpressionTest, Creation_WithSource) {
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("ident"));
UnaryMethodExpression u(Source{20, 2}, UnaryMethod::kAll, std::move(params));
@@ -53,7 +54,7 @@
}
TEST_F(UnaryMethodExpressionTest, IsValid) {
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("ident"));
UnaryMethodExpression u(UnaryMethod::kAll, std::move(params));
@@ -61,7 +62,7 @@
}
TEST_F(UnaryMethodExpressionTest, IsValid_NullParam) {
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("ident"));
params.push_back(nullptr);
@@ -70,7 +71,7 @@
}
TEST_F(UnaryMethodExpressionTest, IsValid_InvalidParam) {
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>(""));
UnaryMethodExpression u(UnaryMethod::kAll, std::move(params));
@@ -84,7 +85,7 @@
}
TEST_F(UnaryMethodExpressionTest, ToStr) {
- std::vector<std::unique_ptr<Expression>> params;
+ ExpressionList params;
params.push_back(std::make_unique<IdentifierExpression>("ident"));
UnaryMethodExpression u(UnaryMethod::kAll, std::move(params));
diff --git a/src/ast/unless_statement.cc b/src/ast/unless_statement.cc
index 10f287d..051d205 100644
--- a/src/ast/unless_statement.cc
+++ b/src/ast/unless_statement.cc
@@ -20,12 +20,12 @@
UnlessStatement::UnlessStatement() : Statement() {}
UnlessStatement::UnlessStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(), condition_(std::move(condition)), body_(std::move(body)) {}
UnlessStatement::UnlessStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body)
+ StatementList body)
: Statement(source),
condition_(std::move(condition)),
body_(std::move(body)) {}
diff --git a/src/ast/unless_statement.h b/src/ast/unless_statement.h
index 26440b4..d3a4451 100644
--- a/src/ast/unless_statement.h
+++ b/src/ast/unless_statement.h
@@ -17,7 +17,6 @@
#include <memory>
#include <utility>
-#include <vector>
#include "src/ast/expression.h"
#include "src/ast/statement.h"
@@ -33,15 +32,14 @@
/// Constructor
/// @param condition the condition expression
/// @param body the body statements
- UnlessStatement(std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ UnlessStatement(std::unique_ptr<Expression> condition, StatementList body);
/// Constructor
/// @param source the unless statement source
/// @param condition the condition expression
/// @param body the body statements
UnlessStatement(const Source& source,
std::unique_ptr<Expression> condition,
- std::vector<std::unique_ptr<Statement>> body);
+ StatementList body);
/// Move constructor
UnlessStatement(UnlessStatement&&) = default;
~UnlessStatement() override;
@@ -56,11 +54,9 @@
/// Sets the body statements
/// @param body the body statements
- void set_body(std::vector<std::unique_ptr<Statement>> body) {
- body_ = std::move(body);
- }
+ void set_body(StatementList body) { body_ = std::move(body); }
/// @returns the body statements
- const std::vector<std::unique_ptr<Statement>>& body() const { return body_; }
+ const StatementList& body() const { return body_; }
/// @returns true if this is an unless statement
bool IsUnless() const override { return true; }
@@ -77,7 +73,7 @@
UnlessStatement(const UnlessStatement&) = delete;
std::unique_ptr<Expression> condition_;
- std::vector<std::unique_ptr<Statement>> body_;
+ StatementList body_;
};
} // namespace ast
diff --git a/src/ast/unless_statement_test.cc b/src/ast/unless_statement_test.cc
index 5cb9443..6937f9b 100644
--- a/src/ast/unless_statement_test.cc
+++ b/src/ast/unless_statement_test.cc
@@ -27,7 +27,7 @@
TEST_F(UnlessStatementTest, Creation) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
auto ident_ptr = ident.get();
@@ -41,7 +41,7 @@
TEST_F(UnlessStatementTest, Creation_WithSource) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
UnlessStatement u(Source{20, 2}, std::move(ident), std::move(body));
@@ -57,7 +57,7 @@
TEST_F(UnlessStatementTest, IsValid) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
UnlessStatement u(std::move(ident), std::move(body));
@@ -65,7 +65,7 @@
}
TEST_F(UnlessStatementTest, IsValid_NullCondition) {
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
UnlessStatement u;
@@ -75,7 +75,7 @@
TEST_F(UnlessStatementTest, IsValid_InvalidCondition) {
auto ident = std::make_unique<IdentifierExpression>("");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
UnlessStatement u(std::move(ident), std::move(body));
@@ -84,7 +84,7 @@
TEST_F(UnlessStatementTest, IsValid_NullBodyStatement) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
body.push_back(nullptr);
@@ -94,7 +94,7 @@
TEST_F(UnlessStatementTest, IsValid_InvalidBodyStatement) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
body.push_back(std::make_unique<IfStatement>());
@@ -104,7 +104,7 @@
TEST_F(UnlessStatementTest, ToStr) {
auto ident = std::make_unique<IdentifierExpression>("ident");
- std::vector<std::unique_ptr<Statement>> body;
+ StatementList body;
body.push_back(std::make_unique<NopStatement>());
UnlessStatement u(std::move(ident), std::move(body));
diff --git a/src/ast/variable.h b/src/ast/variable.h
index b97b83b..196b3f8 100644
--- a/src/ast/variable.h
+++ b/src/ast/variable.h
@@ -19,6 +19,7 @@
#include <ostream>
#include <string>
#include <utility>
+#include <vector>
#include "src/ast/expression.h"
#include "src/ast/node.h"
@@ -170,6 +171,9 @@
std::unique_ptr<Expression> constructor_;
};
+/// A list of unique variables
+using VariableList = std::vector<std::unique_ptr<Variable>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/ast/variable_decoration.h b/src/ast/variable_decoration.h
index 2e7bd04..a468533 100644
--- a/src/ast/variable_decoration.h
+++ b/src/ast/variable_decoration.h
@@ -15,8 +15,10 @@
#ifndef SRC_AST_VARIABLE_DECORATION_H_
#define SRC_AST_VARIABLE_DECORATION_H_
+#include <memory>
#include <ostream>
#include <string>
+#include <vector>
namespace tint {
namespace ast {
@@ -57,6 +59,9 @@
VariableDecoration();
};
+/// A list of unique variable decorations
+using VariableDecorationList = std::vector<std::unique_ptr<VariableDecoration>>;
+
} // namespace ast
} // namespace tint
diff --git a/src/reader/spirv/parser_impl.cc b/src/reader/spirv/parser_impl.cc
index 4b25c61..0dc415e 100644
--- a/src/reader/spirv/parser_impl.cc
+++ b/src/reader/spirv/parser_impl.cc
@@ -549,7 +549,7 @@
}
// Compute members
- std::vector<std::unique_ptr<ast::StructMember>> ast_members;
+ ast::StructMemberList ast_members;
const auto members = struct_ty->element_types();
for (uint32_t member_index = 0; member_index < members.size();
++member_index) {
@@ -558,8 +558,7 @@
// Already emitted diagnostics.
return nullptr;
}
- std::vector<std::unique_ptr<ast::StructMemberDecoration>>
- ast_member_decorations;
+ ast::StructMemberDecorationList ast_member_decorations;
for (auto& deco : GetDecorationsForMember(type_id, member_index)) {
auto ast_member_decoration = ConvertMemberDecoration(deco);
if (ast_member_decoration == nullptr) {
@@ -710,7 +709,7 @@
auto ast_var = std::make_unique<ast::Variable>(Name(id), sc, type);
- std::vector<std::unique_ptr<ast::VariableDecoration>> ast_decorations;
+ ast::VariableDecorationList ast_decorations;
for (auto& deco : GetDecorationsFor(id)) {
if (deco.empty()) {
Fail() << "malformed decoration on ID " << id << ": it is empty";
@@ -774,7 +773,7 @@
<< f.result_id();
}
- std::vector<std::unique_ptr<ast::Variable>> ast_params;
+ ast::VariableList ast_params;
f.ForEachParam([this, &ast_params](const spvtools::opt::Instruction* param) {
auto* ast_type = ConvertType(param->type_id());
if (ast_type != nullptr) {
diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc
index 5916e70..dcc7229 100644
--- a/src/reader/wgsl/parser_impl.cc
+++ b/src/reader/wgsl/parser_impl.cc
@@ -15,6 +15,7 @@
#include "src/reader/wgsl/parser_impl.h"
#include <memory>
+#include <vector>
#include "src/ast/array_accessor_expression.h"
#include "src/ast/as_expression.h"
@@ -396,9 +397,8 @@
// variable_decoration_list
// : ATTR_LEFT variable_decoration (COMMA variable_decoration)* ATTR_RIGHT
-std::vector<std::unique_ptr<ast::VariableDecoration>>
-ParserImpl::variable_decoration_list() {
- std::vector<std::unique_ptr<ast::VariableDecoration>> decos;
+ast::VariableDecorationList ParserImpl::variable_decoration_list() {
+ ast::VariableDecorationList decos;
auto t = peek();
if (!t.IsAttrLeft())
@@ -1045,7 +1045,7 @@
// struct_body_decl
// : BRACKET_LEFT struct_member* BRACKET_RIGHT
-std::vector<std::unique_ptr<ast::StructMember>> ParserImpl::struct_body_decl() {
+ast::StructMemberList ParserImpl::struct_body_decl() {
auto t = peek();
if (!t.IsBracketLeft())
return {};
@@ -1056,7 +1056,7 @@
if (t.IsBracketRight())
return {};
- std::vector<std::unique_ptr<ast::StructMember>> members;
+ ast::StructMemberList members;
for (;;) {
auto mem = struct_member();
if (has_error())
@@ -1116,8 +1116,7 @@
// :
// | ATTR_LEFT (struct_member_decoration COMMA)*
// struct_member_decoration ATTR_RIGHT
-std::vector<std::unique_ptr<ast::StructMemberDecoration>>
-ParserImpl::struct_member_decoration_decl() {
+ast::StructMemberDecorationList ParserImpl::struct_member_decoration_decl() {
auto t = peek();
if (!t.IsAttrLeft())
return {};
@@ -1130,7 +1129,7 @@
return {};
}
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> decos;
+ ast::StructMemberDecorationList decos;
bool found_offset = false;
for (;;) {
auto deco = struct_member_decoration();
@@ -1266,11 +1265,11 @@
// param_list
// :
// | (variable_ident_decl COMMA)* variable_ident_decl
-std::vector<std::unique_ptr<ast::Variable>> ParserImpl::param_list() {
+ast::VariableList ParserImpl::param_list() {
auto t = peek();
auto source = t.source();
- std::vector<std::unique_ptr<ast::Variable>> ret;
+ ast::VariableList ret;
std::string name;
ast::type::Type* type;
@@ -1380,7 +1379,7 @@
// body_stmt
// : BRACKET_LEFT statements BRACKET_RIGHT
-std::vector<std::unique_ptr<ast::Statement>> ParserImpl::body_stmt() {
+ast::StatementList ParserImpl::body_stmt() {
auto t = peek();
if (!t.IsBracketLeft())
return {};
@@ -1429,8 +1428,8 @@
// statements
// : statement*
-std::vector<std::unique_ptr<ast::Statement>> ParserImpl::statements() {
- std::vector<std::unique_ptr<ast::Statement>> ret;
+ast::StatementList ParserImpl::statements() {
+ ast::StatementList ret;
for (;;) {
auto stmt = statement();
@@ -1782,12 +1781,12 @@
// elseif_stmt
// : ELSE_IF paren_rhs_stmt body_stmt elseif_stmt?
-std::vector<std::unique_ptr<ast::ElseStatement>> ParserImpl::elseif_stmt() {
+ast::ElseStatementList ParserImpl::elseif_stmt() {
auto t = peek();
if (!t.IsElseIf())
return {};
- std::vector<std::unique_ptr<ast::ElseStatement>> ret;
+ ast::ElseStatementList ret;
for (;;) {
auto source = t.source();
next(); // Consume the peek
@@ -1846,7 +1845,7 @@
// premerge_stmt
// : PREMERGE body_stmt
-std::vector<std::unique_ptr<ast::Statement>> ParserImpl::premerge_stmt() {
+ast::StatementList ParserImpl::premerge_stmt() {
auto t = peek();
if (!t.IsPremerge())
return {};
@@ -1931,7 +1930,7 @@
return nullptr;
}
- std::vector<std::unique_ptr<ast::CaseStatement>> body;
+ ast::CaseStatementList body;
for (;;) {
auto stmt = switch_body();
if (has_error())
@@ -2006,8 +2005,8 @@
// :
// | statement case_body
// | FALLTHROUGH SEMICOLON
-std::vector<std::unique_ptr<ast::Statement>> ParserImpl::case_body() {
- std::vector<std::unique_ptr<ast::Statement>> ret;
+ast::StatementList ParserImpl::case_body() {
+ ast::StatementList ret;
for (;;) {
auto t = peek();
if (t.IsFallthrough()) {
@@ -2072,7 +2071,7 @@
// continuing_stmt
// : CONTINUING body_stmt
-std::vector<std::unique_ptr<ast::Statement>> ParserImpl::continuing_stmt() {
+ast::StatementList ParserImpl::continuing_stmt() {
auto t = peek();
if (!t.IsContinuing())
return {};
@@ -2148,7 +2147,7 @@
return nullptr;
}
- std::vector<std::unique_ptr<ast::Expression>> params;
+ ast::ExpressionList params;
auto param = const_expr();
if (has_error())
return nullptr;
@@ -2313,8 +2312,7 @@
// argument_expression_list
// : (logical_or_expression COMMA)* logical_or_expression
-std::vector<std::unique_ptr<ast::Expression>>
-ParserImpl::argument_expression_list() {
+ast::ExpressionList ParserImpl::argument_expression_list() {
auto arg = logical_or_expression();
if (has_error())
return {};
@@ -2323,7 +2321,7 @@
return {};
}
- std::vector<std::unique_ptr<ast::Expression>> ret;
+ ast::ExpressionList ret;
ret.push_back(std::move(arg));
for (;;) {
@@ -2379,7 +2377,7 @@
next(); // Consume the peek
t = peek();
- std::vector<std::unique_ptr<ast::Expression>> params;
+ ast::ExpressionList params;
if (!t.IsParenRight() && !t.IsEof()) {
params = argument_expression_list();
if (has_error())
@@ -2501,7 +2499,7 @@
set_error(t, "missing identifier for method call");
return nullptr;
}
- std::vector<std::unique_ptr<ast::Expression>> ident;
+ ast::ExpressionList ident;
ident.push_back(
std::make_unique<ast::IdentifierExpression>(source, t.to_str()));
@@ -2531,7 +2529,7 @@
set_error(t, "missing identifier for method call");
return nullptr;
}
- std::vector<std::unique_ptr<ast::Expression>> ident;
+ ast::ExpressionList ident;
ident.push_back(
std::make_unique<ast::IdentifierExpression>(source, t.to_str()));
diff --git a/src/reader/wgsl/parser_impl.h b/src/reader/wgsl/parser_impl.h
index ad39e3d..6027d1e 100644
--- a/src/reader/wgsl/parser_impl.h
+++ b/src/reader/wgsl/parser_impl.h
@@ -20,12 +20,12 @@
#include <string>
#include <unordered_map>
#include <utility>
-#include <vector>
#include "src/ast/assignment_statement.h"
#include "src/ast/builtin.h"
#include "src/ast/constructor_expression.h"
#include "src/ast/derivative_modifier.h"
+#include "src/ast/else_statement.h"
#include "src/ast/entry_point.h"
#include "src/ast/function.h"
#include "src/ast/import.h"
@@ -113,9 +113,8 @@
/// @returns the const object or nullptr
std::unique_ptr<ast::Variable> global_constant_decl();
/// Parses a `variable_decoration_list` grammar element
- /// @returns a vector of parsed variable decorations
- std::vector<std::unique_ptr<ast::VariableDecoration>>
- variable_decoration_list();
+ /// @returns the parsed variable decorations
+ ast::VariableDecorationList variable_decoration_list();
/// Parses a `variable_decoration` grammar element
/// @returns the variable decoration or nullptr if an error is encountered
std::unique_ptr<ast::VariableDecoration> variable_decoration();
@@ -152,14 +151,13 @@
ast::StructDecoration struct_decoration();
/// Parses a `struct_body_decl` grammar element
/// @returns the struct members
- std::vector<std::unique_ptr<ast::StructMember>> struct_body_decl();
+ ast::StructMemberList struct_body_decl();
/// Parses a `struct_member` grammar element
/// @returns the struct member or nullptr
std::unique_ptr<ast::StructMember> struct_member();
/// Parses a `struct_member_decoration_decl` grammar element
/// @returns the list of decorations
- std::vector<std::unique_ptr<ast::StructMemberDecoration>>
- struct_member_decoration_decl();
+ ast::StructMemberDecorationList struct_member_decoration_decl();
/// Parses a `struct_member_decoration` grammar element
/// @returns the decoration or nullptr if none found
std::unique_ptr<ast::StructMemberDecoration> struct_member_decoration();
@@ -174,7 +172,7 @@
std::unique_ptr<ast::Function> function_header();
/// Parses a `param_list` grammar element
/// @returns the parsed variables
- std::vector<std::unique_ptr<ast::Variable>> param_list();
+ ast::VariableList param_list();
/// Parses a `entry_point_decl` grammar element
/// @returns the EntryPoint or nullptr on error
std::unique_ptr<ast::EntryPoint> entry_point_decl();
@@ -183,13 +181,13 @@
ast::PipelineStage pipeline_stage();
/// Parses a `body_stmt` grammar element
/// @returns the parsed statements
- std::vector<std::unique_ptr<ast::Statement>> body_stmt();
+ ast::StatementList body_stmt();
/// Parses a `paren_rhs_stmt` grammar element
/// @returns the parsed element or nullptr
std::unique_ptr<ast::Expression> paren_rhs_stmt();
/// Parses a `statements` grammar element
/// @returns the statements parsed
- std::vector<std::unique_ptr<ast::Statement>> statements();
+ ast::StatementList statements();
/// Parses a `statement` grammar element
/// @returns the parsed statement or nullptr
std::unique_ptr<ast::Statement> statement();
@@ -207,13 +205,13 @@
std::unique_ptr<ast::IfStatement> if_stmt();
/// Parses a `elseif_stmt` grammar element
/// @returns the parsed elements
- std::vector<std::unique_ptr<ast::ElseStatement>> elseif_stmt();
+ ast::ElseStatementList elseif_stmt();
/// Parses a `else_stmt` grammar element
/// @returns the parsed statement or nullptr
std::unique_ptr<ast::ElseStatement> else_stmt();
/// Parses a `premerge_stmt` grammar element
/// @returns the parsed statements
- std::vector<std::unique_ptr<ast::Statement>> premerge_stmt();
+ ast::StatementList premerge_stmt();
/// Parses a `unless_stmt` grammar element
/// @returns the parsed element or nullptr
std::unique_ptr<ast::UnlessStatement> unless_stmt();
@@ -228,13 +226,13 @@
std::unique_ptr<ast::CaseStatement> switch_body();
/// Parses a `case_body` grammar element
/// @returns the parsed statements
- std::vector<std::unique_ptr<ast::Statement>> case_body();
+ ast::StatementList case_body();
/// Parses a `loop_stmt` grammar element
/// @returns the parsed loop or nullptr
std::unique_ptr<ast::LoopStatement> loop_stmt();
/// Parses a `continuing_stmt` grammar element
/// @returns the parsed statements
- std::vector<std::unique_ptr<ast::Statement>> continuing_stmt();
+ ast::StatementList continuing_stmt();
/// Parses a `const_literal` grammar element
/// @returns the const literal parsed or nullptr if none found
std::unique_ptr<ast::Literal> const_literal();
@@ -246,7 +244,7 @@
std::unique_ptr<ast::Expression> primary_expression();
/// Parses a `argument_expression_list` grammar element
/// @returns the list of arguments
- std::vector<std::unique_ptr<ast::Expression>> argument_expression_list();
+ ast::ExpressionList argument_expression_list();
/// Parses the recursive portion of the postfix_expression
/// @param prefix the left side of the expression
/// @returns the parsed expression or nullptr
diff --git a/src/writer/spirv/builder_constructor_expression_test.cc b/src/writer/spirv/builder_constructor_expression_test.cc
index 7a5fa2f..8e8d86e 100644
--- a/src/writer/spirv/builder_constructor_expression_test.cc
+++ b/src/writer/spirv/builder_constructor_expression_test.cc
@@ -51,7 +51,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
@@ -77,7 +77,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
@@ -103,7 +103,7 @@
std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 3.0f)));
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::move(rel));
diff --git a/src/writer/spirv/builder_function_variable_test.cc b/src/writer/spirv/builder_function_variable_test.cc
index e97f0ef..108d585 100644
--- a/src/writer/spirv/builder_function_variable_test.cc
+++ b/src/writer/spirv/builder_function_variable_test.cc
@@ -62,7 +62,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
@@ -109,7 +109,7 @@
std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 3.0f)));
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::move(rel));
@@ -147,7 +147,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
diff --git a/src/writer/spirv/builder_global_variable_test.cc b/src/writer/spirv/builder_global_variable_test.cc
index 09fed56..4591925 100644
--- a/src/writer/spirv/builder_global_variable_test.cc
+++ b/src/writer/spirv/builder_global_variable_test.cc
@@ -71,7 +71,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
@@ -105,7 +105,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
@@ -136,7 +136,7 @@
ast::type::F32Type f32;
auto v =
std::make_unique<ast::Variable>("var", ast::StorageClass::kOutput, &f32);
- std::vector<std::unique_ptr<ast::VariableDecoration>> decos;
+ ast::VariableDecorationList decos;
decos.push_back(std::make_unique<ast::LocationDecoration>(5));
ast::DecoratedVariable dv(std::move(v));
@@ -157,7 +157,7 @@
ast::type::F32Type f32;
auto v =
std::make_unique<ast::Variable>("var", ast::StorageClass::kOutput, &f32);
- std::vector<std::unique_ptr<ast::VariableDecoration>> decos;
+ ast::VariableDecorationList decos;
decos.push_back(std::make_unique<ast::BindingDecoration>(2));
decos.push_back(std::make_unique<ast::SetDecoration>(3));
@@ -180,7 +180,7 @@
ast::type::F32Type f32;
auto v =
std::make_unique<ast::Variable>("var", ast::StorageClass::kOutput, &f32);
- std::vector<std::unique_ptr<ast::VariableDecoration>> decos;
+ ast::VariableDecorationList decos;
decos.push_back(
std::make_unique<ast::BuiltinDecoration>(ast::Builtin::kPosition));
diff --git a/src/writer/spirv/builder_ident_expression_test.cc b/src/writer/spirv/builder_ident_expression_test.cc
index 0983c72..235c9e2 100644
--- a/src/writer/spirv/builder_ident_expression_test.cc
+++ b/src/writer/spirv/builder_ident_expression_test.cc
@@ -36,7 +36,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
@@ -87,7 +87,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
diff --git a/src/writer/spirv/builder_return_test.cc b/src/writer/spirv/builder_return_test.cc
index 2792876..91c0f56 100644
--- a/src/writer/spirv/builder_return_test.cc
+++ b/src/writer/spirv/builder_return_test.cc
@@ -47,7 +47,7 @@
ast::type::F32Type f32;
ast::type::VectorType vec(&f32, 3);
- std::vector<std::unique_ptr<ast::Expression>> vals;
+ ast::ExpressionList vals;
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
std::make_unique<ast::FloatLiteral>(&f32, 1.0f)));
vals.push_back(std::make_unique<ast::ScalarConstructorExpression>(
diff --git a/src/writer/spirv/builder_type_test.cc b/src/writer/spirv/builder_type_test.cc
index 064ce92..765c24b 100644
--- a/src/writer/spirv/builder_type_test.cc
+++ b/src/writer/spirv/builder_type_test.cc
@@ -277,8 +277,8 @@
TEST_F(BuilderTest_Type, GenerateStruct) {
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> decos;
- std::vector<std::unique_ptr<ast::StructMember>> members;
+ ast::StructMemberDecorationList decos;
+ ast::StructMemberList members;
members.push_back(
std::make_unique<ast::StructMember>("a", &f32, std::move(decos)));
@@ -303,8 +303,8 @@
TEST_F(BuilderTest_Type, GenerateStruct_Decorated) {
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> decos;
- std::vector<std::unique_ptr<ast::StructMember>> members;
+ ast::StructMemberDecorationList decos;
+ ast::StructMemberList members;
members.push_back(
std::make_unique<ast::StructMember>("a", &f32, std::move(decos)));
@@ -331,12 +331,12 @@
TEST_F(BuilderTest_Type, GenerateStruct_DecoratedMembers) {
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> a_decos;
+ ast::StructMemberDecorationList a_decos;
a_decos.push_back(std::make_unique<ast::StructMemberOffsetDecoration>(0));
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> b_decos;
+ ast::StructMemberDecorationList b_decos;
b_decos.push_back(std::make_unique<ast::StructMemberOffsetDecoration>(8));
- std::vector<std::unique_ptr<ast::StructMember>> members;
+ ast::StructMemberList members;
members.push_back(
std::make_unique<ast::StructMember>("a", &f32, std::move(a_decos)));
members.push_back(
diff --git a/src/writer/wgsl/generator_impl.cc b/src/writer/wgsl/generator_impl.cc
index edc12bb..f16a358 100644
--- a/src/writer/wgsl/generator_impl.cc
+++ b/src/writer/wgsl/generator_impl.cc
@@ -690,8 +690,7 @@
return true;
}
-bool GeneratorImpl::EmitStatementBlock(
- const std::vector<std::unique_ptr<ast::Statement>>& statements) {
+bool GeneratorImpl::EmitStatementBlock(const ast::StatementList& statements) {
out_ << " {" << std::endl;
increment_indent();
@@ -710,7 +709,7 @@
}
bool GeneratorImpl::EmitStatementBlockAndNewline(
- const std::vector<std::unique_ptr<ast::Statement>>& statements) {
+ const ast::StatementList& statements) {
const bool result = EmitStatementBlock(statements);
if (result) {
out_ << std::endl;
diff --git a/src/writer/wgsl/generator_impl.h b/src/writer/wgsl/generator_impl.h
index d8b26b3..dca64ad 100644
--- a/src/writer/wgsl/generator_impl.h
+++ b/src/writer/wgsl/generator_impl.h
@@ -15,10 +15,8 @@
#ifndef SRC_WRITER_WGSL_GENERATOR_IMPL_H_
#define SRC_WRITER_WGSL_GENERATOR_IMPL_H_
-#include <memory>
#include <sstream>
#include <string>
-#include <vector>
#include "src/ast/array_accessor_expression.h"
#include "src/ast/constructor_expression.h"
@@ -179,13 +177,11 @@
/// 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);
+ bool EmitStatementBlock(const ast::StatementList& 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);
+ bool EmitStatementBlockAndNewline(const ast::StatementList& statements);
/// Handles statement
/// @param stmt the statement to emit
/// @returns true if the statement was emitted
diff --git a/src/writer/wgsl/generator_impl_alias_type_test.cc b/src/writer/wgsl/generator_impl_alias_type_test.cc
index ef4d6f3..70891dc 100644
--- a/src/writer/wgsl/generator_impl_alias_type_test.cc
+++ b/src/writer/wgsl/generator_impl_alias_type_test.cc
@@ -43,11 +43,11 @@
ast::type::I32Type i32;
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::StructMember>> members;
+ ast::StructMemberList members;
members.push_back(std::make_unique<ast::StructMember>(
- "a", &f32, std::vector<std::unique_ptr<ast::StructMemberDecoration>>{}));
+ "a", &f32, ast::StructMemberDecorationList{}));
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> b_deco;
+ ast::StructMemberDecorationList b_deco;
b_deco.push_back(std::make_unique<ast::StructMemberOffsetDecoration>(4));
members.push_back(
std::make_unique<ast::StructMember>("b", &i32, std::move(b_deco)));
diff --git a/src/writer/wgsl/generator_impl_call_test.cc b/src/writer/wgsl/generator_impl_call_test.cc
index 639c231..25f0083 100644
--- a/src/writer/wgsl/generator_impl_call_test.cc
+++ b/src/writer/wgsl/generator_impl_call_test.cc
@@ -37,7 +37,7 @@
TEST_F(GeneratorImplTest, EmitExpression_Call_WithParams) {
auto id = std::make_unique<ast::IdentifierExpression>("my_func");
- std::vector<std::unique_ptr<ast::Expression>> params;
+ ast::ExpressionList params;
params.push_back(std::make_unique<ast::IdentifierExpression>("param1"));
params.push_back(std::make_unique<ast::IdentifierExpression>("param2"));
ast::CallExpression call(std::move(id), std::move(params));
diff --git a/src/writer/wgsl/generator_impl_case_test.cc b/src/writer/wgsl/generator_impl_case_test.cc
index d23c785..d1c3fd1 100644
--- a/src/writer/wgsl/generator_impl_case_test.cc
+++ b/src/writer/wgsl/generator_impl_case_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/break_statement.h"
@@ -34,7 +33,7 @@
ast::type::I32Type i32;
auto cond = std::make_unique<ast::IntLiteral>(&i32, 5);
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::BreakStatement>());
ast::CaseStatement c(std::move(cond), std::move(body));
@@ -52,7 +51,7 @@
TEST_F(GeneratorImplTest, Emit_Case_Default) {
ast::CaseStatement c;
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::BreakStatement>());
c.set_body(std::move(body));
diff --git a/src/writer/wgsl/generator_impl_constructor_test.cc b/src/writer/wgsl/generator_impl_constructor_test.cc
index 4b3cd9a..44b65d2 100644
--- a/src/writer/wgsl/generator_impl_constructor_test.cc
+++ b/src/writer/wgsl/generator_impl_constructor_test.cc
@@ -12,9 +12,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include <memory>
-#include <vector>
-
#include "gtest/gtest.h"
#include "src/ast/bool_literal.h"
#include "src/ast/float_literal.h"
@@ -81,7 +78,7 @@
ast::type::F32Type f32;
auto lit = std::make_unique<ast::FloatLiteral>(&f32, -1.2e-5);
- std::vector<std::unique_ptr<ast::Expression>> values;
+ ast::ExpressionList values;
values.push_back(
std::make_unique<ast::ScalarConstructorExpression>(std::move(lit)));
@@ -96,7 +93,7 @@
ast::type::BoolType b;
auto lit = std::make_unique<ast::BoolLiteral>(&b, true);
- std::vector<std::unique_ptr<ast::Expression>> values;
+ ast::ExpressionList values;
values.push_back(
std::make_unique<ast::ScalarConstructorExpression>(std::move(lit)));
@@ -111,7 +108,7 @@
ast::type::I32Type i32;
auto lit = std::make_unique<ast::IntLiteral>(&i32, -12345);
- std::vector<std::unique_ptr<ast::Expression>> values;
+ ast::ExpressionList values;
values.push_back(
std::make_unique<ast::ScalarConstructorExpression>(std::move(lit)));
@@ -126,7 +123,7 @@
ast::type::U32Type u32;
auto lit = std::make_unique<ast::UintLiteral>(&u32, 12345);
- std::vector<std::unique_ptr<ast::Expression>> values;
+ ast::ExpressionList values;
values.push_back(
std::make_unique<ast::ScalarConstructorExpression>(std::move(lit)));
@@ -144,7 +141,7 @@
auto lit1 = std::make_unique<ast::FloatLiteral>(&f32, 1.f);
auto lit2 = std::make_unique<ast::FloatLiteral>(&f32, 2.f);
auto lit3 = std::make_unique<ast::FloatLiteral>(&f32, 3.f);
- std::vector<std::unique_ptr<ast::Expression>> values;
+ ast::ExpressionList values;
values.push_back(
std::make_unique<ast::ScalarConstructorExpression>(std::move(lit1)));
values.push_back(
@@ -165,13 +162,13 @@
ast::type::VectorType vec(&f32, 2);
- std::vector<std::unique_ptr<ast::Expression>> mat_values;
+ ast::ExpressionList mat_values;
for (size_t i = 0; i < 3; i++) {
auto lit1 = std::make_unique<ast::FloatLiteral>(&f32, 1.f + (i * 2));
auto lit2 = std::make_unique<ast::FloatLiteral>(&f32, 2.f + (i * 2));
- std::vector<std::unique_ptr<ast::Expression>> values;
+ ast::ExpressionList values;
values.push_back(
std::make_unique<ast::ScalarConstructorExpression>(std::move(lit1)));
values.push_back(
@@ -196,14 +193,14 @@
ast::type::VectorType vec(&f32, 3);
ast::type::ArrayType ary(&vec, 3);
- std::vector<std::unique_ptr<ast::Expression>> ary_values;
+ ast::ExpressionList ary_values;
for (size_t i = 0; i < 3; i++) {
auto lit1 = std::make_unique<ast::FloatLiteral>(&f32, 1.f + (i * 3));
auto lit2 = std::make_unique<ast::FloatLiteral>(&f32, 2.f + (i * 3));
auto lit3 = std::make_unique<ast::FloatLiteral>(&f32, 3.f + (i * 3));
- std::vector<std::unique_ptr<ast::Expression>> values;
+ ast::ExpressionList values;
values.push_back(
std::make_unique<ast::ScalarConstructorExpression>(std::move(lit1)));
values.push_back(
diff --git a/src/writer/wgsl/generator_impl_else_test.cc b/src/writer/wgsl/generator_impl_else_test.cc
index 561babf..52fc4a0 100644
--- a/src/writer/wgsl/generator_impl_else_test.cc
+++ b/src/writer/wgsl/generator_impl_else_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/else_statement.h"
@@ -29,7 +28,7 @@
using GeneratorImplTest = testing::Test;
TEST_F(GeneratorImplTest, Emit_Else) {
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
ast::ElseStatement e(std::move(body));
@@ -46,7 +45,7 @@
TEST_F(GeneratorImplTest, Emit_ElseWithCondition) {
auto cond = std::make_unique<ast::IdentifierExpression>("cond");
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
ast::ElseStatement e(std::move(cond), std::move(body));
diff --git a/src/writer/wgsl/generator_impl_function_test.cc b/src/writer/wgsl/generator_impl_function_test.cc
index 53fa44c..274f789 100644
--- a/src/writer/wgsl/generator_impl_function_test.cc
+++ b/src/writer/wgsl/generator_impl_function_test.cc
@@ -30,7 +30,7 @@
using GeneratorImplTest = testing::Test;
TEST_F(GeneratorImplTest, Emit_Function) {
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
body.push_back(std::make_unique<ast::ReturnStatement>());
@@ -50,13 +50,13 @@
}
TEST_F(GeneratorImplTest, Emit_Function_WithParams) {
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
body.push_back(std::make_unique<ast::ReturnStatement>());
ast::type::F32Type f32;
ast::type::I32Type i32;
- std::vector<std::unique_ptr<ast::Variable>> params;
+ ast::VariableList params;
params.push_back(
std::make_unique<ast::Variable>("a", ast::StorageClass::kNone, &f32));
params.push_back(
diff --git a/src/writer/wgsl/generator_impl_if_test.cc b/src/writer/wgsl/generator_impl_if_test.cc
index 274c7c0..99609ec 100644
--- a/src/writer/wgsl/generator_impl_if_test.cc
+++ b/src/writer/wgsl/generator_impl_if_test.cc
@@ -12,9 +12,6 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include <memory>
-#include <vector>
-
#include "gtest/gtest.h"
#include "src/ast/else_statement.h"
#include "src/ast/identifier_expression.h"
@@ -31,7 +28,7 @@
TEST_F(GeneratorImplTest, Emit_If) {
auto cond = std::make_unique<ast::IdentifierExpression>("cond");
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
ast::IfStatement i(std::move(cond), std::move(body));
@@ -49,15 +46,15 @@
TEST_F(GeneratorImplTest, Emit_IfWithElseIf) {
auto else_cond = std::make_unique<ast::IdentifierExpression>("else_cond");
- std::vector<std::unique_ptr<ast::Statement>> else_body;
+ ast::StatementList else_body;
else_body.push_back(std::make_unique<ast::KillStatement>());
- std::vector<std::unique_ptr<ast::ElseStatement>> elses;
+ ast::ElseStatementList elses;
elses.push_back(std::make_unique<ast::ElseStatement>(std::move(else_cond),
std::move(else_body)));
auto cond = std::make_unique<ast::IdentifierExpression>("cond");
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
ast::IfStatement i(std::move(cond), std::move(body));
@@ -76,14 +73,14 @@
}
TEST_F(GeneratorImplTest, Emit_IfWithElse) {
- std::vector<std::unique_ptr<ast::Statement>> else_body;
+ ast::StatementList else_body;
else_body.push_back(std::make_unique<ast::KillStatement>());
- std::vector<std::unique_ptr<ast::ElseStatement>> elses;
+ ast::ElseStatementList elses;
elses.push_back(std::make_unique<ast::ElseStatement>(std::move(else_body)));
auto cond = std::make_unique<ast::IdentifierExpression>("cond");
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
ast::IfStatement i(std::move(cond), std::move(body));
@@ -104,19 +101,19 @@
TEST_F(GeneratorImplTest, Emit_IfWithMultiple) {
auto else_cond = std::make_unique<ast::IdentifierExpression>("else_cond");
- std::vector<std::unique_ptr<ast::Statement>> else_body;
+ ast::StatementList else_body;
else_body.push_back(std::make_unique<ast::KillStatement>());
- std::vector<std::unique_ptr<ast::Statement>> else_body_2;
+ ast::StatementList else_body_2;
else_body_2.push_back(std::make_unique<ast::KillStatement>());
- std::vector<std::unique_ptr<ast::ElseStatement>> elses;
+ ast::ElseStatementList elses;
elses.push_back(std::make_unique<ast::ElseStatement>(std::move(else_cond),
std::move(else_body)));
elses.push_back(std::make_unique<ast::ElseStatement>(std::move(else_body_2)));
auto cond = std::make_unique<ast::IdentifierExpression>("cond");
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
ast::IfStatement i(std::move(cond), std::move(body));
diff --git a/src/writer/wgsl/generator_impl_loop_test.cc b/src/writer/wgsl/generator_impl_loop_test.cc
index beb2a5c..4ddc0da 100644
--- a/src/writer/wgsl/generator_impl_loop_test.cc
+++ b/src/writer/wgsl/generator_impl_loop_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/kill_statement.h"
@@ -29,7 +28,7 @@
using GeneratorImplTest = testing::Test;
TEST_F(GeneratorImplTest, Emit_Loop) {
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
ast::LoopStatement l(std::move(body), {});
@@ -45,10 +44,10 @@
}
TEST_F(GeneratorImplTest, Emit_LoopWithContinuing) {
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::KillStatement>());
- std::vector<std::unique_ptr<ast::Statement>> continuing;
+ ast::StatementList continuing;
continuing.push_back(std::make_unique<ast::NopStatement>());
ast::LoopStatement l(std::move(body), std::move(continuing));
diff --git a/src/writer/wgsl/generator_impl_regardless_test.cc b/src/writer/wgsl/generator_impl_regardless_test.cc
index 4561921..3a62297 100644
--- a/src/writer/wgsl/generator_impl_regardless_test.cc
+++ b/src/writer/wgsl/generator_impl_regardless_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/identifier_expression.h"
@@ -32,7 +31,7 @@
TEST_F(GeneratorImplTest, Emit_Regardless) {
auto cond = std::make_unique<ast::IdentifierExpression>("cond");
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::NopStatement>());
body.push_back(std::make_unique<ast::KillStatement>());
diff --git a/src/writer/wgsl/generator_impl_switch_test.cc b/src/writer/wgsl/generator_impl_switch_test.cc
index af82f6d..b784f21 100644
--- a/src/writer/wgsl/generator_impl_switch_test.cc
+++ b/src/writer/wgsl/generator_impl_switch_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/break_statement.h"
@@ -33,19 +32,19 @@
TEST_F(GeneratorImplTest, Emit_Switch) {
auto def = std::make_unique<ast::CaseStatement>();
- std::vector<std::unique_ptr<ast::Statement>> def_body;
+ ast::StatementList def_body;
def_body.push_back(std::make_unique<ast::BreakStatement>());
def->set_body(std::move(def_body));
ast::type::I32Type i32;
auto case_val = std::make_unique<ast::IntLiteral>(&i32, 5);
- std::vector<std::unique_ptr<ast::Statement>> case_body;
+ ast::StatementList case_body;
case_body.push_back(std::make_unique<ast::BreakStatement>());
auto case_stmt = std::make_unique<ast::CaseStatement>(std::move(case_val),
std::move(case_body));
- std::vector<std::unique_ptr<ast::CaseStatement>> body;
+ ast::CaseStatementList body;
body.push_back(std::move(case_stmt));
body.push_back(std::move(def));
diff --git a/src/writer/wgsl/generator_impl_type_test.cc b/src/writer/wgsl/generator_impl_type_test.cc
index 86e2489..b9705b8 100644
--- a/src/writer/wgsl/generator_impl_type_test.cc
+++ b/src/writer/wgsl/generator_impl_type_test.cc
@@ -110,11 +110,11 @@
ast::type::I32Type i32;
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::StructMember>> members;
+ ast::StructMemberList members;
members.push_back(std::make_unique<ast::StructMember>(
- "a", &i32, std::vector<std::unique_ptr<ast::StructMemberDecoration>>{}));
+ "a", &i32, ast::StructMemberDecorationList{}));
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> b_deco;
+ ast::StructMemberDecorationList b_deco;
b_deco.push_back(std::make_unique<ast::StructMemberOffsetDecoration>(4));
members.push_back(
std::make_unique<ast::StructMember>("b", &f32, std::move(b_deco)));
@@ -136,11 +136,11 @@
ast::type::I32Type i32;
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::StructMember>> members;
+ ast::StructMemberList members;
members.push_back(std::make_unique<ast::StructMember>(
- "a", &i32, std::vector<std::unique_ptr<ast::StructMemberDecoration>>{}));
+ "a", &i32, ast::StructMemberDecorationList{}));
- std::vector<std::unique_ptr<ast::StructMemberDecoration>> b_deco;
+ ast::StructMemberDecorationList b_deco;
b_deco.push_back(std::make_unique<ast::StructMemberOffsetDecoration>(4));
members.push_back(
std::make_unique<ast::StructMember>("b", &f32, std::move(b_deco)));
diff --git a/src/writer/wgsl/generator_impl_unary_method_test.cc b/src/writer/wgsl/generator_impl_unary_method_test.cc
index 32455bf..83eff87 100644
--- a/src/writer/wgsl/generator_impl_unary_method_test.cc
+++ b/src/writer/wgsl/generator_impl_unary_method_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/identifier_expression.h"
@@ -38,7 +37,7 @@
auto params = GetParam();
auto expr = std::make_unique<ast::IdentifierExpression>("expr");
- std::vector<std::unique_ptr<ast::Expression>> ops;
+ ast::ExpressionList ops;
ops.push_back(std::move(expr));
ast::UnaryMethodExpression method(params.method, std::move(ops));
@@ -62,7 +61,7 @@
auto expr1 = std::make_unique<ast::IdentifierExpression>("expr1");
auto expr2 = std::make_unique<ast::IdentifierExpression>("expr2");
- std::vector<std::unique_ptr<ast::Expression>> ops;
+ ast::ExpressionList ops;
ops.push_back(std::move(expr1));
ops.push_back(std::move(expr2));
diff --git a/src/writer/wgsl/generator_impl_unless_test.cc b/src/writer/wgsl/generator_impl_unless_test.cc
index 47c206b..721f877 100644
--- a/src/writer/wgsl/generator_impl_unless_test.cc
+++ b/src/writer/wgsl/generator_impl_unless_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/identifier_expression.h"
@@ -32,7 +31,7 @@
TEST_F(GeneratorImplTest, Emit_Unless) {
auto cond = std::make_unique<ast::IdentifierExpression>("cond");
- std::vector<std::unique_ptr<ast::Statement>> body;
+ ast::StatementList body;
body.push_back(std::make_unique<ast::NopStatement>());
body.push_back(std::make_unique<ast::KillStatement>());
diff --git a/src/writer/wgsl/generator_impl_variable_test.cc b/src/writer/wgsl/generator_impl_variable_test.cc
index dce656a..8d2d2bb 100644
--- a/src/writer/wgsl/generator_impl_variable_test.cc
+++ b/src/writer/wgsl/generator_impl_variable_test.cc
@@ -13,7 +13,6 @@
// limitations under the License.
#include <memory>
-#include <vector>
#include "gtest/gtest.h"
#include "src/ast/binding_decoration.h"
@@ -55,7 +54,7 @@
TEST_F(GeneratorImplTest, EmitVariable_Decorated) {
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::VariableDecoration>> decos;
+ ast::VariableDecorationList decos;
decos.push_back(std::make_unique<ast::LocationDecoration>(2));
ast::DecoratedVariable dv;
@@ -72,7 +71,7 @@
TEST_F(GeneratorImplTest, EmitVariable_Decorated_Multiple) {
ast::type::F32Type f32;
- std::vector<std::unique_ptr<ast::VariableDecoration>> decos;
+ ast::VariableDecorationList decos;
decos.push_back(
std::make_unique<ast::BuiltinDecoration>(ast::Builtin::kPosition));
decos.push_back(std::make_unique<ast::BindingDecoration>(0));