Skip to content

Commit 9a99a21

Browse files
committed
libcore: test Result::unwrap_infallible
1 parent a20013b commit 9a99a21

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/libcore/tests/lib.rs

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
#![feature(slice_from_raw_parts)]
4040
#![feature(const_slice_from_raw_parts)]
4141
#![feature(const_raw_ptr_deref)]
42+
#![feature(never_type)]
43+
#![feature(unwrap_infallible)]
4244

4345
extern crate test;
4446

src/libcore/tests/result.rs

+22
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,28 @@ pub fn test_unwrap_or_default() {
197197
assert_eq!(op2().unwrap_or_default(), 0);
198198
}
199199

200+
#[test]
201+
pub fn test_unwrap_infallible() {
202+
fn infallible_op() -> Result<isize, !> {
203+
Ok(666)
204+
}
205+
206+
assert_eq!(infallible_op().unwrap_infallible(), 666);
207+
208+
enum MyNeverToken {}
209+
impl From<MyNeverToken> for ! {
210+
fn from(never: MyNeverToken) -> ! {
211+
match never {}
212+
}
213+
}
214+
215+
fn infallible_op2() -> Result<isize, MyNeverToken> {
216+
Ok(667)
217+
}
218+
219+
assert_eq!(infallible_op2().unwrap_infallible(), 667);
220+
}
221+
200222
#[test]
201223
fn test_try() {
202224
fn try_result_some() -> Option<u8> {

0 commit comments

Comments
 (0)