@@ -55,19 +55,17 @@ fn main_0() -> i32 {
5555 } ;
5656 assert ! ( ( ( * v2. borrow( ) ) . len( ) == 3_usize ) ) ;
5757 {
58- let idx = <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) )
59- . vec_ptr ( )
60- . get_offset ( ) ;
61- ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( idx) ) ;
62- RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) )
58+ let __off =
59+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) ) . index ( ) ;
60+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( __off) ) ;
61+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) + __off)
6362 } ;
6463 assert ! ( ( ( * v2. borrow( ) ) . len( ) == 2_usize ) ) ;
6564 assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 2 ) ) ;
6665 assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 3 ) ) ;
6766 {
68- let __off = <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) )
69- . vec_ptr ( )
70- . get_offset ( ) ;
67+ let __off =
68+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) ) . index ( ) ;
7169 ( * v2. borrow_mut ( ) ) . insert ( __off, 100 ) ;
7270 <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) )
7371 } ;
@@ -76,6 +74,91 @@ fn main_0() -> i32 {
7674 assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 100 ) ) ;
7775 assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 2 ) ) ;
7876 assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 3 ) ) ;
77+ let mut x: i32 = 7 ;
78+ {
79+ let __off = <RandomAccessIterator < i32 > >:: from (
80+ ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) . iter_add ( 1_isize ) ,
81+ )
82+ . index ( ) ;
83+ ( * v2. borrow_mut ( ) ) . insert ( __off, x) ;
84+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) . iter_add ( 1_isize ) )
85+ } ;
86+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 4_usize ) ) ;
87+ assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 100 ) ) ;
88+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 7 ) ) ;
89+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 2 ) ) ;
90+ {
91+ let __off = <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . end ( ) ) . index ( ) ;
92+ ( * v2. borrow_mut ( ) ) . splice ( __off..__off, std:: iter:: repeat_n ( 9 , 2_usize ) ) ;
93+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . end ( ) )
94+ } ;
95+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 6_usize ) ) ;
96+ assert ! ( ( { ( * v2. borrow( ) ) [ 4_usize ] } == 9 ) ) ;
97+ assert ! ( ( { ( * v2. borrow( ) ) [ 5_usize ] } == 9 ) ) ;
98+ {
99+ let __off = <RandomAccessIterator < i32 > >:: from (
100+ ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) . iter_add ( 2_isize ) ,
101+ )
102+ . index ( ) ;
103+ ( * v2. borrow_mut ( ) ) . splice ( __off..__off, Vec :: from ( [ 11 , 12 , 13 ] ) ) ;
104+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) . iter_add ( 2_isize ) )
105+ } ;
106+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 9_usize ) ) ;
107+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 7 ) ) ;
108+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 11 ) ) ;
109+ assert ! ( ( { ( * v2. borrow( ) ) [ 3_usize ] } == 12 ) ) ;
110+ assert ! ( ( { ( * v2. borrow( ) ) [ 4_usize ] } == 13 ) ) ;
111+ assert ! ( ( { ( * v2. borrow( ) ) [ 5_usize ] } == 2 ) ) ;
112+ assert ! ( ( { ( * v2. borrow( ) ) [ 8_usize ] } == 9 ) ) ;
113+ let src: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( Vec :: from ( [ 21 , 22 ] ) ) ) ;
114+ {
115+ let start_idx =
116+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) ) . index ( ) ;
117+ let mut temp_vec: Vec < i32 > = Vec :: new ( ) ;
118+ let mut __it = ( src. as_pointer ( ) as Ptr < i32 > ) . begin ( ) ;
119+ while __it != ( src. as_pointer ( ) as Ptr < i32 > ) . end ( ) {
120+ temp_vec. push ( __it. iter_deref ( ) . read ( ) ) ;
121+ __it. iter_inc ( ) ;
122+ }
123+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |v : & mut Vec < i32 > | {
124+ v. splice ( start_idx..start_idx, temp_vec) ;
125+ } ) ;
126+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) + start_idx)
127+ } ;
128+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 11_usize ) ) ;
129+ assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 21 ) ) ;
130+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 22 ) ) ;
131+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 100 ) ) ;
132+ {
133+ let __off =
134+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) ) . index ( ) ;
135+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( __off) ) ;
136+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) + __off)
137+ } ;
138+ {
139+ let __off =
140+ <RandomAccessIterator < i32 > >:: from ( ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) ) . index ( ) ;
141+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( __off) ) ;
142+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) + __off)
143+ } ;
144+ let mut i: i32 = 0 ;
145+ ' loop_: while ( i < 4 ) {
146+ {
147+ let __off = <RandomAccessIterator < i32 > >:: from (
148+ ( v2. as_pointer ( ) as Ptr < i32 > ) . begin ( ) . iter_add ( 1_isize ) ,
149+ )
150+ . index ( ) ;
151+ ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . with_mut ( |__v : & mut Vec < i32 > | __v. remove ( __off) ) ;
152+ RandomAccessIterator :: Vec ( ( v2. as_pointer ( ) as Ptr < Vec < i32 > > ) . decay ( ) + __off)
153+ } ;
154+ i. prefix_inc ( ) ;
155+ }
156+ ( * v2. borrow_mut ( ) ) . pop ( ) ;
157+ ( * v2. borrow_mut ( ) ) . pop ( ) ;
158+ assert ! ( ( ( * v2. borrow( ) ) . len( ) == 3_usize ) ) ;
159+ assert ! ( ( { ( * v2. borrow( ) ) [ 0_usize ] } == 100 ) ) ;
160+ assert ! ( ( { ( * v2. borrow( ) ) [ 1_usize ] } == 2 ) ) ;
161+ assert ! ( ( { ( * v2. borrow( ) ) [ 2_usize ] } == 3 ) ) ;
79162 let mut s2: usize = ( * v2. borrow ( ) ) . len ( ) ;
80163 let v3: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( vec ! [ 1 ; 100_usize as usize ] ) ) ;
81164 assert ! ( ( ( * v3. borrow( ) ) . len( ) == 100_usize ) ) ;
0 commit comments