Move diagnostic kind name to the end of the diagnostic. (#4437)

Also surround it in square brackets rather than parentheses. This
matches the format used by Clang and GCC, and means diagnostics will
still match the `file:line:col: error: ` pattern used by some IDE tools.

Before:
```console
fail_builtins.carbon:11:11: error(AliasRequiresNameRef): alias initializer must be a name reference
```

After:
```console
fail_builtins.carbon:11:11: error: alias initializer must be a name reference [AliasRequiresNameRef]
```

Also tighten up test regex to only match on `STDERR` lines that list a
file name.
This commit is contained in:
Richard Smith
2024-10-23 16:56:23 +00:00
committed by GitHub
parent f206072216
commit 2e63da1a40
528 changed files with 1929 additions and 1928 deletions
+6 -6
View File
@@ -18,7 +18,7 @@ fn Success() {
// --- fail_numeric_designator.carbon
fn FailNumeric() {
// CHECK:STDERR: fail_numeric_designator.carbon:[[@LINE+4]]:4: error(ExpectedIdentifierOrSelfAfterPeriod): expected identifier or `Self` after `.`
// CHECK:STDERR: fail_numeric_designator.carbon:[[@LINE+4]]:4: error: expected identifier or `Self` after `.` [ExpectedIdentifierOrSelfAfterPeriod]
// CHECK:STDERR: .1;
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -28,7 +28,7 @@ fn FailNumeric() {
// --- fail_keyword_designator.carbon
fn FailKeyword() {
// CHECK:STDERR: fail_keyword_designator.carbon:[[@LINE+4]]:4: error(ExpectedIdentifierOrSelfAfterPeriod): expected identifier or `Self` after `.`
// CHECK:STDERR: fail_keyword_designator.carbon:[[@LINE+4]]:4: error: expected identifier or `Self` after `.` [ExpectedIdentifierOrSelfAfterPeriod]
// CHECK:STDERR: .base;
// CHECK:STDERR: ^~~~
// CHECK:STDERR:
@@ -38,7 +38,7 @@ fn FailKeyword() {
// --- fail_empty_designator.carbon
fn FailEmpty() {
// CHECK:STDERR: fail_empty_designator.carbon:[[@LINE+4]]:4: error(ExpectedIdentifierOrSelfAfterPeriod): expected identifier or `Self` after `.`
// CHECK:STDERR: fail_empty_designator.carbon:[[@LINE+4]]:4: error: expected identifier or `Self` after `.` [ExpectedIdentifierOrSelfAfterPeriod]
// CHECK:STDERR: .;
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -48,7 +48,7 @@ fn FailEmpty() {
// --- fail_star_designator.carbon
fn FailStar() {
// CHECK:STDERR: fail_star_designator.carbon:[[@LINE+4]]:4: error(ExpectedIdentifierOrSelfAfterPeriod): expected identifier or `Self` after `.`
// CHECK:STDERR: fail_star_designator.carbon:[[@LINE+4]]:4: error: expected identifier or `Self` after `.` [ExpectedIdentifierOrSelfAfterPeriod]
// CHECK:STDERR: .*;
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -59,11 +59,11 @@ fn FailStar() {
var x: i32 = .
// CHECK:STDERR: fail_designator_eof.carbon:[[@LINE+93]]:21: error(ExpectedIdentifierOrSelfAfterPeriod): expected identifier or `Self` after `.`
// CHECK:STDERR: fail_designator_eof.carbon:[[@LINE+93]]:21: error: expected identifier or `Self` after `.` [ExpectedIdentifierOrSelfAfterPeriod]
// CHECK:STDERR: // CHECK:STDOUT: ]
// CHECK:STDERR: ^
// CHECK:STDERR:
// CHECK:STDERR: fail_designator_eof.carbon:[[@LINE+89]]:21: error(ExpectedDeclSemi): `var` declarations must end with a `;`
// CHECK:STDERR: fail_designator_eof.carbon:[[@LINE+89]]:21: error: `var` declarations must end with a `;` [ExpectedDeclSemi]
// CHECK:STDERR: // CHECK:STDOUT: ]
// CHECK:STDERR: ^
// CHECK:STDOUT: - filename: designator.carbon
+7 -7
View File
@@ -13,7 +13,7 @@
// --- fail_not_designator.carbon
// CHECK:STDERR: fail_not_designator.carbon:[[@LINE+4]]:37: error(RequirementEqualAfterNonDesignator): requirement can only use `=` after `.member` designator
// CHECK:STDERR: fail_not_designator.carbon:[[@LINE+4]]:37: error: requirement can only use `=` after `.member` designator [RequirementEqualAfterNonDesignator]
// CHECK:STDERR: fn NotDesignator(T:! type where i32 = .U);
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -21,7 +21,7 @@ fn NotDesignator(T:! type where i32 = .U);
// --- fail_designator_in_parens.carbon
// CHECK:STDERR: fail_designator_in_parens.carbon:[[@LINE+4]]:40: error(RequirementEqualAfterNonDesignator): requirement can only use `=` after `.member` designator
// CHECK:STDERR: fail_designator_in_parens.carbon:[[@LINE+4]]:40: error: requirement can only use `=` after `.member` designator [RequirementEqualAfterNonDesignator]
// CHECK:STDERR: fn DesignatorInParens(V:! I where (.J) = bool);
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -29,7 +29,7 @@ fn DesignatorInParens(V:! I where (.J) = bool);
// --- fail_dot_self.carbon
// CHECK:STDERR: fail_dot_self.carbon:[[@LINE+4]]:30: error(RequirementEqualAfterNonDesignator): requirement can only use `=` after `.member` designator
// CHECK:STDERR: fail_dot_self.carbon:[[@LINE+4]]:30: error: requirement can only use `=` after `.member` designator [RequirementEqualAfterNonDesignator]
// CHECK:STDERR: fn DotSelf(W:! K where .Self = f32);
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -37,7 +37,7 @@ fn DotSelf(W:! K where .Self = f32);
// --- fail_dot_keyword.carbon
// CHECK:STDERR: fail_dot_keyword.carbon:[[@LINE+4]]:28: error(ExpectedIdentifierOrSelfAfterPeriod): expected identifier or `Self` after `.`
// CHECK:STDERR: fail_dot_keyword.carbon:[[@LINE+4]]:28: error: expected identifier or `Self` after `.` [ExpectedIdentifierOrSelfAfterPeriod]
// CHECK:STDERR: fn DotKeyword(W:! K where .and = u8);
// CHECK:STDERR: ^~~
// CHECK:STDERR:
@@ -45,7 +45,7 @@ fn DotKeyword(W:! K where .and = u8);
// --- fail_postfix_after_designator.carbon
// CHECK:STDERR: fail_postfix_after_designator.carbon:[[@LINE+4]]:43: error(RequirementEqualAfterNonDesignator): requirement can only use `=` after `.member` designator
// CHECK:STDERR: fail_postfix_after_designator.carbon:[[@LINE+4]]:43: error: requirement can only use `=` after `.member` designator [RequirementEqualAfterNonDesignator]
// CHECK:STDERR: fn PostfixAfterDesignator(X:! L where .M* = u64*);
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -53,7 +53,7 @@ fn PostfixAfterDesignator(X:! L where .M* = u64*);
// --- fail_binary_op_after_designator.carbon
// CHECK:STDERR: fail_binary_op_after_designator.carbon:[[@LINE+4]]:48: error(RequirementEqualAfterNonDesignator): requirement can only use `=` after `.member` designator
// CHECK:STDERR: fail_binary_op_after_designator.carbon:[[@LINE+4]]:48: error: requirement can only use `=` after `.member` designator [RequirementEqualAfterNonDesignator]
// CHECK:STDERR: fn BinaryOpAfterDesignator(Y:! N where .O + .P = {});
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -61,7 +61,7 @@ fn BinaryOpAfterDesignator(Y:! N where .O + .P = {});
// --- fail_after_and.carbon
// CHECK:STDERR: fail_after_and.carbon:[[@LINE+3]]:43: error(RequirementEqualAfterNonDesignator): requirement can only use `=` after `.member` designator
// CHECK:STDERR: fail_after_and.carbon:[[@LINE+3]]:43: error: requirement can only use `=` after `.member` designator [RequirementEqualAfterNonDesignator]
// CHECK:STDERR: fn AfterAnd(Z:! Q where .R impls S and () = .A);
// CHECK:STDERR: ^
fn AfterAnd(Z:! Q where .R impls S and () = .A);
+3 -3
View File
@@ -16,7 +16,7 @@ fn TwoAnd(Y:! I where .J impls K and .L == .M and .N = bool);
// --- fail_and_prefix.carbon
// CHECK:STDERR: fail_and_prefix.carbon:[[@LINE+4]]:29: error(ExpectedExpr): expected expression
// CHECK:STDERR: fail_and_prefix.carbon:[[@LINE+4]]:29: error: expected expression [ExpectedExpr]
// CHECK:STDERR: fn AndPrefix(T:! type where and .V == .W);
// CHECK:STDERR: ^~~
// CHECK:STDERR:
@@ -24,7 +24,7 @@ fn AndPrefix(T:! type where and .V == .W);
// --- fail_and_suffix.carbon
// CHECK:STDERR: fail_and_suffix.carbon:[[@LINE+4]]:40: error(ExpectedExpr): expected expression
// CHECK:STDERR: fail_and_suffix.carbon:[[@LINE+4]]:40: error: expected expression [ExpectedExpr]
// CHECK:STDERR: fn AndSuffix(Y:! I where .J impls K and);
// CHECK:STDERR: ^
// CHECK:STDERR:
@@ -32,7 +32,7 @@ fn AndSuffix(Y:! I where .J impls K and);
// --- fail_and_early.carbon
// CHECK:STDERR: fail_and_early.carbon:[[@LINE+3]]:28: error(ExpectedRequirementOperator): requirement should use `impls`, `=`, or `==` operator
// CHECK:STDERR: fail_and_early.carbon:[[@LINE+3]]:28: error: requirement should use `impls`, `=`, or `==` operator [ExpectedRequirementOperator]
// CHECK:STDERR: fn AndEarly(Z:! L where .M and N);
// CHECK:STDERR: ^~~
fn AndEarly(Z:! L where .M and N);