From 4e51e67a24d940d3c8069062d07f663ee2034ac3 Mon Sep 17 00:00:00 2001 From: Michael Goulet Date: Thu, 26 Jun 2025 18:08:15 +0000 Subject: Better recovery --- tests/ui/structs-enums/recover-enum-with-bad-where.rs | 4 +++- tests/ui/structs-enums/recover-enum-with-bad-where.stderr | 15 ++++++++++----- 2 files changed, 13 insertions(+), 6 deletions(-) (limited to 'tests/ui/structs-enums') 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 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 - | --- 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`. -- cgit 1.4.1-3-g733a5