about summary refs log tree commit diff
diff options
context:
space:
mode:
authoribraheemdev <ibrah1440@gmail.com>2021-09-02 16:03:41 -0400
committeribraheemdev <ibrah1440@gmail.com>2021-09-02 16:03:41 -0400
commit2bdd0755139cf7183d6c63bda16925d824640f10 (patch)
tree50a159e1eb9e34244b0924b1dcbffbf4597a99f0
parent6cfa773583bb5123e630668f5bfe466716225546 (diff)
downloadrust-2bdd0755139cf7183d6c63bda16925d824640f10.tar.gz
rust-2bdd0755139cf7183d6c63bda16925d824640f10.zip
implement `Termination` for `Result<Infallible, E>`
-rw-r--r--library/std/src/process.rs10
1 files changed, 10 insertions, 0 deletions
diff --git a/library/std/src/process.rs b/library/std/src/process.rs
index c9b21fcf9c6..d94b6896751 100644
--- a/library/std/src/process.rs
+++ b/library/std/src/process.rs
@@ -106,6 +106,7 @@ mod tests;
 
 use crate::io::prelude::*;
 
+use crate::convert::Infallible;
 use crate::ffi::OsStr;
 use crate::fmt;
 use crate::fs;
@@ -2052,6 +2053,15 @@ impl<E: fmt::Debug> Termination for Result<!, E> {
 }
 
 #[unstable(feature = "termination_trait_lib", issue = "43301")]
+impl<E: fmt::Debug> Termination for Result<Infallible, E> {
+    fn report(self) -> i32 {
+        let Err(err) = self;
+        eprintln!("Error: {:?}", err);
+        ExitCode::FAILURE.report()
+    }
+}
+
+#[unstable(feature = "termination_trait_lib", issue = "43301")]
 impl Termination for ExitCode {
     #[inline]
     fn report(self) -> i32 {