Update c_src. Enable one gcc pass bootstrap.
[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 trace.prev = tracehead; tracehead = &trace;
6 trace.file = LOCATE_abstract_collection;
7 fprintf(stderr, "Deferred method %s called");
8 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 42);
9 nit_exit(1);
10 tracehead = trace.prev;
11 return NIT_NULL;
12 }
13 val_t abstract_collection___Collection___is_empty(val_t self) {
14 struct trace_t trace = {NULL, NULL, 45, LOCATE_abstract_collection___Collection___is_empty};
15 trace.prev = tracehead; tracehead = &trace;
16 trace.file = LOCATE_abstract_collection;
17 fprintf(stderr, "Deferred method %s called");
18 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 45);
19 nit_exit(1);
20 tracehead = trace.prev;
21 return NIT_NULL;
22 }
23 val_t abstract_collection___Collection___length(val_t self) {
24 struct trace_t trace = {NULL, NULL, 48, LOCATE_abstract_collection___Collection___length};
25 trace.prev = tracehead; tracehead = &trace;
26 trace.file = LOCATE_abstract_collection;
27 fprintf(stderr, "Deferred method %s called");
28 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 48);
29 nit_exit(1);
30 tracehead = trace.prev;
31 return NIT_NULL;
32 }
33 val_t abstract_collection___Collection___has(val_t self, val_t param0) {
34 struct trace_t trace = {NULL, NULL, 51, LOCATE_abstract_collection___Collection___has};
35 trace.prev = tracehead; tracehead = &trace;
36 trace.file = LOCATE_abstract_collection;
37 fprintf(stderr, "Deferred method %s called");
38 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 51);
39 nit_exit(1);
40 tracehead = trace.prev;
41 return NIT_NULL;
42 }
43 val_t abstract_collection___Collection___has_only(val_t self, val_t param0) {
44 struct trace_t trace = {NULL, NULL, 55, LOCATE_abstract_collection___Collection___has_only};
45 trace.prev = tracehead; tracehead = &trace;
46 trace.file = LOCATE_abstract_collection;
47 fprintf(stderr, "Deferred method %s called");
48 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 55);
49 nit_exit(1);
50 tracehead = trace.prev;
51 return NIT_NULL;
52 }
53 val_t abstract_collection___Collection___count(val_t self, val_t param0) {
54 struct trace_t trace = {NULL, NULL, 60, LOCATE_abstract_collection___Collection___count};
55 trace.prev = tracehead; tracehead = &trace;
56 trace.file = LOCATE_abstract_collection;
57 fprintf(stderr, "Deferred method %s called");
58 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 60);
59 nit_exit(1);
60 tracehead = trace.prev;
61 return NIT_NULL;
62 }
63 val_t abstract_collection___Collection___first(val_t self) {
64 struct trace_t trace = {NULL, NULL, 64, LOCATE_abstract_collection___Collection___first};
65 trace.prev = tracehead; tracehead = &trace;
66 trace.file = LOCATE_abstract_collection;
67 fprintf(stderr, "Deferred method %s called");
68 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 64);
69 nit_exit(1);
70 tracehead = trace.prev;
71 return NIT_NULL;
72 }
73 val_t abstract_collection___NaiveCollection___is_empty(val_t self) {
74 struct trace_t trace = {NULL, NULL, 72, LOCATE_abstract_collection___NaiveCollection___is_empty};
75 val_t variable0;
76 trace.prev = tracehead; tracehead = &trace;
77 trace.file = LOCATE_abstract_collection;
78 variable0 = ((abstract_collection___NaiveCollection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*NaiveCollection::length*/;
79 variable0 = TAG_Bool((variable0)==( TAG_Int(0)));
80 goto return_label0;
81 return_label0: while(false);
82 tracehead = trace.prev;
83 return variable0;
84 }
85 val_t abstract_collection___NaiveCollection___length(val_t self) {
86 struct trace_t trace = {NULL, NULL, 74, LOCATE_abstract_collection___NaiveCollection___length};
87 val_t variable0;
88 val_t variable1;
89 val_t variable2;
90 trace.prev = tracehead; tracehead = &trace;
91 trace.file = LOCATE_abstract_collection;
92 variable0 = TAG_Int(0);
93 variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
94 while (true) { /*for*/
95 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
96 if (!UNTAG_Bool(variable2)) break; /*for*/
97 variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
98 variable0 = TAG_Int(UNTAG_Int(variable0)+UNTAG_Int( variable0 /*nb*/)) /*nb*/;
99 continue_2: while(0);
100 ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
101 }
102 break_2: while(0);
103 variable0 = variable0 /*nb*/;
104 goto return_label1;
105 return_label1: while(false);
106 tracehead = trace.prev;
107 return variable0;
108 }
109 val_t abstract_collection___NaiveCollection___has(val_t self, val_t param0) {
110 struct trace_t trace = {NULL, NULL, 81, LOCATE_abstract_collection___NaiveCollection___has};
111 val_t variable0;
112 val_t variable1;
113 val_t variable2;
114 val_t variable3;
115 trace.prev = tracehead; tracehead = &trace;
116 trace.file = LOCATE_abstract_collection;
117 variable0 = param0;
118 variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
119 while (true) { /*for*/
120 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
121 if (!UNTAG_Bool(variable2)) break; /*for*/
122 variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
123 variable3 = TAG_Bool(( variable2 /*i*/ == variable0 /*item*/) || (( variable2 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*i*/, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))( variable2 /*i*/, variable0 /*item*/) /*Object::==*/)))));
124 if (UNTAG_Bool(variable3)) { /*if*/
125 variable1 = TAG_Bool(true);
126 goto return_label3;
127 }
128 continue_4: while(0);
129 ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
130 }
131 break_4: while(0);
132 variable1 = TAG_Bool(false);
133 goto return_label3;
134 return_label3: while(false);
135 tracehead = trace.prev;
136 return variable1;
137 }
138 val_t abstract_collection___NaiveCollection___has_only(val_t self, val_t param0) {
139 struct trace_t trace = {NULL, NULL, 87, LOCATE_abstract_collection___NaiveCollection___has_only};
140 val_t variable0;
141 val_t variable1;
142 val_t variable2;
143 val_t variable3;
144 trace.prev = tracehead; tracehead = &trace;
145 trace.file = LOCATE_abstract_collection;
146 variable0 = param0;
147 variable1 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
148 while (true) { /*for*/
149 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
150 if (!UNTAG_Bool(variable2)) break; /*for*/
151 variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
152 variable3 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable2 /*i*/ == variable0 /*item*/) || (( variable2 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable2 /*i*/, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable2 /*i*/,COLOR_kernel___Object_____eqeq))( variable2 /*i*/, variable0 /*item*/) /*Object::==*/)))))));
153 if (UNTAG_Bool(variable3)) { /*if*/
154 variable1 = TAG_Bool(false);
155 goto return_label5;
156 }
157 continue_6: while(0);
158 ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
159 }
160 break_6: while(0);
161 variable1 = TAG_Bool(true);
162 goto return_label5;
163 return_label5: while(false);
164 tracehead = trace.prev;
165 return variable1;
166 }
167 val_t abstract_collection___NaiveCollection___count(val_t self, val_t param0) {
168 struct trace_t trace = {NULL, NULL, 93, LOCATE_abstract_collection___NaiveCollection___count};
169 val_t variable0;
170 val_t variable1;
171 val_t variable2;
172 val_t variable3;
173 val_t variable4;
174 trace.prev = tracehead; tracehead = &trace;
175 trace.file = LOCATE_abstract_collection;
176 variable0 = param0;
177 variable1 = TAG_Int(0);
178 variable2 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
179 while (true) { /*for*/
180 variable3 = ((abstract_collection___Iterator___is_ok_t)CALL(variable2,COLOR_abstract_collection___Iterator___is_ok))(variable2) /*Iterator::is_ok*/;
181 if (!UNTAG_Bool(variable3)) break; /*for*/
182 variable3 = ((abstract_collection___Iterator___item_t)CALL(variable2,COLOR_abstract_collection___Iterator___item))(variable2) /*Iterator::item*/;
183 variable4 = TAG_Bool(( variable3 /*i*/ == variable0 /*item*/) || (( variable3 /*i*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable3 /*i*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable3 /*i*/, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable3 /*i*/,COLOR_kernel___Object_____eqeq))( variable3 /*i*/, variable0 /*item*/) /*Object::==*/)))));
184 if (UNTAG_Bool(variable4)) { /*if*/
185 variable1 = TAG_Int(UNTAG_Int(variable1)+UNTAG_Int( TAG_Int(1))) /*nb*/;
186 }
187 continue_8: while(0);
188 ((abstract_collection___Iterator___next_t)CALL(variable2,COLOR_abstract_collection___Iterator___next))(variable2) /*Iterator::next*/;
189 }
190 break_8: while(0);
191 variable1 = variable1 /*nb*/;
192 goto return_label7;
193 return_label7: while(false);
194 tracehead = trace.prev;
195 return variable1;
196 }
197 val_t abstract_collection___NaiveCollection___first(val_t self) {
198 struct trace_t trace = {NULL, NULL, 100, LOCATE_abstract_collection___NaiveCollection___first};
199 val_t variable0;
200 trace.prev = tracehead; tracehead = &trace;
201 trace.file = LOCATE_abstract_collection;
202 variable0 = ((abstract_collection___NaiveCollection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*NaiveCollection::length*/;
203 variable0 = TAG_Bool(UNTAG_Int(variable0)>UNTAG_Int( TAG_Int(0)));
204 if (!UNTAG_Bool(variable0)) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___NaiveCollection___first, LOCATE_abstract_collection, 102); nit_exit(1);}
205 variable0 = ((abstract_collection___Collection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*Collection::iterator*/;
206 variable0 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
207 goto return_label9;
208 return_label9: while(false);
209 tracehead = trace.prev;
210 return variable0;
211 }
212 val_t abstract_collection___Iterator___item(val_t self) {
213 struct trace_t trace = {NULL, NULL, 110, LOCATE_abstract_collection___Iterator___item};
214 trace.prev = tracehead; tracehead = &trace;
215 trace.file = LOCATE_abstract_collection;
216 fprintf(stderr, "Deferred method %s called");
217 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___NaiveCollection___first, LOCATE_abstract_collection, 110);
218 nit_exit(1);
219 tracehead = trace.prev;
220 return NIT_NULL;
221 }
222 void abstract_collection___Iterator___next(val_t self) {
223 struct trace_t trace = {NULL, NULL, 114, LOCATE_abstract_collection___Iterator___next};
224 trace.prev = tracehead; tracehead = &trace;
225 trace.file = LOCATE_abstract_collection;
226 fprintf(stderr, "Deferred method %s called");
227 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___NaiveCollection___first, LOCATE_abstract_collection, 114);
228 nit_exit(1);
229 tracehead = trace.prev;
230 return;
231 }
232 val_t abstract_collection___Iterator___is_ok(val_t self) {
233 struct trace_t trace = {NULL, NULL, 118, LOCATE_abstract_collection___Iterator___is_ok};
234 trace.prev = tracehead; tracehead = &trace;
235 trace.file = LOCATE_abstract_collection;
236 fprintf(stderr, "Deferred method %s called");
237 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___NaiveCollection___first, LOCATE_abstract_collection, 118);
238 nit_exit(1);
239 tracehead = trace.prev;
240 return NIT_NULL;
241 }
242 val_t abstract_collection___Container___first(val_t self) {
243 struct trace_t trace = {NULL, NULL, 126, LOCATE_abstract_collection___Container___first};
244 val_t variable0;
245 trace.prev = tracehead; tracehead = &trace;
246 trace.file = LOCATE_abstract_collection;
247 variable0 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
248 goto return_label10;
249 return_label10: while(false);
250 tracehead = trace.prev;
251 return variable0;
252 }
253 val_t abstract_collection___Container___is_empty(val_t self) {
254 struct trace_t trace = {NULL, NULL, 128, LOCATE_abstract_collection___Container___is_empty};
255 val_t variable0;
256 trace.prev = tracehead; tracehead = &trace;
257 trace.file = LOCATE_abstract_collection;
258 variable0 = TAG_Bool(false);
259 goto return_label11;
260 return_label11: while(false);
261 tracehead = trace.prev;
262 return variable0;
263 }
264 val_t abstract_collection___Container___length(val_t self) {
265 struct trace_t trace = {NULL, NULL, 130, LOCATE_abstract_collection___Container___length};
266 val_t variable0;
267 trace.prev = tracehead; tracehead = &trace;
268 trace.file = LOCATE_abstract_collection;
269 variable0 = TAG_Int(1);
270 goto return_label12;
271 return_label12: while(false);
272 tracehead = trace.prev;
273 return variable0;
274 }
275 val_t abstract_collection___Container___has(val_t self, val_t param0) {
276 struct trace_t trace = {NULL, NULL, 132, LOCATE_abstract_collection___Container___has};
277 val_t variable0;
278 val_t variable1;
279 trace.prev = tracehead; tracehead = &trace;
280 trace.file = LOCATE_abstract_collection;
281 variable0 = param0;
282 variable1 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
283 variable1 = TAG_Bool((variable1 == variable0 /*an_item*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable0 /*an_item*/) /*Object::==*/)))));
284 goto return_label13;
285 return_label13: while(false);
286 tracehead = trace.prev;
287 return variable1;
288 }
289 val_t abstract_collection___Container___has_only(val_t self, val_t param0) {
290 struct trace_t trace = {NULL, NULL, 134, LOCATE_abstract_collection___Container___has_only};
291 val_t variable0;
292 val_t variable1;
293 trace.prev = tracehead; tracehead = &trace;
294 trace.file = LOCATE_abstract_collection;
295 variable0 = param0;
296 variable1 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
297 variable1 = TAG_Bool((variable1 == variable0 /*an_item*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable0 /*an_item*/) /*Object::==*/)))));
298 goto return_label14;
299 return_label14: while(false);
300 tracehead = trace.prev;
301 return variable1;
302 }
303 val_t abstract_collection___Container___count(val_t self, val_t param0) {
304 struct trace_t trace = {NULL, NULL, 136, LOCATE_abstract_collection___Container___count};
305 val_t variable0;
306 val_t variable1;
307 trace.prev = tracehead; tracehead = &trace;
308 trace.file = LOCATE_abstract_collection;
309 variable0 = param0;
310 variable1 = ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
311 variable1 = TAG_Bool((variable1 == variable0 /*an_item*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, variable0 /*an_item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, variable0 /*an_item*/) /*Object::==*/)))));
312 if (UNTAG_Bool(variable1)) { /*if*/
313 variable1 = TAG_Int(1);
314 goto return_label15;
315 } else { /*if*/
316 variable1 = TAG_Int(0);
317 goto return_label15;
318 }
319 return_label15: while(false);
320 tracehead = trace.prev;
321 return variable1;
322 }
323 val_t abstract_collection___Container___iterator(val_t self) {
324 struct trace_t trace = {NULL, NULL, 145, LOCATE_abstract_collection___Container___iterator};
325 val_t variable0;
326 trace.prev = tracehead; tracehead = &trace;
327 trace.file = LOCATE_abstract_collection;
328 variable0 = NEW_abstract_collection___ContainerIterator___init( self); /*new ContainerIterator[E]*/
329 goto return_label16;
330 return_label16: while(false);
331 tracehead = trace.prev;
332 return variable0;
333 }
334 void abstract_collection___Container___init(val_t self, val_t param0, int* init_table) {
335 struct trace_t trace = {NULL, NULL, 147, LOCATE_abstract_collection___Container___init};
336 val_t variable0;
337 trace.prev = tracehead; tracehead = &trace;
338 trace.file = LOCATE_abstract_collection;
339 variable0 = param0;
340 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Container].i]) return;
341 ATTR_abstract_collection___Container____item( self) /*Container::_item*/ = variable0 /*e*/;
342 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Container].i] = 1;
343 tracehead = trace.prev;
344 return;
345 }
346 val_t abstract_collection___Container___item(val_t self) {
347 struct trace_t trace = {NULL, NULL, 150, LOCATE_abstract_collection___Container___item};
348 trace.prev = tracehead; tracehead = &trace;
349 trace.file = LOCATE_abstract_collection;
350 tracehead = trace.prev;
351 return ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
352 }
353 void abstract_collection___Container___item__eq(val_t self, val_t param0) {
354 struct trace_t trace = {NULL, NULL, 150, LOCATE_abstract_collection___Container___item__eq};
355 trace.prev = tracehead; tracehead = &trace;
356 trace.file = LOCATE_abstract_collection;
357 ATTR_abstract_collection___Container____item( self) /*Container::_item*/ = param0;
358 tracehead = trace.prev;
359 return;
360 }
361 val_t abstract_collection___ContainerIterator___item(val_t self) {
362 struct trace_t trace = {NULL, NULL, 157, LOCATE_abstract_collection___ContainerIterator___item};
363 val_t variable0;
364 trace.prev = tracehead; tracehead = &trace;
365 trace.file = LOCATE_abstract_collection;
366 variable0 = ATTR_abstract_collection___ContainerIterator____container( self) /*ContainerIterator::_container*/;
367 variable0 = ((abstract_collection___Container___item_t)CALL(variable0,COLOR_abstract_collection___Container___item))(variable0) /*Container::item*/;
368 goto return_label18;
369 return_label18: while(false);
370 tracehead = trace.prev;
371 return variable0;
372 }
373 void abstract_collection___ContainerIterator___next(val_t self) {
374 struct trace_t trace = {NULL, NULL, 159, LOCATE_abstract_collection___ContainerIterator___next};
375 trace.prev = tracehead; tracehead = &trace;
376 trace.file = LOCATE_abstract_collection;
377 ATTR_abstract_collection___ContainerIterator____is_ok( self) /*ContainerIterator::_is_ok*/ = TAG_Bool(false);
378 tracehead = trace.prev;
379 return;
380 }
381 void abstract_collection___ContainerIterator___init(val_t self, val_t param0, int* init_table) {
382 struct trace_t trace = {NULL, NULL, 161, LOCATE_abstract_collection___ContainerIterator___init};
383 val_t variable0;
384 trace.prev = tracehead; tracehead = &trace;
385 trace.file = LOCATE_abstract_collection;
386 variable0 = param0;
387 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ContainerIterator].i]) return;
388 ATTR_abstract_collection___ContainerIterator____container( self) /*ContainerIterator::_container*/ = variable0 /*c*/;
389 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_ContainerIterator].i] = 1;
390 tracehead = trace.prev;
391 return;
392 }
393 val_t abstract_collection___ContainerIterator___is_ok(val_t self) {
394 struct trace_t trace = {NULL, NULL, 163, LOCATE_abstract_collection___ContainerIterator___is_ok};
395 trace.prev = tracehead; tracehead = &trace;
396 trace.file = LOCATE_abstract_collection;
397 tracehead = trace.prev;
398 return ATTR_abstract_collection___ContainerIterator____is_ok( self) /*ContainerIterator::_is_ok*/;
399 }
400 void abstract_collection___RemovableCollection___clear(val_t self) {
401 struct trace_t trace = {NULL, NULL, 171, LOCATE_abstract_collection___RemovableCollection___clear};
402 trace.prev = tracehead; tracehead = &trace;
403 trace.file = LOCATE_abstract_collection;
404 fprintf(stderr, "Deferred method %s called");
405 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___ContainerIterator___init, LOCATE_abstract_collection, 171);
406 nit_exit(1);
407 tracehead = trace.prev;
408 return;
409 }
410 void abstract_collection___RemovableCollection___remove(val_t self, val_t param0) {
411 struct trace_t trace = {NULL, NULL, 174, LOCATE_abstract_collection___RemovableCollection___remove};
412 trace.prev = tracehead; tracehead = &trace;
413 trace.file = LOCATE_abstract_collection;
414 fprintf(stderr, "Deferred method %s called");
415 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___ContainerIterator___init, LOCATE_abstract_collection, 174);
416 nit_exit(1);
417 tracehead = trace.prev;
418 return;
419 }
420 void abstract_collection___RemovableCollection___remove_all(val_t self, val_t param0) {
421 struct trace_t trace = {NULL, NULL, 177, LOCATE_abstract_collection___RemovableCollection___remove_all};
422 val_t variable0;
423 val_t variable1;
424 trace.prev = tracehead; tracehead = &trace;
425 trace.file = LOCATE_abstract_collection;
426 variable0 = param0;
427 while (true) { /*while*/
428 variable1 = ((abstract_collection___Collection___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self, variable0 /*item*/) /*Collection::has*/;
429 if (!UNTAG_Bool(variable1)) break; /* while*/
430 ((abstract_collection___RemovableCollection___remove_t)CALL( self,COLOR_abstract_collection___RemovableCollection___remove))( self, variable0 /*item*/) /*RemovableCollection::remove*/;
431 continue_22: while(0);
432 }
433 break_22: while(0);
434 tracehead = trace.prev;
435 return;
436 }
437 void abstract_collection___SimpleCollection___add(val_t self, val_t param0) {
438 struct trace_t trace = {NULL, NULL, 184, LOCATE_abstract_collection___SimpleCollection___add};
439 trace.prev = tracehead; tracehead = &trace;
440 trace.file = LOCATE_abstract_collection;
441 fprintf(stderr, "Deferred method %s called");
442 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___RemovableCollection___remove_all, LOCATE_abstract_collection, 184);
443 nit_exit(1);
444 tracehead = trace.prev;
445 return;
446 }
447 void abstract_collection___SimpleCollection___add_all(val_t self, val_t param0) {
448 struct trace_t trace = {NULL, NULL, 188, LOCATE_abstract_collection___SimpleCollection___add_all};
449 val_t variable0;
450 val_t variable1;
451 val_t variable2;
452 trace.prev = tracehead; tracehead = &trace;
453 trace.file = LOCATE_abstract_collection;
454 variable0 = param0;
455 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*coll*/ == NIT_NULL /*null*/) || (( variable0 /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))( variable0 /*coll*/, NIT_NULL /*null*/) /*Object::==*/)))))));
456 if (UNTAG_Bool(variable1)) { /*if*/
457 variable1 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*coll*/) /*Collection::iterator*/;
458 while (true) { /*for*/
459 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
460 if (!UNTAG_Bool(variable2)) break; /*for*/
461 variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
462 ((abstract_collection___SimpleCollection___add_t)CALL( self,COLOR_abstract_collection___SimpleCollection___add))( self, variable2 /*i*/) /*SimpleCollection::add*/;
463 continue_24: while(0);
464 ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
465 }
466 break_24: while(0);
467 }
468 tracehead = trace.prev;
469 return;
470 }
471 val_t abstract_collection___Set___has_only(val_t self, val_t param0) {
472 struct trace_t trace = {NULL, NULL, 204, LOCATE_abstract_collection___Set___has_only};
473 val_t variable0;
474 val_t variable1;
475 val_t variable2;
476 trace.prev = tracehead; tracehead = &trace;
477 trace.file = LOCATE_abstract_collection;
478 variable0 = param0;
479 variable2 = ((abstract_collection___Collection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*Collection::length*/;
480 variable1 = variable2;
481 variable2 = TAG_Bool(( variable1 /*l*/)==( TAG_Int(1)));
482 if (UNTAG_Bool(variable2)) { /*if*/
483 variable2 = ((abstract_collection___Collection___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self, variable0 /*item*/) /*Collection::has*/;
484 variable1 = variable2;
485 goto return_label25;
486 } else { /*if*/
487 variable2 = TAG_Bool(( variable1 /*l*/)==( TAG_Int(0)));
488 if (UNTAG_Bool(variable2)) { /*if*/
489 variable1 = TAG_Bool(true);
490 goto return_label25;
491 } else { /*if*/
492 variable1 = TAG_Bool(false);
493 goto return_label25;
494 }
495 }
496 return_label25: while(false);
497 tracehead = trace.prev;
498 return variable1;
499 }
500 val_t abstract_collection___Set___count(val_t self, val_t param0) {
501 struct trace_t trace = {NULL, NULL, 216, LOCATE_abstract_collection___Set___count};
502 val_t variable0;
503 val_t variable1;
504 trace.prev = tracehead; tracehead = &trace;
505 trace.file = LOCATE_abstract_collection;
506 variable0 = param0;
507 variable1 = ((abstract_collection___Collection___has_t)CALL( self,COLOR_abstract_collection___Collection___has))( self, variable0 /*item*/) /*Collection::has*/;
508 if (UNTAG_Bool(variable1)) { /*if*/
509 variable1 = TAG_Int(1);
510 goto return_label26;
511 } else { /*if*/
512 variable1 = TAG_Int(0);
513 goto return_label26;
514 }
515 return_label26: while(false);
516 tracehead = trace.prev;
517 return variable1;
518 }
519 void abstract_collection___Set___remove_all(val_t self, val_t param0) {
520 struct trace_t trace = {NULL, NULL, 226, LOCATE_abstract_collection___Set___remove_all};
521 val_t variable0;
522 trace.prev = tracehead; tracehead = &trace;
523 trace.file = LOCATE_abstract_collection;
524 variable0 = param0;
525 ((abstract_collection___RemovableCollection___remove_t)CALL( self,COLOR_abstract_collection___RemovableCollection___remove))( self, variable0 /*item*/) /*RemovableCollection::remove*/;
526 tracehead = trace.prev;
527 return;
528 }
529 val_t abstract_collection___Map_____bra(val_t self, val_t param0) {
530 struct trace_t trace = {NULL, NULL, 244, LOCATE_abstract_collection___Map_____bra};
531 trace.prev = tracehead; tracehead = &trace;
532 trace.file = LOCATE_abstract_collection;
533 fprintf(stderr, "Deferred method %s called");
534 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___Set___remove_all, LOCATE_abstract_collection, 244);
535 nit_exit(1);
536 tracehead = trace.prev;
537 return NIT_NULL;
538 }
539 void abstract_collection___Map_____braeq(val_t self, val_t param0, val_t param1) {
540 struct trace_t trace = {NULL, NULL, 247, LOCATE_abstract_collection___Map_____braeq};
541 trace.prev = tracehead; tracehead = &trace;
542 trace.file = LOCATE_abstract_collection;
543 fprintf(stderr, "Deferred method %s called");
544 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___Set___remove_all, LOCATE_abstract_collection, 247);
545 nit_exit(1);
546 tracehead = trace.prev;
547 return;
548 }
549 val_t abstract_collection___Map___has_key(val_t self, val_t param0) {
550 struct trace_t trace = {NULL, NULL, 250, LOCATE_abstract_collection___Map___has_key};
551 trace.prev = tracehead; tracehead = &trace;
552 trace.file = LOCATE_abstract_collection;
553 fprintf(stderr, "Deferred method %s called");
554 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___Set___remove_all, LOCATE_abstract_collection, 250);
555 nit_exit(1);
556 tracehead = trace.prev;
557 return NIT_NULL;
558 }
559 void abstract_collection___Map___remove_at(val_t self, val_t param0) {
560 struct trace_t trace = {NULL, NULL, 253, LOCATE_abstract_collection___Map___remove_at};
561 trace.prev = tracehead; tracehead = &trace;
562 trace.file = LOCATE_abstract_collection;
563 fprintf(stderr, "Deferred method %s called");
564 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___Set___remove_all, LOCATE_abstract_collection, 253);
565 nit_exit(1);
566 tracehead = trace.prev;
567 return;
568 }
569 void abstract_collection___Map___recover_with(val_t self, val_t param0) {
570 struct trace_t trace = {NULL, NULL, 256, LOCATE_abstract_collection___Map___recover_with};
571 val_t variable0;
572 val_t variable1;
573 val_t variable2;
574 val_t variable3;
575 trace.prev = tracehead; tracehead = &trace;
576 trace.file = LOCATE_abstract_collection;
577 variable0 = param0;
578 variable2 = ((abstract_collection___Map___iterator_t)CALL( variable0 /*map*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*map*/) /*Map::iterator*/;
579 variable1 = variable2;
580 while (true) { /*while*/
581 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable1 /*i*/) /*Iterator::is_ok*/;
582 if (!UNTAG_Bool(variable2)) break; /* while*/
583 variable2 = ((abstract_collection___MapIterator___key_t)CALL( variable1 /*i*/,COLOR_abstract_collection___MapIterator___key))( variable1 /*i*/) /*MapIterator::key*/;
584 variable3 = ((abstract_collection___Iterator___item_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___item))( variable1 /*i*/) /*Iterator::item*/;
585 ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable2, variable3) /*Map::[]=*/;
586 ((abstract_collection___Iterator___next_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___next))( variable1 /*i*/) /*Iterator::next*/;
587 continue_29: while(0);
588 }
589 break_29: while(0);
590 tracehead = trace.prev;
591 return;
592 }
593 val_t abstract_collection___Map___iterator(val_t self) {
594 struct trace_t trace = {NULL, NULL, 267, LOCATE_abstract_collection___Map___iterator};
595 trace.prev = tracehead; tracehead = &trace;
596 trace.file = LOCATE_abstract_collection;
597 fprintf(stderr, "Deferred method %s called");
598 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___Map___recover_with, LOCATE_abstract_collection, 267);
599 nit_exit(1);
600 tracehead = trace.prev;
601 return NIT_NULL;
602 }
603 val_t abstract_collection___MapIterator___key(val_t self) {
604 struct trace_t trace = {NULL, NULL, 273, LOCATE_abstract_collection___MapIterator___key};
605 trace.prev = tracehead; tracehead = &trace;
606 trace.file = LOCATE_abstract_collection;
607 fprintf(stderr, "Deferred method %s called");
608 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___Map___recover_with, LOCATE_abstract_collection, 273);
609 nit_exit(1);
610 tracehead = trace.prev;
611 return NIT_NULL;
612 }
613 void abstract_collection___MapIterator___item__eq(val_t self, val_t param0) {
614 struct trace_t trace = {NULL, NULL, 276, LOCATE_abstract_collection___MapIterator___item__eq};
615 trace.prev = tracehead; tracehead = &trace;
616 trace.file = LOCATE_abstract_collection;
617 fprintf(stderr, "Deferred method %s called");
618 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___Map___recover_with, LOCATE_abstract_collection, 276);
619 nit_exit(1);
620 tracehead = trace.prev;
621 return;
622 }
623 val_t abstract_collection___IndexedCollection___first(val_t self) {
624 struct trace_t trace = {NULL, NULL, 285, LOCATE_abstract_collection___IndexedCollection___first};
625 val_t variable0;
626 trace.prev = tracehead; tracehead = &trace;
627 trace.file = LOCATE_abstract_collection;
628 variable0 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Collection::is_empty*/;
629 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { 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);}
630 variable0 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self, TAG_Int(0)) /*Map::[]*/;
631 goto return_label30;
632 return_label30: while(false);
633 tracehead = trace.prev;
634 return variable0;
635 }
636 void abstract_collection___IndexedCollection___first__eq(val_t self, val_t param0) {
637 struct trace_t trace = {NULL, NULL, 293, LOCATE_abstract_collection___IndexedCollection___first__eq};
638 val_t variable0;
639 trace.prev = tracehead; tracehead = &trace;
640 trace.file = LOCATE_abstract_collection;
641 variable0 = param0;
642 ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, TAG_Int(0), variable0 /*item*/) /*Map::[]=*/;
643 tracehead = trace.prev;
644 return;
645 }
646 val_t abstract_collection___IndexedCollection___last(val_t self) {
647 struct trace_t trace = {NULL, NULL, 298, LOCATE_abstract_collection___IndexedCollection___last};
648 val_t variable0;
649 trace.prev = tracehead; tracehead = &trace;
650 trace.file = LOCATE_abstract_collection;
651 variable0 = ((abstract_collection___Collection___is_empty_t)CALL( self,COLOR_abstract_collection___Collection___is_empty))( self) /*Collection::is_empty*/;
652 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable0)))) { 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);}
653 variable0 = ((abstract_collection___Collection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*Collection::length*/;
654 variable0 = TAG_Int(UNTAG_Int(variable0)-UNTAG_Int( TAG_Int(1)));
655 variable0 = ((abstract_collection___Map_____bra_t)CALL( self,COLOR_abstract_collection___Map_____bra))( self, variable0) /*Map::[]*/;
656 goto return_label32;
657 return_label32: while(false);
658 tracehead = trace.prev;
659 return variable0;
660 }
661 void abstract_collection___IndexedCollection___last__eq(val_t self, val_t param0) {
662 struct trace_t trace = {NULL, NULL, 306, LOCATE_abstract_collection___IndexedCollection___last__eq};
663 val_t variable0;
664 val_t variable1;
665 val_t variable2;
666 trace.prev = tracehead; tracehead = &trace;
667 trace.file = LOCATE_abstract_collection;
668 variable0 = param0;
669 variable2 = ((abstract_collection___Collection___length_t)CALL( self,COLOR_abstract_collection___Collection___length))( self) /*Collection::length*/;
670 variable1 = variable2;
671 variable2 = TAG_Bool(UNTAG_Int( variable1 /*l*/)>UNTAG_Int( TAG_Int(0)));
672 if (UNTAG_Bool(variable2)) { /*if*/
673 variable2 = TAG_Int(UNTAG_Int( variable1 /*l*/)-UNTAG_Int( TAG_Int(1)));
674 ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, variable2, variable0 /*item*/) /*Map::[]=*/;
675 } else { /*if*/
676 ((abstract_collection___Map_____braeq_t)CALL( self,COLOR_abstract_collection___Map_____braeq))( self, TAG_Int(0), variable0 /*item*/) /*Map::[]=*/;
677 }
678 tracehead = trace.prev;
679 return;
680 }
681 void abstract_collection___IndexedCollection___add(val_t self, val_t param0) {
682 struct trace_t trace = {NULL, NULL, 318, LOCATE_abstract_collection___IndexedCollection___add};
683 val_t variable0;
684 trace.prev = tracehead; tracehead = &trace;
685 trace.file = LOCATE_abstract_collection;
686 variable0 = param0;
687 ((abstract_collection___IndexedCollection___push_t)CALL( self,COLOR_abstract_collection___IndexedCollection___push))( self, variable0 /*e*/) /*IndexedCollection::push*/;
688 tracehead = trace.prev;
689 return;
690 }
691 void abstract_collection___IndexedCollection___push(val_t self, val_t param0) {
692 struct trace_t trace = {NULL, NULL, 321, LOCATE_abstract_collection___IndexedCollection___push};
693 trace.prev = tracehead; tracehead = &trace;
694 trace.file = LOCATE_abstract_collection;
695 fprintf(stderr, "Deferred method %s called");
696 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___add, LOCATE_abstract_collection, 321);
697 nit_exit(1);
698 tracehead = trace.prev;
699 return;
700 }
701 void abstract_collection___IndexedCollection___append(val_t self, val_t param0) {
702 struct trace_t trace = {NULL, NULL, 324, LOCATE_abstract_collection___IndexedCollection___append};
703 val_t variable0;
704 val_t variable1;
705 val_t variable2;
706 trace.prev = tracehead; tracehead = &trace;
707 trace.file = LOCATE_abstract_collection;
708 variable0 = param0;
709 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable0 /*coll*/ == NIT_NULL /*null*/) || (( variable0 /*coll*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable0 /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable0 /*coll*/,COLOR_kernel___Object_____eqeq))( variable0 /*coll*/, NIT_NULL /*null*/) /*Object::==*/)))))));
710 if (UNTAG_Bool(variable1)) { /*if*/
711 variable1 = ((abstract_collection___Collection___iterator_t)CALL( variable0 /*coll*/,COLOR_abstract_collection___Collection___iterator))( variable0 /*coll*/) /*Collection::iterator*/;
712 while (true) { /*for*/
713 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL(variable1,COLOR_abstract_collection___Iterator___is_ok))(variable1) /*Iterator::is_ok*/;
714 if (!UNTAG_Bool(variable2)) break; /*for*/
715 variable2 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
716 ((abstract_collection___IndexedCollection___push_t)CALL( self,COLOR_abstract_collection___IndexedCollection___push))( self, variable2 /*i*/) /*IndexedCollection::push*/;
717 continue_36: while(0);
718 ((abstract_collection___Iterator___next_t)CALL(variable1,COLOR_abstract_collection___Iterator___next))(variable1) /*Iterator::next*/;
719 }
720 break_36: while(0);
721 }
722 tracehead = trace.prev;
723 return;
724 }
725 val_t abstract_collection___IndexedCollection___pop(val_t self) {
726 struct trace_t trace = {NULL, NULL, 327, LOCATE_abstract_collection___IndexedCollection___pop};
727 trace.prev = tracehead; tracehead = &trace;
728 trace.file = LOCATE_abstract_collection;
729 fprintf(stderr, "Deferred method %s called");
730 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___append, LOCATE_abstract_collection, 327);
731 nit_exit(1);
732 tracehead = trace.prev;
733 return NIT_NULL;
734 }
735 void abstract_collection___IndexedCollection___unshift(val_t self, val_t param0) {
736 struct trace_t trace = {NULL, NULL, 330, LOCATE_abstract_collection___IndexedCollection___unshift};
737 trace.prev = tracehead; tracehead = &trace;
738 trace.file = LOCATE_abstract_collection;
739 fprintf(stderr, "Deferred method %s called");
740 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___append, LOCATE_abstract_collection, 330);
741 nit_exit(1);
742 tracehead = trace.prev;
743 return;
744 }
745 val_t abstract_collection___IndexedCollection___shift(val_t self) {
746 struct trace_t trace = {NULL, NULL, 333, LOCATE_abstract_collection___IndexedCollection___shift};
747 trace.prev = tracehead; tracehead = &trace;
748 trace.file = LOCATE_abstract_collection;
749 fprintf(stderr, "Deferred method %s called");
750 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___append, LOCATE_abstract_collection, 333);
751 nit_exit(1);
752 tracehead = trace.prev;
753 return NIT_NULL;
754 }
755 val_t abstract_collection___IndexedCollection___index_of(val_t self, val_t param0) {
756 struct trace_t trace = {NULL, NULL, 337, LOCATE_abstract_collection___IndexedCollection___index_of};
757 val_t variable0;
758 val_t variable1;
759 val_t variable2;
760 trace.prev = tracehead; tracehead = &trace;
761 trace.file = LOCATE_abstract_collection;
762 variable0 = param0;
763 variable2 = ((abstract_collection___IndexedCollection___iterator_t)CALL( self,COLOR_abstract_collection___Collection___iterator))( self) /*IndexedCollection::iterator*/;
764 variable1 = variable2;
765 while (true) { /*while*/
766 variable2 = ((abstract_collection___Iterator___is_ok_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___is_ok))( variable1 /*i*/) /*Iterator::is_ok*/;
767 if (!UNTAG_Bool(variable2)) break; /* while*/
768 variable2 = ((abstract_collection___Iterator___item_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___item))( variable1 /*i*/) /*Iterator::item*/;
769 variable2 = TAG_Bool((variable2 == variable0 /*item*/) || ((variable2 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable2, variable0 /*item*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable2,COLOR_kernel___Object_____eqeq))(variable2, variable0 /*item*/) /*Object::==*/)))));
770 if (UNTAG_Bool(variable2)) { /*if*/
771 variable2 = ((abstract_collection___IndexedIterator___index_t)CALL( variable1 /*i*/,COLOR_abstract_collection___IndexedIterator___index))( variable1 /*i*/) /*IndexedIterator::index*/;
772 variable1 = variable2;
773 goto return_label37;
774 }
775 ((abstract_collection___Iterator___next_t)CALL( variable1 /*i*/,COLOR_abstract_collection___Iterator___next))( variable1 /*i*/) /*Iterator::next*/;
776 continue_38: while(0);
777 }
778 break_38: while(0);
779 variable2 = TAG_Int(-UNTAG_Int( TAG_Int(1)));
780 variable1 = variable2;
781 goto return_label37;
782 return_label37: while(false);
783 tracehead = trace.prev;
784 return variable1;
785 }
786 val_t abstract_collection___IndexedCollection___iterator(val_t self) {
787 struct trace_t trace = {NULL, NULL, 349, LOCATE_abstract_collection___IndexedCollection___iterator};
788 trace.prev = tracehead; tracehead = &trace;
789 trace.file = LOCATE_abstract_collection;
790 fprintf(stderr, "Deferred method %s called");
791 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___index_of, LOCATE_abstract_collection, 349);
792 nit_exit(1);
793 tracehead = trace.prev;
794 return NIT_NULL;
795 }
796 val_t abstract_collection___IndexedIterator___index(val_t self) {
797 struct trace_t trace = {NULL, NULL, 355, LOCATE_abstract_collection___IndexedIterator___index};
798 trace.prev = tracehead; tracehead = &trace;
799 trace.file = LOCATE_abstract_collection;
800 fprintf(stderr, "Deferred method %s called");
801 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollection___index_of, LOCATE_abstract_collection, 355);
802 nit_exit(1);
803 tracehead = trace.prev;
804 return NIT_NULL;
805 }
806 val_t abstract_collection___IndexedIterator___key(val_t self) {
807 struct trace_t trace = {NULL, NULL, 358, LOCATE_abstract_collection___IndexedIterator___key};
808 val_t variable0;
809 trace.prev = tracehead; tracehead = &trace;
810 trace.file = LOCATE_abstract_collection;
811 variable0 = ((abstract_collection___IndexedIterator___index_t)CALL( self,COLOR_abstract_collection___IndexedIterator___index))( self) /*IndexedIterator::index*/;
812 goto return_label39;
813 return_label39: while(false);
814 tracehead = trace.prev;
815 return variable0;
816 }
817 val_t abstract_collection___CoupleMap___couple_at(val_t self, val_t param0) {
818 struct trace_t trace = {NULL, NULL, 365, LOCATE_abstract_collection___CoupleMap___couple_at};
819 trace.prev = tracehead; tracehead = &trace;
820 trace.file = LOCATE_abstract_collection;
821 fprintf(stderr, "Deferred method %s called");
822 fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedIterator___key, LOCATE_abstract_collection, 365);
823 nit_exit(1);
824 tracehead = trace.prev;
825 return NIT_NULL;
826 }
827 val_t abstract_collection___CoupleMap_____bra(val_t self, val_t param0) {
828 struct trace_t trace = {NULL, NULL, 369, LOCATE_abstract_collection___CoupleMap_____bra};
829 val_t variable0;
830 val_t variable1;
831 val_t variable2;
832 trace.prev = tracehead; tracehead = &trace;
833 trace.file = LOCATE_abstract_collection;
834 variable0 = param0;
835 variable2 = ((abstract_collection___CoupleMap___couple_at_t)CALL( self,COLOR_abstract_collection___CoupleMap___couple_at))( self, variable0 /*key*/) /*CoupleMap::couple_at*/;
836 variable1 = variable2;
837 variable2 = TAG_Bool(( variable1 /*c*/ == NIT_NULL /*null*/) || (( variable1 /*c*/ != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL( variable1 /*c*/,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable1 /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL( variable1 /*c*/,COLOR_kernel___Object_____eqeq))( variable1 /*c*/, NIT_NULL /*null*/) /*Object::==*/)))));
838 if (UNTAG_Bool(variable2)) { /*if*/
839 variable1 = NIT_NULL /*null*/;
840 goto return_label40;
841 } else { /*if*/
842 variable2 = ((abstract_collection___Couple___second_t)CALL( variable1 /*c*/,COLOR_abstract_collection___Couple___second))( variable1 /*c*/) /*Couple::second*/;
843 variable1 = variable2;
844 goto return_label40;
845 }
846 return_label40: while(false);
847 tracehead = trace.prev;
848 return variable1;
849 }
850 val_t abstract_collection___CoupleMap___has_key(val_t self, val_t param0) {
851 struct trace_t trace = {NULL, NULL, 379, LOCATE_abstract_collection___CoupleMap___has_key};
852 val_t variable0;
853 val_t variable1;
854 trace.prev = tracehead; tracehead = &trace;
855 trace.file = LOCATE_abstract_collection;
856 variable0 = param0;
857 variable1 = ((abstract_collection___CoupleMap___couple_at_t)CALL( self,COLOR_abstract_collection___CoupleMap___couple_at))( self, variable0 /*key*/) /*CoupleMap::couple_at*/;
858 variable1 = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))))));
859 goto return_label41;
860 return_label41: while(false);
861 tracehead = trace.prev;
862 return variable1;
863 }
864 val_t abstract_collection___CoupleMapIterator___item(val_t self) {
865 struct trace_t trace = {NULL, NULL, 387, LOCATE_abstract_collection___CoupleMapIterator___item};
866 val_t variable0;
867 trace.prev = tracehead; tracehead = &trace;
868 trace.file = LOCATE_abstract_collection;
869 variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
870 variable0 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
871 variable0 = ((abstract_collection___Couple___second_t)CALL(variable0,COLOR_abstract_collection___Couple___second))(variable0) /*Couple::second*/;
872 goto return_label42;
873 return_label42: while(false);
874 tracehead = trace.prev;
875 return variable0;
876 }
877 void abstract_collection___CoupleMapIterator___item__eq(val_t self, val_t param0) {
878 struct trace_t trace = {NULL, NULL, 389, LOCATE_abstract_collection___CoupleMapIterator___item__eq};
879 val_t variable0;
880 val_t variable1;
881 trace.prev = tracehead; tracehead = &trace;
882 trace.file = LOCATE_abstract_collection;
883 variable0 = param0;
884 variable1 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
885 variable1 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
886 ((abstract_collection___Couple___second__eq_t)CALL(variable1,COLOR_abstract_collection___Couple___second__eq))(variable1, variable0 /*e*/) /*Couple::second=*/;
887 tracehead = trace.prev;
888 return;
889 }
890 val_t abstract_collection___CoupleMapIterator___key(val_t self) {
891 struct trace_t trace = {NULL, NULL, 391, LOCATE_abstract_collection___CoupleMapIterator___key};
892 val_t variable0;
893 trace.prev = tracehead; tracehead = &trace;
894 trace.file = LOCATE_abstract_collection;
895 variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
896 variable0 = ((abstract_collection___Iterator___item_t)CALL(variable0,COLOR_abstract_collection___Iterator___item))(variable0) /*Iterator::item*/;
897 variable0 = ((abstract_collection___Couple___first_t)CALL(variable0,COLOR_abstract_collection___Couple___first))(variable0) /*Couple::first*/;
898 goto return_label44;
899 return_label44: while(false);
900 tracehead = trace.prev;
901 return variable0;
902 }
903 val_t abstract_collection___CoupleMapIterator___is_ok(val_t self) {
904 struct trace_t trace = {NULL, NULL, 393, LOCATE_abstract_collection___CoupleMapIterator___is_ok};
905 val_t variable0;
906 trace.prev = tracehead; tracehead = &trace;
907 trace.file = LOCATE_abstract_collection;
908 variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
909 variable0 = ((abstract_collection___Iterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*Iterator::is_ok*/;
910 goto return_label45;
911 return_label45: while(false);
912 tracehead = trace.prev;
913 return variable0;
914 }
915 void abstract_collection___CoupleMapIterator___next(val_t self) {
916 struct trace_t trace = {NULL, NULL, 395, LOCATE_abstract_collection___CoupleMapIterator___next};
917 val_t variable0;
918 val_t variable1;
919 trace.prev = tracehead; tracehead = &trace;
920 trace.file = LOCATE_abstract_collection;
921 variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
922 ((abstract_collection___Iterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*Iterator::next*/;
923 while (true) { /*while*/
924 variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
925 variable0 = ((abstract_collection___Iterator___is_ok_t)CALL(variable0,COLOR_abstract_collection___Iterator___is_ok))(variable0) /*Iterator::is_ok*/;
926 variable1 = variable0;
927 if (UNTAG_Bool(variable1)) { /* and */
928 variable1 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
929 variable1 = ((abstract_collection___Iterator___item_t)CALL(variable1,COLOR_abstract_collection___Iterator___item))(variable1) /*Iterator::item*/;
930 variable1 = TAG_Bool((variable1 == NIT_NULL /*null*/) || ((variable1 != NIT_NULL) && ((((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable1, NIT_NULL /*null*/)):(UNTAG_Bool(((kernel___Object_____eqeq_t)CALL(variable1,COLOR_kernel___Object_____eqeq))(variable1, NIT_NULL /*null*/) /*Object::==*/)))));
931 }
932 variable0 = variable1;
933 if (!UNTAG_Bool(variable0)) break; /* while*/
934 variable0 = ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/;
935 ((abstract_collection___Iterator___next_t)CALL(variable0,COLOR_abstract_collection___Iterator___next))(variable0) /*Iterator::next*/;
936 continue_47: while(0);
937 }
938 break_47: while(0);
939 tracehead = trace.prev;
940 return;
941 }
942 void abstract_collection___CoupleMapIterator___init(val_t self, val_t param0, int* init_table) {
943 struct trace_t trace = {NULL, NULL, 403, LOCATE_abstract_collection___CoupleMapIterator___init};
944 val_t variable0;
945 trace.prev = tracehead; tracehead = &trace;
946 trace.file = LOCATE_abstract_collection;
947 variable0 = param0;
948 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CoupleMapIterator].i]) return;
949 ATTR_abstract_collection___CoupleMapIterator____iter( self) /*CoupleMapIterator::_iter*/ = variable0 /*i*/;
950 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_CoupleMapIterator].i] = 1;
951 tracehead = trace.prev;
952 return;
953 }
954 val_t abstract_collection___Couple___first(val_t self) {
955 struct trace_t trace = {NULL, NULL, 411, LOCATE_abstract_collection___Couple___first};
956 trace.prev = tracehead; tracehead = &trace;
957 trace.file = LOCATE_abstract_collection;
958 tracehead = trace.prev;
959 return ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/;
960 }
961 void abstract_collection___Couple___first__eq(val_t self, val_t param0) {
962 struct trace_t trace = {NULL, NULL, 411, LOCATE_abstract_collection___Couple___first__eq};
963 trace.prev = tracehead; tracehead = &trace;
964 trace.file = LOCATE_abstract_collection;
965 ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/ = param0;
966 tracehead = trace.prev;
967 return;
968 }
969 val_t abstract_collection___Couple___second(val_t self) {
970 struct trace_t trace = {NULL, NULL, 414, LOCATE_abstract_collection___Couple___second};
971 trace.prev = tracehead; tracehead = &trace;
972 trace.file = LOCATE_abstract_collection;
973 tracehead = trace.prev;
974 return ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/;
975 }
976 void abstract_collection___Couple___second__eq(val_t self, val_t param0) {
977 struct trace_t trace = {NULL, NULL, 414, LOCATE_abstract_collection___Couple___second__eq};
978 trace.prev = tracehead; tracehead = &trace;
979 trace.file = LOCATE_abstract_collection;
980 ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/ = param0;
981 tracehead = trace.prev;
982 return;
983 }
984 void abstract_collection___Couple___init(val_t self, val_t param0, val_t param1, int* init_table) {
985 struct trace_t trace = {NULL, NULL, 417, LOCATE_abstract_collection___Couple___init};
986 val_t variable0;
987 val_t variable1;
988 trace.prev = tracehead; tracehead = &trace;
989 trace.file = LOCATE_abstract_collection;
990 variable0 = param0;
991 variable1 = param1;
992 if (init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Couple].i]) return;
993 ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/ = variable0 /*f*/;
994 ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/ = variable1 /*s*/;
995 init_table[VAL2OBJ( self)->vft[INIT_TABLE_POS_Couple].i] = 1;
996 tracehead = trace.prev;
997 return;
998 }