@@ -336,7 +336,7 @@ unsafe fn data_from_vec(cls: &Class, bytes: Vec<u8>) -> *mut Object {
336336
337337#[ cfg( test) ]
338338mod tests {
339- use super :: { NSData , NSMutableData } ;
339+ use super :: * ;
340340 #[ cfg( feature = "block" ) ]
341341 use alloc:: vec;
342342
@@ -431,4 +431,41 @@ mod tests {
431431 data. extend ( iter) ;
432432 assert_eq ! ( data. bytes( ) , & [ 1 , 2 , 3 , 4 , 5 ] ) ;
433433 }
434+
435+ #[ test]
436+ fn test_as_ref ( ) {
437+ fn impls_as_ref < T : AsRef < U > + ?Sized , U : ?Sized > ( _: & T ) { }
438+ fn impls_as_mut < T : AsMut < U > + ?Sized , U : ?Sized > ( _: & mut T ) { }
439+
440+ let mut obj = NSMutableData :: new ( ) ;
441+ impls_as_ref :: < Id < NSMutableData , Owned > , NSMutableData > ( & obj) ;
442+ impls_as_mut :: < Id < NSMutableData , Owned > , NSMutableData > ( & mut obj) ;
443+
444+ impls_as_ref :: < NSMutableData , NSMutableData > ( & obj) ;
445+ impls_as_mut :: < NSMutableData , NSMutableData > ( & mut obj) ;
446+ impls_as_ref :: < NSMutableData , NSData > ( & obj) ;
447+ impls_as_mut :: < NSMutableData , NSData > ( & mut obj) ;
448+ impls_as_ref :: < NSMutableData , NSObject > ( & obj) ;
449+ impls_as_mut :: < NSMutableData , NSObject > ( & mut obj) ;
450+ impls_as_ref :: < NSMutableData , Object > ( & obj) ;
451+ impls_as_mut :: < NSMutableData , Object > ( & mut obj) ;
452+
453+ impls_as_ref :: < NSData , NSData > ( & obj) ;
454+ impls_as_mut :: < NSData , NSData > ( & mut obj) ;
455+ impls_as_ref :: < NSData , NSObject > ( & obj) ;
456+ impls_as_mut :: < NSData , NSObject > ( & mut obj) ;
457+ impls_as_ref :: < NSData , Object > ( & obj) ;
458+ impls_as_mut :: < NSData , Object > ( & mut obj) ;
459+
460+ impls_as_ref :: < NSMutableData , [ u8 ] > ( & obj) ;
461+ impls_as_mut :: < NSMutableData , [ u8 ] > ( & mut obj) ;
462+ impls_as_ref :: < NSData , [ u8 ] > ( & obj) ;
463+
464+ let obj: & mut NSMutableData = & mut * obj;
465+ let _: & [ u8 ] = obj. as_ref ( ) ;
466+ let _: & mut [ u8 ] = obj. as_mut ( ) ;
467+
468+ let obj: & mut NSData = & mut * * obj;
469+ let _: & [ u8 ] = obj. as_ref ( ) ;
470+ }
434471}
0 commit comments