瀏覽代碼

Track the start of a signature more accurately (#6760)

This change ensures that a function signature always starts with an
`IdentifierNameMaybeBeforeSignature` node (renamed from
`IdentifierNameBeforeParams`), even in the case of function declarations
like `fn F -> T` that have no parameter list. As a consequence, this
ensures that we push new entries onto `pattern_block_stack` and
`full_pattern_stack` when we start processing the function signature.
Geoff Romer 2 月之前
父節點
當前提交
4a0cf6c1fb
共有 100 個文件被更改,包括 499 次插入502 次删除
  1. 0 13
      toolchain/check/handle_function.cpp
  2. 9 6
      toolchain/check/handle_name.cpp
  3. 2 2
      toolchain/docs/check/pattern_matching.md
  4. 4 4
      toolchain/language_server/handle_document_symbol.cpp
  5. 3 2
      toolchain/parse/handle_binding_pattern.cpp
  6. 2 2
      toolchain/parse/handle_choice.cpp
  7. 8 3
      toolchain/parse/handle_decl_name_and_params.cpp
  8. 2 2
      toolchain/parse/handle_expr.cpp
  9. 1 1
      toolchain/parse/handle_let.cpp
  10. 3 3
      toolchain/parse/handle_period.cpp
  11. 2 1
      toolchain/parse/handle_requirement.cpp
  12. 1 1
      toolchain/parse/handle_var.cpp
  13. 1 1
      toolchain/parse/node_ids.h
  14. 2 2
      toolchain/parse/node_kind.def
  15. 9 9
      toolchain/parse/testdata/alias/basic.carbon
  16. 9 9
      toolchain/parse/testdata/alias/fail_syntax.carbon
  17. 1 1
      toolchain/parse/testdata/array/basic.carbon
  18. 8 8
      toolchain/parse/testdata/array/fail_syntax.carbon
  19. 1 1
      toolchain/parse/testdata/auto/let.carbon
  20. 2 2
      toolchain/parse/testdata/auto/match_case.carbon
  21. 1 1
      toolchain/parse/testdata/auto/return.carbon
  22. 1 1
      toolchain/parse/testdata/auto/var.carbon
  23. 5 5
      toolchain/parse/testdata/basics/fail_bracket_recovery.carbon
  24. 3 3
      toolchain/parse/testdata/basics/fail_invalid_designators.carbon
  25. 1 1
      toolchain/parse/testdata/basics/fail_paren_match_regression.carbon
  26. 4 4
      toolchain/parse/testdata/basics/form_literals.carbon
  27. 5 5
      toolchain/parse/testdata/basics/function_call.carbon
  28. 2 2
      toolchain/parse/testdata/basics/multifile.carbon
  29. 2 2
      toolchain/parse/testdata/basics/parens.carbon
  30. 4 4
      toolchain/parse/testdata/basics/type_literals.carbon
  31. 7 7
      toolchain/parse/testdata/basics/value_literals.carbon
  32. 5 5
      toolchain/parse/testdata/choice/basic.carbon
  33. 2 2
      toolchain/parse/testdata/choice/fail_alternative_with_implicit_params.carbon
  34. 2 2
      toolchain/parse/testdata/choice/fail_invalid_alternative_identifier.carbon
  35. 1 1
      toolchain/parse/testdata/choice/fail_invalid_braces.carbon
  36. 1 1
      toolchain/parse/testdata/choice/fail_missing_definition.carbon
  37. 2 2
      toolchain/parse/testdata/choice/fail_missing_definition_parameterized.carbon
  38. 2 2
      toolchain/parse/testdata/choice/fail_qualified_alternative_name.carbon
  39. 4 4
      toolchain/parse/testdata/choice/local.carbon
  40. 5 5
      toolchain/parse/testdata/choice/modifiers.carbon
  41. 5 5
      toolchain/parse/testdata/choice/parameterized.carbon
  42. 12 12
      toolchain/parse/testdata/class/adapt.carbon
  43. 4 4
      toolchain/parse/testdata/class/base.carbon
  44. 2 2
      toolchain/parse/testdata/class/base_misplaced.carbon
  45. 2 2
      toolchain/parse/testdata/class/basic.carbon
  46. 1 1
      toolchain/parse/testdata/class/fail_base.carbon
  47. 2 2
      toolchain/parse/testdata/class/fail_modifiers.carbon
  48. 3 3
      toolchain/parse/testdata/class/fail_var_name.carbon
  49. 7 7
      toolchain/parse/testdata/class/fn_definitions.carbon
  50. 8 8
      toolchain/parse/testdata/class/introducer.carbon
  51. 6 6
      toolchain/parse/testdata/class/local.carbon
  52. 3 3
      toolchain/parse/testdata/class/mismatched_introducer.carbon
  53. 3 3
      toolchain/parse/testdata/class/var.carbon
  54. 2 2
      toolchain/parse/testdata/for/fail_colon_instead_of_in.carbon
  55. 2 2
      toolchain/parse/testdata/for/fail_missing_cond.carbon
  56. 2 2
      toolchain/parse/testdata/for/fail_missing_in.carbon
  57. 2 2
      toolchain/parse/testdata/for/fail_returned_var.carbon
  58. 2 2
      toolchain/parse/testdata/for/fail_square_brackets.carbon
  59. 3 3
      toolchain/parse/testdata/for/nested.carbon
  60. 7 7
      toolchain/parse/testdata/for/pattern.carbon
  61. 9 9
      toolchain/parse/testdata/function/call.carbon
  62. 19 19
      toolchain/parse/testdata/function/decl_statement.carbon
  63. 34 34
      toolchain/parse/testdata/function/declaration.carbon
  64. 16 16
      toolchain/parse/testdata/function/definition.carbon
  65. 3 3
      toolchain/parse/testdata/function/eval_musteval.carbon
  66. 6 6
      toolchain/parse/testdata/function/extern.carbon
  67. 4 4
      toolchain/parse/testdata/function/terse.carbon
  68. 2 2
      toolchain/parse/testdata/generics/deduced_params/empty.carbon
  69. 8 8
      toolchain/parse/testdata/generics/deduced_params/no_parens.carbon
  70. 4 4
      toolchain/parse/testdata/generics/deduced_params/one.carbon
  71. 4 4
      toolchain/parse/testdata/generics/deduced_params/one_suffix_comma.carbon
  72. 14 14
      toolchain/parse/testdata/generics/deduced_params/six.carbon
  73. 6 6
      toolchain/parse/testdata/generics/deduced_params/two.carbon
  74. 6 6
      toolchain/parse/testdata/generics/deduced_params/two_suffix_comma.carbon
  75. 2 2
      toolchain/parse/testdata/generics/generic_params/basic.carbon
  76. 10 10
      toolchain/parse/testdata/generics/generic_params/fail_template_no_param.carbon
  77. 8 8
      toolchain/parse/testdata/generics/generic_params/template.carbon
  78. 2 2
      toolchain/parse/testdata/generics/impl/basic.carbon
  79. 2 2
      toolchain/parse/testdata/generics/impl/class.carbon
  80. 4 4
      toolchain/parse/testdata/generics/impl/fail_impl.carbon
  81. 6 6
      toolchain/parse/testdata/generics/impl/fail_out_of_line_member.carbon
  82. 3 3
      toolchain/parse/testdata/generics/impl/forall.carbon
  83. 8 8
      toolchain/parse/testdata/generics/interface/associated_constants.carbon
  84. 5 5
      toolchain/parse/testdata/generics/interface/basic.carbon
  85. 1 1
      toolchain/parse/testdata/generics/interface/declaration.carbon
  86. 5 5
      toolchain/parse/testdata/generics/interface/default_fn.carbon
  87. 1 1
      toolchain/parse/testdata/generics/interface/empty_body.carbon
  88. 7 7
      toolchain/parse/testdata/generics/interface/fail_associated_constants.carbon
  89. 2 2
      toolchain/parse/testdata/generics/interface/fail_missing_open_curly.carbon
  90. 7 7
      toolchain/parse/testdata/generics/interface/fail_self_param_syntax.carbon
  91. 6 6
      toolchain/parse/testdata/generics/interface/final_fn.carbon
  92. 3 3
      toolchain/parse/testdata/generics/interface/final_member_definition.carbon
  93. 2 2
      toolchain/parse/testdata/generics/interface/non_instance_fn.carbon
  94. 21 21
      toolchain/parse/testdata/generics/interface/require.carbon
  95. 5 5
      toolchain/parse/testdata/generics/interface/self_ref.carbon
  96. 3 3
      toolchain/parse/testdata/generics/named_constraint/basic.carbon
  97. 6 6
      toolchain/parse/testdata/generics/named_constraint/invalid_method.carbon
  98. 2 2
      toolchain/parse/testdata/generics/params/empty.carbon
  99. 32 32
      toolchain/parse/testdata/generics/params/name_qualifier.carbon
  100. 4 4
      toolchain/parse/testdata/generics/params/one.carbon

+ 0 - 13
toolchain/check/handle_function.cpp

@@ -52,19 +52,6 @@ auto HandleParseNode(Context& context, Parse::FunctionIntroducerId node_id)
 auto HandleParseNode(Context& context, Parse::ReturnTypeId node_id) -> bool {
   auto [type_node_id, type_inst_id] = context.node_stack().PopExprWithNodeId();
 
-  // If the previous node was `IdentifierNameBeforeParams`, then it would have
-  // caused these entries to be pushed to the pattern stacks. But it's possible
-  // to have a fn declaration without any parameters, in which case we find
-  // `IdentifierNameNotBeforeParams` on the node stack. Then these entries are
-  // not on the pattern stacks yet. They are only needed in that case if we have
-  // a return type, which we now know that we do.
-  if (context.node_stack().PeekNodeKind() ==
-      Parse::NodeKind::IdentifierNameNotBeforeParams) {
-    context.pattern_block_stack().Push();
-    context.full_pattern_stack().PushFullPattern(
-        FullPatternStack::Kind::ExplicitParamList);
-  }
-
   // Propagate the type expression.
   auto form_expr = ExprAsReturnForm(context, type_node_id, type_inst_id);
   context.PushReturnForm(form_expr);

+ 9 - 6
toolchain/check/handle_name.cpp

@@ -95,10 +95,11 @@ auto HandleParseNode(Context& context, Parse::PointerMemberAccessExprId node_id)
 
 // Returns the `NameId` for an identifier node.
 static auto GetIdentifierAsNameId(
-    Context& context, Parse::NodeIdOneOf<Parse::IdentifierNameNotBeforeParamsId,
-                                         Parse::IdentifierNameBeforeParamsId,
-                                         Parse::IdentifierNameExprId>
-                          node_id) -> SemIR::NameId {
+    Context& context,
+    Parse::NodeIdOneOf<Parse::IdentifierNameNotBeforeSignatureId,
+                       Parse::IdentifierNameMaybeBeforeSignatureId,
+                       Parse::IdentifierNameExprId>
+        node_id) -> SemIR::NameId {
   CARBON_CHECK(!context.parse_tree().node_has_error(node_id),
                "TODO: Support checking error parse nodes");
   auto token = context.parse_tree().node_token(node_id);
@@ -115,14 +116,16 @@ static auto HandleNameAsExpr(Context& context, Parse::NodeId node_id,
 }
 
 auto HandleParseNode(Context& context,
-                     Parse::IdentifierNameNotBeforeParamsId node_id) -> bool {
+                     Parse::IdentifierNameNotBeforeSignatureId node_id)
+    -> bool {
   // The parent is responsible for binding the name.
   context.node_stack().Push(node_id, GetIdentifierAsNameId(context, node_id));
   return true;
 }
 
 auto HandleParseNode(Context& context,
-                     Parse::IdentifierNameBeforeParamsId node_id) -> bool {
+                     Parse::IdentifierNameMaybeBeforeSignatureId node_id)
+    -> bool {
   // Push a pattern block stack entry to handle the parameter pattern.
   context.pattern_block_stack().Push();
   context.full_pattern_stack().PushFullPattern(

+ 2 - 2
toolchain/docs/check/pattern_matching.md

@@ -164,8 +164,8 @@ an identifier doesn't necessarily mark the start of a full-pattern. We've solved
 that by having the parser mark identifier nodes that are followed by
 full-patterns (using lookahead). Rather than use additional storage for what is
 logically a single bit of data, we effectively smuggle that bit into the kind
-enum by having separate node kinds `IdentifierNameBeforeParams` and
-`IdentifierNameNotBeforeParams`.
+enum by having separate node kinds `IdentifierNameMaybeBeforeSignature` and
+`IdentifierNameNotBeforeSignature`.
 
 If the parameterized name is a name qualifier (such as the first part of
 `Foo(X:! i32).Bar(y: i32)`), the node immediately after it will be the qualifier

+ 4 - 4
toolchain/language_server/handle_document_symbol.cpp

@@ -17,16 +17,16 @@
 
 namespace Carbon::LanguageServer {
 
-// Returns the token of first child of kind IdentifierNameBeforeParams or
-// IdentifierNameNotBeforeParams.
+// Returns the token of first child of kind IdentifierNameMaybeBeforeSignature
+// or IdentifierNameNotBeforeSignature.
 static auto GetSymbolIdentifier(const Parse::TreeAndSubtrees& tree_and_subtrees,
                                 Parse::NodeId node)
     -> std::optional<Lex::TokenIndex> {
   const auto& tokens = tree_and_subtrees.tree().tokens();
   for (auto child : tree_and_subtrees.children(node)) {
     switch (tree_and_subtrees.tree().node_kind(child)) {
-      case Parse::NodeKind::IdentifierNameBeforeParams:
-      case Parse::NodeKind::IdentifierNameNotBeforeParams: {
+      case Parse::NodeKind::IdentifierNameMaybeBeforeSignature:
+      case Parse::NodeKind::IdentifierNameNotBeforeSignature: {
         auto token = tree_and_subtrees.tree().node_token(child);
         if (tokens.GetKind(token) == Lex::TokenKind::Identifier) {
           return token;

+ 3 - 2
toolchain/parse/handle_binding_pattern.cpp

@@ -35,7 +35,8 @@ auto HandleBindingPattern(Context& context) -> void {
 
   // The first item should be an identifier, the placeholder `_`, or `self`.
   if (auto identifier = context.ConsumeIf(Lex::TokenKind::Identifier)) {
-    context.AddLeafNode(NodeKind::IdentifierNameNotBeforeParams, *identifier);
+    context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature,
+                        *identifier);
   } else if (auto self =
                  context.ConsumeIf(Lex::TokenKind::SelfValueIdentifier)) {
     // Checking will validate the `self` is only declared in the implicit
@@ -45,7 +46,7 @@ auto HandleBindingPattern(Context& context) -> void {
     context.AddLeafNode(NodeKind::UnderscoreName, *underscore);
   } else {
     // Add a placeholder for the name.
-    context.AddLeafNode(NodeKind::IdentifierNameNotBeforeParams,
+    context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature,
                         *context.position(), /*has_error=*/true);
     on_error(/*expected_name=*/true);
   }

+ 2 - 2
toolchain/parse/handle_choice.cpp

@@ -67,10 +67,10 @@ auto HandleChoiceAlternative(Context& context) -> void {
   }
 
   if (context.PositionIs(Lex::TokenKind::OpenParen)) {
-    context.AddLeafNode(NodeKind::IdentifierNameBeforeParams, *token);
+    context.AddLeafNode(NodeKind::IdentifierNameMaybeBeforeSignature, *token);
     context.PushState(StateKind::PatternListAsExplicit);
   } else {
-    context.AddLeafNode(NodeKind::IdentifierNameNotBeforeParams, *token);
+    context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature, *token);
   }
 }
 

+ 8 - 3
toolchain/parse/handle_decl_name_and_params.cpp

@@ -38,6 +38,11 @@ static auto HandleName(Context& context, Context::State state,
       context.PushState(StateKind::PatternListAsExplicit);
       break;
 
+    case Lex::TokenKind::MinusGreater:
+    case Lex::TokenKind::MinusGreaterQuestion:
+      context.AddLeafNode(before_params_kind, name_token);
+      break;
+
     default:
       context.AddLeafNode(not_before_params_kind, name_token);
       break;
@@ -49,9 +54,9 @@ auto HandleDeclNameAndParams(Context& context) -> void {
 
   if (auto identifier = context.ConsumeIf(Lex::TokenKind::Identifier)) {
     HandleName(context, state, *identifier,
-               NodeKind::IdentifierNameNotBeforeParams,
+               NodeKind::IdentifierNameNotBeforeSignature,
                NodeKind::IdentifierNameQualifierWithoutParams,
-               NodeKind::IdentifierNameBeforeParams);
+               NodeKind::IdentifierNameMaybeBeforeSignature);
     return;
   }
 
@@ -94,7 +99,7 @@ auto HandleDeclNameAndParamsAfterParams(Context& context) -> void {
 
   if (auto period = context.ConsumeIf(Lex::TokenKind::Period)) {
     CARBON_CHECK(context.tree().node_kind(NodeId(state.subtree_start)) ==
-                 NodeKind::IdentifierNameBeforeParams);
+                 NodeKind::IdentifierNameMaybeBeforeSignature);
     context.AddNode(NodeKind::IdentifierNameQualifierWithParams, *period,
                     state.has_error);
     context.PushState(StateKind::DeclNameAndParams);

+ 2 - 2
toolchain/parse/handle_expr.cpp

@@ -211,7 +211,7 @@ auto HandleExprInPostfix(Context& context) -> void {
       auto period = context.Consume();
       if (context.ConsumeAndAddLeafNodeIf(
               Lex::TokenKind::Identifier,
-              NodeKind::IdentifierNameNotBeforeParams)) {
+              NodeKind::IdentifierNameNotBeforeSignature)) {
         // OK, `.` identifier.
       } else if (context.ConsumeAndAddLeafNodeIf(
                      Lex::TokenKind::SelfTypeIdentifier,
@@ -224,7 +224,7 @@ auto HandleExprInPostfix(Context& context) -> void {
                                ExpectedIdentifierOrSelfAfterPeriod);
         // Only consume if it is a number or word.
         if (context.PositionKind().is_keyword()) {
-          context.AddLeafNode(NodeKind::IdentifierNameNotBeforeParams,
+          context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature,
                               context.Consume(), /*has_error=*/true);
         } else if (context.PositionIs(Lex::TokenKind::IntLiteral)) {
           context.AddInvalidParse(context.Consume());

+ 1 - 1
toolchain/parse/handle_let.cpp

@@ -52,7 +52,7 @@ auto HandleAssociatedConstant(Context& context) -> void {
     return;
   }
 
-  context.AddLeafNode(NodeKind::IdentifierNameNotBeforeParams, *identifier);
+  context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature, *identifier);
   state.token = *colon_exclaim;
   context.PushState(state, StateKind::LetFinishAsAssociatedConstant);
   context.PushState(state, StateKind::LetAfterPatternAsAssociatedConstant);

+ 3 - 3
toolchain/parse/handle_period.cpp

@@ -22,7 +22,7 @@ static auto HandlePeriodOrArrow(Context& context, NodeKind node_kind,
 
   if (context.ConsumeAndAddLeafNodeIf(
           Lex::TokenKind::Identifier,
-          NodeKind::IdentifierNameNotBeforeParams)) {
+          NodeKind::IdentifierNameNotBeforeSignature)) {
     // OK, `.` identifier.
   } else if (context.ConsumeAndAddLeafNodeIf(Lex::TokenKind::Base,
                                              NodeKind::BaseName)) {
@@ -46,10 +46,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::IdentifierNameNotBeforeParams,
+      context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature,
                           context.Consume(), /*has_error=*/true);
     } else {
-      context.AddLeafNode(NodeKind::IdentifierNameNotBeforeParams,
+      context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature,
                           *context.position(), /*has_error=*/true);
       // Indicate the error to the parent state so that it can avoid producing
       // more errors.

+ 2 - 1
toolchain/parse/handle_requirement.cpp

@@ -18,7 +18,8 @@ auto HandleRequirementBegin(Context& context) -> void {
       context.PositionKind(static_cast<Lookahead>(2)) ==
           Lex::TokenKind::Equal) {
     auto period = context.Consume();
-    context.AddNode(NodeKind::IdentifierNameNotBeforeParams, context.Consume(),
+    context.AddNode(NodeKind::IdentifierNameNotBeforeSignature,
+                    context.Consume(),
                     /*has_error=*/false);
     context.AddNode(NodeKind::DesignatorExpr, period, /*has_error=*/false);
     state.token = context.Consume();

+ 1 - 1
toolchain/parse/handle_var.cpp

@@ -74,7 +74,7 @@ auto HandleFieldDecl(Context& context) -> void {
     return;
   }
   context.PushState(state, StateKind::VarFinishAsField);
-  context.AddLeafNode(NodeKind::IdentifierNameNotBeforeParams, *identifier);
+  context.AddLeafNode(NodeKind::IdentifierNameNotBeforeSignature, *identifier);
   state.token = *colon;
   context.PushState(state, StateKind::VarAfterPatternAsField);
   context.PushState(StateKind::Expr);

+ 1 - 1
toolchain/parse/node_ids.h

@@ -186,7 +186,7 @@ using AnyPackagingDeclId =
 using AnyPointerDeferenceExprId =
     NodeIdOneOf<PrefixOperatorStarId, PointerMemberAccessExprId>;
 using AnyRuntimeBindingPatternName =
-    NodeIdOneOf<IdentifierNameNotBeforeParamsId, SelfValueNameId,
+    NodeIdOneOf<IdentifierNameNotBeforeSignatureId, SelfValueNameId,
                 UnderscoreNameId>;
 using AnyPrimitiveFormIdId =
     NodeIdOneOf<RefPrimitiveFormId, VarPrimitiveFormId, ValPrimitiveFormId>;

+ 2 - 2
toolchain/parse/node_kind.def

@@ -95,8 +95,8 @@ CARBON_PARSE_NODE_KIND(Placeholder)
 
 CARBON_PARSE_NODE_KIND(EmptyDecl)
 
-CARBON_PARSE_NODE_KIND(IdentifierNameNotBeforeParams)
-CARBON_PARSE_NODE_KIND(IdentifierNameBeforeParams)
+CARBON_PARSE_NODE_KIND(IdentifierNameNotBeforeSignature)
+CARBON_PARSE_NODE_KIND(IdentifierNameMaybeBeforeSignature)
 
 CARBON_PARSE_NODE_KIND(IdentifierNameExpr)
 

+ 9 - 9
toolchain/parse/testdata/alias/basic.carbon

@@ -26,45 +26,45 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:       {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:       {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
 // CHECK:STDOUT:       {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '1'},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '3'},
 // CHECK:STDOUT:       {kind: 'InfixOperatorPlus', text: '+', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'NS'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'NS'},
 // CHECK:STDOUT:       {kind: 'IdentifierNameQualifierWithoutParams', text: '.', subtree_size: 2},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'ns'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'ns'},
 // CHECK:STDOUT:       {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
 // CHECK:STDOUT:         {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:       {kind: 'Alias', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 9},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
 // CHECK:STDOUT:         {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:       {kind: 'Alias', text: ';', subtree_size: 5},

+ 9 - 9
toolchain/parse/testdata/alias/fail_syntax.carbon

@@ -83,29 +83,29 @@ alias a = b
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '=', has_error: yes},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:       {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: ';', has_error: yes},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '=', has_error: yes},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:       {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:     {kind: 'Alias', text: ';', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -113,18 +113,18 @@ alias a = b
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: ';', has_error: yes},
 // CHECK:STDOUT:       {kind: 'Alias', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:         {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: ';', has_error: yes},
 // CHECK:STDOUT:       {kind: 'Alias', text: ';', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:         {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '}', has_error: yes},
 // CHECK:STDOUT:       {kind: 'Alias', text: '=', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 19},
 // CHECK:STDOUT:       {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:       {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:       {kind: 'IdentifierNameExpr', text: 'b'},
 // CHECK:STDOUT:     {kind: 'Alias', text: 'b', has_error: yes, subtree_size: 5},

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

@@ -14,7 +14,7 @@ var x: array(i32, 10);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},

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

@@ -132,7 +132,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
@@ -148,7 +148,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'X'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'X'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'ArrayExprKeyword', text: 'array'},
@@ -165,7 +165,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: '`', has_error: yes},
@@ -181,7 +181,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: 'array', has_error: yes},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
@@ -197,7 +197,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: 'array', has_error: yes},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: '(', has_error: yes},
@@ -213,7 +213,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
@@ -229,7 +229,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: ')', has_error: yes},
@@ -245,7 +245,7 @@ var x: array;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: 'array', has_error: yes},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: ';', has_error: yes},

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

@@ -14,7 +14,7 @@ let x: auto = 1;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'LetIntroducer', text: 'let'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:         {kind: 'AutoTypeLiteral', text: 'auto'},
 // CHECK:STDOUT:       {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'LetInitializer', text: '='},

+ 2 - 2
toolchain/parse/testdata/auto/match_case.carbon

@@ -19,7 +19,7 @@ fn f() -> bool {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'f'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'f'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'BoolTypeLiteral', text: 'bool'},
@@ -31,7 +31,7 @@ fn f() -> bool {
 // CHECK:STDOUT:           {kind: 'MatchCondition', text: ')', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'MatchStatementStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:             {kind: 'MatchCaseIntroducer', text: 'case'},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:               {kind: 'AutoTypeLiteral', text: 'auto'},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'MatchCaseGuardIntroducer', text: 'if'},

+ 1 - 1
toolchain/parse/testdata/auto/return.carbon

@@ -16,7 +16,7 @@ fn f() -> auto {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'f'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'f'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'AutoTypeLiteral', text: 'auto'},

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

@@ -14,7 +14,7 @@ var y: auto = false;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:           {kind: 'AutoTypeLiteral', text: 'auto'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},

+ 5 - 5
toolchain/parse/testdata/basics/fail_bracket_recovery.carbon

@@ -35,12 +35,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:               {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:               {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
@@ -68,9 +68,9 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'InfixOperatorPlus', text: '+', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'ExprStatement', text: ';', subtree_size: 9},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:               {kind: 'StructTypeLiteralStart', text: '{'},
-// CHECK:STDOUT:                   {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:                 {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:                   {kind: 'TupleLiteralStart', text: '('},
 // CHECK:STDOUT:                 {kind: 'TupleLiteral', text: ')', subtree_size: 2},
@@ -80,7 +80,7 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'VariablePattern', text: 'var', subtree_size: 10},
 // CHECK:STDOUT:         {kind: 'VariableInitializer', text: '='},
 // CHECK:STDOUT:           {kind: 'StructLiteralStart', text: '{'},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:             {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'ParenExprStart', text: '('},
 // CHECK:STDOUT:                 {kind: 'TupleLiteralStart', text: '('},

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

@@ -26,16 +26,16 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'a'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: ';', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameExpr', text: 'a'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'fn', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'fn', has_error: yes},
 // CHECK:STDOUT:         {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExprStatement', text: ';', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 14},

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

@@ -26,7 +26,7 @@ var = (foo {})
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: '=', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: '=', has_error: yes},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: '=', has_error: yes},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: '=', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', has_error: yes, subtree_size: 4},

+ 4 - 4
toolchain/parse/testdata/basics/form_literals.carbon

@@ -78,7 +78,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -102,14 +102,14 @@ fn F() {
 // CHECK:STDOUT:           {kind: 'FormLiteralKeyword', text: 'form'},
 // CHECK:STDOUT:           {kind: 'FormLiteralOpenParen', text: '('},
 // CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'X'},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:             {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ValPrimitiveForm', text: 'val', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'FormLiteral', text: ')', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'ExprStatement', text: ';', subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 31},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'VarReturn'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'VarReturn'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'FormLiteralKeyword', text: 'form'},
@@ -125,7 +125,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -17,25 +17,25 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:                       {kind: 'IdentifierNameExpr', text: 'a'},
-// CHECK:STDOUT:                       {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:                       {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:                     {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
-// CHECK:STDOUT:                     {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
+// CHECK:STDOUT:                     {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
 // CHECK:STDOUT:                   {kind: 'MemberAccessExpr', text: '.', subtree_size: 5},
 // CHECK:STDOUT:                 {kind: 'CallExprStart', text: '(', subtree_size: 6},
 // CHECK:STDOUT:                   {kind: 'IdentifierNameExpr', text: 'c'},
-// CHECK:STDOUT:                   {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
 // CHECK:STDOUT:                 {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:                 {kind: 'TupleLiteralComma', text: ','},
 // CHECK:STDOUT:                   {kind: 'ParenExprStart', text: '('},
 // 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: 'IdentifierNameNotBeforeParams', text: 'g'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', 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

@@ -18,7 +18,7 @@ fn B() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'A'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -29,7 +29,7 @@ fn B() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'B'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -16,9 +16,9 @@ fn F(n: i32) -> i32 {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'n'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'n'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

+ 4 - 4
toolchain/parse/testdata/basics/type_literals.carbon

@@ -17,7 +17,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'test_i32'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'test_i32'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -25,7 +25,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:       {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'test_f64'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'test_f64'},
 // CHECK:STDOUT:           {kind: 'FloatTypeLiteral', text: 'f64'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -33,7 +33,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:       {kind: 'RealLiteral', text: '0.1'},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'test_char'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'test_char'},
 // CHECK:STDOUT:           {kind: 'CharTypeLiteral', text: 'char'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -41,7 +41,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:       {kind: 'CharLiteral', text: ''c''},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'test_str'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'test_str'},
 // CHECK:STDOUT:           {kind: 'StringTypeLiteral', text: 'str'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},

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

@@ -49,7 +49,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'ints'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'ints'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
@@ -78,7 +78,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'reals'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'reals'},
 // CHECK:STDOUT:             {kind: 'ArrayExprKeyword', text: 'array'},
 // CHECK:STDOUT:             {kind: 'ArrayExprOpenParen', text: '('},
 // CHECK:STDOUT:             {kind: 'FloatTypeLiteral', text: 'f64'},
@@ -111,7 +111,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
 // CHECK:STDOUT:           {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -119,7 +119,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:       {kind: 'BoolLiteralFalse', text: 'false'},
 // CHECK:STDOUT:     {kind: 'VariableDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 't'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 't'},
 // CHECK:STDOUT:           {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -132,9 +132,9 @@ var test_str: str = "Test";
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
 // CHECK:STDOUT:             {kind: 'CoreNameExpr', text: 'Core'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'Char'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'Char'},
 // CHECK:STDOUT:           {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 6},
@@ -147,7 +147,7 @@ var test_str: str = "Test";
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'test_str'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'test_str'},
 // CHECK:STDOUT:           {kind: 'StringTypeLiteral', text: 'str'},
 // CHECK:STDOUT:         {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'VariablePattern', text: 'var', subtree_size: 4},

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

@@ -19,15 +19,15 @@ choice Ordering {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Ordering'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Ordering'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Less'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Less'},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Equivalent'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Equivalent'},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Greater'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Greater'},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Incomparable'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Incomparable'},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: '}', subtree_size: 11},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 2 - 2
toolchain/parse/testdata/choice/fail_alternative_with_implicit_params.carbon

@@ -20,9 +20,9 @@ choice X {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'X'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'X'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'A'},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: '}', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 2 - 2
toolchain/parse/testdata/choice/fail_invalid_alternative_identifier.carbon

@@ -26,9 +26,9 @@ choice InvalidAlternativeIdentifier {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'InvalidAlternativeIdentifier'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'InvalidAlternativeIdentifier'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Other'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Other'},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: '}', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 1 - 1
toolchain/parse/testdata/choice/fail_invalid_braces.carbon

@@ -24,7 +24,7 @@ choice InvalidBraces |
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'InvalidBraces'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'InvalidBraces'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: '|', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: '|', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'InvalidParseStart', text: '|', has_error: yes},

+ 1 - 1
toolchain/parse/testdata/choice/fail_missing_definition.carbon

@@ -18,7 +18,7 @@ choice MissingDefinition;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'MissingDefinition'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'MissingDefinition'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: ';', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 2 - 2
toolchain/parse/testdata/choice/fail_missing_definition_parameterized.carbon

@@ -18,9 +18,9 @@ choice MissingDefinition(T:! type);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'MissingDefinition'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'MissingDefinition'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},

+ 2 - 2
toolchain/parse/testdata/choice/fail_qualified_alternative_name.carbon

@@ -20,9 +20,9 @@ choice X {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'X'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'X'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'A'},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: '}', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 4 - 4
toolchain/parse/testdata/choice/local.carbon

@@ -19,16 +19,16 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:         {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 3},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'X'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'X'},
 // CHECK:STDOUT:         {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 13},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 5 - 5
toolchain/parse/testdata/choice/modifiers.carbon

@@ -20,15 +20,15 @@ private choice Ordering {
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
 // CHECK:STDOUT:         {kind: 'PrivateModifier', text: 'private'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Ordering'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Ordering'},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 4},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Less'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Less'},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Equivalent'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Equivalent'},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Greater'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Greater'},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Incomparable'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Incomparable'},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: '}', subtree_size: 12},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 5 - 5
toolchain/parse/testdata/choice/parameterized.carbon

@@ -17,22 +17,22 @@ choice OptionalElement(T:! type) {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'OptionalElement'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'OptionalElement'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 9},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Element'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Element'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'value'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'value'},
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'T'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'None'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'None'},
 // CHECK:STDOUT:       {kind: 'ChoiceAlternativeListComma', text: ','},
 // CHECK:STDOUT:     {kind: 'ChoiceDefinition', text: '}', subtree_size: 19},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

