Skip to content

Commit 1fc140e

Browse files
committed
libcore: test Result::unwrap_infallible
1 parent 6cf2773 commit 1fc140e

File tree

2 files changed

+24
-0
lines changed

2 files changed

+24
-0
lines changed

src/libcore/tests/lib.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636
#![feature(iter_is_partitioned)]
3737
#![feature(iter_order_by)]
3838
#![feature(cmp_min_max_by)]
39+
#![feature(never_type)]
40+
#![feature(unwrap_infallible)]
3941

4042
extern crate test;
4143

src/libcore/tests/result.rs

Lines changed: 22 additions & 0 deletions
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)