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

Rename `Name` -> `IdentifierName` given that we have several other kinds of parse nodes that represent names. (#3453)

Factor out common checking handling for the different kinds of
unqualified names
Richard Smith 2 лет назад
Родитель
Сommit
fe6f7b4330
100 измененных файлов с 395 добавлено и 410 удалено
  1. 7 6
      language_server/language_server.cpp
  2. 33 44
      toolchain/check/handle_name.cpp
  3. 2 2
      toolchain/check/node_stack.h
  4. 2 2
      toolchain/parse/handle_binding_pattern.cpp
  5. 2 2
      toolchain/parse/handle_decl_name_and_params.cpp
  6. 1 1
      toolchain/parse/handle_expr.cpp
  7. 3 3
      toolchain/parse/handle_period.cpp
  8. 22 27
      toolchain/parse/node_kind.def
  9. 1 1
      toolchain/parse/testdata/array/fail_require_close_bracket.carbon
  10. 1 1
      toolchain/parse/testdata/array/fail_require_semi.carbon
  11. 5 5
      toolchain/parse/testdata/array/fail_syntax.carbon
  12. 1 1
      toolchain/parse/testdata/array/with_length.carbon
  13. 1 1
      toolchain/parse/testdata/array/without_length.carbon
  14. 3 3
      toolchain/parse/testdata/basics/builtin_types.carbon
  15. 7 7
      toolchain/parse/testdata/basics/fail_invalid_designators.carbon
  16. 2 2
      toolchain/parse/testdata/basics/fail_paren_match_regression.carbon
  17. 8 8
      toolchain/parse/testdata/basics/function_call.carbon
  18. 2 2
      toolchain/parse/testdata/basics/multifile.carbon
  19. 3 3
      toolchain/parse/testdata/basics/numeric_literals.carbon
  20. 3 3
      toolchain/parse/testdata/basics/parens.carbon
  21. 6 6
      toolchain/parse/testdata/class/base.carbon
  22. 2 2
      toolchain/parse/testdata/class/basic.carbon
  23. 2 2
      toolchain/parse/testdata/class/fail_base.carbon
  24. 2 2
      toolchain/parse/testdata/class/fail_base_misplaced.carbon
  25. 7 7
      toolchain/parse/testdata/class/fn_definitions.carbon
  26. 6 6
      toolchain/parse/testdata/class/introducer.carbon
  27. 3 3
      toolchain/parse/testdata/class/mismatched_introducer.carbon
  28. 2 2
      toolchain/parse/testdata/class/var.carbon
  29. 5 5
      toolchain/parse/testdata/for/fail_colon_instead_of_in.carbon
  30. 1 1
      toolchain/parse/testdata/for/fail_missing_cond.carbon
  31. 5 5
      toolchain/parse/testdata/for/fail_missing_in.carbon
  32. 4 4
      toolchain/parse/testdata/for/fail_missing_var.carbon
  33. 2 2
      toolchain/parse/testdata/for/fail_returned_var.carbon
  34. 1 1
      toolchain/parse/testdata/for/fail_square_brackets.carbon
  35. 7 7
      toolchain/parse/testdata/for/nested.carbon
  36. 5 5
      toolchain/parse/testdata/for/simple.carbon
  37. 2 2
      toolchain/parse/testdata/function/declaration/addr.carbon
  38. 1 1
      toolchain/parse/testdata/function/declaration/basic.carbon
  39. 1 1
      toolchain/parse/testdata/function/declaration/fail_identifier_instead_of_sig.carbon
  40. 2 2
      toolchain/parse/testdata/function/declaration/fail_missing_implicit_close.carbon
  41. 1 1
      toolchain/parse/testdata/function/declaration/fail_no_sig_or_semi.carbon
  42. 1 1
      toolchain/parse/testdata/function/declaration/fail_skip_indented_newline_until_outdent.carbon
  43. 1 1
      toolchain/parse/testdata/function/declaration/fail_skip_indented_newline_with_semi.carbon
  44. 1 1
      toolchain/parse/testdata/function/declaration/fail_skip_indented_newline_without_semi.carbon
  45. 1 1
      toolchain/parse/testdata/function/declaration/fail_skip_to_newline_without_semi.carbon
  46. 1 1
      toolchain/parse/testdata/function/declaration/fail_skip_without_semi_to_curly.carbon
  47. 2 2
      toolchain/parse/testdata/function/declaration/fail_with_identifier_as_param.carbon
  48. 4 4
      toolchain/parse/testdata/function/declaration/impl_fn.carbon
  49. 1 1
      toolchain/parse/testdata/function/declaration/implicit_empty.carbon
  50. 3 3
      toolchain/parse/testdata/function/declaration/implicit_params.carbon
  51. 3 3
      toolchain/parse/testdata/function/declaration/params.carbon
  52. 1 1
      toolchain/parse/testdata/function/declaration/with_return_type.carbon
  53. 1 1
      toolchain/parse/testdata/function/definition/basic.carbon
  54. 2 2
      toolchain/parse/testdata/function/definition/fail_identifier_in_statements.carbon
  55. 7 7
      toolchain/parse/testdata/function/definition/with_params.carbon
  56. 1 1
      toolchain/parse/testdata/function/definition/with_return_type.carbon
  57. 2 2
      toolchain/parse/testdata/generics/deduced_params/empty.carbon
  58. 6 6
      toolchain/parse/testdata/generics/deduced_params/fail_no_parens.carbon
  59. 4 4
      toolchain/parse/testdata/generics/deduced_params/one.carbon
  60. 4 4
      toolchain/parse/testdata/generics/deduced_params/one_suffix_comma.carbon
  61. 14 14
      toolchain/parse/testdata/generics/deduced_params/six.carbon
  62. 6 6
      toolchain/parse/testdata/generics/deduced_params/two.carbon
  63. 6 6
      toolchain/parse/testdata/generics/deduced_params/two_suffix_comma.carbon
  64. 2 2
      toolchain/parse/testdata/generics/generic_params/basic.carbon
  65. 2 2
      toolchain/parse/testdata/generics/generic_params/template.carbon
  66. 2 2
      toolchain/parse/testdata/generics/generic_params/template_addr.carbon
  67. 6 6
      toolchain/parse/testdata/generics/interface/basic.carbon
  68. 1 1
      toolchain/parse/testdata/generics/interface/declaration.carbon
  69. 1 1
      toolchain/parse/testdata/generics/interface/empty_body.carbon
  70. 2 2
      toolchain/parse/testdata/generics/interface/fail_missing_open_curly.carbon
  71. 3 3
      toolchain/parse/testdata/generics/interface/fail_no_impl_allowed.carbon
  72. 7 7
      toolchain/parse/testdata/generics/interface/fail_self_param_syntax.carbon
  73. 2 2
      toolchain/parse/testdata/generics/interface/non_instance_fn.carbon
  74. 6 6
      toolchain/parse/testdata/generics/interface/self_pointer.carbon
  75. 2 2
      toolchain/parse/testdata/generics/named_constraint/basic.carbon
  76. 3 3
      toolchain/parse/testdata/generics/named_constraint/fail_no_impl_allowed.carbon
  77. 2 2
      toolchain/parse/testdata/generics/params/empty.carbon
  78. 4 4
      toolchain/parse/testdata/generics/params/one.carbon
  79. 4 4
      toolchain/parse/testdata/generics/params/one_suffix_comma.carbon
  80. 14 14
      toolchain/parse/testdata/generics/params/six.carbon
  81. 6 6
      toolchain/parse/testdata/generics/params/two.carbon
  82. 6 6
      toolchain/parse/testdata/generics/params/two_suffix_comma.carbon
  83. 5 5
      toolchain/parse/testdata/if/basic.carbon
  84. 11 11
      toolchain/parse/testdata/if/else.carbon
  85. 11 11
      toolchain/parse/testdata/if/fail_else_unbraced.carbon
  86. 4 4
      toolchain/parse/testdata/if/fail_errors.carbon
  87. 1 1
      toolchain/parse/testdata/if/fail_missing_cond.carbon
  88. 1 1
      toolchain/parse/testdata/if/fail_square_brackets.carbon
  89. 5 5
      toolchain/parse/testdata/if/fail_unbraced.carbon
  90. 7 7
      toolchain/parse/testdata/if_expr/basic.carbon
  91. 2 2
      toolchain/parse/testdata/if_expr/fail_condition_missing.carbon
  92. 2 2
      toolchain/parse/testdata/if_expr/fail_else_expr_missing.carbon
  93. 2 2
      toolchain/parse/testdata/if_expr/fail_else_missing.carbon
  94. 2 2
      toolchain/parse/testdata/if_expr/fail_then_expr_missing.carbon
  95. 2 2
      toolchain/parse/testdata/if_expr/fail_then_missing.carbon
  96. 1 1
      toolchain/parse/testdata/if_expr/fail_top_level_if.carbon
  97. 4 4
      toolchain/parse/testdata/if_expr/in_type.carbon
  98. 8 8
      toolchain/parse/testdata/if_expr/precedence.carbon
  99. 2 2
      toolchain/parse/testdata/index/assign_to_var.carbon
  100. 2 2
      toolchain/parse/testdata/index/fail_empty_expr.carbon

+ 7 - 6
language_server/language_server.cpp

@@ -76,12 +76,13 @@ auto LanguageServer::onReply(llvm::json::Value /*id*/,
   return true;
 }
 
-// Returns the text of first child of kind Parse::NodeKind::Name.
-static auto GetName(const SharedValueStores& value_stores,
-                    const Lex::TokenizedBuffer& tokens, const Parse::Tree& p,
-                    Parse::NodeId node) -> std::optional<llvm::StringRef> {
+// Returns the text of first child of kind Parse::NodeKind::IdentifierName.
+static auto GetIdentifierName(const SharedValueStores& value_stores,
+                              const Lex::TokenizedBuffer& tokens,
+                              const Parse::Tree& p, Parse::NodeId node)
+    -> std::optional<llvm::StringRef> {
   for (auto ch : p.children(node)) {
-    if (p.node_kind(ch) == Parse::NodeKind::Name) {
+    if (p.node_kind(ch) == Parse::NodeKind::IdentifierName) {
       return value_stores.identifiers().Get(
           tokens.GetIdentifier(p.node_token(node)));
     }
@@ -123,7 +124,7 @@ void LanguageServer::OnDocumentSymbol(
         continue;
     }
 
-    if (auto name = GetName(value_stores, lexed, parsed, node)) {
+    if (auto name = GetIdentifierName(value_stores, lexed, parsed, node)) {
       auto tok = parsed.node_token(node);
       clang::clangd::Position pos{lexed.GetLineNumber(tok) - 1,
                                   lexed.GetColumnNumber(tok) - 1};

+ 33 - 44
toolchain/check/handle_name.cpp

@@ -243,7 +243,19 @@ static auto GetIdentifierAsName(Context& context, Parse::NodeId parse_node)
   return SemIR::NameId::ForIdentifier(context.tokens().GetIdentifier(token));
 }
 
-auto HandleName(Context& context, Parse::NodeId parse_node) -> bool {
+// Handle a name that is used as an expression by performing unqualified name
+// lookup.
+static auto HandleNameAsExpr(Context& context, Parse::NodeId parse_node,
+                             SemIR::NameId name_id) -> bool {
+  auto value_id = context.LookupUnqualifiedName(parse_node, name_id);
+  value_id = GetExprValueForLookupResult(context, value_id);
+  auto value = context.insts().Get(value_id);
+  context.AddInstAndPush(parse_node, SemIR::NameRef{parse_node, value.type_id(),
+                                                    name_id, value_id});
+  return true;
+}
+
+auto HandleIdentifierName(Context& context, Parse::NodeId parse_node) -> bool {
   // The parent is responsible for binding the name.
   auto name_id = GetIdentifierAsName(context, parse_node);
   if (!name_id) {
@@ -253,17 +265,13 @@ auto HandleName(Context& context, Parse::NodeId parse_node) -> bool {
   return true;
 }
 
-auto HandleNameExpr(Context& context, Parse::NodeId parse_node) -> bool {
+auto HandleIdentifierNameExpr(Context& context, Parse::NodeId parse_node)
+    -> bool {
   auto name_id = GetIdentifierAsName(context, parse_node);
   if (!name_id) {
     return context.TODO(parse_node, "Error recovery from keyword name.");
   }
-  auto value_id = context.LookupUnqualifiedName(parse_node, *name_id);
-  value_id = GetExprValueForLookupResult(context, value_id);
-  auto value = context.insts().Get(value_id);
-  context.AddInstAndPush(parse_node, SemIR::NameRef{parse_node, value.type_id(),
-                                                    *name_id, value_id});
-  return true;
+  return HandleNameAsExpr(context, parse_node, *name_id);
 }
 
 auto HandleBaseName(Context& context, Parse::NodeId parse_node) -> bool {
@@ -271,16 +279,21 @@ auto HandleBaseName(Context& context, Parse::NodeId parse_node) -> bool {
   return true;
 }
 
-auto HandleBaseNameExpr(Context& context, Parse::NodeId parse_node) -> bool {
-  auto name_id = SemIR::NameId::Base;
-  auto value_id = context.LookupUnqualifiedName(parse_node, name_id);
-  value_id = GetExprValueForLookupResult(context, value_id);
-  auto value = context.insts().Get(value_id);
-  context.AddInstAndPush(parse_node, SemIR::NameRef{parse_node, value.type_id(),
-                                                    name_id, value_id});
+auto HandleSelfTypeNameExpr(Context& context, Parse::NodeId parse_node)
+    -> bool {
+  return HandleNameAsExpr(context, parse_node, SemIR::NameId::SelfType);
+}
+
+auto HandleSelfValueName(Context& context, Parse::NodeId parse_node) -> bool {
+  context.node_stack().Push(parse_node);
   return true;
 }
 
+auto HandleSelfValueNameExpr(Context& context, Parse::NodeId parse_node)
+    -> bool {
+  return HandleNameAsExpr(context, parse_node, SemIR::NameId::SelfValue);
+}
+
 auto HandleQualifiedDecl(Context& context, Parse::NodeId parse_node) -> bool {
   auto [parse_node2, name_id2] = context.node_stack().PopNameWithParseNode();
 
@@ -292,10 +305,11 @@ auto HandleQualifiedDecl(Context& context, Parse::NodeId parse_node) -> bool {
       // bracketing node for later QualifiedDecls.
       break;
 
-    case Parse::NodeKind::Name: {
-      // This is the first QualifiedDecl in a chain, and starts with a
-      // name.
-      auto name_id = context.node_stack().Pop<Parse::NodeKind::Name>();
+    case Parse::NodeKind::IdentifierName: {
+      // This is the first QualifiedDecl in a chain, and starts with an
+      // identifier name.
+      auto name_id =
+          context.node_stack().Pop<Parse::NodeKind::IdentifierName>();
       context.decl_name_stack().ApplyNameQualifier(parse_node1, name_id);
       // Add the QualifiedDecl so that it can be used for bracketing.
       context.node_stack().Push(parse_node);
@@ -320,29 +334,4 @@ auto HandlePackageExpr(Context& context, Parse::NodeId parse_node) -> bool {
   return true;
 }
 
-auto HandleSelfTypeNameExpr(Context& context, Parse::NodeId parse_node)
-    -> bool {
-  auto name_id = SemIR::NameId::SelfType;
-  auto value_id = context.LookupUnqualifiedName(parse_node, name_id);
-  auto value = context.insts().Get(value_id);
-  context.AddInstAndPush(parse_node, SemIR::NameRef{parse_node, value.type_id(),
-                                                    name_id, value_id});
-  return true;
-}
-
-auto HandleSelfValueName(Context& context, Parse::NodeId parse_node) -> bool {
-  context.node_stack().Push(parse_node);
-  return true;
-}
-
-auto HandleSelfValueNameExpr(Context& context, Parse::NodeId parse_node)
-    -> bool {
-  auto name_id = SemIR::NameId::SelfValue;
-  auto value_id = context.LookupUnqualifiedName(parse_node, name_id);
-  auto value = context.insts().Get(value_id);
-  context.AddInstAndPush(parse_node, SemIR::NameRef{parse_node, value.type_id(),
-                                                    name_id, value_id});
-  return true;
-}
-
 }  // namespace Carbon::Check

+ 2 - 2
toolchain/check/node_stack.h

@@ -311,12 +311,12 @@ class NodeStack {
       case Parse::NodeKind::BindingPattern:
       case Parse::NodeKind::CallExpr:
       case Parse::NodeKind::CallExprStart:
+      case Parse::NodeKind::IdentifierNameExpr:
       case Parse::NodeKind::IfExprThen:
       case Parse::NodeKind::IfExprElse:
       case Parse::NodeKind::IndexExpr:
       case Parse::NodeKind::InfixOperator:
       case Parse::NodeKind::MemberAccessExpr:
-      case Parse::NodeKind::NameExpr:
       case Parse::NodeKind::PackageExpr:
       case Parse::NodeKind::ParenExpr:
       case Parse::NodeKind::PostfixOperator:
@@ -343,7 +343,7 @@ class NodeStack {
       case Parse::NodeKind::ClassDefinitionStart:
         return IdKind::ClassId;
       case Parse::NodeKind::BaseName:
-      case Parse::NodeKind::Name:
+      case Parse::NodeKind::IdentifierName:
         return IdKind::NameId;
       case Parse::NodeKind::ArrayExprSemi:
       case Parse::NodeKind::ClassIntroducer:

+ 2 - 2
toolchain/parse/handle_binding_pattern.cpp

@@ -57,7 +57,7 @@ static auto HandleBindingPattern(Context& context,
   // The first item should be an identifier or `self`.
   bool has_name = false;
   if (auto identifier = context.ConsumeIf(Lex::TokenKind::Identifier)) {
-    context.AddLeafNode(NodeKind::Name, *identifier);
+    context.AddLeafNode(NodeKind::IdentifierName, *identifier);
     has_name = true;
   } else if (auto self =
                  context.ConsumeIf(Lex::TokenKind::SelfValueIdentifier)) {
@@ -68,7 +68,7 @@ static auto HandleBindingPattern(Context& context,
   }
   if (!has_name) {
     // Add a placeholder for the name.
-    context.AddLeafNode(NodeKind::Name, *context.position(),
+    context.AddLeafNode(NodeKind::IdentifierName, *context.position(),
                         /*has_error=*/true);
     on_error();
     return;

+ 2 - 2
toolchain/parse/handle_decl_name_and_params.cpp

@@ -17,11 +17,11 @@ static auto HandleDeclNameAndParams(Context& context, State after_name)
     context.PushState(state);
 
     if (context.PositionIs(Lex::TokenKind::Period)) {
-      context.AddLeafNode(NodeKind::Name, *identifier);
+      context.AddLeafNode(NodeKind::IdentifierName, *identifier);
       state.state = State::PeriodAsDecl;
       context.PushState(state);
     } else {
-      context.AddLeafNode(NodeKind::Name, *identifier);
+      context.AddLeafNode(NodeKind::IdentifierName, *identifier);
     }
   } else {
     CARBON_DIAGNOSTIC(ExpectedDeclName, Error,

+ 1 - 1
toolchain/parse/handle_expr.cpp

@@ -73,7 +73,7 @@ auto HandleExprInPostfix(Context& context) -> void {
   // expression.
   switch (context.PositionKind()) {
     case Lex::TokenKind::Identifier: {
-      context.AddLeafNode(NodeKind::NameExpr, context.Consume());
+      context.AddLeafNode(NodeKind::IdentifierNameExpr, context.Consume());
       context.PushState(state);
       break;
     }

+ 3 - 3
toolchain/parse/handle_period.cpp

@@ -18,7 +18,7 @@ static auto HandlePeriodOrArrow(Context& context, NodeKind node_kind,
                                              : Lex::TokenKind::Period);
 
   if (context.ConsumeAndAddLeafNodeIf(Lex::TokenKind::Identifier,
-                                      NodeKind::Name)) {
+                                      NodeKind::IdentifierName)) {
     // OK, `.` identifier.
   } else if (node_kind != NodeKind::QualifiedDecl &&
              context.ConsumeAndAddLeafNodeIf(Lex::TokenKind::Base,
@@ -34,10 +34,10 @@ static auto HandlePeriodOrArrow(Context& context, NodeKind node_kind,
     // If we see a keyword, assume it was intended to be a name.
     // TODO: Should keywords be valid here?
     if (context.PositionKind().is_keyword()) {
-      context.AddLeafNode(NodeKind::Name, context.Consume(),
+      context.AddLeafNode(NodeKind::IdentifierName, context.Consume(),
                           /*has_error=*/true);
     } else {
-      context.AddLeafNode(NodeKind::Name, *context.position(),
+      context.AddLeafNode(NodeKind::IdentifierName, *context.position(),
                           /*has_error=*/true);
       // Indicate the error to the parent state so that it can avoid producing
       // more errors.

+ 22 - 27
toolchain/parse/node_kind.def

@@ -97,13 +97,31 @@ CARBON_PARSE_NODE_KIND_CHILD_COUNT(EmptyDecl, 0,
                                    CARBON_TOKEN(Semi)
                                        CARBON_IF_ERROR(CARBON_ANY_TOKEN))
 
-// A name in a non-expression context, such as a declaration.
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(Name, 0,
+// An identifier name in a non-expression context, such as a declaration.
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(IdentifierName, 0,
                                    CARBON_TOKEN(Identifier)
                                        CARBON_IF_ERROR(CARBON_ANY_TOKEN))
 
-// A name in an expression context.
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(NameExpr, 0, CARBON_TOKEN(Identifier))
+// An identifier name in an expression context.
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(IdentifierNameExpr, 0,
+                                   CARBON_TOKEN(Identifier))
+
+// The `self` value and `Self` type identifier keywords. Typically of the form
+// `self: Self`.
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfValueName, 0,
+                                   CARBON_TOKEN(SelfValueIdentifier))
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfValueNameExpr, 0,
+                                   CARBON_TOKEN(SelfValueIdentifier))
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfTypeNameExpr, 0,
+                                   CARBON_TOKEN(SelfTypeIdentifier))
+
+// The `base` value keyword, introduced by `base: B`. Typically referenced in
+// an expression, as in `x.base` or `{.base = ...}`, but can also be used as a
+// declared name, as in `{.base: partial B}`.
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(BaseName, 0, CARBON_TOKEN(Base))
+
+// The `package` keyword in an expression.
+CARBON_PARSE_NODE_KIND_CHILD_COUNT(PackageExpr, 0, CARBON_TOKEN(Package))
 
 // ----------------------------------------------------------------------------
 
@@ -685,29 +703,6 @@ CARBON_PARSE_NODE_KIND_BRACKET(NamedConstraintDefinition,
 CARBON_PARSE_NODE_KIND_BRACKET(NamedConstraintDecl, NamedConstraintIntroducer,
                                CARBON_TOKEN(Semi))
 
-// The `self` value and `Self` type identifier keywords. Typically of the form
-// `self: Self`:
-//   SelfValueName
-//   SelfValueNameExpr
-//   SelfTypeNameExpr
-// BindingPattern
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfValueName, 0,
-                                   CARBON_TOKEN(SelfValueIdentifier))
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfValueNameExpr, 0,
-                                   CARBON_TOKEN(SelfValueIdentifier))
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(SelfTypeNameExpr, 0,
-                                   CARBON_TOKEN(SelfTypeIdentifier))
-
-// The `base` value keyword, introduced by `base: B`. Typically referenced in
-// an expression, as in `x.base` or `{.base = ...}`, but can also be used as a
-// declared name, as in `{.base: partial B}`.
-//
-// BaseName
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(BaseName, 0, CARBON_TOKEN(Base))
-
-// The `package` keyword in an expression.
-CARBON_PARSE_NODE_KIND_CHILD_COUNT(PackageExpr, 0, CARBON_TOKEN(Package))
-
 #undef CARBON_PARSE_NODE_KIND
 #undef CARBON_PARSE_NODE_KIND_BRACKET
 #undef CARBON_PARSE_NODE_KIND_CHILD_COUNT

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

@@ -23,7 +23,7 @@ var x: [i32;;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},

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

@@ -13,7 +13,7 @@ var x: [i32];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ']', has_error: yes, subtree_size: 3},

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

@@ -73,7 +73,7 @@ var x: [i32];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ']', has_error: yes, subtree_size: 3},
@@ -86,7 +86,7 @@ var x: [i32];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'X'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'X'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
@@ -102,7 +102,7 @@ var x: [i32];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'y'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'y'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: '`', has_error: yes},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: '`', has_error: yes, subtree_size: 3},
@@ -116,7 +116,7 @@ var x: [i32];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
@@ -130,7 +130,7 @@ var x: [i32];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ']', has_error: yes, subtree_size: 3},

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

@@ -10,7 +10,7 @@ var x: [i32; 10];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},

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

@@ -10,7 +10,7 @@ var x: [i32;];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},

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

@@ -12,21 +12,21 @@ var test_str: String = "Test";
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'test_i32'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'test_i32'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
 // 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: 'IdentifierName', text: 'test_f64'},
 // CHECK:STDOUT:         {kind: 'FloatTypeLiteral', text: 'f64'},
 // 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: 'IdentifierName', text: 'test_str'},
 // CHECK:STDOUT:         {kind: 'StringTypeLiteral', text: 'String'},
 // CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},

+ 7 - 7
toolchain/parse/testdata/basics/fail_invalid_designators.carbon

@@ -24,20 +24,20 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
-// CHECK:STDOUT:           {kind: 'Name', text: ';', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: ';', has_error: yes},
 // CHECK:STDOUT:         {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExprStatement', text: ';', has_error: yes, subtree_size: 4},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'fn', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'fn', has_error: yes},
 // CHECK:STDOUT:         {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExprStatement', text: ';', subtree_size: 4},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
-// CHECK:STDOUT:           {kind: 'Name', text: '42', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: '42', has_error: yes},
 // CHECK:STDOUT:         {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExprStatement', text: ';', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 18},

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

@@ -19,12 +19,12 @@ var = (foo {})
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: '=', has_error: yes},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: '=', has_error: yes},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '=', has_error: yes},
 // 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'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:       {kind: 'ParenExpr', text: ')', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: 'var', has_error: yes, subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 8 - 8
toolchain/parse/testdata/basics/function_call.carbon

@@ -13,25 +13,25 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
-// CHECK:STDOUT:                       {kind: 'NameExpr', text: 'a'},
-// CHECK:STDOUT:                       {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:                       {kind: 'IdentifierNameExpr', text: 'a'},
+// CHECK:STDOUT:                       {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:                     {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
-// CHECK:STDOUT:                     {kind: 'Name', text: 'f'},
+// CHECK:STDOUT:                     {kind: 'IdentifierName', text: 'f'},
 // CHECK:STDOUT:                   {kind: 'MemberAccessExpr', text: '.', subtree_size: 5},
 // CHECK:STDOUT:                 {kind: 'CallExprStart', text: '(', subtree_size: 6},
-// CHECK:STDOUT:                   {kind: 'NameExpr', text: 'c'},
-// CHECK:STDOUT:                   {kind: 'Name', text: 'd'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameExpr', text: 'c'},
+// CHECK:STDOUT:                   {kind: 'IdentifierName', text: 'd'},
 // CHECK:STDOUT:                 {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:                 {kind: 'CallExprComma', text: ','},
 // CHECK:STDOUT:                   {kind: 'ParenExprOrTupleLiteralStart', text: '('},
-// CHECK:STDOUT:                   {kind: 'NameExpr', text: 'e'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameExpr', text: 'e'},
 // CHECK:STDOUT:                 {kind: 'ParenExpr', text: ')', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'CallExpr', text: ')', subtree_size: 14},
-// CHECK:STDOUT:               {kind: 'Name', text: 'g'},
+// CHECK:STDOUT:               {kind: 'IdentifierName', text: 'g'},
 // CHECK:STDOUT:             {kind: 'MemberAccessExpr', text: '.', subtree_size: 16},
 // CHECK:STDOUT:           {kind: 'CallExprStart', text: '(', subtree_size: 17},
 // CHECK:STDOUT:         {kind: 'CallExpr', text: ')', subtree_size: 18},

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

@@ -14,7 +14,7 @@ fn B() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'A'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -25,7 +25,7 @@ fn B() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'B'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -29,12 +29,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'ints'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'ints'},
 // CHECK:STDOUT:               {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},
@@ -56,7 +56,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'TupleLiteral', text: ')', subtree_size: 12},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 22},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'floats'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'floats'},
 // CHECK:STDOUT:               {kind: 'ArrayExprStart', text: '['},
 // CHECK:STDOUT:               {kind: 'FloatTypeLiteral', text: 'f64'},
 // CHECK:STDOUT:             {kind: 'ArrayExprSemi', text: ';', subtree_size: 3},

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

@@ -12,9 +12,9 @@ fn F(n: i32) -> i32 {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
@@ -26,7 +26,7 @@ fn F(n: i32) -> i32 {
 // CHECK:STDOUT:             {kind: 'ParenExprOrTupleLiteralStart', text: '('},
 // CHECK:STDOUT:               {kind: 'ParenExprOrTupleLiteralStart', text: '('},
 // CHECK:STDOUT:                 {kind: 'ParenExprOrTupleLiteralStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'n'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'n'},
 // CHECK:STDOUT:               {kind: 'ParenExpr', text: ')', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'ParenExpr', text: ')', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ParenExpr', text: ')', subtree_size: 7},

+ 6 - 6
toolchain/parse/testdata/class/base.carbon

@@ -18,29 +18,29 @@ class D {
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'B'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'D'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'D'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'BaseIntroducer', text: 'base'},
 // CHECK:STDOUT:         {kind: 'BaseColon', text: ':'},
-// CHECK:STDOUT:         {kind: 'NameExpr', text: 'B1'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'B1'},
 // CHECK:STDOUT:       {kind: 'BaseDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'BaseIntroducer', text: 'base'},
 // CHECK:STDOUT:         {kind: 'ExtendModifier', text: 'extend'},
 // CHECK:STDOUT:         {kind: 'BaseColon', text: ':'},
-// CHECK:STDOUT:         {kind: 'NameExpr', text: 'B2'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'B2'},
 // CHECK:STDOUT:       {kind: 'BaseDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Nested'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Nested'},
 // CHECK:STDOUT:       {kind: 'ClassDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'PrivateModifier', text: 'private'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'PrivateNested'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'PrivateNested'},
 // CHECK:STDOUT:       {kind: 'ClassDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 22},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

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

@@ -12,10 +12,10 @@ class Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Baz'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Baz'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -27,7 +27,7 @@ class A {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'A'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InvalidParseStart', text: ';', has_error: yes},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: 'base', has_error: yes},
@@ -39,7 +39,7 @@ class A {
 // CHECK:STDOUT:         {kind: 'InvalidParseStart', text: ':', has_error: yes},
 // CHECK:STDOUT:       {kind: 'InvalidParseSubtree', text: '}', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},

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

@@ -18,11 +18,11 @@ fn F() {
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'B'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -16,10 +16,10 @@ class Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'Make'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'Make'},
 // CHECK:STDOUT:             {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -27,7 +27,7 @@ class Foo {
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
 // CHECK:STDOUT:           {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:             {kind: 'StructLiteralOrStructTypeLiteralStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:                 {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:               {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:             {kind: 'StructFieldValue', text: '=', subtree_size: 4},
@@ -35,7 +35,7 @@ class Foo {
 // CHECK:STDOUT:         {kind: 'ReturnStatement', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'FunctionDefinition', text: '}', subtree_size: 16},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'Baz'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'Baz'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -48,12 +48,12 @@ class Foo {
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12},
 // CHECK:STDOUT:           {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:             {kind: 'SelfValueNameExpr', text: 'self'},
-// CHECK:STDOUT:             {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:           {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ReturnStatement', text: ';', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'FunctionDefinition', text: '}', subtree_size: 18},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'Modify'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'Modify'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:                 {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:                   {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -65,7 +65,7 @@ class Foo {
 // CHECK:STDOUT:           {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12},
 // CHECK:STDOUT:               {kind: 'SelfValueNameExpr', text: 'self'},
-// CHECK:STDOUT:               {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'PointerMemberAccessExpr', text: '->', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'IntLiteral', text: '1'},
 // CHECK:STDOUT:           {kind: 'InfixOperator', text: '=', subtree_size: 5},

+ 6 - 6
toolchain/parse/testdata/class/introducer.carbon

@@ -16,28 +16,28 @@ abstract class C {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'A'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'A'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:       {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'B'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'B'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:       {kind: 'AbstractModifier', text: 'abstract'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'C'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'C'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'A'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'B'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'AbstractModifier', text: 'abstract'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 3 - 3
toolchain/parse/testdata/class/mismatched_introducer.carbon

@@ -14,18 +14,18 @@ abstract base class C;
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'InterfaceIntroducer', text: 'interface'},
 // CHECK:STDOUT:       {kind: 'AbstractModifier', text: 'abstract'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'I'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'I'},
 // CHECK:STDOUT:     {kind: 'InterfaceDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:       {kind: 'AbstractModifier', text: 'abstract'},
 // CHECK:STDOUT:       {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'C'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'C'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

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

@@ -12,10 +12,10 @@ class Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 5},

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

@@ -17,22 +17,22 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:               {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // 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: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'Print'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'Print'},
 // CHECK:STDOUT:               {kind: 'CallExprStart', text: '(', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:             {kind: 'CallExpr', text: ')', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 7},

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

@@ -25,7 +25,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -17,22 +17,22 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:               {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // 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: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'Print'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'Print'},
 // CHECK:STDOUT:               {kind: 'CallExprStart', text: '(', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:             {kind: 'CallExpr', text: ')', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 7},

+ 4 - 4
toolchain/parse/testdata/for/fail_missing_var.carbon

@@ -17,17 +17,17 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'y'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'Print'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'Print'},
 // CHECK:STDOUT:               {kind: 'CallExprStart', text: '(', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:             {kind: 'CallExpr', text: ')', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 7},

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

@@ -18,14 +18,14 @@ fn foo() -> i32 {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'y'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:             {kind: 'ReturnStatementStart', text: 'return'},

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

@@ -25,7 +25,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -16,31 +16,31 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:               {kind: 'Name', text: 'y'},
+// CHECK:STDOUT:               {kind: 'IdentifierName', text: 'y'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // 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: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:               {kind: 'ForHeaderStart', text: '('},
 // CHECK:STDOUT:                 {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:                   {kind: 'Name', text: 'z'},
+// CHECK:STDOUT:                   {kind: 'IdentifierName', text: 'z'},
 // CHECK:STDOUT:                   {kind: 'IntTypeLiteral', text: 'i32'},
 // 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: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:             {kind: 'ForHeader', text: ')', subtree_size: 8},
 // CHECK:STDOUT:               {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                     {kind: 'NameExpr', text: 'Print'},
+// CHECK:STDOUT:                     {kind: 'IdentifierNameExpr', text: 'Print'},
 // CHECK:STDOUT:                   {kind: 'CallExprStart', text: '(', subtree_size: 2},
-// CHECK:STDOUT:                   {kind: 'NameExpr', text: 'z'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameExpr', text: 'z'},
 // CHECK:STDOUT:                 {kind: 'CallExpr', text: ')', subtree_size: 4},
 // CHECK:STDOUT:               {kind: 'ExprStatement', text: ';', subtree_size: 5},
 // CHECK:STDOUT:             {kind: 'CodeBlock', text: '}', subtree_size: 7},

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

@@ -14,22 +14,22 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
 // CHECK:STDOUT:             {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:               {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // 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: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'Print'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'Print'},
 // CHECK:STDOUT:               {kind: 'CallExprStart', text: '(', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:             {kind: 'CallExpr', text: ')', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 7},

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

@@ -10,9 +10,9 @@ fn foo(addr a: i32*);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'PostfixOperator', text: '*', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 4},

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

@@ -10,7 +10,7 @@ fn F();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -13,7 +13,7 @@ fn foo bar;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

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

@@ -20,9 +20,9 @@ fn Div[();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Div'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Div'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: '(', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: '(', has_error: yes},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: '(', has_error: yes},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: '(', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},

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

@@ -13,7 +13,7 @@ fn foo
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: 'fn', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

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

@@ -19,7 +19,7 @@ fn F();
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '(', has_error: yes},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: 'fn', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -19,7 +19,7 @@ fn F();
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '(', has_error: yes},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -19,7 +19,7 @@ fn F();
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '(', has_error: yes},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: 'fn', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -17,7 +17,7 @@ fn F();
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '(', has_error: yes},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: 'fn', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -16,7 +16,7 @@ fn F();
 // CHECK:STDOUT:       {kind: 'InvalidParseStart', text: 'struct', has_error: yes},
 // CHECK:STDOUT:     {kind: 'InvalidParseSubtree', text: '}', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -13,9 +13,9 @@ fn foo(bar);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'bar'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'bar'},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: ')', has_error: yes},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: 'bar', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', has_error: yes, subtree_size: 5},

+ 4 - 4
toolchain/parse/testdata/function/declaration/impl_fn.carbon

@@ -14,21 +14,21 @@ private impl default fn I();
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'ImplModifier', text: 'impl'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'AbstractModifier', text: 'abstract'},
 // CHECK:STDOUT:       {kind: 'ImplModifier', text: 'impl'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'G'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'G'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'ImplModifier', text: 'impl'},
 // CHECK:STDOUT:       {kind: 'AbstractModifier', text: 'abstract'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'H'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'H'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 7},
@@ -36,7 +36,7 @@ private impl default fn I();
 // CHECK:STDOUT:       {kind: 'PrivateModifier', text: 'private'},
 // CHECK:STDOUT:       {kind: 'ImplModifier', text: 'impl'},
 // CHECK:STDOUT:       {kind: 'DefaultModifier', text: 'default'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'I'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'I'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},

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

@@ -10,7 +10,7 @@ fn foo[]();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},

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

@@ -10,13 +10,13 @@ fn foo[a: i32, b: i32]();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 9},

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

@@ -10,13 +10,13 @@ fn foo(a: i32, b: i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 9},

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

@@ -10,7 +10,7 @@ fn foo() -> u32;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'UnsignedIntTypeLiteral', text: 'u32'},

+ 1 - 1
toolchain/parse/testdata/function/definition/basic.carbon

@@ -11,7 +11,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -17,11 +17,11 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
-// CHECK:STDOUT:       {kind: 'NameExpr', text: 'bar'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameExpr', text: 'bar'},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', has_error: yes, subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

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

@@ -12,23 +12,23 @@ fn foo(bar: i64, baz: i64) {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'bar'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'bar'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i64'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'baz'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'baz'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i64'},
 // 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'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'CallExprStart', text: '(', subtree_size: 2},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'baz'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'baz'},
 // CHECK:STDOUT:           {kind: 'CallExprComma', text: ','},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'bar'},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'baz'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'bar'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'baz'},
 // CHECK:STDOUT:           {kind: 'InfixOperator', text: '+', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'CallExpr', text: ')', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'ExprStatement', text: ';', subtree_size: 9},

+ 1 - 1
toolchain/parse/testdata/function/definition/with_return_type.carbon

@@ -12,7 +12,7 @@ fn foo() -> f64 {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'FloatTypeLiteral', text: 'f64'},

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

@@ -12,14 +12,14 @@ interface Bar[]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},

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

@@ -28,27 +28,27 @@ interface Bar[a: i32] {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // 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'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'InterfaceDecl', text: 'interface', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 5},

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

@@ -12,9 +12,9 @@ interface Bar[a: i32]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -22,9 +22,9 @@ interface Bar[a: i32]() {}
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 10},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},

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

@@ -12,9 +12,9 @@ interface Bar[a: i32,]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
@@ -23,9 +23,9 @@ interface Bar[a: i32,]() {}
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 11},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},

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

@@ -12,29 +12,29 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'c'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'c'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'd'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'd'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'e'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'e'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'f'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'f'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
@@ -42,29 +42,29 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 30},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'c'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'c'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'd'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'd'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'e'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'e'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'f'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'f'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 25},

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

@@ -12,13 +12,13 @@ interface Bar[a: i32, b: i32]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
@@ -26,13 +26,13 @@ interface Bar[a: i32, b: i32]() {}
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 14},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 9},

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