+ 12 - 12
toolchain/parse/testdata/class/adapt.carbon

@@ -75,7 +75,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'A'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:           {kind: 'TupleLiteralStart', text: '('},
@@ -83,31 +83,31 @@ fn F() {
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 8},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'B'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'A'},
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'ExtendModifier', text: 'extend'},
 // CHECK:STDOUT:           {kind: 'StructTypeLiteralStart', text: '{'},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'StructTypeLiteralField', text: ':', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'StructTypeLiteralComma', text: ','},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'StructTypeLiteralField', text: ':', subtree_size: 4},
@@ -115,7 +115,7 @@ fn F() {
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: ';', subtree_size: 14},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 18},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'E'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'E'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'GetType'},
@@ -133,35 +133,35 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'A'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '1'},
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'B'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: ';', has_error: yes},
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: '}', has_error: yes},
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: 'adapt', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: 'class', has_error: yes},
 // CHECK:STDOUT:       {kind: 'AdaptDecl', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

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

@@ -22,11 +22,11 @@ class D {
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'D'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'BaseIntroducer', text: 'base'},
 // CHECK:STDOUT:         {kind: 'BaseColon', text: ':'},
@@ -39,12 +39,12 @@ class D {
 // CHECK:STDOUT:       {kind: 'BaseDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Nested'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'PrivateNested'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', 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/base_misplaced.carbon

@@ -23,7 +23,7 @@ fn F() {
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:         {kind: 'BaseModifier', text: 'base'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'B'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'BaseIntroducer', text: 'base'},
@@ -31,7 +31,7 @@ fn F() {
 // CHECK:STDOUT:       {kind: 'IdentifierNameExpr', text: 'B'},
 // CHECK:STDOUT:     {kind: 'BaseDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},

+ 2 - 2
toolchain/parse/testdata/class/basic.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: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Baz'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Baz'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 5},

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

@@ -38,7 +38,7 @@ class A {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'A'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'BaseIntroducer', text: 'base'},
 // CHECK:STDOUT:       {kind: 'BaseDecl', text: ';', has_error: yes, subtree_size: 2},

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

@@ -39,7 +39,7 @@ class C {
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:       {kind: 'VirtualModifier', text: 'virtual'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'B'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: 'B', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]
@@ -56,7 +56,7 @@ class C {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AdaptIntroducer', text: 'adapt'},
 // CHECK:STDOUT:         {kind: 'ExtendModifier', text: 'extend'},

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

@@ -74,7 +74,7 @@ class C {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FieldIntroducer', text: 'var'},
 // CHECK:STDOUT:       {kind: 'FieldDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -85,14 +85,14 @@ class C {
 // CHECK:STDOUT:         {kind: 'FieldIntroducer', text: 'var'},
 // CHECK:STDOUT:       {kind: 'FieldDecl', text: ';', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FieldIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'name'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'name'},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: ';', has_error: yes},
 // CHECK:STDOUT:         {kind: 'FieldNameAndType', text: ':', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FieldDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FieldIntroducer', text: 'var'},
 // CHECK:STDOUT:       {kind: 'FieldDecl', text: ';', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FieldIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'name'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'name'},
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'C'},
 // CHECK:STDOUT:         {kind: 'FieldNameAndType', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FieldDecl', text: ';', has_error: yes, subtree_size: 5},

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

@@ -20,10 +20,10 @@ class Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'Make'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Make'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -31,7 +31,7 @@ class Foo {
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},
 // CHECK:STDOUT:           {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:             {kind: 'StructLiteralStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:               {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:             {kind: 'StructLiteralField', text: '=', subtree_size: 4},
@@ -39,7 +39,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: 'IdentifierNameBeforeParams', text: 'Baz'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Baz'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -52,12 +52,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: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameBeforeParams', text: 'Modify'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Modify'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:                 {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:               {kind: 'RefBindingName', text: 'ref', subtree_size: 2},
@@ -68,7 +68,7 @@ class Foo {
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 11},
 // CHECK:STDOUT:               {kind: 'SelfValueNameExpr', text: 'self'},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'PointerMemberAccessExpr', text: '->', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'IntLiteral', text: '1'},
 // CHECK:STDOUT:           {kind: 'InfixOperatorEqual', text: '=', subtree_size: 5},

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

@@ -22,37 +22,37 @@ extern class D {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
 // CHECK:STDOUT:       {kind: 'ExternModifier', text: 'extern'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // 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: 'ExternModifier', text: 'extern'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},

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

@@ -20,29 +20,29 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:         {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:               {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:             {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionDefinition', text: '}', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'H'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'H'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FunctionDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ClassDefinition', text: '}', subtree_size: 15},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:           {kind: 'IdentifierNameQualifierWithoutParams', text: '.', subtree_size: 2},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'H'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'H'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},

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

@@ -18,18 +18,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: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', 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: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

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

@@ -18,15 +18,15 @@ class Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FieldIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'FieldNameAndType', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FieldDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FieldIntroducer', text: 'var'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'FieldNameAndType', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FieldInitializer', text: '='},

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

@@ -22,12 +22,12 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:                 {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:               {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'VariablePattern', text: 'var', subtree_size: 4},

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

@@ -33,12 +33,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: 'for', has_error: yes},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: '{', has_error: yes},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: '{', has_error: yes},
 // CHECK:STDOUT:               {kind: 'InvalidParse', text: '{', has_error: yes},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: '{', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: 'for', has_error: yes, subtree_size: 4},

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

@@ -22,12 +22,12 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:                 {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:               {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'VariablePattern', text: 'var', subtree_size: 4},

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

@@ -22,14 +22,14 @@ fn foo() -> i32 {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', 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: 'IdentifierNameNotBeforeParams', text: 'returned', has_error: yes},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'returned', has_error: yes},
 // CHECK:STDOUT:               {kind: 'InvalidParse', text: 'returned', has_error: yes},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: 'returned', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: '(', has_error: yes, subtree_size: 4},

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

@@ -37,12 +37,12 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: 'for', has_error: yes},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: '[', has_error: yes},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: '[', has_error: yes},
 // CHECK:STDOUT:               {kind: 'InvalidParse', text: '[', has_error: yes},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: '[', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: 'for', has_error: yes, subtree_size: 4},

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

