فهرست منبع

Change ParameterList to use a Start that brackets params (#2403)

The code change is small here. I'm breaking this out because it has a lot of test churn, and semantics doesn't have significant logic around it yet.
Jon Ross-Perkins 3 سال پیش
والد
کامیت
fbed1398fe
48فایلهای تغییر یافته به همراه98 افزوده شده و 103 حذف شده
  1. 1 1
      toolchain/parser/parse_node_kind.def
  2. 4 4
      toolchain/parser/parse_tree_test.cpp
  3. 3 8
      toolchain/parser/parser.cpp
  4. 2 2
      toolchain/parser/testdata/basics/fail_invalid_designators.carbon
  5. 2 2
      toolchain/parser/testdata/basics/function_call.carbon
  6. 2 2
      toolchain/parser/testdata/basics/var.carbon
  7. 2 2
      toolchain/parser/testdata/for/fail_colon_instead_of_in.carbon
  8. 2 2
      toolchain/parser/testdata/for/fail_missing_in.carbon
  9. 2 2
      toolchain/parser/testdata/for/fail_missing_var.carbon
  10. 2 2
      toolchain/parser/testdata/for/nested.carbon
  11. 2 2
      toolchain/parser/testdata/for/simple.carbon
  12. 2 2
      toolchain/parser/testdata/function/declaration/basic.carbon
  13. 2 2
      toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_until_outdent.carbon
  14. 2 2
      toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_with_semi.carbon
  15. 2 2
      toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_without_semi.carbon
  16. 2 2
      toolchain/parser/testdata/function/declaration/fail_skip_to_newline_without_semi.carbon
  17. 2 2
      toolchain/parser/testdata/function/declaration/fail_skip_without_semi_to_curly.carbon
  18. 2 2
      toolchain/parser/testdata/function/declaration/fail_with_identifier_as_param.carbon
  19. 2 2
      toolchain/parser/testdata/function/declaration/with_params.carbon
  20. 2 2
      toolchain/parser/testdata/function/declaration/with_return_type.carbon
  21. 2 2
      toolchain/parser/testdata/function/definition/basic.carbon
  22. 2 2
      toolchain/parser/testdata/function/definition/fail_identifier_in_statements.carbon
  23. 2 2
      toolchain/parser/testdata/function/definition/with_params.carbon
  24. 2 2
      toolchain/parser/testdata/function/definition/with_return_type.carbon
  25. 2 2
      toolchain/parser/testdata/if/basic.carbon
  26. 2 2
      toolchain/parser/testdata/if/else.carbon
  27. 2 2
      toolchain/parser/testdata/if/fail_else_unbraced.carbon
  28. 2 2
      toolchain/parser/testdata/if/fail_errors.carbon
  29. 2 2
      toolchain/parser/testdata/if/fail_unbraced.carbon
  30. 2 2
      toolchain/parser/testdata/operators/associative.carbon
  31. 2 2
      toolchain/parser/testdata/operators/fail_missing_precedence_and_or.carbon
  32. 2 2
      toolchain/parser/testdata/operators/fail_missing_precedence_or_and.carbon
  33. 2 2
      toolchain/parser/testdata/operators/fail_variety.carbon
  34. 2 2
      toolchain/parser/testdata/operators/fixity_in_call.carbon
  35. 2 2
      toolchain/parser/testdata/operators/fixity_in_params.carbon
  36. 2 2
      toolchain/parser/testdata/operators/fixity_in_var.carbon
  37. 2 2
      toolchain/parser/testdata/operators/fixity_with_assign.carbon
  38. 2 2
      toolchain/parser/testdata/operators/missing_precedence_not.carbon
  39. 2 2
      toolchain/parser/testdata/operators/postfix_unary.carbon
  40. 2 2
      toolchain/parser/testdata/operators/prefix_unary.carbon
  41. 2 2
      toolchain/parser/testdata/return/basic.carbon
  42. 2 2
      toolchain/parser/testdata/return/expr.carbon
  43. 2 2
      toolchain/parser/testdata/return/fail_expr_no_semi.carbon
  44. 2 2
      toolchain/parser/testdata/return/fail_no_semi.carbon
  45. 2 2
      toolchain/parser/testdata/while/basic.carbon
  46. 2 2
      toolchain/parser/testdata/while/fail_no_semi.carbon
  47. 2 2
      toolchain/parser/testdata/while/fail_unbraced.carbon
  48. 2 2
      toolchain/semantics/semantics_parse_tree_handler.cpp

+ 1 - 1
toolchain/parser/parse_node_kind.def

@@ -29,7 +29,7 @@ CARBON_PARSE_NODE_KIND(FunctionDeclaration)
 CARBON_PARSE_NODE_KIND(FunctionDefinition)
 CARBON_PARSE_NODE_KIND(FunctionDefinitionStart)
 CARBON_PARSE_NODE_KIND(ParameterList)
-CARBON_PARSE_NODE_KIND(ParameterListEnd)
+CARBON_PARSE_NODE_KIND(ParameterListStart)
 CARBON_PARSE_NODE_KIND(ParameterListComma)
 CARBON_PARSE_NODE_KIND(PatternBinding)
 CARBON_PARSE_NODE_KIND(ReturnType)

+ 4 - 4
toolchain/parser/parse_tree_test.cpp

@@ -158,9 +158,9 @@ TEST_F(ParseTreeTest, PrintPostorderAsYAML) {
   auto file = Yaml::SequenceValue{
       Yaml::MappingValue{{"kind", "FunctionIntroducer"}, {"text", "fn"}},
       Yaml::MappingValue{{"kind", "DeclaredName"}, {"text", "F"}},
-      Yaml::MappingValue{{"kind", "ParameterListEnd"}, {"text", ")"}},
+      Yaml::MappingValue{{"kind", "ParameterListStart"}, {"text", "("}},
       Yaml::MappingValue{
-          {"kind", "ParameterList"}, {"text", "("}, {"subtree_size", "2"}},
+          {"kind", "ParameterList"}, {"text", ")"}, {"subtree_size", "2"}},
       Yaml::MappingValue{{"kind", "FunctionDeclaration"},
                          {"text", ";"},
                          {"subtree_size", "5"}},
@@ -181,7 +181,7 @@ TEST_F(ParseTreeTest, PrintPreorderAsYAML) {
 
   auto parameter_list = Yaml::SequenceValue{
       Yaml::MappingValue{
-          {"node_index", "2"}, {"kind", "ParameterListEnd"}, {"text", ")"}},
+          {"node_index", "2"}, {"kind", "ParameterListStart"}, {"text", "("}},
   };
 
   auto function_decl = Yaml::SequenceValue{
@@ -191,7 +191,7 @@ TEST_F(ParseTreeTest, PrintPreorderAsYAML) {
           {"node_index", "1"}, {"kind", "DeclaredName"}, {"text", "F"}},
       Yaml::MappingValue{{"node_index", "3"},
                          {"kind", "ParameterList"},
-                         {"text", "("},
+                         {"text", ")"},
                          {"subtree_size", "2"},
                          {"children", parameter_list}},
   };

+ 3 - 8
toolchain/parser/parser.cpp

@@ -987,11 +987,8 @@ auto Parser::HandleFunctionIntroducerState() -> void {
   // function parsing.
   state.state = ParserState::FunctionAfterParameterList();
   PushState(state);
-  // TODO: When swapping () start/end, this should AddLeafNode the open before
-  // continuing.
   PushState(ParserState::FunctionParameterListFinish());
-  // Advance past the open paren.
-  ++position_;
+  AddLeafNode(ParseNodeKind::ParameterListStart(), Consume());
   if (!PositionIs(TokenKind::CloseParen())) {
     PushState(ParserState::FunctionParameter());
   }
@@ -1021,10 +1018,8 @@ auto Parser::HandleFunctionParameterFinishState() -> void {
 auto Parser::HandleFunctionParameterListFinishState() -> void {
   auto state = PopState();
 
-  CARBON_CHECK(ConsumeAndAddLeafNodeIf(TokenKind::CloseParen(),
-                                       ParseNodeKind::ParameterListEnd()))
-      << PositionKind().Name();
-  AddNode(ParseNodeKind::ParameterList(), state.token, state.subtree_start,
+  CARBON_CHECK(PositionIs(TokenKind::CloseParen())) << PositionKind().Name();
+  AddNode(ParseNodeKind::ParameterList(), Consume(), state.subtree_start,
           state.has_error);
 }
 

+ 2 - 2
toolchain/parser/testdata/basics/fail_invalid_designators.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:     {kind: 'DesignatorExpression', text: '.', has_error: yes, subtree_size: 2},

+ 2 - 2
toolchain/parser/testdata/basics/function_call.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:               {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:               {kind: 'DesignatedName', text: 'b'},

+ 2 - 2
toolchain/parser/testdata/basics/var.carbon

@@ -19,8 +19,8 @@
 // CHECK:STDOUT: {kind: 'VariableDeclaration', text: 'var', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'DeclaredName', text: 's'},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'String'},

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

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'DeclaredName', text: 'x'},
 // CHECK:STDOUT:           {kind: 'Literal', text: 'i32'},

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

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'DeclaredName', text: 'x'},
 // CHECK:STDOUT:           {kind: 'Literal', text: 'i32'},

+ 2 - 2
toolchain/parser/testdata/for/fail_missing_var.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'ForIn', text: 'in'},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'y'},

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

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'DeclaredName', text: 'y'},
 // CHECK:STDOUT:           {kind: 'Literal', text: 'i32'},

+ 2 - 2
toolchain/parser/testdata/for/simple.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'DeclaredName', text: 'x'},
 // CHECK:STDOUT:           {kind: 'Literal', text: 'i32'},

