From fbed1398fe01830455fc25d8ca152f0c44c572f5 Mon Sep 17 00:00:00 2001 From: Jon Ross-Perkins Date: Thu, 17 Nov 2022 08:57:22 -0800 Subject: [PATCH] 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. --- toolchain/parser/parse_node_kind.def | 2 +- toolchain/parser/parse_tree_test.cpp | 8 ++++---- toolchain/parser/parser.cpp | 11 +++-------- .../testdata/basics/fail_invalid_designators.carbon | 4 ++-- toolchain/parser/testdata/basics/function_call.carbon | 4 ++-- toolchain/parser/testdata/basics/var.carbon | 4 ++-- .../testdata/for/fail_colon_instead_of_in.carbon | 4 ++-- toolchain/parser/testdata/for/fail_missing_in.carbon | 4 ++-- toolchain/parser/testdata/for/fail_missing_var.carbon | 4 ++-- toolchain/parser/testdata/for/nested.carbon | 4 ++-- toolchain/parser/testdata/for/simple.carbon | 4 ++-- .../parser/testdata/function/declaration/basic.carbon | 4 ++-- .../fail_skip_indented_newline_until_outdent.carbon | 4 ++-- .../fail_skip_indented_newline_with_semi.carbon | 4 ++-- .../fail_skip_indented_newline_without_semi.carbon | 4 ++-- .../fail_skip_to_newline_without_semi.carbon | 4 ++-- .../fail_skip_without_semi_to_curly.carbon | 4 ++-- .../declaration/fail_with_identifier_as_param.carbon | 4 ++-- .../testdata/function/declaration/with_params.carbon | 4 ++-- .../function/declaration/with_return_type.carbon | 4 ++-- .../parser/testdata/function/definition/basic.carbon | 4 ++-- .../definition/fail_identifier_in_statements.carbon | 4 ++-- .../testdata/function/definition/with_params.carbon | 4 ++-- .../function/definition/with_return_type.carbon | 4 ++-- toolchain/parser/testdata/if/basic.carbon | 4 ++-- toolchain/parser/testdata/if/else.carbon | 4 ++-- .../parser/testdata/if/fail_else_unbraced.carbon | 4 ++-- toolchain/parser/testdata/if/fail_errors.carbon | 4 ++-- toolchain/parser/testdata/if/fail_unbraced.carbon | 4 ++-- .../parser/testdata/operators/associative.carbon | 4 ++-- .../operators/fail_missing_precedence_and_or.carbon | 4 ++-- .../operators/fail_missing_precedence_or_and.carbon | 4 ++-- .../parser/testdata/operators/fail_variety.carbon | 4 ++-- .../parser/testdata/operators/fixity_in_call.carbon | 4 ++-- .../parser/testdata/operators/fixity_in_params.carbon | 4 ++-- .../parser/testdata/operators/fixity_in_var.carbon | 4 ++-- .../testdata/operators/fixity_with_assign.carbon | 4 ++-- .../testdata/operators/missing_precedence_not.carbon | 4 ++-- .../parser/testdata/operators/postfix_unary.carbon | 4 ++-- .../parser/testdata/operators/prefix_unary.carbon | 4 ++-- toolchain/parser/testdata/return/basic.carbon | 4 ++-- toolchain/parser/testdata/return/expr.carbon | 4 ++-- .../parser/testdata/return/fail_expr_no_semi.carbon | 4 ++-- toolchain/parser/testdata/return/fail_no_semi.carbon | 4 ++-- toolchain/parser/testdata/while/basic.carbon | 4 ++-- toolchain/parser/testdata/while/fail_no_semi.carbon | 4 ++-- toolchain/parser/testdata/while/fail_unbraced.carbon | 4 ++-- toolchain/semantics/semantics_parse_tree_handler.cpp | 4 ++-- 48 files changed, 98 insertions(+), 103 deletions(-) diff --git a/toolchain/parser/parse_node_kind.def b/toolchain/parser/parse_node_kind.def index d17a6cabc340..af6bfaa49b8c 100644 --- a/toolchain/parser/parse_node_kind.def +++ b/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) diff --git a/toolchain/parser/parse_tree_test.cpp b/toolchain/parser/parse_tree_test.cpp index ec835c8c884f..7adfb05529e1 100644 --- a/toolchain/parser/parse_tree_test.cpp +++ b/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}}, }; diff --git a/toolchain/parser/parser.cpp b/toolchain/parser/parser.cpp index 3b0e538c1cdf..ddf642178f31 100644 --- a/toolchain/parser/parser.cpp +++ b/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); } diff --git a/toolchain/parser/testdata/basics/fail_invalid_designators.carbon b/toolchain/parser/testdata/basics/fail_invalid_designators.carbon index 255a601cc7da..061062fcd56e 100644 --- a/toolchain/parser/testdata/basics/fail_invalid_designators.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/basics/function_call.carbon b/toolchain/parser/testdata/basics/function_call.carbon index 4f44c54c2b21..8916b76e5282 100644 --- a/toolchain/parser/testdata/basics/function_call.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/basics/var.carbon b/toolchain/parser/testdata/basics/var.carbon index 1f433fb2b3f0..74c8ae3f1e00 100644 --- a/toolchain/parser/testdata/basics/var.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/for/fail_colon_instead_of_in.carbon b/toolchain/parser/testdata/for/fail_colon_instead_of_in.carbon index 4b3178aa3d7c..b0f15a512976 100644 --- a/toolchain/parser/testdata/for/fail_colon_instead_of_in.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/for/fail_missing_in.carbon b/toolchain/parser/testdata/for/fail_missing_in.carbon index 7e5f1fe4eba9..eb5081cdb553 100644 --- a/toolchain/parser/testdata/for/fail_missing_in.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/for/fail_missing_var.carbon b/toolchain/parser/testdata/for/fail_missing_var.carbon index 9b72df9515e1..7fcf76aae532 100644 --- a/toolchain/parser/testdata/for/fail_missing_var.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/for/nested.carbon b/toolchain/parser/testdata/for/nested.carbon index 566773f2a4d2..c299853689eb 100644 --- a/toolchain/parser/testdata/for/nested.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/for/simple.carbon b/toolchain/parser/testdata/for/simple.carbon index 7f3a09b82437..2f37dce30768 100644 --- a/toolchain/parser/testdata/for/simple.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/function/declaration/basic.carbon b/toolchain/parser/testdata/function/declaration/basic.carbon index e3bf4ac4d3c7..2a45c474ee0e 100644 --- a/toolchain/parser/testdata/function/declaration/basic.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_until_outdent.carbon b/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_until_outdent.carbon index 44593a347fb4..8d996fec0dc1 100644 --- a/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_until_outdent.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_with_semi.carbon b/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_with_semi.carbon index 25723891119c..c4e344202ca1 100644 --- a/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_with_semi.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_without_semi.carbon b/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_without_semi.carbon index 6fca79cab15e..2a3ac2fd464f 100644 --- a/toolchain/parser/testdata/function/declaration/fail_skip_indented_newline_without_semi.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/fail_skip_to_newline_without_semi.carbon b/toolchain/parser/testdata/function/declaration/fail_skip_to_newline_without_semi.carbon index bbae8fbef8ae..ce55b6ae3935 100644 --- a/toolchain/parser/testdata/function/declaration/fail_skip_to_newline_without_semi.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/fail_skip_without_semi_to_curly.carbon b/toolchain/parser/testdata/function/declaration/fail_skip_without_semi_to_curly.carbon index bab775dfe00b..d963fd9e33b8 100644 --- a/toolchain/parser/testdata/function/declaration/fail_skip_without_semi_to_curly.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/fail_with_identifier_as_param.carbon b/toolchain/parser/testdata/function/declaration/fail_with_identifier_as_param.carbon index f2dce80dd70f..74aca5b2360d 100644 --- a/toolchain/parser/testdata/function/declaration/fail_with_identifier_as_param.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/with_params.carbon b/toolchain/parser/testdata/function/declaration/with_params.carbon index e52235571db3..c1e962d2a650 100644 --- a/toolchain/parser/testdata/function/declaration/with_params.carbon +++ b/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: ] diff --git a/toolchain/parser/testdata/function/declaration/with_return_type.carbon b/toolchain/parser/testdata/function/declaration/with_return_type.carbon index 29ed3190ef79..0943d3978176 100644 --- a/toolchain/parser/testdata/function/declaration/with_return_type.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/function/definition/basic.carbon b/toolchain/parser/testdata/function/definition/basic.carbon index 6d24db3f3c12..ebf083b04abb 100644 --- a/toolchain/parser/testdata/function/definition/basic.carbon +++ b/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: ''}, diff --git a/toolchain/parser/testdata/function/definition/fail_identifier_in_statements.carbon b/toolchain/parser/testdata/function/definition/fail_identifier_in_statements.carbon index 05a98e1dd1d0..fa0ac977fdaf 100644 --- a/toolchain/parser/testdata/function/definition/fail_identifier_in_statements.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/function/definition/with_params.carbon b/toolchain/parser/testdata/function/definition/with_params.carbon index ac9b7ea269bb..4574f4521cc1 100644 --- a/toolchain/parser/testdata/function/definition/with_params.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/function/definition/with_return_type.carbon b/toolchain/parser/testdata/function/definition/with_return_type.carbon index 13018141ec97..d847e45d2b10 100644 --- a/toolchain/parser/testdata/function/definition/with_return_type.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/if/basic.carbon b/toolchain/parser/testdata/if/basic.carbon index ac520a07640e..539b42736f68 100644 --- a/toolchain/parser/testdata/if/basic.carbon +++ b/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: ')'}, diff --git a/toolchain/parser/testdata/if/else.carbon b/toolchain/parser/testdata/if/else.carbon index ebd6c8f8a22c..2ad67b063a24 100644 --- a/toolchain/parser/testdata/if/else.carbon +++ b/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: ')'}, diff --git a/toolchain/parser/testdata/if/fail_else_unbraced.carbon b/toolchain/parser/testdata/if/fail_else_unbraced.carbon index 44e77a798731..7e454840158b 100644 --- a/toolchain/parser/testdata/if/fail_else_unbraced.carbon +++ b/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: ')'}, diff --git a/toolchain/parser/testdata/if/fail_errors.carbon b/toolchain/parser/testdata/if/fail_errors.carbon index 06fb8aa2d241..5a85edf34b43 100644 --- a/toolchain/parser/testdata/if/fail_errors.carbon +++ b/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: '{'}, diff --git a/toolchain/parser/testdata/if/fail_unbraced.carbon b/toolchain/parser/testdata/if/fail_unbraced.carbon index 4fc1efb96cd2..1775d0fdeefc 100644 --- a/toolchain/parser/testdata/if/fail_unbraced.carbon +++ b/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: ')'}, diff --git a/toolchain/parser/testdata/operators/associative.carbon b/toolchain/parser/testdata/operators/associative.carbon index 82348de6fee2..e5b31a29fd06 100644 --- a/toolchain/parser/testdata/operators/associative.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/operators/fail_missing_precedence_and_or.carbon b/toolchain/parser/testdata/operators/fail_missing_precedence_and_or.carbon index 3147ac7470cc..569ddb7d06ec 100644 --- a/toolchain/parser/testdata/operators/fail_missing_precedence_and_or.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/operators/fail_missing_precedence_or_and.carbon b/toolchain/parser/testdata/operators/fail_missing_precedence_or_and.carbon index ed407c9469d9..7a4d85a3b052 100644 --- a/toolchain/parser/testdata/operators/fail_missing_precedence_or_and.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/operators/fail_variety.carbon b/toolchain/parser/testdata/operators/fail_variety.carbon index eadf802c0745..5b6ea6e92a21 100644 --- a/toolchain/parser/testdata/operators/fail_variety.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/operators/fixity_in_call.carbon b/toolchain/parser/testdata/operators/fixity_in_call.carbon index 9f24c3098ea2..9073e978c439 100644 --- a/toolchain/parser/testdata/operators/fixity_in_call.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/operators/fixity_in_params.carbon b/toolchain/parser/testdata/operators/fixity_in_params.carbon index 92741d639335..80814d1ecc8b 100644 --- a/toolchain/parser/testdata/operators/fixity_in_params.carbon +++ b/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: ''}, diff --git a/toolchain/parser/testdata/operators/fixity_in_var.carbon b/toolchain/parser/testdata/operators/fixity_in_var.carbon index 358631b7d20a..cfdf8427575d 100644 --- a/toolchain/parser/testdata/operators/fixity_in_var.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/operators/fixity_with_assign.carbon b/toolchain/parser/testdata/operators/fixity_with_assign.carbon index f1cd4eb17801..23a858965264 100644 --- a/toolchain/parser/testdata/operators/fixity_with_assign.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/operators/missing_precedence_not.carbon b/toolchain/parser/testdata/operators/missing_precedence_not.carbon index 88f97e01cceb..1bfaaa617477 100644 --- a/toolchain/parser/testdata/operators/missing_precedence_not.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/operators/postfix_unary.carbon b/toolchain/parser/testdata/operators/postfix_unary.carbon index 5899808cd2b1..32e182a9586c 100644 --- a/toolchain/parser/testdata/operators/postfix_unary.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/operators/prefix_unary.carbon b/toolchain/parser/testdata/operators/prefix_unary.carbon index 8bf249ca010d..bd17ff448795 100644 --- a/toolchain/parser/testdata/operators/prefix_unary.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/return/basic.carbon b/toolchain/parser/testdata/return/basic.carbon index a3fe512c802e..9ae5f87adbfc 100644 --- a/toolchain/parser/testdata/return/basic.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/return/expr.carbon b/toolchain/parser/testdata/return/expr.carbon index 6f3921054719..86abb9678433 100644 --- a/toolchain/parser/testdata/return/expr.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/return/fail_expr_no_semi.carbon b/toolchain/parser/testdata/return/fail_expr_no_semi.carbon index a51db502a6cd..3d303f246b31 100644 --- a/toolchain/parser/testdata/return/fail_expr_no_semi.carbon +++ b/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'}, diff --git a/toolchain/parser/testdata/return/fail_no_semi.carbon b/toolchain/parser/testdata/return/fail_no_semi.carbon index a5d44794f8c7..2c13a0d80819 100644 --- a/toolchain/parser/testdata/return/fail_no_semi.carbon +++ b/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}, diff --git a/toolchain/parser/testdata/while/basic.carbon b/toolchain/parser/testdata/while/basic.carbon index 1860e96362f0..235ccce4d8ff 100644 --- a/toolchain/parser/testdata/while/basic.carbon +++ b/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: ')'}, diff --git a/toolchain/parser/testdata/while/fail_no_semi.carbon b/toolchain/parser/testdata/while/fail_no_semi.carbon index e2cee81ef08d..da92c37d54ae 100644 --- a/toolchain/parser/testdata/while/fail_no_semi.carbon +++ b/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: ')'}, diff --git a/toolchain/parser/testdata/while/fail_unbraced.carbon b/toolchain/parser/testdata/while/fail_unbraced.carbon index e4726be0bb8e..696a8eaf9222 100644 --- a/toolchain/parser/testdata/while/fail_unbraced.carbon +++ b/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: ')'}, diff --git a/toolchain/semantics/semantics_parse_tree_handler.cpp b/toolchain/semantics/semantics_parse_tree_handler.cpp index c7a7e9fe4d67..07d16833cb2d 100644 --- a/toolchain/semantics/semantics_parse_tree_handler.cpp +++ b/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); }