mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 18:01:07 +01:00
Support tuple patterns outside parameter lists (#4923)
Parameter lists need substantially different treatment than tuple patterns in other contexts, so this change splits them into separate parse node kinds. --------- Co-authored-by: Jon Ross-Perkins <jperkins@google.com>
This commit is contained in:
co-authored by
Jon Ross-Perkins
parent
35f5a7f115
commit
74e1a9949f
@@ -16,11 +16,12 @@ auto PopNameComponent(Context& context, SemIR::InstId return_slot_pattern_id)
|
||||
|
||||
// Explicit params.
|
||||
auto [params_loc_id, param_patterns_id] =
|
||||
context.node_stack().PopWithNodeIdIf<Parse::NodeKind::TuplePattern>();
|
||||
context.node_stack()
|
||||
.PopWithNodeIdIf<Parse::NodeKind::ExplicitParamList>();
|
||||
if (param_patterns_id) {
|
||||
first_param_node_id =
|
||||
context.node_stack()
|
||||
.PopForSoloNodeId<Parse::NodeKind::TuplePatternStart>();
|
||||
.PopForSoloNodeId<Parse::NodeKind::ExplicitParamListStart>();
|
||||
last_param_node_id = params_loc_id;
|
||||
} else {
|
||||
param_patterns_id = SemIR::InstBlockId::None;
|
||||
|
||||
Reference in New Issue
Block a user