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));