@@ -52,7 +52,26 @@ pub fn sum_twice_4(a: Ptr<Box<[i32]>>) -> i32 {
5252 return ( ( { sum_2 ( ( ( a) . clone ( ) as Ptr < Box < [ i32 ] > > ) ) } )
5353 + ( { sum_2 ( ( ( a) . clone ( ) as Ptr < Box < [ i32 ] > > ) ) } ) ) ;
5454}
55- pub fn fill_and_sum_5 ( a : Ptr < Box < [ i32 ] > > , v : i32 , out : Ptr < i32 > ) {
55+ pub fn sum_ptr_5 ( p : Ptr < i32 > ) -> i32 {
56+ let p: Value < Ptr < i32 > > = Rc :: new ( RefCell :: new ( p) ) ;
57+ return ( ( ( ( * p. borrow ( ) ) . offset ( ( 0 ) as isize ) . read ( ) )
58+ + ( ( * p. borrow ( ) ) . offset ( ( 1 ) as isize ) . read ( ) ) )
59+ + ( ( * p. borrow ( ) ) . offset ( ( 2 ) as isize ) . read ( ) ) ) ;
60+ }
61+ pub fn sum_decayed_6 ( a : Ptr < Box < [ i32 ] > > ) -> i32 {
62+ return ( { sum_ptr_5 ( ( a. to_strong ( ) . as_pointer ( ) as Ptr < i32 > ) ) } ) ;
63+ }
64+ pub fn bump_ptr_7 ( p : Ptr < i32 > ) {
65+ let p: Value < Ptr < i32 > > = Rc :: new ( RefCell :: new ( p) ) ;
66+ {
67+ let _ptr = ( * p. borrow ( ) ) . offset ( ( 0 ) as isize ) ;
68+ _ptr. write ( _ptr. read ( ) + 1 )
69+ } ;
70+ }
71+ pub fn bump_decayed_8 ( a : Ptr < Box < [ i32 ] > > ) {
72+ ( { bump_ptr_7 ( ( a. to_strong ( ) . as_pointer ( ) as Ptr < i32 > ) ) } ) ;
73+ }
74+ pub fn fill_and_sum_9 ( a : Ptr < Box < [ i32 ] > > , v : i32 , out : Ptr < i32 > ) {
5675 let v: Value < i32 > = Rc :: new ( RefCell :: new ( v) ) ;
5776 ( {
5877 let _a: Ptr < Box < [ i32 ] > > = ( ( a) . clone ( ) as Ptr < Box < [ i32 ] > > ) ;
@@ -62,7 +81,7 @@ pub fn fill_and_sum_5(a: Ptr<Box<[i32]>>, v: i32, out: Ptr<i32>) {
6281 let __rhs = ( { sum_twice_4 ( ( ( a) . clone ( ) as Ptr < Box < [ i32 ] > > ) ) } ) ;
6382 out. write ( __rhs) ;
6483}
65- pub fn pick_6 ( s : Ptr < Box < [ u8 ] > > ) -> Ptr < Box < [ u8 ] > > {
84+ pub fn pick_10 ( s : Ptr < Box < [ u8 ] > > ) -> Ptr < Box < [ u8 ] > > {
6685 return ( ( s) . clone ( ) as Ptr < Box < [ u8 ] > > ) ;
6786}
6887#[ derive( Default ) ]
@@ -95,7 +114,7 @@ impl ByteRepr for Point {
95114 }
96115 }
97116}
98- pub fn sum_points_7 ( p : Ptr < Box < [ Point ] > > ) -> i32 {
117+ pub fn sum_points_11 ( p : Ptr < Box < [ Point ] > > ) -> i32 {
99118 return {
100119 let _lhs = {
101120 let _lhs = {
@@ -127,7 +146,7 @@ pub fn sum_points_7(p: Ptr<Box<[Point]>>) -> i32 {
127146 . borrow ( ) )
128147 } ;
129148}
130- pub fn shift_points_8 ( p : Ptr < Box < [ Point ] > > , d : i32 ) {
149+ pub fn shift_points_12 ( p : Ptr < Box < [ Point ] > > , d : i32 ) {
131150 let d: Value < i32 > = Rc :: new ( RefCell :: new ( d) ) ;
132151 ( * ( * ( p. to_strong ( ) . as_pointer ( ) as Ptr < Point > )
133152 . offset ( ( 0 ) as isize )
@@ -142,7 +161,7 @@ pub fn shift_points_8(p: Ptr<Box<[Point]>>, d: i32) {
142161 . y
143162 . borrow_mut ( ) ) += ( * d. borrow ( ) ) ;
144163}
145- pub fn total_len_9 ( names : Ptr < Box < [ Ptr < u8 > ] > > ) -> i32 {
164+ pub fn total_len_13 ( names : Ptr < Box < [ Ptr < u8 > ] > > ) -> i32 {
146165 return ( ( {
147166 len5_1 (
148167 ( ( names. to_strong ( ) . as_pointer ( ) as Ptr < Ptr < u8 > > )
@@ -173,21 +192,21 @@ fn main_0() -> i32 {
173192 assert ! ( ( ( { sum_2( ( arr. as_pointer( ) as Ptr <Box <[ i32 ] >>) , ) } ) == 21 ) ) ;
174193 assert ! ( ( ( { sum_twice_4( ( arr. as_pointer( ) as Ptr <Box <[ i32 ] >>) , ) } ) == 42 ) ) ;
175194 let out: Value < i32 > = Rc :: new ( RefCell :: new ( 0 ) ) ;
176- ( { fill_and_sum_5 ( ( arr. as_pointer ( ) as Ptr < Box < [ i32 ] > > ) , 2 , out. as_pointer ( ) ) } ) ;
195+ ( { fill_and_sum_9 ( ( arr. as_pointer ( ) as Ptr < Box < [ i32 ] > > ) , 2 , out. as_pointer ( ) ) } ) ;
177196 assert ! ( ( ( * out. borrow( ) ) == 12 ) ) ;
178197 assert ! ( ( ( * arr. borrow( ) ) [ ( 0 ) as usize ] == 2 ) ) ;
179198 let lit: Ptr < Box < [ u8 ] > > = Ptr :: < Box < [ u8 ] > > :: from_string_literal_array ( b"beta" ) ;
180199 assert ! ( ( ( { len_0( ( ( lit) . clone( ) as Ptr <Box <[ u8 ] >>) , ) } ) == 4 ) ) ;
181200 assert ! (
182- ( ( ( ( ( { pick_6 ( Ptr :: <Box <[ u8 ] >>:: from_string_literal_array( b"beta" ) , ) } )
201+ ( ( ( ( ( { pick_10 ( Ptr :: <Box <[ u8 ] >>:: from_string_literal_array( b"beta" ) , ) } )
183202 . to_strong( )
184203 . as_pointer( ) as Ptr :: <u8 >)
185204 . offset( ( 0 ) as isize )
186205 . read( ) ) as i32 )
187206 == ( ( 'b' as u8 ) as i32 ) )
188207 ) ;
189208 assert ! (
190- ( ( { len_0( ( ( { pick_6 ( ( buf. as_pointer( ) as Ptr <Box <[ u8 ] >>) , ) } ) as Ptr <Box <[ u8 ] >>) , ) } )
209+ ( ( { len_0( ( ( { pick_10 ( ( buf. as_pointer( ) as Ptr <Box <[ u8 ] >>) , ) } ) as Ptr <Box <[ u8 ] >>) , ) } )
191210 == 4 )
192211 ) ;
193212 let pts: Value < Box < [ Point ] > > = Rc :: new ( RefCell :: new ( Box :: new ( [
@@ -200,16 +219,22 @@ fn main_0() -> i32 {
200219 y : Rc :: new ( RefCell :: new ( 4 ) ) ,
201220 } ,
202221 ] ) ) ) ;
203- assert ! ( ( ( { sum_points_7 ( ( pts. as_pointer( ) as Ptr <Box <[ Point ] >>) , ) } ) == 10 ) ) ;
204- ( { shift_points_8 ( ( pts. as_pointer ( ) as Ptr < Box < [ Point ] > > ) , 10 ) } ) ;
222+ assert ! ( ( ( { sum_points_11 ( ( pts. as_pointer( ) as Ptr <Box <[ Point ] >>) , ) } ) == 10 ) ) ;
223+ ( { shift_points_12 ( ( pts. as_pointer ( ) as Ptr < Box < [ Point ] > > ) , 10 ) } ) ;
205224 assert ! ( ( ( * ( * pts. borrow( ) ) [ ( 0 ) as usize ] . x. borrow( ) ) == 11 ) ) ;
206225 assert ! ( ( ( * ( * pts. borrow( ) ) [ ( 1 ) as usize ] . y. borrow( ) ) == 14 ) ) ;
207- assert ! ( ( ( { sum_points_7( ( pts. as_pointer( ) as Ptr <Box <[ Point ] >>) , ) } ) == 30 ) ) ;
226+ assert ! ( ( ( { sum_points_11( ( pts. as_pointer( ) as Ptr <Box <[ Point ] >>) , ) } ) == 30 ) ) ;
227+ assert ! (
228+ ( ( { sum_decayed_6( ( arr. as_pointer( ) as Ptr <Box <[ i32 ] >>) , ) } )
229+ == ( { sum_2( ( arr. as_pointer( ) as Ptr <Box <[ i32 ] >>) , ) } ) )
230+ ) ;
231+ ( { bump_decayed_8 ( ( arr. as_pointer ( ) as Ptr < Box < [ i32 ] > > ) ) } ) ;
232+ assert ! ( ( ( * arr. borrow( ) ) [ ( 0 ) as usize ] == 3 ) ) ;
208233 let names: Value < Box < [ Ptr < u8 > ] > > = Rc :: new ( RefCell :: new ( Box :: new ( [
209234 Ptr :: < u8 > :: from_string_literal ( b"ab" ) ,
210235 Ptr :: < u8 > :: from_string_literal ( b"cde" ) ,
211236 ] ) ) ) ;
212- assert ! ( ( ( { total_len_9 ( ( names. as_pointer( ) as Ptr <Box <[ Ptr :: <u8 >] >>) , ) } ) == 5 ) ) ;
237+ assert ! ( ( ( { total_len_13 ( ( names. as_pointer( ) as Ptr <Box <[ Ptr :: <u8 >] >>) , ) } ) == 5 ) ) ;
213238 return 0 ;
214239}
215240pub fn __cpp2rust_init_globals ( ) { }
0 commit comments