@@ -20,12 +20,12 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:                 {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:               {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -34,7 +34,7 @@ fn foo() {
 // CHECK:STDOUT:         {kind: 'ForHeader', text: ')', subtree_size: 8},
 // CHECK:STDOUT:           {kind: 'CodeBlockStart', text: '{'},
 // CHECK:STDOUT:               {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:                     {kind: 'IdentifierNameNotBeforeParams', text: 'z'},
+// CHECK:STDOUT:                     {kind: 'IdentifierNameNotBeforeSignature', text: 'z'},
 // CHECK:STDOUT:                     {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:                   {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:                 {kind: 'VariablePattern', text: 'var', subtree_size: 4},

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

@@ -36,12 +36,12 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ForIn', text: 'in', subtree_size: 4},
@@ -62,12 +62,12 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:                 {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:               {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -89,17 +89,17 @@ fn foo() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ForHeaderStart', text: '('},
 // CHECK:STDOUT:               {kind: 'TuplePatternStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:                 {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:               {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:               {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:                 {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:               {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'TuplePattern', text: ')', subtree_size: 9},

+ 9 - 9
toolchain/parse/testdata/function/call.carbon

@@ -36,25 +36,25 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:                       {kind: 'IdentifierNameExpr', text: 'a'},
-// CHECK:STDOUT:                       {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:                       {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:                     {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
-// CHECK:STDOUT:                     {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
+// CHECK:STDOUT:                     {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
 // CHECK:STDOUT:                   {kind: 'MemberAccessExpr', text: '.', subtree_size: 5},
 // CHECK:STDOUT:                 {kind: 'CallExprStart', text: '(', subtree_size: 6},
 // CHECK:STDOUT:                   {kind: 'IdentifierNameExpr', text: 'c'},
-// CHECK:STDOUT:                   {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
+// CHECK:STDOUT:                   {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
 // CHECK:STDOUT:                 {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:                 {kind: 'TupleLiteralComma', text: ','},
 // CHECK:STDOUT:                   {kind: 'ParenExprStart', text: '('},
 // 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: 'IdentifierNameNotBeforeParams', text: 'g'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', 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},
@@ -66,7 +66,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -99,7 +99,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -143,13 +143,13 @@ fn F() {
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:           {kind: 'TupleLiteralComma', text: ','},
 // CHECK:STDOUT:             {kind: 'StructLiteralStart', text: '{'},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:               {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'y'},
 // CHECK:STDOUT:               {kind: 'PrefixOperatorRef', text: 'ref', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'StructLiteralField', text: '=', subtree_size: 5},
 // CHECK:STDOUT:             {kind: 'StructLiteralComma', text: ','},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'z'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'z'},
 // CHECK:STDOUT:               {kind: 'StructFieldDesignator', text: '.', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'z'},
 // CHECK:STDOUT:             {kind: 'StructLiteralField', text: '=', subtree_size: 4},

+ 19 - 19
toolchain/parse/testdata/function/decl_statement.carbon

@@ -47,41 +47,41 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'AliasIntroducer', text: 'alias'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'A'},
 // CHECK:STDOUT:         {kind: 'AliasInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:       {kind: 'Alias', text: ';', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'A'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'B'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', 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: 'IdentifierNameNotBeforeParams', text: 'Abstract'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'Abstract'},
 // 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: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'FunctionDefinition', text: '}', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:         {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:         {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ImplIntroducer', text: 'impl'},
@@ -98,18 +98,18 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'ImplDefinitionStart', text: '{', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ImplDefinition', text: '}', subtree_size: 7},
 // CHECK:STDOUT:           {kind: 'ChoiceIntroducer', text: 'choice'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:         {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ChoiceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'LetIntroducer', text: 'let'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'n'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'n'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'LetInitializer', text: '='},
 // CHECK:STDOUT:         {kind: 'IntLiteral', text: '0'},
 // CHECK:STDOUT:       {kind: 'LetDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'v'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'v'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariablePattern', text: 'var', subtree_size: 4},
@@ -121,7 +121,7 @@ fn F() {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -143,42 +143,42 @@ fn F() {
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'I'},
 // CHECK:STDOUT:       {kind: 'ImplDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'NamespaceStart', text: 'namespace'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'N'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'N'},
 // CHECK:STDOUT:       {kind: 'Namespace', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:         {kind: 'DefaultModifier', text: 'default'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:         {kind: 'ImplModifier', text: 'impl'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:         {kind: 'OverrideModifier', text: 'override'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'H'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'H'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:         {kind: 'VirtualModifier', text: 'virtual'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'H'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'H'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'PrivateModifier', text: 'private'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'v'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'v'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariablePattern', text: 'var', subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'VariableDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'VariableIntroducer', text: 'var'},
 // CHECK:STDOUT:         {kind: 'ProtectedModifier', text: 'protected'},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'v'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'v'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'VarBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'VariablePattern', text: 'var', subtree_size: 4},

+ 34 - 34
toolchain/parse/testdata/function/declaration.carbon

@@ -176,7 +176,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -186,9 +186,9 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'RefBindingName', text: 'ref', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 4},
@@ -200,7 +200,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
@@ -212,13 +212,13 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
@@ -231,7 +231,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
@@ -240,13 +240,13 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 9},
@@ -257,7 +257,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'UnsignedIntTypeLiteral', text: 'u32'},
@@ -270,21 +270,21 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'OverrideModifier', text: 'override'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', 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: 'OverrideModifier', text: 'override'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'OverrideModifier', text: 'override'},
 // CHECK:STDOUT:       {kind: 'AbstractModifier', text: 'abstract'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'H'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'H'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 7},
@@ -292,7 +292,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:       {kind: 'PrivateModifier', text: 'private'},
 // CHECK:STDOUT:       {kind: 'OverrideModifier', text: 'override'},
 // CHECK:STDOUT:       {kind: 'DefaultModifier', text: 'default'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'I'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'I'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
@@ -302,7 +302,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]
@@ -310,7 +310,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'Div'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'Div'},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]
@@ -326,7 +326,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: 'fn', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]
@@ -353,7 +353,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // 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: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -366,7 +366,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // 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: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -379,7 +379,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // 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: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -392,7 +392,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // 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: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -404,7 +404,7 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // 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: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -414,9 +414,9 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'bar'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'bar'},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: ')', has_error: yes},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: 'bar', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 5},
@@ -435,19 +435,19 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'FormParam'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'FormParam'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'Form'},
 // CHECK:STDOUT:         {kind: 'FormBindingPattern', text: ':?', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'ComplexFormParam'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'ComplexFormParam'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'X'},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:               {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'CallExprStart', text: '(', subtree_size: 4},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'Z'},
