Add support for var patterns (#5069)

Co-authored-by: Richard Smith <richard@metafoo.co.uk>
This commit is contained in:
Geoff Romer
2025-03-06 19:06:51 +00:00
committed by GitHub
co-authored by Richard Smith
parent 331f55f0a2
commit 6d4f2567a7
29 changed files with 843 additions and 124 deletions
+11 -5
View File
@@ -9,11 +9,17 @@ namespace Carbon::Parse {
auto HandlePattern(Context& context) -> void {
auto state = context.PopState();
if (context.PositionKind() == Lex::TokenKind::OpenParen) {
context.PushStateForPattern(State::PatternListAsTuple,
state.in_var_pattern);
} else {
context.PushStateForPattern(State::BindingPattern, state.in_var_pattern);
switch (context.PositionKind()) {
case Lex::TokenKind::OpenParen:
context.PushStateForPattern(State::PatternListAsTuple,
state.in_var_pattern);
break;
case Lex::TokenKind::Var:
context.PushStateForPattern(State::VariablePattern, state.in_var_pattern);
break;
default:
context.PushStateForPattern(State::BindingPattern, state.in_var_pattern);
break;
}
}