Update c_src.
[nit.git] / c_src / abstract_collection._sep.c
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);
11 nit_exit(1);
12 tracehead = trace.prev;
13 return NIT_NULL;
14 }
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);
23 nit_exit(1);
24 tracehead = trace.prev;
25 return NIT_NULL;
26 }
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);
35 nit_exit(1);
36 tracehead = trace.prev;
37 return NIT_NULL;
38 }
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);
47 nit_exit(1);
48 tracehead = trace.prev;
49 return NIT_NULL;
50 }
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);
59 nit_exit(1);
60 tracehead = trace.prev;
61 return NIT_NULL;
62 }
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);
71 nit_exit(1);
72 tracehead = trace.prev;
73 return NIT_NULL;
74 }
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);
83 nit_exit(1);
84 tracehead = trace.prev;
85 return NIT_NULL;
86 }
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};
89 val_t variable[3];
90 void **closurevariable = NULL;
91 trace.prev = tracehead; tracehead = &trace;
92 trace.file = LOCATE_abstract_collection;
93 variable[0] = self;
94 variable[2] = variable[0];
95 variable[2] = ((abstract_collection___NaiveCollection___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(variable[2]) /*NaiveCollection::length*/;
96 variable[2] = TAG_Bool((variable[2])==( TAG_Int(0)));
97 variable[1] = variable[2];
98 goto return_label0;
99 return_label0: while(false);
100 tracehead = trace.prev;
101 return variable[1];
102 }
103 val_t abstract_collection___NaiveCollection___length(val_t self) {
104 struct trace_t trace = {NULL, NULL, 74, LOCATE_abstract_collection___NaiveCollection___length};
105 val_t variable[6];
106 void **closurevariable = NULL;
107 trace.prev = tracehead; tracehead = &trace;
108 trace.file = LOCATE_abstract_collection;
109 variable[0] = self;
110 variable[2] = TAG_Int(0);
111 variable[3] = variable[0];
112 variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
113 while (true) { /*for*/
114 variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
115 if (!UNTAG_Bool(variable[4])) break; /*for*/
116 variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(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 ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
121 }
122 break_2: while(0);
123 variable[1] = variable[2] /*nb*/;
124 goto return_label1;
125 return_label1: while(false);
126 tracehead = trace.prev;
127 return variable[1];
128 }
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};
131 val_t variable[7];
132 void **closurevariable = NULL;
133 trace.prev = tracehead; tracehead = &trace;
134 trace.file = LOCATE_abstract_collection;
135 variable[0] = self;
136 variable[1] = param0;
137 variable[3] = variable[0];
138 variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
139 while (true) { /*for*/
140 variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
141 if (!UNTAG_Bool(variable[4])) break; /*for*/
142 variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(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) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))( variable[5] /*i*/, variable[1] /*item*/) /*Object::==*/)))));
145 if (UNTAG_Bool(variable[6])) { /*if*/
146 variable[2] = TAG_Bool(true);
147 goto return_label3;
148 }
149 continue_4: while(0);
150 ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
151 }
152 break_4: while(0);
153 variable[2] = TAG_Bool(false);
154 goto return_label3;
155 return_label3: while(false);
156 tracehead = trace.prev;
157 return variable[2];
158 }
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};
161 val_t variable[7];
162 void **closurevariable = NULL;
163 trace.prev = tracehead; tracehead = &trace;
164 trace.file = LOCATE_abstract_collection;
165 variable[0] = self;
166 variable[1] = param0;
167 variable[3] = variable[0];
168 variable[3] = ((abstract_collection___Collection___iterator_t)CALL(variable[3],COLOR_abstract_collection___Collection___iterator))(variable[3]) /*Collection::iterator*/;
169 while (true) { /*for*/
170 variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
171 if (!UNTAG_Bool(variable[4])) break; /*for*/
172 variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(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) && ((((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[5] /*i*/,COLOR_kernel___Object_____eqeq))( variable[5] /*i*/, variable[1] /*item*/) /*Object::==*/)))))));
175 if (UNTAG_Bool(variable[6])) { /*if*/
176 variable[2] = TAG_Bool(false);
177 goto return_label5;
178 }
179 continue_6: while(0);
180 ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
181 }
182 break_6: while(0);
183 variable[2] = TAG_Bool(true);
184 goto return_label5;
185 return_label5: while(false);
186 tracehead = trace.prev;
187 return variable[2];
188 }
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};
191 val_t variable[8];
192 void **closurevariable = NULL;
193 trace.prev = tracehead; tracehead = &trace;
194 trace.file = LOCATE_abstract_collection;
195 variable[0] = self;
196 variable[1] = param0;
197 variable[3] = TAG_Int(0);
198 variable[4] = variable[0];
199 variable[4] = ((abstract_collection___Collection___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*Collection::iterator*/;
200 while (true) { /*for*/
201 variable[5] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[4],COLOR_abstract_collection___Iterator___is_ok))(variable[4]) /*Iterator::is_ok*/;
202 if (!UNTAG_Bool(variable[5])) break; /*for*/
203 variable[5] = ((abstract_collection___Iterator___item_t)CALL(variable[4],COLOR_abstract_collection___Iterator___item))(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) && ((((kernel___Object_____eqeq_t)CALL( variable[6] /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[6] /*i*/,COLOR_kernel___Object_____eqeq))( 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*/;
208 }
209 continue_8: while(0);
210 ((abstract_collection___Iterator___next_t)CALL(variable[4],COLOR_abstract_collection___Iterator___next))(variable[4]) /*Iterator::next*/;
211 }
212 break_8: while(0);
213 variable[2] = variable[3] /*nb*/;
214 goto return_label7;
215 return_label7: while(false);
216 tracehead = trace.prev;
217 return variable[2];
218 }
219 val_t abstract_collection___NaiveCollection___first(val_t self) {
220 struct trace_t trace = {NULL, NULL, 100, LOCATE_abstract_collection___NaiveCollection___first};
221 val_t variable[3];
222 void **closurevariable = NULL;
223 trace.prev = tracehead; tracehead = &trace;
224 trace.file = LOCATE_abstract_collection;
225 variable[0] = self;
226 variable[2] = variable[0];
227 variable[2] = ((abstract_collection___NaiveCollection___length_t)CALL(variable[2],COLOR_abstract_collection___Collection___length))(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] = ((abstract_collection___Collection___iterator_t)CALL(variable[2],COLOR_abstract_collection___Collection___iterator))(variable[2]) /*Collection::iterator*/;
232 variable[2] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
233 variable[1] = variable[2];
234 goto return_label9;
235 return_label9: while(false);
236 tracehead = trace.prev;
237 return variable[1];
238 }
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);
247 nit_exit(1);
248 tracehead = trace.prev;
249 return NIT_NULL;
250 }
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);
259 nit_exit(1);
260 tracehead = trace.prev;
261 return;
262 }
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);
271 nit_exit(1);
272 tracehead = trace.prev;
273 return NIT_NULL;
274 }
275 val_t abstract_collection___Container___iterator(val_t self) {
276 struct trace_t trace = {NULL, NULL, 145, LOCATE_abstract_collection___Container___iterator};
277 val_t variable[4];
278 void **closurevariable = NULL;
279 trace.prev = tracehead; tracehead = &trace;
280 trace.file = LOCATE_abstract_collection;
281 variable[0] = self;
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];
286 goto return_label10;
287 return_label10: while(false);
288 tracehead = trace.prev;
289 return variable[1];
290 }
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};
293 val_t variable[2];
294 void **closurevariable = NULL;
295 trace.prev = tracehead; tracehead = &trace;
296 trace.file = LOCATE_abstract_collection;
297 variable[0] = self;
298 variable[1] = TAG_Bool(false);
299 goto return_label11;
300 return_label11: while(false);
301 tracehead = trace.prev;
302 return variable[1];
303 }
304 val_t abstract_collection___Container___length(val_t self) {
305 struct trace_t trace = {NULL, NULL, 130, LOCATE_abstract_collection___Container___length};
306 val_t variable[2];
307 void **closurevariable = NULL;
308 trace.prev = tracehead; tracehead = &trace;
309 trace.file = LOCATE_abstract_collection;
310 variable[0] = self;
311 variable[1] = TAG_Int(1);
312 goto return_label12;
313 return_label12: while(false);
314 tracehead = trace.prev;
315 return variable[1];
316 }
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};
319 val_t variable[4];
320 void **closurevariable = NULL;
321 trace.prev = tracehead; tracehead = &trace;
322 trace.file = LOCATE_abstract_collection;
323 variable[0] = self;
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) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[1] /*an_item*/) /*Object::==*/)))));
328 variable[2] = variable[3];
329 goto return_label13;
330 return_label13: while(false);
331 tracehead = trace.prev;
332 return variable[2];
333 }
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};
336 val_t variable[4];
337 void **closurevariable = NULL;
338 trace.prev = tracehead; tracehead = &trace;
339 trace.file = LOCATE_abstract_collection;
340 variable[0] = self;
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) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[1] /*an_item*/) /*Object::==*/)))));
345 variable[2] = variable[3];
346 goto return_label14;
347 return_label14: while(false);
348 tracehead = trace.prev;
349 return variable[2];
350 }
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};
353 val_t variable[4];
354 void **closurevariable = NULL;
355 trace.prev = tracehead; tracehead = &trace;
356 trace.file = LOCATE_abstract_collection;
357 variable[0] = self;
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) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], variable[1] /*an_item*/) /*Object::==*/)))));
362 if (UNTAG_Bool(variable[3])) { /*if*/
363 variable[2] = TAG_Int(1);
364 goto return_label15;
365 } else { /*if*/
366 variable[2] = TAG_Int(0);
367 goto return_label15;
368 }
369 return_label15: while(false);
370 tracehead = trace.prev;
371 return variable[2];
372 }
373 val_t abstract_collection___Container___first(val_t self) {
374 struct trace_t trace = {NULL, NULL, 126, LOCATE_abstract_collection___Container___first};
375 val_t variable[3];
376 void **closurevariable = NULL;
377 trace.prev = tracehead; tracehead = &trace;
378 trace.file = LOCATE_abstract_collection;
379 variable[0] = self;
380 variable[2] = variable[0];
381 variable[2] = ATTR_abstract_collection___Container____item(variable[2]) /*Container::_item*/;
382 variable[1] = variable[2];
383 goto return_label16;
384 return_label16: while(false);
385 tracehead = trace.prev;
386 return variable[1];
387 }
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};
390 val_t variable[4];
391 void **closurevariable = NULL;
392 trace.prev = tracehead; tracehead = &trace;
393 trace.file = LOCATE_abstract_collection;
394 variable[0] = self;
395 variable[1] = param0;
396 if (init_table[VAL2OBJ( self)->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( self)->vft[INIT_TABLE_POS_Container].i] = 1;
401 tracehead = trace.prev;
402 return;
403 }
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*/;
412 }
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;
421 return;
422 }
423 val_t abstract_collection___ContainerIterator___item(val_t self) {
424 struct trace_t trace = {NULL, NULL, 157, LOCATE_abstract_collection___ContainerIterator___item};
425 val_t variable[3];
426 void **closurevariable = NULL;
427 trace.prev = tracehead; tracehead = &trace;
428 trace.file = LOCATE_abstract_collection;
429 variable[0] = self;
430 variable[2] = variable[0];
431 variable[2] = ATTR_abstract_collection___ContainerIterator____container(variable[2]) /*ContainerIterator::_container*/;
432 variable[2] = ((abstract_collection___Container___item_t)CALL(variable[2],COLOR_abstract_collection___Container___item))(variable[2]) /*Container::item*/;
433 variable[1] = variable[2];
434 goto return_label18;
435 return_label18: while(false);
436 tracehead = trace.prev;
437 return variable[1];
438 }
439 void abstract_collection___ContainerIterator___next(val_t self) {
440 struct trace_t trace = {NULL, NULL, 159, LOCATE_abstract_collection___ContainerIterator___next};
441 val_t variable[3];
442 void **closurevariable = NULL;
443 trace.prev = tracehead; tracehead = &trace;
444 trace.file = LOCATE_abstract_collection;
445 variable[0] = self;
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;
450 return;
451 }
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*/;
460 }
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};
463 val_t variable[4];
464 void **closurevariable = NULL;
465 trace.prev = tracehead; tracehead = &trace;
466 trace.file = LOCATE_abstract_collection;
467 variable[0] = self;
468 variable[1] = param0;
469 if (init_table[VAL2OBJ( self)->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( self)->vft[INIT_TABLE_POS_ContainerIterator].i] = 1;
474 tracehead = trace.prev;
475 return;
476 }
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);
485 nit_exit(1);
486 tracehead = trace.prev;
487 return;
488 }
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);
497 nit_exit(1);
498 tracehead = trace.prev;
499 return;
500 }
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};
503 val_t variable[4];
504 void **closurevariable = NULL;
505 trace.prev = tracehead; tracehead = &trace;
506 trace.file = LOCATE_abstract_collection;
507 variable[0] = self;
508 variable[1] = param0;
509 while (true) { /*while*/
510 variable[3] = variable[0];
511 variable[3] = ((abstract_collection___Collection___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3], variable[1] /*item*/) /*Collection::has*/;
512 if (!UNTAG_Bool(variable[3])) break; /* while*/
513 variable[3] = variable[0];
514 ((abstract_collection___RemovableCollection___remove_t)CALL(variable[3],COLOR_abstract_collection___RemovableCollection___remove))(variable[3], variable[1] /*item*/) /*RemovableCollection::remove*/;
515 continue_22: while(0);
516 }
517 break_22: while(0);
518 return_label21: while(false);
519 tracehead = trace.prev;
520 return;
521 }
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);
530 nit_exit(1);
531 tracehead = trace.prev;
532 return;
533 }
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};
536 val_t variable[7];
537 void **closurevariable = NULL;
538 trace.prev = tracehead; tracehead = &trace;
539 trace.file = LOCATE_abstract_collection;
540 variable[0] = self;
541 variable[1] = param0;
542 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ == NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))( variable[1] /*coll*/, NIT_NULL /*null*/) /*Object::==*/)))))));
543 if (UNTAG_Bool(variable[3])) { /*if*/
544 variable[3] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*coll*/) /*Collection::iterator*/;
545 while (true) { /*for*/
546 variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
547 if (!UNTAG_Bool(variable[4])) break; /*for*/
548 variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
549 variable[5] = variable[4];
550 variable[6] = variable[0];
551 ((abstract_collection___SimpleCollection___add_t)CALL(variable[6],COLOR_abstract_collection___SimpleCollection___add))(variable[6], variable[5] /*i*/) /*SimpleCollection::add*/;
552 continue_24: while(0);
553 ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
554 }
555 break_24: while(0);
556 }
557 return_label23: while(false);
558 tracehead = trace.prev;
559 return;
560 }
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};
563 val_t variable[5];
564 void **closurevariable = NULL;
565 trace.prev = tracehead; tracehead = &trace;
566 trace.file = LOCATE_abstract_collection;
567 variable[0] = self;
568 variable[1] = param0;
569 variable[4] = variable[0];
570 variable[4] = ((abstract_collection___Collection___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(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] = ((abstract_collection___Collection___has_t)CALL(variable[4],COLOR_abstract_collection___Collection___has))(variable[4], variable[1] /*item*/) /*Collection::has*/;
576 variable[2] = variable[4];
577 goto return_label25;
578 } else { /*if*/
579 variable[4] = TAG_Bool(( variable[3] /*l*/)==( TAG_Int(0)));
580 if (UNTAG_Bool(variable[4])) { /*if*/
581 variable[2] = TAG_Bool(true);
582 goto return_label25;
583 } else { /*if*/
584 variable[2] = TAG_Bool(false);
585 goto return_label25;
586 }
587 }
588 return_label25: while(false);
589 tracehead = trace.prev;
590 return variable[2];
591 }
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};
594 val_t variable[4];
595 void **closurevariable = NULL;
596 trace.prev = tracehead; tracehead = &trace;
597 trace.file = LOCATE_abstract_collection;
598 variable[0] = self;
599 variable[1] = param0;
600 variable[3] = variable[0];
601 variable[3] = ((abstract_collection___Collection___has_t)CALL(variable[3],COLOR_abstract_collection___Collection___has))(variable[3], variable[1] /*item*/) /*Collection::has*/;
602 if (UNTAG_Bool(variable[3])) { /*if*/
603 variable[2] = TAG_Int(1);
604 goto return_label26;
605 } else { /*if*/
606 variable[2] = TAG_Int(0);
607 goto return_label26;
608 }
609 return_label26: while(false);
610 tracehead = trace.prev;
611 return variable[2];
612 }
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};
615 val_t variable[4];
616 void **closurevariable = NULL;
617 trace.prev = tracehead; tracehead = &trace;
618 trace.file = LOCATE_abstract_collection;
619 variable[0] = self;
620 variable[1] = param0;
621 variable[3] = variable[0];
622 ((abstract_collection___RemovableCollection___remove_t)CALL(variable[3],COLOR_abstract_collection___RemovableCollection___remove))(variable[3], variable[1] /*item*/) /*RemovableCollection::remove*/;
623 return_label27: while(false);
624 tracehead = trace.prev;
625 return;
626 }
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);
635 nit_exit(1);
636 tracehead = trace.prev;
637 return NIT_NULL;
638 }
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);
647 nit_exit(1);
648 tracehead = trace.prev;
649 return NIT_NULL;
650 }
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);
659 nit_exit(1);
660 tracehead = trace.prev;
661 return;
662 }
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);
671 nit_exit(1);
672 tracehead = trace.prev;
673 return NIT_NULL;
674 }
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);
683 nit_exit(1);
684 tracehead = trace.prev;
685 return;
686 }
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};
689 val_t variable[7];
690 void **closurevariable = NULL;
691 trace.prev = tracehead; tracehead = &trace;
692 trace.file = LOCATE_abstract_collection;
693 variable[0] = self;
694 variable[1] = param0;
695 variable[4] = ((abstract_collection___Map___iterator_t)CALL( variable[1] /*map*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*map*/) /*Map::iterator*/;
696 variable[3] = variable[4];
697 while (true) { /*while*/
698 variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[3] /*i*/) /*Iterator::is_ok*/;
699 if (!UNTAG_Bool(variable[4])) break; /* while*/
700 variable[4] = variable[0];
701 variable[5] = ((abstract_collection___MapIterator___key_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___MapIterator___key))( variable[3] /*i*/) /*MapIterator::key*/;
702 variable[6] = ((abstract_collection___Iterator___item_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[3] /*i*/) /*Iterator::item*/;
703 ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4], variable[5], variable[6]) /*Map::[]=*/;
704 ((abstract_collection___Iterator___next_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[3] /*i*/) /*Iterator::next*/;
705 continue_29: while(0);
706 }
707 break_29: while(0);
708 return_label28: while(false);
709 tracehead = trace.prev;
710 return;
711 }
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);
720 nit_exit(1);
721 tracehead = trace.prev;
722 return NIT_NULL;
723 }
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);
732 nit_exit(1);
733 tracehead = trace.prev;
734 return;
735 }
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);
744 nit_exit(1);
745 tracehead = trace.prev;
746 return NIT_NULL;
747 }
748 val_t abstract_collection___IndexedCollection___first(val_t self) {
749 struct trace_t trace = {NULL, NULL, 285, LOCATE_abstract_collection___IndexedCollection___first};
750 val_t variable[3];
751 void **closurevariable = NULL;
752 trace.prev = tracehead; tracehead = &trace;
753 trace.file = LOCATE_abstract_collection;
754 variable[0] = self;
755 variable[2] = variable[0];
756 variable[2] = ((abstract_collection___Collection___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(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] = ((abstract_collection___Map_____bra_t)CALL(variable[2],COLOR_abstract_collection___Map_____bra))(variable[2], TAG_Int(0)) /*Map::[]*/;
760 variable[1] = variable[2];
761 goto return_label30;
762 return_label30: while(false);
763 tracehead = trace.prev;
764 return variable[1];
765 }
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};
768 val_t variable[4];
769 void **closurevariable = NULL;
770 trace.prev = tracehead; tracehead = &trace;
771 trace.file = LOCATE_abstract_collection;
772 variable[0] = self;
773 variable[1] = param0;
774 variable[3] = variable[0];
775 ((abstract_collection___IndexedCollection___push_t)CALL(variable[3],COLOR_abstract_collection___IndexedCollection___push))(variable[3], variable[1] /*e*/) /*IndexedCollection::push*/;
776 return_label31: while(false);
777 tracehead = trace.prev;
778 return;
779 }
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};
782 val_t variable[4];
783 void **closurevariable = NULL;
784 trace.prev = tracehead; tracehead = &trace;
785 trace.file = LOCATE_abstract_collection;
786 variable[0] = self;
787 variable[1] = param0;
788 variable[3] = variable[0];
789 ((abstract_collection___Map_____braeq_t)CALL(variable[3],COLOR_abstract_collection___Map_____braeq))(variable[3], TAG_Int(0), variable[1] /*item*/) /*Map::[]=*/;
790 return_label32: while(false);
791 tracehead = trace.prev;
792 return;
793 }
794 val_t abstract_collection___IndexedCollection___last(val_t self) {
795 struct trace_t trace = {NULL, NULL, 298, LOCATE_abstract_collection___IndexedCollection___last};
796 val_t variable[4];
797 void **closurevariable = NULL;
798 trace.prev = tracehead; tracehead = &trace;
799 trace.file = LOCATE_abstract_collection;
800 variable[0] = self;
801 variable[2] = variable[0];
802 variable[2] = ((abstract_collection___Collection___is_empty_t)CALL(variable[2],COLOR_abstract_collection___Collection___is_empty))(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] = ((abstract_collection___Collection___length_t)CALL(variable[3],COLOR_abstract_collection___Collection___length))(variable[3]) /*Collection::length*/;
807 variable[3] = TAG_Int(UNTAG_Int(variable[3])-UNTAG_Int( TAG_Int(1)));
808 variable[2] = ((abstract_collection___Map_____bra_t)CALL(variable[2],COLOR_abstract_collection___Map_____bra))(variable[2], variable[3]) /*Map::[]*/;
809 variable[1] = variable[2];
810 goto return_label33;
811 return_label33: while(false);
812 tracehead = trace.prev;
813 return variable[1];
814 }
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};
817 val_t variable[6];
818 void **closurevariable = NULL;
819 trace.prev = tracehead; tracehead = &trace;
820 trace.file = LOCATE_abstract_collection;
821 variable[0] = self;
822 variable[1] = param0;
823 variable[4] = variable[0];
824 variable[4] = ((abstract_collection___Collection___length_t)CALL(variable[4],COLOR_abstract_collection___Collection___length))(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 ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4], variable[5], variable[1] /*item*/) /*Map::[]=*/;
831 } else { /*if*/
832 variable[4] = variable[0];
833 ((abstract_collection___Map_____braeq_t)CALL(variable[4],COLOR_abstract_collection___Map_____braeq))(variable[4], TAG_Int(0), variable[1] /*item*/) /*Map::[]=*/;
834 }
835 return_label34: while(false);
836 tracehead = trace.prev;
837 return;
838 }
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);
847 nit_exit(1);
848 tracehead = trace.prev;
849 return;
850 }
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};
853 val_t variable[7];
854 void **closurevariable = NULL;
855 trace.prev = tracehead; tracehead = &trace;
856 trace.file = LOCATE_abstract_collection;
857 variable[0] = self;
858 variable[1] = param0;
859 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ == NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[1] /*coll*/,COLOR_kernel___Object_____eqeq))( variable[1] /*coll*/, NIT_NULL /*null*/) /*Object::==*/)))))));
860 if (UNTAG_Bool(variable[3])) { /*if*/
861 variable[3] = ((abstract_collection___Collection___iterator_t)CALL( variable[1] /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable[1] /*coll*/) /*Collection::iterator*/;
862 while (true) { /*for*/
863 variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[3],COLOR_abstract_collection___Iterator___is_ok))(variable[3]) /*Iterator::is_ok*/;
864 if (!UNTAG_Bool(variable[4])) break; /*for*/
865 variable[4] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
866 variable[5] = variable[4];
867 variable[6] = variable[0];
868 ((abstract_collection___IndexedCollection___push_t)CALL(variable[6],COLOR_abstract_collection___IndexedCollection___push))(variable[6], variable[5] /*i*/) /*IndexedCollection::push*/;
869 continue_36: while(0);
870 ((abstract_collection___Iterator___next_t)CALL(variable[3],COLOR_abstract_collection___Iterator___next))(variable[3]) /*Iterator::next*/;
871 }
872 break_36: while(0);
873 }
874 return_label35: while(false);
875 tracehead = trace.prev;
876 return;
877 }
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);
886 nit_exit(1);
887 tracehead = trace.prev;
888 return NIT_NULL;
889 }
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);
898 nit_exit(1);
899 tracehead = trace.prev;
900 return;
901 }
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);
910 nit_exit(1);
911 tracehead = trace.prev;
912 return NIT_NULL;
913 }
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};
916 val_t variable[5];
917 void **closurevariable = NULL;
918 trace.prev = tracehead; tracehead = &trace;
919 trace.file = LOCATE_abstract_collection;
920 variable[0] = self;
921 variable[1] = param0;
922 variable[4] = variable[0];
923 variable[4] = ((abstract_collection___IndexedCollection___iterator_t)CALL(variable[4],COLOR_abstract_collection___Collection___iterator))(variable[4]) /*IndexedCollection::iterator*/;
924 variable[3] = variable[4];
925 while (true) { /*while*/
926 variable[4] = ((abstract_collection___Iterator___is_ok_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable[3] /*i*/) /*Iterator::is_ok*/;
927 if (!UNTAG_Bool(variable[4])) break; /* while*/
928 variable[4] = ((abstract_collection___Iterator___item_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___item))( variable[3] /*i*/) /*Iterator::item*/;
929 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::==*/)))));
930 if (UNTAG_Bool(variable[4])) { /*if*/
931 variable[4] = ((abstract_collection___IndexedIterator___index_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___IndexedIterator___index))( variable[3] /*i*/) /*IndexedIterator::index*/;
932 variable[2] = variable[4];
933 goto return_label37;
934 }
935 ((abstract_collection___Iterator___next_t)CALL( variable[3] /*i*/,COLOR_abstract_collection___Iterator___next))( variable[3] /*i*/) /*Iterator::next*/;
936 continue_38: while(0);
937 }
938 break_38: while(0);
939 variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
940 variable[2] = variable[4];
941 goto return_label37;
942 return_label37: while(false);
943 tracehead = trace.prev;
944 return variable[2];
945 }
946 val_t abstract_collection___IndexedIterator___key(val_t self) {
947 struct trace_t trace = {NULL, NULL, 358, LOCATE_abstract_collection___IndexedIterator___key};
948 val_t variable[3];
949 void **closurevariable = NULL;
950 trace.prev = tracehead; tracehead = &trace;
951 trace.file = LOCATE_abstract_collection;
952 variable[0] = self;
953 variable[2] = variable[0];
954 variable[2] = ((abstract_collection___IndexedIterator___index_t)CALL(variable[2],COLOR_abstract_collection___IndexedIterator___index))(variable[2]) /*IndexedIterator::index*/;
955 variable[1] = variable[2];
956 goto return_label39;
957 return_label39: while(false);
958 tracehead = trace.prev;
959 return variable[1];
960 }
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);
969 nit_exit(1);
970 tracehead = trace.prev;
971 return NIT_NULL;
972 }
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};
975 val_t variable[5];
976 void **closurevariable = NULL;
977 trace.prev = tracehead; tracehead = &trace;
978 trace.file = LOCATE_abstract_collection;
979 variable[0] = self;
980 variable[1] = param0;
981 variable[4] = variable[0];
982 variable[4] = ((abstract_collection___CoupleMap___couple_at_t)CALL(variable[4],COLOR_abstract_collection___CoupleMap___couple_at))(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) && ((((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable[3] /*c*/,COLOR_kernel___Object_____eqeq))( variable[3] /*c*/, NIT_NULL /*null*/) /*Object::==*/)))));
985 if (UNTAG_Bool(variable[4])) { /*if*/
986 variable[2] = NIT_NULL /*null*/;
987 goto return_label40;
988 } else { /*if*/
989 variable[4] = ((abstract_collection___Couple___second_t)CALL( variable[3] /*c*/,COLOR_abstract_collection___Couple___second))( variable[3] /*c*/) /*Couple::second*/;
990 variable[2] = variable[4];
991 goto return_label40;
992 }
993 return_label40: while(false);
994 tracehead = trace.prev;
995 return variable[2];
996 }
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};
999 val_t variable[4];
1000 void **closurevariable = NULL;
1001 trace.prev = tracehead; tracehead = &trace;
1002 trace.file = LOCATE_abstract_collection;
1003 variable[0] = self;
1004 variable[1] = param0;
1005 variable[3] = variable[0];
1006 variable[3] = ((abstract_collection___CoupleMap___couple_at_t)CALL(variable[3],COLOR_abstract_collection___CoupleMap___couple_at))(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) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1008 variable[2] = variable[3];
1009 goto return_label41;
1010 return_label41: while(false);
1011 tracehead = trace.prev;
1012 return variable[2];
1013 }
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);
1022 nit_exit(1);
1023 tracehead = trace.prev;
1024 return NIT_NULL;
1025 }
1026 val_t abstract_collection___CoupleMapIterator___item(val_t self) {
1027 struct trace_t trace = {NULL, NULL, 387, LOCATE_abstract_collection___CoupleMapIterator___item};
1028 val_t variable[3];
1029 void **closurevariable = NULL;
1030 trace.prev = tracehead; tracehead = &trace;
1031 trace.file = LOCATE_abstract_collection;
1032 variable[0] = self;
1033 variable[2] = variable[0];
1034 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
1035 variable[2] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
1036 variable[2] = ((abstract_collection___Couple___second_t)CALL(variable[2],COLOR_abstract_collection___Couple___second))(variable[2]) /*Couple::second*/;
1037 variable[1] = variable[2];
1038 goto return_label42;
1039 return_label42: while(false);
1040 tracehead = trace.prev;
1041 return variable[1];
1042 }
1043 void abstract_collection___CoupleMapIterator___next(val_t self) {
1044 struct trace_t trace = {NULL, NULL, 395, LOCATE_abstract_collection___CoupleMapIterator___next};
1045 val_t variable[4];
1046 void **closurevariable = NULL;
1047 trace.prev = tracehead; tracehead = &trace;
1048 trace.file = LOCATE_abstract_collection;
1049 variable[0] = self;
1050 variable[2] = variable[0];
1051 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
1052 ((abstract_collection___Iterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(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] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(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] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
1062 variable[3] = TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable[3],COLOR_kernel___Object_____eqeq))(variable[3], NIT_NULL /*null*/) /*Object::==*/)))));
1063 }
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 ((abstract_collection___Iterator___next_t)CALL(variable[2],COLOR_abstract_collection___Iterator___next))(variable[2]) /*Iterator::next*/;
1069 continue_44: while(0);
1070 }
1071 break_44: while(0);
1072 return_label43: while(false);
1073 tracehead = trace.prev;
1074 return;
1075 }
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};
1078 val_t variable[3];
1079 void **closurevariable = NULL;
1080 trace.prev = tracehead; tracehead = &trace;
1081 trace.file = LOCATE_abstract_collection;
1082 variable[0] = self;
1083 variable[2] = variable[0];
1084 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
1085 variable[2] = ((abstract_collection___Iterator___is_ok_t)CALL(variable[2],COLOR_abstract_collection___Iterator___is_ok))(variable[2]) /*Iterator::is_ok*/;
1086 variable[1] = variable[2];
1087 goto return_label45;
1088 return_label45: while(false);
1089 tracehead = trace.prev;
1090 return variable[1];
1091 }
1092 val_t abstract_collection___CoupleMapIterator___key(val_t self) {
1093 struct trace_t trace = {NULL, NULL, 391, LOCATE_abstract_collection___CoupleMapIterator___key};
1094 val_t variable[3];
1095 void **closurevariable = NULL;
1096 trace.prev = tracehead; tracehead = &trace;
1097 trace.file = LOCATE_abstract_collection;
1098 variable[0] = self;
1099 variable[2] = variable[0];
1100 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[2]) /*CoupleMapIterator::_iter*/;
1101 variable[2] = ((abstract_collection___Iterator___item_t)CALL(variable[2],COLOR_abstract_collection___Iterator___item))(variable[2]) /*Iterator::item*/;
1102 variable[2] = ((abstract_collection___Couple___first_t)CALL(variable[2],COLOR_abstract_collection___Couple___first))(variable[2]) /*Couple::first*/;
1103 variable[1] = variable[2];
1104 goto return_label46;
1105 return_label46: while(false);
1106 tracehead = trace.prev;
1107 return variable[1];
1108 }
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};
1111 val_t variable[4];
1112 void **closurevariable = NULL;
1113 trace.prev = tracehead; tracehead = &trace;
1114 trace.file = LOCATE_abstract_collection;
1115 variable[0] = self;
1116 variable[1] = param0;
1117 variable[3] = variable[0];
1118 variable[3] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[3]) /*CoupleMapIterator::_iter*/;
1119 variable[3] = ((abstract_collection___Iterator___item_t)CALL(variable[3],COLOR_abstract_collection___Iterator___item))(variable[3]) /*Iterator::item*/;
1120 ((abstract_collection___Couple___second__eq_t)CALL(variable[3],COLOR_abstract_collection___Couple___second__eq))(variable[3], variable[1] /*e*/) /*Couple::second=*/;
1121 return_label47: while(false);
1122 tracehead = trace.prev;
1123 return;
1124 }
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};
1127 val_t variable[4];
1128 void **closurevariable = NULL;
1129 trace.prev = tracehead; tracehead = &trace;
1130 trace.file = LOCATE_abstract_collection;
1131 variable[0] = self;
1132 variable[1] = param0;
1133 if (init_table[VAL2OBJ( self)->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( self)->vft[INIT_TABLE_POS_CoupleMapIterator].i] = 1;
1138 tracehead = trace.prev;
1139 return;
1140 }
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*/;
1149 }
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;
1158 return;
1159 }
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*/;
1168 }
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;
1177 return;
1178 }
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};
1181 val_t variable[5];
1182 void **closurevariable = NULL;
1183 trace.prev = tracehead; tracehead = &trace;
1184 trace.file = LOCATE_abstract_collection;
1185 variable[0] = self;
1186 variable[1] = param0;
1187 variable[2] = param1;
1188 if (init_table[VAL2OBJ( self)->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( self)->vft[INIT_TABLE_POS_Couple].i] = 1;
1195 tracehead = trace.prev;
1196 return;
1197 }