@@ -12,13 +12,13 @@ interface Bar[a: i32, b: i32,]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
@@ -27,13 +27,13 @@ interface Bar[a: i32, b: i32,]() {}
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},

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

@@ -10,9 +10,9 @@ fn foo(a:! i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 5},

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

@@ -10,9 +10,9 @@ fn foo(template a:! i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'Template', text: 'template', subtree_size: 4},

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

@@ -10,9 +10,9 @@ fn foo(template addr a:! i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:               {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'Address', text: 'addr', subtree_size: 4},

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

@@ -13,17 +13,17 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Add'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Add'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
@@ -31,14 +31,14 @@ interface Foo {
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Add'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Add'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'foo'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'foo'},
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},

+ 1 - 1
toolchain/parse/testdata/generics/interface/declaration.carbon

@@ -10,7 +10,7 @@ interface Foo;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:     {kind: 'InterfaceDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 1 - 1
toolchain/parse/testdata/generics/interface/empty_body.carbon

@@ -11,7 +11,7 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

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

@@ -18,10 +18,10 @@ interface Foo
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:     {kind: 'InterfaceDecl', text: 'interface', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:     {kind: 'InterfaceDecl', text: 'interface', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

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

@@ -17,17 +17,17 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Add'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Add'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},

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

@@ -20,17 +20,17 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Sub'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Sub'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'Name', text: 'me'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'me'},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: 'Self', has_error: yes},
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
@@ -38,14 +38,14 @@ interface Foo {
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Mul'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Mul'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'Name', text: 'Self', has_error: yes},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'Self', has_error: yes},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: 'Self', has_error: yes},
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},

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

