File tree Expand file tree Collapse file tree 2 files changed +11
-16
lines changed Expand file tree Collapse file tree 2 files changed +11
-16
lines changed Original file line number Diff line number Diff line change 44
55use std:: ptr:: NonNull ;
66
7- const fn dangling ( ) -> NonNull < u32 > {
8- NonNull :: dangling ( )
9- }
7+ const DANGLING : NonNull < u32 > = NonNull :: dangling ( ) ;
8+ const CASTED : NonNull < u32 > = NonNull :: cast ( NonNull :: < i32 > :: dangling ( ) ) ;
109
11- const fn cast < T , U > ( non_null : NonNull < T > ) -> NonNull < U > {
12- non_null . cast ( )
10+ fn ident < T > ( ident : T ) -> T {
11+ ident
1312}
1413
1514pub fn main ( ) {
16- assert_eq ! ( dangling( ) , NonNull :: dangling( ) ) ;
17-
18- let mut i: i32 = 10 ;
19- let non_null_t = NonNull :: new ( & mut i) . unwrap ( ) ;
20- let non_null_u: NonNull < u32 > = cast ( non_null_t) ;
21- assert_eq ! ( non_null_t. as_ptr( ) , non_null_u. as_ptr( ) as * mut i32 ) ;
15+ assert_eq ! ( DANGLING , ident( NonNull :: dangling( ) ) ) ;
16+ assert_eq ! ( CASTED , ident( NonNull :: dangling( ) ) ) ;
2217}
Original file line number Diff line number Diff line change 44
55use std:: ptr:: Unique ;
66
7- const fn as_ptr < T > ( ptr : Unique < T > ) -> * mut T {
8- ptr. as_ptr ( )
7+ const PTR : * mut u32 = Unique :: empty ( ) . as_ptr ( ) ;
8+
9+ fn ident < T > ( ident : T ) -> T {
10+ ident
911}
1012
1113pub fn main ( ) {
12- let mut i: i32 = 10 ;
13- let unique = Unique :: new ( & mut i) . unwrap ( ) ;
14- assert_eq ! ( unique. as_ptr( ) , as_ptr( unique) ) ;
14+ assert_eq ! ( PTR , ident( Unique :: <u32 >:: empty( ) . as_ptr( ) ) ) ;
1515}
You can’t perform that action at this time.
0 commit comments