diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs index 8c4a89baa008..4e2510ed9aba 100644 --- a/src/tools/compiletest/src/common.rs +++ b/src/tools/compiletest/src/common.rs @@ -39,12 +39,12 @@ fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { } impl FromStr for $name { - type Err = (); + type Err = String; - fn from_str(s: &str) -> Result { + fn from_str(s: &str) -> Result { match s { $($repr => Ok(Self::$variant),)* - _ => Err(()), + _ => Err(format!(concat!("unknown `", stringify!($name), "` variant: `{}`"), s)), } } } diff --git a/src/tools/compiletest/src/tests.rs b/src/tools/compiletest/src/tests.rs index f8a74528101b..43c6dc0a67e8 100644 --- a/src/tools/compiletest/src/tests.rs +++ b/src/tools/compiletest/src/tests.rs @@ -91,5 +91,5 @@ enum Animal { // Invalid conversions let animal = "nya".parse::(); - assert!(matches!(animal, Err(()))); + assert_eq!("unknown `Animal` variant: `nya`", animal.unwrap_err()); }