@@ -12,10 +12,10 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'FooFactory'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'FooFactory'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},

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

@@ -13,10 +13,10 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Sub'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Sub'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:                 {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -25,7 +25,7 @@ interface Foo {
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
@@ -33,16 +33,16 @@ interface Foo {
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 17},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Sub'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Sub'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'foo'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:               {kind: 'PostfixOperator', text: '*', subtree_size: 2},
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},

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

@@ -12,10 +12,10 @@ constraint Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Baz'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Baz'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -15,17 +15,17 @@ constraint Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Add'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Add'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // 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: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},

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

@@ -12,12 +12,12 @@ interface Bar() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 5},

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

@@ -12,17 +12,17 @@ interface Bar(a: i32) {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // 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'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},

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

@@ -12,18 +12,18 @@ interface Bar(a: i32,) {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // 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},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},

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

@@ -12,57 +12,57 @@ interface Bar(a: i32, b: i32, c: i32, d: i32, e: i32, f: i32) {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'c'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'c'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'd'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'd'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'e'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'e'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'f'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'f'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // 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'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'c'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'c'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'd'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'd'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'e'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'e'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'f'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'f'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 25},

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

@@ -12,25 +12,25 @@ interface Bar(a: i32, b: i32) {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // 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'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 9},

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

@@ -12,26 +12,26 @@ interface Bar(a: i32, b: i32,) {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'Name', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierName', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // 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},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},

+ 5 - 5
toolchain/parse/testdata/if/basic.carbon

@@ -18,23 +18,23 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:               {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:                   {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:                   {kind: 'NameExpr', text: 'c'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameExpr', text: 'c'},
 // CHECK:STDOUT:                 {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:                   {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                     {kind: 'NameExpr', text: 'd'},
+// CHECK:STDOUT:                     {kind: 'IdentifierNameExpr', text: 'd'},
 // CHECK:STDOUT:                   {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:                 {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:               {kind: 'IfStatement', text: 'if', subtree_size: 8},

+ 11 - 11
toolchain/parse/testdata/if/else.carbon

@@ -23,52 +23,52 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:               {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'c'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'c'},
 // CHECK:STDOUT:               {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:             {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:               {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'd'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'd'},
 // CHECK:STDOUT:               {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'IfStatement', text: 'if', subtree_size: 13},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'e'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'e'},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'IfStatement', text: 'if', subtree_size: 24},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'f'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'f'},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:             {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:           {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'g'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'g'},
 // CHECK:STDOUT:             {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:             {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'h'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'h'},
 // CHECK:STDOUT:             {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'IfStatement', text: 'if', subtree_size: 13},

+ 11 - 11
toolchain/parse/testdata/if/fail_else_unbraced.carbon

@@ -33,52 +33,52 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: 'if', has_error: yes},
 // CHECK:STDOUT:               {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'CodeBlockStart', text: 'c', has_error: yes},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'c'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'c'},
 // CHECK:STDOUT:               {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'CodeBlock', text: 'c', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:             {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:               {kind: 'CodeBlockStart', text: 'd', has_error: yes},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'd'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'd'},
 // CHECK:STDOUT:               {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'CodeBlock', text: 'd', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'IfStatement', text: 'if', subtree_size: 13},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: 'if', has_error: yes, subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: 'e', has_error: yes},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'e'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'e'},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: 'e', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'IfStatement', text: 'if', subtree_size: 24},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'f'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'f'},
 // CHECK:STDOUT:           {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:             {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:           {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'g'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'g'},
 // CHECK:STDOUT:             {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'IfStatementElse', text: 'else'},
 // CHECK:STDOUT:             {kind: 'CodeBlockStart', text: '{'},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'h'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'h'},
 // CHECK:STDOUT:             {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'CodeBlock', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'IfStatement', text: 'if', subtree_size: 13},

+ 4 - 4
toolchain/parse/testdata/if/fail_errors.carbon

@@ -30,12 +30,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: 'if', has_error: yes},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: 'if', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 2},
@@ -47,13 +47,13 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'IfStatement', text: 'if', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:         {kind: 'CodeBlock', text: '}', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'IfStatement', text: 'if', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'd'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'd'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '}', has_error: yes},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: '}', has_error: yes},

+ 1 - 1
toolchain/parse/testdata/if/fail_missing_cond.carbon

@@ -16,7 +16,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

+ 1 - 1
toolchain/parse/testdata/if/fail_square_brackets.carbon

@@ -21,7 +21,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

+ 5 - 5
toolchain/parse/testdata/if/fail_unbraced.carbon

@@ -25,23 +25,23 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
 // CHECK:STDOUT:         {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: 'if', has_error: yes},
 // CHECK:STDOUT:               {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'CodeBlockStart', text: 'if', has_error: yes},
 // CHECK:STDOUT:                   {kind: 'IfConditionStart', text: '('},
-// CHECK:STDOUT:                   {kind: 'NameExpr', text: 'c'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameExpr', text: 'c'},
 // CHECK:STDOUT:                 {kind: 'IfCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:                   {kind: 'CodeBlockStart', text: 'd', has_error: yes},
-// CHECK:STDOUT:                     {kind: 'NameExpr', text: 'd'},
+// CHECK:STDOUT:                     {kind: 'IdentifierNameExpr', text: 'd'},
 // CHECK:STDOUT:                   {kind: 'ExprStatement', text: ';', subtree_size: 2},
 // CHECK:STDOUT:                 {kind: 'CodeBlock', text: 'd', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:               {kind: 'IfStatement', text: 'if', subtree_size: 8},

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

@@ -12,17 +12,17 @@ fn F(b: bool, x: i32, y: i32) -> bool {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'x'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ParamListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'Name', text: 'y'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'y'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 13},
@@ -30,11 +30,11 @@ fn F(b: bool, x: i32, y: i32) -> bool {
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 18},
 // CHECK:STDOUT:         {kind: 'ReturnStatementStart', text: 'return'},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', subtree_size: 2},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:           {kind: 'IfExprThen', text: 'then', subtree_size: 2},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 'y'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:         {kind: 'IfExprElse', text: 'else', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ReturnStatement', text: ';', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 27},

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

@@ -15,12 +15,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},

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

@@ -15,12 +15,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},

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

@@ -15,12 +15,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},

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

@@ -15,12 +15,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},

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