+ 2 - 2
toolchain/parser/testdata/function/declaration/basic.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

+ 2 - 2
toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_until_outdent.carbon

@@ -9,8 +9,8 @@
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: 'fn', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

+ 2 - 2
toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_with_semi.carbon

@@ -9,8 +9,8 @@
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

+ 2 - 2
toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_without_semi.carbon

@@ -9,8 +9,8 @@
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: 'fn', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

+ 2 - 2
toolchain/parser/testdata/function/declaration/fail_skip_to_newline_without_semi.carbon

@@ -9,8 +9,8 @@
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: 'fn', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

+ 2 - 2
toolchain/parser/testdata/function/declaration/fail_skip_without_semi_to_curly.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

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

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', has_error: yes, subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', has_error: yes, subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

+ 2 - 2
toolchain/parser/testdata/function/declaration/with_params.carbon

@@ -7,6 +7,7 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'foo'},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
 // CHECK:STDOUT:       {kind: 'DeclaredName', text: 'bar'},
 // CHECK:STDOUT:       {kind: 'Literal', text: 'i32'},
 // CHECK:STDOUT:     {kind: 'PatternBinding', text: ':', subtree_size: 3},
@@ -14,8 +15,7 @@
 // CHECK:STDOUT:       {kind: 'DeclaredName', text: 'baz'},
 // CHECK:STDOUT:       {kind: 'Literal', text: 'i32'},
 // CHECK:STDOUT:     {kind: 'PatternBinding', text: ':', subtree_size: 3},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 9},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 9},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 12},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},
 // CHECK:STDOUT: ]

