File tree 2 files changed +11
-16
lines changed
2 files changed +11
-16
lines changed Original file line number Diff line number Diff line change 4
4
5
5
use std:: ptr:: NonNull ;
6
6
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 ( ) ) ;
10
9
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
13
12
}
14
13
15
14
pub 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( ) ) ) ;
22
17
}
Original file line number Diff line number Diff line change 4
4
5
5
use std:: ptr:: Unique ;
6
6
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
9
11
}
10
12
11
13
pub 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( ) ) ) ;
15
15
}
You can’t perform that action at this time.
0 commit comments