@@ -80,6 +80,113 @@ fn main_0() -> i32 {
8080 assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 100 ) ) ;
8181 assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 2 ) ) ;
8282 assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 3 ) ) ;
83+ let mut x: i32 = 7 ;
84+ {
85+ let __off = <RandomAccessIterator < i32 > >:: from (
86+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < i32 > ) ) . iter_add ( 1_isize ) ,
87+ )
88+ . vec_ptr ( )
89+ . get_offset ( ) ;
90+ ( * v2. borrow_mut ( ) ) . insert ( __off, x) ;
91+ <RandomAccessIterator < i32 > >:: from (
92+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < i32 > ) ) . iter_add ( 1_isize ) ,
93+ )
94+ } ;
95+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 4_usize ) ) ;
96+ assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 100 ) ) ;
97+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 7 ) ) ;
98+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 2 ) ) ;
99+ {
100+ let __off = <RandomAccessIterator < i32 > >:: from ( RandomAccessIterator :: Vec (
101+ ( v2. as_pointer ( ) as Ptr < i32 > ) . to_end ( ) ,
102+ ) )
103+ . vec_ptr ( )
104+ . get_offset ( ) ;
105+ ( * v2. borrow_mut ( ) ) . splice ( __off..__off, std:: iter:: repeat_n ( 9 , 2_usize ) ) ;
106+ <RandomAccessIterator < i32 > >:: from ( RandomAccessIterator :: Vec (
107+ ( v2. as_pointer ( ) as Ptr < i32 > ) . to_end ( ) ,
108+ ) )
109+ } ;
110+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 6_usize ) ) ;
111+ assert ! ( ( { ( * v2. borrow( ) ) [ 4_usize ] } == 9 ) ) ;
112+ assert ! ( ( { ( * v2. borrow( ) ) [ 5_usize ] } == 9 ) ) ;
113+ {
114+ let __off = <RandomAccessIterator < i32 > >:: from (
115+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < i32 > ) ) . iter_add ( 2_isize ) ,
116+ )
117+ . vec_ptr ( )
118+ . get_offset ( ) ;
119+ ( * v2. borrow_mut ( ) ) . splice ( __off..__off, vec ! [ 11 , 12 , 13 ] ) ;
120+ <RandomAccessIterator < i32 > >:: from (
121+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < i32 > ) ) . iter_add ( 2_isize ) ,
122+ )
123+ } ;
124+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 9_usize ) ) ;
125+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 7 ) ) ;
126+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 11 ) ) ;
127+ assert ! ( ( { ( * v2. borrow( ) ) [ 3_usize ] } == 12 ) ) ;
128+ assert ! ( ( { ( * v2. borrow( ) ) [ 4_usize ] } == 13 ) ) ;
129+ assert ! ( ( { ( * v2. borrow( ) ) [ 5_usize ] } == 2 ) ) ;
130+ assert ! ( ( { ( * v2. borrow( ) ) [ 8_usize ] } == 9 ) ) ;
131+ let src: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( vec ! [ 21 , 22 ] ) ) ;
132+ {
133+ let start_idx = <RandomAccessIterator < i32 > >:: from ( RandomAccessIterator :: Vec (
134+ ( v2. as_pointer ( ) as Ptr < i32 > ) ,
135+ ) )
136+ . vec_ptr ( )
137+ . get_offset ( ) ;
138+ let mut temp_vec: Vec < i32 > = Vec :: new ( ) ;
139+ let mut __it = RandomAccessIterator :: Vec ( ( src. as_pointer ( ) as Ptr < i32 > ) ) ;
140+ while __it != RandomAccessIterator :: Vec ( ( src. as_pointer ( ) as Ptr < i32 > ) . to_end ( ) ) {
141+ temp_vec. push ( __it. iter_deref ( ) . read ( ) ) ;
142+ __it. iter_inc ( ) ;
143+ }
144+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |v : & mut Vec < i32 > | {
145+ v. splice ( start_idx..start_idx, temp_vec) ;
146+ } ) ;
147+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) + start_idx)
148+ } ;
149+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 11_usize ) ) ;
150+ assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 21 ) ) ;
151+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 22 ) ) ;
152+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 100 ) ) ;
153+ {
154+ let idx = <RandomAccessIterator < i32 > >:: from ( RandomAccessIterator :: Vec (
155+ ( v2. as_pointer ( ) as Ptr < i32 > ) ,
156+ ) )
157+ . vec_ptr ( )
158+ . get_offset ( ) ;
159+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( idx) ) ;
160+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) )
161+ } ;
162+ {
163+ let idx = <RandomAccessIterator < i32 > >:: from ( RandomAccessIterator :: Vec (
164+ ( v2. as_pointer ( ) as Ptr < i32 > ) ,
165+ ) )
166+ . vec_ptr ( )
167+ . get_offset ( ) ;
168+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( idx) ) ;
169+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) )
170+ } ;
171+ let mut i: i32 = 0 ;
172+ ' loop_: while ( i < 4 ) {
173+ {
174+ let idx = <RandomAccessIterator < i32 > >:: from (
175+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < i32 > ) ) . iter_add ( 1_isize ) ,
176+ )
177+ . vec_ptr ( )
178+ . get_offset ( ) ;
179+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( idx) ) ;
180+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) )
181+ } ;
182+ i. prefix_inc ( ) ;
183+ }
184+ ( * v2. borrow_mut ( ) ) . pop ( ) ;
185+ ( * v2. borrow_mut ( ) ) . pop ( ) ;
186+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 3_usize ) ) ;
187+ assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 100 ) ) ;
188+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 2 ) ) ;
189+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 3 ) ) ;
83190 let mut s2: usize = ( * v2. borrow ( ) ) . len ( ) ;
84191 let v3: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( vec ! [ 1 ; 100_usize as usize ] ) ) ;
85192 assert ! ( ( ( * v3. borrow( ) ) . len( ) == 100_usize ) ) ;
0 commit comments