@@ -461,18 +461,18 @@ fn ComplexReturnForm() ->? X.Y(Z);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'SimpleReturnForm'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'SimpleReturnForm'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'Form'},
 // CHECK:STDOUT:       {kind: 'ReturnForm', text: '->?', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'ComplexReturnForm'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'ComplexReturnForm'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'X'},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:             {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CallExprStart', text: '(', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'Z'},

+ 16 - 16
toolchain/parse/testdata/function/definition.carbon

@@ -82,7 +82,7 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -93,13 +93,13 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'bar'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'bar'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i64'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'baz'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'baz'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i64'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 9},
@@ -120,7 +120,7 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'FloatTypeLiteral', text: 'f64'},
@@ -136,7 +136,7 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
@@ -149,21 +149,21 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'NamedParams'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'NamedParams'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:               {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'FunctionDefinition', text: '}', subtree_size: 9},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'PositionalParams'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'PositionalParams'},
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'FunctionDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 19},
@@ -173,7 +173,7 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'BuiltinFunctionDefinitionStart', text: '=', subtree_size: 5},
@@ -190,7 +190,7 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'I'},
 // CHECK:STDOUT:       {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'Op'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Op'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'BuiltinFunctionDefinitionStart', text: '=', subtree_size: 5},
@@ -203,7 +203,7 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'NotString'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'NotString'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'BuiltinFunctionDefinitionStart', text: '=', subtree_size: 5},
@@ -214,7 +214,7 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'JunkAfterString'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'JunkAfterString'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'BuiltinFunctionDefinitionStart', text: '=', subtree_size: 5},
@@ -226,13 +226,13 @@ fn TestRecoveryFromSpuriousEquals();
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'SpuriousEquals'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'SpuriousEquals'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'BuiltinFunctionDefinitionStart', text: '=', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'BuiltinFunctionDefinition', text: '}', has_error: yes, subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'TestRecoveryFromSpuriousEquals'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'TestRecoveryFromSpuriousEquals'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 5},