+ 2 - 2
toolchain/parser/testdata/function/declaration/with_return_type.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:   {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:   {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:     {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:   {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:     {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:   {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:     {kind: 'Literal', text: 'u32'},
 // CHECK:STDOUT:   {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT: {kind: 'FunctionDeclaration', text: ';', subtree_size: 7},

+ 2 - 2
toolchain/parser/testdata/function/definition/basic.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 6},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},

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

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:   {kind: 'NameReference', text: 'bar'},
 // CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', has_error: yes, subtree_size: 7},

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

@@ -7,6 +7,7 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'foo'},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'DeclaredName', text: 'bar'},
 // CHECK:STDOUT:         {kind: 'Literal', text: 'i64'},
 // CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
@@ -14,8 +15,7 @@
 // CHECK:STDOUT:         {kind: 'DeclaredName', text: 'baz'},
 // CHECK:STDOUT:         {kind: 'Literal', text: 'i64'},
 // CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 9},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 9},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 12},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'foo'},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'baz'},

+ 2 - 2
toolchain/parser/testdata/function/definition/with_return_type.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'foo'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:       {kind: 'Literal', text: 'f64'},
 // CHECK:STDOUT:     {kind: 'ReturnType', text: '->', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 7},

+ 2 - 2
toolchain/parser/testdata/if/basic.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'ConditionEnd', text: ')'},

+ 2 - 2
toolchain/parser/testdata/if/else.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'ConditionEnd', text: ')'},

+ 2 - 2
toolchain/parser/testdata/if/fail_else_unbraced.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'ConditionEnd', text: ')'},

+ 2 - 2
toolchain/parser/testdata/if/fail_errors.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'CodeBlockStart', text: '{'},

+ 2 - 2
toolchain/parser/testdata/if/fail_unbraced.carbon

@@ -8,8 +8,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'ConditionEnd', text: ')'},

+ 2 - 2
toolchain/parser/testdata/operators/associative.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'b'},

+ 2 - 2
toolchain/parser/testdata/operators/fail_missing_precedence_and_or.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'b'},

+ 2 - 2
toolchain/parser/testdata/operators/fail_missing_precedence_or_and.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'b'},

+ 2 - 2
toolchain/parser/testdata/operators/fail_variety.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'n'},
 // CHECK:STDOUT:             {kind: 'NameReference', text: 'a'},

+ 2 - 2
toolchain/parser/testdata/operators/fixity_in_call.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'G'},
 // CHECK:STDOUT:         {kind: 'Literal', text: 'i32'},

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

