/
githubmirror
/
carbon-lang
Обзор
Документация
Войти
/
githubmirror
/
carbon-lang
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
trunk
toolchain/parse/testdata/array/fail_syntax.carbon
258 строк
12 KB
Geoff Romer
Make the tree structure more explicit in parse dumps (#7591)
31 июл 2026, 19:44
Не верифицирован
31 июл 2026, 19:44
6429c16
Код
Авторство
О чём код?
// 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 // TIP: To test this file alone, run: // TIP: bazel test //toolchain/testing:file_test --test_arg=--file_tests=toolchain/parse/testdata/array/fail_syntax.carbon // TIP: To dump output, run: // TIP: bazel run //toolchain/testing:file_test -- --dump_output --file_tests=toolchain/parse/testdata/array/fail_syntax.carbon // --- fail_no_comma.carbon // CHECK:STDERR: fail_no_comma.carbon:[[@LINE+8]]:17: error: expected `,` in `array(Type, Count)` [ExpectedArrayComma] // CHECK:STDERR: var x: array(i32); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_no_comma.carbon:[[@LINE+4]]:17: error: expected expression [ExpectedExpr] // CHECK:STDERR: var x: array(i32); // CHECK:STDERR: ^ // CHECK:STDERR: var x: array(i32); // --- fail_invalid_char.carbon // CHECK:STDERR: fail_invalid_char.carbon:[[@LINE+16]]:17: error: expected expression [ExpectedExpr] // CHECK:STDERR: fn X() -> array(:); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_invalid_char.carbon:[[@LINE+12]]:17: error: expected `,` in `array(Type, Count)` [ExpectedArrayComma] // CHECK:STDERR: fn X() -> array(:); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_invalid_char.carbon:[[@LINE+8]]:17: error: expected expression [ExpectedExpr] // CHECK:STDERR: fn X() -> array(:); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_invalid_char.carbon:[[@LINE+4]]:17: error: unexpected tokens before `)` [ExpectedCloseSymbol] // CHECK:STDERR: fn X() -> array(:); // CHECK:STDERR: ^ // CHECK:STDERR: fn X() -> array(:); // --- fail_unlexed_expr.carbon // CHECK:STDERR: fail_unlexed_expr.carbon:[[@LINE+12]]:14: error: encountered unrecognized characters while parsing [UnrecognizedCharacters] // CHECK:STDERR: var y: array(`); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_unlexed_expr.carbon:[[@LINE+8]]:14: error: expected `,` in `array(Type, Count)` [ExpectedArrayComma] // CHECK:STDERR: var y: array(`); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_unlexed_expr.carbon:[[@LINE+4]]:14: error: unexpected tokens before `)` [ExpectedCloseSymbol] // CHECK:STDERR: var y: array(`); // CHECK:STDERR: ^ // CHECK:STDERR: var y: array(`); // --- fail_no_open_paren.carbon // CHECK:STDERR: fail_no_open_paren.carbon:[[@LINE+4]]:14: error: expected `(` after `array` [ExpectedParenAfter] // CHECK:STDERR: var x: array i32, 1; // CHECK:STDERR: ^~~ // CHECK:STDERR: var x: array i32, 1; // --- fail_no_close_paren.carbon // CHECK:STDERR: fail_no_close_paren.carbon:[[@LINE+16]]:13: error: opening symbol without a corresponding closing symbol [UnmatchedOpening] // CHECK:STDERR: var x: array(i32,; // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_no_close_paren.carbon:[[@LINE+12]]:13: error: expected `(` after `array` [ExpectedParenAfter] // CHECK:STDERR: var x: array(i32,; // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_no_close_paren.carbon:[[@LINE+8]]:13: error: expected `,` in `array(Type, Count)` [ExpectedArrayComma] // CHECK:STDERR: var x: array(i32,; // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_no_close_paren.carbon:[[@LINE+4]]:13: error: `var` declarations must end with a `;` [ExpectedDeclSemi] // CHECK:STDERR: var x: array(i32,; // CHECK:STDERR: ^ // CHECK:STDERR: var x: array(i32,; // --- fail_no_length.carbon // CHECK:STDERR: fail_no_length.carbon:[[@LINE+4]]:18: error: expected expression [ExpectedExpr] // CHECK:STDERR: var x: array(i32,); // CHECK:STDERR: ^ // CHECK:STDERR: var x: array(i32,); // --- fail_no_params.carbon // CHECK:STDERR: fail_no_params.carbon:[[@LINE+12]]:14: error: expected expression [ExpectedExpr] // CHECK:STDERR: var x: array(); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_no_params.carbon:[[@LINE+8]]:14: error: expected `,` in `array(Type, Count)` [ExpectedArrayComma] // CHECK:STDERR: var x: array(); // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_no_params.carbon:[[@LINE+4]]:14: error: expected expression [ExpectedExpr] // CHECK:STDERR: var x: array(); // CHECK:STDERR: ^ // CHECK:STDERR: var x: array(); // --- fail_keyword_alone.carbon // CHECK:STDERR: fail_keyword_alone.carbon:[[@LINE+16]]:13: error: expected `(` after `array` [ExpectedParenAfter] // CHECK:STDERR: var x: array; // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_keyword_alone.carbon:[[@LINE+12]]:13: error: expected expression [ExpectedExpr] // CHECK:STDERR: var x: array; // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_keyword_alone.carbon:[[@LINE+8]]:13: error: expected `,` in `array(Type, Count)` [ExpectedArrayComma] // CHECK:STDERR: var x: array; // CHECK:STDERR: ^ // CHECK:STDERR: // CHECK:STDERR: fail_keyword_alone.carbon:[[@LINE+4]]:13: error: expected expression [ExpectedExpr] // CHECK:STDERR: var x: array; // CHECK:STDERR: ^ // CHECK:STDERR: var x: array; // CHECK:STDOUT: - filename: fail_no_comma.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─VariableIntroducer 'var' // CHECK:STDOUT: │ │ ╭─IdentifierNameNotBeforeSignature 'x' // CHECK:STDOUT: │ │ ├─BindingPatternTypeStart ':' // CHECK:STDOUT: │ │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ │ ├─ArrayExprOpenParen '(' // CHECK:STDOUT: │ │ │ ├─IntTypeLiteral 'i32' // CHECK:STDOUT: │ │ │ ├─ArrayExprComma ')' has_error // CHECK:STDOUT: │ │ │ ├─InvalidParse ')' has_error // CHECK:STDOUT: │ │ ├─ArrayExpr ')' has_error // CHECK:STDOUT: │ │ ╭─VarBindingPattern ':' // CHECK:STDOUT: │ ├─VariablePattern 'var' // CHECK:STDOUT: ├─VariableDecl ';' // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root) // CHECK:STDOUT: - filename: fail_invalid_char.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─FunctionIntroducer 'fn' // CHECK:STDOUT: │ ├─IdentifierNameMaybeBeforeSignature 'X' // CHECK:STDOUT: │ │ ╭─ExplicitParamListStart '(' // CHECK:STDOUT: │ ├─ExplicitParamList ')' // CHECK:STDOUT: │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ ├─ArrayExprOpenParen '(' // CHECK:STDOUT: │ │ ├─InvalidParse ':' has_error // CHECK:STDOUT: │ │ ├─ArrayExprComma ':' has_error // CHECK:STDOUT: │ │ ├─InvalidParse ':' has_error // CHECK:STDOUT: │ │ ╭─ArrayExpr ')' has_error // CHECK:STDOUT: │ ├─ReturnType '->' // CHECK:STDOUT: ├─FunctionDecl ';' // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root) // CHECK:STDOUT: - filename: fail_unlexed_expr.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─VariableIntroducer 'var' // CHECK:STDOUT: │ │ ╭─IdentifierNameNotBeforeSignature 'y' // CHECK:STDOUT: │ │ ├─BindingPatternTypeStart ':' // CHECK:STDOUT: │ │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ │ ├─ArrayExprOpenParen '(' // CHECK:STDOUT: │ │ │ ├─InvalidParse '`' has_error // CHECK:STDOUT: │ │ │ ├─ArrayExprComma '`' has_error // CHECK:STDOUT: │ │ │ ├─InvalidParse '`' has_error // CHECK:STDOUT: │ │ ├─ArrayExpr ')' has_error // CHECK:STDOUT: │ │ ╭─VarBindingPattern ':' // CHECK:STDOUT: │ ├─VariablePattern 'var' // CHECK:STDOUT: ├─VariableDecl ';' // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root) // CHECK:STDOUT: - filename: fail_no_open_paren.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─VariableIntroducer 'var' // CHECK:STDOUT: │ │ ╭─IdentifierNameNotBeforeSignature 'x' // CHECK:STDOUT: │ │ ├─BindingPatternTypeStart ':' // CHECK:STDOUT: │ │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ │ ├─ArrayExprOpenParen 'array' has_error // CHECK:STDOUT: │ │ │ ├─IntTypeLiteral 'i32' // CHECK:STDOUT: │ │ │ ├─ArrayExprComma ',' // CHECK:STDOUT: │ │ │ ├─IntLiteral '1' // CHECK:STDOUT: │ │ ├─ArrayExpr 'array' has_error // CHECK:STDOUT: │ │ ╭─VarBindingPattern ':' // CHECK:STDOUT: │ ├─VariablePattern 'var' // CHECK:STDOUT: ├─VariableDecl ';' // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root) // CHECK:STDOUT: - filename: fail_no_close_paren.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─VariableIntroducer 'var' // CHECK:STDOUT: │ │ ╭─IdentifierNameNotBeforeSignature 'x' // CHECK:STDOUT: │ │ ├─BindingPatternTypeStart ':' // CHECK:STDOUT: │ │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ │ ├─ArrayExprOpenParen 'array' has_error // CHECK:STDOUT: │ │ │ ├─InvalidParse '(' has_error // CHECK:STDOUT: │ │ │ ├─ArrayExprComma '(' has_error // CHECK:STDOUT: │ │ │ ├─InvalidParse '(' has_error // CHECK:STDOUT: │ │ ├─ArrayExpr 'array' has_error // CHECK:STDOUT: │ │ ╭─VarBindingPattern ':' // CHECK:STDOUT: │ ├─VariablePattern 'var' // CHECK:STDOUT: ├─VariableDecl ';' has_error // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root) // CHECK:STDOUT: - filename: fail_no_length.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─VariableIntroducer 'var' // CHECK:STDOUT: │ │ ╭─IdentifierNameNotBeforeSignature 'x' // CHECK:STDOUT: │ │ ├─BindingPatternTypeStart ':' // CHECK:STDOUT: │ │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ │ ├─ArrayExprOpenParen '(' // CHECK:STDOUT: │ │ │ ├─IntTypeLiteral 'i32' // CHECK:STDOUT: │ │ │ ├─ArrayExprComma ',' // CHECK:STDOUT: │ │ │ ├─InvalidParse ')' has_error // CHECK:STDOUT: │ │ ├─ArrayExpr ')' has_error // CHECK:STDOUT: │ │ ╭─VarBindingPattern ':' // CHECK:STDOUT: │ ├─VariablePattern 'var' // CHECK:STDOUT: ├─VariableDecl ';' // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root) // CHECK:STDOUT: - filename: fail_no_params.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─VariableIntroducer 'var' // CHECK:STDOUT: │ │ ╭─IdentifierNameNotBeforeSignature 'x' // CHECK:STDOUT: │ │ ├─BindingPatternTypeStart ':' // CHECK:STDOUT: │ │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ │ ├─ArrayExprOpenParen '(' // CHECK:STDOUT: │ │ │ ├─InvalidParse ')' has_error // CHECK:STDOUT: │ │ │ ├─ArrayExprComma ')' has_error // CHECK:STDOUT: │ │ │ ├─InvalidParse ')' has_error // CHECK:STDOUT: │ │ ├─ArrayExpr ')' has_error // CHECK:STDOUT: │ │ ╭─VarBindingPattern ':' // CHECK:STDOUT: │ ├─VariablePattern 'var' // CHECK:STDOUT: ├─VariableDecl ';' // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root) // CHECK:STDOUT: - filename: fail_keyword_alone.carbon // CHECK:STDOUT: ╭─FileStart '' // CHECK:STDOUT: │ ╭─VariableIntroducer 'var' // CHECK:STDOUT: │ │ ╭─IdentifierNameNotBeforeSignature 'x' // CHECK:STDOUT: │ │ ├─BindingPatternTypeStart ':' // CHECK:STDOUT: │ │ │ ╭─ArrayExprKeyword 'array' // CHECK:STDOUT: │ │ │ ├─ArrayExprOpenParen 'array' has_error // CHECK:STDOUT: │ │ │ ├─InvalidParse ';' has_error // CHECK:STDOUT: │ │ │ ├─ArrayExprComma ';' has_error // CHECK:STDOUT: │ │ │ ├─InvalidParse ';' has_error // CHECK:STDOUT: │ │ ├─ArrayExpr 'array' has_error // CHECK:STDOUT: │ │ ╭─VarBindingPattern ':' // CHECK:STDOUT: │ ├─VariablePattern 'var' // CHECK:STDOUT: ├─VariableDecl ';' // CHECK:STDOUT: ├─FileEnd '' // CHECK:STDOUT: (root)