File tree 2 files changed +30
-1
lines changed 2 files changed +30
-1
lines changed Original file line number Diff line number Diff line change 1
- 6c1b220fd747bf244f04b380e4d4ae005068f706
1
+ 3a1b3b30c6cdd674049b144a3ced7b711de962b2
Original file line number Diff line number Diff line change
1
+ #![ feature( ptr_offset_from) ]
2
+
3
+ fn test_raw ( ) { unsafe {
4
+ let buf = [ 0u32 ; 4 ] ;
5
+
6
+ let x = buf. as_ptr ( ) as * const u8 ;
7
+ let y = x. offset ( 12 ) ;
8
+
9
+ assert_eq ! ( y. offset_from( x) , 12 ) ;
10
+ assert_eq ! ( x. offset_from( y) , -12 ) ;
11
+ assert_eq ! ( ( y as * const u32 ) . offset_from( x as * const u32 ) , 12 /4 ) ;
12
+ assert_eq ! ( ( x as * const u32 ) . offset_from( y as * const u32 ) , -12 /4 ) ;
13
+
14
+ let x = ( ( ( x as usize ) * 2 ) / 2 ) as * const u8 ;
15
+ assert_eq ! ( y. offset_from( x) , 12 ) ;
16
+ assert_eq ! ( x. offset_from( y) , -12 ) ;
17
+ } }
18
+
19
+ // This also internally uses offset_from.
20
+ fn test_vec_into_iter ( ) {
21
+ let v = Vec :: < i32 > :: new ( ) ;
22
+ let i = v. into_iter ( ) ;
23
+ i. size_hint ( ) ;
24
+ }
25
+
26
+ fn main ( ) {
27
+ test_raw ( ) ;
28
+ test_vec_into_iter ( ) ;
29
+ }
You can’t perform that action at this time.
0 commit comments