@@ -16,7 +16,7 @@ fn main_0() -> i32 {
1616 let mut __v = Vec :: new ( ) ;
1717 let mut __it = ( src. as_pointer ( ) as Ptr < u32 > ) ;
1818 while __it != ( src. as_pointer ( ) as Ptr < u32 > ) . offset ( ( 3 ) as isize ) {
19- __v. push ( u32:: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
19+ __v. push ( < u32 > :: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
2020 __it. iter_inc ( ) ;
2121 }
2222 __v
@@ -27,7 +27,7 @@ fn main_0() -> i32 {
2727 let mut __v = Vec :: new ( ) ;
2828 let mut __it = ( src. as_pointer ( ) as Ptr < u32 > ) ;
2929 while __it != ( src. as_pointer ( ) as Ptr < u32 > ) . offset ( ( 3 ) as isize ) {
30- __v. push ( u64:: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
30+ __v. push ( < u64 > :: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
3131 __it. iter_inc ( ) ;
3232 }
3333 __v
@@ -38,7 +38,7 @@ fn main_0() -> i32 {
3838 let mut __v = Vec :: new ( ) ;
3939 let mut __it = ( src. as_pointer ( ) as Ptr < u32 > ) ;
4040 while __it != ( src. as_pointer ( ) as Ptr < u32 > ) . offset ( ( 3 ) as isize ) {
41- __v. push ( i32:: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
41+ __v. push ( < i32 > :: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
4242 __it. iter_inc ( ) ;
4343 }
4444 __v
@@ -50,7 +50,7 @@ fn main_0() -> i32 {
5050 let mut __v = Vec :: new ( ) ;
5151 let mut __it = ( src1. as_pointer ( ) as Ptr < u32 > ) ;
5252 while __it != ( src1. as_pointer ( ) as Ptr < u32 > ) . to_end ( ) {
53- __v. push ( u32:: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
53+ __v. push ( < u32 > :: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
5454 __it. iter_inc ( ) ;
5555 }
5656 __v
@@ -65,13 +65,111 @@ fn main_0() -> i32 {
6565 let mut __v = Vec :: new ( ) ;
6666 let mut __it = ( start) . clone ( ) ;
6767 while __it != start. offset ( ( len) as isize ) {
68- __v. push ( u8 :: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
68+ __v. push ( < u8 > :: try_from ( __it. iter_deref ( ) . read ( ) ) . ok ( ) . unwrap ( ) ) ;
6969 __it. iter_inc ( ) ;
7070 }
7171 __v
7272 } ;
7373 assert ! ( ( v5. len( ) == 5_usize ) ) ;
7474 assert ! ( ( ( v5[ 0_usize ] as i32 ) == 10 ) && ( ( v5[ 4_usize ] as i32 ) == 50 ) ) ;
75+ let m: Value < Map < i32 , ( Value < i32 > , Value < i32 > ) > > = Rc :: new ( RefCell :: new ( Map :: new ( ) ) ) ;
76+ ( m. as_pointer ( ) as Ptr < Map < i32 , ( Value < i32 > , Value < i32 > ) > > )
77+ . with_mut ( |__m : & mut Map < i32 , ( Value < i32 > , Value < i32 > ) > | {
78+ __m. get_or_insert_with ( 1 . clone ( ) , || {
79+ (
80+ Rc :: new ( RefCell :: new ( 1 ) ) ,
81+ Rc :: new ( RefCell :: new ( <i32 >:: default ( ) ) ) ,
82+ )
83+ } )
84+ . borrow ( )
85+ . 1
86+ . as_pointer ( )
87+ } )
88+ . write ( 10 ) ;
89+ ( m. as_pointer ( ) as Ptr < Map < i32 , ( Value < i32 > , Value < i32 > ) > > )
90+ . with_mut ( |__m : & mut Map < i32 , ( Value < i32 > , Value < i32 > ) > | {
91+ __m. get_or_insert_with ( 2 . clone ( ) , || {
92+ (
93+ Rc :: new ( RefCell :: new ( 2 ) ) ,
94+ Rc :: new ( RefCell :: new ( <i32 >:: default ( ) ) ) ,
95+ )
96+ } )
97+ . borrow ( )
98+ . 1
99+ . as_pointer ( )
100+ } )
101+ . write ( 20 ) ;
102+ ( m. as_pointer ( ) as Ptr < Map < i32 , ( Value < i32 > , Value < i32 > ) > > )
103+ . with_mut ( |__m : & mut Map < i32 , ( Value < i32 > , Value < i32 > ) > | {
104+ __m. get_or_insert_with ( 3 . clone ( ) , || {
105+ (
106+ Rc :: new ( RefCell :: new ( 3 ) ) ,
107+ Rc :: new ( RefCell :: new ( <i32 >:: default ( ) ) ) ,
108+ )
109+ } )
110+ . borrow ( )
111+ . 1
112+ . as_pointer ( )
113+ } )
114+ . write ( 30 ) ;
115+ let v6: Value < Vec < ( Value < i32 > , Value < i32 > ) > > = Rc :: new ( RefCell :: new ( {
116+ let mut __v = Vec :: new ( ) ;
117+ let mut __it = ( m. as_pointer ( ) as Ptr < Map < i32 , ( Value < i32 > , Value < i32 > ) > > )
118+ . with ( |__m : & Map < i32 , ( Value < i32 > , Value < i32 > ) > | __m. begin ( ) ) ;
119+ while __it
120+ != ( m. as_pointer ( ) as Ptr < Map < i32 , ( Value < i32 > , Value < i32 > ) > > )
121+ . with ( |__m : & Map < i32 , ( Value < i32 > , Value < i32 > ) > | __m. end ( ) )
122+ {
123+ __v. push (
124+ <( Value < i32 > , Value < i32 > ) >:: try_from ( __it. iter_deref ( ) . read ( ) )
125+ . ok ( )
126+ . unwrap ( ) ,
127+ ) ;
128+ __it. iter_inc ( ) ;
129+ }
130+ __v
131+ } ) ) ;
132+ assert ! ( ( ( * v6. borrow( ) ) . len( ) == 3_usize ) ) ;
133+ assert ! (
134+ ( ( * ( * v6. borrow( ) ) [ 0_usize ] . 0 . borrow( ) ) == 1 )
135+ && ( ( * ( * v6. borrow( ) ) [ 0_usize ] . 1 . borrow( ) ) == 10 )
136+ ) ;
137+ assert ! (
138+ ( ( * ( * v6. borrow( ) ) [ 2_usize ] . 0 . borrow( ) ) == 3 )
139+ && ( ( * ( * v6. borrow( ) ) [ 2_usize ] . 1 . borrow( ) ) == 30 )
140+ ) ;
141+ {
142+ let start_idx = <RandomAccessIterator < ( Value < i32 > , Value < i32 > ) > >:: from (
143+ RandomAccessIterator :: Vec ( ( v6. as_pointer ( ) as Ptr < ( Value < i32 > , Value < i32 > ) > ) )
144+ . iter_add ( 1_isize ) ,
145+ )
146+ . vec_ptr ( )
147+ . get_offset ( ) ;
148+ let mut temp_vec: Vec < ( Value < i32 > , Value < i32 > ) > = Vec :: new ( ) ;
149+ let mut __it = ( m. as_pointer ( ) as Ptr < Map < i32 , ( Value < i32 > , Value < i32 > ) > > )
150+ . with ( |__m : & Map < i32 , ( Value < i32 > , Value < i32 > ) > | __m. begin ( ) ) ;
151+ while __it
152+ != ( m. as_pointer ( ) as Ptr < Map < i32 , ( Value < i32 > , Value < i32 > ) > > )
153+ . with ( |__m : & Map < i32 , ( Value < i32 > , Value < i32 > ) > | __m. end ( ) )
154+ {
155+ temp_vec. push ( __it. iter_deref ( ) . read ( ) ) ;
156+ __it. iter_inc ( ) ;
157+ }
158+ ( v6. as_pointer ( ) as Ptr < Vec < ( Value < i32 > , Value < i32 > ) > > ) . with_mut (
159+ |v : & mut Vec < ( Value < i32 > , Value < i32 > ) > | {
160+ v. splice ( start_idx..start_idx, temp_vec) ;
161+ } ,
162+ ) ;
163+ RandomAccessIterator :: Vec (
164+ ( v6. as_pointer ( ) as Ptr < Vec < ( Value < i32 > , Value < i32 > ) > > ) . decay ( ) + start_idx,
165+ )
166+ } ;
167+ assert ! ( ( ( * v6. borrow( ) ) . len( ) == 6_usize ) ) ;
168+ assert ! (
169+ ( ( ( * ( * v6. borrow( ) ) [ 1_usize ] . 0 . borrow( ) ) == 1 )
170+ && ( ( * ( * v6. borrow( ) ) [ 3_usize ] . 0 . borrow( ) ) == 3 ) )
171+ && ( ( * ( * v6. borrow( ) ) [ 4_usize ] . 0 . borrow( ) ) == 2 )
172+ ) ;
75173 return 0 ;
76174}
77175pub fn __cpp2rust_init_globals ( ) { }
0 commit comments