+ 3 - 3
toolchain/parse/testdata/function/eval_musteval.carbon

@@ -25,7 +25,7 @@ eval musteval fn F();
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'EvalModifier', text: 'eval'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 6},
@@ -36,7 +36,7 @@ eval musteval fn F();
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'MustEvalModifier', text: 'musteval'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 6},
@@ -48,7 +48,7 @@ eval musteval fn F();
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'EvalModifier', text: 'eval'},
 // CHECK:STDOUT:       {kind: 'MustEvalModifier', text: 'musteval'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 7},

+ 6 - 6
toolchain/parse/testdata/function/extern.carbon

@@ -53,7 +53,7 @@ extern library "foo" fn G() {}
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:       {kind: 'ExternModifier', text: 'extern'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 6},
@@ -66,7 +66,7 @@ extern library "foo" fn G() {}
 // CHECK:STDOUT:           {kind: 'LibraryName', text: '"foo"'},
 // CHECK:STDOUT:         {kind: 'LibrarySpecifier', text: 'library', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'ExternModifierWithLibrary', text: 'extern', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
@@ -79,7 +79,7 @@ extern library "foo" fn G() {}
 // CHECK:STDOUT:           {kind: 'DefaultLibrary', text: 'default'},
 // CHECK:STDOUT:         {kind: 'LibrarySpecifier', text: 'library', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'ExternModifierWithLibrary', text: 'extern', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
