1 #include "array._sep.h"
2 void array___AbstractArray___enlarge(val_t self
, val_t param0
) {
3 struct trace_t trace
= {NULL
, "array::AbstractArray::enlarge (bin/../lib/standard//array.nit:23,2--22)"};
4 trace
.prev
= tracehead
; tracehead
= &trace
;
5 fprintf(stderr
, "Deferred method enlarge called (bin/../lib/standard//array.nit:23,2)\n");
7 tracehead
= trace
.prev
;
10 val_t
array___AbstractArray___length(val_t self
) {
11 struct trace_t trace
= {NULL
, "array::AbstractArray::length (bin/../lib/standard//array.nit:25,2--26:33)"};
12 trace
.prev
= tracehead
; tracehead
= &trace
;
13 tracehead
= trace
.prev
;
14 return ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/;
16 val_t
array___AbstractArray___is_empty(val_t self
) {
17 struct trace_t trace
= {NULL
, "array::AbstractArray::is_empty (bin/../lib/standard//array.nit:28,2--43)"};
19 trace
.prev
= tracehead
; tracehead
= &trace
;
20 variable0
= ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/;
21 variable0
= TAG_Bool((variable0
)==( TAG_Int(0)));
23 return_label0
: while(false);
24 tracehead
= trace
.prev
;
27 void array___AbstractArray___push(val_t self
, val_t param0
) {
28 struct trace_t trace
= {NULL
, "array::AbstractArray::push (bin/../lib/standard//array.nit:30,2--34)"};
30 trace
.prev
= tracehead
; tracehead
= &trace
;
32 ((array___AbstractArray___add_t
)CALL( self
,COLOR_abstract_collection___SimpleCollection___add
))( self
, variable0
/*item*/) /*AbstractArray::add*/;
33 tracehead
= trace
.prev
;
36 val_t
array___AbstractArray___pop(val_t self
) {
37 struct trace_t trace
= {NULL
, "array::AbstractArray::pop (bin/../lib/standard//array.nit:32,2--37:10)"};
40 trace
.prev
= tracehead
; tracehead
= &trace
;
41 variable0
= ((array___AbstractArray___is_empty_t
)CALL( self
,COLOR_abstract_collection___Collection___is_empty
))( self
) /*AbstractArray::is_empty*/;
42 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0
)))) { fprintf(stderr
, "Assert 'not_empty' failed: bin/../lib/standard//array.nit:34,3--32\n"); nit_exit(1);}
43 variable1
= ((abstract_collection___IndexedCollection___last_t
)CALL( self
,COLOR_abstract_collection___IndexedCollection___last
))( self
) /*AbstractArray::last*/;
44 variable0
= variable1
;
45 ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/)-UNTAG_Int( TAG_Int(1)));
46 variable0
= variable0
/*r*/;
48 return_label2
: while(false);
49 tracehead
= trace
.prev
;
52 val_t
array___AbstractArray___shift(val_t self
) {
53 struct trace_t trace
= {NULL
, "array::AbstractArray::shift (bin/../lib/standard//array.nit:40,2--51:10)"};
59 trace
.prev
= tracehead
; tracehead
= &trace
;
60 variable0
= ((array___AbstractArray___is_empty_t
)CALL( self
,COLOR_abstract_collection___Collection___is_empty
))( self
) /*AbstractArray::is_empty*/;
61 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0
)))) { fprintf(stderr
, "Assert 'not_empty' failed: bin/../lib/standard//array.nit:42,3--32\n"); nit_exit(1);}
62 variable1
= ((abstract_collection___IndexedCollection___first_t
)CALL( self
,COLOR_abstract_collection___Collection___first
))( self
) /*AbstractArray::first*/;
63 variable0
= variable1
;
64 variable1
= TAG_Int(1);
65 variable3
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
66 variable2
= variable3
;
67 while (true) { /*while*/
68 variable3
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int( variable2
/*l*/));
69 if (!UNTAG_Bool(variable3
)) break; /* while*/
70 variable3
= TAG_Int(UNTAG_Int( variable1
/*i*/)-UNTAG_Int( TAG_Int(1)));
71 variable4
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable1
/*i*/) /*AbstractArray::[]*/;
72 ((abstract_collection___Map_____braeq_t
)CALL( self
,COLOR_abstract_collection___Map_____braeq
))( self
, variable3
, variable4
) /*AbstractArray::[]=*/;
73 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
77 variable3
= TAG_Int(UNTAG_Int( variable2
/*l*/)-UNTAG_Int( TAG_Int(1)));
78 ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/ = variable3
;
79 variable0
= variable0
/*r*/;
81 return_label3
: while(false);
82 tracehead
= trace
.prev
;
85 void array___AbstractArray___unshift(val_t self
, val_t param0
) {
86 struct trace_t trace
= {NULL
, "array::AbstractArray::unshift (bin/../lib/standard//array.nit:54,2--61:16)"};
91 trace
.prev
= tracehead
; tracehead
= &trace
;
93 variable2
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
94 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1)));
95 variable1
= variable2
;
96 while (true) { /*while*/
97 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>UNTAG_Int( TAG_Int(0)));
98 if (!UNTAG_Bool(variable2
)) break; /* while*/
99 variable2
= TAG_Int(UNTAG_Int( variable1
/*i*/)+UNTAG_Int( TAG_Int(1)));
100 variable3
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable1
/*i*/) /*AbstractArray::[]*/;
101 ((abstract_collection___Map_____braeq_t
)CALL( self
,COLOR_abstract_collection___Map_____braeq
))( self
, variable2
, variable3
) /*AbstractArray::[]=*/;
102 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1))) /*i*/;
103 continue_6
: while(0);
106 ((abstract_collection___Map_____braeq_t
)CALL( self
,COLOR_abstract_collection___Map_____braeq
))( self
, TAG_Int(0), variable0
/*item*/) /*AbstractArray::[]=*/;
107 tracehead
= trace
.prev
;
110 void array___AbstractArray___insert(val_t self
, val_t param0
, val_t param1
) {
111 struct trace_t trace
= {NULL
, "array::AbstractArray::insert (bin/../lib/standard//array.nit:64,2--68:18)"};
116 trace
.prev
= tracehead
; tracehead
= &trace
;
119 variable2
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
120 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1)));
121 ((array___AbstractArray___enlarge_t
)CALL( self
,COLOR_array___AbstractArray___enlarge
))( self
, variable2
) /*AbstractArray::enlarge*/;
122 variable2
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
123 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( variable1
/*pos*/));
124 variable3
= TAG_Int(UNTAG_Int( variable1
/*pos*/)+UNTAG_Int( TAG_Int(1)));
125 ((array___AbstractArray___copy_to_t
)CALL( self
,COLOR_array___AbstractArray___copy_to
))( self
, variable1
/*pos*/, variable2
, self
, variable3
) /*AbstractArray::copy_to*/;
126 ((abstract_collection___Map_____braeq_t
)CALL( self
,COLOR_abstract_collection___Map_____braeq
))( self
, variable1
/*pos*/, variable0
/*item*/) /*AbstractArray::[]=*/;
127 tracehead
= trace
.prev
;
130 void array___AbstractArray___add(val_t self
, val_t param0
) {
131 struct trace_t trace
= {NULL
, "array::AbstractArray::add (bin/../lib/standard//array.nit:71,2--44)"};
134 trace
.prev
= tracehead
; tracehead
= &trace
;
136 variable1
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
137 ((abstract_collection___Map_____braeq_t
)CALL( self
,COLOR_abstract_collection___Map_____braeq
))( self
, variable1
, variable0
/*item*/) /*AbstractArray::[]=*/;
138 tracehead
= trace
.prev
;
141 void array___AbstractArray___clear(val_t self
) {
142 struct trace_t trace
= {NULL
, "array::AbstractArray::clear (bin/../lib/standard//array.nit:73,2--32)"};
143 trace
.prev
= tracehead
; tracehead
= &trace
;
144 ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/ = TAG_Int(0);
145 tracehead
= trace
.prev
;
148 val_t
array___AbstractArray___has(val_t self
, val_t param0
) {
149 struct trace_t trace
= {NULL
, "array::AbstractArray::has (bin/../lib/standard//array.nit:75,2--83:14)"};
154 trace
.prev
= tracehead
; tracehead
= &trace
;
156 variable1
= TAG_Int(0);
157 variable3
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
158 variable2
= variable3
;
159 while (true) { /*while*/
160 variable3
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int( variable2
/*l*/));
161 if (!UNTAG_Bool(variable3
)) break; /* while*/
162 variable3
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable1
/*i*/) /*AbstractArray::[]*/;
163 variable3
= TAG_Bool((variable3
== variable0
/*item*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable0
/*item*/) /*Object::==*/)))));
164 if (UNTAG_Bool(variable3
)) { /*if*/
165 variable1
= TAG_Bool(true);
168 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
169 continue_11
: while(0);
172 variable1
= TAG_Bool(false);
174 return_label10
: while(false);
175 tracehead
= trace
.prev
;
178 val_t
array___AbstractArray___has_only(val_t self
, val_t param0
) {
179 struct trace_t trace
= {NULL
, "array::AbstractArray::has_only (bin/../lib/standard//array.nit:86,2--94:13)"};
184 trace
.prev
= tracehead
; tracehead
= &trace
;
186 variable1
= TAG_Int(0);
187 variable3
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
188 variable2
= variable3
;
189 while (true) { /*while*/
190 variable3
= TAG_Bool(UNTAG_Int( variable1
/*i*/)<UNTAG_Int( variable2
/*l*/));
191 if (!UNTAG_Bool(variable3
)) break; /* while*/
192 variable3
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable1
/*i*/) /*AbstractArray::[]*/;
193 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3
== variable0
/*item*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable0
/*item*/) /*Object::==*/)))))));
194 if (UNTAG_Bool(variable3
)) { /*if*/
195 variable1
= TAG_Bool(false);
198 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*i*/;
199 continue_13
: while(0);
202 variable1
= TAG_Bool(true);
204 return_label12
: while(false);
205 tracehead
= trace
.prev
;
208 val_t
array___AbstractArray___has_key(val_t self
, val_t param0
) {
209 struct trace_t trace
= {NULL
, "array::AbstractArray::has_key (bin/../lib/standard//array.nit:97,2--66)"};
213 trace
.prev
= tracehead
; tracehead
= &trace
;
215 variable1
= TAG_Bool(UNTAG_Int( variable0
/*index*/)>=UNTAG_Int( TAG_Int(0)));
216 variable2
= variable1
;
217 if (UNTAG_Bool(variable2
)) { /* and */
218 variable2
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
219 variable2
= TAG_Bool(UNTAG_Int( variable0
/*index*/)<UNTAG_Int(variable2
));
221 variable1
= variable2
;
223 return_label14
: while(false);
224 tracehead
= trace
.prev
;
227 val_t
array___AbstractArray___count(val_t self
, val_t param0
) {
228 struct trace_t trace
= {NULL
, "array::AbstractArray::count (bin/../lib/standard//array.nit:99,2--108:12)"};
234 trace
.prev
= tracehead
; tracehead
= &trace
;
236 variable1
= TAG_Int(0);
237 variable2
= TAG_Int(0);
238 variable4
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
239 variable3
= variable4
;
240 while (true) { /*while*/
241 variable4
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int( variable3
/*l*/));
242 if (!UNTAG_Bool(variable4
)) break; /* while*/
243 variable4
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable2
/*i*/) /*AbstractArray::[]*/;
244 variable4
= TAG_Bool((variable4
== variable0
/*item*/) || ((variable4
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable4
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))(variable4
, variable0
/*item*/) /*Object::==*/)))));
245 if (UNTAG_Bool(variable4
)) { /*if*/
246 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*res*/;
248 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
249 continue_16
: while(0);
252 variable1
= variable1
/*res*/;
254 return_label15
: while(false);
255 tracehead
= trace
.prev
;
258 val_t
array___AbstractArray___index_of(val_t self
, val_t param0
) {
259 struct trace_t trace
= {NULL
, "array::AbstractArray::index_of (bin/../lib/standard//array.nit:111,2--58)"};
262 trace
.prev
= tracehead
; tracehead
= &trace
;
264 variable1
= ((array___AbstractArray___index_of_from_t
)CALL( self
,COLOR_array___AbstractArray___index_of_from
))( self
, variable0
/*item*/, TAG_Int(0)) /*AbstractArray::index_of_from*/;
266 return_label17
: while(false);
267 tracehead
= trace
.prev
;
270 val_t
array___AbstractArray___last_index_of(val_t self
, val_t param0
) {
271 struct trace_t trace
= {NULL
, "array::AbstractArray::last_index_of (bin/../lib/standard//array.nit:113,2--77)"};
274 trace
.prev
= tracehead
; tracehead
= &trace
;
276 variable1
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
277 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1)));
278 variable1
= ((array___AbstractArray___last_index_of_from_t
)CALL( self
,COLOR_array___AbstractArray___last_index_of_from
))( self
, variable0
/*item*/, variable1
) /*AbstractArray::last_index_of_from*/;
280 return_label18
: while(false);
281 tracehead
= trace
.prev
;
284 val_t
array___AbstractArray___index_of_from(val_t self
, val_t param0
, val_t param1
) {
285 struct trace_t trace
= {NULL
, "array::AbstractArray::index_of_from (bin/../lib/standard//array.nit:115,2--125:11)"};
291 trace
.prev
= tracehead
; tracehead
= &trace
;
294 variable2
= variable1
/*pos*/;
295 variable4
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
296 variable3
= variable4
;
297 while (true) { /*while*/
298 variable4
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int( variable3
/*len*/));
299 if (!UNTAG_Bool(variable4
)) break; /* while*/
300 variable4
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable2
/*i*/) /*AbstractArray::[]*/;
301 variable4
= TAG_Bool((variable4
== variable0
/*item*/) || ((variable4
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable4
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))(variable4
, variable0
/*item*/) /*Object::==*/)))));
302 if (UNTAG_Bool(variable4
)) { /*if*/
303 variable2
= variable2
/*i*/;
306 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
307 continue_20
: while(0);
310 variable4
= TAG_Int(-UNTAG_Int( TAG_Int(1)));
311 variable2
= variable4
;
313 return_label19
: while(false);
314 tracehead
= trace
.prev
;
317 val_t
array___AbstractArray___last_index_of_from(val_t self
, val_t param0
, val_t param1
) {
318 struct trace_t trace
= {NULL
, "array::AbstractArray::last_index_of_from (bin/../lib/standard//array.nit:128,2--138:11)"};
323 trace
.prev
= tracehead
; tracehead
= &trace
;
326 variable2
= variable1
/*pos*/;
327 while (true) { /*while*/
328 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)>=UNTAG_Int( TAG_Int(0)));
329 if (!UNTAG_Bool(variable3
)) break; /* while*/
330 variable3
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable2
/*i*/) /*AbstractArray::[]*/;
331 variable3
= TAG_Bool((variable3
== variable0
/*item*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable0
/*item*/) /*Object::==*/)))));
332 if (UNTAG_Bool(variable3
)) { /*if*/
333 variable2
= variable2
/*i*/;
336 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1))) /*i*/;
338 continue_22
: while(0);
341 variable3
= TAG_Int(-UNTAG_Int( TAG_Int(1)));
342 variable2
= variable3
;
344 return_label21
: while(false);
345 tracehead
= trace
.prev
;
348 val_t
array___AbstractArray___reversed(val_t self
) {
349 struct trace_t trace
= {NULL
, "array::AbstractArray::reversed (bin/../lib/standard//array.nit:141,2--149:15)"};
353 trace
.prev
= tracehead
; tracehead
= &trace
;
354 variable1
= ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/;
355 variable0
= variable1
;
356 variable2
= NEW_array___Array___with_capacity( variable0
/*cmp*/); /*new Array[E]*/
357 variable1
= variable2
;
358 while (true) { /*while*/
359 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cmp*/)>UNTAG_Int( TAG_Int(0)));
360 if (!UNTAG_Bool(variable2
)) break; /* while*/
361 variable0
= TAG_Int(UNTAG_Int(variable0
)-UNTAG_Int( TAG_Int(1))) /*cmp*/;
362 variable2
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable0
/*cmp*/) /*AbstractArray::[]*/;
363 ((array___AbstractArray___add_t
)CALL( variable1
/*result*/,COLOR_abstract_collection___SimpleCollection___add
))( variable1
/*result*/, variable2
) /*Array::add*/;
364 continue_24
: while(0);
367 variable0
= variable1
/*result*/;
369 return_label23
: while(false);
370 tracehead
= trace
.prev
;
373 void array___AbstractArray___remove(val_t self
, val_t param0
) {
374 struct trace_t trace
= {NULL
, "array::AbstractArray::remove (bin/../lib/standard//array.nit:152,2--51)"};
377 trace
.prev
= tracehead
; tracehead
= &trace
;
379 variable1
= ((array___AbstractArray___index_of_t
)CALL( self
,COLOR_abstract_collection___IndexedCollection___index_of
))( self
, variable0
/*item*/) /*AbstractArray::index_of*/;
380 ((array___AbstractArray___remove_at_t
)CALL( self
,COLOR_abstract_collection___Map___remove_at
))( self
, variable1
) /*AbstractArray::remove_at*/;
381 tracehead
= trace
.prev
;
384 void array___AbstractArray___remove_all(val_t self
, val_t param0
) {
385 struct trace_t trace
= {NULL
, "array::AbstractArray::remove_all (bin/../lib/standard//array.nit:154,2--159:28)"};
389 trace
.prev
= tracehead
; tracehead
= &trace
;
391 variable2
= ((array___AbstractArray___index_of_t
)CALL( self
,COLOR_abstract_collection___IndexedCollection___index_of
))( self
, variable0
/*item*/) /*AbstractArray::index_of*/;
392 variable1
= variable2
;
393 while (true) { /*while*/
394 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
395 if (!UNTAG_Bool(variable2
)) break; /* while*/
396 ((array___AbstractArray___remove_at_t
)CALL( self
,COLOR_abstract_collection___Map___remove_at
))( self
, variable1
/*i*/) /*AbstractArray::remove_at*/;
397 variable2
= ((array___AbstractArray___index_of_from_t
)CALL( self
,COLOR_array___AbstractArray___index_of_from
))( self
, variable0
/*item*/, variable1
/*i*/) /*AbstractArray::index_of_from*/;
398 variable1
= variable2
/*i=*/;
399 continue_27
: while(0);
402 tracehead
= trace
.prev
;
405 void array___AbstractArray___remove_at(val_t self
, val_t param0
) {
406 struct trace_t trace
= {NULL
, "array::AbstractArray::remove_at (bin/../lib/standard//array.nit:163,2--172:18)"};
412 trace
.prev
= tracehead
; tracehead
= &trace
;
414 variable2
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
415 variable1
= variable2
;
416 variable2
= TAG_Bool(UNTAG_Int( variable0
/*i*/)>=UNTAG_Int( TAG_Int(0)));
417 variable3
= variable2
;
418 if (UNTAG_Bool(variable3
)) { /* and */
419 variable3
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int( variable1
/*l*/));
421 variable2
= variable3
;
422 if (UNTAG_Bool(variable2
)) { /*if*/
423 variable3
= TAG_Int(UNTAG_Int( variable0
/*i*/)+UNTAG_Int( TAG_Int(1)));
424 variable2
= variable3
;
425 while (true) { /*while*/
426 variable3
= TAG_Bool(UNTAG_Int( variable2
/*j*/)<UNTAG_Int( variable1
/*l*/));
427 if (!UNTAG_Bool(variable3
)) break; /* while*/
428 variable3
= TAG_Int(UNTAG_Int( variable2
/*j*/)-UNTAG_Int( TAG_Int(1)));
429 variable4
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable2
/*j*/) /*AbstractArray::[]*/;
430 ((abstract_collection___Map_____braeq_t
)CALL( self
,COLOR_abstract_collection___Map_____braeq
))( self
, variable3
, variable4
) /*AbstractArray::[]=*/;
431 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*j*/;
432 continue_29
: while(0);
435 variable3
= TAG_Int(UNTAG_Int( variable1
/*l*/)-UNTAG_Int( TAG_Int(1)));
436 ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/ = variable3
;
438 tracehead
= trace
.prev
;
441 void array___AbstractArray___copy_to(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
442 struct trace_t trace
= {NULL
, "array::AbstractArray::copy_to (bin/../lib/standard//array.nit:176,2--182:35)"};
450 trace
.prev
= tracehead
; tracehead
= &trace
;
455 variable4
= variable1
/*len*/;
456 while (true) { /*while*/
457 variable5
= TAG_Bool(UNTAG_Int( variable4
/*i*/)>UNTAG_Int( TAG_Int(0)));
458 if (!UNTAG_Bool(variable5
)) break; /* while*/
459 variable4
= TAG_Int(UNTAG_Int(variable4
)-UNTAG_Int( TAG_Int(1))) /*i*/;
460 variable5
= TAG_Int(UNTAG_Int( variable3
/*new_start*/)+UNTAG_Int( variable4
/*i*/));
461 variable6
= TAG_Int(UNTAG_Int( variable0
/*start*/)+UNTAG_Int( variable4
/*i*/));
462 variable6
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable6
) /*AbstractArray::[]*/;
463 ((abstract_collection___Map_____braeq_t
)CALL( variable2
/*dest*/,COLOR_abstract_collection___Map_____braeq
))( variable2
/*dest*/, variable5
, variable6
) /*AbstractArray::[]=*/;
464 continue_31
: while(0);
467 tracehead
= trace
.prev
;
470 void array___AbstractArray___output(val_t self
) {
471 struct trace_t trace
= {NULL
, "array::AbstractArray::output (bin/../lib/standard//array.nit:186,2--193:9)"};
476 trace
.prev
= tracehead
; tracehead
= &trace
;
477 variable0
= TAG_Int(0);
478 variable2
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
479 variable1
= variable2
;
480 while (true) { /*while*/
481 variable2
= TAG_Bool(UNTAG_Int( variable0
/*i*/)<UNTAG_Int( variable1
/*l*/));
482 if (!UNTAG_Bool(variable2
)) break; /* while*/
483 variable3
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable0
/*i*/) /*AbstractArray::[]*/;
484 variable2
= variable3
;
485 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2
/*e*/ == NIT_NULL
/*null*/) || (( variable2
/*e*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable2
/*e*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable2
/*e*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable2
/*e*/,COLOR_kernel___Object_____eqeq
))( variable2
/*e*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
486 if (UNTAG_Bool(variable3
)) { /*if*/
487 ((kernel___Object___output_t
)CALL( variable2
/*e*/,COLOR_kernel___Object___output
))( variable2
/*e*/) /*Object::output*/;
489 variable0
= TAG_Int(UNTAG_Int(variable0
)+UNTAG_Int( TAG_Int(1))) /*i*/;
490 continue_33
: while(0);
493 tracehead
= trace
.prev
;
496 val_t
array___AbstractArray___iterator(val_t self
) {
497 struct trace_t trace
= {NULL
, "array::AbstractArray::iterator (bin/../lib/standard//array.nit:197,2--74)"};
499 trace
.prev
= tracehead
; tracehead
= &trace
;
500 variable0
= NEW_array___ArrayIterator___init( self
); /*new ArrayIterator[E]*/
502 return_label34
: while(false);
503 tracehead
= trace
.prev
;
506 val_t
array___AbstractArray_____eqeq(val_t self
, val_t param0
) {
507 struct trace_t trace
= {NULL
, "array::AbstractArray::== (bin/../lib/standard//array.nit:199,2--211:13)"};
513 trace
.prev
= tracehead
; tracehead
= &trace
;
515 variable1
= TAG_Bool(( variable0
/*o*/==NIT_NULL
) || VAL_ISA( variable0
/*o*/, COLOR_AbstractArray
, ID_AbstractArray
)) /*cast AbstractArray[E]*/;
516 variable1
= TAG_Bool(!UNTAG_Bool(variable1
));
517 if (!UNTAG_Bool(variable1
)) { /* or */
518 variable1
= TAG_Bool(IS_EQUAL_NN( variable0
/*o*/, NIT_NULL
/*null*/));
520 if (UNTAG_Bool(variable1
)) { /*if*/
521 variable1
= TAG_Bool(false);
524 variable1
= TAG_Bool(( variable0
/*o*/==NIT_NULL
) || VAL_ISA( variable0
/*o*/, COLOR_AbstractArray
, ID_AbstractArray
)) /*cast AbstractArray[E]*/;
525 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//array.nit:203,3--30\n"); nit_exit(1);}
526 variable2
= ((array___AbstractArray___length_t
)CALL( self
,COLOR_abstract_collection___Collection___length
))( self
) /*AbstractArray::length*/;
527 variable1
= variable2
;
528 variable2
= ((array___AbstractArray___length_t
)CALL( variable0
/*o*/,COLOR_abstract_collection___Collection___length
))( variable0
/*o*/) /*AbstractArray::length*/;
529 variable2
= TAG_Bool((variable2
)!=( variable1
/*l*/));
530 if (UNTAG_Bool(variable2
)) { /*if*/
531 variable1
= TAG_Bool(false);
534 variable2
= TAG_Int(0);
535 while (true) { /*while*/
536 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int( variable1
/*l*/));
537 if (!UNTAG_Bool(variable3
)) break; /* while*/
538 variable3
= ((abstract_collection___Map_____bra_t
)CALL( self
,COLOR_abstract_collection___Map_____bra
))( self
, variable2
/*i*/) /*AbstractArray::[]*/;
539 variable4
= ((abstract_collection___Map_____bra_t
)CALL( variable0
/*o*/,COLOR_abstract_collection___Map_____bra
))( variable0
/*o*/, variable2
/*i*/) /*AbstractArray::[]*/;
540 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3
== variable4
) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
,variable4
)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable4
) /*Object::==*/)))))));
541 if (UNTAG_Bool(variable3
)) { /*if*/
542 variable1
= TAG_Bool(false);
545 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
546 continue_36
: while(0);
549 variable1
= TAG_Bool(true);
551 return_label35
: while(false);
552 tracehead
= trace
.prev
;
555 val_t
array___Array_____bra(val_t self
, val_t param0
) {
556 struct trace_t trace
= {NULL
, "array::Array::[] (bin/../lib/standard//array.nit:227,2--230:21)"};
560 trace
.prev
= tracehead
; tracehead
= &trace
;
562 variable1
= TAG_Bool(UNTAG_Int( variable0
/*index*/)>=UNTAG_Int( TAG_Int(0)));
563 variable2
= variable1
;
564 if (UNTAG_Bool(variable2
)) { /* and */
565 variable2
= ATTR_array___AbstractArray____length( self
) /*Array::_length*/;
566 variable2
= TAG_Bool(UNTAG_Int( variable0
/*index*/)<UNTAG_Int(variable2
));
568 variable1
= variable2
;
569 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
570 variable1
= ATTR_array___Array____items( self
) /*Array::_items*/;
571 variable1
= UNBOX_NativeArray(variable1
)[UNTAG_Int( variable0
/*index*/)];
573 return_label37
: while(false);
574 tracehead
= trace
.prev
;
577 void array___Array_____braeq(val_t self
, val_t param0
, val_t param1
) {
578 struct trace_t trace
= {NULL
, "array::Array::[]= (bin/../lib/standard//array.nit:233,2--242:22)"};
583 trace
.prev
= tracehead
; tracehead
= &trace
;
586 variable2
= TAG_Bool(UNTAG_Int( variable0
/*index*/)>=UNTAG_Int( TAG_Int(0)));
587 variable3
= variable2
;
588 if (UNTAG_Bool(variable3
)) { /* and */
589 variable3
= ATTR_array___AbstractArray____length( self
) /*Array::_length*/;
590 variable3
= TAG_Int(UNTAG_Int(variable3
)+UNTAG_Int( TAG_Int(1)));
591 variable3
= TAG_Bool(UNTAG_Int( variable0
/*index*/)<UNTAG_Int(variable3
));
593 variable2
= variable3
;
594 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:235,3--50\n"); nit_exit(1);}
595 variable2
= ATTR_array___Array____capacity( self
) /*Array::_capacity*/;
596 variable2
= TAG_Bool(UNTAG_Int(variable2
)<=UNTAG_Int( variable0
/*index*/));
597 if (UNTAG_Bool(variable2
)) { /*if*/
598 variable2
= TAG_Int(UNTAG_Int( variable0
/*index*/)+UNTAG_Int( TAG_Int(1)));
599 ((array___Array___enlarge_t
)CALL( self
,COLOR_array___AbstractArray___enlarge
))( self
, variable2
) /*Array::enlarge*/;
601 variable2
= ATTR_array___AbstractArray____length( self
) /*Array::_length*/;
602 variable2
= TAG_Bool(UNTAG_Int(variable2
)<=UNTAG_Int( variable0
/*index*/));
603 if (UNTAG_Bool(variable2
)) { /*if*/
604 variable2
= TAG_Int(UNTAG_Int( variable0
/*index*/)+UNTAG_Int( TAG_Int(1)));
605 ATTR_array___AbstractArray____length( self
) /*Array::_length*/ = variable2
;
607 variable2
= ATTR_array___Array____items( self
) /*Array::_items*/;
608 UNBOX_NativeArray(variable2
)[UNTAG_Int( variable0
/*index*/)]= variable1
/*item*/;
609 tracehead
= trace
.prev
;
612 void array___Array___enlarge(val_t self
, val_t param0
) {
613 struct trace_t trace
= {NULL
, "array::Array::enlarge (bin/../lib/standard//array.nit:245,2--253:15)"};
619 trace
.prev
= tracehead
; tracehead
= &trace
;
621 variable2
= ATTR_array___Array____capacity( self
) /*Array::_capacity*/;
622 variable1
= variable2
;
623 variable2
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)<=UNTAG_Int( variable1
/*c*/));
624 if (UNTAG_Bool(variable2
)) { /*if*/
627 while (true) { /*while*/
628 variable2
= TAG_Bool(UNTAG_Int( variable1
/*c*/)<=UNTAG_Int( variable0
/*cap*/));
629 if (!UNTAG_Bool(variable2
)) break; /* while*/
630 variable2
= TAG_Int(UNTAG_Int( variable1
/*c*/)*UNTAG_Int( TAG_Int(2)));
631 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(2)));
632 variable1
= variable2
/*c=*/;
633 continue_40
: while(0);
636 variable3
= BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable1
/*c*/) * sizeof(val_t
))));
637 variable2
= variable3
;
638 variable3
= ATTR_array___Array____capacity( self
) /*Array::_capacity*/;
639 variable3
= TAG_Bool(UNTAG_Int(variable3
)>UNTAG_Int( TAG_Int(0)));
640 if (UNTAG_Bool(variable3
)) { /*if*/
641 variable3
= ATTR_array___Array____items( self
) /*Array::_items*/;
642 variable4
= ATTR_array___AbstractArray____length( self
) /*Array::_length*/;
643 (void)memcpy(UNBOX_NativeArray( variable2
/*a*/), UNBOX_NativeArray(variable3
), UNTAG_Int(variable4
)*sizeof(val_t
));
645 ATTR_array___Array____items( self
) /*Array::_items*/ = variable2
/*a*/;
646 ATTR_array___Array____capacity( self
) /*Array::_capacity*/ = variable1
/*c*/;
647 return_label39
: while(false);
648 tracehead
= trace
.prev
;
651 void array___Array___init(val_t self
, int* init_table
) {
652 struct trace_t trace
= {NULL
, "array::Array::init (bin/../lib/standard//array.nit:256,2--260:13)"};
653 trace
.prev
= tracehead
; tracehead
= &trace
;
654 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
655 ATTR_array___Array____capacity( self
) /*Array::_capacity*/ = TAG_Int(0);
656 ATTR_array___AbstractArray____length( self
) /*Array::_length*/ = TAG_Int(0);
657 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
658 tracehead
= trace
.prev
;
661 void array___Array___with(val_t self
, val_t param0
, int* init_table
) {
662 struct trace_t trace
= {NULL
, "array::Array::with (bin/../lib/standard//array.nit:263,2--268:26)"};
665 trace
.prev
= tracehead
; tracehead
= &trace
;
666 /* check if p<Array[E] with p:E */
667 if (( param0
!=NIT_NULL
) && !VAL_ISA( param0
, COLOR_Array
, ID_Array
)) { fprintf(stderr
, "Cast failled at bin/../lib/standard//array.nit:264,12--24\n"); nit_exit(1); } /*cast Array[E]*/;
669 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
670 variable1
= ATTR_array___Array____items( variable0
/*objects*/) /*Array::_items*/;
671 ATTR_array___Array____items( self
) /*Array::_items*/ = variable1
;
672 variable1
= ATTR_array___Array____capacity( variable0
/*objects*/) /*Array::_capacity*/;
673 ATTR_array___Array____capacity( self
) /*Array::_capacity*/ = variable1
;
674 variable1
= ((array___AbstractArray___length_t
)CALL( variable0
/*objects*/,COLOR_abstract_collection___Collection___length
))( variable0
/*objects*/) /*Array::length*/;
675 ATTR_array___AbstractArray____length( self
) /*Array::_length*/ = variable1
;
676 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
677 tracehead
= trace
.prev
;
680 void array___Array___with_capacity(val_t self
, val_t param0
, int* init_table
) {
681 struct trace_t trace
= {NULL
, "array::Array::with_capacity (bin/../lib/standard//array.nit:271,2--277:13)"};
684 trace
.prev
= tracehead
; tracehead
= &trace
;
686 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
687 variable1
= TAG_Bool(UNTAG_Int( variable0
/*cap*/)>=UNTAG_Int( TAG_Int(0)));
688 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert 'positive' failed: bin/../lib/standard//array.nit:274,3--27\n"); nit_exit(1);}
689 variable1
= BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable0
/*cap*/) * sizeof(val_t
))));
690 ATTR_array___Array____items( self
) /*Array::_items*/ = variable1
;
691 ATTR_array___Array____capacity( self
) /*Array::_capacity*/ = variable0
/*cap*/;
692 ATTR_array___AbstractArray____length( self
) /*Array::_length*/ = TAG_Int(0);
693 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
694 tracehead
= trace
.prev
;
697 void array___Array___filled_with(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
698 struct trace_t trace
= {NULL
, "array::Array::filled_with (bin/../lib/standard//array.nit:280,2--290:9)"};
703 trace
.prev
= tracehead
; tracehead
= &trace
;
706 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
707 variable2
= TAG_Bool(UNTAG_Int( variable1
/*count*/)>=UNTAG_Int( TAG_Int(0)));
708 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert 'positive' failed: bin/../lib/standard//array.nit:283,3--29\n"); nit_exit(1);}
709 variable2
= BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable1
/*count*/) * sizeof(val_t
))));
710 ATTR_array___Array____items( self
) /*Array::_items*/ = variable2
;
711 ATTR_array___Array____capacity( self
) /*Array::_capacity*/ = variable1
/*count*/;
712 ATTR_array___AbstractArray____length( self
) /*Array::_length*/ = variable1
/*count*/;
713 variable2
= TAG_Int(0);
714 while (true) { /*while*/
715 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int( variable1
/*count*/));
716 if (!UNTAG_Bool(variable3
)) break; /* while*/
717 ((array___Array_____braeq_t
)CALL( self
,COLOR_abstract_collection___Map_____braeq
))( self
, variable2
/*i*/, variable0
/*value*/) /*Array::[]=*/;
718 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
719 continue_45
: while(0);
722 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
723 tracehead
= trace
.prev
;
726 void array___Array___with_native(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
727 struct trace_t trace
= {NULL
, "array::Array::with_native (bin/../lib/standard//array.nit:294,2--300:16)"};
731 trace
.prev
= tracehead
; tracehead
= &trace
;
734 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
735 variable2
= TAG_Bool(UNTAG_Int( variable1
/*size*/)>=UNTAG_Int( TAG_Int(0)));
736 if (!UNTAG_Bool(variable2
)) { fprintf(stderr
, "Assert 'positive' failed: bin/../lib/standard//array.nit:297,3--28\n"); nit_exit(1);}
737 ATTR_array___Array____items( self
) /*Array::_items*/ = variable0
/*nat*/;
738 ATTR_array___Array____capacity( self
) /*Array::_capacity*/ = variable1
/*size*/;
739 ATTR_array___AbstractArray____length( self
) /*Array::_length*/ = variable1
/*size*/;
740 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
741 tracehead
= trace
.prev
;
744 val_t
array___ArrayIterator___item(val_t self
) {
745 struct trace_t trace
= {NULL
, "array::ArrayIterator::item (bin/../lib/standard//array.nit:313,2--40)"};
748 trace
.prev
= tracehead
; tracehead
= &trace
;
749 variable0
= ATTR_array___ArrayIterator____array( self
) /*ArrayIterator::_array*/;
750 variable1
= ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/;
751 variable0
= ((abstract_collection___Map_____bra_t
)CALL(variable0
,COLOR_abstract_collection___Map_____bra
))(variable0
, variable1
) /*AbstractArray::[]*/;
753 return_label47
: while(false);
754 tracehead
= trace
.prev
;
757 void array___ArrayIterator___item__eq(val_t self
, val_t param0
) {
758 struct trace_t trace
= {NULL
, "array::ArrayIterator::item= (bin/../lib/standard//array.nit:315,2--42)"};
762 trace
.prev
= tracehead
; tracehead
= &trace
;
764 variable1
= ATTR_array___ArrayIterator____array( self
) /*ArrayIterator::_array*/;
765 variable2
= ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/;
766 ((abstract_collection___Map_____braeq_t
)CALL(variable1
,COLOR_abstract_collection___Map_____braeq
))(variable1
, variable2
, variable0
/*e*/) /*AbstractArray::[]=*/;
767 tracehead
= trace
.prev
;
770 val_t
array___ArrayIterator___is_ok(val_t self
) {
771 struct trace_t trace
= {NULL
, "array::ArrayIterator::is_ok (bin/../lib/standard//array.nit:317,2--50)"};
774 trace
.prev
= tracehead
; tracehead
= &trace
;
775 variable0
= ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/;
776 variable1
= ATTR_array___ArrayIterator____array( self
) /*ArrayIterator::_array*/;
777 variable1
= ((array___AbstractArray___length_t
)CALL(variable1
,COLOR_abstract_collection___Collection___length
))(variable1
) /*AbstractArray::length*/;
778 variable0
= TAG_Bool(UNTAG_Int(variable0
)<UNTAG_Int(variable1
));
780 return_label49
: while(false);
781 tracehead
= trace
.prev
;
784 void array___ArrayIterator___next(val_t self
) {
785 struct trace_t trace
= {NULL
, "array::ArrayIterator::next (bin/../lib/standard//array.nit:319,2--31)"};
786 trace
.prev
= tracehead
; tracehead
= &trace
;
787 ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/ = TAG_Int(UNTAG_Int(ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/)+UNTAG_Int( TAG_Int(1)));
788 tracehead
= trace
.prev
;
791 void array___ArrayIterator___init(val_t self
, val_t param0
, int* init_table
) {
792 struct trace_t trace
= {NULL
, "array::ArrayIterator::init (bin/../lib/standard//array.nit:321,2--325:12)"};
795 trace
.prev
= tracehead
; tracehead
= &trace
;
797 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayIterator
].i
]) return;
798 variable1
= TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0
/*a*/ == NIT_NULL
/*null*/) || (( variable0
/*a*/ != NIT_NULL
) && UNTAG_Bool(((array___AbstractArray_____eqeq_t
)CALL( variable0
/*a*/,COLOR_kernel___Object_____eqeq
))( variable0
/*a*/, NIT_NULL
/*null*/) /*AbstractArray::==*/)))));
799 if (!UNTAG_Bool(variable1
)) { fprintf(stderr
, "Assert 'not_nil' failed: bin/../lib/standard//array.nit:323,3--27\n"); nit_exit(1);}
800 ATTR_array___ArrayIterator____array( self
) /*ArrayIterator::_array*/ = variable0
/*a*/;
801 ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/ = TAG_Int(0);
802 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayIterator
].i
] = 1;
803 tracehead
= trace
.prev
;
806 val_t
array___ArrayIterator___index(val_t self
) {
807 struct trace_t trace
= {NULL
, "array::ArrayIterator::index (bin/../lib/standard//array.nit:328,2--32)"};
808 trace
.prev
= tracehead
; tracehead
= &trace
;
809 tracehead
= trace
.prev
;
810 return ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/;
812 val_t
array___ArraySet___has(val_t self
, val_t param0
) {
813 struct trace_t trace
= {NULL
, "array::ArraySet::has (bin/../lib/standard//array.nit:340,2--41)"};
816 trace
.prev
= tracehead
; tracehead
= &trace
;
818 variable1
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
819 variable1
= ((array___AbstractArray___has_t
)CALL(variable1
,COLOR_abstract_collection___Collection___has
))(variable1
, variable0
/*e*/) /*Array::has*/;
821 return_label52
: while(false);
822 tracehead
= trace
.prev
;
825 void array___ArraySet___add(val_t self
, val_t param0
) {
826 struct trace_t trace
= {NULL
, "array::ArraySet::add (bin/../lib/standard//array.nit:342,2--60)"};
829 trace
.prev
= tracehead
; tracehead
= &trace
;
831 variable1
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
832 variable1
= ((array___AbstractArray___has_t
)CALL(variable1
,COLOR_abstract_collection___Collection___has
))(variable1
, variable0
/*e*/) /*Array::has*/;
833 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable1
)))) { /*if*/
834 variable1
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
835 ((array___AbstractArray___add_t
)CALL(variable1
,COLOR_abstract_collection___SimpleCollection___add
))(variable1
, variable0
/*e*/) /*Array::add*/;
837 tracehead
= trace
.prev
;
840 val_t
array___ArraySet___is_empty(val_t self
) {
841 struct trace_t trace
= {NULL
, "array::ArraySet::is_empty (bin/../lib/standard//array.nit:344,2--46)"};
843 trace
.prev
= tracehead
; tracehead
= &trace
;
844 variable0
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
845 variable0
= ((array___AbstractArray___is_empty_t
)CALL(variable0
,COLOR_abstract_collection___Collection___is_empty
))(variable0
) /*Array::is_empty*/;
847 return_label54
: while(false);
848 tracehead
= trace
.prev
;
851 val_t
array___ArraySet___length(val_t self
) {
852 struct trace_t trace
= {NULL
, "array::ArraySet::length (bin/../lib/standard//array.nit:346,2--42)"};
854 trace
.prev
= tracehead
; tracehead
= &trace
;
855 variable0
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
856 variable0
= ((array___AbstractArray___length_t
)CALL(variable0
,COLOR_abstract_collection___Collection___length
))(variable0
) /*Array::length*/;
858 return_label55
: while(false);
859 tracehead
= trace
.prev
;
862 val_t
array___ArraySet___first(val_t self
) {
863 struct trace_t trace
= {NULL
, "array::ArraySet::first (bin/../lib/standard//array.nit:348,2--351:21)"};
865 trace
.prev
= tracehead
; tracehead
= &trace
;
866 variable0
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
867 variable0
= ((array___AbstractArray___length_t
)CALL(variable0
,COLOR_abstract_collection___Collection___length
))(variable0
) /*Array::length*/;
868 variable0
= TAG_Bool(UNTAG_Int(variable0
)>UNTAG_Int( TAG_Int(0)));
869 if (!UNTAG_Bool(variable0
)) { fprintf(stderr
, "Assert failed: bin/../lib/standard//array.nit:350,3--26\n"); nit_exit(1);}
870 variable0
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
871 variable0
= ((abstract_collection___IndexedCollection___first_t
)CALL(variable0
,COLOR_abstract_collection___Collection___first
))(variable0
) /*Array::first*/;
873 return_label56
: while(false);
874 tracehead
= trace
.prev
;
877 void array___ArraySet___remove(val_t self
, val_t param0
) {
878 struct trace_t trace
= {NULL
, "array::ArraySet::remove (bin/../lib/standard//array.nit:354,2--357:28)"};
882 trace
.prev
= tracehead
; tracehead
= &trace
;
884 variable2
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
885 variable2
= ((array___AbstractArray___index_of_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___index_of
))(variable2
, variable0
/*item*/) /*Array::index_of*/;
886 variable1
= variable2
;
887 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
888 if (UNTAG_Bool(variable2
)) { /*if*/
889 ((array___ArraySet___remove_at_t
)CALL( self
,COLOR_array___ArraySet___remove_at
))( self
, variable1
/*i*/) /*ArraySet::remove_at*/;
891 tracehead
= trace
.prev
;
894 void array___ArraySet___remove_all(val_t self
, val_t param0
) {
895 struct trace_t trace
= {NULL
, "array::ArraySet::remove_all (bin/../lib/standard//array.nit:360,2--43)"};
897 trace
.prev
= tracehead
; tracehead
= &trace
;
899 ((array___ArraySet___remove_t
)CALL( self
,COLOR_abstract_collection___RemovableCollection___remove
))( self
, variable0
/*item*/) /*ArraySet::remove*/;
900 tracehead
= trace
.prev
;
903 void array___ArraySet___clear(val_t self
) {
904 struct trace_t trace
= {NULL
, "array::ArraySet::clear (bin/../lib/standard//array.nit:362,2--33)"};
906 trace
.prev
= tracehead
; tracehead
= &trace
;
907 variable0
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
908 ((array___AbstractArray___clear_t
)CALL(variable0
,COLOR_abstract_collection___RemovableCollection___clear
))(variable0
) /*Array::clear*/;
909 tracehead
= trace
.prev
;
912 val_t
array___ArraySet___iterator(val_t self
) {
913 struct trace_t trace
= {NULL
, "array::ArraySet::iterator (bin/../lib/standard//array.nit:364,2--70)"};
916 trace
.prev
= tracehead
; tracehead
= &trace
;
917 variable0
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
918 variable0
= ((array___AbstractArray___iterator_t
)CALL(variable0
,COLOR_abstract_collection___Collection___iterator
))(variable0
) /*Array::iterator*/;
919 variable1
= NEW_array___ArraySetIterator___init(variable0
); /*new ArraySetIterator[E]*/
920 variable0
= variable1
;
922 return_label60
: while(false);
923 tracehead
= trace
.prev
;
926 void array___ArraySet___enlarge(val_t self
, val_t param0
) {
927 struct trace_t trace
= {NULL
, "array::ArraySet::enlarge (bin/../lib/standard//array.nit:366,2--367:45)"};
930 trace
.prev
= tracehead
; tracehead
= &trace
;
932 variable1
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
933 ((array___Array___enlarge_t
)CALL(variable1
,COLOR_array___AbstractArray___enlarge
))(variable1
, variable0
/*cap*/) /*Array::enlarge*/;
934 tracehead
= trace
.prev
;
937 void array___ArraySet___remove_at(val_t self
, val_t param0
) {
938 struct trace_t trace
= {NULL
, "array::ArraySet::remove_at (bin/../lib/standard//array.nit:369,2--372:12)"};
942 trace
.prev
= tracehead
; tracehead
= &trace
;
944 variable1
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
945 variable2
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
946 variable2
= ((abstract_collection___IndexedCollection___last_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___last
))(variable2
) /*Array::last*/;
947 ((array___Array_____braeq_t
)CALL(variable1
,COLOR_abstract_collection___Map_____braeq
))(variable1
, variable0
/*i*/, variable2
) /*Array::[]=*/;
948 variable1
= ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/;
949 ((array___AbstractArray___pop_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___pop
))(variable1
) /*Array::pop*/;
950 tracehead
= trace
.prev
;
953 void array___ArraySet___init(val_t self
, int* init_table
) {
954 struct trace_t trace
= {NULL
, "array::ArraySet::init (bin/../lib/standard//array.nit:375,2--376:29)"};
956 trace
.prev
= tracehead
; tracehead
= &trace
;
957 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
]) return;
958 variable0
= NEW_array___Array___init(); /*new Array[E]*/
959 ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/ = variable0
;
960 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
] = 1;
961 tracehead
= trace
.prev
;
964 void array___ArraySet___with_capacity(val_t self
, val_t param0
, int* init_table
) {
965 struct trace_t trace
= {NULL
, "array::ArraySet::with_capacity (bin/../lib/standard//array.nit:378,2--379:68)"};
968 trace
.prev
= tracehead
; tracehead
= &trace
;
970 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
]) return;
971 variable1
= NEW_array___Array___with_capacity( variable0
/*i*/); /*new Array[E]*/
972 ATTR_array___ArraySet____array( self
) /*ArraySet::_array*/ = variable1
;
973 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
] = 1;
974 tracehead
= trace
.prev
;
977 val_t
array___ArraySetIterator___is_ok(val_t self
) {
978 struct trace_t trace
= {NULL
, "array::ArraySetIterator::is_ok (bin/../lib/standard//array.nit:386,2--39)"};
980 trace
.prev
= tracehead
; tracehead
= &trace
;
981 variable0
= ATTR_array___ArraySetIterator____iter( self
) /*ArraySetIterator::_iter*/;
982 variable0
= ((array___ArrayIterator___is_ok_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___is_ok
))(variable0
) /*ArrayIterator::is_ok*/;
984 return_label65
: while(false);
985 tracehead
= trace
.prev
;
988 void array___ArraySetIterator___next(val_t self
) {
989 struct trace_t trace
= {NULL
, "array::ArraySetIterator::next (bin/../lib/standard//array.nit:388,2--30)"};
991 trace
.prev
= tracehead
; tracehead
= &trace
;
992 variable0
= ATTR_array___ArraySetIterator____iter( self
) /*ArraySetIterator::_iter*/;
993 ((array___ArrayIterator___next_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___next
))(variable0
) /*ArrayIterator::next*/;
994 tracehead
= trace
.prev
;
997 val_t
array___ArraySetIterator___item(val_t self
) {
998 struct trace_t trace
= {NULL
, "array::ArraySetIterator::item (bin/../lib/standard//array.nit:390,2--40)"};
1000 trace
.prev
= tracehead
; tracehead
= &trace
;
1001 variable0
= ATTR_array___ArraySetIterator____iter( self
) /*ArraySetIterator::_iter*/;
1002 variable0
= ((array___ArrayIterator___item_t
)CALL(variable0
,COLOR_abstract_collection___Iterator___item
))(variable0
) /*ArrayIterator::item*/;
1003 goto return_label67
;
1004 return_label67
: while(false);
1005 tracehead
= trace
.prev
;
1008 void array___ArraySetIterator___init(val_t self
, val_t param0
, int* init_table
) {
1009 struct trace_t trace
= {NULL
, "array::ArraySetIterator::init (bin/../lib/standard//array.nit:392,2--45)"};
1011 trace
.prev
= tracehead
; tracehead
= &trace
;
1013 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySetIterator
].i
]) return;
1014 ATTR_array___ArraySetIterator____iter( self
) /*ArraySetIterator::_iter*/ = variable0
/*iter*/;
1015 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySetIterator
].i
] = 1;
1016 tracehead
= trace
.prev
;
1019 val_t
array___ArrayMap_____bra(val_t self
, val_t param0
) {
1020 struct trace_t trace
= {NULL
, "array::ArrayMap::[] (bin/../lib/standard//array.nit:402,2--409:14)"};
1027 trace
.prev
= tracehead
; tracehead
= &trace
;
1029 variable2
= ((array___ArrayMap___index_t
)CALL( self
,COLOR_array___ArrayMap___index
))( self
, variable0
/*key*/) /*ArrayMap::index*/;
1030 variable1
= variable2
;
1031 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
1032 if (UNTAG_Bool(variable2
)) { /*if*/
1033 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1034 variable3
= variable1
/*i*/;
1035 variable4
= TAG_Bool(UNTAG_Int( variable3
/*index*/)>=UNTAG_Int( TAG_Int(0)));
1036 variable5
= variable4
;
1037 if (UNTAG_Bool(variable5
)) { /* and */
1038 variable5
= variable2
;
1039 variable5
= ATTR_array___AbstractArray____length(variable5
) /*Array::_length*/;
1040 variable5
= TAG_Bool(UNTAG_Int( variable3
/*index*/)<UNTAG_Int(variable5
));
1042 variable4
= variable5
;
1043 if (!UNTAG_Bool(variable4
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
1044 variable4
= variable2
;
1045 variable4
= ATTR_array___Array____items(variable4
) /*Array::_items*/;
1046 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable3
/*index*/)];
1047 goto return_label70
;
1048 return_label70
: while(false);
1049 variable2
= variable4
;
1050 variable2
= ((abstract_collection___Couple___second_t
)CALL(variable2
,COLOR_abstract_collection___Couple___second
))(variable2
) /*Couple::second*/;
1051 variable1
= variable2
;
1052 goto return_label69
;
1054 variable1
= NIT_NULL
/*null*/;
1055 goto return_label69
;
1057 return_label69
: while(false);
1058 tracehead
= trace
.prev
;
1061 void array___ArrayMap_____braeq(val_t self
, val_t param0
, val_t param1
) {
1062 struct trace_t trace
= {NULL
, "array::ArrayMap::[]= (bin/../lib/standard//array.nit:413,2--420:40)"};
1070 trace
.prev
= tracehead
; tracehead
= &trace
;
1073 variable3
= ((array___ArrayMap___index_t
)CALL( self
,COLOR_array___ArrayMap___index
))( self
, variable0
/*key*/) /*ArrayMap::index*/;
1074 variable2
= variable3
;
1075 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)>=UNTAG_Int( TAG_Int(0)));
1076 if (UNTAG_Bool(variable3
)) { /*if*/
1077 variable3
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1078 variable4
= variable2
/*i*/;
1079 variable5
= TAG_Bool(UNTAG_Int( variable4
/*index*/)>=UNTAG_Int( TAG_Int(0)));
1080 variable6
= variable5
;
1081 if (UNTAG_Bool(variable6
)) { /* and */
1082 variable6
= variable3
;
1083 variable6
= ATTR_array___AbstractArray____length(variable6
) /*Array::_length*/;
1084 variable6
= TAG_Bool(UNTAG_Int( variable4
/*index*/)<UNTAG_Int(variable6
));
1086 variable5
= variable6
;
1087 if (!UNTAG_Bool(variable5
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
1088 variable5
= variable3
;
1089 variable5
= ATTR_array___Array____items(variable5
) /*Array::_items*/;
1090 variable5
= UNBOX_NativeArray(variable5
)[UNTAG_Int( variable4
/*index*/)];
1091 goto return_label72
;
1092 return_label72
: while(false);
1093 variable3
= variable5
;
1094 ((abstract_collection___Couple___second__eq_t
)CALL(variable3
,COLOR_abstract_collection___Couple___second__eq
))(variable3
, variable1
/*item*/) /*Couple::second=*/;
1096 variable3
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1097 variable4
= NEW_abstract_collection___Couple___init( variable0
/*key*/, variable1
/*item*/); /*new Couple[K, E]*/
1098 ((array___AbstractArray___push_t
)CALL(variable3
,COLOR_abstract_collection___IndexedCollection___push
))(variable3
, variable4
) /*Array::push*/;
1100 tracehead
= trace
.prev
;
1103 val_t
array___ArrayMap___has_key(val_t self
, val_t param0
) {
1104 struct trace_t trace
= {NULL
, "array::ArrayMap::has_key (bin/../lib/standard//array.nit:424,2--425:50)"};
1107 trace
.prev
= tracehead
; tracehead
= &trace
;
1109 variable1
= ((array___ArrayMap___index_t
)CALL( self
,COLOR_array___ArrayMap___index
))( self
, variable0
/*key*/) /*ArrayMap::index*/;
1110 variable1
= TAG_Bool(UNTAG_Int(variable1
)>=UNTAG_Int( TAG_Int(0)));
1111 goto return_label73
;
1112 return_label73
: while(false);
1113 tracehead
= trace
.prev
;
1116 val_t
array___ArrayMap___has(val_t self
, val_t param0
) {
1117 struct trace_t trace
= {NULL
, "array::ArrayMap::has (bin/../lib/standard//array.nit:427,2--431:14)"};
1122 trace
.prev
= tracehead
; tracehead
= &trace
;
1124 variable1
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1125 variable1
= ((array___AbstractArray___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Array::iterator*/;
1126 while (true) { /*for*/
1127 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
1128 if (!UNTAG_Bool(variable2
)) break; /*for*/
1129 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
1130 variable3
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*i*/,COLOR_abstract_collection___Couple___second
))( variable2
/*i*/) /*Couple::second*/;
1131 variable3
= TAG_Bool((variable3
== variable0
/*item*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable0
/*item*/) /*Object::==*/)))));
1132 if (UNTAG_Bool(variable3
)) { /*if*/
1133 variable1
= TAG_Bool(true);
1134 goto return_label74
;
1136 continue_75
: while(0);
1137 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
1140 variable1
= TAG_Bool(false);
1141 goto return_label74
;
1142 return_label74
: while(false);
1143 tracehead
= trace
.prev
;
1146 val_t
array___ArrayMap___has_only(val_t self
, val_t param0
) {
1147 struct trace_t trace
= {NULL
, "array::ArrayMap::has_only (bin/../lib/standard//array.nit:434,2--438:13)"};
1152 trace
.prev
= tracehead
; tracehead
= &trace
;
1154 variable1
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1155 variable1
= ((array___AbstractArray___iterator_t
)CALL(variable1
,COLOR_abstract_collection___Collection___iterator
))(variable1
) /*Array::iterator*/;
1156 while (true) { /*for*/
1157 variable2
= ((array___ArrayIterator___is_ok_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___is_ok
))(variable1
) /*ArrayIterator::is_ok*/;
1158 if (!UNTAG_Bool(variable2
)) break; /*for*/
1159 variable2
= ((array___ArrayIterator___item_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___item
))(variable1
) /*ArrayIterator::item*/;
1160 variable3
= ((abstract_collection___Couple___second_t
)CALL( variable2
/*i*/,COLOR_abstract_collection___Couple___second
))( variable2
/*i*/) /*Couple::second*/;
1161 variable3
= TAG_Bool(!UNTAG_Bool(TAG_Bool((variable3
== variable0
/*item*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable0
/*item*/) /*Object::==*/)))))));
1162 if (UNTAG_Bool(variable3
)) { /*if*/
1163 variable1
= TAG_Bool(false);
1164 goto return_label76
;
1166 continue_77
: while(0);
1167 ((array___ArrayIterator___next_t
)CALL(variable1
,COLOR_abstract_collection___Iterator___next
))(variable1
) /*ArrayIterator::next*/;
1170 variable1
= TAG_Bool(true);
1171 goto return_label76
;
1172 return_label76
: while(false);
1173 tracehead
= trace
.prev
;
1176 val_t
array___ArrayMap___length(val_t self
) {
1177 struct trace_t trace
= {NULL
, "array::ArrayMap::length (bin/../lib/standard//array.nit:441,2--442:42)"};
1179 trace
.prev
= tracehead
; tracehead
= &trace
;
1180 variable0
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1181 variable0
= ((array___AbstractArray___length_t
)CALL(variable0
,COLOR_abstract_collection___Collection___length
))(variable0
) /*Array::length*/;
1182 goto return_label78
;
1183 return_label78
: while(false);
1184 tracehead
= trace
.prev
;
1187 val_t
array___ArrayMap___first(val_t self
) {
1188 struct trace_t trace
= {NULL
, "array::ArrayMap::first (bin/../lib/standard//array.nit:444,2--46)"};
1190 trace
.prev
= tracehead
; tracehead
= &trace
;
1191 variable0
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1192 variable0
= ((abstract_collection___IndexedCollection___first_t
)CALL(variable0
,COLOR_abstract_collection___Collection___first
))(variable0
) /*Array::first*/;
1193 variable0
= ((abstract_collection___Couple___first_t
)CALL(variable0
,COLOR_abstract_collection___Couple___first
))(variable0
) /*Couple::first*/;
1194 goto return_label79
;
1195 return_label79
: while(false);
1196 tracehead
= trace
.prev
;
1199 val_t
array___ArrayMap___count(val_t self
, val_t param0
) {
1200 struct trace_t trace
= {NULL
, "array::ArrayMap::count (bin/../lib/standard//array.nit:446,2--451:11)"};
1206 trace
.prev
= tracehead
; tracehead
= &trace
;
1208 variable1
= TAG_Int(0);
1209 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1210 variable2
= ((array___AbstractArray___iterator_t
)CALL(variable2
,COLOR_abstract_collection___Collection___iterator
))(variable2
) /*Array::iterator*/;
1211 while (true) { /*for*/
1212 variable3
= ((array___ArrayIterator___is_ok_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___is_ok
))(variable2
) /*ArrayIterator::is_ok*/;
1213 if (!UNTAG_Bool(variable3
)) break; /*for*/
1214 variable3
= ((array___ArrayIterator___item_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___item
))(variable2
) /*ArrayIterator::item*/;
1215 variable4
= ((abstract_collection___Couple___second_t
)CALL( variable3
/*i*/,COLOR_abstract_collection___Couple___second
))( variable3
/*i*/) /*Couple::second*/;
1216 variable4
= TAG_Bool((variable4
== variable0
/*item*/) || ((variable4
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable4
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable4
,COLOR_kernel___Object_____eqeq
))(variable4
, variable0
/*item*/) /*Object::==*/)))));
1217 if (UNTAG_Bool(variable4
)) { /*if*/
1218 variable1
= TAG_Int(UNTAG_Int(variable1
)+UNTAG_Int( TAG_Int(1))) /*nb*/;
1220 continue_81
: while(0);
1221 ((array___ArrayIterator___next_t
)CALL(variable2
,COLOR_abstract_collection___Iterator___next
))(variable2
) /*ArrayIterator::next*/;
1224 variable1
= variable1
/*nb*/;
1225 goto return_label80
;
1226 return_label80
: while(false);
1227 tracehead
= trace
.prev
;
1230 val_t
array___ArrayMap___iterator(val_t self
) {
1231 struct trace_t trace
= {NULL
, "array::ArrayMap::iterator (bin/../lib/standard//array.nit:454,2--99)"};
1234 trace
.prev
= tracehead
; tracehead
= &trace
;
1235 variable0
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1236 variable0
= ((array___AbstractArray___iterator_t
)CALL(variable0
,COLOR_abstract_collection___Collection___iterator
))(variable0
) /*Array::iterator*/;
1237 variable1
= NEW_abstract_collection___CoupleMapIterator___init(variable0
); /*new CoupleMapIterator[K, E]*/
1238 variable0
= variable1
;
1239 goto return_label82
;
1240 return_label82
: while(false);
1241 tracehead
= trace
.prev
;
1244 val_t
array___ArrayMap___is_empty(val_t self
) {
1245 struct trace_t trace
= {NULL
, "array::ArrayMap::is_empty (bin/../lib/standard//array.nit:456,2--46)"};
1247 trace
.prev
= tracehead
; tracehead
= &trace
;
1248 variable0
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1249 variable0
= ((array___AbstractArray___is_empty_t
)CALL(variable0
,COLOR_abstract_collection___Collection___is_empty
))(variable0
) /*Array::is_empty*/;
1250 goto return_label83
;
1251 return_label83
: while(false);
1252 tracehead
= trace
.prev
;
1255 void array___ArrayMap___remove(val_t self
, val_t param0
) {
1256 struct trace_t trace
= {NULL
, "array::ArrayMap::remove (bin/../lib/standard//array.nit:458,2--466:9)"};
1263 trace
.prev
= tracehead
; tracehead
= &trace
;
1265 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1266 variable2
= ((array___AbstractArray___length_t
)CALL(variable2
,COLOR_abstract_collection___Collection___length
))(variable2
) /*Array::length*/;
1267 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1)));
1268 variable1
= variable2
;
1269 while (true) { /*while*/
1270 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
1271 if (!UNTAG_Bool(variable2
)) break; /* while*/
1272 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1273 variable3
= variable1
/*i*/;
1274 variable4
= TAG_Bool(UNTAG_Int( variable3
/*index*/)>=UNTAG_Int( TAG_Int(0)));
1275 variable5
= variable4
;
1276 if (UNTAG_Bool(variable5
)) { /* and */
1277 variable5
= variable2
;
1278 variable5
= ATTR_array___AbstractArray____length(variable5
) /*Array::_length*/;
1279 variable5
= TAG_Bool(UNTAG_Int( variable3
/*index*/)<UNTAG_Int(variable5
));
1281 variable4
= variable5
;
1282 if (!UNTAG_Bool(variable4
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
1283 variable4
= variable2
;
1284 variable4
= ATTR_array___Array____items(variable4
) /*Array::_items*/;
1285 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable3
/*index*/)];
1286 goto return_label86
;
1287 return_label86
: while(false);
1288 variable2
= variable4
;
1289 variable2
= ((abstract_collection___Couple___second_t
)CALL(variable2
,COLOR_abstract_collection___Couple___second
))(variable2
) /*Couple::second*/;
1290 variable2
= TAG_Bool((variable2
== variable0
/*item*/) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, variable0
/*item*/) /*Object::==*/)))));
1291 if (UNTAG_Bool(variable2
)) { /*if*/
1292 ((array___ArrayMap___remove_at_index_t
)CALL( self
,COLOR_array___ArrayMap___remove_at_index
))( self
, variable1
/*i*/) /*ArrayMap::remove_at_index*/;
1293 goto return_label84
;
1295 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1))) /*i*/;
1296 continue_85
: while(0);
1299 return_label84
: while(false);
1300 tracehead
= trace
.prev
;
1303 void array___ArrayMap___remove_all(val_t self
, val_t param0
) {
1304 struct trace_t trace
= {NULL
, "array::ArrayMap::remove_all (bin/../lib/standard//array.nit:470,2--477:9)"};
1311 trace
.prev
= tracehead
; tracehead
= &trace
;
1313 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1314 variable2
= ((array___AbstractArray___length_t
)CALL(variable2
,COLOR_abstract_collection___Collection___length
))(variable2
) /*Array::length*/;
1315 variable2
= TAG_Int(UNTAG_Int(variable2
)-UNTAG_Int( TAG_Int(1)));
1316 variable1
= variable2
;
1317 while (true) { /*while*/
1318 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
1319 if (!UNTAG_Bool(variable2
)) break; /* while*/
1320 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1321 variable3
= variable1
/*i*/;
1322 variable4
= TAG_Bool(UNTAG_Int( variable3
/*index*/)>=UNTAG_Int( TAG_Int(0)));
1323 variable5
= variable4
;
1324 if (UNTAG_Bool(variable5
)) { /* and */
1325 variable5
= variable2
;
1326 variable5
= ATTR_array___AbstractArray____length(variable5
) /*Array::_length*/;
1327 variable5
= TAG_Bool(UNTAG_Int( variable3
/*index*/)<UNTAG_Int(variable5
));
1329 variable4
= variable5
;
1330 if (!UNTAG_Bool(variable4
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
1331 variable4
= variable2
;
1332 variable4
= ATTR_array___Array____items(variable4
) /*Array::_items*/;
1333 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable3
/*index*/)];
1334 goto return_label89
;
1335 return_label89
: while(false);
1336 variable2
= variable4
;
1337 variable2
= ((abstract_collection___Couple___second_t
)CALL(variable2
,COLOR_abstract_collection___Couple___second
))(variable2
) /*Couple::second*/;
1338 variable2
= TAG_Bool((variable2
== variable0
/*item*/) || ((variable2
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable2
, variable0
/*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable2
,COLOR_kernel___Object_____eqeq
))(variable2
, variable0
/*item*/) /*Object::==*/)))));
1339 if (UNTAG_Bool(variable2
)) { /*if*/
1340 ((array___ArrayMap___remove_at_index_t
)CALL( self
,COLOR_array___ArrayMap___remove_at_index
))( self
, variable1
/*i*/) /*ArrayMap::remove_at_index*/;
1342 variable1
= TAG_Int(UNTAG_Int(variable1
)-UNTAG_Int( TAG_Int(1))) /*i*/;
1343 continue_88
: while(0);
1346 tracehead
= trace
.prev
;
1349 void array___ArrayMap___remove_at(val_t self
, val_t param0
) {
1350 struct trace_t trace
= {NULL
, "array::ArrayMap::remove_at (bin/../lib/standard//array.nit:481,2--484:34)"};
1354 trace
.prev
= tracehead
; tracehead
= &trace
;
1356 variable2
= ((array___ArrayMap___index_t
)CALL( self
,COLOR_array___ArrayMap___index
))( self
, variable0
/*key*/) /*ArrayMap::index*/;
1357 variable1
= variable2
;
1358 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
1359 if (UNTAG_Bool(variable2
)) { /*if*/
1360 ((array___ArrayMap___remove_at_index_t
)CALL( self
,COLOR_array___ArrayMap___remove_at_index
))( self
, variable1
/*i*/) /*ArrayMap::remove_at_index*/;
1362 tracehead
= trace
.prev
;
1365 void array___ArrayMap___clear(val_t self
) {
1366 struct trace_t trace
= {NULL
, "array::ArrayMap::clear (bin/../lib/standard//array.nit:487,2--33)"};
1368 trace
.prev
= tracehead
; tracehead
= &trace
;
1369 variable0
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1370 ((array___AbstractArray___clear_t
)CALL(variable0
,COLOR_abstract_collection___RemovableCollection___clear
))(variable0
) /*Array::clear*/;
1371 tracehead
= trace
.prev
;
1374 void array___ArrayMap___enlarge(val_t self
, val_t param0
) {
1375 struct trace_t trace
= {NULL
, "array::ArrayMap::enlarge (bin/../lib/standard//array.nit:489,2--490:45)"};
1378 trace
.prev
= tracehead
; tracehead
= &trace
;
1380 variable1
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1381 ((array___Array___enlarge_t
)CALL(variable1
,COLOR_array___AbstractArray___enlarge
))(variable1
, variable0
/*cap*/) /*Array::enlarge*/;
1382 tracehead
= trace
.prev
;
1385 val_t
array___ArrayMap___couple_at(val_t self
, val_t param0
) {
1386 struct trace_t trace
= {NULL
, "array::ArrayMap::couple_at (bin/../lib/standard//array.nit:492,2--498:14)"};
1393 trace
.prev
= tracehead
; tracehead
= &trace
;
1395 variable2
= ((array___ArrayMap___index_t
)CALL( self
,COLOR_array___ArrayMap___index
))( self
, variable0
/*key*/) /*ArrayMap::index*/;
1396 variable1
= variable2
;
1397 variable2
= TAG_Bool(UNTAG_Int( variable1
/*i*/)>=UNTAG_Int( TAG_Int(0)));
1398 if (UNTAG_Bool(variable2
)) { /*if*/
1399 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1400 variable3
= variable1
/*i*/;
1401 variable4
= TAG_Bool(UNTAG_Int( variable3
/*index*/)>=UNTAG_Int( TAG_Int(0)));
1402 variable5
= variable4
;
1403 if (UNTAG_Bool(variable5
)) { /* and */
1404 variable5
= variable2
;
1405 variable5
= ATTR_array___AbstractArray____length(variable5
) /*Array::_length*/;
1406 variable5
= TAG_Bool(UNTAG_Int( variable3
/*index*/)<UNTAG_Int(variable5
));
1408 variable4
= variable5
;
1409 if (!UNTAG_Bool(variable4
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
1410 variable4
= variable2
;
1411 variable4
= ATTR_array___Array____items(variable4
) /*Array::_items*/;
1412 variable4
= UNBOX_NativeArray(variable4
)[UNTAG_Int( variable3
/*index*/)];
1413 goto return_label94
;
1414 return_label94
: while(false);
1415 variable2
= variable4
;
1416 variable1
= variable2
;
1417 goto return_label93
;
1419 variable1
= NIT_NULL
/*null*/;
1420 goto return_label93
;
1422 return_label93
: while(false);
1423 tracehead
= trace
.prev
;
1426 void array___ArrayMap___remove_at_index(val_t self
, val_t param0
) {
1427 struct trace_t trace
= {NULL
, "array::ArrayMap::remove_at_index (bin/../lib/standard//array.nit:505,2--509:12)"};
1431 trace
.prev
= tracehead
; tracehead
= &trace
;
1433 variable1
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1434 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1435 variable2
= ((abstract_collection___IndexedCollection___last_t
)CALL(variable2
,COLOR_abstract_collection___IndexedCollection___last
))(variable2
) /*Array::last*/;
1436 ((array___Array_____braeq_t
)CALL(variable1
,COLOR_abstract_collection___Map_____braeq
))(variable1
, variable0
/*i*/, variable2
) /*Array::[]=*/;
1437 variable1
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1438 ((array___AbstractArray___pop_t
)CALL(variable1
,COLOR_abstract_collection___IndexedCollection___pop
))(variable1
) /*Array::pop*/;
1439 tracehead
= trace
.prev
;
1442 val_t
array___ArrayMap___index(val_t self
, val_t param0
) {
1443 struct trace_t trace
= {NULL
, "array::ArrayMap::index (bin/../lib/standard//array.nit:515,2--530:11)"};
1451 trace
.prev
= tracehead
; tracehead
= &trace
;
1453 variable2
= ATTR_array___ArrayMap____last_index( self
) /*ArrayMap::_last_index*/;
1454 variable1
= variable2
;
1455 variable2
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1456 variable2
= ((array___AbstractArray___length_t
)CALL(variable2
,COLOR_abstract_collection___Collection___length
))(variable2
) /*Array::length*/;
1457 variable2
= TAG_Bool(UNTAG_Int( variable1
/*l*/)<UNTAG_Int(variable2
));
1458 variable3
= variable2
;
1459 if (UNTAG_Bool(variable3
)) { /* and */
1460 variable3
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1461 variable4
= variable1
/*l*/;
1462 variable5
= TAG_Bool(UNTAG_Int( variable4
/*index*/)>=UNTAG_Int( TAG_Int(0)));
1463 variable6
= variable5
;
1464 if (UNTAG_Bool(variable6
)) { /* and */
1465 variable6
= variable3
;
1466 variable6
= ATTR_array___AbstractArray____length(variable6
) /*Array::_length*/;
1467 variable6
= TAG_Bool(UNTAG_Int( variable4
/*index*/)<UNTAG_Int(variable6
));
1469 variable5
= variable6
;
1470 if (!UNTAG_Bool(variable5
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
1471 variable5
= variable3
;
1472 variable5
= ATTR_array___Array____items(variable5
) /*Array::_items*/;
1473 variable5
= UNBOX_NativeArray(variable5
)[UNTAG_Int( variable4
/*index*/)];
1474 goto return_label97
;
1475 return_label97
: while(false);
1476 variable3
= variable5
;
1477 variable3
= ((abstract_collection___Couple___first_t
)CALL(variable3
,COLOR_abstract_collection___Couple___first
))(variable3
) /*Couple::first*/;
1478 variable3
= TAG_Bool((variable3
== variable0
/*key*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, variable0
/*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable0
/*key*/) /*Object::==*/)))));
1480 variable2
= variable3
;
1481 if (UNTAG_Bool(variable2
)) { /*if*/
1482 variable1
= variable1
/*l*/;
1483 goto return_label96
;
1485 variable2
= TAG_Int(0);
1486 while (true) { /*while*/
1487 variable3
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1488 variable3
= ((array___AbstractArray___length_t
)CALL(variable3
,COLOR_abstract_collection___Collection___length
))(variable3
) /*Array::length*/;
1489 variable3
= TAG_Bool(UNTAG_Int( variable2
/*i*/)<UNTAG_Int(variable3
));
1490 if (!UNTAG_Bool(variable3
)) break; /* while*/
1491 variable3
= ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/;
1492 variable4
= variable2
/*i*/;
1493 variable5
= TAG_Bool(UNTAG_Int( variable4
/*index*/)>=UNTAG_Int( TAG_Int(0)));
1494 variable6
= variable5
;
1495 if (UNTAG_Bool(variable6
)) { /* and */
1496 variable6
= variable3
;
1497 variable6
= ATTR_array___AbstractArray____length(variable6
) /*Array::_length*/;
1498 variable6
= TAG_Bool(UNTAG_Int( variable4
/*index*/)<UNTAG_Int(variable6
));
1500 variable5
= variable6
;
1501 if (!UNTAG_Bool(variable5
)) { fprintf(stderr
, "Assert 'index' failed: bin/../lib/standard//array.nit:229,3--46\n"); nit_exit(1);}
1502 variable5
= variable3
;
1503 variable5
= ATTR_array___Array____items(variable5
) /*Array::_items*/;
1504 variable5
= UNBOX_NativeArray(variable5
)[UNTAG_Int( variable4
/*index*/)];
1505 goto return_label99
;
1506 return_label99
: while(false);
1507 variable3
= variable5
;
1508 variable3
= ((abstract_collection___Couple___first_t
)CALL(variable3
,COLOR_abstract_collection___Couple___first
))(variable3
) /*Couple::first*/;
1509 variable3
= TAG_Bool((variable3
== variable0
/*key*/) || ((variable3
!= NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable3
, variable0
/*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable3
,COLOR_kernel___Object_____eqeq
))(variable3
, variable0
/*key*/) /*Object::==*/)))));
1510 if (UNTAG_Bool(variable3
)) { /*if*/
1511 ATTR_array___ArrayMap____last_index( self
) /*ArrayMap::_last_index*/ = variable2
/*i*/;
1512 variable1
= variable2
/*i*/;
1513 goto return_label96
;
1515 variable2
= TAG_Int(UNTAG_Int(variable2
)+UNTAG_Int( TAG_Int(1))) /*i*/;
1516 continue_98
: while(0);
1519 variable3
= TAG_Int(-UNTAG_Int( TAG_Int(1)));
1520 variable1
= variable3
;
1521 goto return_label96
;
1522 return_label96
: while(false);
1523 tracehead
= trace
.prev
;
1526 void array___ArrayMap___init(val_t self
, int* init_table
) {
1527 struct trace_t trace
= {NULL
, "array::ArrayMap::init (bin/../lib/standard//array.nit:533,2--536:31)"};
1529 trace
.prev
= tracehead
; tracehead
= &trace
;
1530 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayMap
].i
]) return;
1531 variable0
= NEW_array___Array___init(); /*new Array[Couple[K, E]]*/
1532 ATTR_array___ArrayMap____items( self
) /*ArrayMap::_items*/ = variable0
;
1533 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayMap
].i
] = 1;
1534 tracehead
= trace
.prev
;
1537 val_t
array___Iterator___to_a(val_t self
) {
1538 struct trace_t trace
= {NULL
, "array::Iterator::to_a (bin/../lib/standard//array.nit:543,2--551:12)"};
1541 trace
.prev
= tracehead
; tracehead
= &trace
;
1542 variable1
= NEW_array___Array___init(); /*new Array[E]*/
1543 variable0
= variable1
;
1544 while (true) { /*while*/
1545 variable1
= ((abstract_collection___Iterator___is_ok_t
)CALL( self
,COLOR_abstract_collection___Iterator___is_ok
))( self
) /*Iterator::is_ok*/;
1546 if (!UNTAG_Bool(variable1
)) break; /* while*/
1547 variable1
= ((abstract_collection___Iterator___item_t
)CALL( self
,COLOR_abstract_collection___Iterator___item
))( self
) /*Iterator::item*/;
1548 ((array___AbstractArray___add_t
)CALL( variable0
/*res*/,COLOR_abstract_collection___SimpleCollection___add
))( variable0
/*res*/, variable1
) /*Array::add*/;
1549 ((abstract_collection___Iterator___next_t
)CALL( self
,COLOR_abstract_collection___Iterator___next
))( self
) /*Iterator::next*/;
1550 continue_102
: while(0);
1552 break_102
: while(0);
1553 variable0
= variable0
/*res*/;
1554 goto return_label101
;
1555 return_label101
: while(false);
1556 tracehead
= trace
.prev
;
1559 val_t
array___Collection___to_a(val_t self
) {
1560 struct trace_t trace
= {NULL
, "array::Collection::to_a (bin/../lib/standard//array.nit:556,2--559:22)"};
1562 trace
.prev
= tracehead
; tracehead
= &trace
;
1563 variable0
= ((abstract_collection___Collection___iterator_t
)CALL( self
,COLOR_abstract_collection___Collection___iterator
))( self
) /*Collection::iterator*/;
1564 variable0
= ((array___Iterator___to_a_t
)CALL(variable0
,COLOR_array___Iterator___to_a
))(variable0
) /*Iterator::to_a*/;
1565 goto return_label103
;
1566 return_label103
: while(false);
1567 tracehead
= trace
.prev
;
1570 val_t
array___ArrayCapable___calloc_array(val_t self
, val_t param0
) {
1571 struct trace_t trace
= {NULL
, "array::ArrayCapable::calloc_array (bin/../lib/standard//array.nit:567,2--568:54)"};
1572 trace
.prev
= tracehead
; tracehead
= &trace
;
1573 tracehead
= trace
.prev
;
1574 return BOX_NativeArray((val_t
*)malloc((UNTAG_Int( param0
) * sizeof(val_t
))));
1576 val_t
array___NativeArray_____bra(val_t self
, val_t param0
) {
1577 struct trace_t trace
= {NULL
, "array::NativeArray::[] (bin/../lib/standard//array.nit:573,2--23)"};
1578 trace
.prev
= tracehead
; tracehead
= &trace
;
1579 tracehead
= trace
.prev
;
1580 return UNBOX_NativeArray( self
)[UNTAG_Int( param0
)];
1582 void array___NativeArray_____braeq(val_t self
, val_t param0
, val_t param1
) {
1583 struct trace_t trace
= {NULL
, "array::NativeArray::[]= (bin/../lib/standard//array.nit:574,2--29)"};
1584 trace
.prev
= tracehead
; tracehead
= &trace
;
1585 UNBOX_NativeArray( self
)[UNTAG_Int( param0
)]= param1
;
1586 tracehead
= trace
.prev
;
1589 void array___NativeArray___copy_to(val_t self
, val_t param0
, val_t param1
) {
1590 struct trace_t trace
= {NULL
, "array::NativeArray::copy_to (bin/../lib/standard//array.nit:575,2--47)"};
1591 trace
.prev
= tracehead
; tracehead
= &trace
;
1592 (void)memcpy(UNBOX_NativeArray( param0
), UNBOX_NativeArray( self
), UNTAG_Int( param1
)*sizeof(val_t
));
1593 tracehead
= trace
.prev
;