]> git.proxmox.com Git - rustc.git/blobdiff - vendor/thiserror/tests/test_from.rs
New upstream version 1.52.1+dfsg1
[rustc.git] / vendor / thiserror / tests / test_from.rs
diff --git a/vendor/thiserror/tests/test_from.rs b/vendor/thiserror/tests/test_from.rs
new file mode 100644 (file)
index 0000000..e8f0161
--- /dev/null
@@ -0,0 +1,41 @@
+#![deny(clippy::all, clippy::pedantic)]
+
+use std::io;
+use thiserror::Error;
+
+#[derive(Error, Debug)]
+#[error("...")]
+pub struct ErrorStruct {
+    #[from]
+    source: io::Error,
+}
+
+#[derive(Error, Debug)]
+#[error("...")]
+pub struct ErrorTuple(#[from] io::Error);
+
+#[derive(Error, Debug)]
+#[error("...")]
+pub enum ErrorEnum {
+    Test {
+        #[from]
+        source: io::Error,
+    },
+}
+
+#[derive(Error, Debug)]
+#[error("...")]
+pub enum Many {
+    Any(#[from] anyhow::Error),
+    Io(#[from] io::Error),
+}
+
+fn assert_impl<T: From<io::Error>>() {}
+
+#[test]
+fn test_from() {
+    assert_impl::<ErrorStruct>();
+    assert_impl::<ErrorTuple>();
+    assert_impl::<ErrorEnum>();
+    assert_impl::<Many>();
+}