1 /* This C file is generated by NIT to compile module abstract_collection. */
2 #include "abstract_collection._sep.h"
3 val_t
abstract_collection___Collection___iterator(val_t self
) {
4 struct trace_t trace
= {NULL
, NULL
, 42, LOCATE_abstract_collection___Collection___iterator
};
5 val_t
*variable
= NULL
;
6 void **closurevariable
= NULL
;
7 trace
.prev
= tracehead
; tracehead
= &trace
;
8 trace
.file
= LOCATE_abstract_collection
;
9 fprintf(stderr
, "Deferred method called");
10 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 42);
12 tracehead
= trace
.prev
;
15 val_t
abstract_collection___Collection___is_empty(val_t self
) {
16 struct trace_t trace
= {NULL
, NULL
, 45, LOCATE_abstract_collection___Collection___is_empty
};
17 val_t
*variable
= NULL
;
18 void **closurevariable
= NULL
;
19 trace
.prev
= tracehead
; tracehead
= &trace
;
20 trace
.file
= LOCATE_abstract_collection
;
21 fprintf(stderr
, "Deferred method called");
22 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 45);
24 tracehead
= trace
.prev
;
27 val_t
abstract_collection___Collection___length(val_t self
) {
28 struct trace_t trace
= {NULL
, NULL
, 48, LOCATE_abstract_collection___Collection___length
};
29 val_t
*variable
= NULL
;
30 void **closurevariable
= NULL
;
31 trace
.prev
= tracehead
; tracehead
= &trace
;
32 trace
.file
= LOCATE_abstract_collection
;
33 fprintf(stderr
, "Deferred method called");
34 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 48);
36 tracehead
= trace
.prev
;
39 val_t
abstract_collection___Collection___has(val_t self
, val_t param0
) {
40 struct trace_t trace
= {NULL
, NULL
, 51, LOCATE_abstract_collection___Collection___has
};
41 val_t
*variable
= NULL
;
42 void **closurevariable
= NULL
;
43 trace
.prev
= tracehead
; tracehead
= &trace
;
44 trace
.file
= LOCATE_abstract_collection
;
45 fprintf(stderr
, "Deferred method called");
46 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 51);
48 tracehead
= trace
.prev
;
51 val_t
abstract_collection___Collection___has_only(val_t self
, val_t param0
) {
52 struct trace_t trace
= {NULL
, NULL
, 55, LOCATE_abstract_collection___Collection___has_only
};
53 val_t
*variable
= NULL
;
54 void **closurevariable
= NULL
;
55 trace
.prev
= tracehead
; tracehead
= &trace
;
56 trace
.file
= LOCATE_abstract_collection
;
57 fprintf(stderr
, "Deferred method called");
58 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 55);
60 tracehead
= trace
.prev
;
63 val_t
abstract_collection___Collection___count(val_t self
, val_t param0
) {
64 struct trace_t trace
= {NULL
, NULL
, 60, LOCATE_abstract_collection___Collection___count
};
65 val_t
*variable
= NULL
;
66 void **closurevariable
= NULL
;
67 trace
.prev
= tracehead
; tracehead
= &trace
;
68 trace
.file
= LOCATE_abstract_collection
;
69 fprintf(stderr
, "Deferred method called");
70 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 60);
72 tracehead
= trace
.prev
;
75 val_t
abstract_collection___Collection___first(val_t self
) {
76 struct trace_t trace
= {NULL
, NULL
, 64, LOCATE_abstract_collection___Collection___first
};
77 val_t
*variable
= NULL
;
78 void **closurevariable
= NULL
;
79 trace
.prev
= tracehead
; tracehead
= &trace
;
80 trace
.file
= LOCATE_abstract_collection
;
81 fprintf(stderr
, "Deferred method called");
82 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 64);
84 tracehead
= trace
.prev
;
87 val_t
abstract_collection___NaiveCollection___is_empty(val_t self
) {
88 struct trace_t trace
= {NULL
, NULL
, 72, LOCATE_abstract_collection___NaiveCollection___is_empty
};
90 void **closurevariable
= NULL
;
91 trace
.prev
= tracehead
; tracehead
= &trace
;
92 trace
.file
= LOCATE_abstract_collection
;
94 variable
[2] = variable
[0];
95 variable
[2] = CALL_abstract_collection___Collection___length(variable
[2])(variable
[2]) /*NaiveCollection::length*/;
96 variable
[2] = TAG_Bool((variable
[2])==( TAG_Int(0)));
97 variable
[1] = variable
[2];
99 return_label0
: while(false);
100 tracehead
= trace
.prev
;
103 val_t
abstract_collection___NaiveCollection___length(val_t self
) {
104 struct trace_t trace
= {NULL
, NULL
, 74, LOCATE_abstract_collection___NaiveCollection___length
};
106 void **closurevariable
= NULL
;
107 trace
.prev
= tracehead
; tracehead
= &trace
;
108 trace
.file
= LOCATE_abstract_collection
;
110 variable
[2] = TAG_Int(0);
111 variable
[3] = variable
[0];
112 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Collection::iterator*/;
113 while (true) { /*for*/
114 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
115 if (!UNTAG_Bool(variable
[4])) break; /*for*/
116 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
117 variable
[5] = variable
[4];
118 variable
[2] = TAG_Int(UNTAG_Int(variable
[2])+UNTAG_Int( variable
[2] /*nb*/)) /*nb*/;
119 continue_2
: while(0);
120 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
123 variable
[1] = variable
[2] /*nb*/;
125 return_label1
: while(false);
126 tracehead
= trace
.prev
;
129 val_t
abstract_collection___NaiveCollection___has(val_t self
, val_t param0
) {
130 struct trace_t trace
= {NULL
, NULL
, 81, LOCATE_abstract_collection___NaiveCollection___has
};
132 void **closurevariable
= NULL
;
133 trace
.prev
= tracehead
; tracehead
= &trace
;
134 trace
.file
= LOCATE_abstract_collection
;
136 variable
[1] = param0
;
137 variable
[3] = variable
[0];
138 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Collection::iterator*/;
139 while (true) { /*for*/
140 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
141 if (!UNTAG_Bool(variable
[4])) break; /*for*/
142 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
143 variable
[5] = variable
[4];
144 variable
[6] = TAG_Bool(( variable
[5] /*i*/ == variable
[1] /*item*/) || (( variable
[5] /*i*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*i*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*i*/, variable
[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*i*/)( variable
[5] /*i*/, variable
[1] /*item*/) /*Object::==*/)))));
145 if (UNTAG_Bool(variable
[6])) { /*if*/
146 variable
[2] = TAG_Bool(true);
149 continue_4
: while(0);
150 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
153 variable
[2] = TAG_Bool(false);
155 return_label3
: while(false);
156 tracehead
= trace
.prev
;
159 val_t
abstract_collection___NaiveCollection___has_only(val_t self
, val_t param0
) {
160 struct trace_t trace
= {NULL
, NULL
, 87, LOCATE_abstract_collection___NaiveCollection___has_only
};
162 void **closurevariable
= NULL
;
163 trace
.prev
= tracehead
; tracehead
= &trace
;
164 trace
.file
= LOCATE_abstract_collection
;
166 variable
[1] = param0
;
167 variable
[3] = variable
[0];
168 variable
[3] = CALL_abstract_collection___Collection___iterator(variable
[3])(variable
[3]) /*Collection::iterator*/;
169 while (true) { /*for*/
170 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
171 if (!UNTAG_Bool(variable
[4])) break; /*for*/
172 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
173 variable
[5] = variable
[4];
174 variable
[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[5] /*i*/ == variable
[1] /*item*/) || (( variable
[5] /*i*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[5] /*i*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[5] /*i*/, variable
[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[5] /*i*/)( variable
[5] /*i*/, variable
[1] /*item*/) /*Object::==*/)))))));
175 if (UNTAG_Bool(variable
[6])) { /*if*/
176 variable
[2] = TAG_Bool(false);
179 continue_6
: while(0);
180 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
183 variable
[2] = TAG_Bool(true);
185 return_label5
: while(false);
186 tracehead
= trace
.prev
;
189 val_t
abstract_collection___NaiveCollection___count(val_t self
, val_t param0
) {
190 struct trace_t trace
= {NULL
, NULL
, 93, LOCATE_abstract_collection___NaiveCollection___count
};
192 void **closurevariable
= NULL
;
193 trace
.prev
= tracehead
; tracehead
= &trace
;
194 trace
.file
= LOCATE_abstract_collection
;
196 variable
[1] = param0
;
197 variable
[3] = TAG_Int(0);
198 variable
[4] = variable
[0];
199 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*Collection::iterator*/;
200 while (true) { /*for*/
201 variable
[5] = CALL_abstract_collection___Iterator___is_ok(variable
[4])(variable
[4]) /*Iterator::is_ok*/;
202 if (!UNTAG_Bool(variable
[5])) break; /*for*/
203 variable
[5] = CALL_abstract_collection___Iterator___item(variable
[4])(variable
[4]) /*Iterator::item*/;
204 variable
[6] = variable
[5];
205 variable
[7] = TAG_Bool(( variable
[6] /*i*/ == variable
[1] /*item*/) || (( variable
[6] /*i*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[6] /*i*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[6] /*i*/, variable
[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[6] /*i*/)( variable
[6] /*i*/, variable
[1] /*item*/) /*Object::==*/)))));
206 if (UNTAG_Bool(variable
[7])) { /*if*/
207 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])+UNTAG_Int( TAG_Int(1))) /*nb*/;
209 continue_8
: while(0);
210 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*Iterator::next*/;
213 variable
[2] = variable
[3] /*nb*/;
215 return_label7
: while(false);
216 tracehead
= trace
.prev
;
219 val_t
abstract_collection___NaiveCollection___first(val_t self
) {
220 struct trace_t trace
= {NULL
, NULL
, 100, LOCATE_abstract_collection___NaiveCollection___first
};
222 void **closurevariable
= NULL
;
223 trace
.prev
= tracehead
; tracehead
= &trace
;
224 trace
.file
= LOCATE_abstract_collection
;
226 variable
[2] = variable
[0];
227 variable
[2] = CALL_abstract_collection___Collection___length(variable
[2])(variable
[2]) /*NaiveCollection::length*/;
228 variable
[2] = TAG_Bool(UNTAG_Int(variable
[2])>UNTAG_Int( TAG_Int(0)));
229 if (!UNTAG_Bool(variable
[2])) { fprintf(stderr
, "Assert%s failed", ""); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstract_collection___NaiveCollection___first
, LOCATE_abstract_collection
, 102); nit_exit(1);}
230 variable
[2] = variable
[0];
231 variable
[2] = CALL_abstract_collection___Collection___iterator(variable
[2])(variable
[2]) /*Collection::iterator*/;
232 variable
[2] = CALL_abstract_collection___Iterator___item(variable
[2])(variable
[2]) /*Iterator::item*/;
233 variable
[1] = variable
[2];
235 return_label9
: while(false);
236 tracehead
= trace
.prev
;
239 val_t
abstract_collection___Iterator___item(val_t self
) {
240 struct trace_t trace
= {NULL
, NULL
, 110, LOCATE_abstract_collection___Iterator___item
};
241 val_t
*variable
= NULL
;
242 void **closurevariable
= NULL
;
243 trace
.prev
= tracehead
; tracehead
= &trace
;
244 trace
.file
= LOCATE_abstract_collection
;
245 fprintf(stderr
, "Deferred method called");
246 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 110);
248 tracehead
= trace
.prev
;
251 void abstract_collection___Iterator___next(val_t self
) {
252 struct trace_t trace
= {NULL
, NULL
, 114, LOCATE_abstract_collection___Iterator___next
};
253 val_t
*variable
= NULL
;
254 void **closurevariable
= NULL
;
255 trace
.prev
= tracehead
; tracehead
= &trace
;
256 trace
.file
= LOCATE_abstract_collection
;
257 fprintf(stderr
, "Deferred method called");
258 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 114);
260 tracehead
= trace
.prev
;
263 val_t
abstract_collection___Iterator___is_ok(val_t self
) {
264 struct trace_t trace
= {NULL
, NULL
, 118, LOCATE_abstract_collection___Iterator___is_ok
};
265 val_t
*variable
= NULL
;
266 void **closurevariable
= NULL
;
267 trace
.prev
= tracehead
; tracehead
= &trace
;
268 trace
.file
= LOCATE_abstract_collection
;
269 fprintf(stderr
, "Deferred method called");
270 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 118);
272 tracehead
= trace
.prev
;
275 val_t
abstract_collection___Container___iterator(val_t self
) {
276 struct trace_t trace
= {NULL
, NULL
, 145, LOCATE_abstract_collection___Container___iterator
};
278 void **closurevariable
= NULL
;
279 trace
.prev
= tracehead
; tracehead
= &trace
;
280 trace
.file
= LOCATE_abstract_collection
;
282 variable
[2] = variable
[0];
283 variable
[3] = NEW_ContainerIterator_abstract_collection___ContainerIterator___init(variable
[2]); /*new ContainerIterator[E]*/
284 variable
[2] = variable
[3];
285 variable
[1] = variable
[2];
287 return_label10
: while(false);
288 tracehead
= trace
.prev
;
291 val_t
abstract_collection___Container___is_empty(val_t self
) {
292 struct trace_t trace
= {NULL
, NULL
, 128, LOCATE_abstract_collection___Container___is_empty
};
294 void **closurevariable
= NULL
;
295 trace
.prev
= tracehead
; tracehead
= &trace
;
296 trace
.file
= LOCATE_abstract_collection
;
298 variable
[1] = TAG_Bool(false);
300 return_label11
: while(false);
301 tracehead
= trace
.prev
;
304 val_t
abstract_collection___Container___length(val_t self
) {
305 struct trace_t trace
= {NULL
, NULL
, 130, LOCATE_abstract_collection___Container___length
};
307 void **closurevariable
= NULL
;
308 trace
.prev
= tracehead
; tracehead
= &trace
;
309 trace
.file
= LOCATE_abstract_collection
;
311 variable
[1] = TAG_Int(1);
313 return_label12
: while(false);
314 tracehead
= trace
.prev
;
317 val_t
abstract_collection___Container___has(val_t self
, val_t param0
) {
318 struct trace_t trace
= {NULL
, NULL
, 132, LOCATE_abstract_collection___Container___has
};
320 void **closurevariable
= NULL
;
321 trace
.prev
= tracehead
; tracehead
= &trace
;
322 trace
.file
= LOCATE_abstract_collection
;
324 variable
[1] = param0
;
325 variable
[3] = variable
[0];
326 variable
[3] = ATTR_abstract_collection___Container____item(variable
[3]) /*Container::_item*/;
327 variable
[3] = TAG_Bool((variable
[3] == variable
[1] /*an_item*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], variable
[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[1] /*an_item*/) /*Object::==*/)))));
328 variable
[2] = variable
[3];
330 return_label13
: while(false);
331 tracehead
= trace
.prev
;
334 val_t
abstract_collection___Container___has_only(val_t self
, val_t param0
) {
335 struct trace_t trace
= {NULL
, NULL
, 134, LOCATE_abstract_collection___Container___has_only
};
337 void **closurevariable
= NULL
;
338 trace
.prev
= tracehead
; tracehead
= &trace
;
339 trace
.file
= LOCATE_abstract_collection
;
341 variable
[1] = param0
;
342 variable
[3] = variable
[0];
343 variable
[3] = ATTR_abstract_collection___Container____item(variable
[3]) /*Container::_item*/;
344 variable
[3] = TAG_Bool((variable
[3] == variable
[1] /*an_item*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], variable
[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[1] /*an_item*/) /*Object::==*/)))));
345 variable
[2] = variable
[3];
347 return_label14
: while(false);
348 tracehead
= trace
.prev
;
351 val_t
abstract_collection___Container___count(val_t self
, val_t param0
) {
352 struct trace_t trace
= {NULL
, NULL
, 136, LOCATE_abstract_collection___Container___count
};
354 void **closurevariable
= NULL
;
355 trace
.prev
= tracehead
; tracehead
= &trace
;
356 trace
.file
= LOCATE_abstract_collection
;
358 variable
[1] = param0
;
359 variable
[3] = variable
[0];
360 variable
[3] = ATTR_abstract_collection___Container____item(variable
[3]) /*Container::_item*/;
361 variable
[3] = TAG_Bool((variable
[3] == variable
[1] /*an_item*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], variable
[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], variable
[1] /*an_item*/) /*Object::==*/)))));
362 if (UNTAG_Bool(variable
[3])) { /*if*/
363 variable
[2] = TAG_Int(1);
366 variable
[2] = TAG_Int(0);
369 return_label15
: while(false);
370 tracehead
= trace
.prev
;
373 val_t
abstract_collection___Container___first(val_t self
) {
374 struct trace_t trace
= {NULL
, NULL
, 126, LOCATE_abstract_collection___Container___first
};
376 void **closurevariable
= NULL
;
377 trace
.prev
= tracehead
; tracehead
= &trace
;
378 trace
.file
= LOCATE_abstract_collection
;
380 variable
[2] = variable
[0];
381 variable
[2] = ATTR_abstract_collection___Container____item(variable
[2]) /*Container::_item*/;
382 variable
[1] = variable
[2];
384 return_label16
: while(false);
385 tracehead
= trace
.prev
;
388 void abstract_collection___Container___init(val_t self
, val_t param0
, int* init_table
) {
389 struct trace_t trace
= {NULL
, NULL
, 147, LOCATE_abstract_collection___Container___init
};
391 void **closurevariable
= NULL
;
392 trace
.prev
= tracehead
; tracehead
= &trace
;
393 trace
.file
= LOCATE_abstract_collection
;
395 variable
[1] = param0
;
396 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_Container
].i
]) return;
397 variable
[3] = variable
[0];
398 ATTR_abstract_collection___Container____item(variable
[3]) /*Container::_item*/ = variable
[1] /*e*/;
399 return_label17
: while(false);
400 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_Container
].i
] = 1;
401 tracehead
= trace
.prev
;
404 val_t
abstract_collection___Container___item(val_t self
) {
405 struct trace_t trace
= {NULL
, NULL
, 150, LOCATE_abstract_collection___Container___item
};
406 val_t
*variable
= NULL
;
407 void **closurevariable
= NULL
;
408 trace
.prev
= tracehead
; tracehead
= &trace
;
409 trace
.file
= LOCATE_abstract_collection
;
410 tracehead
= trace
.prev
;
411 return ATTR_abstract_collection___Container____item( self
) /*Container::_item*/;
413 void abstract_collection___Container___item__eq(val_t self
, val_t param0
) {
414 struct trace_t trace
= {NULL
, NULL
, 150, LOCATE_abstract_collection___Container___item__eq
};
415 val_t
*variable
= NULL
;
416 void **closurevariable
= NULL
;
417 trace
.prev
= tracehead
; tracehead
= &trace
;
418 trace
.file
= LOCATE_abstract_collection
;
419 ATTR_abstract_collection___Container____item( self
) /*Container::_item*/ = param0
;
420 tracehead
= trace
.prev
;
423 val_t
abstract_collection___ContainerIterator___item(val_t self
) {
424 struct trace_t trace
= {NULL
, NULL
, 157, LOCATE_abstract_collection___ContainerIterator___item
};
426 void **closurevariable
= NULL
;
427 trace
.prev
= tracehead
; tracehead
= &trace
;
428 trace
.file
= LOCATE_abstract_collection
;
430 variable
[2] = variable
[0];
431 variable
[2] = ATTR_abstract_collection___ContainerIterator____container(variable
[2]) /*ContainerIterator::_container*/;
432 variable
[2] = CALL_abstract_collection___Container___item(variable
[2])(variable
[2]) /*Container::item*/;
433 variable
[1] = variable
[2];
435 return_label18
: while(false);
436 tracehead
= trace
.prev
;
439 void abstract_collection___ContainerIterator___next(val_t self
) {
440 struct trace_t trace
= {NULL
, NULL
, 159, LOCATE_abstract_collection___ContainerIterator___next
};
442 void **closurevariable
= NULL
;
443 trace
.prev
= tracehead
; tracehead
= &trace
;
444 trace
.file
= LOCATE_abstract_collection
;
446 variable
[2] = variable
[0];
447 ATTR_abstract_collection___ContainerIterator____is_ok(variable
[2]) /*ContainerIterator::_is_ok*/ = TAG_Bool(false);
448 return_label19
: while(false);
449 tracehead
= trace
.prev
;
452 val_t
abstract_collection___ContainerIterator___is_ok(val_t self
) {
453 struct trace_t trace
= {NULL
, NULL
, 163, LOCATE_abstract_collection___ContainerIterator___is_ok
};
454 val_t
*variable
= NULL
;
455 void **closurevariable
= NULL
;
456 trace
.prev
= tracehead
; tracehead
= &trace
;
457 trace
.file
= LOCATE_abstract_collection
;
458 tracehead
= trace
.prev
;
459 return ATTR_abstract_collection___ContainerIterator____is_ok( self
) /*ContainerIterator::_is_ok*/;
461 void abstract_collection___ContainerIterator___init(val_t self
, val_t param0
, int* init_table
) {
462 struct trace_t trace
= {NULL
, NULL
, 161, LOCATE_abstract_collection___ContainerIterator___init
};
464 void **closurevariable
= NULL
;
465 trace
.prev
= tracehead
; tracehead
= &trace
;
466 trace
.file
= LOCATE_abstract_collection
;
468 variable
[1] = param0
;
469 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ContainerIterator
].i
]) return;
470 variable
[3] = variable
[0];
471 ATTR_abstract_collection___ContainerIterator____container(variable
[3]) /*ContainerIterator::_container*/ = variable
[1] /*c*/;
472 return_label20
: while(false);
473 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_ContainerIterator
].i
] = 1;
474 tracehead
= trace
.prev
;
477 void abstract_collection___RemovableCollection___clear(val_t self
) {
478 struct trace_t trace
= {NULL
, NULL
, 171, LOCATE_abstract_collection___RemovableCollection___clear
};
479 val_t
*variable
= NULL
;
480 void **closurevariable
= NULL
;
481 trace
.prev
= tracehead
; tracehead
= &trace
;
482 trace
.file
= LOCATE_abstract_collection
;
483 fprintf(stderr
, "Deferred method called");
484 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 171);
486 tracehead
= trace
.prev
;
489 void abstract_collection___RemovableCollection___remove(val_t self
, val_t param0
) {
490 struct trace_t trace
= {NULL
, NULL
, 174, LOCATE_abstract_collection___RemovableCollection___remove
};
491 val_t
*variable
= NULL
;
492 void **closurevariable
= NULL
;
493 trace
.prev
= tracehead
; tracehead
= &trace
;
494 trace
.file
= LOCATE_abstract_collection
;
495 fprintf(stderr
, "Deferred method called");
496 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 174);
498 tracehead
= trace
.prev
;
501 void abstract_collection___RemovableCollection___remove_all(val_t self
, val_t param0
) {
502 struct trace_t trace
= {NULL
, NULL
, 177, LOCATE_abstract_collection___RemovableCollection___remove_all
};
504 void **closurevariable
= NULL
;
505 trace
.prev
= tracehead
; tracehead
= &trace
;
506 trace
.file
= LOCATE_abstract_collection
;
508 variable
[1] = param0
;
509 while (true) { /*while*/
510 variable
[3] = variable
[0];
511 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*item*/) /*Collection::has*/;
512 if (!UNTAG_Bool(variable
[3])) break; /* while*/
513 variable
[3] = variable
[0];
514 CALL_abstract_collection___RemovableCollection___remove(variable
[3])(variable
[3], variable
[1] /*item*/) /*RemovableCollection::remove*/;
515 continue_22
: while(0);
518 return_label21
: while(false);
519 tracehead
= trace
.prev
;
522 void abstract_collection___SimpleCollection___add(val_t self
, val_t param0
) {
523 struct trace_t trace
= {NULL
, NULL
, 184, LOCATE_abstract_collection___SimpleCollection___add
};
524 val_t
*variable
= NULL
;
525 void **closurevariable
= NULL
;
526 trace
.prev
= tracehead
; tracehead
= &trace
;
527 trace
.file
= LOCATE_abstract_collection
;
528 fprintf(stderr
, "Deferred method called");
529 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 184);
531 tracehead
= trace
.prev
;
534 void abstract_collection___SimpleCollection___add_all(val_t self
, val_t param0
) {
535 struct trace_t trace
= {NULL
, NULL
, 188, LOCATE_abstract_collection___SimpleCollection___add_all
};
537 void **closurevariable
= NULL
;
538 trace
.prev
= tracehead
; tracehead
= &trace
;
539 trace
.file
= LOCATE_abstract_collection
;
541 variable
[1] = param0
;
542 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*coll*/ == NIT_NULL
/*null*/) || (( variable
[1] /*coll*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*coll*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*coll*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*coll*/)( variable
[1] /*coll*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
543 if (UNTAG_Bool(variable
[3])) { /*if*/
544 variable
[3] = CALL_abstract_collection___Collection___iterator( variable
[1] /*coll*/)( variable
[1] /*coll*/) /*Collection::iterator*/;
545 while (true) { /*for*/
546 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
547 if (!UNTAG_Bool(variable
[4])) break; /*for*/
548 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
549 variable
[5] = variable
[4];
550 variable
[6] = variable
[0];
551 CALL_abstract_collection___SimpleCollection___add(variable
[6])(variable
[6], variable
[5] /*i*/) /*SimpleCollection::add*/;
552 continue_24
: while(0);
553 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
557 return_label23
: while(false);
558 tracehead
= trace
.prev
;
561 val_t
abstract_collection___Set___has_only(val_t self
, val_t param0
) {
562 struct trace_t trace
= {NULL
, NULL
, 204, LOCATE_abstract_collection___Set___has_only
};
564 void **closurevariable
= NULL
;
565 trace
.prev
= tracehead
; tracehead
= &trace
;
566 trace
.file
= LOCATE_abstract_collection
;
568 variable
[1] = param0
;
569 variable
[4] = variable
[0];
570 variable
[4] = CALL_abstract_collection___Collection___length(variable
[4])(variable
[4]) /*Collection::length*/;
571 variable
[3] = variable
[4];
572 variable
[4] = TAG_Bool(( variable
[3] /*l*/)==( TAG_Int(1)));
573 if (UNTAG_Bool(variable
[4])) { /*if*/
574 variable
[4] = variable
[0];
575 variable
[4] = CALL_abstract_collection___Collection___has(variable
[4])(variable
[4], variable
[1] /*item*/) /*Collection::has*/;
576 variable
[2] = variable
[4];
579 variable
[4] = TAG_Bool(( variable
[3] /*l*/)==( TAG_Int(0)));
580 if (UNTAG_Bool(variable
[4])) { /*if*/
581 variable
[2] = TAG_Bool(true);
584 variable
[2] = TAG_Bool(false);
588 return_label25
: while(false);
589 tracehead
= trace
.prev
;
592 val_t
abstract_collection___Set___count(val_t self
, val_t param0
) {
593 struct trace_t trace
= {NULL
, NULL
, 216, LOCATE_abstract_collection___Set___count
};
595 void **closurevariable
= NULL
;
596 trace
.prev
= tracehead
; tracehead
= &trace
;
597 trace
.file
= LOCATE_abstract_collection
;
599 variable
[1] = param0
;
600 variable
[3] = variable
[0];
601 variable
[3] = CALL_abstract_collection___Collection___has(variable
[3])(variable
[3], variable
[1] /*item*/) /*Collection::has*/;
602 if (UNTAG_Bool(variable
[3])) { /*if*/
603 variable
[2] = TAG_Int(1);
606 variable
[2] = TAG_Int(0);
609 return_label26
: while(false);
610 tracehead
= trace
.prev
;
613 void abstract_collection___Set___remove_all(val_t self
, val_t param0
) {
614 struct trace_t trace
= {NULL
, NULL
, 226, LOCATE_abstract_collection___Set___remove_all
};
616 void **closurevariable
= NULL
;
617 trace
.prev
= tracehead
; tracehead
= &trace
;
618 trace
.file
= LOCATE_abstract_collection
;
620 variable
[1] = param0
;
621 variable
[3] = variable
[0];
622 CALL_abstract_collection___RemovableCollection___remove(variable
[3])(variable
[3], variable
[1] /*item*/) /*RemovableCollection::remove*/;
623 return_label27
: while(false);
624 tracehead
= trace
.prev
;
627 val_t
abstract_collection___Map___iterator(val_t self
) {
628 struct trace_t trace
= {NULL
, NULL
, 267, LOCATE_abstract_collection___Map___iterator
};
629 val_t
*variable
= NULL
;
630 void **closurevariable
= NULL
;
631 trace
.prev
= tracehead
; tracehead
= &trace
;
632 trace
.file
= LOCATE_abstract_collection
;
633 fprintf(stderr
, "Deferred method called");
634 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 267);
636 tracehead
= trace
.prev
;
639 val_t
abstract_collection___Map_____bra(val_t self
, val_t param0
) {
640 struct trace_t trace
= {NULL
, NULL
, 244, LOCATE_abstract_collection___Map_____bra
};
641 val_t
*variable
= NULL
;
642 void **closurevariable
= NULL
;
643 trace
.prev
= tracehead
; tracehead
= &trace
;
644 trace
.file
= LOCATE_abstract_collection
;
645 fprintf(stderr
, "Deferred method called");
646 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 244);
648 tracehead
= trace
.prev
;
651 void abstract_collection___Map_____braeq(val_t self
, val_t param0
, val_t param1
) {
652 struct trace_t trace
= {NULL
, NULL
, 247, LOCATE_abstract_collection___Map_____braeq
};
653 val_t
*variable
= NULL
;
654 void **closurevariable
= NULL
;
655 trace
.prev
= tracehead
; tracehead
= &trace
;
656 trace
.file
= LOCATE_abstract_collection
;
657 fprintf(stderr
, "Deferred method called");
658 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 247);
660 tracehead
= trace
.prev
;
663 val_t
abstract_collection___Map___has_key(val_t self
, val_t param0
) {
664 struct trace_t trace
= {NULL
, NULL
, 250, LOCATE_abstract_collection___Map___has_key
};
665 val_t
*variable
= NULL
;
666 void **closurevariable
= NULL
;
667 trace
.prev
= tracehead
; tracehead
= &trace
;
668 trace
.file
= LOCATE_abstract_collection
;
669 fprintf(stderr
, "Deferred method called");
670 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 250);
672 tracehead
= trace
.prev
;
675 void abstract_collection___Map___remove_at(val_t self
, val_t param0
) {
676 struct trace_t trace
= {NULL
, NULL
, 253, LOCATE_abstract_collection___Map___remove_at
};
677 val_t
*variable
= NULL
;
678 void **closurevariable
= NULL
;
679 trace
.prev
= tracehead
; tracehead
= &trace
;
680 trace
.file
= LOCATE_abstract_collection
;
681 fprintf(stderr
, "Deferred method called");
682 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 253);
684 tracehead
= trace
.prev
;
687 void abstract_collection___Map___recover_with(val_t self
, val_t param0
) {
688 struct trace_t trace
= {NULL
, NULL
, 256, LOCATE_abstract_collection___Map___recover_with
};
690 void **closurevariable
= NULL
;
691 trace
.prev
= tracehead
; tracehead
= &trace
;
692 trace
.file
= LOCATE_abstract_collection
;
694 variable
[1] = param0
;
695 variable
[4] = CALL_abstract_collection___Collection___iterator( variable
[1] /*map*/)( variable
[1] /*map*/) /*Map::iterator*/;
696 variable
[3] = variable
[4];
697 while (true) { /*while*/
698 variable
[4] = CALL_abstract_collection___Iterator___is_ok( variable
[3] /*i*/)( variable
[3] /*i*/) /*Iterator::is_ok*/;
699 if (!UNTAG_Bool(variable
[4])) break; /* while*/
700 variable
[4] = variable
[0];
701 variable
[5] = CALL_abstract_collection___MapIterator___key( variable
[3] /*i*/)( variable
[3] /*i*/) /*MapIterator::key*/;
702 variable
[6] = CALL_abstract_collection___Iterator___item( variable
[3] /*i*/)( variable
[3] /*i*/) /*Iterator::item*/;
703 CALL_abstract_collection___Map_____braeq(variable
[4])(variable
[4], variable
[5], variable
[6]) /*Map::[]=*/;
704 CALL_abstract_collection___Iterator___next( variable
[3] /*i*/)( variable
[3] /*i*/) /*Iterator::next*/;
705 continue_29
: while(0);
708 return_label28
: while(false);
709 tracehead
= trace
.prev
;
712 val_t
abstract_collection___MapIterator___key(val_t self
) {
713 struct trace_t trace
= {NULL
, NULL
, 273, LOCATE_abstract_collection___MapIterator___key
};
714 val_t
*variable
= NULL
;
715 void **closurevariable
= NULL
;
716 trace
.prev
= tracehead
; tracehead
= &trace
;
717 trace
.file
= LOCATE_abstract_collection
;
718 fprintf(stderr
, "Deferred method called");
719 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 273);
721 tracehead
= trace
.prev
;
724 void abstract_collection___MapIterator___item__eq(val_t self
, val_t param0
) {
725 struct trace_t trace
= {NULL
, NULL
, 276, LOCATE_abstract_collection___MapIterator___item__eq
};
726 val_t
*variable
= NULL
;
727 void **closurevariable
= NULL
;
728 trace
.prev
= tracehead
; tracehead
= &trace
;
729 trace
.file
= LOCATE_abstract_collection
;
730 fprintf(stderr
, "Deferred method called");
731 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 276);
733 tracehead
= trace
.prev
;
736 val_t
abstract_collection___IndexedCollection___iterator(val_t self
) {
737 struct trace_t trace
= {NULL
, NULL
, 349, LOCATE_abstract_collection___IndexedCollection___iterator
};
738 val_t
*variable
= NULL
;
739 void **closurevariable
= NULL
;
740 trace
.prev
= tracehead
; tracehead
= &trace
;
741 trace
.file
= LOCATE_abstract_collection
;
742 fprintf(stderr
, "Deferred method called");
743 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 349);
745 tracehead
= trace
.prev
;
748 val_t
abstract_collection___IndexedCollection___first(val_t self
) {
749 struct trace_t trace
= {NULL
, NULL
, 285, LOCATE_abstract_collection___IndexedCollection___first
};
751 void **closurevariable
= NULL
;
752 trace
.prev
= tracehead
; tracehead
= &trace
;
753 trace
.file
= LOCATE_abstract_collection
;
755 variable
[2] = variable
[0];
756 variable
[2] = CALL_abstract_collection___Collection___is_empty(variable
[2])(variable
[2]) /*Collection::is_empty*/;
757 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[2])))) { fprintf(stderr
, "Assert%s failed", " 'not_empty' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___first
, LOCATE_abstract_collection
, 289); nit_exit(1);}
758 variable
[2] = variable
[0];
759 variable
[2] = CALL_abstract_collection___Map_____bra(variable
[2])(variable
[2], TAG_Int(0)) /*Map::[]*/;
760 variable
[1] = variable
[2];
762 return_label30
: while(false);
763 tracehead
= trace
.prev
;
766 void abstract_collection___IndexedCollection___add(val_t self
, val_t param0
) {
767 struct trace_t trace
= {NULL
, NULL
, 318, LOCATE_abstract_collection___IndexedCollection___add
};
769 void **closurevariable
= NULL
;
770 trace
.prev
= tracehead
; tracehead
= &trace
;
771 trace
.file
= LOCATE_abstract_collection
;
773 variable
[1] = param0
;
774 variable
[3] = variable
[0];
775 CALL_abstract_collection___IndexedCollection___push(variable
[3])(variable
[3], variable
[1] /*e*/) /*IndexedCollection::push*/;
776 return_label31
: while(false);
777 tracehead
= trace
.prev
;
780 void abstract_collection___IndexedCollection___first__eq(val_t self
, val_t param0
) {
781 struct trace_t trace
= {NULL
, NULL
, 293, LOCATE_abstract_collection___IndexedCollection___first__eq
};
783 void **closurevariable
= NULL
;
784 trace
.prev
= tracehead
; tracehead
= &trace
;
785 trace
.file
= LOCATE_abstract_collection
;
787 variable
[1] = param0
;
788 variable
[3] = variable
[0];
789 CALL_abstract_collection___Map_____braeq(variable
[3])(variable
[3], TAG_Int(0), variable
[1] /*item*/) /*Map::[]=*/;
790 return_label32
: while(false);
791 tracehead
= trace
.prev
;
794 val_t
abstract_collection___IndexedCollection___last(val_t self
) {
795 struct trace_t trace
= {NULL
, NULL
, 298, LOCATE_abstract_collection___IndexedCollection___last
};
797 void **closurevariable
= NULL
;
798 trace
.prev
= tracehead
; tracehead
= &trace
;
799 trace
.file
= LOCATE_abstract_collection
;
801 variable
[2] = variable
[0];
802 variable
[2] = CALL_abstract_collection___Collection___is_empty(variable
[2])(variable
[2]) /*Collection::is_empty*/;
803 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable
[2])))) { fprintf(stderr
, "Assert%s failed", " 'not_empty' "); fprintf(stderr
, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___last
, LOCATE_abstract_collection
, 302); nit_exit(1);}
804 variable
[2] = variable
[0];
805 variable
[3] = variable
[0];
806 variable
[3] = CALL_abstract_collection___Collection___length(variable
[3])(variable
[3]) /*Collection::length*/;
807 variable
[3] = TAG_Int(UNTAG_Int(variable
[3])-UNTAG_Int( TAG_Int(1)));
808 variable
[2] = CALL_abstract_collection___Map_____bra(variable
[2])(variable
[2], variable
[3]) /*Map::[]*/;
809 variable
[1] = variable
[2];
811 return_label33
: while(false);
812 tracehead
= trace
.prev
;
815 void abstract_collection___IndexedCollection___last__eq(val_t self
, val_t param0
) {
816 struct trace_t trace
= {NULL
, NULL
, 306, LOCATE_abstract_collection___IndexedCollection___last__eq
};
818 void **closurevariable
= NULL
;
819 trace
.prev
= tracehead
; tracehead
= &trace
;
820 trace
.file
= LOCATE_abstract_collection
;
822 variable
[1] = param0
;
823 variable
[4] = variable
[0];
824 variable
[4] = CALL_abstract_collection___Collection___length(variable
[4])(variable
[4]) /*Collection::length*/;
825 variable
[3] = variable
[4];
826 variable
[4] = TAG_Bool(UNTAG_Int( variable
[3] /*l*/)>UNTAG_Int( TAG_Int(0)));
827 if (UNTAG_Bool(variable
[4])) { /*if*/
828 variable
[4] = variable
[0];
829 variable
[5] = TAG_Int(UNTAG_Int( variable
[3] /*l*/)-UNTAG_Int( TAG_Int(1)));
830 CALL_abstract_collection___Map_____braeq(variable
[4])(variable
[4], variable
[5], variable
[1] /*item*/) /*Map::[]=*/;
832 variable
[4] = variable
[0];
833 CALL_abstract_collection___Map_____braeq(variable
[4])(variable
[4], TAG_Int(0), variable
[1] /*item*/) /*Map::[]=*/;
835 return_label34
: while(false);
836 tracehead
= trace
.prev
;
839 void abstract_collection___IndexedCollection___push(val_t self
, val_t param0
) {
840 struct trace_t trace
= {NULL
, NULL
, 321, LOCATE_abstract_collection___IndexedCollection___push
};
841 val_t
*variable
= NULL
;
842 void **closurevariable
= NULL
;
843 trace
.prev
= tracehead
; tracehead
= &trace
;
844 trace
.file
= LOCATE_abstract_collection
;
845 fprintf(stderr
, "Deferred method called");
846 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 321);
848 tracehead
= trace
.prev
;
851 void abstract_collection___IndexedCollection___append(val_t self
, val_t param0
) {
852 struct trace_t trace
= {NULL
, NULL
, 324, LOCATE_abstract_collection___IndexedCollection___append
};
854 void **closurevariable
= NULL
;
855 trace
.prev
= tracehead
; tracehead
= &trace
;
856 trace
.file
= LOCATE_abstract_collection
;
858 variable
[1] = param0
;
859 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable
[1] /*coll*/ == NIT_NULL
/*null*/) || (( variable
[1] /*coll*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[1] /*coll*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[1] /*coll*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[1] /*coll*/)( variable
[1] /*coll*/, NIT_NULL
/*null*/) /*Object::==*/)))))));
860 if (UNTAG_Bool(variable
[3])) { /*if*/
861 variable
[3] = CALL_abstract_collection___Collection___iterator( variable
[1] /*coll*/)( variable
[1] /*coll*/) /*Collection::iterator*/;
862 while (true) { /*for*/
863 variable
[4] = CALL_abstract_collection___Iterator___is_ok(variable
[3])(variable
[3]) /*Iterator::is_ok*/;
864 if (!UNTAG_Bool(variable
[4])) break; /*for*/
865 variable
[4] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
866 variable
[5] = variable
[4];
867 variable
[6] = variable
[0];
868 CALL_abstract_collection___IndexedCollection___push(variable
[6])(variable
[6], variable
[5] /*i*/) /*IndexedCollection::push*/;
869 continue_36
: while(0);
870 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
874 return_label35
: while(false);
875 tracehead
= trace
.prev
;
878 val_t
abstract_collection___IndexedCollection___pop(val_t self
) {
879 struct trace_t trace
= {NULL
, NULL
, 327, LOCATE_abstract_collection___IndexedCollection___pop
};
880 val_t
*variable
= NULL
;
881 void **closurevariable
= NULL
;
882 trace
.prev
= tracehead
; tracehead
= &trace
;
883 trace
.file
= LOCATE_abstract_collection
;
884 fprintf(stderr
, "Deferred method called");
885 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 327);
887 tracehead
= trace
.prev
;
890 void abstract_collection___IndexedCollection___unshift(val_t self
, val_t param0
) {
891 struct trace_t trace
= {NULL
, NULL
, 330, LOCATE_abstract_collection___IndexedCollection___unshift
};
892 val_t
*variable
= NULL
;
893 void **closurevariable
= NULL
;
894 trace
.prev
= tracehead
; tracehead
= &trace
;
895 trace
.file
= LOCATE_abstract_collection
;
896 fprintf(stderr
, "Deferred method called");
897 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 330);
899 tracehead
= trace
.prev
;
902 val_t
abstract_collection___IndexedCollection___shift(val_t self
) {
903 struct trace_t trace
= {NULL
, NULL
, 333, LOCATE_abstract_collection___IndexedCollection___shift
};
904 val_t
*variable
= NULL
;
905 void **closurevariable
= NULL
;
906 trace
.prev
= tracehead
; tracehead
= &trace
;
907 trace
.file
= LOCATE_abstract_collection
;
908 fprintf(stderr
, "Deferred method called");
909 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 333);
911 tracehead
= trace
.prev
;
914 val_t
abstract_collection___IndexedCollection___index_of(val_t self
, val_t param0
) {
915 struct trace_t trace
= {NULL
, NULL
, 337, LOCATE_abstract_collection___IndexedCollection___index_of
};
917 void **closurevariable
= NULL
;
918 trace
.prev
= tracehead
; tracehead
= &trace
;
919 trace
.file
= LOCATE_abstract_collection
;
921 variable
[1] = param0
;
922 variable
[4] = variable
[0];
923 variable
[4] = CALL_abstract_collection___Collection___iterator(variable
[4])(variable
[4]) /*IndexedCollection::iterator*/;
924 variable
[3] = variable
[4];
925 while (true) { /*while*/
926 variable
[4] = CALL_abstract_collection___Iterator___is_ok( variable
[3] /*i*/)( variable
[3] /*i*/) /*Iterator::is_ok*/;
927 if (!UNTAG_Bool(variable
[4])) break; /* while*/
928 variable
[4] = CALL_abstract_collection___Iterator___item( variable
[3] /*i*/)( variable
[3] /*i*/) /*Iterator::item*/;
929 variable
[4] = TAG_Bool((variable
[4] == variable
[1] /*item*/) || ((variable
[4] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[4])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[4], variable
[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[4])(variable
[4], variable
[1] /*item*/) /*Object::==*/)))));
930 if (UNTAG_Bool(variable
[4])) { /*if*/
931 variable
[4] = CALL_abstract_collection___IndexedIterator___index( variable
[3] /*i*/)( variable
[3] /*i*/) /*IndexedIterator::index*/;
932 variable
[2] = variable
[4];
935 CALL_abstract_collection___Iterator___next( variable
[3] /*i*/)( variable
[3] /*i*/) /*Iterator::next*/;
936 continue_38
: while(0);
939 variable
[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
940 variable
[2] = variable
[4];
942 return_label37
: while(false);
943 tracehead
= trace
.prev
;
946 val_t
abstract_collection___IndexedIterator___key(val_t self
) {
947 struct trace_t trace
= {NULL
, NULL
, 358, LOCATE_abstract_collection___IndexedIterator___key
};
949 void **closurevariable
= NULL
;
950 trace
.prev
= tracehead
; tracehead
= &trace
;
951 trace
.file
= LOCATE_abstract_collection
;
953 variable
[2] = variable
[0];
954 variable
[2] = CALL_abstract_collection___IndexedIterator___index(variable
[2])(variable
[2]) /*IndexedIterator::index*/;
955 variable
[1] = variable
[2];
957 return_label39
: while(false);
958 tracehead
= trace
.prev
;
961 val_t
abstract_collection___IndexedIterator___index(val_t self
) {
962 struct trace_t trace
= {NULL
, NULL
, 355, LOCATE_abstract_collection___IndexedIterator___index
};
963 val_t
*variable
= NULL
;
964 void **closurevariable
= NULL
;
965 trace
.prev
= tracehead
; tracehead
= &trace
;
966 trace
.file
= LOCATE_abstract_collection
;
967 fprintf(stderr
, "Deferred method called");
968 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 355);
970 tracehead
= trace
.prev
;
973 val_t
abstract_collection___CoupleMap_____bra(val_t self
, val_t param0
) {
974 struct trace_t trace
= {NULL
, NULL
, 369, LOCATE_abstract_collection___CoupleMap_____bra
};
976 void **closurevariable
= NULL
;
977 trace
.prev
= tracehead
; tracehead
= &trace
;
978 trace
.file
= LOCATE_abstract_collection
;
980 variable
[1] = param0
;
981 variable
[4] = variable
[0];
982 variable
[4] = CALL_abstract_collection___CoupleMap___couple_at(variable
[4])(variable
[4], variable
[1] /*key*/) /*CoupleMap::couple_at*/;
983 variable
[3] = variable
[4];
984 variable
[4] = TAG_Bool(( variable
[3] /*c*/ == NIT_NULL
/*null*/) || (( variable
[3] /*c*/ != NIT_NULL
) && ((CALL_kernel___Object_____eqeq( variable
[3] /*c*/)==kernel___Object_____eqeq
)?
(IS_EQUAL_NN( variable
[3] /*c*/, NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable
[3] /*c*/)( variable
[3] /*c*/, NIT_NULL
/*null*/) /*Object::==*/)))));
985 if (UNTAG_Bool(variable
[4])) { /*if*/
986 variable
[2] = NIT_NULL
/*null*/;
989 variable
[4] = CALL_abstract_collection___Couple___second( variable
[3] /*c*/)( variable
[3] /*c*/) /*Couple::second*/;
990 variable
[2] = variable
[4];
993 return_label40
: while(false);
994 tracehead
= trace
.prev
;
997 val_t
abstract_collection___CoupleMap___has_key(val_t self
, val_t param0
) {
998 struct trace_t trace
= {NULL
, NULL
, 379, LOCATE_abstract_collection___CoupleMap___has_key
};
1000 void **closurevariable
= NULL
;
1001 trace
.prev
= tracehead
; tracehead
= &trace
;
1002 trace
.file
= LOCATE_abstract_collection
;
1004 variable
[1] = param0
;
1005 variable
[3] = variable
[0];
1006 variable
[3] = CALL_abstract_collection___CoupleMap___couple_at(variable
[3])(variable
[3], variable
[1] /*key*/) /*CoupleMap::couple_at*/;
1007 variable
[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))))));
1008 variable
[2] = variable
[3];
1009 goto return_label41
;
1010 return_label41
: while(false);
1011 tracehead
= trace
.prev
;
1014 val_t
abstract_collection___CoupleMap___couple_at(val_t self
, val_t param0
) {
1015 struct trace_t trace
= {NULL
, NULL
, 365, LOCATE_abstract_collection___CoupleMap___couple_at
};
1016 val_t
*variable
= NULL
;
1017 void **closurevariable
= NULL
;
1018 trace
.prev
= tracehead
; tracehead
= &trace
;
1019 trace
.file
= LOCATE_abstract_collection
;
1020 fprintf(stderr
, "Deferred method called");
1021 fprintf(stderr
, " (%s:%d)\n", LOCATE_abstract_collection
, 365);
1023 tracehead
= trace
.prev
;
1026 val_t
abstract_collection___CoupleMapIterator___item(val_t self
) {
1027 struct trace_t trace
= {NULL
, NULL
, 387, LOCATE_abstract_collection___CoupleMapIterator___item
};
1029 void **closurevariable
= NULL
;
1030 trace
.prev
= tracehead
; tracehead
= &trace
;
1031 trace
.file
= LOCATE_abstract_collection
;
1033 variable
[2] = variable
[0];
1034 variable
[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[2]) /*CoupleMapIterator::_iter*/;
1035 variable
[2] = CALL_abstract_collection___Iterator___item(variable
[2])(variable
[2]) /*Iterator::item*/;
1036 variable
[2] = CALL_abstract_collection___Couple___second(variable
[2])(variable
[2]) /*Couple::second*/;
1037 variable
[1] = variable
[2];
1038 goto return_label42
;
1039 return_label42
: while(false);
1040 tracehead
= trace
.prev
;
1043 void abstract_collection___CoupleMapIterator___next(val_t self
) {
1044 struct trace_t trace
= {NULL
, NULL
, 395, LOCATE_abstract_collection___CoupleMapIterator___next
};
1046 void **closurevariable
= NULL
;
1047 trace
.prev
= tracehead
; tracehead
= &trace
;
1048 trace
.file
= LOCATE_abstract_collection
;
1050 variable
[2] = variable
[0];
1051 variable
[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[2]) /*CoupleMapIterator::_iter*/;
1052 CALL_abstract_collection___Iterator___next(variable
[2])(variable
[2]) /*Iterator::next*/;
1053 while (true) { /*while*/
1054 variable
[2] = variable
[0];
1055 variable
[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[2]) /*CoupleMapIterator::_iter*/;
1056 variable
[2] = CALL_abstract_collection___Iterator___is_ok(variable
[2])(variable
[2]) /*Iterator::is_ok*/;
1057 variable
[3] = variable
[2];
1058 if (UNTAG_Bool(variable
[3])) { /* and */
1059 variable
[3] = variable
[0];
1060 variable
[3] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[3]) /*CoupleMapIterator::_iter*/;
1061 variable
[3] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
1062 variable
[3] = TAG_Bool((variable
[3] == NIT_NULL
/*null*/) || ((variable
[3] != NIT_NULL
) && ((CALL_kernel___Object_____eqeq(variable
[3])==kernel___Object_____eqeq
)?
(IS_EQUAL_NN(variable
[3], NIT_NULL
/*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable
[3])(variable
[3], NIT_NULL
/*null*/) /*Object::==*/)))));
1064 variable
[2] = variable
[3];
1065 if (!UNTAG_Bool(variable
[2])) break; /* while*/
1066 variable
[2] = variable
[0];
1067 variable
[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[2]) /*CoupleMapIterator::_iter*/;
1068 CALL_abstract_collection___Iterator___next(variable
[2])(variable
[2]) /*Iterator::next*/;
1069 continue_44
: while(0);
1072 return_label43
: while(false);
1073 tracehead
= trace
.prev
;
1076 val_t
abstract_collection___CoupleMapIterator___is_ok(val_t self
) {
1077 struct trace_t trace
= {NULL
, NULL
, 393, LOCATE_abstract_collection___CoupleMapIterator___is_ok
};
1079 void **closurevariable
= NULL
;
1080 trace
.prev
= tracehead
; tracehead
= &trace
;
1081 trace
.file
= LOCATE_abstract_collection
;
1083 variable
[2] = variable
[0];
1084 variable
[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[2]) /*CoupleMapIterator::_iter*/;
1085 variable
[2] = CALL_abstract_collection___Iterator___is_ok(variable
[2])(variable
[2]) /*Iterator::is_ok*/;
1086 variable
[1] = variable
[2];
1087 goto return_label45
;
1088 return_label45
: while(false);
1089 tracehead
= trace
.prev
;
1092 val_t
abstract_collection___CoupleMapIterator___key(val_t self
) {
1093 struct trace_t trace
= {NULL
, NULL
, 391, LOCATE_abstract_collection___CoupleMapIterator___key
};
1095 void **closurevariable
= NULL
;
1096 trace
.prev
= tracehead
; tracehead
= &trace
;
1097 trace
.file
= LOCATE_abstract_collection
;
1099 variable
[2] = variable
[0];
1100 variable
[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[2]) /*CoupleMapIterator::_iter*/;
1101 variable
[2] = CALL_abstract_collection___Iterator___item(variable
[2])(variable
[2]) /*Iterator::item*/;
1102 variable
[2] = CALL_abstract_collection___Couple___first(variable
[2])(variable
[2]) /*Couple::first*/;
1103 variable
[1] = variable
[2];
1104 goto return_label46
;
1105 return_label46
: while(false);
1106 tracehead
= trace
.prev
;
1109 void abstract_collection___CoupleMapIterator___item__eq(val_t self
, val_t param0
) {
1110 struct trace_t trace
= {NULL
, NULL
, 389, LOCATE_abstract_collection___CoupleMapIterator___item__eq
};
1112 void **closurevariable
= NULL
;
1113 trace
.prev
= tracehead
; tracehead
= &trace
;
1114 trace
.file
= LOCATE_abstract_collection
;
1116 variable
[1] = param0
;
1117 variable
[3] = variable
[0];
1118 variable
[3] = ATTR_abstract_collection___CoupleMapIterator____iter(variable
[3]) /*CoupleMapIterator::_iter*/;
1119 variable
[3] = CALL_abstract_collection___Iterator___item(variable
[3])(variable
[3]) /*Iterator::item*/;
1120 CALL_abstract_collection___Couple___second__eq(variable
[3])(variable
[3], variable
[1] /*e*/) /*Couple::second=*/;
1121 return_label47
: while(false);
1122 tracehead
= trace
.prev
;
1125 void abstract_collection___CoupleMapIterator___init(val_t self
, val_t param0
, int* init_table
) {
1126 struct trace_t trace
= {NULL
, NULL
, 403, LOCATE_abstract_collection___CoupleMapIterator___init
};
1128 void **closurevariable
= NULL
;
1129 trace
.prev
= tracehead
; tracehead
= &trace
;
1130 trace
.file
= LOCATE_abstract_collection
;
1132 variable
[1] = param0
;
1133 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_CoupleMapIterator
].i
]) return;
1134 variable
[3] = variable
[0];
1135 ATTR_abstract_collection___CoupleMapIterator____iter(variable
[3]) /*CoupleMapIterator::_iter*/ = variable
[1] /*i*/;
1136 return_label48
: while(false);
1137 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_CoupleMapIterator
].i
] = 1;
1138 tracehead
= trace
.prev
;
1141 val_t
abstract_collection___Couple___first(val_t self
) {
1142 struct trace_t trace
= {NULL
, NULL
, 411, LOCATE_abstract_collection___Couple___first
};
1143 val_t
*variable
= NULL
;
1144 void **closurevariable
= NULL
;
1145 trace
.prev
= tracehead
; tracehead
= &trace
;
1146 trace
.file
= LOCATE_abstract_collection
;
1147 tracehead
= trace
.prev
;
1148 return ATTR_abstract_collection___Couple____first( self
) /*Couple::_first*/;
1150 void abstract_collection___Couple___first__eq(val_t self
, val_t param0
) {
1151 struct trace_t trace
= {NULL
, NULL
, 411, LOCATE_abstract_collection___Couple___first__eq
};
1152 val_t
*variable
= NULL
;
1153 void **closurevariable
= NULL
;
1154 trace
.prev
= tracehead
; tracehead
= &trace
;
1155 trace
.file
= LOCATE_abstract_collection
;
1156 ATTR_abstract_collection___Couple____first( self
) /*Couple::_first*/ = param0
;
1157 tracehead
= trace
.prev
;
1160 val_t
abstract_collection___Couple___second(val_t self
) {
1161 struct trace_t trace
= {NULL
, NULL
, 414, LOCATE_abstract_collection___Couple___second
};
1162 val_t
*variable
= NULL
;
1163 void **closurevariable
= NULL
;
1164 trace
.prev
= tracehead
; tracehead
= &trace
;
1165 trace
.file
= LOCATE_abstract_collection
;
1166 tracehead
= trace
.prev
;
1167 return ATTR_abstract_collection___Couple____second( self
) /*Couple::_second*/;
1169 void abstract_collection___Couple___second__eq(val_t self
, val_t param0
) {
1170 struct trace_t trace
= {NULL
, NULL
, 414, LOCATE_abstract_collection___Couple___second__eq
};
1171 val_t
*variable
= NULL
;
1172 void **closurevariable
= NULL
;
1173 trace
.prev
= tracehead
; tracehead
= &trace
;
1174 trace
.file
= LOCATE_abstract_collection
;
1175 ATTR_abstract_collection___Couple____second( self
) /*Couple::_second*/ = param0
;
1176 tracehead
= trace
.prev
;
1179 void abstract_collection___Couple___init(val_t self
, val_t param0
, val_t param1
, int* init_table
) {
1180 struct trace_t trace
= {NULL
, NULL
, 417, LOCATE_abstract_collection___Couple___init
};
1182 void **closurevariable
= NULL
;
1183 trace
.prev
= tracehead
; tracehead
= &trace
;
1184 trace
.file
= LOCATE_abstract_collection
;
1186 variable
[1] = param0
;
1187 variable
[2] = param1
;
1188 if (init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_Couple
].i
]) return;
1189 variable
[4] = variable
[0];
1190 ATTR_abstract_collection___Couple____first(variable
[4]) /*Couple::_first*/ = variable
[1] /*f*/;
1191 variable
[4] = variable
[0];
1192 ATTR_abstract_collection___Couple____second(variable
[4]) /*Couple::_second*/ = variable
[2] /*s*/;
1193 return_label49
: while(false);
1194 init_table
[VAL2OBJ(variable
[0])->vft
[INIT_TABLE_POS_Couple
].i
] = 1;
1195 tracehead
= trace
.prev
;