about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRémy Rakic <remy.rakic+github@gmail.com>2025-01-12 08:13:45 +0000
committerRémy Rakic <remy.rakic+github@gmail.com>2025-01-12 08:13:45 +0000
commit33ce74f308ac0d849b9cd4d88f3ebdb4238be18a (patch)
tree3032c82baade7f8607d45aada42c5300863400b6
parentd19bdf9b48bdf520ad83cfa2af148a6b1ee8ab26 (diff)
downloadrust-33ce74f308ac0d849b9cd4d88f3ebdb4238be18a.tar.gz
rust-33ce74f308ac0d849b9cd4d88f3ebdb4238be18a.zip
add error message to `string_enum!`s string conversions
-rw-r--r--src/tools/compiletest/src/common.rs6
-rw-r--r--src/tools/compiletest/src/tests.rs2
2 files changed, 4 insertions, 4 deletions
diff --git a/src/tools/compiletest/src/common.rs b/src/tools/compiletest/src/common.rs
index 8c4a89baa00..4e2510ed9ab 100644
--- a/src/tools/compiletest/src/common.rs
+++ b/src/tools/compiletest/src/common.rs
@@ -39,12 +39,12 @@ macro_rules! string_enum {
         }
 
         impl FromStr for $name {
-            type Err = ();
+            type Err = String;
 
-            fn from_str(s: &str) -> Result<Self, ()> {
+            fn from_str(s: &str) -> Result<Self, Self::Err> {
                 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 f8a74528101..43c6dc0a67e 100644
--- a/src/tools/compiletest/src/tests.rs
+++ b/src/tools/compiletest/src/tests.rs
@@ -91,5 +91,5 @@ fn string_enums() {
 
     // Invalid conversions
     let animal = "nya".parse::<Animal>();
-    assert!(matches!(animal, Err(())));
+    assert_eq!("unknown `Animal` variant: `nya`", animal.unwrap_err());
 }