@@ -92,7 +92,7 @@ extern library "foo" fn G() {}
 // CHECK:STDOUT:           {kind: 'LibraryName', text: 'fn', has_error: yes},
 // CHECK:STDOUT:         {kind: 'LibrarySpecifier', text: 'library', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'ExternModifierWithLibrary', text: 'extern', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
@@ -113,7 +113,7 @@ extern library "foo" fn G() {}
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:         {kind: 'ExternModifier', text: 'extern'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 6},
@@ -127,7 +127,7 @@ extern library "foo" fn G() {}
 // CHECK:STDOUT:             {kind: 'LibraryName', text: '"foo"'},
 // CHECK:STDOUT:           {kind: 'LibrarySpecifier', text: 'library', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'ExternModifierWithLibrary', text: 'extern', subtree_size: 3},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 8},

+ 4 - 4
toolchain/parse/testdata/function/terse.carbon

@@ -16,9 +16,9 @@ fn G(x: i32) -> i32 => x;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -27,9 +27,9 @@ fn G(x: i32) -> i32 => x;
 // CHECK:STDOUT:       {kind: 'IdentifierNameExpr', text: 'x'},
 // CHECK:STDOUT:     {kind: 'FunctionTerseDefinition', text: ';', subtree_size: 11},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'G'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'G'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

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

@@ -16,14 +16,14 @@ interface Bar[]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 7},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},

+ 8 - 8
toolchain/parse/testdata/generics/deduced_params/no_parens.carbon

@@ -28,14 +28,14 @@ interface Bar[].Baz[] {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -46,15 +46,15 @@ interface Bar[].Baz[] {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -66,11 +66,11 @@ interface Bar[].Baz[] {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:           {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 4},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Baz'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Baz'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 9},

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

@@ -16,9 +16,9 @@ interface Bar[a: i32]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
@@ -26,9 +26,9 @@ interface Bar[a: i32]() {}
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 10},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},

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

@@ -16,9 +16,9 @@ interface Bar[a: i32,]() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
@@ -27,9 +27,9 @@ interface Bar[a: i32,]() {}
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 11},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},

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

@@ -16,29 +16,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: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'e'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'e'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 25},
@@ -46,29 +46,29 @@ interface Bar[a: i32, b: i32, c: i32, d: i32, e: i32, f: i32]() {}
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 30},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'c'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'c'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'd'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'd'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'e'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'e'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'f'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'f'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 25},

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

@@ -16,13 +16,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: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', subtree_size: 9},
@@ -30,13 +30,13 @@ interface Bar[a: i32, b: i32]() {}
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 14},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 9},

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

@@ -16,13 +16,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: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'PatternListComma', text: ','},
@@ -31,13 +31,13 @@ interface Bar[a: i32, b: i32,]() {}
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},

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

