File tree Expand file tree Collapse file tree 2 files changed +30
-1
lines changed Expand file tree Collapse file tree 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