@@ -26,18 +26,17 @@ fn main_0() -> i32 {
2626 } ;
2727 let v_begin: Value < Ptr < i32 > > = Rc :: new ( RefCell :: new ( ( v. as_pointer ( ) as Ptr < i32 > ) ) ) ;
2828 let v_end: Value < Ptr < i32 > > = Rc :: new ( RefCell :: new ( ( v. as_pointer ( ) as Ptr < i32 > ) . to_end ( ) ) ) ;
29- let it: Value < Ptr < i32 > > = Rc :: new ( RefCell :: new (
29+ let it: Value < Ptr < i32 > > = Rc :: new ( RefCell :: new ( {
30+ let count = ( ( * v_end. borrow ( ) ) . get_offset ( ) - ( * v_begin. borrow ( ) ) . get_offset ( ) ) as usize ;
3031 ( * v_begin. borrow ( ) ) . offset (
3132 ( * v_begin. borrow ( ) )
3233 . clone ( )
3334 . into_iter ( )
34- . enumerate ( )
35- . position ( |( index_0, value_0) | {
36- index_0 < ( * v_end. borrow ( ) ) . get_offset ( ) as usize && value_0. read ( ) == 2
37- } )
38- . unwrap_or ( ( * v_end. borrow ( ) ) . get_offset ( ) as usize ) as isize ,
39- ) ,
40- ) ) ;
35+ . take ( count)
36+ . position ( |value_0| value_0. read ( ) == 2 )
37+ . unwrap_or ( count) as isize ,
38+ )
39+ } ) ) ;
4140 let mut v_result_true: bool = ( * it. borrow ( ) ) != ( v. as_pointer ( ) as Ptr < i32 > ) . to_end ( ) ;
4241 let m: Value < BTreeMap < i32 , Value < f64 > > > = Rc :: new ( RefCell :: new ( BTreeMap :: new ( ) ) ) ;
4342 ( m. as_pointer ( ) as Ptr < BTreeMap < i32 , Value < f64 > > > )
@@ -70,18 +69,73 @@ fn main_0() -> i32 {
7069 let mut m_result_true: bool = ( * m_begin. borrow ( ) ) != ( * m_end. borrow ( ) ) ;
7170 assert ! (
7271 ( ( v_result_true) && ( m_result_true) )
73- && ( ( v. as_pointer( ) as Ptr <i32 >) . offset(
74- ( v. as_pointer( ) as Ptr <i32 >)
72+ && ( {
73+ let count = ( ( v. as_pointer( ) as Ptr <i32 >) . get_offset( )
74+ - ( v. as_pointer( ) as Ptr <i32 >) . get_offset( ) )
75+ as usize ;
76+ ( v. as_pointer( ) as Ptr <i32 >) . offset(
77+ ( v. as_pointer( ) as Ptr <i32 >)
78+ . clone( )
79+ . into_iter( )
80+ . take( count)
81+ . position( |value_0| value_0. read( ) == 2 )
82+ . unwrap_or( count) as isize ,
83+ )
84+ } == ( v. as_pointer( ) as Ptr <i32 >) )
85+ ) ;
86+ let w: Value < Vec < i32 > > = Rc :: new ( RefCell :: new ( vec ! [ 1 , 2 , 3 , 4 , 5 ] ) ) ;
87+ assert ! (
88+ {
89+ let count = ( ( w. as_pointer( ) as Ptr <i32 >) . to_end( ) . get_offset( )
90+ - ( w. as_pointer( ) as Ptr <i32 >)
91+ . offset( 2_i64 as isize )
92+ . get_offset( ) ) as usize ;
93+ ( w. as_pointer( ) as Ptr <i32 >) . offset( 2_i64 as isize ) . offset(
94+ ( w. as_pointer( ) as Ptr <i32 >)
95+ . offset( 2_i64 as isize )
96+ . clone( )
97+ . into_iter( )
98+ . take( count)
99+ . position( |value_0| value_0. read( ) == 4 )
100+ . unwrap_or( count) as isize ,
101+ )
102+ } == ( w. as_pointer( ) as Ptr <i32 >) . offset( 3_i64 as isize )
103+ ) ;
104+ assert ! (
105+ {
106+ let count = ( ( w. as_pointer( ) as Ptr <i32 >) . to_end( ) . get_offset( )
107+ - ( w. as_pointer( ) as Ptr <i32 >)
108+ . offset( 2_i64 as isize )
109+ . get_offset( ) ) as usize ;
110+ ( w. as_pointer( ) as Ptr <i32 >) . offset( 2_i64 as isize ) . offset(
111+ ( w. as_pointer( ) as Ptr <i32 >)
112+ . offset( 2_i64 as isize )
113+ . clone( )
114+ . into_iter( )
115+ . take( count)
116+ . position( |value_0| value_0. read( ) == 1 )
117+ . unwrap_or( count) as isize ,
118+ )
119+ } == ( w. as_pointer( ) as Ptr <i32 >) . to_end( )
120+ ) ;
121+ assert ! (
122+ {
123+ let count = ( ( w. as_pointer( ) as Ptr <i32 >)
124+ . offset( 4_i64 as isize )
125+ . get_offset( )
126+ - ( w. as_pointer( ) as Ptr <i32 >)
127+ . offset( 2_i64 as isize )
128+ . get_offset( ) ) as usize ;
129+ ( w. as_pointer( ) as Ptr <i32 >) . offset( 2_i64 as isize ) . offset(
130+ ( w. as_pointer( ) as Ptr <i32 >)
131+ . offset( 2_i64 as isize )
75132 . clone( )
76133 . into_iter( )
77- . enumerate( )
78- . position( |( index_0, value_0) | {
79- index_0 < ( v. as_pointer( ) as Ptr <i32 >) . get_offset( ) as usize
80- && value_0. read( ) == 2
81- } )
82- . unwrap_or( ( v. as_pointer( ) as Ptr <i32 >) . get_offset( ) as usize )
83- as isize ,
84- ) == ( v. as_pointer( ) as Ptr <i32 >) )
134+ . take( count)
135+ . position( |value_0| value_0. read( ) == 5 )
136+ . unwrap_or( count) as isize ,
137+ )
138+ } == ( w. as_pointer( ) as Ptr <i32 >) . offset( 4_i64 as isize )
85139 ) ;
86140 return 0 ;
87141}
0 commit comments