@@ -14,9 +14,9 @@ fn foo(a:! i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},

+ 10 - 10
toolchain/parse/testdata/generics/generic_params/fail_template_no_param.carbon

@@ -42,34 +42,34 @@ fn E(template:! i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'A'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'A'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'i32', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'i32', has_error: yes},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: 'i32', has_error: yes},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: 'template', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'B'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'B'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', has_error: yes, subtree_size: 4},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 6},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 9},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'C'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'C'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: ')', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: ')', has_error: yes},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: ')', has_error: yes},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: 'template', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'D'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'D'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: ':!', has_error: yes},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: ':!', has_error: yes},
 // CHECK:STDOUT:             {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
@@ -77,9 +77,9 @@ fn E(template:! i32);
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 10},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'E'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'E'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: ':!', has_error: yes},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: ':!', has_error: yes},
 // CHECK:STDOUT:             {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},

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

@@ -36,9 +36,9 @@ fn foo(ref template a:! i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'TemplateBindingName', text: 'template', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
@@ -51,9 +51,9 @@ fn foo(ref template a:! i32);
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:               {kind: 'TemplateBindingName', text: 'template', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'RefBindingName', text: 'ref', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', has_error: yes, subtree_size: 4},
@@ -62,9 +62,9 @@ fn foo(ref template a:! i32);
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 8},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 11},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'TemplateBindingName', text: 'template', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'RefBindingName', text: 'ref', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
@@ -72,9 +72,9 @@ fn foo(ref template a:! i32);
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 7},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: ';', subtree_size: 10},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'template', has_error: yes},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'template', has_error: yes},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: 'template', has_error: yes},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: 'ref', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', has_error: yes, subtree_size: 5},

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

@@ -21,14 +21,14 @@ impl i32 as Interface {
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'Interface'},
 // CHECK:STDOUT:       {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Add'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

+ 2 - 2
toolchain/parse/testdata/generics/impl/class.carbon

@@ -23,7 +23,7 @@ class C {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:         {kind: 'ImplDefaultSelfAs', text: 'as'},
@@ -46,7 +46,7 @@ class C {
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'ExtendImpl'},
 // CHECK:STDOUT:         {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FunctionDecl', text: ';', subtree_size: 5},

+ 4 - 4
toolchain/parse/testdata/generics/impl/fail_impl.carbon

@@ -136,7 +136,7 @@ impl
 // CHECK:STDOUT:       {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:       {kind: 'Forall', text: 'forall'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'invalid'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'invalid'},
 // CHECK:STDOUT:           {kind: 'InvalidParse', text: ']', has_error: yes},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: 'invalid', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
@@ -152,7 +152,7 @@ impl
 // CHECK:STDOUT:       {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:       {kind: 'Forall', text: 'forall'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:         {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -162,7 +162,7 @@ impl
 // CHECK:STDOUT:       {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:       {kind: 'Forall', text: 'forall'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:         {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -172,7 +172,7 @@ impl
 // CHECK:STDOUT:       {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:       {kind: 'Forall', text: 'forall'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:         {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},

+ 6 - 6
toolchain/parse/testdata/generics/impl/fail_out_of_line_member.carbon

@@ -40,10 +40,10 @@ fn C.(Self as Interface).F() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Interface'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Interface'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -54,7 +54,7 @@ fn C.(Self as Interface).F() {}
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'Interface'},
 // CHECK:STDOUT:       {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 5},
@@ -63,7 +63,7 @@ fn C.(Self as Interface).F() {}
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '(', has_error: yes},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: '}', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -71,14 +71,14 @@ fn C.(Self as Interface).F() {}
 // CHECK:STDOUT:           {kind: 'IdentifierNameExpr', text: 'Interface'},
 // CHECK:STDOUT:         {kind: 'ImplDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:         {kind: 'FunctionDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ImplDefinition', text: '}', subtree_size: 11},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 15},
 // CHECK:STDOUT:       {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'C'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'C'},
 // CHECK:STDOUT:       {kind: 'IdentifierNameQualifierWithoutParams', text: '.', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'InvalidParse', text: '(', has_error: yes},
 // CHECK:STDOUT:     {kind: 'FunctionDecl', text: '}', has_error: yes, subtree_size: 5},

+ 3 - 3
toolchain/parse/testdata/generics/impl/forall.carbon

@@ -19,7 +19,7 @@ impl forall [T:! type, U:! Interface] U as Interface(T) {
 // CHECK:STDOUT:       {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:       {kind: 'Forall', text: 'forall'},
 // CHECK:STDOUT:         {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:         {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -31,12 +31,12 @@ impl forall [T:! type, U:! Interface] U as Interface(T) {
 // CHECK:STDOUT:         {kind: 'ImplIntroducer', text: 'impl'},
 // CHECK:STDOUT:         {kind: 'Forall', text: 'forall'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'Interface'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},

+ 8 - 8
toolchain/parse/testdata/generics/interface/associated_constants.carbon

@@ -35,22 +35,22 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"associated_constants"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'FinalModifier', text: 'final'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'DefaultModifier', text: 'default'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
 // CHECK:STDOUT:           {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 6},
@@ -64,10 +64,10 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"initializer"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantInitializer', text: '='},
@@ -79,7 +79,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 11},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'FinalModifier', text: 'final'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantInitializer', text: '='},
@@ -87,7 +87,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'DefaultModifier', text: 'default'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'D'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'D'},
 // CHECK:STDOUT:           {kind: 'BoolTypeLiteral', text: 'bool'},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantInitializer', text: '='},

+ 5 - 5
toolchain/parse/testdata/generics/interface/basic.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: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Add'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -35,14 +35,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: 'IdentifierNameBeforeParams', text: 'Add'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'foo'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

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

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

+ 5 - 5
toolchain/parse/testdata/generics/interface/default_fn.carbon

@@ -21,17 +21,17 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Scale'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Scale'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 's'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 's'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -40,7 +40,7 @@ interface Foo {
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 15},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:           {kind: 'DefaultModifier', text: 'default'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'Invert'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Invert'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -53,7 +53,7 @@ interface Foo {
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
 // CHECK:STDOUT:           {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:                 {kind: 'SelfValueNameExpr', text: 'self'},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'Scale'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'Scale'},
 // CHECK:STDOUT:               {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'CallExprStart', text: '(', subtree_size: 4},
 // CHECK:STDOUT:               {kind: 'IntLiteral', text: '1'},

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

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

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

@@ -101,7 +101,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"tuple_pattern"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -115,7 +115,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"tuple_pattern_with_default"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'DefaultModifier', text: 'default'},
@@ -130,7 +130,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"var_pattern"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -144,7 +144,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"var_pattern_with_default"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:         {kind: 'DefaultModifier', text: 'default'},
@@ -159,7 +159,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"not_constant"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -173,7 +173,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"template"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},
@@ -187,7 +187,7 @@ interface I {
 // CHECK:STDOUT:       {kind: 'LibraryName', text: '"underscore"'},
 // CHECK:STDOUT:     {kind: 'LibraryDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'I'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'I'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', has_error: yes, subtree_size: 2},

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

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

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

@@ -26,17 +26,17 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Sub'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Sub'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'me'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'me'},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: 'Self', has_error: yes},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: 'me', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -44,14 +44,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: 'IdentifierNameBeforeParams', text: 'Mul'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Mul'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'Self', has_error: yes},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'Self', has_error: yes},
 // CHECK:STDOUT:             {kind: 'InvalidParse', text: 'Self', has_error: yes},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: 'Self', has_error: yes, subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', has_error: yes, subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

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

