From 9a99a2159bb57ee0f1a52bb3f989a903df2f8cb4 Mon Sep 17 00:00:00 2001 From: Mikhail Zabaluev Date: Sat, 2 Nov 2019 22:12:51 +0200 Subject: [PATCH] libcore: test Result::unwrap_infallible --- src/libcore/tests/lib.rs | 2 ++ src/libcore/tests/result.rs | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs index 1f20ebc01e99..465602424180 100644 --- a/src/libcore/tests/lib.rs +++ b/src/libcore/tests/lib.rs @@ -39,6 +39,8 @@ #![feature(slice_from_raw_parts)] #![feature(const_slice_from_raw_parts)] #![feature(const_raw_ptr_deref)] +#![feature(never_type)] +#![feature(unwrap_infallible)] extern crate test; diff --git a/src/libcore/tests/result.rs b/src/libcore/tests/result.rs index 163f8d0ab379..8d17790af562 100644 --- a/src/libcore/tests/result.rs +++ b/src/libcore/tests/result.rs @@ -197,6 +197,28 @@ pub fn test_unwrap_or_default() { assert_eq!(op2().unwrap_or_default(), 0); } +#[test] +pub fn test_unwrap_infallible() { + fn infallible_op() -> Result { + Ok(666) + } + + assert_eq!(infallible_op().unwrap_infallible(), 666); + + enum MyNeverToken {} + impl From for ! { + fn from(never: MyNeverToken) -> ! { + match never {} + } + } + + fn infallible_op2() -> Result { + Ok(667) + } + + assert_eq!(infallible_op2().unwrap_infallible(), 667); +} + #[test] fn test_try() { fn try_result_some() -> Option {