@@ -15,12 +15,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:           {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},

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

@@ -21,7 +21,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -14,12 +14,12 @@ fn F() -> if true then i32 else i32* {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'n'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'n'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
 // 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'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'BoolLiteralTrue', text: 'true'},
@@ -34,9 +34,9 @@ fn F() -> if true then i32 else i32* {
 // CHECK:STDOUT:         {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:             {kind: 'BoolLiteralTrue', text: 'true'},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', subtree_size: 2},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'n'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IfExprThen', text: 'then', subtree_size: 2},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'n'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'n'},
 // CHECK:STDOUT:           {kind: 'PrefixOperator', text: '&', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'IfExprElse', text: 'else', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'ReturnStatement', text: ';', subtree_size: 9},

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

@@ -12,9 +12,9 @@ fn F(b: bool) -> bool {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'Name', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierName', text: 'b'},
 // CHECK:STDOUT:             {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:           {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ParamList', text: ')', subtree_size: 5},
@@ -22,19 +22,19 @@ fn F(b: bool) -> bool {
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 10},
 // CHECK:STDOUT:         {kind: 'ReturnStatementStart', text: 'return'},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:               {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:             {kind: 'InfixOperator', text: 'and', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'IfExprIf', text: 'if', subtree_size: 5},
-// CHECK:STDOUT:                 {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:               {kind: 'ShortCircuitOperand', text: 'and', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:             {kind: 'InfixOperator', text: 'and', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'IfExprThen', text: 'then', subtree_size: 5},
-// CHECK:STDOUT:               {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:             {kind: 'ShortCircuitOperand', text: 'or', subtree_size: 2},
-// CHECK:STDOUT:             {kind: 'NameExpr', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:           {kind: 'InfixOperator', text: 'or', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'IfExprElse', text: 'else', subtree_size: 15},
 // CHECK:STDOUT:       {kind: 'ReturnStatement', text: ';', subtree_size: 17},

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

@@ -10,11 +10,11 @@ var v: i32 = t[0];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'v'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'v'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 't'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 't'},
 // CHECK:STDOUT:         {kind: 'IndexExprStart', text: '[', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:       {kind: 'IndexExpr', text: ']', subtree_size: 4},

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

@@ -13,11 +13,11 @@ var v: i32 = t[];
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:         {kind: 'Name', text: 'v'},
+// CHECK:STDOUT:         {kind: 'IdentifierName', text: 'v'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:       {kind: 'BindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariableInitializer', text: '='},
-// CHECK:STDOUT:           {kind: 'NameExpr', text: 't'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 't'},
 // CHECK:STDOUT:         {kind: 'IndexExprStart', text: '[', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: ']', has_error: yes},
 // CHECK:STDOUT:       {kind: 'IndexExpr', text: ']', has_error: yes, subtree_size: 4},

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