diff options
| author | Mikhail Zabaluev <mikhail.zabaluev@gmail.com> | 2019-11-02 22:12:51 +0200 |
|---|---|---|
| committer | Mikhail Zabaluev <mikhail.zabaluev@gmail.com> | 2019-12-22 08:35:10 +0200 |
| commit | 9a99a2159bb57ee0f1a52bb3f989a903df2f8cb4 (patch) | |
| tree | 14d7e93c6eb7c06bfc78b11837eaf77bc37da4fa /src/libcore/tests | |
| parent | a20013b129c10907aee0bfb5bf1cac387e48eb51 (diff) | |
| download | rust-9a99a2159bb57ee0f1a52bb3f989a903df2f8cb4.tar.gz rust-9a99a2159bb57ee0f1a52bb3f989a903df2f8cb4.zip | |
libcore: test Result::unwrap_infallible
Diffstat (limited to 'src/libcore/tests')
| -rw-r--r-- | src/libcore/tests/lib.rs | 2 | ||||
| -rw-r--r-- | src/libcore/tests/result.rs | 22 |
2 files changed, 24 insertions, 0 deletions
diff --git a/src/libcore/tests/lib.rs b/src/libcore/tests/lib.rs index 1f20ebc01e9..46560242418 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 163f8d0ab37..8d17790af56 100644 --- a/src/libcore/tests/result.rs +++ b/src/libcore/tests/result.rs @@ -198,6 +198,28 @@ pub fn test_unwrap_or_default() { } #[test] +pub fn test_unwrap_infallible() { + fn infallible_op() -> Result<isize, !> { + Ok(666) + } + + assert_eq!(infallible_op().unwrap_infallible(), 666); + + enum MyNeverToken {} + impl From<MyNeverToken> for ! { + fn from(never: MyNeverToken) -> ! { + match never {} + } + } + + fn infallible_op2() -> Result<isize, MyNeverToken> { + Ok(667) + } + + assert_eq!(infallible_op2().unwrap_infallible(), 667); +} + +#[test] fn test_try() { fn try_result_some() -> Option<u8> { let val = Ok(1)?; |
