From 518e361328e9f2913309a0c12bd0e9eb40c13b9f Mon Sep 17 00:00:00 2001 From: CJ Johnson <6013273+CJ-Johnson@users.noreply.github.com> Date: Wed, 21 Feb 2024 17:09:40 -0500 Subject: [PATCH] Address TODO to change GenericBindingPattern to CompileTimeBindingPattern (#3713) --- toolchain/check/handle_binding_pattern.cpp | 5 ++--- toolchain/check/node_stack.h | 2 +- toolchain/parse/handle_binding_pattern.cpp | 2 +- toolchain/parse/node_kind.def | 4 +--- .../choice/fail_missing_definition_parameterized.carbon | 2 +- toolchain/parse/testdata/choice/parameterized.carbon | 2 +- .../parse/testdata/generics/generic_params/basic.carbon | 2 +- .../parse/testdata/generics/generic_params/template.carbon | 2 +- .../testdata/generics/generic_params/template_addr.carbon | 2 +- toolchain/parse/testdata/generics/impl/fail_impl.carbon | 6 +++--- toolchain/parse/testdata/generics/impl/forall.carbon | 6 +++--- toolchain/parse/typed_nodes.h | 6 +++--- 12 files changed, 19 insertions(+), 22 deletions(-) diff --git a/toolchain/check/handle_binding_pattern.cpp b/toolchain/check/handle_binding_pattern.cpp index 236e8aaa5a99..dd806bb815ce 100644 --- a/toolchain/check/handle_binding_pattern.cpp +++ b/toolchain/check/handle_binding_pattern.cpp @@ -164,9 +164,8 @@ auto HandleBindingPattern(Context& context, Parse::BindingPatternId parse_node) return HandleAnyBindingPattern(context, parse_node, /*is_generic=*/false); } -auto HandleGenericBindingPattern(Context& context, - Parse::GenericBindingPatternId parse_node) - -> bool { +auto HandleCompileTimeBindingPattern( + Context& context, Parse::CompileTimeBindingPatternId parse_node) -> bool { return HandleAnyBindingPattern(context, parse_node, /*is_generic=*/true); } diff --git a/toolchain/check/node_stack.h b/toolchain/check/node_stack.h index a584aeaf6c9f..9665b71de598 100644 --- a/toolchain/check/node_stack.h +++ b/toolchain/check/node_stack.h @@ -436,7 +436,7 @@ class NodeStack { case Parse::NodeKind::Addr: case Parse::NodeKind::BindingPattern: case Parse::NodeKind::CallExprStart: - case Parse::NodeKind::GenericBindingPattern: + case Parse::NodeKind::CompileTimeBindingPattern: case Parse::NodeKind::IfExprThen: case Parse::NodeKind::ReturnType: case Parse::NodeKind::ShortCircuitOperandAnd: diff --git a/toolchain/parse/handle_binding_pattern.cpp b/toolchain/parse/handle_binding_pattern.cpp index 62c15c8c695d..bb6a608e5f63 100644 --- a/toolchain/parse/handle_binding_pattern.cpp +++ b/toolchain/parse/handle_binding_pattern.cpp @@ -85,7 +85,7 @@ static auto HandleBindingPatternFinish(Context& context, NodeKind node_kind) } auto HandleBindingPatternFinishAsGeneric(Context& context) -> void { - HandleBindingPatternFinish(context, NodeKind::GenericBindingPattern); + HandleBindingPatternFinish(context, NodeKind::CompileTimeBindingPattern); } auto HandleBindingPatternFinishAsRegular(Context& context) -> void { diff --git a/toolchain/parse/node_kind.def b/toolchain/parse/node_kind.def index 8eb38b534f97..ba19b8943094 100644 --- a/toolchain/parse/node_kind.def +++ b/toolchain/parse/node_kind.def @@ -309,10 +309,8 @@ CARBON_PARSE_NODE_KIND_BRACKET(ArrayExpr, ArrayExprSemi, CloseSquareBracket) // [Generic]BindingPattern // _optional_ Addr // _optional_ Template -// -// TODO: Rename GenericBindingPattern to CompileTimeBindingPattern. CARBON_PARSE_NODE_KIND_CHILD_COUNT(BindingPattern, 2, CARBON_IF_VALID(Colon)) -CARBON_PARSE_NODE_KIND_CHILD_COUNT(GenericBindingPattern, 2, ColonExclaim) +CARBON_PARSE_NODE_KIND_CHILD_COUNT(CompileTimeBindingPattern, 2, ColonExclaim) CARBON_PARSE_NODE_KIND_CHILD_COUNT(Addr, 1, Addr) CARBON_PARSE_NODE_KIND_CHILD_COUNT(Template, 1, Template) diff --git a/toolchain/parse/testdata/choice/fail_missing_definition_parameterized.carbon b/toolchain/parse/testdata/choice/fail_missing_definition_parameterized.carbon index 8606ac080e6a..28f99bc6664e 100644 --- a/toolchain/parse/testdata/choice/fail_missing_definition_parameterized.carbon +++ b/toolchain/parse/testdata/choice/fail_missing_definition_parameterized.carbon @@ -17,7 +17,7 @@ choice MissingDefinition(T:! type); // CHECK:STDOUT: {kind: 'TuplePatternStart', text: '('}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'T'}, // CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'TuplePattern', text: ')', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ChoiceDefinitionStart', text: ';', has_error: yes, subtree_size: 8}, // CHECK:STDOUT: {kind: 'ChoiceDefinition', text: ';', has_error: yes, subtree_size: 9}, diff --git a/toolchain/parse/testdata/choice/parameterized.carbon b/toolchain/parse/testdata/choice/parameterized.carbon index 6a83e3f0d2f1..27a91d5140d0 100644 --- a/toolchain/parse/testdata/choice/parameterized.carbon +++ b/toolchain/parse/testdata/choice/parameterized.carbon @@ -17,7 +17,7 @@ choice OptionalElement(T:! type) { // CHECK:STDOUT: {kind: 'TuplePatternStart', text: '('}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'T'}, // CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'TuplePattern', text: ')', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ChoiceDefinitionStart', text: '{', subtree_size: 8}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'Element'}, diff --git a/toolchain/parse/testdata/generics/generic_params/basic.carbon b/toolchain/parse/testdata/generics/generic_params/basic.carbon index f17c6617bc5d..790390b445b2 100644 --- a/toolchain/parse/testdata/generics/generic_params/basic.carbon +++ b/toolchain/parse/testdata/generics/generic_params/basic.carbon @@ -14,7 +14,7 @@ fn foo(a:! i32); // CHECK:STDOUT: {kind: 'TuplePatternStart', text: '('}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'a'}, // CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'TuplePattern', text: ')', subtree_size: 5}, // CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 8}, // CHECK:STDOUT: {kind: 'FileEnd', text: ''}, diff --git a/toolchain/parse/testdata/generics/generic_params/template.carbon b/toolchain/parse/testdata/generics/generic_params/template.carbon index 43aa0a18f332..8325f1e7a03a 100644 --- a/toolchain/parse/testdata/generics/generic_params/template.carbon +++ b/toolchain/parse/testdata/generics/generic_params/template.carbon @@ -14,7 +14,7 @@ fn foo(template a:! i32); // CHECK:STDOUT: {kind: 'TuplePatternStart', text: '('}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'a'}, // CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'Template', text: 'template', subtree_size: 4}, // CHECK:STDOUT: {kind: 'TuplePattern', text: ')', subtree_size: 6}, // CHECK:STDOUT: {kind: 'FunctionDecl', text: ';', subtree_size: 9}, diff --git a/toolchain/parse/testdata/generics/generic_params/template_addr.carbon b/toolchain/parse/testdata/generics/generic_params/template_addr.carbon index 3de430194e9f..a82588d65c1a 100644 --- a/toolchain/parse/testdata/generics/generic_params/template_addr.carbon +++ b/toolchain/parse/testdata/generics/generic_params/template_addr.carbon @@ -14,7 +14,7 @@ fn foo(template addr a:! i32); // CHECK:STDOUT: {kind: 'TuplePatternStart', text: '('}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'a'}, // CHECK:STDOUT: {kind: 'IntTypeLiteral', text: 'i32'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'Addr', text: 'addr', subtree_size: 4}, // CHECK:STDOUT: {kind: 'Template', text: 'template', subtree_size: 5}, // CHECK:STDOUT: {kind: 'TuplePattern', text: ')', subtree_size: 7}, diff --git a/toolchain/parse/testdata/generics/impl/fail_impl.carbon b/toolchain/parse/testdata/generics/impl/fail_impl.carbon index e50a7dcfde1a..d13fbd7f3514 100644 --- a/toolchain/parse/testdata/generics/impl/fail_impl.carbon +++ b/toolchain/parse/testdata/generics/impl/fail_impl.carbon @@ -133,7 +133,7 @@ impl // CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'T'}, // CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ImplForall', text: 'forall', subtree_size: 6}, // CHECK:STDOUT: {kind: 'StringTypeLiteral', text: 'String'}, @@ -142,7 +142,7 @@ impl // CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'T'}, // CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ImplForall', text: 'forall', subtree_size: 6}, // CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'T'}, @@ -151,7 +151,7 @@ impl // CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'T'}, // CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ImplForall', text: 'forall', subtree_size: 6}, // CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'T'}, diff --git a/toolchain/parse/testdata/generics/impl/forall.carbon b/toolchain/parse/testdata/generics/impl/forall.carbon index 357c46d62bcd..976948cf91f5 100644 --- a/toolchain/parse/testdata/generics/impl/forall.carbon +++ b/toolchain/parse/testdata/generics/impl/forall.carbon @@ -16,7 +16,7 @@ impl forall [T:! type, U:! Interface] U as Interface(T) { // CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'T'}, // CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 5}, // CHECK:STDOUT: {kind: 'ImplForall', text: 'forall', subtree_size: 6}, // CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'T'}, @@ -27,11 +27,11 @@ impl forall [T:! type, U:! Interface] U as Interface(T) { // CHECK:STDOUT: {kind: 'ImplicitParamListStart', text: '['}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'T'}, // CHECK:STDOUT: {kind: 'TypeTypeLiteral', text: 'type'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'PatternListComma', text: ','}, // CHECK:STDOUT: {kind: 'IdentifierName', text: 'U'}, // CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'Interface'}, -// CHECK:STDOUT: {kind: 'GenericBindingPattern', text: ':!', subtree_size: 3}, +// CHECK:STDOUT: {kind: 'CompileTimeBindingPattern', text: ':!', subtree_size: 3}, // CHECK:STDOUT: {kind: 'ImplicitParamList', text: ']', subtree_size: 9}, // CHECK:STDOUT: {kind: 'ImplForall', text: 'forall', subtree_size: 10}, // CHECK:STDOUT: {kind: 'IdentifierNameExpr', text: 'U'}, diff --git a/toolchain/parse/typed_nodes.h b/toolchain/parse/typed_nodes.h index 8afa71a37524..68067fb5e4ee 100644 --- a/toolchain/parse/typed_nodes.h +++ b/toolchain/parse/typed_nodes.h @@ -226,9 +226,9 @@ struct BindingPattern { }; // `name:! Type` -struct GenericBindingPattern { +struct CompileTimeBindingPattern { static constexpr auto Kind = - NodeKind::GenericBindingPattern.Define(NodeCategory::Pattern); + NodeKind::CompileTimeBindingPattern.Define(NodeCategory::Pattern); NodeIdOneOf name; AnyExprId type; @@ -245,7 +245,7 @@ struct Addr { struct Template { static constexpr auto Kind = NodeKind::Template.Define(NodeCategory::Pattern); - // This is a GenericBindingPatternId in any valid program. + // This is a CompileTimeBindingPatternId in any valid program. // TODO: Should the parser enforce that? AnyPatternId inner; };