@@ -250,24 +250,11 @@ fn test_result_as_deref() {
250250 let expected_result = Result :: Ok :: < & [ i32 ] , & u32 > ( [ 1 , 2 , 3 , 4 , 5 ] . as_slice ( ) ) ;
251251 assert_eq ! ( ref_ok. as_deref( ) , expected_result) ;
252252
253- // &Result<T, E: Deref>::Err(T).as_deref_err() ->
254- // Result<&T, &E::Deref::Target>::Err(&*E)
255- let ref_err = & Result :: Err :: < u8 , & i32 > ( & 41 ) ;
256- let expected_result = Result :: Err :: < & u8 , & i32 > ( & 41 ) ;
257- assert_eq ! ( ref_err. as_deref_err( ) , expected_result) ;
258-
259- let ref_err = & Result :: Err :: < u32 , String > ( String :: from ( "an error" ) ) ;
260- let expected_result = Result :: Err :: < & u32 , & str > ( "an error" ) ;
261- assert_eq ! ( ref_err. as_deref_err( ) , expected_result) ;
262-
263- let ref_err = & Result :: Err :: < u32 , Vec < i32 > > ( vec ! [ 5 , 4 , 3 , 2 , 1 ] ) ;
264- let expected_result = Result :: Err :: < & u32 , & [ i32 ] > ( [ 5 , 4 , 3 , 2 , 1 ] . as_slice ( ) ) ;
265- assert_eq ! ( ref_err. as_deref_err( ) , expected_result) ;
266-
267- // &Result<T: Deref, E: Deref>::Err(T).as_deref_err() ->
268- // Result<&T, &E::Deref::Target>::Err(&*E)
269- let ref_err = & Result :: Err :: < & u8 , & i32 > ( & 41 ) ;
270- let expected_result = Result :: Err :: < & u8 , & & i32 > ( & & 41 ) ;
253+ // &Result<T: Deref, E>::Err(T).as_deref() ->
254+ // Result<&T::Deref::Target, &E>::Err(&*E)
255+ let val = 41 ;
256+ let ref_err = & Result :: Err :: < & u8 , i32 > ( val) ;
257+ let expected_result = Result :: Err :: < & u8 , & i32 > ( & val) ;
271258 assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
272259
273260 let s = String :: from ( "an error" ) ;
@@ -279,46 +266,12 @@ fn test_result_as_deref() {
279266 let ref_err = & Result :: Err :: < & u32 , Vec < i32 > > ( v. clone ( ) ) ;
280267 let expected_result = Result :: Err :: < & u32 , & Vec < i32 > > ( & v) ;
281268 assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
282-
283- // The following cases test calling `as_deref_*` with the wrong variant (i.e.
284- // `as_deref()` with a `Result::Err()`, or `as_deref_err()` with a `Result::Ok()`.
285- // While uncommon, these cases are supported to ensure that an `as_deref_*`
286- // call can still be made even when one of the Result types does not implement
287- // `Deref` (for example, std::io::Error).
288-
289- // &Result<T, E: Deref>::Ok(T).as_deref_err() ->
290- // Result<&T, &E::Deref::Target>::Ok(&T)
291- let ref_ok = & Result :: Ok :: < i32 , & u8 > ( 42 ) ;
292- let expected_result = Result :: Ok :: < & i32 , & u8 > ( & 42 ) ;
293- assert_eq ! ( ref_ok. as_deref_err( ) , expected_result) ;
294-
295- let ref_ok = & Result :: Ok :: < & str , & u32 > ( "a result" ) ;
296- let expected_result = Result :: Ok :: < & & str , & u32 > ( & "a result" ) ;
297- assert_eq ! ( ref_ok. as_deref_err( ) , expected_result) ;
298-
299- let ref_ok = & Result :: Ok :: < [ i32 ; 5 ] , & u32 > ( [ 1 , 2 , 3 , 4 , 5 ] ) ;
300- let expected_result = Result :: Ok :: < & [ i32 ; 5 ] , & u32 > ( & [ 1 , 2 , 3 , 4 , 5 ] ) ;
301- assert_eq ! ( ref_ok. as_deref_err( ) , expected_result) ;
302-
303- // &Result<T: Deref, E>::Err(E).as_deref() ->
304- // Result<&T::Deref::Target, &E>::Err(&E)
305- let ref_err = & Result :: Err :: < & u8 , i32 > ( 41 ) ;
306- let expected_result = Result :: Err :: < & u8 , & i32 > ( & 41 ) ;
307- assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
308-
309- let ref_err = & Result :: Err :: < & u32 , & str > ( "an error" ) ;
310- let expected_result = Result :: Err :: < & u32 , & & str > ( & "an error" ) ;
311- assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
312-
313- let ref_err = & Result :: Err :: < & u32 , [ i32 ; 5 ] > ( [ 5 , 4 , 3 , 2 , 1 ] ) ;
314- let expected_result = Result :: Err :: < & u32 , & [ i32 ; 5 ] > ( & [ 5 , 4 , 3 , 2 , 1 ] ) ;
315- assert_eq ! ( ref_err. as_deref( ) , expected_result) ;
316269}
317270
318271#[ test]
319272fn test_result_as_deref_mut ( ) {
320- // &mut Result<T: Deref , E>::Ok(T).as_deref_mut() ->
321- // Result<&mut T::Deref ::Target, &mut E>::Ok(&mut *T)
273+ // &mut Result<T: DerefMut , E>::Ok(T).as_deref_mut() ->
274+ // Result<&mut T::DerefMut ::Target, &mut E>::Ok(&mut *T)
322275 let mut val = 42 ;
323276 let mut expected_val = 42 ;
324277 let mut_ok = & mut Result :: Ok :: < & mut i32 , u8 > ( & mut val) ;
@@ -335,26 +288,8 @@ fn test_result_as_deref_mut() {
335288 let expected_result = Result :: Ok :: < & mut [ i32 ] , & mut u32 > ( expected_vec. as_mut_slice ( ) ) ;
336289 assert_eq ! ( mut_ok. as_deref_mut( ) , expected_result) ;
337290
338- // &mut Result<T, E: Deref>::Err(T).as_deref_mut_err() ->
339- // Result<&mut T, &mut E::Deref::Target>::Err(&mut *E)
340- let mut val = 41 ;
341- let mut expected_val = 41 ;
342- let mut_err = & mut Result :: Err :: < u8 , & mut i32 > ( & mut val) ;
343- let expected_result = Result :: Err :: < & mut u8 , & mut i32 > ( & mut expected_val) ;
344- assert_eq ! ( mut_err. as_deref_mut_err( ) , expected_result) ;
345-
346- let mut expected_string = String :: from ( "an error" ) ;
347- let mut_err = & mut Result :: Err :: < u32 , String > ( expected_string. clone ( ) ) ;
348- let expected_result = Result :: Err :: < & mut u32 , & mut str > ( expected_string. deref_mut ( ) ) ;
349- assert_eq ! ( mut_err. as_deref_mut_err( ) , expected_result) ;
350-
351- let mut expected_vec = vec ! [ 5 , 4 , 3 , 2 , 1 ] ;
352- let mut_err = & mut Result :: Err :: < u32 , Vec < i32 > > ( expected_vec. clone ( ) ) ;
353- let expected_result = Result :: Err :: < & mut u32 , & mut [ i32 ] > ( expected_vec. as_mut_slice ( ) ) ;
354- assert_eq ! ( mut_err. as_deref_mut_err( ) , expected_result) ;
355-
356- // &mut Result<T: Deref, E: Deref>::Err(T).as_deref_mut_err() ->
357- // Result<&mut T, &mut E::Deref::Target>::Err(&mut *E)
291+ // &mut Result<T: DerefMut, E>::Err(T).as_deref_mut() ->
292+ // Result<&mut T, &mut E>::Err(&mut *E)
358293 let mut val = 41 ;
359294 let mut_err = & mut Result :: Err :: < & mut u8 , i32 > ( val) ;
360295 let expected_result = Result :: Err :: < & mut u8 , & mut i32 > ( & mut val) ;
@@ -369,48 +304,4 @@ fn test_result_as_deref_mut() {
369304 let mut_err = & mut Result :: Err :: < & mut u32 , Vec < i32 > > ( expected_vec. clone ( ) ) ;
370305 let expected_result = Result :: Err :: < & mut u32 , & mut Vec < i32 > > ( & mut expected_vec) ;
371306 assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
372-
373- // The following cases test calling `as_deref_mut_*` with the wrong variant (i.e.
374- // `as_deref_mut()` with a `Result::Err()`, or `as_deref_mut_err()` with a `Result::Ok()`.
375- // While uncommon, these cases are supported to ensure that an `as_deref_mut_*`
376- // call can still be made even when one of the Result types does not implement
377- // `Deref` (for example, std::io::Error).
378-
379- // &mut Result<T, E: Deref>::Ok(T).as_deref_mut_err() ->
380- // Result<&mut T, &mut E::Deref::Target>::Ok(&mut T)
381- let mut expected_val = 42 ;
382- let mut_ok = & mut Result :: Ok :: < i32 , & mut u8 > ( expected_val. clone ( ) ) ;
383- let expected_result = Result :: Ok :: < & mut i32 , & mut u8 > ( & mut expected_val) ;
384- assert_eq ! ( mut_ok. as_deref_mut_err( ) , expected_result) ;
385-
386- let string = String :: from ( "a result" ) ;
387- let expected_string = string. clone ( ) ;
388- let mut ref_str = expected_string. as_ref ( ) ;
389- let mut_ok = & mut Result :: Ok :: < & str , & mut u32 > ( string. as_str ( ) ) ;
390- let expected_result = Result :: Ok :: < & mut & str , & mut u32 > ( & mut ref_str) ;
391- assert_eq ! ( mut_ok. as_deref_mut_err( ) , expected_result) ;
392-
393- let mut expected_arr = [ 1 , 2 , 3 , 4 , 5 ] ;
394- let mut_ok = & mut Result :: Ok :: < [ i32 ; 5 ] , & mut u32 > ( expected_arr. clone ( ) ) ;
395- let expected_result = Result :: Ok :: < & mut [ i32 ; 5 ] , & mut u32 > ( & mut expected_arr) ;
396- assert_eq ! ( mut_ok. as_deref_mut_err( ) , expected_result) ;
397-
398- // &mut Result<T: Deref, E>::Err(E).as_deref_mut() ->
399- // Result<&mut T::Deref::Target, &mut E>::Err(&mut E)
400- let mut expected_val = 41 ;
401- let mut_err = & mut Result :: Err :: < & mut u8 , i32 > ( expected_val. clone ( ) ) ;
402- let expected_result = Result :: Err :: < & mut u8 , & mut i32 > ( & mut expected_val) ;
403- assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
404-
405- let string = String :: from ( "an error" ) ;
406- let expected_string = string. clone ( ) ;
407- let mut ref_str = expected_string. as_ref ( ) ;
408- let mut_err = & mut Result :: Err :: < & mut u32 , & str > ( string. as_str ( ) ) ;
409- let expected_result = Result :: Err :: < & mut u32 , & mut & str > ( & mut ref_str) ;
410- assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
411-
412- let mut expected_arr = [ 5 , 4 , 3 , 2 , 1 ] ;
413- let mut_err = & mut Result :: Err :: < & mut u32 , [ i32 ; 5 ] > ( expected_arr. clone ( ) ) ;
414- let expected_result = Result :: Err :: < & mut u32 , & mut [ i32 ; 5 ] > ( & mut expected_arr) ;
415- assert_eq ! ( mut_err. as_deref_mut( ) , expected_result) ;
416307}
0 commit comments