From 607522c7dea1cdb2a4fa720413e162c19562bf77 Mon Sep 17 00:00:00 2001 From: josh11b <15258583+josh11b@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:22:50 -0800 Subject: [PATCH] Fix a case of `InvalidParse` with `has_error = false` (#4481) Introduced in #4470. Co-authored-by: Josh L --- toolchain/parse/context.cpp | 3 ++- toolchain/parse/testdata/struct/fail_comma_only.carbon | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/toolchain/parse/context.cpp b/toolchain/parse/context.cpp index 9509dcb6cff0..82b2656dc9fa 100644 --- a/toolchain/parse/context.cpp +++ b/toolchain/parse/context.cpp @@ -336,7 +336,8 @@ auto Context::ConsumeListToken(NodeKind comma_kind, Lex::TokenKind close_kind, if (PositionIs(close_kind)) { return ListTokenKind::Close; } else { - AddLeafNode(comma_kind, Consume()); + AddLeafNode(comma_kind, Consume(), + /*has_error=*/comma_kind == NodeKind::InvalidParse); return PositionIs(close_kind) ? ListTokenKind::CommaClose : ListTokenKind::Comma; } diff --git a/toolchain/parse/testdata/struct/fail_comma_only.carbon b/toolchain/parse/testdata/struct/fail_comma_only.carbon index 9ad63657858c..06cd25e6a089 100644 --- a/toolchain/parse/testdata/struct/fail_comma_only.carbon +++ b/toolchain/parse/testdata/struct/fail_comma_only.carbon @@ -20,7 +20,7 @@ var x: {,} = {}; // CHECK:STDOUT: {kind: 'IdentifierName', text: 'x'}, // CHECK:STDOUT: {kind: 'StructLiteralStart', text: '{'}, // CHECK:STDOUT: {kind: 'InvalidParse', text: ',', has_error: yes}, -// CHECK:STDOUT: {kind: 'InvalidParse', text: ','}, +// CHECK:STDOUT: {kind: 'InvalidParse', text: ',', has_error: yes}, // CHECK:STDOUT: {kind: 'StructLiteral', text: '}', has_error: yes, subtree_size: 4}, // CHECK:STDOUT: {kind: 'BindingPattern', text: ':', subtree_size: 6}, // CHECK:STDOUT: {kind: 'VariableInitializer', text: '='},