@@ -7,6 +7,7 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
 // CHECK:STDOUT:         {kind: 'DeclaredName', text: 'p'},
 // CHECK:STDOUT:           {kind: 'Literal', text: 'i32'},
 // CHECK:STDOUT:         {kind: 'PostfixOperator', text: '*', subtree_size: 2},
@@ -15,8 +16,7 @@
 // CHECK:STDOUT:         {kind: 'DeclaredName', text: 'n'},
 // CHECK:STDOUT:         {kind: 'Literal', text: 'i32'},
 // CHECK:STDOUT:       {kind: 'PatternBinding', text: ':', subtree_size: 3},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 10},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 10},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 13},
 // CHECK:STDOUT: {kind: 'FunctionDefinition', text: '}', subtree_size: 14},
 // CHECK:STDOUT: {kind: 'FileEnd', text: ''},

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

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'DeclaredName', text: 'q'},
 // CHECK:STDOUT:         {kind: 'Literal', text: 'i32'},

+ 2 - 2
toolchain/parser/testdata/operators/fixity_with_assign.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 't'},
 // CHECK:STDOUT:           {kind: 'NameReference', text: 't'},

+ 2 - 2
toolchain/parser/testdata/operators/missing_precedence_not.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:           {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:         {kind: 'PrefixOperator', text: 'not', subtree_size: 2},

+ 2 - 2
toolchain/parser/testdata/operators/postfix_unary.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'n'},
 // CHECK:STDOUT:       {kind: 'PostfixOperator', text: '++', subtree_size: 2},

+ 2 - 2
toolchain/parser/testdata/operators/prefix_unary.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:         {kind: 'NameReference', text: 'n'},
 // CHECK:STDOUT:       {kind: 'PrefixOperator', text: '++', subtree_size: 2},

+ 2 - 2
toolchain/parser/testdata/return/basic.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:   {kind: 'ReturnStatement', text: ';', subtree_size: 2},

+ 2 - 2
toolchain/parser/testdata/return/expr.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:     {kind: 'NameReference', text: 'x'},

+ 2 - 2
toolchain/parser/testdata/return/fail_expr_no_semi.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:     {kind: 'NameReference', text: 'x'},

+ 2 - 2
toolchain/parser/testdata/return/fail_no_semi.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:     {kind: 'ReturnStatementStart', text: 'return'},
 // CHECK:STDOUT:   {kind: 'ReturnStatement', text: 'return', has_error: yes, subtree_size: 2},

+ 2 - 2
toolchain/parser/testdata/while/basic.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'ConditionEnd', text: ')'},

+ 2 - 2
toolchain/parser/testdata/while/fail_no_semi.carbon

@@ -7,8 +7,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'ConditionEnd', text: ')'},

+ 2 - 2
toolchain/parser/testdata/while/fail_unbraced.carbon

@@ -8,8 +8,8 @@
 // CHECK:STDOUT: [
 // CHECK:STDOUT:     {kind: 'FunctionIntroducer', text: 'fn'},
 // CHECK:STDOUT:     {kind: 'DeclaredName', text: 'F'},
-// CHECK:STDOUT:       {kind: 'ParameterListEnd', text: ')'},
-// CHECK:STDOUT:     {kind: 'ParameterList', text: '(', subtree_size: 2},
+// CHECK:STDOUT:       {kind: 'ParameterListStart', text: '('},
+// CHECK:STDOUT:     {kind: 'ParameterList', text: ')', subtree_size: 2},
 // CHECK:STDOUT:   {kind: 'FunctionDefinitionStart', text: '{', subtree_size: 5},
 // CHECK:STDOUT:       {kind: 'NameReference', text: 'a'},
 // CHECK:STDOUT:       {kind: 'ConditionEnd', text: ')'},

+ 2 - 2
toolchain/semantics/semantics_parse_tree_handler.cpp

@@ -105,7 +105,7 @@ auto SemanticsParseTreeHandler::Build() -> void {
       }
       case ParseNodeKind::DeclaredName():
       case ParseNodeKind::FunctionIntroducer():
-      case ParseNodeKind::ParameterListEnd():
+      case ParseNodeKind::ParameterListStart():
       case ParseNodeKind::ReturnStatementStart(): {
         // The token has no action, but we still track it for the stack.
         Push(parse_node);
@@ -249,7 +249,7 @@ auto SemanticsParseTreeHandler::HandleParameterList(ParseTree::Node parse_node)
   // it's unused and only stored so that node counts match.
   // TODO: Reorder with ParameterListStart so that we can traverse without
   // subtree_size.
-  Pop(ParseNodeKind::ParameterListEnd());
+  Pop(ParseNodeKind::ParameterListStart());
   Push(parse_node);
 }