Files
carbon-lang/toolchain/parse/testdata/generics/named_constraint/fail_incomplete.carbon
T
josh11b 55d853e17f Fix crash on incomplete constraint (#3542)
Previously would fail with:

```
CHECK failure at toolchain/parse/node_kind.cpp:74: Lex::TokenKind::Error == expected_token_kind || token_kind == expected_token_kind: Created parse node with NodeKind NamedConstraintDecl and has_error 1 for lexical token kind Constraint, but expected token kind Semi
```

Issue found by fuzzing.
2023-12-26 21:48:16 +00:00

28 lines
1.3 KiB
Plaintext

// Part of the Carbon Language project, under the Apache License v2.0 with LLVM
// Exceptions. See /LICENSE for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
// AUTOUPDATE
// CHECK:STDERR: fail_incomplete.carbon:[[@LINE+3]]:12: ERROR: `constraint` introducer should be followed by a name.
// CHECK:STDERR: constraint "Foo"
// CHECK:STDERR: ^~~~~
constraint "Foo"
// CHECK:STDERR: fail_incomplete.carbon:[[@LINE+3]]:1: ERROR: `constraint` introducer should be followed by a name.
// CHECK:STDERR: constraint
// CHECK:STDERR: ^~~~~~~~~~
constraint
// CHECK:STDOUT: - filename: fail_incomplete.carbon
// CHECK:STDOUT: parse_tree: [
// CHECK:STDOUT: {kind: 'FileStart', text: ''},
// CHECK:STDOUT: {kind: 'NamedConstraintIntroducer', text: 'constraint'},
// CHECK:STDOUT: {kind: 'InvalidParse', text: '"Foo"', has_error: yes},
// CHECK:STDOUT: {kind: 'NamedConstraintDecl', text: '"Foo"', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'NamedConstraintIntroducer', text: 'constraint'},
// CHECK:STDOUT: {kind: 'InvalidParse', text: '', has_error: yes},
// CHECK:STDOUT: {kind: 'NamedConstraintDecl', text: 'constraint', has_error: yes, subtree_size: 3},
// CHECK:STDOUT: {kind: 'FileEnd', text: ''},
// CHECK:STDOUT: ]