File tree 2 files changed +24
-0
lines changed
2 files changed +24
-0
lines changed Original file line number Diff line number Diff line change 39
39
#![ feature( slice_from_raw_parts) ]
40
40
#![ feature( const_slice_from_raw_parts) ]
41
41
#![ feature( const_raw_ptr_deref) ]
42
+ #![ feature( never_type) ]
43
+ #![ feature( unwrap_infallible) ]
42
44
43
45
extern crate test;
44
46
Original file line number Diff line number Diff line change @@ -197,6 +197,28 @@ pub fn test_unwrap_or_default() {
197
197
assert_eq ! ( op2( ) . unwrap_or_default( ) , 0 ) ;
198
198
}
199
199
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
+
200
222
#[ test]
201
223
fn test_try ( ) {
202
224
fn try_result_some ( ) -> Option < u8 > {
You can’t perform that action at this time.
0 commit comments