@@ -19,17 +19,17 @@ interface Order {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Order'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Order'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Less'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Less'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'right'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'right'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -38,14 +38,14 @@ interface Order {
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 15},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:           {kind: 'FinalModifier', text: 'final'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'Greater'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Greater'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'right'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'right'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -54,7 +54,7 @@ interface Order {
 // CHECK:STDOUT:         {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 16},
 // CHECK:STDOUT:           {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:                 {kind: 'IdentifierNameExpr', text: 'right'},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'Less'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'Less'},
 // CHECK:STDOUT:               {kind: 'MemberAccessExpr', text: '.', subtree_size: 3},
 // CHECK:STDOUT:             {kind: 'CallExprStart', text: '(', subtree_size: 4},
 // CHECK:STDOUT:             {kind: 'SelfValueNameExpr', text: 'self'},

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

@@ -18,11 +18,11 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:           {kind: 'FinalModifier', text: 'final'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'Add'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Add'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:                 {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:                 {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -30,7 +30,7 @@ interface Foo {
 // CHECK:STDOUT:             {kind: 'UnusedPattern', text: 'unused', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

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

@@ -16,10 +16,10 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'FooFactory'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'FooFactory'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},

+ 21 - 21
toolchain/parse/testdata/generics/interface/require.carbon

@@ -96,11 +96,11 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:         {kind: 'RequireDefaultSelfImpls', text: 'impls'},
@@ -113,11 +113,11 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:           {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -131,22 +131,22 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantIntroducer', text: 'let'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'Y1'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'Y1'},
 // CHECK:STDOUT:           {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:         {kind: 'AssociatedConstantNameAndType', text: ':!', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'AssociatedConstantDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 9},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:         {kind: 'RequireDefaultSelfImpls', text: 'impls'},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'Y'},
 // CHECK:STDOUT:           {kind: 'WhereOperand', text: 'where', subtree_size: 2},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'Y1'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'Y1'},
 // CHECK:STDOUT:             {kind: 'DesignatorExpr', text: '.', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'TupleLiteralStart', text: '('},
 // CHECK:STDOUT:             {kind: 'TupleLiteral', text: ')', subtree_size: 2},
@@ -160,13 +160,13 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -184,11 +184,11 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:         {kind: 'ExtendModifier', text: 'extend'},
@@ -202,11 +202,11 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:         {kind: 'RequireDefaultSelfImpls', text: 'impls'},
@@ -221,11 +221,11 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:         {kind: 'IdentifierNameExpr', text: 'Y'},
@@ -237,11 +237,11 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:         {kind: 'InvalidParse', text: 'as', has_error: yes},
@@ -253,11 +253,11 @@ interface Z {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Y'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Y'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'InterfaceDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Z'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Z'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'RequireIntroducer', text: 'require'},
 // CHECK:STDOUT:         {kind: 'SelfTypeNameExpr', text: 'Self'},

+ 5 - 5
toolchain/parse/testdata/generics/interface/self_ref.carbon

@@ -17,10 +17,10 @@ interface Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Sub'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Sub'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'RefBindingName', text: 'ref', subtree_size: 2},
@@ -28,7 +28,7 @@ interface Foo {
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -36,7 +36,7 @@ interface Foo {
 // CHECK:STDOUT:         {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 16},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Sub'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Sub'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:               {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'RefBindingName', text: 'ref', subtree_size: 2},
@@ -44,7 +44,7 @@ interface Foo {
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

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

@@ -26,7 +26,7 @@ constraint ForwardDeclared;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Empty'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Empty'},
 // CHECK:STDOUT:       {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
@@ -35,7 +35,7 @@ constraint ForwardDeclared;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'WithRequire'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'WithRequire'},
 // CHECK:STDOUT:       {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 4},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
@@ -44,7 +44,7 @@ constraint ForwardDeclared;
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeParams', text: 'ForwardDeclared'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameNotBeforeSignature', text: 'ForwardDeclared'},
 // CHECK:STDOUT:     {kind: 'NamedConstraintDecl', text: ';', subtree_size: 3},
 // CHECK:STDOUT:     {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT:   ]

+ 6 - 6
toolchain/parse/testdata/generics/named_constraint/invalid_method.carbon

@@ -22,17 +22,17 @@ constraint Foo {
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'E'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'E'},
 // CHECK:STDOUT:       {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'DeclaredMethod'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'DeclaredMethod'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:             {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:             {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
@@ -41,10 +41,10 @@ constraint Foo {
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 15},
 // CHECK:STDOUT:     {kind: 'NamedConstraintDefinition', text: '}', subtree_size: 19},
 // CHECK:STDOUT:         {kind: 'NamedConstraintIntroducer', text: 'constraint'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameNotBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:       {kind: 'NamedConstraintDefinitionStart', text: '{', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'DefinedMethod'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'DefinedMethod'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
 // CHECK:STDOUT:                 {kind: 'SelfValueName', text: 'self'},
 // CHECK:STDOUT:                 {kind: 'SelfTypeNameExpr', text: 'Self'},
@@ -52,7 +52,7 @@ constraint Foo {
 // CHECK:STDOUT:             {kind: 'UnusedPattern', text: 'unused', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'b'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'b'},
 // CHECK:STDOUT:               {kind: 'SelfTypeNameExpr', text: 'Self'},
 // CHECK:STDOUT:             {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

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

@@ -16,12 +16,12 @@ interface Bar() {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'InterfaceDefinitionStart', text: '{', subtree_size: 5},

+ 32 - 32
toolchain/parse/testdata/generics/params/name_qualifier.carbon

@@ -34,88 +34,88 @@ fn OuterGeneric(T:! type).InnerGeneric(U:! type).F(x: T, y: U) {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'GenericClass1'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass1'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 9},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'GenericClass1'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass1'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:               {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 14},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'GenericClass2'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass2'},
 // CHECK:STDOUT:           {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'X'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'X'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'T'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 15},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 21},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'GenericClass2'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'GenericClass2'},
 // CHECK:STDOUT:             {kind: 'ImplicitParamListStart', text: '['},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:               {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ImplicitParamList', text: ']', subtree_size: 6},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'X'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'X'},
 // CHECK:STDOUT:               {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'IdentifierNameExpr', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 14},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 19},
 // CHECK:STDOUT:     {kind: 'FunctionDefinition', text: '}', subtree_size: 20},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'OuterGeneric'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'OuterGeneric'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 9},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'InnerGeneric'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'InnerGeneric'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
@@ -123,59 +123,59 @@ fn OuterGeneric(T:! type).InnerGeneric(U:! type).F(x: T, y: U) {}
 // CHECK:STDOUT:       {kind: 'ClassDecl', text: ';', subtree_size: 9},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 19},
 // CHECK:STDOUT:         {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'OuterGeneric'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'OuterGeneric'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:               {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'InnerGeneric'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'InnerGeneric'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
+// CHECK:STDOUT:               {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:             {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:           {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:       {kind: 'ClassDefinitionStart', text: '{', subtree_size: 17},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'T'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'U'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 9},
 // CHECK:STDOUT:       {kind: 'FunctionDecl', text: ';', subtree_size: 12},
 // CHECK:STDOUT:     {kind: 'ClassDefinition', text: '}', subtree_size: 30},
 // CHECK:STDOUT:         {kind: 'FunctionIntroducer', text: 'fn'},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'OuterGeneric'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'OuterGeneric'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'T'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'T'},
 // CHECK:STDOUT:               {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
-// CHECK:STDOUT:           {kind: 'IdentifierNameBeforeParams', text: 'InnerGeneric'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameMaybeBeforeSignature', text: 'InnerGeneric'},
 // CHECK:STDOUT:             {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeParams', text: 'U'},
+// CHECK:STDOUT:                 {kind: 'IdentifierNameNotBeforeSignature', text: 'U'},
 // CHECK:STDOUT:               {kind: 'CompileTimeBindingPatternStart', text: ':!', subtree_size: 2},
 // CHECK:STDOUT:               {kind: 'TypeTypeLiteral', text: 'type'},
 // CHECK:STDOUT:             {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 4},
 // CHECK:STDOUT:           {kind: 'ExplicitParamList', text: ')', subtree_size: 6},
 // CHECK:STDOUT:         {kind: 'IdentifierNameQualifierWithParams', text: '.', subtree_size: 8},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'F'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'F'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'x'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'x'},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'T'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:           {kind: 'PatternListComma', text: ','},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'y'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'y'},
 // CHECK:STDOUT:             {kind: 'IdentifierNameExpr', text: 'U'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 9},

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

@@ -16,17 +16,17 @@ interface Bar(a: i32) {}
 // CHECK:STDOUT:   parse_tree: [
 // CHECK:STDOUT:     {kind: 'FileStart', text: ''},
 // CHECK:STDOUT:       {kind: 'ClassIntroducer', text: 'class'},
-// CHECK:STDOUT:       {kind: 'IdentifierNameBeforeParams', text: 'Foo'},
+// CHECK:STDOUT:       {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Foo'},
 // CHECK:STDOUT:         {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:           {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:           {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:       {kind: 'ExplicitParamList', text: ')', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ClassDecl', text: ';', subtree_size: 8},
 // CHECK:STDOUT:         {kind: 'InterfaceIntroducer', text: 'interface'},
-// CHECK:STDOUT:         {kind: 'IdentifierNameBeforeParams', text: 'Bar'},
+// CHECK:STDOUT:         {kind: 'IdentifierNameMaybeBeforeSignature', text: 'Bar'},
 // CHECK:STDOUT:           {kind: 'ExplicitParamListStart', text: '('},
-// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeParams', text: 'a'},
+// CHECK:STDOUT:             {kind: 'IdentifierNameNotBeforeSignature', text: 'a'},
 // CHECK:STDOUT:             {kind: 'IntTypeLiteral', text: 'i32'},
 // CHECK:STDOUT:           {kind: 'LetBindingPattern', text: ':', subtree_size: 3},
 // CHECK:STDOUT:         {kind: 'ExplicitParamList', text: ')', subtree_size: 5},

Some files were not shown because too many files changed in this diff