Просмотр исходного кода

Binding pattern naming cleanup (#3410)

- Rename `PatternBinding` to `BindingPattern`.
- Use `BindingPattern` rather than `Pattern` in the names of
binding-pattern-specific parse states.
Geoff Romer 2 лет назад
Родитель
Сommit
b8d4e2f41b
100 измененных файлов с 312 добавлено и 241 удалено
  1. 4 4
      toolchain/check/handle_binding_pattern.cpp
  2. 1 1
      toolchain/check/handle_let.cpp
  3. 2 2
      toolchain/check/handle_variable.cpp
  4. 1 1
      toolchain/check/node_stack.cpp
  5. 1 1
      toolchain/check/node_stack.h
  6. 3 3
      toolchain/parse/context.cpp
  7. 11 5
      toolchain/parse/context.h
  8. 36 31
      toolchain/parse/handle_binding_pattern.cpp
  9. 1 1
      toolchain/parse/handle_let.cpp
  10. 3 2
      toolchain/parse/handle_param.cpp
  11. 1 1
      toolchain/parse/handle_var.cpp
  12. 10 10
      toolchain/parse/node_kind.def
  13. 19 19
      toolchain/parse/state.def
  14. 35 0
      toolchain/parse/testdata/array/fail_require_close_bracket.carbon
  15. 24 0
      toolchain/parse/testdata/array/fail_require_semi.carbon
  16. 4 4
      toolchain/parse/testdata/array/fail_syntax.carbon
  17. 1 1
      toolchain/parse/testdata/array/with_length.carbon
  18. 1 1
      toolchain/parse/testdata/array/without_length.carbon
  19. 3 3
      toolchain/parse/testdata/basics/builtin_types.carbon
  20. 1 1
      toolchain/parse/testdata/basics/fail_paren_match_regression.carbon
  21. 2 2
      toolchain/parse/testdata/basics/numeric_literals.carbon
  22. 1 1
      toolchain/parse/testdata/basics/parens.carbon
  23. 2 2
      toolchain/parse/testdata/class/fn_definitions.carbon
  24. 1 1
      toolchain/parse/testdata/class/var.carbon
  25. 1 1
      toolchain/parse/testdata/for/fail_colon_instead_of_in.carbon
  26. 1 1
      toolchain/parse/testdata/for/fail_missing_in.carbon
  27. 2 2
      toolchain/parse/testdata/for/nested.carbon
  28. 1 1
      toolchain/parse/testdata/for/simple.carbon
  29. 1 1
      toolchain/parse/testdata/function/declaration/addr.carbon
  30. 1 1
      toolchain/parse/testdata/function/declaration/fail_missing_implicit_close.carbon
  31. 1 1
      toolchain/parse/testdata/function/declaration/fail_with_identifier_as_param.carbon
  32. 2 2
      toolchain/parse/testdata/function/declaration/implicit_params.carbon
  33. 2 2
      toolchain/parse/testdata/function/declaration/params.carbon
  34. 2 2
      toolchain/parse/testdata/function/definition/with_params.carbon
  35. 2 2
      toolchain/parse/testdata/generics/deduced_params/fail_no_parens.carbon
  36. 2 2
      toolchain/parse/testdata/generics/deduced_params/one.carbon
  37. 2 2
      toolchain/parse/testdata/generics/deduced_params/one_suffix_comma.carbon
  38. 12 12
      toolchain/parse/testdata/generics/deduced_params/six.carbon
  39. 4 4
      toolchain/parse/testdata/generics/deduced_params/two.carbon
  40. 4 4
      toolchain/parse/testdata/generics/deduced_params/two_suffix_comma.carbon
  41. 1 1
      toolchain/parse/testdata/generics/generic_params/basic.carbon
  42. 1 1
      toolchain/parse/testdata/generics/generic_params/template.carbon
  43. 1 1
      toolchain/parse/testdata/generics/generic_params/template_addr.carbon
  44. 4 4
      toolchain/parse/testdata/generics/interface/basic.carbon
  45. 2 2
      toolchain/parse/testdata/generics/interface/fail_no_impl_allowed.carbon
  46. 4 4
      toolchain/parse/testdata/generics/interface/fail_self_param_syntax.carbon
  47. 4 4
      toolchain/parse/testdata/generics/interface/self_pointer.carbon
  48. 2 2
      toolchain/parse/testdata/generics/named_constraint/fail_no_impl_allowed.carbon
  49. 2 2
      toolchain/parse/testdata/generics/params/one.carbon
  50. 2 2
      toolchain/parse/testdata/generics/params/one_suffix_comma.carbon
  51. 12 12
      toolchain/parse/testdata/generics/params/six.carbon
  52. 4 4
      toolchain/parse/testdata/generics/params/two.carbon
  53. 4 4
      toolchain/parse/testdata/generics/params/two_suffix_comma.carbon
  54. 3 3
      toolchain/parse/testdata/if_expr/basic.carbon
  55. 1 1
      toolchain/parse/testdata/if_expr/fail_condition_missing.carbon
  56. 1 1
      toolchain/parse/testdata/if_expr/fail_else_expr_missing.carbon
  57. 1 1
      toolchain/parse/testdata/if_expr/fail_else_missing.carbon
  58. 1 1
      toolchain/parse/testdata/if_expr/fail_then_expr_missing.carbon
  59. 1 1
      toolchain/parse/testdata/if_expr/fail_then_missing.carbon
  60. 1 1
      toolchain/parse/testdata/if_expr/in_type.carbon
  61. 1 1
      toolchain/parse/testdata/if_expr/precedence.carbon
  62. 1 1
      toolchain/parse/testdata/index/assign_to_var.carbon
  63. 1 1
      toolchain/parse/testdata/index/fail_empty_expr.carbon
  64. 1 1
      toolchain/parse/testdata/index/fail_malformed_expr.carbon
  65. 1 1
      toolchain/parse/testdata/let/fail_bad_name.carbon
  66. 1 1
      toolchain/parse/testdata/let/fail_empty.carbon
  67. 1 1
      toolchain/parse/testdata/let/fail_missing_type.carbon
  68. 2 2
      toolchain/parse/testdata/let/fail_missing_value.carbon
  69. 1 1
      toolchain/parse/testdata/let/fail_no_semi.carbon
  70. 2 2
      toolchain/parse/testdata/let/let.carbon
  71. 2 2
      toolchain/parse/testdata/operators/assign.carbon
  72. 2 2
      toolchain/parse/testdata/operators/fail_chained_assign.carbon
  73. 1 1
      toolchain/parse/testdata/operators/fail_infix_uneven_space_after.carbon
  74. 3 3
      toolchain/parse/testdata/operators/fail_invalid_infix.carbon
  75. 1 1
      toolchain/parse/testdata/operators/fail_postincrement.carbon
  76. 1 1
      toolchain/parse/testdata/operators/fail_precedence_as.carbon
  77. 1 1
      toolchain/parse/testdata/operators/fail_precedence_assign.carbon
  78. 1 1
      toolchain/parse/testdata/operators/fail_precedence_star_minus.carbon
  79. 1 1
      toolchain/parse/testdata/operators/fail_precedence_star_star.carbon
  80. 1 1
      toolchain/parse/testdata/operators/fail_star_star_no_space.carbon
  81. 2 2
      toolchain/parse/testdata/operators/fixity_in_params.carbon
  82. 2 2
      toolchain/parse/testdata/operators/fixity_in_var.carbon
  83. 1 1
      toolchain/parse/testdata/operators/infix.carbon
  84. 1 1
      toolchain/parse/testdata/operators/infix_no_space.carbon
  85. 1 1
      toolchain/parse/testdata/operators/infix_with_paren_after.carbon
  86. 1 1
      toolchain/parse/testdata/operators/infix_with_paren_before.carbon
  87. 1 1
      toolchain/parse/testdata/operators/postfix.carbon
  88. 1 1
      toolchain/parse/testdata/operators/postfix_space_after_op.carbon
  89. 1 1
      toolchain/parse/testdata/operators/precedence_as.carbon
  90. 4 4
      toolchain/parse/testdata/operators/precedence_assign.carbon
  91. 1 1
      toolchain/parse/testdata/operators/precedence_unary.carbon
  92. 2 2
      toolchain/parse/testdata/operators/prefix.carbon
  93. 1 1
      toolchain/parse/testdata/operators/prefix_no_space.carbon
  94. 1 1
      toolchain/parse/testdata/operators/recover_infix_uneven_space_before.carbon
  95. 1 1
      toolchain/parse/testdata/operators/recover_postfix_space.carbon
  96. 1 1
      toolchain/parse/testdata/operators/recover_postfix_space_before_comma.carbon
  97. 1 1
      toolchain/parse/testdata/operators/recover_postfix_space_in_call.carbon
  98. 1 1
      toolchain/parse/testdata/operators/recover_postfix_space_surrounding.carbon
  99. 1 1
      toolchain/parse/testdata/operators/recover_prefix_space.carbon
  100. 1 1
      toolchain/parse/testdata/operators/recover_prefix_uneven_space_with_assign.carbon

+ 4 - 4
toolchain/check/handle_pattern_binding.cpp → toolchain/check/handle_binding_pattern.cpp

@@ -11,7 +11,7 @@ namespace Carbon::Check {
 
 auto HandleAddress(Context& context, Parse::NodeId parse_node) -> bool {
   auto self_param_id =
-      context.node_stack().Peek<Parse::NodeKind::PatternBinding>();
+      context.node_stack().Peek<Parse::NodeKind::BindingPattern>();
   if (auto self_param =
           context.insts().Get(self_param_id).TryAs<SemIR::SelfParam>()) {
     self_param->is_addr_self = SemIR::BoolValue::True;
@@ -24,12 +24,12 @@ auto HandleAddress(Context& context, Parse::NodeId parse_node) -> bool {
   return true;
 }
 
-auto HandleGenericPatternBinding(Context& context, Parse::NodeId parse_node)
+auto HandleGenericBindingPattern(Context& context, Parse::NodeId parse_node)
     -> bool {
-  return context.TODO(parse_node, "GenericPatternBinding");
+  return context.TODO(parse_node, "GenericBindingPattern");
 }
 
-auto HandlePatternBinding(Context& context, Parse::NodeId parse_node) -> bool {
+auto HandleBindingPattern(Context& context, Parse::NodeId parse_node) -> bool {
   auto [type_node, parsed_type_id] =
       context.node_stack().PopExprWithParseNode();
   auto type_node_copy = type_node;

+ 1 - 1
toolchain/check/handle_let.cpp

@@ -11,7 +11,7 @@ namespace Carbon::Check {
 auto HandleLetDecl(Context& context, Parse::NodeId parse_node) -> bool {
   auto value_id = context.node_stack().PopExpr();
   SemIR::InstId pattern_id =
-      context.node_stack().Pop<Parse::NodeKind::PatternBinding>();
+      context.node_stack().Pop<Parse::NodeKind::BindingPattern>();
   context.node_stack()
       .PopAndDiscardSoloParseNode<Parse::NodeKind::LetIntroducer>();
 

+ 2 - 2
toolchain/check/handle_variable.cpp

@@ -34,7 +34,7 @@ auto HandleVariableDecl(Context& context, Parse::NodeId parse_node) -> bool {
   auto init_id = SemIR::InstId::Invalid;
   bool has_init =
       context.parse_tree().node_kind(context.node_stack().PeekParseNode()) !=
-      Parse::NodeKind::PatternBinding;
+      Parse::NodeKind::BindingPattern;
   if (has_init) {
     init_id = context.node_stack().PopExpr();
     context.node_stack()
@@ -42,7 +42,7 @@ auto HandleVariableDecl(Context& context, Parse::NodeId parse_node) -> bool {
   }
 
   // Extract the name binding.
-  auto value_id = context.node_stack().Pop<Parse::NodeKind::PatternBinding>();
+  auto value_id = context.node_stack().Pop<Parse::NodeKind::BindingPattern>();
   if (auto bind_name = context.insts().Get(value_id).TryAs<SemIR::BindName>()) {
     // Form a corresponding name in the current context, and bind the name to
     // the variable.

+ 1 - 1
toolchain/check/node_stack.cpp

@@ -14,7 +14,7 @@ auto NodeStack::PrintForStackDump(llvm::raw_ostream& output) const -> void {
   for (auto [i, entry] : llvm::enumerate(stack_)) {
     auto parse_node_kind = parse_tree_->node_kind(entry.parse_node);
     output << "\t" << i << ".\t" << parse_node_kind;
-    if (parse_node_kind == Parse::NodeKind::PatternBinding) {
+    if (parse_node_kind == Parse::NodeKind::BindingPattern) {
       output << " -> " << entry.name_id;
     } else {
       if (entry.inst_id.is_valid()) {

+ 1 - 1
toolchain/check/node_stack.h

@@ -294,6 +294,7 @@ class NodeStack {
   static constexpr auto ParseNodeKindToIdKind(Parse::NodeKind kind) -> IdKind {
     switch (kind) {
       case Parse::NodeKind::ArrayExpr:
+      case Parse::NodeKind::BindingPattern:
       case Parse::NodeKind::CallExpr:
       case Parse::NodeKind::CallExprStart:
       case Parse::NodeKind::IfExprThen:
@@ -303,7 +304,6 @@ class NodeStack {
       case Parse::NodeKind::MemberAccessExpr:
       case Parse::NodeKind::NameExpr:
       case Parse::NodeKind::ParenExpr:
-      case Parse::NodeKind::PatternBinding:
       case Parse::NodeKind::PostfixOperator:
       case Parse::NodeKind::PrefixOperator:
       case Parse::NodeKind::ReturnType:

+ 3 - 3
toolchain/parse/context.cpp

@@ -150,9 +150,9 @@ auto Context::ConsumeIf(Lex::TokenKind kind) -> std::optional<Lex::TokenIndex> {
   return Consume();
 }
 
-auto Context::ConsumeIfPatternKeyword(Lex::TokenKind keyword_token,
-                                      State keyword_state, int subtree_start)
-    -> void {
+auto Context::ConsumeIfBindingPatternKeyword(Lex::TokenKind keyword_token,
+                                             State keyword_state,
+                                             int subtree_start) -> void {
   if (auto token = ConsumeIf(keyword_token)) {
     PushState(Context::StateStackEntry(
         keyword_state, PrecedenceGroup::ForTopLevelExpr(),

+ 11 - 5
toolchain/parse/context.h

@@ -39,8 +39,13 @@ class Context {
   // Possible return values for FindListToken.
   enum class ListTokenKind : int8_t { Comma, Close, CommaClose };
 
-  // Supported kinds for HandlePattern.
-  enum class PatternKind : int8_t { ImplicitParam, Param, Variable, Let };
+  // Supported kinds for HandleBindingPattern.
+  enum class BindingPatternKind : int8_t {
+    ImplicitParam,
+    Param,
+    Variable,
+    Let
+  };
 
   // Supported return values for GetDeclContext.
   enum class DeclContext : int8_t {
@@ -288,9 +293,10 @@ class Context {
   // Propagates an error up the state stack, to the parent state.
   auto ReturnErrorOnState() -> void { state_stack_.back().has_error = true; }
 
-  // For HandlePattern, tries to consume a wrapping keyword.
-  auto ConsumeIfPatternKeyword(Lex::TokenKind keyword_token,
-                               State keyword_state, int subtree_start) -> void;
+  // For HandleBindingPattern, tries to consume a wrapping keyword.
+  auto ConsumeIfBindingPatternKeyword(Lex::TokenKind keyword_token,
+                                      State keyword_state, int subtree_start)
+      -> void;
 
   // Emits a diagnostic for a declaration missing a semi.
   auto EmitExpectedDeclSemi(Lex::TokenKind expected_kind) -> void;

+ 36 - 31
toolchain/parse/handle_pattern.cpp → toolchain/parse/handle_binding_pattern.cpp

@@ -6,37 +6,40 @@
 
 namespace Carbon::Parse {
 
-// Handles PatternAs(ImplicitParam|FunctionParam|Variable|Let).
-static auto HandlePattern(Context& context, Context::PatternKind pattern_kind)
+// Handles BindingPatternAs(ImplicitParam|FunctionParam|Variable|Let).
+static auto HandleBindingPattern(Context& context,
+                                 Context::BindingPatternKind pattern_kind)
     -> void {
   auto state = context.PopState();
 
   // Parameters may have keywords prefixing the pattern. They become the parent
-  // for the full PatternBinding.
-  if (pattern_kind != Context::PatternKind::Variable) {
-    context.ConsumeIfPatternKeyword(
-        Lex::TokenKind::Template, State::PatternTemplate, state.subtree_start);
-    context.ConsumeIfPatternKeyword(Lex::TokenKind::Addr, State::PatternAddress,
-                                    state.subtree_start);
+  // for the full BindingPattern.
+  if (pattern_kind != Context::BindingPatternKind::Variable) {
+    context.ConsumeIfBindingPatternKeyword(Lex::TokenKind::Template,
+                                           State::BindingPatternTemplate,
+                                           state.subtree_start);
+    context.ConsumeIfBindingPatternKeyword(Lex::TokenKind::Addr,
+                                           State::BindingPatternAddress,
+                                           state.subtree_start);
   }
 
   // Handle an invalid pattern introducer for parameters and variables.
   auto on_error = [&]() {
     switch (pattern_kind) {
-      case Context::PatternKind::ImplicitParam:
-      case Context::PatternKind::Param: {
+      case Context::BindingPatternKind::ImplicitParam:
+      case Context::BindingPatternKind::Param: {
         CARBON_DIAGNOSTIC(ExpectedParamName, Error,
                           "Expected parameter declaration.");
         context.emitter().Emit(*context.position(), ExpectedParamName);
         break;
       }
-      case Context::PatternKind::Variable: {
+      case Context::BindingPatternKind::Variable: {
         CARBON_DIAGNOSTIC(ExpectedVariableName, Error,
                           "Expected pattern in `var` declaration.");
         context.emitter().Emit(*context.position(), ExpectedVariableName);
         break;
       }
-      case Context::PatternKind::Let: {
+      case Context::BindingPatternKind::Let: {
         CARBON_DIAGNOSTIC(ExpectedLetBindingName, Error,
                           "Expected pattern in `let` declaration.");
         context.emitter().Emit(*context.position(), ExpectedLetBindingName);
@@ -46,7 +49,7 @@ static auto HandlePattern(Context& context, Context::PatternKind pattern_kind)
     // Add a placeholder for the type.
     context.AddLeafNode(NodeKind::InvalidParse, *context.position(),
                         /*has_error=*/true);
-    state.state = State::PatternFinishAsRegular;
+    state.state = State::BindingPatternFinishAsRegular;
     state.has_error = true;
     context.PushState(state);
   };
@@ -73,8 +76,9 @@ static auto HandlePattern(Context& context, Context::PatternKind pattern_kind)
 
   if (auto kind = context.PositionKind();
       kind == Lex::TokenKind::Colon || kind == Lex::TokenKind::ColonExclaim) {
-    state.state = kind == Lex::TokenKind::Colon ? State::PatternFinishAsRegular
-                                                : State::PatternFinishAsGeneric;
+    state.state = kind == Lex::TokenKind::Colon
+                      ? State::BindingPatternFinishAsRegular
+                      : State::BindingPatternFinishAsGeneric;
     // Use the `:` or `:!` for the root node.
     state.token = context.Consume();
     context.PushState(state);
@@ -85,24 +89,25 @@ static auto HandlePattern(Context& context, Context::PatternKind pattern_kind)
   }
 }
 
-auto HandlePatternAsImplicitParam(Context& context) -> void {
-  HandlePattern(context, Context::PatternKind::ImplicitParam);
+auto HandleBindingPatternAsImplicitParam(Context& context) -> void {
+  HandleBindingPattern(context, Context::BindingPatternKind::ImplicitParam);
 }
 
-auto HandlePatternAsParam(Context& context) -> void {
-  HandlePattern(context, Context::PatternKind::Param);
+auto HandleBindingPatternAsParam(Context& context) -> void {
+  HandleBindingPattern(context, Context::BindingPatternKind::Param);
 }
 
-auto HandlePatternAsVariable(Context& context) -> void {
-  HandlePattern(context, Context::PatternKind::Variable);
+auto HandleBindingPatternAsVariable(Context& context) -> void {
+  HandleBindingPattern(context, Context::BindingPatternKind::Variable);
 }
 
-auto HandlePatternAsLet(Context& context) -> void {
-  HandlePattern(context, Context::PatternKind::Let);
+auto HandleBindingPatternAsLet(Context& context) -> void {
+  HandleBindingPattern(context, Context::BindingPatternKind::Let);
 }
 
-// Handles PatternFinishAs(Generic|Regular).
-static auto HandlePatternFinish(Context& context, NodeKind node_kind) -> void {
+// Handles BindingPatternFinishAs(Generic|Regular).
+static auto HandleBindingPatternFinish(Context& context, NodeKind node_kind)
+    -> void {
   auto state = context.PopState();
 
   context.AddNode(node_kind, state.token, state.subtree_start, state.has_error);
@@ -114,15 +119,15 @@ static auto HandlePatternFinish(Context& context, NodeKind node_kind) -> void {
   }
 }
 
-auto HandlePatternFinishAsGeneric(Context& context) -> void {
-  HandlePatternFinish(context, NodeKind::GenericPatternBinding);
+auto HandleBindingPatternFinishAsGeneric(Context& context) -> void {
+  HandleBindingPatternFinish(context, NodeKind::GenericBindingPattern);
 }
 
-auto HandlePatternFinishAsRegular(Context& context) -> void {
-  HandlePatternFinish(context, NodeKind::PatternBinding);
+auto HandleBindingPatternFinishAsRegular(Context& context) -> void {
+  HandleBindingPatternFinish(context, NodeKind::BindingPattern);
 }
 
-auto HandlePatternAddress(Context& context) -> void {
+auto HandleBindingPatternAddress(Context& context) -> void {
   auto state = context.PopState();
 
   context.AddNode(NodeKind::Address, state.token, state.subtree_start,
@@ -134,7 +139,7 @@ auto HandlePatternAddress(Context& context) -> void {
   }
 }
 
-auto HandlePatternTemplate(Context& context) -> void {
+auto HandleBindingPatternTemplate(Context& context) -> void {
   auto state = context.PopState();
 
   context.AddNode(NodeKind::Template, state.token, state.subtree_start,

+ 1 - 1
toolchain/parse/handle_let.cpp

@@ -16,7 +16,7 @@ auto HandleLet(Context& context) -> void {
   context.AddLeafNode(NodeKind::LetIntroducer, context.Consume());
 
   // This will start at the pattern.
-  context.PushState(State::PatternAsLet);
+  context.PushState(State::BindingPatternAsLet);
 }
 
 auto HandleLetAfterPattern(Context& context) -> void {

+ 3 - 2
toolchain/parse/handle_param.cpp

@@ -16,12 +16,13 @@ static auto HandleParam(Context& context, State pattern_state,
 }
 
 auto HandleParamAsImplicit(Context& context) -> void {
-  HandleParam(context, State::PatternAsImplicitParam,
+  HandleParam(context, State::BindingPatternAsImplicitParam,
               State::ParamFinishAsImplicit);
 }
 
 auto HandleParamAsRegular(Context& context) -> void {
-  HandleParam(context, State::PatternAsParam, State::ParamFinishAsRegular);
+  HandleParam(context, State::BindingPatternAsParam,
+              State::ParamFinishAsRegular);
 }
 
 // Handles ParamFinishAs(Implicit|Regular).

+ 1 - 1
toolchain/parse/handle_var.cpp

@@ -23,7 +23,7 @@ static auto HandleVar(Context& context, State finish_state,
     context.AddLeafNode(NodeKind::ReturnedModifier, returned_token);
   }
 
-  context.PushState(State::PatternAsVariable);
+  context.PushState(State::BindingPatternAsVariable);
 }
 
 auto HandleVarAsDecl(Context& context) -> void {

+ 10 - 10
toolchain/parse/node_kind.def

@@ -193,8 +193,8 @@ CARBON_PARSE_NODE_KIND_BRACKET(FunctionDecl, FunctionIntroducer,
                                    CARBON_IF_ERROR(CARBON_TOKEN(Fn)))
 
 // A parameter list, possibly implicit:
-//   [Implicit]ParamertListStart
-//   _external_: [Generic]PatternBinding
+//   [Implicit]ParamListStart
+//   _external_: [Generic]BindingPattern
 //   ParamListComma
 // [Implicit]ParamList
 //
@@ -223,23 +223,23 @@ CARBON_PARSE_NODE_KIND_CHILD_COUNT(ArrayExprSemi, 2,
 CARBON_PARSE_NODE_KIND_BRACKET(ArrayExpr, ArrayExprSemi,
                                CARBON_TOKEN(CloseSquareBracket))
 
-// A pattern binding, such as `name: Type`:
+// A binding pattern, such as `name: Type`:
 //       Name or SelfValueName
 //       _external_: type expression
-//     [Generic]PatternBinding
+//     [Generic]BindingPattern
 //   _optional_ Address
 // _optional_ Template
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(PatternBinding, 2,
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(BindingPattern, 2,
                                    CARBON_TOKEN(Colon)
                                        CARBON_IF_ERROR(CARBON_ANY_TOKEN))
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(GenericPatternBinding, 2,
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(GenericBindingPattern, 2,
                                    CARBON_TOKEN(ColonExclaim))
 CARBON_PARSE_NODE_KIND_CHILD_COUNT(Address, 1, CARBON_TOKEN(Addr))
 CARBON_PARSE_NODE_KIND_CHILD_COUNT(Template, 1, CARBON_TOKEN(Template))
 
 // `let`:
 //   LetIntroducer
-//   _external_: PatternBinding
+//   _external_: BindingPattern
 //   LetInitializer
 //   _external_: expression
 // LetDecl
@@ -252,7 +252,7 @@ CARBON_PARSE_NODE_KIND_BRACKET(LetDecl, LetIntroducer,
 // `var` and `returned var`:
 //   VariableIntroducer
 //   _optional_ ReturnedModifier
-//   _external_: PatternBinding
+//   _external_: BindingPattern
 //   _optional_ VariableInitializer
 //   _optional_ _external_: expression
 // VariableDecl
@@ -305,7 +305,7 @@ CARBON_PARSE_NODE_KIND_BRACKET(ReturnStatement, ReturnStatementStart,
 // `for`:
 //     ForHeaderStart
 //       VariableIntroducer
-//       _external_: PatternBinding
+//       _external_: BindingPattern
 //     ForIn
 //     _external_: expression
 //   ForHeader
@@ -630,7 +630,7 @@ CARBON_PARSE_NODE_KIND_BRACKET(NamedConstraintDecl, NamedConstraintIntroducer,
 //   SelfValueName
 //   SelfValueNameExpr
 //   SelfTypeNameExpr
-// PatternBinding
+// BindingPattern
 CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfValueName, 0,
                                    CARBON_TOKEN(SelfValueIdentifier))
 CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfValueNameExpr, 0,

+ 19 - 19
toolchain/parse/state.def

@@ -627,7 +627,7 @@ CARBON_PARSE_STATE(Package)
 //
 //  ...
 // ^
-//   1. PatternAs(ImplicitParam|Param)
+//   1. BindingPatternAs(ImplicitParam|Param)
 //   2. ParamFinishAs(Implicit|Regular)
 CARBON_PARSE_STATE_VARIANTS2(Param, Implicit, Regular)
 
@@ -737,18 +737,18 @@ CARBON_PARSE_STATE_VARIANTS2(ParenExprParamFinish, Unknown, Tuple)
 //   (state done)
 CARBON_PARSE_STATE_VARIANTS2(ParenExprFinish, Normal, Tuple)
 
-// Handles pattern parsing for a pattern, enqueuing type expression processing.
-// This covers parameter, `let`, and `var` support.
+// Handles the initial part of a binding pattern, enqueuing type expression
+// processing.
 //
 // template    (variant is not Variable)
 // ^~~~~~~~
-//   4. PatternTemplate
+//   4. BindingPatternTemplate
 //
 // THEN
 //
 // addr        (variant is not Variable)
 // ^~~~
-//   3. PatternAddress
+//   3. BindingPatternAddress
 //
 // THEN
 //
@@ -757,41 +757,41 @@ CARBON_PARSE_STATE_VARIANTS2(ParenExprFinish, Normal, Tuple)
 // self: ...
 // ^~~~~
 //   1. Expr
-//   2. PatternFinishAsRegular
+//   2. BindingPatternFinishAsRegular
 //
 // name:! ...
 // ^~~~~~
 // self:! ...
 // ^~~~~~
 //   1. Expr
-//   2. PatternFinishAsGeneric
+//   2. BindingPatternFinishAsGeneric
 //
 //  ???
 // ^
-//   1. PatternFinishAsRegular
-CARBON_PARSE_STATE_VARIANTS4(Pattern, ImplicitParam, Param, Variable,
+//   1. BindingPatternFinishAsRegular
+CARBON_PARSE_STATE_VARIANTS4(BindingPattern, ImplicitParam, Param, Variable,
                              Let)
 
-// Handles `addr` in a pattern.
+// Handles `addr` in a binding pattern.
 //
 // addr name: type
 //                ^
 //   (state done)
-CARBON_PARSE_STATE(PatternAddress)
+CARBON_PARSE_STATE(BindingPatternAddress)
 
-// Handles `template` in a pattern.
+// Handles `template` in a binding pattern.
 //
 // template name:! type
 //                     ^
 //   (state done)
-CARBON_PARSE_STATE(PatternTemplate)
+CARBON_PARSE_STATE(BindingPatternTemplate)
 
-// Finishes pattern processing.
+// Finishes binding pattern processing.
 //
 // name: type
 //           ^
 //   (state done)
-CARBON_PARSE_STATE_VARIANTS2(PatternFinish, Generic, Regular)
+CARBON_PARSE_STATE_VARIANTS2(BindingPatternFinish, Generic, Regular)
 
 // Handles a single statement. While typically within a statement block, this
 // can also be used for error recovery where we expect a statement block and
@@ -850,7 +850,7 @@ CARBON_PARSE_STATE(StatementBreakFinish)
 //   (state done)
 CARBON_PARSE_STATE(StatementContinueFinish)
 
-// Handles `for` processing of `(var`, proceeding to a pattern before
+// Handles `for` processing of `(var`, proceeding to a binding pattern before
 // continuing.
 //
 // for ( var ... )
@@ -1025,13 +1025,13 @@ CARBON_PARSE_STATE_VARIANTS3(TypeAfterParams, Class, Interface, NamedConstraint)
 //
 // var ...             (variant is not Returned)
 // ^~~
-//   1. PatternAsVariable
+//   1. BindingPatternAsVariable
 //   2. VarAfterPattern
 //   3. VarFinishAs(Decl|For)
 //
 // returned var ...    (variant is Returned)
 // ^~~~~~~~~~~~
-//   1. PatternAsVariable
+//   1. BindingPatternAsVariable
 //   2. VarAfterPattern
 //   3. VarFinishAsDecl
 //
@@ -1073,7 +1073,7 @@ CARBON_PARSE_STATE_VARIANTS2(VarFinish, Decl, For)
 //
 // let ...
 // ^~~
-//   1. PatternAsLet
+//   1. BindingPatternAsLet
 //   2. LetAfterPattern
 //   3. LetFinish
 CARBON_PARSE_STATE(Let)

+ 35 - 0
toolchain/parse/testdata/array/fail_require_close_bracket.carbon

@@ -0,0 +1,35 @@
+// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
+// Exceptions. See /LICENSE for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+// AUTOUPDATE
+// TODO: It should emit only one error message.
+
+// CHECK:STDERR: fail_require_close_bracket.carbon:[[@LINE+9]]:8: ERROR: Closing symbol does not match most recent opening symbol.
+// CHECK:STDERR: var x: [i32;;
+// CHECK:STDERR:        ^
+// CHECK:STDERR: fail_require_close_bracket.carbon:[[@LINE+6]]:13: ERROR: Expected expression.
+// CHECK:STDERR: var x: [i32;;
+// CHECK:STDERR:             ^
+// CHECK:STDERR: fail_require_close_bracket.carbon:[[@LINE+3]]:13: ERROR: Unexpected tokens before `]`.
+// CHECK:STDERR: var x: [i32;;
+// CHECK:STDERR:             ^
+var x: [i32;;
+
+// CHECK:STDERR: fail_require_close_bracket.carbon:[[@LINE+16]]:21: ERROR: `var` declarations must end with a `;`.
+// CHECK:STDERR: // CHECK:STDOUT:   ]
+// CHECK:STDERR:                     ^
+// CHECK:STDOUT: - filename: fail_require_close_bracket.carbon
+// CHECK:STDOUT:   parse_tree: [
+// CHECK:STDOUT:     {kind: 'FileStart', text: ''},
+// CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
+// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
+// CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
+// CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'InvalidParse', text: ';', has_error: yes},
+// CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 5},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 7},
+// CHECK:STDOUT:     {kind: 'VariableDecl', text: 'var', has_error: yes, subtree_size: 9},
+// CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
+// CHECK:STDOUT:   ]

+ 24 - 0
toolchain/parse/testdata/array/fail_require_semi.carbon

@@ -0,0 +1,24 @@
+// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
+// Exceptions. See /LICENSE for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+// AUTOUPDATE
+
+// CHECK:STDERR: fail_require_semi.carbon:[[@LINE+3]]:12: ERROR: Expected `;` in array type.
+// CHECK:STDERR: var x: [i32];
+// CHECK:STDERR:            ^
+var x: [i32];
+
+// CHECK:STDOUT: - filename: fail_require_semi.carbon
+// CHECK:STDOUT:   parse_tree: [
+// CHECK:STDOUT:     {kind: 'FileStart', text: ''},
+// CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
+// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
+// CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
+// CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ']', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 4},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 6},
+// CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
+// CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
+// CHECK:STDOUT:   ]

+ 4 - 4
toolchain/parse/testdata/array/fail_syntax.carbon

@@ -78,7 +78,7 @@ var x: [i32];
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ']', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 4},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 6},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 6},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]
@@ -108,7 +108,7 @@ var x: [i32];
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: '`', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: '`', has_error: yes},
 // CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 5},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 7},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]
@@ -122,7 +122,7 @@ var x: [i32];
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: ';', has_error: yes},
 // CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 5},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 7},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: 'var', has_error: yes, subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]
@@ -135,7 +135,7 @@ var x: [i32];
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ']', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', has_error: yes, subtree_size: 4},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 6},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 6},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 1 - 1
toolchain/parse/testdata/array/with_length.carbon

@@ -16,7 +16,7 @@ var x: [i32; 10];
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'IntLiteral', text: '10'},
 // CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', subtree_size: 5},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 7},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 1 - 1
toolchain/parse/testdata/array/without_length.carbon

@@ -15,7 +15,7 @@ var x: [i32;];
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ArrayExpr', text: ']', subtree_size: 4},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 6},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 6},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 3 - 3
toolchain/parse/testdata/basics/builtin_types.carbon

@@ -14,21 +14,21 @@ var test_str: String = "Test";
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'test_i32'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'test_f64'},
 // CHECK:STDOUT:         {kind: 'FloatTypeLiteral', text: 'f64'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'RealLiteral', text: '0.1'},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'test_str'},
 // CHECK:STDOUT:         {kind: 'StringTypeLiteral', text: 'String'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'StringLiteral', text: '"Test"'},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 7},

+ 1 - 1
toolchain/parse/testdata/basics/fail_paren_match_regression.carbon

@@ -21,7 +21,7 @@ var = (foo {})
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: '=', has_error: yes},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '=', has_error: yes},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: '=', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: '=', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'ParenExprOrTupleLiteralStart', text: '('},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'foo'},

+ 2 - 2
toolchain/parse/testdata/basics/numeric_literals.carbon

@@ -40,7 +40,7 @@ fn F() {
 // CHECK:STDOUT:             {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'IntLiteral', text: '5'},
 // CHECK:STDOUT:           {kind: 'ArrayExpr', text: ']', subtree_size: 5},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 7},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'ParenExprOrTupleLiteralStart', text: '('},
 // CHECK:STDOUT:           {kind: 'IntLiteral', text: '8'},
@@ -62,7 +62,7 @@ fn F() {
 // CHECK:STDOUT:             {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'IntLiteral', text: '7'},
 // CHECK:STDOUT:           {kind: 'ArrayExpr', text: ']', subtree_size: 5},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 7},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'ParenExprOrTupleLiteralStart', text: '('},
 // CHECK:STDOUT:           {kind: 'RealLiteral', text: '0.9'},

+ 1 - 1
toolchain/parse/testdata/basics/parens.carbon

@@ -16,7 +16,7 @@ fn F(n: i32) -> i32 {
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 2 - 2
toolchain/parse/testdata/class/fn_definitions.carbon

@@ -39,7 +39,7 @@ class Foo {
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:             {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:             {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:             {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ParamList', text: ')', subtree_size: 2},
@@ -58,7 +58,7 @@ class Foo {
 // CHECK:STDOUT:                 {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:                   {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:                 {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:               {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:             {kind: 'Address', text: 'addr', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ImplicitParamList', text: ']', subtree_size: 7},
 // CHECK:STDOUT:             {kind: 'ParamListStart', text: '('},

+ 1 - 1
toolchain/parse/testdata/class/var.carbon

@@ -17,7 +17,7 @@ class Foo {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'x'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 1 - 1
toolchain/parse/testdata/for/fail_colon_instead_of_in.carbon

@@ -25,7 +25,7 @@ fn foo() {
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:               {kind: 'Name', text: 'x'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:             {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:             {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: ':', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},

+ 1 - 1
toolchain/parse/testdata/for/fail_missing_in.carbon

@@ -25,7 +25,7 @@ fn foo() {
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:               {kind: 'Name', text: 'x'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:             {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:             {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: 'var', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},

+ 2 - 2
toolchain/parse/testdata/for/nested.carbon

@@ -24,7 +24,7 @@ fn foo() {
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:               {kind: 'Name', text: 'y'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:             {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:             {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: 'in', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'x'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},
@@ -33,7 +33,7 @@ fn foo() {
 // CHECK:STDOUT:                 {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:                   {kind: 'Name', text: 'z'},
 // CHECK:STDOUT:                   {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:                 {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:                 {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'ForIn', text: 'in', subtree_size: 5},
 // CHECK:STDOUT:               {kind: 'NameExpr', text: 'y'},
 // CHECK:STDOUT:             {kind: 'ForHeader', text: ')', subtree_size: 8},

+ 1 - 1
toolchain/parse/testdata/for/simple.carbon

@@ -22,7 +22,7 @@ fn foo() {
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:               {kind: 'Name', text: 'x'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:             {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:             {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: 'in', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},

+ 1 - 1
toolchain/parse/testdata/function/declaration/addr.carbon

@@ -15,7 +15,7 @@ fn foo(addr a: i32*);
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'Address', text: 'addr', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 10},

+ 1 - 1
toolchain/parse/testdata/function/declaration/fail_missing_implicit_close.carbon

@@ -24,7 +24,7 @@ fn Div[();
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: '(', has_error: yes},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: '(', has_error: yes},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: '(', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: '(', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: 'fn', has_error: yes, subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 1 - 1
toolchain/parse/testdata/function/declaration/fail_with_identifier_as_param.carbon

@@ -17,7 +17,7 @@ fn foo(bar);
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'bar'},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: ')', has_error: yes},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: 'bar', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: 'bar', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 2 - 2
toolchain/parse/testdata/function/declaration/implicit_params.carbon

@@ -14,11 +14,11 @@ fn foo[a: i32, b: i32]();
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},

+ 2 - 2
toolchain/parse/testdata/function/declaration/params.carbon

@@ -14,11 +14,11 @@ fn foo(a: i32, b: i32);
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 12},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 2 - 2
toolchain/parse/testdata/function/definition/with_params.carbon

@@ -16,11 +16,11 @@ fn foo(bar: i64, baz: i64) {
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'bar'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i64'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'baz'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i64'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 9},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12},
 // CHECK:STDOUT:             {kind: 'NameExpr', text: 'foo'},

+ 2 - 2
toolchain/parse/testdata/generics/deduced_params/fail_no_parens.carbon

@@ -37,7 +37,7 @@ interface Bar[a: i32] {}
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', has_error: yes, subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'InterfaceIntroducer', text: 'interface'},
@@ -50,7 +50,7 @@ interface Bar[a: i32] {}
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'InterfaceDecl', text: 'interface', has_error: yes, subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 2 - 2
toolchain/parse/testdata/generics/deduced_params/one.carbon

@@ -16,7 +16,7 @@ interface Bar[a: i32]() {}
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
@@ -26,7 +26,7 @@ interface Bar[a: i32]() {}
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},

+ 2 - 2
toolchain/parse/testdata/generics/deduced_params/one_suffix_comma.carbon

@@ -16,7 +16,7 @@ interface Bar[a: i32,]() {}
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
@@ -27,7 +27,7 @@ interface Bar[a: i32,]() {}
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},

+ 12 - 12
toolchain/parse/testdata/generics/deduced_params/six.carbon

@@ -16,27 +16,27 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'c'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'd'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'e'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'f'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
@@ -46,27 +46,27 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'c'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'd'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'e'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'f'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},

+ 4 - 4
toolchain/parse/testdata/generics/deduced_params/two.carbon

@@ -16,11 +16,11 @@ interface Bar[a: i32, b: i32]() {}
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
@@ -30,11 +30,11 @@ interface Bar[a: i32, b: i32]() {}
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},

+ 4 - 4
toolchain/parse/testdata/generics/deduced_params/two_suffix_comma.carbon

@@ -16,11 +16,11 @@ interface Bar[a: i32, b: i32,]() {}
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 10},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
@@ -31,11 +31,11 @@ interface Bar[a: i32, b: i32,]() {}
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 10},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},

+ 1 - 1
toolchain/parse/testdata/generics/generic_params/basic.carbon

@@ -14,7 +14,7 @@ fn foo(a:! i32);
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'GenericPatternBinding', text: ':!', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 1 - 1
toolchain/parse/testdata/generics/generic_params/template.carbon

@@ -14,7 +14,7 @@ fn foo(template a:! i32);
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'GenericPatternBinding', text: ':!', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'Template', text: 'template', subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 9},

+ 1 - 1
toolchain/parse/testdata/generics/generic_params/template_addr.carbon

@@ -14,7 +14,7 @@ fn foo(template addr a:! i32);
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:               {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:             {kind: 'GenericPatternBinding', text: ':!', subtree_size: 3},
+// CHECK:STDOUT:             {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'Address', text: 'addr', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'Template', text: 'template', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 7},

+ 4 - 4
toolchain/parse/testdata/generics/interface/basic.carbon

@@ -20,12 +20,12 @@ interface Foo {
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
@@ -35,12 +35,12 @@ interface Foo {
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'NameExpr', text: 'foo'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 2 - 2
toolchain/parse/testdata/generics/interface/fail_no_impl_allowed.carbon

@@ -24,12 +24,12 @@ interface Foo {
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 4 - 4
toolchain/parse/testdata/generics/interface/fail_self_param_syntax.carbon

@@ -27,12 +27,12 @@ interface Foo {
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'Name', text: 'me'},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: 'Self', has_error: yes},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: 'me', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: 'me', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
@@ -42,12 +42,12 @@ interface Foo {
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'Name', text: 'Self', has_error: yes},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: 'Self', has_error: yes},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: 'Self', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: 'Self', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 4 - 4
toolchain/parse/testdata/generics/interface/self_pointer.carbon

@@ -21,13 +21,13 @@ interface Foo {
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:                 {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:               {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:             {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:             {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'Address', text: 'addr', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 7},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
@@ -38,13 +38,13 @@ interface Foo {
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:                 {kind: 'NameExpr', text: 'foo'},
 // CHECK:STDOUT:               {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:             {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:             {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'Address', text: 'addr', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 7},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 2 - 2
toolchain/parse/testdata/generics/named_constraint/fail_no_impl_allowed.carbon

@@ -22,12 +22,12 @@ constraint Foo {
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 2 - 2
toolchain/parse/testdata/generics/params/one.carbon

@@ -16,7 +16,7 @@ interface Bar(a: i32) {}
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
@@ -24,7 +24,7 @@ interface Bar(a: i32) {}
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 9},

+ 2 - 2
toolchain/parse/testdata/generics/params/one_suffix_comma.carbon

@@ -16,7 +16,7 @@ interface Bar(a: i32,) {}
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 9},
@@ -25,7 +25,7 @@ interface Bar(a: i32,) {}
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 9},

+ 12 - 12
toolchain/parse/testdata/generics/params/six.carbon

@@ -16,27 +16,27 @@ interface Bar(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'c'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'd'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'e'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'f'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 25},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 28},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
@@ -44,27 +44,27 @@ interface Bar(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'c'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'd'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'e'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'f'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 25},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 28},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 29},

+ 4 - 4
toolchain/parse/testdata/generics/params/two.carbon

@@ -16,11 +16,11 @@ interface Bar(a: i32, b: i32) {}
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 12},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
@@ -28,11 +28,11 @@ interface Bar(a: i32, b: i32) {}
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 9},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 12},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 13},

+ 4 - 4
toolchain/parse/testdata/generics/params/two_suffix_comma.carbon

@@ -16,11 +16,11 @@ interface Bar(a: i32, b: i32,) {}
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 10},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 13},
@@ -29,11 +29,11 @@ interface Bar(a: i32, b: i32,) {}
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 10},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 13},

+ 3 - 3
toolchain/parse/testdata/if_expr/basic.carbon

@@ -16,15 +16,15 @@ fn F(b: bool, x: i32, y: i32) -> bool {
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'BoolTypeLiteral', text: 'bool'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'x'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'y'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 13},
 // CHECK:STDOUT:           {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/if_expr/fail_condition_missing.carbon

@@ -22,7 +22,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: ';', has_error: yes},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', has_error: yes, subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/if_expr/fail_else_expr_missing.carbon

@@ -22,7 +22,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:             {kind: 'BoolLiteralTrue', text: 'true'},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/if_expr/fail_else_missing.carbon

@@ -22,7 +22,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:             {kind: 'BoolLiteralTrue', text: 'true'},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/if_expr/fail_then_expr_missing.carbon

@@ -22,7 +22,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:             {kind: 'BoolLiteralTrue', text: 'true'},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/if_expr/fail_then_missing.carbon

@@ -22,7 +22,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:             {kind: 'BoolLiteralTrue', text: 'true'},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/if_expr/in_type.carbon

@@ -16,7 +16,7 @@ fn F() -> if true then i32 else i32* {
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'F'},

+ 1 - 1
toolchain/parse/testdata/if_expr/precedence.carbon

@@ -16,7 +16,7 @@ fn F(b: bool) -> bool {
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:             {kind: 'BoolTypeLiteral', text: 'bool'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/index/assign_to_var.carbon

@@ -12,7 +12,7 @@ var v: i32 = t[0];
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 't'},
 // CHECK:STDOUT:         {kind: 'IndexExprStart', text: '[', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/index/fail_empty_expr.carbon

@@ -15,7 +15,7 @@ var v: i32 = t[];
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 't'},
 // CHECK:STDOUT:         {kind: 'IndexExprStart', text: '[', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/index/fail_malformed_expr.carbon

@@ -15,7 +15,7 @@ var v: i32 = t[0,];
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 't'},
 // CHECK:STDOUT:         {kind: 'IndexExprStart', text: '[', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/let/fail_bad_name.carbon

@@ -15,7 +15,7 @@ let ? = 4;
 // CHECK:STDOUT:       {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'Name', text: '?', has_error: yes},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '?', has_error: yes},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: '?', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: '?', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'LetInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IntLiteral', text: '4'},
 // CHECK:STDOUT:     {kind: 'LetDecl', text: ';', subtree_size: 7},

+ 1 - 1
toolchain/parse/testdata/let/fail_empty.carbon

@@ -15,7 +15,7 @@ let;
 // CHECK:STDOUT:       {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'Name', text: ';', has_error: yes},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: ';', has_error: yes},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ';', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'LetDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 1 - 1
toolchain/parse/testdata/let/fail_missing_type.carbon

@@ -15,7 +15,7 @@ let a = 4;
 // CHECK:STDOUT:       {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '=', has_error: yes},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: 'a', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: 'a', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'LetInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IntLiteral', text: '4'},
 // CHECK:STDOUT:     {kind: 'LetDecl', text: ';', subtree_size: 7},

+ 2 - 2
toolchain/parse/testdata/let/fail_missing_value.carbon

@@ -22,7 +22,7 @@ fn F() {
 // CHECK:STDOUT:       {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'LetDecl', text: ';', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'F'},
@@ -32,7 +32,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'LetDecl', text: ';', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 11},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 1 - 1
toolchain/parse/testdata/let/fail_no_semi.carbon

@@ -18,7 +18,7 @@ let
 // CHECK:STDOUT:       {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'Name', text: '', has_error: yes},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '', has_error: yes},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: '', has_error: yes, subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: '', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'LetDecl', text: 'let', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 2 - 2
toolchain/parse/testdata/let/let.carbon

@@ -15,7 +15,7 @@ fn F() {
 // CHECK:STDOUT:       {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'LetInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:     {kind: 'LetDecl', text: ';', subtree_size: 7},
@@ -27,7 +27,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'LetIntroducer', text: 'let'},
 // CHECK:STDOUT:           {kind: 'Name', text: 's'},
 // CHECK:STDOUT:           {kind: 'StringTypeLiteral', text: 'String'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'LetInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'StringLiteral', text: '"hello"'},
 // CHECK:STDOUT:       {kind: 'LetDecl', text: ';', subtree_size: 7},

+ 2 - 2
toolchain/parse/testdata/operators/assign.carbon

@@ -33,14 +33,14 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '1'},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 7},

+ 2 - 2
toolchain/parse/testdata/operators/fail_chained_assign.carbon

@@ -26,12 +26,12 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:             {kind: 'NameExpr', text: 'a'},
 // CHECK:STDOUT:             {kind: 'NameExpr', text: 'b'},

+ 1 - 1
toolchain/parse/testdata/operators/fail_infix_uneven_space_after.carbon

@@ -17,7 +17,7 @@ var n: i8 = n* n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:       {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 3 - 3
toolchain/parse/testdata/operators/fail_invalid_infix.carbon

@@ -26,7 +26,7 @@ var c: i32 = == ;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: ';', has_error: yes},
@@ -35,7 +35,7 @@ var c: i32 = == ;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '==', has_error: yes},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
@@ -44,7 +44,7 @@ var c: i32 = == ;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'c'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '==', has_error: yes},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: ';', has_error: yes},

+ 1 - 1
toolchain/parse/testdata/operators/fail_postincrement.carbon

@@ -28,7 +28,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 7},

+ 1 - 1
toolchain/parse/testdata/operators/fail_precedence_as.carbon

@@ -30,7 +30,7 @@ fn F(n: i32) {
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},
 // CHECK:STDOUT:             {kind: 'BoolLiteralTrue', text: 'true'},

+ 1 - 1
toolchain/parse/testdata/operators/fail_precedence_assign.carbon

@@ -40,7 +40,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IntLiteral', text: '1'},
 // CHECK:STDOUT:             {kind: 'ParenExprOrTupleLiteralStart', text: '('},

+ 1 - 1
toolchain/parse/testdata/operators/fail_precedence_star_minus.carbon

@@ -15,7 +15,7 @@ var n: i8 = n* -n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:         {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/fail_precedence_star_star.carbon

@@ -15,7 +15,7 @@ var n: i8 = n* *p;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:         {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/fail_star_star_no_space.carbon

@@ -19,7 +19,7 @@ var n: i8 = n**p;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:         {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 2 - 2
toolchain/parse/testdata/operators/fixity_in_params.carbon

@@ -16,11 +16,11 @@ fn F(p: i32*, n: i32) {
 // CHECK:STDOUT:             {kind: 'Name', text: 'p'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
 // CHECK:STDOUT:             {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 10},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 14},

+ 2 - 2
toolchain/parse/testdata/operators/fixity_in_var.carbon

@@ -21,14 +21,14 @@ fn F() {
 // CHECK:STDOUT:           {kind: 'Name', text: 'q'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'p'},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 't'},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/infix.carbon

@@ -12,7 +12,7 @@ var n: i8 = n * n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},

+ 1 - 1
toolchain/parse/testdata/operators/infix_no_space.carbon

@@ -12,7 +12,7 @@ var n: i8 = n*n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},

+ 1 - 1
toolchain/parse/testdata/operators/infix_with_paren_after.carbon

@@ -12,7 +12,7 @@ var n: i8 = 3*(n);
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '3'},
 // CHECK:STDOUT:           {kind: 'ParenExprOrTupleLiteralStart', text: '('},

+ 1 - 1
toolchain/parse/testdata/operators/infix_with_paren_before.carbon

@@ -12,7 +12,7 @@ var n: i8 = (n)*3;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'ParenExprOrTupleLiteralStart', text: '('},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'n'},

+ 1 - 1
toolchain/parse/testdata/operators/postfix.carbon

@@ -12,7 +12,7 @@ var v: type = i8*;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'TypeTypeLiteral', text: 'type'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
 // CHECK:STDOUT:       {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/postfix_space_after_op.carbon

@@ -12,7 +12,7 @@ var v: type = i8* ;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'TypeTypeLiteral', text: 'type'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
 // CHECK:STDOUT:       {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/precedence_as.carbon

@@ -21,7 +21,7 @@ fn F(n: i32) {
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},
 // CHECK:STDOUT:             {kind: 'NameExpr', text: 'n'},

+ 4 - 4
toolchain/parse/testdata/operators/precedence_assign.carbon

@@ -21,24 +21,24 @@ fn F(c: bool) {
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'Name', text: 'c'},
 // CHECK:STDOUT:             {kind: 'BoolTypeLiteral', text: 'bool'},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:           {kind: 'Name', text: 'p'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:         {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:             {kind: 'NameExpr', text: 'p'},
 // CHECK:STDOUT:           {kind: 'PrefixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/precedence_unary.carbon

@@ -22,7 +22,7 @@ fn F(p: i32*) {
 // CHECK:STDOUT:             {kind: 'Name', text: 'p'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'PostfixOperator', text: '*', subtree_size: 2},
-// CHECK:STDOUT:           {kind: 'PatternBinding', text: ':', subtree_size: 4},
+// CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 9},
 // CHECK:STDOUT:               {kind: 'NameExpr', text: 'p'},

+ 2 - 2
toolchain/parse/testdata/operators/prefix.carbon

@@ -13,7 +13,7 @@ var b: bool = not true;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:       {kind: 'PrefixOperator', text: '-', subtree_size: 2},
@@ -21,7 +21,7 @@ var b: bool = not true;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'b'},
 // CHECK:STDOUT:         {kind: 'BoolTypeLiteral', text: 'bool'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'BoolLiteralTrue', text: 'true'},
 // CHECK:STDOUT:       {kind: 'PrefixOperator', text: 'not', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/prefix_no_space.carbon

@@ -13,7 +13,7 @@ var n: i8 =-n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:       {kind: 'PrefixOperator', text: '-', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/recover_infix_uneven_space_before.carbon

@@ -15,7 +15,7 @@ var n: i8 = n *n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},

+ 1 - 1
toolchain/parse/testdata/operators/recover_postfix_space.carbon

@@ -15,7 +15,7 @@ var v: type = i8 *;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'TypeTypeLiteral', text: 'type'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
 // CHECK:STDOUT:       {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/recover_postfix_space_before_comma.carbon

@@ -15,7 +15,7 @@ var n: i8 = F(i8 *, 0);
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'F'},
 // CHECK:STDOUT:         {kind: 'CallExprStart', text: '(', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/recover_postfix_space_in_call.carbon

@@ -15,7 +15,7 @@ var n: i8 = F(i8 *);
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'NameExpr', text: 'F'},
 // CHECK:STDOUT:         {kind: 'CallExprStart', text: '(', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/recover_postfix_space_surrounding.carbon

@@ -15,7 +15,7 @@ var v: type = i8 * ;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'v'},
 // CHECK:STDOUT:         {kind: 'TypeTypeLiteral', text: 'type'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
 // CHECK:STDOUT:       {kind: 'PostfixOperator', text: '*', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/recover_prefix_space.carbon

@@ -15,7 +15,7 @@ var n: i8 = - n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:       {kind: 'PrefixOperator', text: '-', subtree_size: 2},

+ 1 - 1
toolchain/parse/testdata/operators/recover_prefix_uneven_space_with_assign.carbon

@@ -15,7 +15,7 @@ var n: i8 =- n;
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'Name', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i8'},
-// CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
+// CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'NameExpr', text: 'n'},
 // CHECK:STDOUT:       {kind: 'PrefixOperator', text: '-', subtree_size: 2},

Некоторые файлы не были показаны из-за большого количества измененных файлов