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