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