about summary refs log tree commit diff
path: root/tests/ui/structs-enums
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2025-06-26 18:08:15 +0000
committerMichael Goulet <michael@errs.io>2025-06-26 18:11:14 +0000
commit4e51e67a24d940d3c8069062d07f663ee2034ac3 (patch)
tree7eae19234f8476ea8fcc54e7f3308e3aa31e745e /tests/ui/structs-enums
parente63921262ccd2ece7e0861d634f111136da1f7da (diff)
downloadrust-4e51e67a24d940d3c8069062d07f663ee2034ac3.tar.gz
rust-4e51e67a24d940d3c8069062d07f663ee2034ac3.zip
Better recovery
Diffstat (limited to 'tests/ui/structs-enums')
-rw-r--r--tests/ui/structs-enums/recover-enum-with-bad-where.rs4
-rw-r--r--tests/ui/structs-enums/recover-enum-with-bad-where.stderr15
2 files changed, 13 insertions, 6 deletions
diff --git a/tests/ui/structs-enums/recover-enum-with-bad-where.rs b/tests/ui/structs-enums/recover-enum-with-bad-where.rs
index 850ee6caa1a..cf7747d710b 100644
--- a/tests/ui/structs-enums/recover-enum-with-bad-where.rs
+++ b/tests/ui/structs-enums/recover-enum-with-bad-where.rs
@@ -1,6 +1,8 @@
 pub enum Foo<T>
 where:
-//~^ ERROR expected one of `#`, `{`, lifetime, or type, found `:`
+//~^ ERROR unexpected colon after `where`
     T: Missing, {}
+//~^ ERROR cannot find trait `Missing` in this scope
+// (evidence that we continue parsing after the erroneous colon)
 
 fn main() {}
diff --git a/tests/ui/structs-enums/recover-enum-with-bad-where.stderr b/tests/ui/structs-enums/recover-enum-with-bad-where.stderr
index 6f28ff56bab..30b73f59e8c 100644
--- a/tests/ui/structs-enums/recover-enum-with-bad-where.stderr
+++ b/tests/ui/structs-enums/recover-enum-with-bad-where.stderr
@@ -1,10 +1,15 @@
-error: expected one of `#`, `{`, lifetime, or type, found `:`
+error: unexpected colon after `where`
   --> $DIR/recover-enum-with-bad-where.rs:2:6
    |
-LL | pub enum Foo<T>
-   |          --- while parsing this enum
 LL | where:
-   |      ^ expected one of `#`, `{`, lifetime, or type
+   |      ^ help: remove the colon
 
-error: aborting due to 1 previous error
+error[E0405]: cannot find trait `Missing` in this scope
+  --> $DIR/recover-enum-with-bad-where.rs:4:8
+   |
+LL |     T: Missing, {}
+   |        ^^^^^^^ not found in this scope
+
+error: aborting due to 2 previous errors
 
+For more information about this error, try `rustc --explain E0405`.