1 /* This C file is generated by NIT to compile module array. */
2 #include "array._sep.h"
3 val_t
array___AbstractArray_____eqeq(val_t self
, val_t param0
) {
4 struct trace_t trace
= {NULL
, NULL
, 199, LOCATE_array___AbstractArray_____eqeq
};
6 void **closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_array
;
11 variable
[3] = TAG_Bool(( variable
[1] /*o*/==NIT_NULL
) || VAL_ISA( variable
[1] /*o*/, COLOR_AbstractArray
, ID_AbstractArray
)) /*cast AbstractArray[E]*/;
12 variable
[3] = TAG_Bool(!UNTAG_Bool(variable
[3]));
13 if (!UNTAG_Bool(variable
[3])) { /* or */
14 variable
[3] = TAG_Bool(IS_EQUAL_NN( variable
[1] /*o*/, NIT_NULL
/*null*/));
16 if (UNTAG_Bool(variable
[3])) { /*if*/
17 variable
[2] = TAG_Bool(false);
20 variable
[3] = TAG_Bool(( variable
[1] /*o*/==NIT_NULL
) || VAL_ISA( variable
[1] /*o*/, COLOR_AbstractArray
, ID_AbstractArray
)) /*cast AbstractArray[E]*/;
21 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___AbstractArray_____eqeq
, LOCATE_array
, 203); nit_exit(1);}
22 variable
[4] = variable
[0];
23 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
24 variable
[3] = variable
[4];
25 variable
[4] = ((array___AbstractArray___length_t
)CALL( variable
[1] /*o*/,COLOR_abstract_collection___Collection___length
))( variable
[1] /*o*/) /*AbstractArray::length*/;
26 variable
[4] = TAG_Bool((variable
[4])!=( variable
[3] /*l*/));
27 if (UNTAG_Bool(variable
[4])) { /*if*/
28 variable
[2] = TAG_Bool(false);
31 variable
[4] = TAG_Int(0);
32 while (true) { /*while*/
33 variable
[5] = TAG_Bool(UNTAG_Int( variable
[4] /*i*/)<UNTAG_Int( variable
[3] /*l*/));
34 if (!UNTAG_Bool(variable
[5])) break; /* while*/
35 variable
[5] = variable
[0];
36 variable
[5] = ((abstract_collection___Map_____bra_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____bra
))(variable
[5], variable
[4] /*i*/) /*Map::[]*/;
37 variable
[6] = ((abstract_collection___Map_____bra_t
)CALL( variable
[1] /*o*/,COLOR_abstract_collection___Map_____bra
))( variable
[1] /*o*/, variable
[4] /*i*/) /*Map::[]*/;
38 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == variable
[6]) || ((variable
[5] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5],variable
[6])):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))(variable
[5], variable
[6]) /*Object::==*/)))))));
39 if (UNTAG_Bool(variable
[5])) { /*if*/
40 variable
[2] = TAG_Bool(false);
43 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
47 variable
[2] = TAG_Bool(true);
49 return_label0
: while(false);
50 tracehead
= trace
.prev
;
53 void array___AbstractArray___output(val_t self
) {
54 struct trace_t trace
= {NULL
, NULL
, 186, LOCATE_array___AbstractArray___output
};
56 void **closurevariable
= NULL
;
57 trace
.prev
= tracehead
; tracehead
= &trace
;
58 trace
.file
= LOCATE_array
;
60 variable
[2] = TAG_Int(0);
61 variable
[4] = variable
[0];
62 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
63 variable
[3] = variable
[4];
64 while (true) { /*while*/
65 variable
[4] = TAG_Bool(UNTAG_Int( variable
[2] /*i*/)<UNTAG_Int( variable
[3] /*l*/));
66 if (!UNTAG_Bool(variable
[4])) break; /* while*/
67 variable
[5] = variable
[0];
68 variable
[5] = ((abstract_collection___Map_____bra_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____bra
))(variable
[5], variable
[2] /*i*/) /*Map::[]*/;
69 variable
[4] = variable
[5];
70 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[4] /*e*/ == NIT_NULL
/*null*/) || (( variable
[4] /*e*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable
[4] /*e*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[4] /*e*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable
[4] /*e*/,COLOR_kernel___Object_____eqeq
))( variable
[4] /*e*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
71 if (UNTAG_Bool(variable
[5])) { /*if*/
72 ((kernel___Object___output_t
)CALL( variable
[4] /*e*/,COLOR_kernel___Object___output
))( variable
[4] /*e*/) /*Object::output*/;
74 variable
[2] = TAG_Int(UNTAG_Int(variable
[2])+UNTAG_Int( TAG_Int(1))) /*i*/;
78 return_label2
: while(false);
79 tracehead
= trace
.prev
;
82 val_t
array___AbstractArray___iterator(val_t self
) {
83 struct trace_t trace
= {NULL
, NULL
, 197, LOCATE_array___AbstractArray___iterator
};
85 void **closurevariable
= NULL
;
86 trace
.prev
= tracehead
; tracehead
= &trace
;
87 trace
.file
= LOCATE_array
;
89 variable
[2] = variable
[0];
90 variable
[3] = NEW_ArrayIterator_array___ArrayIterator___init(variable
[2]); /*new ArrayIterator[E]*/
91 variable
[2] = variable
[3];
92 variable
[1] = variable
[2];
94 return_label4
: while(false);
95 tracehead
= trace
.prev
;
98 val_t
array___AbstractArray___is_empty(val_t self
) {
99 struct trace_t trace
= {NULL
, NULL
, 28, LOCATE_array___AbstractArray___is_empty
};
101 void **closurevariable
= NULL
;
102 trace
.prev
= tracehead
; tracehead
= &trace
;
103 trace
.file
= LOCATE_array
;
105 variable
[2] = variable
[0];
106 variable
[2] = ATTR_array___AbstractArray____length(variable
[2]) /*AbstractArray::_length*/;
107 variable
[2] = TAG_Bool((variable
[2])==( TAG_Int(0)));
108 variable
[1] = variable
[2];
110 return_label5
: while(false);
111 tracehead
= trace
.prev
;
114 val_t
array___AbstractArray___length(val_t self
) {
115 struct trace_t trace
= {NULL
, NULL
, 25, LOCATE_array___AbstractArray___length
};
116 val_t
*variable
= NULL
;
117 void **closurevariable
= NULL
;
118 trace
.prev
= tracehead
; tracehead
= &trace
;
119 trace
.file
= LOCATE_array
;
120 tracehead
= trace
.prev
;
121 return ATTR_array___AbstractArray____length( self
) /*AbstractArray::_length*/;
123 val_t
array___AbstractArray___has(val_t self
, val_t param0
) {
124 struct trace_t trace
= {NULL
, NULL
, 75, LOCATE_array___AbstractArray___has
};
126 void **closurevariable
= NULL
;
127 trace
.prev
= tracehead
; tracehead
= &trace
;
128 trace
.file
= LOCATE_array
;
130 variable
[1] = param0
;
131 variable
[3] = TAG_Int(0);
132 variable
[5] = variable
[0];
133 variable
[5] = ((array___AbstractArray___length_t
)CALL(variable
[5],COLOR_abstract_collection___Collection___length
))(variable
[5]) /*AbstractArray::length*/;
134 variable
[4] = variable
[5];
135 while (true) { /*while*/
136 variable
[5] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)<UNTAG_Int( variable
[4] /*l*/));
137 if (!UNTAG_Bool(variable
[5])) break; /* while*/
138 variable
[5] = variable
[0];
139 variable
[5] = ((abstract_collection___Map_____bra_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____bra
))(variable
[5], variable
[3] /*i*/) /*Map::[]*/;
140 variable
[5] = TAG_Bool((variable
[5] == variable
[1] /*item*/) || ((variable
[5] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))(variable
[5], variable
[1] /*item*/) /*Object::==*/)))));
141 if (UNTAG_Bool(variable
[5])) { /*if*/
142 variable
[2] = TAG_Bool(true);
145 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
146 continue_7
: while(0);
149 variable
[2] = TAG_Bool(false);
151 return_label6
: while(false);
152 tracehead
= trace
.prev
;
155 val_t
array___AbstractArray___has_only(val_t self
, val_t param0
) {
156 struct trace_t trace
= {NULL
, NULL
, 86, LOCATE_array___AbstractArray___has_only
};
158 void **closurevariable
= NULL
;
159 trace
.prev
= tracehead
; tracehead
= &trace
;
160 trace
.file
= LOCATE_array
;
162 variable
[1] = param0
;
163 variable
[3] = TAG_Int(0);
164 variable
[5] = variable
[0];
165 variable
[5] = ((array___AbstractArray___length_t
)CALL(variable
[5],COLOR_abstract_collection___Collection___length
))(variable
[5]) /*AbstractArray::length*/;
166 variable
[4] = variable
[5];
167 while (true) { /*while*/
168 variable
[5] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)<UNTAG_Int( variable
[4] /*l*/));
169 if (!UNTAG_Bool(variable
[5])) break; /* while*/
170 variable
[5] = variable
[0];
171 variable
[5] = ((abstract_collection___Map_____bra_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____bra
))(variable
[5], variable
[3] /*i*/) /*Map::[]*/;
172 variable
[5] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[5] == variable
[1] /*item*/) || ((variable
[5] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))(variable
[5], variable
[1] /*item*/) /*Object::==*/)))))));
173 if (UNTAG_Bool(variable
[5])) { /*if*/
174 variable
[2] = TAG_Bool(false);
177 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
178 continue_9
: while(0);
181 variable
[2] = TAG_Bool(true);
183 return_label8
: while(false);
184 tracehead
= trace
.prev
;
187 val_t
array___AbstractArray___count(val_t self
, val_t param0
) {
188 struct trace_t trace
= {NULL
, NULL
, 99, LOCATE_array___AbstractArray___count
};
190 void **closurevariable
= NULL
;
191 trace
.prev
= tracehead
; tracehead
= &trace
;
192 trace
.file
= LOCATE_array
;
194 variable
[1] = param0
;
195 variable
[3] = TAG_Int(0);
196 variable
[4] = TAG_Int(0);
197 variable
[6] = variable
[0];
198 variable
[6] = ((array___AbstractArray___length_t
)CALL(variable
[6],COLOR_abstract_collection___Collection___length
))(variable
[6]) /*AbstractArray::length*/;
199 variable
[5] = variable
[6];
200 while (true) { /*while*/
201 variable
[6] = TAG_Bool(UNTAG_Int( variable
[4] /*i*/)<UNTAG_Int( variable
[5] /*l*/));
202 if (!UNTAG_Bool(variable
[6])) break; /* while*/
203 variable
[6] = variable
[0];
204 variable
[6] = ((abstract_collection___Map_____bra_t
)CALL(variable
[6],COLOR_abstract_collection___Map_____bra
))(variable
[6], variable
[4] /*i*/) /*Map::[]*/;
205 variable
[6] = TAG_Bool((variable
[6] == variable
[1] /*item*/) || ((variable
[6] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))(variable
[6], variable
[1] /*item*/) /*Object::==*/)))));
206 if (UNTAG_Bool(variable
[6])) { /*if*/
207 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*res*/;
209 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
210 continue_11
: while(0);
213 variable
[2] = variable
[3] /*res*/;
215 return_label10
: while(false);
216 tracehead
= trace
.prev
;
219 void array___AbstractArray___clear(val_t self
) {
220 struct trace_t trace
= {NULL
, NULL
, 73, LOCATE_array___AbstractArray___clear
};
222 void **closurevariable
= NULL
;
223 trace
.prev
= tracehead
; tracehead
= &trace
;
224 trace
.file
= LOCATE_array
;
226 variable
[2] = variable
[0];
227 ATTR_array___AbstractArray____length(variable
[2]) /*AbstractArray::_length*/ = TAG_Int(0);
228 return_label12
: while(false);
229 tracehead
= trace
.prev
;
232 void array___AbstractArray___remove(val_t self
, val_t param0
) {
233 struct trace_t trace
= {NULL
, NULL
, 152, LOCATE_array___AbstractArray___remove
};
235 void **closurevariable
= NULL
;
236 trace
.prev
= tracehead
; tracehead
= &trace
;
237 trace
.file
= LOCATE_array
;
239 variable
[1] = param0
;
240 variable
[3] = variable
[0];
241 variable
[4] = variable
[0];
242 variable
[4] = ((array___AbstractArray___index_of_t
)CALL(variable
[4],COLOR_abstract_collection___IndexedCollection___index_of
))(variable
[4], variable
[1] /*item*/) /*AbstractArray::index_of*/;
243 ((array___AbstractArray___remove_at_t
)CALL(variable
[3],COLOR_abstract_collection___Map___remove_at
))(variable
[3], variable
[4]) /*AbstractArray::remove_at*/;
244 return_label13
: while(false);
245 tracehead
= trace
.prev
;
248 void array___AbstractArray___remove_all(val_t self
, val_t param0
) {
249 struct trace_t trace
= {NULL
, NULL
, 154, LOCATE_array___AbstractArray___remove_all
};
251 void **closurevariable
= NULL
;
252 trace
.prev
= tracehead
; tracehead
= &trace
;
253 trace
.file
= LOCATE_array
;
255 variable
[1] = param0
;
256 variable
[4] = variable
[0];
257 variable
[4] = ((array___AbstractArray___index_of_t
)CALL(variable
[4],COLOR_abstract_collection___IndexedCollection___index_of
))(variable
[4], variable
[1] /*item*/) /*AbstractArray::index_of*/;
258 variable
[3] = variable
[4];
259 while (true) { /*while*/
260 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
261 if (!UNTAG_Bool(variable
[4])) break; /* while*/
262 variable
[4] = variable
[0];
263 ((array___AbstractArray___remove_at_t
)CALL(variable
[4],COLOR_abstract_collection___Map___remove_at
))(variable
[4], variable
[3] /*i*/) /*AbstractArray::remove_at*/;
264 variable
[4] = variable
[0];
265 variable
[4] = ((array___AbstractArray___index_of_from_t
)CALL(variable
[4],COLOR_array___AbstractArray___index_of_from
))(variable
[4], variable
[1] /*item*/, variable
[3] /*i*/) /*AbstractArray::index_of_from*/;
266 variable
[3] = variable
[4] /*i=*/;
267 continue_15
: while(0);
270 return_label14
: while(false);
271 tracehead
= trace
.prev
;
274 val_t
array___AbstractArray___has_key(val_t self
, val_t param0
) {
275 struct trace_t trace
= {NULL
, NULL
, 97, LOCATE_array___AbstractArray___has_key
};
277 void **closurevariable
= NULL
;
278 trace
.prev
= tracehead
; tracehead
= &trace
;
279 trace
.file
= LOCATE_array
;
281 variable
[1] = param0
;
282 variable
[3] = TAG_Bool(UNTAG_Int( variable
[1] /*index*/)>=UNTAG_Int( TAG_Int(0)));
283 variable
[4] = variable
[3];
284 if (UNTAG_Bool(variable
[4])) { /* and */
285 variable
[4] = variable
[0];
286 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
287 variable
[4] = TAG_Bool(UNTAG_Int( variable
[1] /*index*/)<UNTAG_Int(variable
[4]));
289 variable
[3] = variable
[4];
290 variable
[2] = variable
[3];
292 return_label16
: while(false);
293 tracehead
= trace
.prev
;
296 void array___AbstractArray___remove_at(val_t self
, val_t param0
) {
297 struct trace_t trace
= {NULL
, NULL
, 163, LOCATE_array___AbstractArray___remove_at
};
299 void **closurevariable
= NULL
;
300 trace
.prev
= tracehead
; tracehead
= &trace
;
301 trace
.file
= LOCATE_array
;
303 variable
[1] = param0
;
304 variable
[4] = variable
[0];
305 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
306 variable
[3] = variable
[4];
307 variable
[4] = TAG_Bool(UNTAG_Int( variable
[1] /*i*/)>=UNTAG_Int( TAG_Int(0)));
308 variable
[5] = variable
[4];
309 if (UNTAG_Bool(variable
[5])) { /* and */
310 variable
[5] = TAG_Bool(UNTAG_Int( variable
[1] /*i*/)<UNTAG_Int( variable
[3] /*l*/));
312 variable
[4] = variable
[5];
313 if (UNTAG_Bool(variable
[4])) { /*if*/
314 variable
[5] = TAG_Int(UNTAG_Int( variable
[1] /*i*/)+UNTAG_Int( TAG_Int(1)));
315 variable
[4] = variable
[5];
316 while (true) { /*while*/
317 variable
[5] = TAG_Bool(UNTAG_Int( variable
[4] /*j*/)<UNTAG_Int( variable
[3] /*l*/));
318 if (!UNTAG_Bool(variable
[5])) break; /* while*/
319 variable
[5] = variable
[0];
320 variable
[6] = TAG_Int(UNTAG_Int( variable
[4] /*j*/)-UNTAG_Int( TAG_Int(1)));
321 variable
[7] = variable
[0];
322 variable
[7] = ((abstract_collection___Map_____bra_t
)CALL(variable
[7],COLOR_abstract_collection___Map_____bra
))(variable
[7], variable
[4] /*j*/) /*Map::[]*/;
323 ((abstract_collection___Map_____braeq_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____braeq
))(variable
[5], variable
[6], variable
[7]) /*Map::[]=*/;
324 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])+UNTAG_Int( TAG_Int(1))) /*j*/;
325 continue_18
: while(0);
328 variable
[5] = variable
[0];
329 variable
[6] = TAG_Int(UNTAG_Int( variable
[3] /*l*/)-UNTAG_Int( TAG_Int(1)));
330 ATTR_array___AbstractArray____length(variable
[5]) /*AbstractArray::_length*/ = variable
[6];
332 return_label17
: while(false);
333 tracehead
= trace
.prev
;
336 void array___AbstractArray___add(val_t self
, val_t param0
) {
337 struct trace_t trace
= {NULL
, NULL
, 71, LOCATE_array___AbstractArray___add
};
339 void **closurevariable
= NULL
;
340 trace
.prev
= tracehead
; tracehead
= &trace
;
341 trace
.file
= LOCATE_array
;
343 variable
[1] = param0
;
344 variable
[3] = variable
[0];
345 variable
[4] = variable
[0];
346 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
347 ((abstract_collection___Map_____braeq_t
)CALL(variable
[3],COLOR_abstract_collection___Map_____braeq
))(variable
[3], variable
[4], variable
[1] /*item*/) /*Map::[]=*/;
348 return_label19
: while(false);
349 tracehead
= trace
.prev
;
352 void array___AbstractArray___push(val_t self
, val_t param0
) {
353 struct trace_t trace
= {NULL
, NULL
, 30, LOCATE_array___AbstractArray___push
};
355 void **closurevariable
= NULL
;
356 trace
.prev
= tracehead
; tracehead
= &trace
;
357 trace
.file
= LOCATE_array
;
359 variable
[1] = param0
;
360 variable
[3] = variable
[0];
361 ((array___AbstractArray___add_t
)CALL(variable
[3],COLOR_abstract_collection___SimpleCollection___add
))(variable
[3], variable
[1] /*item*/) /*AbstractArray::add*/;
362 return_label20
: while(false);
363 tracehead
= trace
.prev
;
366 val_t
array___AbstractArray___pop(val_t self
) {
367 struct trace_t trace
= {NULL
, NULL
, 32, LOCATE_array___AbstractArray___pop
};
369 void **closurevariable
= NULL
;
370 trace
.prev
= tracehead
; tracehead
= &trace
;
371 trace
.file
= LOCATE_array
;
373 variable
[2] = variable
[0];
374 variable
[2] = ((array___AbstractArray___is_empty_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___is_empty
))(variable
[2]) /*AbstractArray::is_empty*/;
375 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[2])))) { fprintf(stderr
, "Assert%s failed", " 'not_empty' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___AbstractArray___pop
, LOCATE_array
, 34); nit_exit(1);}
376 variable
[3] = variable
[0];
377 variable
[3] = ((abstract_collection___IndexedCollection___last_t
)CALL(variable
[3],COLOR_abstract_collection___IndexedCollection___last
))(variable
[3]) /*IndexedCollection::last*/;
378 variable
[2] = variable
[3];
379 variable
[3] = variable
[0];
380 ATTR_array___AbstractArray____length(variable
[3]) /*AbstractArray::_length*/ = TAG_Int(UNTAG_Int(ATTR_array___AbstractArray____length(variable
[3]) /*AbstractArray::_length*/)-UNTAG_Int( TAG_Int(1)));
381 variable
[1] = variable
[2] /*r*/;
383 return_label21
: while(false);
384 tracehead
= trace
.prev
;
387 void array___AbstractArray___unshift(val_t self
, val_t param0
) {
388 struct trace_t trace
= {NULL
, NULL
, 54, LOCATE_array___AbstractArray___unshift
};
390 void **closurevariable
= NULL
;
391 trace
.prev
= tracehead
; tracehead
= &trace
;
392 trace
.file
= LOCATE_array
;
394 variable
[1] = param0
;
395 variable
[4] = variable
[0];
396 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
397 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])-UNTAG_Int( TAG_Int(1)));
398 variable
[3] = variable
[4];
399 while (true) { /*while*/
400 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>UNTAG_Int( TAG_Int(0)));
401 if (!UNTAG_Bool(variable
[4])) break; /* while*/
402 variable
[4] = variable
[0];
403 variable
[5] = TAG_Int(UNTAG_Int( variable
[3] /*i*/)+UNTAG_Int( TAG_Int(1)));
404 variable
[6] = variable
[0];
405 variable
[6] = ((abstract_collection___Map_____bra_t
)CALL(variable
[6],COLOR_abstract_collection___Map_____bra
))(variable
[6], variable
[3] /*i*/) /*Map::[]*/;
406 ((abstract_collection___Map_____braeq_t
)CALL(variable
[4],COLOR_abstract_collection___Map_____braeq
))(variable
[4], variable
[5], variable
[6]) /*Map::[]=*/;
407 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])-UNTAG_Int( TAG_Int(1))) /*i*/;
408 continue_23
: while(0);
411 variable
[4] = variable
[0];
412 ((abstract_collection___Map_____braeq_t
)CALL(variable
[4],COLOR_abstract_collection___Map_____braeq
))(variable
[4], TAG_Int(0), variable
[1] /*item*/) /*Map::[]=*/;
413 return_label22
: while(false);
414 tracehead
= trace
.prev
;
417 val_t
array___AbstractArray___shift(val_t self
) {
418 struct trace_t trace
= {NULL
, NULL
, 40, LOCATE_array___AbstractArray___shift
};
420 void **closurevariable
= NULL
;
421 trace
.prev
= tracehead
; tracehead
= &trace
;
422 trace
.file
= LOCATE_array
;
424 variable
[2] = variable
[0];
425 variable
[2] = ((array___AbstractArray___is_empty_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___is_empty
))(variable
[2]) /*AbstractArray::is_empty*/;
426 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[2])))) { fprintf(stderr
, "Assert%s failed", " 'not_empty' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___AbstractArray___shift
, LOCATE_array
, 42); nit_exit(1);}
427 variable
[3] = variable
[0];
428 variable
[3] = ((abstract_collection___IndexedCollection___first_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___first
))(variable
[3]) /*IndexedCollection::first*/;
429 variable
[2] = variable
[3];
430 variable
[3] = TAG_Int(1);
431 variable
[5] = variable
[0];
432 variable
[5] = ((array___AbstractArray___length_t
)CALL(variable
[5],COLOR_abstract_collection___Collection___length
))(variable
[5]) /*AbstractArray::length*/;
433 variable
[4] = variable
[5];
434 while (true) { /*while*/
435 variable
[5] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)<UNTAG_Int( variable
[4] /*l*/));
436 if (!UNTAG_Bool(variable
[5])) break; /* while*/
437 variable
[5] = variable
[0];
438 variable
[6] = TAG_Int(UNTAG_Int( variable
[3] /*i*/)-UNTAG_Int( TAG_Int(1)));
439 variable
[7] = variable
[0];
440 variable
[7] = ((abstract_collection___Map_____bra_t
)CALL(variable
[7],COLOR_abstract_collection___Map_____bra
))(variable
[7], variable
[3] /*i*/) /*Map::[]*/;
441 ((abstract_collection___Map_____braeq_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____braeq
))(variable
[5], variable
[6], variable
[7]) /*Map::[]=*/;
442 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*i*/;
443 continue_25
: while(0);
446 variable
[5] = variable
[0];
447 variable
[6] = TAG_Int(UNTAG_Int( variable
[4] /*l*/)-UNTAG_Int( TAG_Int(1)));
448 ATTR_array___AbstractArray____length(variable
[5]) /*AbstractArray::_length*/ = variable
[6];
449 variable
[1] = variable
[2] /*r*/;
451 return_label24
: while(false);
452 tracehead
= trace
.prev
;
455 val_t
array___AbstractArray___index_of(val_t self
, val_t param0
) {
456 struct trace_t trace
= {NULL
, NULL
, 111, LOCATE_array___AbstractArray___index_of
};
458 void **closurevariable
= NULL
;
459 trace
.prev
= tracehead
; tracehead
= &trace
;
460 trace
.file
= LOCATE_array
;
462 variable
[1] = param0
;
463 variable
[3] = variable
[0];
464 variable
[3] = ((array___AbstractArray___index_of_from_t
)CALL(variable
[3],COLOR_array___AbstractArray___index_of_from
))(variable
[3], variable
[1] /*item*/, TAG_Int(0)) /*AbstractArray::index_of_from*/;
465 variable
[2] = variable
[3];
467 return_label26
: while(false);
468 tracehead
= trace
.prev
;
471 void array___AbstractArray___enlarge(val_t self
, val_t param0
) {
472 struct trace_t trace
= {NULL
, NULL
, 23, LOCATE_array___AbstractArray___enlarge
};
473 val_t
*variable
= NULL
;
474 void **closurevariable
= NULL
;
475 trace
.prev
= tracehead
; tracehead
= &trace
;
476 trace
.file
= LOCATE_array
;
477 fprintf(stderr
, "Deferred method called");
478 fprintf(stderr
, " (%s:%d)\n", LOCATE_array
, 23);
480 tracehead
= trace
.prev
;
483 void array___AbstractArray___insert(val_t self
, val_t param0
, val_t param1
) {
484 struct trace_t trace
= {NULL
, NULL
, 64, LOCATE_array___AbstractArray___insert
};
486 void **closurevariable
= NULL
;
487 trace
.prev
= tracehead
; tracehead
= &trace
;
488 trace
.file
= LOCATE_array
;
490 variable
[1] = param0
;
491 variable
[2] = param1
;
492 variable
[4] = variable
[0];
493 variable
[5] = variable
[0];
494 variable
[5] = ((array___AbstractArray___length_t
)CALL(variable
[5],COLOR_abstract_collection___Collection___length
))(variable
[5]) /*AbstractArray::length*/;
495 variable
[5] = TAG_Int(UNTAG_Int(variable
[5])+UNTAG_Int( TAG_Int(1)));
496 ((array___AbstractArray___enlarge_t
)CALL(variable
[4],COLOR_array___AbstractArray___enlarge
))(variable
[4], variable
[5]) /*AbstractArray::enlarge*/;
497 variable
[4] = variable
[0];
498 variable
[5] = variable
[0];
499 variable
[5] = ((array___AbstractArray___length_t
)CALL(variable
[5],COLOR_abstract_collection___Collection___length
))(variable
[5]) /*AbstractArray::length*/;
500 variable
[5] = TAG_Int(UNTAG_Int(variable
[5])-UNTAG_Int( variable
[2] /*pos*/));
501 variable
[6] = variable
[0];
502 variable
[7] = TAG_Int(UNTAG_Int( variable
[2] /*pos*/)+UNTAG_Int( TAG_Int(1)));
503 ((array___AbstractArray___copy_to_t
)CALL(variable
[4],COLOR_array___AbstractArray___copy_to
))(variable
[4], variable
[2] /*pos*/, variable
[5], variable
[6], variable
[7]) /*AbstractArray::copy_to*/;
504 variable
[4] = variable
[0];
505 ((abstract_collection___Map_____braeq_t
)CALL(variable
[4],COLOR_abstract_collection___Map_____braeq
))(variable
[4], variable
[2] /*pos*/, variable
[1] /*item*/) /*Map::[]=*/;
506 return_label27
: while(false);
507 tracehead
= trace
.prev
;
510 val_t
array___AbstractArray___last_index_of(val_t self
, val_t param0
) {
511 struct trace_t trace
= {NULL
, NULL
, 113, LOCATE_array___AbstractArray___last_index_of
};
513 void **closurevariable
= NULL
;
514 trace
.prev
= tracehead
; tracehead
= &trace
;
515 trace
.file
= LOCATE_array
;
517 variable
[1] = param0
;
518 variable
[3] = variable
[0];
519 variable
[4] = variable
[0];
520 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
521 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])-UNTAG_Int( TAG_Int(1)));
522 variable
[3] = ((array___AbstractArray___last_index_of_from_t
)CALL(variable
[3],COLOR_array___AbstractArray___last_index_of_from
))(variable
[3], variable
[1] /*item*/, variable
[4]) /*AbstractArray::last_index_of_from*/;
523 variable
[2] = variable
[3];
525 return_label28
: while(false);
526 tracehead
= trace
.prev
;
529 val_t
array___AbstractArray___index_of_from(val_t self
, val_t param0
, val_t param1
) {
530 struct trace_t trace
= {NULL
, NULL
, 115, LOCATE_array___AbstractArray___index_of_from
};
532 void **closurevariable
= NULL
;
533 trace
.prev
= tracehead
; tracehead
= &trace
;
534 trace
.file
= LOCATE_array
;
536 variable
[1] = param0
;
537 variable
[2] = param1
;
538 variable
[4] = variable
[2] /*pos*/;
539 variable
[6] = variable
[0];
540 variable
[6] = ((array___AbstractArray___length_t
)CALL(variable
[6],COLOR_abstract_collection___Collection___length
))(variable
[6]) /*AbstractArray::length*/;
541 variable
[5] = variable
[6];
542 while (true) { /*while*/
543 variable
[6] = TAG_Bool(UNTAG_Int( variable
[4] /*i*/)<UNTAG_Int( variable
[5] /*len*/));
544 if (!UNTAG_Bool(variable
[6])) break; /* while*/
545 variable
[6] = variable
[0];
546 variable
[6] = ((abstract_collection___Map_____bra_t
)CALL(variable
[6],COLOR_abstract_collection___Map_____bra
))(variable
[6], variable
[4] /*i*/) /*Map::[]*/;
547 variable
[6] = TAG_Bool((variable
[6] == variable
[1] /*item*/) || ((variable
[6] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))(variable
[6], variable
[1] /*item*/) /*Object::==*/)))));
548 if (UNTAG_Bool(variable
[6])) { /*if*/
549 variable
[3] = variable
[4] /*i*/;
552 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
553 continue_30
: while(0);
556 variable
[6] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
557 variable
[3] = variable
[6];
559 return_label29
: while(false);
560 tracehead
= trace
.prev
;
563 val_t
array___AbstractArray___last_index_of_from(val_t self
, val_t param0
, val_t param1
) {
564 struct trace_t trace
= {NULL
, NULL
, 128, LOCATE_array___AbstractArray___last_index_of_from
};
566 void **closurevariable
= NULL
;
567 trace
.prev
= tracehead
; tracehead
= &trace
;
568 trace
.file
= LOCATE_array
;
570 variable
[1] = param0
;
571 variable
[2] = param1
;
572 variable
[4] = variable
[2] /*pos*/;
573 while (true) { /*while*/
574 variable
[5] = TAG_Bool(UNTAG_Int( variable
[4] /*i*/)>=UNTAG_Int( TAG_Int(0)));
575 if (!UNTAG_Bool(variable
[5])) break; /* while*/
576 variable
[5] = variable
[0];
577 variable
[5] = ((abstract_collection___Map_____bra_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____bra
))(variable
[5], variable
[4] /*i*/) /*Map::[]*/;
578 variable
[5] = TAG_Bool((variable
[5] == variable
[1] /*item*/) || ((variable
[5] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))(variable
[5], variable
[1] /*item*/) /*Object::==*/)))));
579 if (UNTAG_Bool(variable
[5])) { /*if*/
580 variable
[3] = variable
[4] /*i*/;
583 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])-UNTAG_Int( TAG_Int(1))) /*i*/;
585 continue_32
: while(0);
588 variable
[5] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
589 variable
[3] = variable
[5];
591 return_label31
: while(false);
592 tracehead
= trace
.prev
;
595 val_t
array___AbstractArray___reversed(val_t self
) {
596 struct trace_t trace
= {NULL
, NULL
, 141, LOCATE_array___AbstractArray___reversed
};
598 void **closurevariable
= NULL
;
599 trace
.prev
= tracehead
; tracehead
= &trace
;
600 trace
.file
= LOCATE_array
;
602 variable
[3] = variable
[0];
603 variable
[3] = ATTR_array___AbstractArray____length(variable
[3]) /*AbstractArray::_length*/;
604 variable
[2] = variable
[3];
605 variable
[4] = NEW_Array_array___Array___with_capacity( variable
[2] /*cmp*/); /*new Array[E]*/
606 variable
[3] = variable
[4];
607 while (true) { /*while*/
608 variable
[4] = TAG_Bool(UNTAG_Int( variable
[2] /*cmp*/)>UNTAG_Int( TAG_Int(0)));
609 if (!UNTAG_Bool(variable
[4])) break; /* while*/
610 variable
[2] = TAG_Int(UNTAG_Int(variable
[2])-UNTAG_Int( TAG_Int(1))) /*cmp*/;
611 variable
[4] = variable
[0];
612 variable
[4] = ((abstract_collection___Map_____bra_t
)CALL(variable
[4],COLOR_abstract_collection___Map_____bra
))(variable
[4], variable
[2] /*cmp*/) /*Map::[]*/;
613 ((array___AbstractArray___add_t
)CALL( variable
[3] /*result*/,COLOR_abstract_collection___SimpleCollection___add
))( variable
[3] /*result*/, variable
[4]) /*AbstractArray::add*/;
614 continue_34
: while(0);
617 variable
[1] = variable
[3] /*result*/;
619 return_label33
: while(false);
620 tracehead
= trace
.prev
;
623 void array___AbstractArray___copy_to(val_t self
, val_t param0
, val_t param1
, val_t param2
, val_t param3
) {
624 struct trace_t trace
= {NULL
, NULL
, 176, LOCATE_array___AbstractArray___copy_to
};
626 void **closurevariable
= NULL
;
627 trace
.prev
= tracehead
; tracehead
= &trace
;
628 trace
.file
= LOCATE_array
;
630 variable
[1] = param0
;
631 variable
[2] = param1
;
632 variable
[3] = param2
;
633 variable
[4] = param3
;
634 variable
[6] = variable
[2] /*len*/;
635 while (true) { /*while*/
636 variable
[7] = TAG_Bool(UNTAG_Int( variable
[6] /*i*/)>UNTAG_Int( TAG_Int(0)));
637 if (!UNTAG_Bool(variable
[7])) break; /* while*/
638 variable
[6] = TAG_Int(UNTAG_Int(variable
[6])-UNTAG_Int( TAG_Int(1))) /*i*/;
639 variable
[7] = TAG_Int(UNTAG_Int( variable
[4] /*new_start*/)+UNTAG_Int( variable
[6] /*i*/));
640 variable
[8] = variable
[0];
641 variable
[9] = TAG_Int(UNTAG_Int( variable
[1] /*start*/)+UNTAG_Int( variable
[6] /*i*/));
642 variable
[8] = ((abstract_collection___Map_____bra_t
)CALL(variable
[8],COLOR_abstract_collection___Map_____bra
))(variable
[8], variable
[9]) /*Map::[]*/;
643 ((abstract_collection___Map_____braeq_t
)CALL( variable
[3] /*dest*/,COLOR_abstract_collection___Map_____braeq
))( variable
[3] /*dest*/, variable
[7], variable
[8]) /*Map::[]=*/;
644 continue_36
: while(0);
647 return_label35
: while(false);
648 tracehead
= trace
.prev
;
651 void array___AbstractArray___init(val_t self
, int* init_table
) {
652 struct trace_t trace
= {NULL
, NULL
, 0, LOCATE_array___AbstractArray___init
};
653 val_t
*variable
= NULL
;
654 void **closurevariable
= NULL
;
655 trace
.prev
= tracehead
; tracehead
= &trace
;
656 trace
.file
= LOCATE_array
;
657 tracehead
= trace
.prev
;
660 val_t
array___Array_____bra(val_t self
, val_t param0
) {
661 struct trace_t trace
= {NULL
, NULL
, 227, LOCATE_array___Array_____bra
};
663 void **closurevariable
= NULL
;
664 trace
.prev
= tracehead
; tracehead
= &trace
;
665 trace
.file
= LOCATE_array
;
667 variable
[1] = param0
;
668 variable
[3] = TAG_Bool(UNTAG_Int( variable
[1] /*index*/)>=UNTAG_Int( TAG_Int(0)));
669 variable
[4] = variable
[3];
670 if (UNTAG_Bool(variable
[4])) { /* and */
671 variable
[4] = variable
[0];
672 variable
[4] = ATTR_array___AbstractArray____length(variable
[4]) /*AbstractArray::_length*/;
673 variable
[4] = TAG_Bool(UNTAG_Int( variable
[1] /*index*/)<UNTAG_Int(variable
[4]));
675 variable
[3] = variable
[4];
676 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
677 variable
[3] = variable
[0];
678 variable
[3] = ATTR_array___Array____items(variable
[3]) /*Array::_items*/;
679 variable
[3] = UNBOX_NativeArray(variable
[3])[UNTAG_Int( variable
[1] /*index*/)];
680 variable
[2] = variable
[3];
682 return_label37
: while(false);
683 tracehead
= trace
.prev
;
686 void array___Array_____braeq(val_t self
, val_t param0
, val_t param1
) {
687 struct trace_t trace
= {NULL
, NULL
, 233, LOCATE_array___Array_____braeq
};
689 void **closurevariable
= NULL
;
690 trace
.prev
= tracehead
; tracehead
= &trace
;
691 trace
.file
= LOCATE_array
;
693 variable
[1] = param0
;
694 variable
[2] = param1
;
695 variable
[4] = TAG_Bool(UNTAG_Int( variable
[1] /*index*/)>=UNTAG_Int( TAG_Int(0)));
696 variable
[5] = variable
[4];
697 if (UNTAG_Bool(variable
[5])) { /* and */
698 variable
[5] = variable
[0];
699 variable
[5] = ATTR_array___AbstractArray____length(variable
[5]) /*AbstractArray::_length*/;
700 variable
[5] = TAG_Int(UNTAG_Int(variable
[5])+UNTAG_Int( TAG_Int(1)));
701 variable
[5] = TAG_Bool(UNTAG_Int( variable
[1] /*index*/)<UNTAG_Int(variable
[5]));
703 variable
[4] = variable
[5];
704 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____braeq
, LOCATE_array
, 235); nit_exit(1);}
705 variable
[4] = variable
[0];
706 variable
[4] = ATTR_array___Array____capacity(variable
[4]) /*Array::_capacity*/;
707 variable
[4] = TAG_Bool(UNTAG_Int(variable
[4])<=UNTAG_Int( variable
[1] /*index*/));
708 if (UNTAG_Bool(variable
[4])) { /*if*/
709 variable
[4] = variable
[0];
710 variable
[5] = TAG_Int(UNTAG_Int( variable
[1] /*index*/)+UNTAG_Int( TAG_Int(1)));
711 ((array___Array___enlarge_t
)CALL(variable
[4],COLOR_array___AbstractArray___enlarge
))(variable
[4], variable
[5]) /*Array::enlarge*/;
713 variable
[4] = variable
[0];
714 variable
[4] = ATTR_array___AbstractArray____length(variable
[4]) /*AbstractArray::_length*/;
715 variable
[4] = TAG_Bool(UNTAG_Int(variable
[4])<=UNTAG_Int( variable
[1] /*index*/));
716 if (UNTAG_Bool(variable
[4])) { /*if*/
717 variable
[4] = variable
[0];
718 variable
[5] = TAG_Int(UNTAG_Int( variable
[1] /*index*/)+UNTAG_Int( TAG_Int(1)));
719 ATTR_array___AbstractArray____length(variable
[4]) /*AbstractArray::_length*/ = variable
[5];
721 variable
[4] = variable
[0];
722 variable
[4] = ATTR_array___Array____items(variable
[4]) /*Array::_items*/;
723 UNBOX_NativeArray(variable
[4])[UNTAG_Int( variable
[1] /*index*/)]= variable
[2] /*item*/;
724 return_label38
: while(false);
725 tracehead
= trace
.prev
;
728 void array___Array___enlarge(val_t self
, val_t param0
) {
729 struct trace_t trace
= {NULL
, NULL
, 245, LOCATE_array___Array___enlarge
};
731 void **closurevariable
= NULL
;
732 trace
.prev
= tracehead
; tracehead
= &trace
;
733 trace
.file
= LOCATE_array
;
735 variable
[1] = param0
;
736 variable
[4] = variable
[0];
737 variable
[4] = ATTR_array___Array____capacity(variable
[4]) /*Array::_capacity*/;
738 variable
[3] = variable
[4];
739 variable
[4] = TAG_Bool(UNTAG_Int( variable
[1] /*cap*/)<=UNTAG_Int( variable
[3] /*c*/));
740 if (UNTAG_Bool(variable
[4])) { /*if*/
743 while (true) { /*while*/
744 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*c*/)<=UNTAG_Int( variable
[1] /*cap*/));
745 if (!UNTAG_Bool(variable
[4])) break; /* while*/
746 variable
[4] = TAG_Int(UNTAG_Int( variable
[3] /*c*/)*UNTAG_Int( TAG_Int(2)));
747 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])+UNTAG_Int( TAG_Int(2)));
748 variable
[3] = variable
[4] /*c=*/;
749 continue_40
: while(0);
752 variable
[5] = variable
[0];
753 variable
[5] = BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable
[3] /*c*/) * sizeof(val_t
))));
754 variable
[4] = variable
[5];
755 variable
[5] = variable
[0];
756 variable
[5] = ATTR_array___Array____capacity(variable
[5]) /*Array::_capacity*/;
757 variable
[5] = TAG_Bool(UNTAG_Int(variable
[5])>UNTAG_Int( TAG_Int(0)));
758 if (UNTAG_Bool(variable
[5])) { /*if*/
759 variable
[5] = variable
[0];
760 variable
[5] = ATTR_array___Array____items(variable
[5]) /*Array::_items*/;
761 variable
[6] = variable
[0];
762 variable
[6] = ATTR_array___AbstractArray____length(variable
[6]) /*AbstractArray::_length*/;
763 (void)memcpy(UNBOX_NativeArray( variable
[4] /*a*/), UNBOX_NativeArray(variable
[5]), UNTAG_Int(variable
[6])*sizeof(val_t
));
765 variable
[5] = variable
[0];
766 ATTR_array___Array____items(variable
[5]) /*Array::_items*/ = variable
[4] /*a*/;
767 variable
[5] = variable
[0];
768 ATTR_array___Array____capacity(variable
[5]) /*Array::_capacity*/ = variable
[3] /*c*/;
769 return_label39
: while(false);
770 tracehead
= trace
.prev
;
773 void array___Array___init(val_t self
, int* init_table
) {
774 struct trace_t trace
= {NULL
, NULL
, 256, LOCATE_array___Array___init
};
776 void **closurevariable
= NULL
;
777 trace
.prev
= tracehead
; tracehead
= &trace
;
778 trace
.file
= LOCATE_array
;
780 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
781 variable
[2] = variable
[0];
782 ATTR_array___Array____capacity(variable
[2]) /*Array::_capacity*/ = TAG_Int(0);
783 variable
[2] = variable
[0];
784 ATTR_array___AbstractArray____length(variable
[2]) /*AbstractArray::_length*/ = TAG_Int(0);
785 return_label41
: while(false);
786 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
787 tracehead
= trace
.prev
;
790 void array___Array___with_items(val_t self
, val_t param0
, int* init_table
) {
791 struct trace_t trace
= {NULL
, NULL
, 263, LOCATE_array___Array___with_items
};
793 void **closurevariable
= NULL
;
794 trace
.prev
= tracehead
; tracehead
= &trace
;
795 trace
.file
= LOCATE_array
;
797 /* check if p<Array[E] with p:E */
798 if (( param0
!=NIT_NULL
) && !VAL_ISA( param0
, COLOR_Array
, ID_Array
)) { fprintf(stderr
, "Cast failled"); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array___with_items
, LOCATE_array
, 264); nit_exit(1); } /*cast Array[E]*/;
799 variable
[1] = param0
;
800 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
801 variable
[3] = variable
[0];
802 variable
[4] = ATTR_array___Array____items( variable
[1] /*objects*/) /*Array::_items*/;
803 ATTR_array___Array____items(variable
[3]) /*Array::_items*/ = variable
[4];
804 variable
[3] = variable
[0];
805 variable
[4] = ATTR_array___Array____capacity( variable
[1] /*objects*/) /*Array::_capacity*/;
806 ATTR_array___Array____capacity(variable
[3]) /*Array::_capacity*/ = variable
[4];
807 variable
[3] = variable
[0];
808 variable
[4] = ((array___AbstractArray___length_t
)CALL( variable
[1] /*objects*/,COLOR_abstract_collection___Collection___length
))( variable
[1] /*objects*/) /*AbstractArray::length*/;
809 ATTR_array___AbstractArray____length(variable
[3]) /*AbstractArray::_length*/ = variable
[4];
810 return_label42
: while(false);
811 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
812 tracehead
= trace
.prev
;
815 void array___Array___with_capacity(val_t self
, val_t param0
, int* init_table
) {
816 struct trace_t trace
= {NULL
, NULL
, 271, LOCATE_array___Array___with_capacity
};
818 void **closurevariable
= NULL
;
819 trace
.prev
= tracehead
; tracehead
= &trace
;
820 trace
.file
= LOCATE_array
;
822 variable
[1] = param0
;
823 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
824 variable
[3] = TAG_Bool(UNTAG_Int( variable
[1] /*cap*/)>=UNTAG_Int( TAG_Int(0)));
825 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", " 'positive' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array___with_capacity
, LOCATE_array
, 274); nit_exit(1);}
826 variable
[3] = variable
[0];
827 variable
[4] = variable
[0];
828 variable
[4] = BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable
[1] /*cap*/) * sizeof(val_t
))));
829 ATTR_array___Array____items(variable
[3]) /*Array::_items*/ = variable
[4];
830 variable
[3] = variable
[0];
831 ATTR_array___Array____capacity(variable
[3]) /*Array::_capacity*/ = variable
[1] /*cap*/;
832 variable
[3] = variable
[0];
833 ATTR_array___AbstractArray____length(variable
[3]) /*AbstractArray::_length*/ = TAG_Int(0);
834 return_label43
: while(false);
835 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
836 tracehead
= trace
.prev
;
839 void array___Array___filled_with(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
840 struct trace_t trace
= {NULL
, NULL
, 280, LOCATE_array___Array___filled_with
};
842 void **closurevariable
= NULL
;
843 trace
.prev
= tracehead
; tracehead
= &trace
;
844 trace
.file
= LOCATE_array
;
846 variable
[1] = param0
;
847 variable
[2] = param1
;
848 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
849 variable
[4] = TAG_Bool(UNTAG_Int( variable
[2] /*count*/)>=UNTAG_Int( TAG_Int(0)));
850 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", " 'positive' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array___filled_with
, LOCATE_array
, 283); nit_exit(1);}
851 variable
[4] = variable
[0];
852 variable
[5] = variable
[0];
853 variable
[5] = BOX_NativeArray((val_t
*)malloc((UNTAG_Int( variable
[2] /*count*/) * sizeof(val_t
))));
854 ATTR_array___Array____items(variable
[4]) /*Array::_items*/ = variable
[5];
855 variable
[4] = variable
[0];
856 ATTR_array___Array____capacity(variable
[4]) /*Array::_capacity*/ = variable
[2] /*count*/;
857 variable
[4] = variable
[0];
858 ATTR_array___AbstractArray____length(variable
[4]) /*AbstractArray::_length*/ = variable
[2] /*count*/;
859 variable
[4] = TAG_Int(0);
860 while (true) { /*while*/
861 variable
[5] = TAG_Bool(UNTAG_Int( variable
[4] /*i*/)<UNTAG_Int( variable
[2] /*count*/));
862 if (!UNTAG_Bool(variable
[5])) break; /* while*/
863 variable
[5] = variable
[0];
864 ((array___Array_____braeq_t
)CALL(variable
[5],COLOR_abstract_collection___Map_____braeq
))(variable
[5], variable
[4] /*i*/, variable
[1] /*value*/) /*Array::[]=*/;
865 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
866 continue_45
: while(0);
869 return_label44
: while(false);
870 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
871 tracehead
= trace
.prev
;
874 void array___Array___with_native(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
875 struct trace_t trace
= {NULL
, NULL
, 294, LOCATE_array___Array___with_native
};
877 void **closurevariable
= NULL
;
878 trace
.prev
= tracehead
; tracehead
= &trace
;
879 trace
.file
= LOCATE_array
;
881 variable
[1] = param0
;
882 variable
[2] = param1
;
883 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
]) return;
884 variable
[4] = TAG_Bool(UNTAG_Int( variable
[2] /*size*/)>=UNTAG_Int( TAG_Int(0)));
885 if (!UNTAG_Bool(variable
[4])) { fprintf(stderr
, "Assert%s failed", " 'positive' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array___with_native
, LOCATE_array
, 297); nit_exit(1);}
886 variable
[4] = variable
[0];
887 ATTR_array___Array____items(variable
[4]) /*Array::_items*/ = variable
[1] /*nat*/;
888 variable
[4] = variable
[0];
889 ATTR_array___Array____capacity(variable
[4]) /*Array::_capacity*/ = variable
[2] /*size*/;
890 variable
[4] = variable
[0];
891 ATTR_array___AbstractArray____length(variable
[4]) /*AbstractArray::_length*/ = variable
[2] /*size*/;
892 return_label46
: while(false);
893 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_Array
].i
] = 1;
894 tracehead
= trace
.prev
;
897 val_t
array___ArrayIterator___item(val_t self
) {
898 struct trace_t trace
= {NULL
, NULL
, 313, LOCATE_array___ArrayIterator___item
};
900 void **closurevariable
= NULL
;
901 trace
.prev
= tracehead
; tracehead
= &trace
;
902 trace
.file
= LOCATE_array
;
904 variable
[2] = variable
[0];
905 variable
[2] = ATTR_array___ArrayIterator____array(variable
[2]) /*ArrayIterator::_array*/;
906 variable
[3] = variable
[0];
907 variable
[3] = ATTR_array___ArrayIterator____index(variable
[3]) /*ArrayIterator::_index*/;
908 variable
[2] = ((abstract_collection___Map_____bra_t
)CALL(variable
[2],COLOR_abstract_collection___Map_____bra
))(variable
[2], variable
[3]) /*Map::[]*/;
909 variable
[1] = variable
[2];
911 return_label47
: while(false);
912 tracehead
= trace
.prev
;
915 void array___ArrayIterator___next(val_t self
) {
916 struct trace_t trace
= {NULL
, NULL
, 319, LOCATE_array___ArrayIterator___next
};
918 void **closurevariable
= NULL
;
919 trace
.prev
= tracehead
; tracehead
= &trace
;
920 trace
.file
= LOCATE_array
;
922 variable
[2] = variable
[0];
923 ATTR_array___ArrayIterator____index(variable
[2]) /*ArrayIterator::_index*/ = TAG_Int(UNTAG_Int(ATTR_array___ArrayIterator____index(variable
[2]) /*ArrayIterator::_index*/)+UNTAG_Int( TAG_Int(1)));
924 return_label48
: while(false);
925 tracehead
= trace
.prev
;
928 val_t
array___ArrayIterator___is_ok(val_t self
) {
929 struct trace_t trace
= {NULL
, NULL
, 317, LOCATE_array___ArrayIterator___is_ok
};
931 void **closurevariable
= NULL
;
932 trace
.prev
= tracehead
; tracehead
= &trace
;
933 trace
.file
= LOCATE_array
;
935 variable
[2] = variable
[0];
936 variable
[2] = ATTR_array___ArrayIterator____index(variable
[2]) /*ArrayIterator::_index*/;
937 variable
[3] = variable
[0];
938 variable
[3] = ATTR_array___ArrayIterator____array(variable
[3]) /*ArrayIterator::_array*/;
939 variable
[3] = ((array___AbstractArray___length_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___length
))(variable
[3]) /*AbstractArray::length*/;
940 variable
[2] = TAG_Bool(UNTAG_Int(variable
[2])<UNTAG_Int(variable
[3]));
941 variable
[1] = variable
[2];
943 return_label49
: while(false);
944 tracehead
= trace
.prev
;
947 void array___ArrayIterator___item__eq(val_t self
, val_t param0
) {
948 struct trace_t trace
= {NULL
, NULL
, 315, LOCATE_array___ArrayIterator___item__eq
};
950 void **closurevariable
= NULL
;
951 trace
.prev
= tracehead
; tracehead
= &trace
;
952 trace
.file
= LOCATE_array
;
954 variable
[1] = param0
;
955 variable
[3] = variable
[0];
956 variable
[3] = ATTR_array___ArrayIterator____array(variable
[3]) /*ArrayIterator::_array*/;
957 variable
[4] = variable
[0];
958 variable
[4] = ATTR_array___ArrayIterator____index(variable
[4]) /*ArrayIterator::_index*/;
959 ((abstract_collection___Map_____braeq_t
)CALL(variable
[3],COLOR_abstract_collection___Map_____braeq
))(variable
[3], variable
[4], variable
[1] /*e*/) /*Map::[]=*/;
960 return_label50
: while(false);
961 tracehead
= trace
.prev
;
964 val_t
array___ArrayIterator___index(val_t self
) {
965 struct trace_t trace
= {NULL
, NULL
, 328, LOCATE_array___ArrayIterator___index
};
966 val_t
*variable
= NULL
;
967 void **closurevariable
= NULL
;
968 trace
.prev
= tracehead
; tracehead
= &trace
;
969 trace
.file
= LOCATE_array
;
970 tracehead
= trace
.prev
;
971 return ATTR_array___ArrayIterator____index( self
) /*ArrayIterator::_index*/;
973 void array___ArrayIterator___init(val_t self
, val_t param0
, int* init_table
) {
974 struct trace_t trace
= {NULL
, NULL
, 321, LOCATE_array___ArrayIterator___init
};
976 void **closurevariable
= NULL
;
977 trace
.prev
= tracehead
; tracehead
= &trace
;
978 trace
.file
= LOCATE_array
;
980 variable
[1] = param0
;
981 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayIterator
].i
]) return;
982 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*a*/ == NIT_NULL
/*null*/) || (( variable
[1] /*a*/ != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL( variable
[1] /*a*/,COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*a*/, NIT_NULL
/*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL( variable
[1] /*a*/,COLOR_kernel___Object_____eqeq
))( variable
[1] /*a*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
983 if (!UNTAG_Bool(variable
[3])) { fprintf(stderr
, "Assert%s failed", " 'not_nil' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___ArrayIterator___init
, LOCATE_array
, 323); nit_exit(1);}
984 variable
[3] = variable
[0];
985 ATTR_array___ArrayIterator____array(variable
[3]) /*ArrayIterator::_array*/ = variable
[1] /*a*/;
986 variable
[3] = variable
[0];
987 ATTR_array___ArrayIterator____index(variable
[3]) /*ArrayIterator::_index*/ = TAG_Int(0);
988 return_label51
: while(false);
989 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayIterator
].i
] = 1;
990 tracehead
= trace
.prev
;
993 val_t
array___ArraySet___iterator(val_t self
) {
994 struct trace_t trace
= {NULL
, NULL
, 364, LOCATE_array___ArraySet___iterator
};
996 void **closurevariable
= NULL
;
997 trace
.prev
= tracehead
; tracehead
= &trace
;
998 trace
.file
= LOCATE_array
;
1000 variable
[2] = variable
[0];
1001 variable
[2] = ATTR_array___ArraySet____array(variable
[2]) /*ArraySet::_array*/;
1002 variable
[2] = ((array___AbstractArray___iterator_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___iterator
))(variable
[2]) /*AbstractArray::iterator*/;
1003 variable
[3] = NEW_ArraySetIterator_array___ArraySetIterator___init(variable
[2]); /*new ArraySetIterator[E]*/
1004 variable
[2] = variable
[3];
1005 variable
[1] = variable
[2];
1006 goto return_label52
;
1007 return_label52
: while(false);
1008 tracehead
= trace
.prev
;
1011 val_t
array___ArraySet___is_empty(val_t self
) {
1012 struct trace_t trace
= {NULL
, NULL
, 344, LOCATE_array___ArraySet___is_empty
};
1014 void **closurevariable
= NULL
;
1015 trace
.prev
= tracehead
; tracehead
= &trace
;
1016 trace
.file
= LOCATE_array
;
1018 variable
[2] = variable
[0];
1019 variable
[2] = ATTR_array___ArraySet____array(variable
[2]) /*ArraySet::_array*/;
1020 variable
[2] = ((array___AbstractArray___is_empty_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___is_empty
))(variable
[2]) /*AbstractArray::is_empty*/;
1021 variable
[1] = variable
[2];
1022 goto return_label53
;
1023 return_label53
: while(false);
1024 tracehead
= trace
.prev
;
1027 val_t
array___ArraySet___length(val_t self
) {
1028 struct trace_t trace
= {NULL
, NULL
, 346, LOCATE_array___ArraySet___length
};
1030 void **closurevariable
= NULL
;
1031 trace
.prev
= tracehead
; tracehead
= &trace
;
1032 trace
.file
= LOCATE_array
;
1034 variable
[2] = variable
[0];
1035 variable
[2] = ATTR_array___ArraySet____array(variable
[2]) /*ArraySet::_array*/;
1036 variable
[2] = ((array___AbstractArray___length_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___length
))(variable
[2]) /*AbstractArray::length*/;
1037 variable
[1] = variable
[2];
1038 goto return_label54
;
1039 return_label54
: while(false);
1040 tracehead
= trace
.prev
;
1043 val_t
array___ArraySet___has(val_t self
, val_t param0
) {
1044 struct trace_t trace
= {NULL
, NULL
, 340, LOCATE_array___ArraySet___has
};
1046 void **closurevariable
= NULL
;
1047 trace
.prev
= tracehead
; tracehead
= &trace
;
1048 trace
.file
= LOCATE_array
;
1050 variable
[1] = param0
;
1051 variable
[3] = variable
[0];
1052 variable
[3] = ATTR_array___ArraySet____array(variable
[3]) /*ArraySet::_array*/;
1053 variable
[3] = ((array___AbstractArray___has_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___has
))(variable
[3], variable
[1] /*e*/) /*AbstractArray::has*/;
1054 variable
[2] = variable
[3];
1055 goto return_label55
;
1056 return_label55
: while(false);
1057 tracehead
= trace
.prev
;
1060 val_t
array___ArraySet___first(val_t self
) {
1061 struct trace_t trace
= {NULL
, NULL
, 348, LOCATE_array___ArraySet___first
};
1063 void **closurevariable
= NULL
;
1064 trace
.prev
= tracehead
; tracehead
= &trace
;
1065 trace
.file
= LOCATE_array
;
1067 variable
[2] = variable
[0];
1068 variable
[2] = ATTR_array___ArraySet____array(variable
[2]) /*ArraySet::_array*/;
1069 variable
[2] = ((array___AbstractArray___length_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___length
))(variable
[2]) /*AbstractArray::length*/;
1070 variable
[2] = TAG_Bool(UNTAG_Int(variable
[2])>UNTAG_Int( TAG_Int(0)));
1071 if (!UNTAG_Bool(variable
[2])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___ArraySet___first
, LOCATE_array
, 350); nit_exit(1);}
1072 variable
[2] = variable
[0];
1073 variable
[2] = ATTR_array___ArraySet____array(variable
[2]) /*ArraySet::_array*/;
1074 variable
[2] = ((abstract_collection___IndexedCollection___first_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___first
))(variable
[2]) /*IndexedCollection::first*/;
1075 variable
[1] = variable
[2];
1076 goto return_label56
;
1077 return_label56
: while(false);
1078 tracehead
= trace
.prev
;
1081 void array___ArraySet___clear(val_t self
) {
1082 struct trace_t trace
= {NULL
, NULL
, 362, LOCATE_array___ArraySet___clear
};
1084 void **closurevariable
= NULL
;
1085 trace
.prev
= tracehead
; tracehead
= &trace
;
1086 trace
.file
= LOCATE_array
;
1088 variable
[2] = variable
[0];
1089 variable
[2] = ATTR_array___ArraySet____array(variable
[2]) /*ArraySet::_array*/;
1090 ((array___AbstractArray___clear_t
)CALL(variable
[2],COLOR_abstract_collection___RemovableCollection___clear
))(variable
[2]) /*AbstractArray::clear*/;
1091 return_label57
: while(false);
1092 tracehead
= trace
.prev
;
1095 void array___ArraySet___remove(val_t self
, val_t param0
) {
1096 struct trace_t trace
= {NULL
, NULL
, 354, LOCATE_array___ArraySet___remove
};
1098 void **closurevariable
= NULL
;
1099 trace
.prev
= tracehead
; tracehead
= &trace
;
1100 trace
.file
= LOCATE_array
;
1102 variable
[1] = param0
;
1103 variable
[4] = variable
[0];
1104 variable
[4] = ATTR_array___ArraySet____array(variable
[4]) /*ArraySet::_array*/;
1105 variable
[4] = ((array___AbstractArray___index_of_t
)CALL(variable
[4],COLOR_abstract_collection___IndexedCollection___index_of
))(variable
[4], variable
[1] /*item*/) /*AbstractArray::index_of*/;
1106 variable
[3] = variable
[4];
1107 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
1108 if (UNTAG_Bool(variable
[4])) { /*if*/
1109 variable
[4] = variable
[0];
1110 ((array___ArraySet___remove_at_t
)CALL(variable
[4],COLOR_array___ArraySet___remove_at
))(variable
[4], variable
[3] /*i*/) /*ArraySet::remove_at*/;
1112 return_label58
: while(false);
1113 tracehead
= trace
.prev
;
1116 void array___ArraySet___remove_all(val_t self
, val_t param0
) {
1117 struct trace_t trace
= {NULL
, NULL
, 360, LOCATE_array___ArraySet___remove_all
};
1119 void **closurevariable
= NULL
;
1120 trace
.prev
= tracehead
; tracehead
= &trace
;
1121 trace
.file
= LOCATE_array
;
1123 variable
[1] = param0
;
1124 variable
[3] = variable
[0];
1125 ((array___ArraySet___remove_t
)CALL(variable
[3],COLOR_abstract_collection___RemovableCollection___remove
))(variable
[3], variable
[1] /*item*/) /*ArraySet::remove*/;
1126 return_label59
: while(false);
1127 tracehead
= trace
.prev
;
1130 void array___ArraySet___add(val_t self
, val_t param0
) {
1131 struct trace_t trace
= {NULL
, NULL
, 342, LOCATE_array___ArraySet___add
};
1133 void **closurevariable
= NULL
;
1134 trace
.prev
= tracehead
; tracehead
= &trace
;
1135 trace
.file
= LOCATE_array
;
1137 variable
[1] = param0
;
1138 variable
[3] = variable
[0];
1139 variable
[3] = ATTR_array___ArraySet____array(variable
[3]) /*ArraySet::_array*/;
1140 variable
[3] = ((array___AbstractArray___has_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___has
))(variable
[3], variable
[1] /*e*/) /*AbstractArray::has*/;
1141 if (UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[3])))) { /*if*/
1142 variable
[3] = variable
[0];
1143 variable
[3] = ATTR_array___ArraySet____array(variable
[3]) /*ArraySet::_array*/;
1144 ((array___AbstractArray___add_t
)CALL(variable
[3],COLOR_abstract_collection___SimpleCollection___add
))(variable
[3], variable
[1] /*e*/) /*AbstractArray::add*/;
1146 return_label60
: while(false);
1147 tracehead
= trace
.prev
;
1150 void array___ArraySet___enlarge(val_t self
, val_t param0
) {
1151 struct trace_t trace
= {NULL
, NULL
, 366, LOCATE_array___ArraySet___enlarge
};
1153 void **closurevariable
= NULL
;
1154 trace
.prev
= tracehead
; tracehead
= &trace
;
1155 trace
.file
= LOCATE_array
;
1157 variable
[1] = param0
;
1158 variable
[3] = variable
[0];
1159 variable
[3] = ATTR_array___ArraySet____array(variable
[3]) /*ArraySet::_array*/;
1160 ((array___Array___enlarge_t
)CALL(variable
[3],COLOR_array___AbstractArray___enlarge
))(variable
[3], variable
[1] /*cap*/) /*Array::enlarge*/;
1161 return_label61
: while(false);
1162 tracehead
= trace
.prev
;
1165 void array___ArraySet___remove_at(val_t self
, val_t param0
) {
1166 struct trace_t trace
= {NULL
, NULL
, 369, LOCATE_array___ArraySet___remove_at
};
1168 void **closurevariable
= NULL
;
1169 trace
.prev
= tracehead
; tracehead
= &trace
;
1170 trace
.file
= LOCATE_array
;
1172 variable
[1] = param0
;
1173 variable
[3] = variable
[0];
1174 variable
[3] = ATTR_array___ArraySet____array(variable
[3]) /*ArraySet::_array*/;
1175 variable
[4] = variable
[0];
1176 variable
[4] = ATTR_array___ArraySet____array(variable
[4]) /*ArraySet::_array*/;
1177 variable
[4] = ((abstract_collection___IndexedCollection___last_t
)CALL(variable
[4],COLOR_abstract_collection___IndexedCollection___last
))(variable
[4]) /*IndexedCollection::last*/;
1178 ((array___Array_____braeq_t
)CALL(variable
[3],COLOR_abstract_collection___Map_____braeq
))(variable
[3], variable
[1] /*i*/, variable
[4]) /*Array::[]=*/;
1179 variable
[3] = variable
[0];
1180 variable
[3] = ATTR_array___ArraySet____array(variable
[3]) /*ArraySet::_array*/;
1181 ((array___AbstractArray___pop_t
)CALL(variable
[3],COLOR_abstract_collection___IndexedCollection___pop
))(variable
[3]) /*AbstractArray::pop*/;
1182 return_label62
: while(false);
1183 tracehead
= trace
.prev
;
1186 void array___ArraySet___init(val_t self
, int* init_table
) {
1187 struct trace_t trace
= {NULL
, NULL
, 375, LOCATE_array___ArraySet___init
};
1189 void **closurevariable
= NULL
;
1190 trace
.prev
= tracehead
; tracehead
= &trace
;
1191 trace
.file
= LOCATE_array
;
1193 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
]) return;
1194 variable
[2] = variable
[0];
1195 variable
[3] = NEW_Array_array___Array___init(); /*new Array[E]*/
1196 ATTR_array___ArraySet____array(variable
[2]) /*ArraySet::_array*/ = variable
[3];
1197 return_label63
: while(false);
1198 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
] = 1;
1199 tracehead
= trace
.prev
;
1202 void array___ArraySet___with_capacity(val_t self
, val_t param0
, int* init_table
) {
1203 struct trace_t trace
= {NULL
, NULL
, 378, LOCATE_array___ArraySet___with_capacity
};
1205 void **closurevariable
= NULL
;
1206 trace
.prev
= tracehead
; tracehead
= &trace
;
1207 trace
.file
= LOCATE_array
;
1209 variable
[1] = param0
;
1210 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
]) return;
1211 variable
[3] = variable
[0];
1212 variable
[4] = NEW_Array_array___Array___with_capacity( variable
[1] /*i*/); /*new Array[E]*/
1213 ATTR_array___ArraySet____array(variable
[3]) /*ArraySet::_array*/ = variable
[4];
1214 return_label64
: while(false);
1215 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySet
].i
] = 1;
1216 tracehead
= trace
.prev
;
1219 val_t
array___ArraySetIterator___item(val_t self
) {
1220 struct trace_t trace
= {NULL
, NULL
, 390, LOCATE_array___ArraySetIterator___item
};
1222 void **closurevariable
= NULL
;
1223 trace
.prev
= tracehead
; tracehead
= &trace
;
1224 trace
.file
= LOCATE_array
;
1226 variable
[2] = variable
[0];
1227 variable
[2] = ATTR_array___ArraySetIterator____iter(variable
[2]) /*ArraySetIterator::_iter*/;
1228 variable
[2] = ((array___ArrayIterator___item_t
)CALL(variable
[2],COLOR_abstract_collection___Iterator___item
))(variable
[2]) /*ArrayIterator::item*/;
1229 variable
[1] = variable
[2];
1230 goto return_label65
;
1231 return_label65
: while(false);
1232 tracehead
= trace
.prev
;
1235 void array___ArraySetIterator___next(val_t self
) {
1236 struct trace_t trace
= {NULL
, NULL
, 388, LOCATE_array___ArraySetIterator___next
};
1238 void **closurevariable
= NULL
;
1239 trace
.prev
= tracehead
; tracehead
= &trace
;
1240 trace
.file
= LOCATE_array
;
1242 variable
[2] = variable
[0];
1243 variable
[2] = ATTR_array___ArraySetIterator____iter(variable
[2]) /*ArraySetIterator::_iter*/;
1244 ((array___ArrayIterator___next_t
)CALL(variable
[2],COLOR_abstract_collection___Iterator___next
))(variable
[2]) /*ArrayIterator::next*/;
1245 return_label66
: while(false);
1246 tracehead
= trace
.prev
;
1249 val_t
array___ArraySetIterator___is_ok(val_t self
) {
1250 struct trace_t trace
= {NULL
, NULL
, 386, LOCATE_array___ArraySetIterator___is_ok
};
1252 void **closurevariable
= NULL
;
1253 trace
.prev
= tracehead
; tracehead
= &trace
;
1254 trace
.file
= LOCATE_array
;
1256 variable
[2] = variable
[0];
1257 variable
[2] = ATTR_array___ArraySetIterator____iter(variable
[2]) /*ArraySetIterator::_iter*/;
1258 variable
[2] = ((array___ArrayIterator___is_ok_t
)CALL(variable
[2],COLOR_abstract_collection___Iterator___is_ok
))(variable
[2]) /*ArrayIterator::is_ok*/;
1259 variable
[1] = variable
[2];
1260 goto return_label67
;
1261 return_label67
: while(false);
1262 tracehead
= trace
.prev
;
1265 void array___ArraySetIterator___init(val_t self
, val_t param0
, int* init_table
) {
1266 struct trace_t trace
= {NULL
, NULL
, 392, LOCATE_array___ArraySetIterator___init
};
1268 void **closurevariable
= NULL
;
1269 trace
.prev
= tracehead
; tracehead
= &trace
;
1270 trace
.file
= LOCATE_array
;
1272 variable
[1] = param0
;
1273 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySetIterator
].i
]) return;
1274 variable
[3] = variable
[0];
1275 ATTR_array___ArraySetIterator____iter(variable
[3]) /*ArraySetIterator::_iter*/ = variable
[1] /*iter*/;
1276 return_label68
: while(false);
1277 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArraySetIterator
].i
] = 1;
1278 tracehead
= trace
.prev
;
1281 val_t
array___ArrayMap___iterator(val_t self
) {
1282 struct trace_t trace
= {NULL
, NULL
, 454, LOCATE_array___ArrayMap___iterator
};
1284 void **closurevariable
= NULL
;
1285 trace
.prev
= tracehead
; tracehead
= &trace
;
1286 trace
.file
= LOCATE_array
;
1288 variable
[2] = variable
[0];
1289 variable
[2] = ATTR_array___ArrayMap____items(variable
[2]) /*ArrayMap::_items*/;
1290 variable
[2] = ((array___AbstractArray___iterator_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___iterator
))(variable
[2]) /*AbstractArray::iterator*/;
1291 variable
[3] = NEW_CoupleMapIterator_abstract_collection___CoupleMapIterator___init(variable
[2]); /*new CoupleMapIterator[K, E]*/
1292 variable
[2] = variable
[3];
1293 variable
[1] = variable
[2];
1294 goto return_label69
;
1295 return_label69
: while(false);
1296 tracehead
= trace
.prev
;
1299 val_t
array___ArrayMap___is_empty(val_t self
) {
1300 struct trace_t trace
= {NULL
, NULL
, 456, LOCATE_array___ArrayMap___is_empty
};
1302 void **closurevariable
= NULL
;
1303 trace
.prev
= tracehead
; tracehead
= &trace
;
1304 trace
.file
= LOCATE_array
;
1306 variable
[2] = variable
[0];
1307 variable
[2] = ATTR_array___ArrayMap____items(variable
[2]) /*ArrayMap::_items*/;
1308 variable
[2] = ((array___AbstractArray___is_empty_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___is_empty
))(variable
[2]) /*AbstractArray::is_empty*/;
1309 variable
[1] = variable
[2];
1310 goto return_label70
;
1311 return_label70
: while(false);
1312 tracehead
= trace
.prev
;
1315 val_t
array___ArrayMap___length(val_t self
) {
1316 struct trace_t trace
= {NULL
, NULL
, 441, LOCATE_array___ArrayMap___length
};
1318 void **closurevariable
= NULL
;
1319 trace
.prev
= tracehead
; tracehead
= &trace
;
1320 trace
.file
= LOCATE_array
;
1322 variable
[2] = variable
[0];
1323 variable
[2] = ATTR_array___ArrayMap____items(variable
[2]) /*ArrayMap::_items*/;
1324 variable
[2] = ((array___AbstractArray___length_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___length
))(variable
[2]) /*AbstractArray::length*/;
1325 variable
[1] = variable
[2];
1326 goto return_label71
;
1327 return_label71
: while(false);
1328 tracehead
= trace
.prev
;
1331 val_t
array___ArrayMap___has(val_t self
, val_t param0
) {
1332 struct trace_t trace
= {NULL
, NULL
, 427, LOCATE_array___ArrayMap___has
};
1334 void **closurevariable
= NULL
;
1335 trace
.prev
= tracehead
; tracehead
= &trace
;
1336 trace
.file
= LOCATE_array
;
1338 variable
[1] = param0
;
1339 variable
[3] = variable
[0];
1340 variable
[3] = ATTR_array___ArrayMap____items(variable
[3]) /*ArrayMap::_items*/;
1341 variable
[3] = ((array___AbstractArray___iterator_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___iterator
))(variable
[3]) /*AbstractArray::iterator*/;
1342 while (true) { /*for*/
1343 variable
[4] = ((array___ArrayIterator___is_ok_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___is_ok
))(variable
[3]) /*ArrayIterator::is_ok*/;
1344 if (!UNTAG_Bool(variable
[4])) break; /*for*/
1345 variable
[4] = ((array___ArrayIterator___item_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___item
))(variable
[3]) /*ArrayIterator::item*/;
1346 variable
[5] = variable
[4];
1347 variable
[6] = ((abstract_collection___Couple___second_t
)CALL( variable
[5] /*i*/,COLOR_abstract_collection___Couple___second
))( variable
[5] /*i*/) /*Couple::second*/;
1348 variable
[6] = TAG_Bool((variable
[6] == variable
[1] /*item*/) || ((variable
[6] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))(variable
[6], variable
[1] /*item*/) /*Object::==*/)))));
1349 if (UNTAG_Bool(variable
[6])) { /*if*/
1350 variable
[2] = TAG_Bool(true);
1351 goto return_label72
;
1353 continue_73
: while(0);
1354 ((array___ArrayIterator___next_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___next
))(variable
[3]) /*ArrayIterator::next*/;
1357 variable
[2] = TAG_Bool(false);
1358 goto return_label72
;
1359 return_label72
: while(false);
1360 tracehead
= trace
.prev
;
1363 val_t
array___ArrayMap___has_only(val_t self
, val_t param0
) {
1364 struct trace_t trace
= {NULL
, NULL
, 434, LOCATE_array___ArrayMap___has_only
};
1366 void **closurevariable
= NULL
;
1367 trace
.prev
= tracehead
; tracehead
= &trace
;
1368 trace
.file
= LOCATE_array
;
1370 variable
[1] = param0
;
1371 variable
[3] = variable
[0];
1372 variable
[3] = ATTR_array___ArrayMap____items(variable
[3]) /*ArrayMap::_items*/;
1373 variable
[3] = ((array___AbstractArray___iterator_t
)CALL(variable
[3],COLOR_abstract_collection___Collection___iterator
))(variable
[3]) /*AbstractArray::iterator*/;
1374 while (true) { /*for*/
1375 variable
[4] = ((array___ArrayIterator___is_ok_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___is_ok
))(variable
[3]) /*ArrayIterator::is_ok*/;
1376 if (!UNTAG_Bool(variable
[4])) break; /*for*/
1377 variable
[4] = ((array___ArrayIterator___item_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___item
))(variable
[3]) /*ArrayIterator::item*/;
1378 variable
[5] = variable
[4];
1379 variable
[6] = ((abstract_collection___Couple___second_t
)CALL( variable
[5] /*i*/,COLOR_abstract_collection___Couple___second
))( variable
[5] /*i*/) /*Couple::second*/;
1380 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[6] == variable
[1] /*item*/) || ((variable
[6] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[6], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[6],COLOR_kernel___Object_____eqeq
))(variable
[6], variable
[1] /*item*/) /*Object::==*/)))))));
1381 if (UNTAG_Bool(variable
[6])) { /*if*/
1382 variable
[2] = TAG_Bool(false);
1383 goto return_label74
;
1385 continue_75
: while(0);
1386 ((array___ArrayIterator___next_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___next
))(variable
[3]) /*ArrayIterator::next*/;
1389 variable
[2] = TAG_Bool(true);
1390 goto return_label74
;
1391 return_label74
: while(false);
1392 tracehead
= trace
.prev
;
1395 val_t
array___ArrayMap___count(val_t self
, val_t param0
) {
1396 struct trace_t trace
= {NULL
, NULL
, 446, LOCATE_array___ArrayMap___count
};
1398 void **closurevariable
= NULL
;
1399 trace
.prev
= tracehead
; tracehead
= &trace
;
1400 trace
.file
= LOCATE_array
;
1402 variable
[1] = param0
;
1403 variable
[3] = TAG_Int(0);
1404 variable
[4] = variable
[0];
1405 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1406 variable
[4] = ((array___AbstractArray___iterator_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___iterator
))(variable
[4]) /*AbstractArray::iterator*/;
1407 while (true) { /*for*/
1408 variable
[5] = ((array___ArrayIterator___is_ok_t
)CALL(variable
[4],COLOR_abstract_collection___Iterator___is_ok
))(variable
[4]) /*ArrayIterator::is_ok*/;
1409 if (!UNTAG_Bool(variable
[5])) break; /*for*/
1410 variable
[5] = ((array___ArrayIterator___item_t
)CALL(variable
[4],COLOR_abstract_collection___Iterator___item
))(variable
[4]) /*ArrayIterator::item*/;
1411 variable
[6] = variable
[5];
1412 variable
[7] = ((abstract_collection___Couple___second_t
)CALL( variable
[6] /*i*/,COLOR_abstract_collection___Couple___second
))( variable
[6] /*i*/) /*Couple::second*/;
1413 variable
[7] = TAG_Bool((variable
[7] == variable
[1] /*item*/) || ((variable
[7] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[7],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[7], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[7],COLOR_kernel___Object_____eqeq
))(variable
[7], variable
[1] /*item*/) /*Object::==*/)))));
1414 if (UNTAG_Bool(variable
[7])) { /*if*/
1415 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*nb*/;
1417 continue_77
: while(0);
1418 ((array___ArrayIterator___next_t
)CALL(variable
[4],COLOR_abstract_collection___Iterator___next
))(variable
[4]) /*ArrayIterator::next*/;
1421 variable
[2] = variable
[3] /*nb*/;
1422 goto return_label76
;
1423 return_label76
: while(false);
1424 tracehead
= trace
.prev
;
1427 val_t
array___ArrayMap___first(val_t self
) {
1428 struct trace_t trace
= {NULL
, NULL
, 444, LOCATE_array___ArrayMap___first
};
1430 void **closurevariable
= NULL
;
1431 trace
.prev
= tracehead
; tracehead
= &trace
;
1432 trace
.file
= LOCATE_array
;
1434 variable
[2] = variable
[0];
1435 variable
[2] = ATTR_array___ArrayMap____items(variable
[2]) /*ArrayMap::_items*/;
1436 variable
[2] = ((abstract_collection___IndexedCollection___first_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___first
))(variable
[2]) /*IndexedCollection::first*/;
1437 variable
[2] = ((abstract_collection___Couple___first_t
)CALL(variable
[2],COLOR_abstract_collection___Couple___first
))(variable
[2]) /*Couple::first*/;
1438 variable
[1] = variable
[2];
1439 goto return_label78
;
1440 return_label78
: while(false);
1441 tracehead
= trace
.prev
;
1444 void array___ArrayMap___clear(val_t self
) {
1445 struct trace_t trace
= {NULL
, NULL
, 487, LOCATE_array___ArrayMap___clear
};
1447 void **closurevariable
= NULL
;
1448 trace
.prev
= tracehead
; tracehead
= &trace
;
1449 trace
.file
= LOCATE_array
;
1451 variable
[2] = variable
[0];
1452 variable
[2] = ATTR_array___ArrayMap____items(variable
[2]) /*ArrayMap::_items*/;
1453 ((array___AbstractArray___clear_t
)CALL(variable
[2],COLOR_abstract_collection___RemovableCollection___clear
))(variable
[2]) /*AbstractArray::clear*/;
1454 return_label79
: while(false);
1455 tracehead
= trace
.prev
;
1458 void array___ArrayMap___remove(val_t self
, val_t param0
) {
1459 struct trace_t trace
= {NULL
, NULL
, 458, LOCATE_array___ArrayMap___remove
};
1461 void **closurevariable
= NULL
;
1462 trace
.prev
= tracehead
; tracehead
= &trace
;
1463 trace
.file
= LOCATE_array
;
1465 variable
[1] = param0
;
1466 variable
[4] = variable
[0];
1467 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1468 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
1469 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])-UNTAG_Int( TAG_Int(1)));
1470 variable
[3] = variable
[4];
1471 while (true) { /*while*/
1472 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
1473 if (!UNTAG_Bool(variable
[4])) break; /* while*/
1474 variable
[4] = variable
[0];
1475 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1476 variable
[5] = variable
[4];
1477 variable
[6] = variable
[3] /*i*/;
1478 variable
[8] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1479 variable
[9] = variable
[8];
1480 if (UNTAG_Bool(variable
[9])) { /* and */
1481 variable
[9] = variable
[5];
1482 variable
[9] = ATTR_array___AbstractArray____length(variable
[9]) /*AbstractArray::_length*/;
1483 variable
[9] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)<UNTAG_Int(variable
[9]));
1485 variable
[8] = variable
[9];
1486 if (!UNTAG_Bool(variable
[8])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
1487 variable
[8] = variable
[5];
1488 variable
[8] = ATTR_array___Array____items(variable
[8]) /*Array::_items*/;
1489 variable
[8] = UNBOX_NativeArray(variable
[8])[UNTAG_Int( variable
[6] /*index*/)];
1490 variable
[7] = variable
[8];
1491 goto return_label82
;
1492 return_label82
: while(false);
1493 variable
[4] = variable
[7];
1494 variable
[4] = ((abstract_collection___Couple___second_t
)CALL(variable
[4],COLOR_abstract_collection___Couple___second
))(variable
[4]) /*Couple::second*/;
1495 variable
[4] = TAG_Bool((variable
[4] == variable
[1] /*item*/) || ((variable
[4] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))(variable
[4], variable
[1] /*item*/) /*Object::==*/)))));
1496 if (UNTAG_Bool(variable
[4])) { /*if*/
1497 variable
[4] = variable
[0];
1498 ((array___ArrayMap___remove_at_index_t
)CALL(variable
[4],COLOR_array___ArrayMap___remove_at_index
))(variable
[4], variable
[3] /*i*/) /*ArrayMap::remove_at_index*/;
1499 goto return_label80
;
1501 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])-UNTAG_Int( TAG_Int(1))) /*i*/;
1502 continue_81
: while(0);
1505 return_label80
: while(false);
1506 tracehead
= trace
.prev
;
1509 void array___ArrayMap___remove_all(val_t self
, val_t param0
) {
1510 struct trace_t trace
= {NULL
, NULL
, 470, LOCATE_array___ArrayMap___remove_all
};
1512 void **closurevariable
= NULL
;
1513 trace
.prev
= tracehead
; tracehead
= &trace
;
1514 trace
.file
= LOCATE_array
;
1516 variable
[1] = param0
;
1517 variable
[4] = variable
[0];
1518 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1519 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
1520 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])-UNTAG_Int( TAG_Int(1)));
1521 variable
[3] = variable
[4];
1522 while (true) { /*while*/
1523 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
1524 if (!UNTAG_Bool(variable
[4])) break; /* while*/
1525 variable
[4] = variable
[0];
1526 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1527 variable
[5] = variable
[4];
1528 variable
[6] = variable
[3] /*i*/;
1529 variable
[8] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1530 variable
[9] = variable
[8];
1531 if (UNTAG_Bool(variable
[9])) { /* and */
1532 variable
[9] = variable
[5];
1533 variable
[9] = ATTR_array___AbstractArray____length(variable
[9]) /*AbstractArray::_length*/;
1534 variable
[9] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)<UNTAG_Int(variable
[9]));
1536 variable
[8] = variable
[9];
1537 if (!UNTAG_Bool(variable
[8])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
1538 variable
[8] = variable
[5];
1539 variable
[8] = ATTR_array___Array____items(variable
[8]) /*Array::_items*/;
1540 variable
[8] = UNBOX_NativeArray(variable
[8])[UNTAG_Int( variable
[6] /*index*/)];
1541 variable
[7] = variable
[8];
1542 goto return_label85
;
1543 return_label85
: while(false);
1544 variable
[4] = variable
[7];
1545 variable
[4] = ((abstract_collection___Couple___second_t
)CALL(variable
[4],COLOR_abstract_collection___Couple___second
))(variable
[4]) /*Couple::second*/;
1546 variable
[4] = TAG_Bool((variable
[4] == variable
[1] /*item*/) || ((variable
[4] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], variable
[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[4],COLOR_kernel___Object_____eqeq
))(variable
[4], variable
[1] /*item*/) /*Object::==*/)))));
1547 if (UNTAG_Bool(variable
[4])) { /*if*/
1548 variable
[4] = variable
[0];
1549 ((array___ArrayMap___remove_at_index_t
)CALL(variable
[4],COLOR_array___ArrayMap___remove_at_index
))(variable
[4], variable
[3] /*i*/) /*ArrayMap::remove_at_index*/;
1551 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])-UNTAG_Int( TAG_Int(1))) /*i*/;
1552 continue_84
: while(0);
1555 return_label83
: while(false);
1556 tracehead
= trace
.prev
;
1559 val_t
array___ArrayMap_____bra(val_t self
, val_t param0
) {
1560 struct trace_t trace
= {NULL
, NULL
, 402, LOCATE_array___ArrayMap_____bra
};
1562 void **closurevariable
= NULL
;
1563 trace
.prev
= tracehead
; tracehead
= &trace
;
1564 trace
.file
= LOCATE_array
;
1566 variable
[1] = param0
;
1567 variable
[4] = variable
[0];
1568 variable
[4] = ((array___ArrayMap___index_t
)CALL(variable
[4],COLOR_array___ArrayMap___index
))(variable
[4], variable
[1] /*key*/) /*ArrayMap::index*/;
1569 variable
[3] = variable
[4];
1570 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
1571 if (UNTAG_Bool(variable
[4])) { /*if*/
1572 variable
[4] = variable
[0];
1573 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1574 variable
[5] = variable
[4];
1575 variable
[6] = variable
[3] /*i*/;
1576 variable
[8] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1577 variable
[9] = variable
[8];
1578 if (UNTAG_Bool(variable
[9])) { /* and */
1579 variable
[9] = variable
[5];
1580 variable
[9] = ATTR_array___AbstractArray____length(variable
[9]) /*AbstractArray::_length*/;
1581 variable
[9] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)<UNTAG_Int(variable
[9]));
1583 variable
[8] = variable
[9];
1584 if (!UNTAG_Bool(variable
[8])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
1585 variable
[8] = variable
[5];
1586 variable
[8] = ATTR_array___Array____items(variable
[8]) /*Array::_items*/;
1587 variable
[8] = UNBOX_NativeArray(variable
[8])[UNTAG_Int( variable
[6] /*index*/)];
1588 variable
[7] = variable
[8];
1589 goto return_label87
;
1590 return_label87
: while(false);
1591 variable
[4] = variable
[7];
1592 variable
[4] = ((abstract_collection___Couple___second_t
)CALL(variable
[4],COLOR_abstract_collection___Couple___second
))(variable
[4]) /*Couple::second*/;
1593 variable
[2] = variable
[4];
1594 goto return_label86
;
1596 variable
[2] = NIT_NULL
/*null*/;
1597 goto return_label86
;
1599 return_label86
: while(false);
1600 tracehead
= trace
.prev
;
1603 void array___ArrayMap_____braeq(val_t self
, val_t param0
, val_t param1
) {
1604 struct trace_t trace
= {NULL
, NULL
, 413, LOCATE_array___ArrayMap_____braeq
};
1606 void **closurevariable
= NULL
;
1607 trace
.prev
= tracehead
; tracehead
= &trace
;
1608 trace
.file
= LOCATE_array
;
1610 variable
[1] = param0
;
1611 variable
[2] = param1
;
1612 variable
[5] = variable
[0];
1613 variable
[5] = ((array___ArrayMap___index_t
)CALL(variable
[5],COLOR_array___ArrayMap___index
))(variable
[5], variable
[1] /*key*/) /*ArrayMap::index*/;
1614 variable
[4] = variable
[5];
1615 variable
[5] = TAG_Bool(UNTAG_Int( variable
[4] /*i*/)>=UNTAG_Int( TAG_Int(0)));
1616 if (UNTAG_Bool(variable
[5])) { /*if*/
1617 variable
[5] = variable
[0];
1618 variable
[5] = ATTR_array___ArrayMap____items(variable
[5]) /*ArrayMap::_items*/;
1619 variable
[6] = variable
[5];
1620 variable
[7] = variable
[4] /*i*/;
1621 variable
[9] = TAG_Bool(UNTAG_Int( variable
[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1622 variable
[10] = variable
[9];
1623 if (UNTAG_Bool(variable
[10])) { /* and */
1624 variable
[10] = variable
[6];
1625 variable
[10] = ATTR_array___AbstractArray____length(variable
[10]) /*AbstractArray::_length*/;
1626 variable
[10] = TAG_Bool(UNTAG_Int( variable
[7] /*index*/)<UNTAG_Int(variable
[10]));
1628 variable
[9] = variable
[10];
1629 if (!UNTAG_Bool(variable
[9])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
1630 variable
[9] = variable
[6];
1631 variable
[9] = ATTR_array___Array____items(variable
[9]) /*Array::_items*/;
1632 variable
[9] = UNBOX_NativeArray(variable
[9])[UNTAG_Int( variable
[7] /*index*/)];
1633 variable
[8] = variable
[9];
1634 goto return_label89
;
1635 return_label89
: while(false);
1636 variable
[5] = variable
[8];
1637 ((abstract_collection___Couple___second__eq_t
)CALL(variable
[5],COLOR_abstract_collection___Couple___second__eq
))(variable
[5], variable
[2] /*item*/) /*Couple::second=*/;
1639 variable
[5] = variable
[0];
1640 variable
[5] = ATTR_array___ArrayMap____items(variable
[5]) /*ArrayMap::_items*/;
1641 variable
[6] = NEW_Couple_abstract_collection___Couple___init( variable
[1] /*key*/, variable
[2] /*item*/); /*new Couple[K, E]*/
1642 ((array___AbstractArray___push_t
)CALL(variable
[5],COLOR_abstract_collection___IndexedCollection___push
))(variable
[5], variable
[6]) /*AbstractArray::push*/;
1644 return_label88
: while(false);
1645 tracehead
= trace
.prev
;
1648 val_t
array___ArrayMap___has_key(val_t self
, val_t param0
) {
1649 struct trace_t trace
= {NULL
, NULL
, 424, LOCATE_array___ArrayMap___has_key
};
1651 void **closurevariable
= NULL
;
1652 trace
.prev
= tracehead
; tracehead
= &trace
;
1653 trace
.file
= LOCATE_array
;
1655 variable
[1] = param0
;
1656 variable
[3] = variable
[0];
1657 variable
[3] = ((array___ArrayMap___index_t
)CALL(variable
[3],COLOR_array___ArrayMap___index
))(variable
[3], variable
[1] /*key*/) /*ArrayMap::index*/;
1658 variable
[3] = TAG_Bool(UNTAG_Int(variable
[3])>=UNTAG_Int( TAG_Int(0)));
1659 variable
[2] = variable
[3];
1660 goto return_label90
;
1661 return_label90
: while(false);
1662 tracehead
= trace
.prev
;
1665 void array___ArrayMap___remove_at(val_t self
, val_t param0
) {
1666 struct trace_t trace
= {NULL
, NULL
, 481, LOCATE_array___ArrayMap___remove_at
};
1668 void **closurevariable
= NULL
;
1669 trace
.prev
= tracehead
; tracehead
= &trace
;
1670 trace
.file
= LOCATE_array
;
1672 variable
[1] = param0
;
1673 variable
[4] = variable
[0];
1674 variable
[4] = ((array___ArrayMap___index_t
)CALL(variable
[4],COLOR_array___ArrayMap___index
))(variable
[4], variable
[1] /*key*/) /*ArrayMap::index*/;
1675 variable
[3] = variable
[4];
1676 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
1677 if (UNTAG_Bool(variable
[4])) { /*if*/
1678 variable
[4] = variable
[0];
1679 ((array___ArrayMap___remove_at_index_t
)CALL(variable
[4],COLOR_array___ArrayMap___remove_at_index
))(variable
[4], variable
[3] /*i*/) /*ArrayMap::remove_at_index*/;
1681 return_label91
: while(false);
1682 tracehead
= trace
.prev
;
1685 val_t
array___ArrayMap___couple_at(val_t self
, val_t param0
) {
1686 struct trace_t trace
= {NULL
, NULL
, 492, LOCATE_array___ArrayMap___couple_at
};
1688 void **closurevariable
= NULL
;
1689 trace
.prev
= tracehead
; tracehead
= &trace
;
1690 trace
.file
= LOCATE_array
;
1692 variable
[1] = param0
;
1693 variable
[4] = variable
[0];
1694 variable
[4] = ((array___ArrayMap___index_t
)CALL(variable
[4],COLOR_array___ArrayMap___index
))(variable
[4], variable
[1] /*key*/) /*ArrayMap::index*/;
1695 variable
[3] = variable
[4];
1696 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*i*/)>=UNTAG_Int( TAG_Int(0)));
1697 if (UNTAG_Bool(variable
[4])) { /*if*/
1698 variable
[4] = variable
[0];
1699 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1700 variable
[5] = variable
[4];
1701 variable
[6] = variable
[3] /*i*/;
1702 variable
[8] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1703 variable
[9] = variable
[8];
1704 if (UNTAG_Bool(variable
[9])) { /* and */
1705 variable
[9] = variable
[5];
1706 variable
[9] = ATTR_array___AbstractArray____length(variable
[9]) /*AbstractArray::_length*/;
1707 variable
[9] = TAG_Bool(UNTAG_Int( variable
[6] /*index*/)<UNTAG_Int(variable
[9]));
1709 variable
[8] = variable
[9];
1710 if (!UNTAG_Bool(variable
[8])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
1711 variable
[8] = variable
[5];
1712 variable
[8] = ATTR_array___Array____items(variable
[8]) /*Array::_items*/;
1713 variable
[8] = UNBOX_NativeArray(variable
[8])[UNTAG_Int( variable
[6] /*index*/)];
1714 variable
[7] = variable
[8];
1715 goto return_label93
;
1716 return_label93
: while(false);
1717 variable
[4] = variable
[7];
1718 variable
[2] = variable
[4];
1719 goto return_label92
;
1721 variable
[2] = NIT_NULL
/*null*/;
1722 goto return_label92
;
1724 return_label92
: while(false);
1725 tracehead
= trace
.prev
;
1728 void array___ArrayMap___enlarge(val_t self
, val_t param0
) {
1729 struct trace_t trace
= {NULL
, NULL
, 489, LOCATE_array___ArrayMap___enlarge
};
1731 void **closurevariable
= NULL
;
1732 trace
.prev
= tracehead
; tracehead
= &trace
;
1733 trace
.file
= LOCATE_array
;
1735 variable
[1] = param0
;
1736 variable
[3] = variable
[0];
1737 variable
[3] = ATTR_array___ArrayMap____items(variable
[3]) /*ArrayMap::_items*/;
1738 ((array___Array___enlarge_t
)CALL(variable
[3],COLOR_array___AbstractArray___enlarge
))(variable
[3], variable
[1] /*cap*/) /*Array::enlarge*/;
1739 return_label94
: while(false);
1740 tracehead
= trace
.prev
;
1743 void array___ArrayMap___remove_at_index(val_t self
, val_t param0
) {
1744 struct trace_t trace
= {NULL
, NULL
, 505, LOCATE_array___ArrayMap___remove_at_index
};
1746 void **closurevariable
= NULL
;
1747 trace
.prev
= tracehead
; tracehead
= &trace
;
1748 trace
.file
= LOCATE_array
;
1750 variable
[1] = param0
;
1751 variable
[3] = variable
[0];
1752 variable
[3] = ATTR_array___ArrayMap____items(variable
[3]) /*ArrayMap::_items*/;
1753 variable
[4] = variable
[0];
1754 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1755 variable
[4] = ((abstract_collection___IndexedCollection___last_t
)CALL(variable
[4],COLOR_abstract_collection___IndexedCollection___last
))(variable
[4]) /*IndexedCollection::last*/;
1756 ((array___Array_____braeq_t
)CALL(variable
[3],COLOR_abstract_collection___Map_____braeq
))(variable
[3], variable
[1] /*i*/, variable
[4]) /*Array::[]=*/;
1757 variable
[3] = variable
[0];
1758 variable
[3] = ATTR_array___ArrayMap____items(variable
[3]) /*ArrayMap::_items*/;
1759 ((array___AbstractArray___pop_t
)CALL(variable
[3],COLOR_abstract_collection___IndexedCollection___pop
))(variable
[3]) /*AbstractArray::pop*/;
1760 return_label95
: while(false);
1761 tracehead
= trace
.prev
;
1764 val_t
array___ArrayMap___index(val_t self
, val_t param0
) {
1765 struct trace_t trace
= {NULL
, NULL
, 515, LOCATE_array___ArrayMap___index
};
1767 void **closurevariable
= NULL
;
1768 trace
.prev
= tracehead
; tracehead
= &trace
;
1769 trace
.file
= LOCATE_array
;
1771 variable
[1] = param0
;
1772 variable
[4] = variable
[0];
1773 variable
[4] = ATTR_array___ArrayMap____last_index(variable
[4]) /*ArrayMap::_last_index*/;
1774 variable
[3] = variable
[4];
1775 variable
[4] = variable
[0];
1776 variable
[4] = ATTR_array___ArrayMap____items(variable
[4]) /*ArrayMap::_items*/;
1777 variable
[4] = ((array___AbstractArray___length_t
)CALL(variable
[4],COLOR_abstract_collection___Collection___length
))(variable
[4]) /*AbstractArray::length*/;
1778 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*l*/)<UNTAG_Int(variable
[4]));
1779 variable
[5] = variable
[4];
1780 if (UNTAG_Bool(variable
[5])) { /* and */
1781 variable
[5] = variable
[0];
1782 variable
[5] = ATTR_array___ArrayMap____items(variable
[5]) /*ArrayMap::_items*/;
1783 variable
[6] = variable
[5];
1784 variable
[7] = variable
[3] /*l*/;
1785 variable
[9] = TAG_Bool(UNTAG_Int( variable
[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1786 variable
[10] = variable
[9];
1787 if (UNTAG_Bool(variable
[10])) { /* and */
1788 variable
[10] = variable
[6];
1789 variable
[10] = ATTR_array___AbstractArray____length(variable
[10]) /*AbstractArray::_length*/;
1790 variable
[10] = TAG_Bool(UNTAG_Int( variable
[7] /*index*/)<UNTAG_Int(variable
[10]));
1792 variable
[9] = variable
[10];
1793 if (!UNTAG_Bool(variable
[9])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
1794 variable
[9] = variable
[6];
1795 variable
[9] = ATTR_array___Array____items(variable
[9]) /*Array::_items*/;
1796 variable
[9] = UNBOX_NativeArray(variable
[9])[UNTAG_Int( variable
[7] /*index*/)];
1797 variable
[8] = variable
[9];
1798 goto return_label97
;
1799 return_label97
: while(false);
1800 variable
[5] = variable
[8];
1801 variable
[5] = ((abstract_collection___Couple___first_t
)CALL(variable
[5],COLOR_abstract_collection___Couple___first
))(variable
[5]) /*Couple::first*/;
1802 variable
[5] = TAG_Bool((variable
[5] == variable
[1] /*key*/) || ((variable
[5] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], variable
[1] /*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))(variable
[5], variable
[1] /*key*/) /*Object::==*/)))));
1804 variable
[4] = variable
[5];
1805 if (UNTAG_Bool(variable
[4])) { /*if*/
1806 variable
[2] = variable
[3] /*l*/;
1807 goto return_label96
;
1809 variable
[4] = TAG_Int(0);
1810 while (true) { /*while*/
1811 variable
[5] = variable
[0];
1812 variable
[5] = ATTR_array___ArrayMap____items(variable
[5]) /*ArrayMap::_items*/;
1813 variable
[5] = ((array___AbstractArray___length_t
)CALL(variable
[5],COLOR_abstract_collection___Collection___length
))(variable
[5]) /*AbstractArray::length*/;
1814 variable
[5] = TAG_Bool(UNTAG_Int( variable
[4] /*i*/)<UNTAG_Int(variable
[5]));
1815 if (!UNTAG_Bool(variable
[5])) break; /* while*/
1816 variable
[5] = variable
[0];
1817 variable
[5] = ATTR_array___ArrayMap____items(variable
[5]) /*ArrayMap::_items*/;
1818 variable
[6] = variable
[5];
1819 variable
[7] = variable
[4] /*i*/;
1820 variable
[9] = TAG_Bool(UNTAG_Int( variable
[7] /*index*/)>=UNTAG_Int( TAG_Int(0)));
1821 variable
[10] = variable
[9];
1822 if (UNTAG_Bool(variable
[10])) { /* and */
1823 variable
[10] = variable
[6];
1824 variable
[10] = ATTR_array___AbstractArray____length(variable
[10]) /*AbstractArray::_length*/;
1825 variable
[10] = TAG_Bool(UNTAG_Int( variable
[7] /*index*/)<UNTAG_Int(variable
[10]));
1827 variable
[9] = variable
[10];
1828 if (!UNTAG_Bool(variable
[9])) { fprintf(stderr
, "Assert%s failed", " 'index' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_array___Array_____bra
, LOCATE_array
, 229); nit_exit(1);}
1829 variable
[9] = variable
[6];
1830 variable
[9] = ATTR_array___Array____items(variable
[9]) /*Array::_items*/;
1831 variable
[9] = UNBOX_NativeArray(variable
[9])[UNTAG_Int( variable
[7] /*index*/)];
1832 variable
[8] = variable
[9];
1833 goto return_label99
;
1834 return_label99
: while(false);
1835 variable
[5] = variable
[8];
1836 variable
[5] = ((abstract_collection___Couple___first_t
)CALL(variable
[5],COLOR_abstract_collection___Couple___first
))(variable
[5]) /*Couple::first*/;
1837 variable
[5] = TAG_Bool((variable
[5] == variable
[1] /*key*/) || ((variable
[5] != NIT_NULL
) && ((((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[5], variable
[1] /*key*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t
)CALL(variable
[5],COLOR_kernel___Object_____eqeq
))(variable
[5], variable
[1] /*key*/) /*Object::==*/)))));
1838 if (UNTAG_Bool(variable
[5])) { /*if*/
1839 variable
[5] = variable
[0];
1840 ATTR_array___ArrayMap____last_index(variable
[5]) /*ArrayMap::_last_index*/ = variable
[4] /*i*/;
1841 variable
[2] = variable
[4] /*i*/;
1842 goto return_label96
;
1844 variable
[4] = TAG_Int(UNTAG_Int(variable
[4])+UNTAG_Int( TAG_Int(1))) /*i*/;
1845 continue_98
: while(0);
1848 variable
[5] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
1849 variable
[2] = variable
[5];
1850 goto return_label96
;
1851 return_label96
: while(false);
1852 tracehead
= trace
.prev
;
1855 void array___ArrayMap___init(val_t self
, int* init_table
) {
1856 struct trace_t trace
= {NULL
, NULL
, 533, LOCATE_array___ArrayMap___init
};
1858 void **closurevariable
= NULL
;
1859 trace
.prev
= tracehead
; tracehead
= &trace
;
1860 trace
.file
= LOCATE_array
;
1862 if (init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayMap
].i
]) return;
1863 variable
[2] = variable
[0];
1864 variable
[3] = NEW_Array_array___Array___init(); /*new Array[Couple[K, E]]*/
1865 ATTR_array___ArrayMap____items(variable
[2]) /*ArrayMap::_items*/ = variable
[3];
1866 return_label100
: while(false);
1867 init_table
[VAL2OBJ( self
)->vft
[INIT_TABLE_POS_ArrayMap
].i
] = 1;
1868 tracehead
= trace
.prev
;
1871 val_t
array___Iterator___to_a(val_t self
) {
1872 struct trace_t trace
= {NULL
, NULL
, 543, LOCATE_array___Iterator___to_a
};
1874 void **closurevariable
= NULL
;
1875 trace
.prev
= tracehead
; tracehead
= &trace
;
1876 trace
.file
= LOCATE_array
;
1878 variable
[3] = NEW_Array_array___Array___init(); /*new Array[E]*/
1879 variable
[2] = variable
[3];
1880 while (true) { /*while*/
1881 variable
[3] = variable
[0];
1882 variable
[3] = ((abstract_collection___Iterator___is_ok_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___is_ok
))(variable
[3]) /*Iterator::is_ok*/;
1883 if (!UNTAG_Bool(variable
[3])) break; /* while*/
1884 variable
[3] = variable
[0];
1885 variable
[3] = ((abstract_collection___Iterator___item_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___item
))(variable
[3]) /*Iterator::item*/;
1886 ((array___AbstractArray___add_t
)CALL( variable
[2] /*res*/,COLOR_abstract_collection___SimpleCollection___add
))( variable
[2] /*res*/, variable
[3]) /*AbstractArray::add*/;
1887 variable
[3] = variable
[0];
1888 ((abstract_collection___Iterator___next_t
)CALL(variable
[3],COLOR_abstract_collection___Iterator___next
))(variable
[3]) /*Iterator::next*/;
1889 continue_102
: while(0);
1891 break_102
: while(0);
1892 variable
[1] = variable
[2] /*res*/;
1893 goto return_label101
;
1894 return_label101
: while(false);
1895 tracehead
= trace
.prev
;
1898 val_t
array___Collection___to_a(val_t self
) {
1899 struct trace_t trace
= {NULL
, NULL
, 556, LOCATE_array___Collection___to_a
};
1901 void **closurevariable
= NULL
;
1902 trace
.prev
= tracehead
; tracehead
= &trace
;
1903 trace
.file
= LOCATE_array
;
1905 variable
[2] = variable
[0];
1906 variable
[2] = ((abstract_collection___Collection___iterator_t
)CALL(variable
[2],COLOR_abstract_collection___Collection___iterator
))(variable
[2]) /*Collection::iterator*/;
1907 variable
[2] = ((array___Iterator___to_a_t
)CALL(variable
[2],COLOR_array___Iterator___to_a
))(variable
[2]) /*Iterator::to_a*/;
1908 variable
[1] = variable
[2];
1909 goto return_label103
;
1910 return_label103
: while(false);
1911 tracehead
= trace
.prev
;
1914 val_t
array___ArrayCapable___calloc_array(val_t self
, val_t param0
) {
1915 struct trace_t trace
= {NULL
, NULL
, 567, LOCATE_array___ArrayCapable___calloc_array
};
1916 val_t
*variable
= NULL
;
1917 void **closurevariable
= NULL
;
1918 trace
.prev
= tracehead
; tracehead
= &trace
;
1919 trace
.file
= LOCATE_array
;
1920 tracehead
= trace
.prev
;
1921 return BOX_NativeArray((val_t
*)malloc((UNTAG_Int( param0
) * sizeof(val_t
))));
1923 val_t
array___NativeArray_____bra(val_t self
, val_t param0
) {
1924 struct trace_t trace
= {NULL
, NULL
, 573, LOCATE_array___NativeArray_____bra
};
1925 val_t
*variable
= NULL
;
1926 void **closurevariable
= NULL
;
1927 trace
.prev
= tracehead
; tracehead
= &trace
;
1928 trace
.file
= LOCATE_array
;
1929 tracehead
= trace
.prev
;
1930 return UNBOX_NativeArray( self
)[UNTAG_Int( param0
)];
1932 void array___NativeArray_____braeq(val_t self
, val_t param0
, val_t param1
) {
1933 struct trace_t trace
= {NULL
, NULL
, 574, LOCATE_array___NativeArray_____braeq
};
1934 val_t
*variable
= NULL
;
1935 void **closurevariable
= NULL
;
1936 trace
.prev
= tracehead
; tracehead
= &trace
;
1937 trace
.file
= LOCATE_array
;
1938 UNBOX_NativeArray( self
)[UNTAG_Int( param0
)]= param1
;
1939 tracehead
= trace
.prev
;
1942 void array___NativeArray___copy_to(val_t self
, val_t param0
, val_t param1
) {
1943 struct trace_t trace
= {NULL
, NULL
, 575, LOCATE_array___NativeArray___copy_to
};
1944 val_t
*variable
= NULL
;
1945 void **closurevariable
= NULL
;
1946 trace
.prev
= tracehead
; tracehead
= &trace
;
1947 trace
.file
= LOCATE_array
;
1948 (void)memcpy(UNBOX_NativeArray( param0
), UNBOX_NativeArray( self
), UNTAG_Int( param1
)*sizeof(val_t
));
1949 tracehead
= trace
.prev
;