misc: update Changelog and NOTICE; remove BUGS and TODO
[nit.git] / c_src / abstract_collection._sep.c
1 /* This C file is generated by NIT to compile module abstract_collection. */
2 #include "abstract_collection._sep.h"
3 val_t abstract_collection___Collection___iterator(val_t self) {
4 struct trace_t trace = {NULL, NULL, 42, LOCATE_abstract_collection___Collection___iterator};
5 val_t *variable = NULL;
6 struct WBT_ **closurevariable = NULL;
7 trace.prev = tracehead; tracehead = &trace;
8 trace.file = LOCATE_abstract_collection;
9 fprintf(stderr, "Deferred method called");
10 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 42);
11 nit_exit(1);
12 tracehead = trace.prev;
13 return NIT_NULL;
14 }
15 val_t abstract_collection___Collection___is_empty(val_t self) {
16 struct trace_t trace = {NULL, NULL, 45, LOCATE_abstract_collection___Collection___is_empty};
17 val_t *variable = NULL;
18 struct WBT_ **closurevariable = NULL;
19 trace.prev = tracehead; tracehead = &trace;
20 trace.file = LOCATE_abstract_collection;
21 fprintf(stderr, "Deferred method called");
22 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 45);
23 nit_exit(1);
24 tracehead = trace.prev;
25 return NIT_NULL;
26 }
27 val_t abstract_collection___Collection___length(val_t self) {
28 struct trace_t trace = {NULL, NULL, 48, LOCATE_abstract_collection___Collection___length};
29 val_t *variable = NULL;
30 struct WBT_ **closurevariable = NULL;
31 trace.prev = tracehead; tracehead = &trace;
32 trace.file = LOCATE_abstract_collection;
33 fprintf(stderr, "Deferred method called");
34 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 48);
35 nit_exit(1);
36 tracehead = trace.prev;
37 return NIT_NULL;
38 }
39 val_t abstract_collection___Collection___has(val_t self, val_t param0) {
40 struct trace_t trace = {NULL, NULL, 51, LOCATE_abstract_collection___Collection___has};
41 val_t *variable = NULL;
42 struct WBT_ **closurevariable = NULL;
43 trace.prev = tracehead; tracehead = &trace;
44 trace.file = LOCATE_abstract_collection;
45 fprintf(stderr, "Deferred method called");
46 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 51);
47 nit_exit(1);
48 tracehead = trace.prev;
49 return NIT_NULL;
50 }
51 val_t abstract_collection___Collection___has_only(val_t self, val_t param0) {
52 struct trace_t trace = {NULL, NULL, 55, LOCATE_abstract_collection___Collection___has_only};
53 val_t *variable = NULL;
54 struct WBT_ **closurevariable = NULL;
55 trace.prev = tracehead; tracehead = &trace;
56 trace.file = LOCATE_abstract_collection;
57 fprintf(stderr, "Deferred method called");
58 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 55);
59 nit_exit(1);
60 tracehead = trace.prev;
61 return NIT_NULL;
62 }
63 val_t abstract_collection___Collection___count(val_t self, val_t param0) {
64 struct trace_t trace = {NULL, NULL, 60, LOCATE_abstract_collection___Collection___count};
65 val_t *variable = NULL;
66 struct WBT_ **closurevariable = NULL;
67 trace.prev = tracehead; tracehead = &trace;
68 trace.file = LOCATE_abstract_collection;
69 fprintf(stderr, "Deferred method called");
70 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 60);
71 nit_exit(1);
72 tracehead = trace.prev;
73 return NIT_NULL;
74 }
75 val_t abstract_collection___Collection___first(val_t self) {
76 struct trace_t trace = {NULL, NULL, 64, LOCATE_abstract_collection___Collection___first};
77 val_t *variable = NULL;
78 struct WBT_ **closurevariable = NULL;
79 trace.prev = tracehead; tracehead = &trace;
80 trace.file = LOCATE_abstract_collection;
81 fprintf(stderr, "Deferred method called");
82 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 64);
83 nit_exit(1);
84 tracehead = trace.prev;
85 return NIT_NULL;
86 }
87 val_t abstract_collection___NaiveCollection___is_empty(val_t self) {
88 struct trace_t trace = {NULL, NULL, 72, LOCATE_abstract_collection___NaiveCollection___is_empty};
89 val_t variable[3];
90 struct WBT_ **closurevariable = NULL;
91 trace.prev = tracehead; tracehead = &trace;
92 trace.file = LOCATE_abstract_collection;
93 /* Register variable[0]: Local variable */
94 variable[0] = self;
95 /* Register variable[1]: Method return value and escape marker */
96 /* Register variable[2]: Result */
97 variable[2] = CALL_abstract_collection___Collection___length(variable[0])(variable[0]) /*NaiveCollection::length*/;
98 /* Register variable[2]: Result */
99 variable[2] = TAG_Bool((variable[2])==( TAG_Int(0)));
100 variable[1] = variable[2];
101 goto return_label0;
102 return_label0: while(false);
103 tracehead = trace.prev;
104 return variable[1];
105 }
106 val_t abstract_collection___NaiveCollection___length(val_t self) {
107 struct trace_t trace = {NULL, NULL, 74, LOCATE_abstract_collection___NaiveCollection___length};
108 val_t variable[6];
109 struct WBT_ **closurevariable = NULL;
110 trace.prev = tracehead; tracehead = &trace;
111 trace.file = LOCATE_abstract_collection;
112 /* Register variable[0]: Local variable */
113 variable[0] = self;
114 /* Register variable[1]: Method return value and escape marker */
115 /* Register variable[2]: Local variable */
116 variable[2] = TAG_Int(0);
117 /* Register variable[3]: For iterator */
118 variable[3] = CALL_abstract_collection___Collection___iterator(variable[0])(variable[0]) /*Collection::iterator*/;
119 while (true) { /*for*/
120 /* Register variable[4]: For 'is_ok' result */
121 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
122 if (!UNTAG_Bool(variable[4])) break; /*for*/
123 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
124 /* Register variable[5]: Local variable */
125 variable[5] = variable[4];
126 variable[2] = TAG_Int(UNTAG_Int(variable[2])+UNTAG_Int( variable[2] /*nb*/)) /*nb*/;
127 continue_2: while(0);
128 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
129 }
130 break_2: while(0);
131 variable[1] = variable[2] /*nb*/;
132 goto return_label1;
133 return_label1: while(false);
134 tracehead = trace.prev;
135 return variable[1];
136 }
137 val_t abstract_collection___NaiveCollection___has(val_t self, val_t param0) {
138 struct trace_t trace = {NULL, NULL, 81, LOCATE_abstract_collection___NaiveCollection___has};
139 val_t variable[7];
140 struct WBT_ **closurevariable = NULL;
141 trace.prev = tracehead; tracehead = &trace;
142 trace.file = LOCATE_abstract_collection;
143 /* Register variable[0]: Local variable */
144 variable[0] = self;
145 /* Register variable[1]: Local variable */
146 variable[1] = param0;
147 /* Register variable[2]: Method return value and escape marker */
148 /* Register variable[3]: For iterator */
149 variable[3] = CALL_abstract_collection___Collection___iterator(variable[0])(variable[0]) /*Collection::iterator*/;
150 while (true) { /*for*/
151 /* Register variable[4]: For 'is_ok' result */
152 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
153 if (!UNTAG_Bool(variable[4])) break; /*for*/
154 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
155 /* Register variable[5]: Local variable */
156 variable[5] = variable[4];
157 /* Register variable[6]: Result */
158 variable[6] = TAG_Bool(( variable[5] /*i*/ == variable[1] /*item*/) || (( variable[5] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*i*/)( variable[5] /*i*/, variable[1] /*item*/) /*Object::==*/)))));
159 if (UNTAG_Bool(variable[6])) { /*if*/
160 variable[2] = TAG_Bool(true);
161 goto return_label3;
162 }
163 continue_4: while(0);
164 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
165 }
166 break_4: while(0);
167 variable[2] = TAG_Bool(false);
168 goto return_label3;
169 return_label3: while(false);
170 tracehead = trace.prev;
171 return variable[2];
172 }
173 val_t abstract_collection___NaiveCollection___has_only(val_t self, val_t param0) {
174 struct trace_t trace = {NULL, NULL, 87, LOCATE_abstract_collection___NaiveCollection___has_only};
175 val_t variable[7];
176 struct WBT_ **closurevariable = NULL;
177 trace.prev = tracehead; tracehead = &trace;
178 trace.file = LOCATE_abstract_collection;
179 /* Register variable[0]: Local variable */
180 variable[0] = self;
181 /* Register variable[1]: Local variable */
182 variable[1] = param0;
183 /* Register variable[2]: Method return value and escape marker */
184 /* Register variable[3]: For iterator */
185 variable[3] = CALL_abstract_collection___Collection___iterator(variable[0])(variable[0]) /*Collection::iterator*/;
186 while (true) { /*for*/
187 /* Register variable[4]: For 'is_ok' result */
188 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
189 if (!UNTAG_Bool(variable[4])) break; /*for*/
190 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
191 /* Register variable[5]: Local variable */
192 variable[5] = variable[4];
193 /* Register variable[6]: Result */
194 variable[6] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[5] /*i*/ == variable[1] /*item*/) || (( variable[5] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[5] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[5] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[5] /*i*/)( variable[5] /*i*/, variable[1] /*item*/) /*Object::==*/)))))));
195 if (UNTAG_Bool(variable[6])) { /*if*/
196 variable[2] = TAG_Bool(false);
197 goto return_label5;
198 }
199 continue_6: while(0);
200 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
201 }
202 break_6: while(0);
203 variable[2] = TAG_Bool(true);
204 goto return_label5;
205 return_label5: while(false);
206 tracehead = trace.prev;
207 return variable[2];
208 }
209 val_t abstract_collection___NaiveCollection___count(val_t self, val_t param0) {
210 struct trace_t trace = {NULL, NULL, 93, LOCATE_abstract_collection___NaiveCollection___count};
211 val_t variable[8];
212 struct WBT_ **closurevariable = NULL;
213 trace.prev = tracehead; tracehead = &trace;
214 trace.file = LOCATE_abstract_collection;
215 /* Register variable[0]: Local variable */
216 variable[0] = self;
217 /* Register variable[1]: Local variable */
218 variable[1] = param0;
219 /* Register variable[2]: Method return value and escape marker */
220 /* Register variable[3]: Local variable */
221 variable[3] = TAG_Int(0);
222 /* Register variable[4]: For iterator */
223 variable[4] = CALL_abstract_collection___Collection___iterator(variable[0])(variable[0]) /*Collection::iterator*/;
224 while (true) { /*for*/
225 /* Register variable[5]: For 'is_ok' result */
226 variable[5] = CALL_abstract_collection___Iterator___is_ok(variable[4])(variable[4]) /*Iterator::is_ok*/;
227 if (!UNTAG_Bool(variable[5])) break; /*for*/
228 variable[5] = CALL_abstract_collection___Iterator___item(variable[4])(variable[4]) /*Iterator::item*/ /* Ensure var: For item*/;
229 /* Register variable[6]: Local variable */
230 variable[6] = variable[5];
231 /* Register variable[7]: Result */
232 variable[7] = TAG_Bool(( variable[6] /*i*/ == variable[1] /*item*/) || (( variable[6] /*i*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[6] /*i*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[6] /*i*/, variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[6] /*i*/)( variable[6] /*i*/, variable[1] /*item*/) /*Object::==*/)))));
233 if (UNTAG_Bool(variable[7])) { /*if*/
234 variable[3] = TAG_Int(UNTAG_Int(variable[3])+UNTAG_Int( TAG_Int(1))) /*nb*/;
235 }
236 continue_8: while(0);
237 CALL_abstract_collection___Iterator___next(variable[4])(variable[4]) /*Iterator::next*/;
238 }
239 break_8: while(0);
240 variable[2] = variable[3] /*nb*/;
241 goto return_label7;
242 return_label7: while(false);
243 tracehead = trace.prev;
244 return variable[2];
245 }
246 val_t abstract_collection___NaiveCollection___first(val_t self) {
247 struct trace_t trace = {NULL, NULL, 100, LOCATE_abstract_collection___NaiveCollection___first};
248 val_t variable[3];
249 struct WBT_ **closurevariable = NULL;
250 trace.prev = tracehead; tracehead = &trace;
251 trace.file = LOCATE_abstract_collection;
252 /* Register variable[0]: Local variable */
253 variable[0] = self;
254 /* Register variable[1]: Method return value and escape marker */
255 /* Register variable[2]: Result */
256 variable[2] = CALL_abstract_collection___Collection___length(variable[0])(variable[0]) /*NaiveCollection::length*/;
257 /* Register variable[2]: Result */
258 variable[2] = TAG_Bool(UNTAG_Int(variable[2])>UNTAG_Int( TAG_Int(0)));
259 if (!UNTAG_Bool(variable[2])) { fprintf(stderr, "Assert%s failed", ""); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___NaiveCollection___first, LOCATE_abstract_collection, 102); nit_exit(1);}
260 /* Register variable[2]: Result */
261 variable[2] = CALL_abstract_collection___Collection___iterator(variable[0])(variable[0]) /*Collection::iterator*/;
262 /* Register variable[2]: Result */
263 variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
264 variable[1] = variable[2];
265 goto return_label9;
266 return_label9: while(false);
267 tracehead = trace.prev;
268 return variable[1];
269 }
270 val_t abstract_collection___Iterator___item(val_t self) {
271 struct trace_t trace = {NULL, NULL, 110, LOCATE_abstract_collection___Iterator___item};
272 val_t *variable = NULL;
273 struct WBT_ **closurevariable = NULL;
274 trace.prev = tracehead; tracehead = &trace;
275 trace.file = LOCATE_abstract_collection;
276 fprintf(stderr, "Deferred method called");
277 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 110);
278 nit_exit(1);
279 tracehead = trace.prev;
280 return NIT_NULL;
281 }
282 void abstract_collection___Iterator___next(val_t self) {
283 struct trace_t trace = {NULL, NULL, 114, LOCATE_abstract_collection___Iterator___next};
284 val_t *variable = NULL;
285 struct WBT_ **closurevariable = NULL;
286 trace.prev = tracehead; tracehead = &trace;
287 trace.file = LOCATE_abstract_collection;
288 fprintf(stderr, "Deferred method called");
289 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 114);
290 nit_exit(1);
291 tracehead = trace.prev;
292 return;
293 }
294 val_t abstract_collection___Iterator___is_ok(val_t self) {
295 struct trace_t trace = {NULL, NULL, 118, LOCATE_abstract_collection___Iterator___is_ok};
296 val_t *variable = NULL;
297 struct WBT_ **closurevariable = NULL;
298 trace.prev = tracehead; tracehead = &trace;
299 trace.file = LOCATE_abstract_collection;
300 fprintf(stderr, "Deferred method called");
301 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 118);
302 nit_exit(1);
303 tracehead = trace.prev;
304 return NIT_NULL;
305 }
306 val_t abstract_collection___Container___iterator(val_t self) {
307 struct trace_t trace = {NULL, NULL, 145, LOCATE_abstract_collection___Container___iterator};
308 val_t variable[3];
309 struct WBT_ **closurevariable = NULL;
310 trace.prev = tracehead; tracehead = &trace;
311 trace.file = LOCATE_abstract_collection;
312 /* Register variable[0]: Local variable */
313 variable[0] = self;
314 /* Register variable[1]: Method return value and escape marker */
315 /* Register variable[2]: Result */
316 variable[2] = NEW_ContainerIterator_abstract_collection___ContainerIterator___init(variable[0]) /*new ContainerIterator[E]*/;
317 variable[1] = variable[2];
318 goto return_label10;
319 return_label10: while(false);
320 tracehead = trace.prev;
321 return variable[1];
322 }
323 val_t abstract_collection___Container___is_empty(val_t self) {
324 struct trace_t trace = {NULL, NULL, 128, LOCATE_abstract_collection___Container___is_empty};
325 val_t variable[2];
326 struct WBT_ **closurevariable = NULL;
327 trace.prev = tracehead; tracehead = &trace;
328 trace.file = LOCATE_abstract_collection;
329 /* Register variable[0]: Local variable */
330 variable[0] = self;
331 /* Register variable[1]: Method return value and escape marker */
332 variable[1] = TAG_Bool(false);
333 goto return_label11;
334 return_label11: while(false);
335 tracehead = trace.prev;
336 return variable[1];
337 }
338 val_t abstract_collection___Container___length(val_t self) {
339 struct trace_t trace = {NULL, NULL, 130, LOCATE_abstract_collection___Container___length};
340 val_t variable[2];
341 struct WBT_ **closurevariable = NULL;
342 trace.prev = tracehead; tracehead = &trace;
343 trace.file = LOCATE_abstract_collection;
344 /* Register variable[0]: Local variable */
345 variable[0] = self;
346 /* Register variable[1]: Method return value and escape marker */
347 variable[1] = TAG_Int(1);
348 goto return_label12;
349 return_label12: while(false);
350 tracehead = trace.prev;
351 return variable[1];
352 }
353 val_t abstract_collection___Container___has(val_t self, val_t param0) {
354 struct trace_t trace = {NULL, NULL, 132, LOCATE_abstract_collection___Container___has};
355 val_t variable[4];
356 struct WBT_ **closurevariable = NULL;
357 trace.prev = tracehead; tracehead = &trace;
358 trace.file = LOCATE_abstract_collection;
359 /* Register variable[0]: Local variable */
360 variable[0] = self;
361 /* Register variable[1]: Local variable */
362 variable[1] = param0;
363 /* Register variable[2]: Method return value and escape marker */
364 /* Register variable[3]: Result */
365 variable[3] = ATTR_abstract_collection___Container____item(variable[0]) /*Container::_item*/;
366 /* Register variable[3]: Result */
367 variable[3] = TAG_Bool((variable[3] == variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[1] /*an_item*/) /*Object::==*/)))));
368 variable[2] = variable[3];
369 goto return_label13;
370 return_label13: while(false);
371 tracehead = trace.prev;
372 return variable[2];
373 }
374 val_t abstract_collection___Container___has_only(val_t self, val_t param0) {
375 struct trace_t trace = {NULL, NULL, 134, LOCATE_abstract_collection___Container___has_only};
376 val_t variable[4];
377 struct WBT_ **closurevariable = NULL;
378 trace.prev = tracehead; tracehead = &trace;
379 trace.file = LOCATE_abstract_collection;
380 /* Register variable[0]: Local variable */
381 variable[0] = self;
382 /* Register variable[1]: Local variable */
383 variable[1] = param0;
384 /* Register variable[2]: Method return value and escape marker */
385 /* Register variable[3]: Result */
386 variable[3] = ATTR_abstract_collection___Container____item(variable[0]) /*Container::_item*/;
387 /* Register variable[3]: Result */
388 variable[3] = TAG_Bool((variable[3] == variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[1] /*an_item*/) /*Object::==*/)))));
389 variable[2] = variable[3];
390 goto return_label14;
391 return_label14: while(false);
392 tracehead = trace.prev;
393 return variable[2];
394 }
395 val_t abstract_collection___Container___count(val_t self, val_t param0) {
396 struct trace_t trace = {NULL, NULL, 136, LOCATE_abstract_collection___Container___count};
397 val_t variable[4];
398 struct WBT_ **closurevariable = NULL;
399 trace.prev = tracehead; tracehead = &trace;
400 trace.file = LOCATE_abstract_collection;
401 /* Register variable[0]: Local variable */
402 variable[0] = self;
403 /* Register variable[1]: Local variable */
404 variable[1] = param0;
405 /* Register variable[2]: Method return value and escape marker */
406 /* Register variable[3]: Result */
407 variable[3] = ATTR_abstract_collection___Container____item(variable[0]) /*Container::_item*/;
408 /* Register variable[3]: Result */
409 variable[3] = TAG_Bool((variable[3] == variable[1] /*an_item*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], variable[1] /*an_item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], variable[1] /*an_item*/) /*Object::==*/)))));
410 if (UNTAG_Bool(variable[3])) { /*if*/
411 variable[2] = TAG_Int(1);
412 goto return_label15;
413 } else { /*if*/
414 variable[2] = TAG_Int(0);
415 goto return_label15;
416 }
417 return_label15: while(false);
418 tracehead = trace.prev;
419 return variable[2];
420 }
421 val_t abstract_collection___Container___first(val_t self) {
422 struct trace_t trace = {NULL, NULL, 126, LOCATE_abstract_collection___Container___first};
423 val_t variable[3];
424 struct WBT_ **closurevariable = NULL;
425 trace.prev = tracehead; tracehead = &trace;
426 trace.file = LOCATE_abstract_collection;
427 /* Register variable[0]: Local variable */
428 variable[0] = self;
429 /* Register variable[1]: Method return value and escape marker */
430 /* Register variable[2]: Result */
431 variable[2] = ATTR_abstract_collection___Container____item(variable[0]) /*Container::_item*/;
432 variable[1] = variable[2];
433 goto return_label16;
434 return_label16: while(false);
435 tracehead = trace.prev;
436 return variable[1];
437 }
438 void abstract_collection___Container___init(val_t self, val_t param0, int* init_table) {
439 struct trace_t trace = {NULL, NULL, 147, LOCATE_abstract_collection___Container___init};
440 val_t variable[3];
441 struct WBT_ **closurevariable = NULL;
442 trace.prev = tracehead; tracehead = &trace;
443 trace.file = LOCATE_abstract_collection;
444 /* Register variable[0]: Local variable */
445 variable[0] = self;
446 /* Register variable[1]: Local variable */
447 variable[1] = param0;
448 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Container].i]) return;
449 /* Register variable[2]: Method return value and escape marker */
450 ATTR_abstract_collection___Container____item(variable[0]) /*Container::_item*/ = variable[1] /*e*/;
451 return_label17: while(false);
452 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Container].i] = 1;
453 tracehead = trace.prev;
454 return;
455 }
456 val_t abstract_collection___Container___item(val_t self) {
457 struct trace_t trace = {NULL, NULL, 150, LOCATE_abstract_collection___Container___item};
458 val_t *variable = NULL;
459 struct WBT_ **closurevariable = NULL;
460 trace.prev = tracehead; tracehead = &trace;
461 trace.file = LOCATE_abstract_collection;
462 tracehead = trace.prev;
463 return ATTR_abstract_collection___Container____item( self) /*Container::_item*/;
464 }
465 void abstract_collection___Container___item__eq(val_t self, val_t param0) {
466 struct trace_t trace = {NULL, NULL, 150, LOCATE_abstract_collection___Container___item__eq};
467 val_t *variable = NULL;
468 struct WBT_ **closurevariable = NULL;
469 trace.prev = tracehead; tracehead = &trace;
470 trace.file = LOCATE_abstract_collection;
471 ATTR_abstract_collection___Container____item( self) /*Container::_item*/ = param0;
472 tracehead = trace.prev;
473 return;
474 }
475 val_t abstract_collection___ContainerIterator___item(val_t self) {
476 struct trace_t trace = {NULL, NULL, 157, LOCATE_abstract_collection___ContainerIterator___item};
477 val_t variable[3];
478 struct WBT_ **closurevariable = NULL;
479 trace.prev = tracehead; tracehead = &trace;
480 trace.file = LOCATE_abstract_collection;
481 /* Register variable[0]: Local variable */
482 variable[0] = self;
483 /* Register variable[1]: Method return value and escape marker */
484 /* Register variable[2]: Result */
485 variable[2] = ATTR_abstract_collection___ContainerIterator____container(variable[0]) /*ContainerIterator::_container*/;
486 /* Register variable[2]: Result */
487 variable[2] = CALL_abstract_collection___Container___item(variable[2])(variable[2]) /*Container::item*/;
488 variable[1] = variable[2];
489 goto return_label18;
490 return_label18: while(false);
491 tracehead = trace.prev;
492 return variable[1];
493 }
494 void abstract_collection___ContainerIterator___next(val_t self) {
495 struct trace_t trace = {NULL, NULL, 159, LOCATE_abstract_collection___ContainerIterator___next};
496 val_t variable[2];
497 struct WBT_ **closurevariable = NULL;
498 trace.prev = tracehead; tracehead = &trace;
499 trace.file = LOCATE_abstract_collection;
500 /* Register variable[0]: Local variable */
501 variable[0] = self;
502 /* Register variable[1]: Method return value and escape marker */
503 ATTR_abstract_collection___ContainerIterator____is_ok(variable[0]) /*ContainerIterator::_is_ok*/ = TAG_Bool(false);
504 return_label19: while(false);
505 tracehead = trace.prev;
506 return;
507 }
508 val_t abstract_collection___ContainerIterator___is_ok(val_t self) {
509 struct trace_t trace = {NULL, NULL, 163, LOCATE_abstract_collection___ContainerIterator___is_ok};
510 val_t *variable = NULL;
511 struct WBT_ **closurevariable = NULL;
512 trace.prev = tracehead; tracehead = &trace;
513 trace.file = LOCATE_abstract_collection;
514 tracehead = trace.prev;
515 return ATTR_abstract_collection___ContainerIterator____is_ok( self) /*ContainerIterator::_is_ok*/;
516 }
517 void abstract_collection___ContainerIterator___init(val_t self, val_t param0, int* init_table) {
518 struct trace_t trace = {NULL, NULL, 161, LOCATE_abstract_collection___ContainerIterator___init};
519 val_t variable[3];
520 struct WBT_ **closurevariable = NULL;
521 trace.prev = tracehead; tracehead = &trace;
522 trace.file = LOCATE_abstract_collection;
523 /* Register variable[0]: Local variable */
524 variable[0] = self;
525 /* Register variable[1]: Local variable */
526 variable[1] = param0;
527 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ContainerIterator].i]) return;
528 /* Register variable[2]: Method return value and escape marker */
529 ATTR_abstract_collection___ContainerIterator____container(variable[0]) /*ContainerIterator::_container*/ = variable[1] /*c*/;
530 return_label20: while(false);
531 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_ContainerIterator].i] = 1;
532 tracehead = trace.prev;
533 return;
534 }
535 void abstract_collection___RemovableCollection___clear(val_t self) {
536 struct trace_t trace = {NULL, NULL, 171, LOCATE_abstract_collection___RemovableCollection___clear};
537 val_t *variable = NULL;
538 struct WBT_ **closurevariable = NULL;
539 trace.prev = tracehead; tracehead = &trace;
540 trace.file = LOCATE_abstract_collection;
541 fprintf(stderr, "Deferred method called");
542 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 171);
543 nit_exit(1);
544 tracehead = trace.prev;
545 return;
546 }
547 void abstract_collection___RemovableCollection___remove(val_t self, val_t param0) {
548 struct trace_t trace = {NULL, NULL, 174, LOCATE_abstract_collection___RemovableCollection___remove};
549 val_t *variable = NULL;
550 struct WBT_ **closurevariable = NULL;
551 trace.prev = tracehead; tracehead = &trace;
552 trace.file = LOCATE_abstract_collection;
553 fprintf(stderr, "Deferred method called");
554 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 174);
555 nit_exit(1);
556 tracehead = trace.prev;
557 return;
558 }
559 void abstract_collection___RemovableCollection___remove_all(val_t self, val_t param0) {
560 struct trace_t trace = {NULL, NULL, 177, LOCATE_abstract_collection___RemovableCollection___remove_all};
561 val_t variable[4];
562 struct WBT_ **closurevariable = NULL;
563 trace.prev = tracehead; tracehead = &trace;
564 trace.file = LOCATE_abstract_collection;
565 /* Register variable[0]: Local variable */
566 variable[0] = self;
567 /* Register variable[1]: Local variable */
568 variable[1] = param0;
569 /* Register variable[2]: Method return value and escape marker */
570 while (true) { /*while*/
571 /* Register variable[3]: Result */
572 variable[3] = CALL_abstract_collection___Collection___has(variable[0])(variable[0], variable[1] /*item*/) /*Collection::has*/;
573 if (!UNTAG_Bool(variable[3])) break; /* while*/
574 CALL_abstract_collection___RemovableCollection___remove(variable[0])(variable[0], variable[1] /*item*/) /*RemovableCollection::remove*/;
575 continue_22: while(0);
576 }
577 break_22: while(0);
578 return_label21: while(false);
579 tracehead = trace.prev;
580 return;
581 }
582 void abstract_collection___SimpleCollection___add(val_t self, val_t param0) {
583 struct trace_t trace = {NULL, NULL, 184, LOCATE_abstract_collection___SimpleCollection___add};
584 val_t *variable = NULL;
585 struct WBT_ **closurevariable = NULL;
586 trace.prev = tracehead; tracehead = &trace;
587 trace.file = LOCATE_abstract_collection;
588 fprintf(stderr, "Deferred method called");
589 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 184);
590 nit_exit(1);
591 tracehead = trace.prev;
592 return;
593 }
594 void abstract_collection___SimpleCollection___add_all(val_t self, val_t param0) {
595 struct trace_t trace = {NULL, NULL, 188, LOCATE_abstract_collection___SimpleCollection___add_all};
596 val_t variable[6];
597 struct WBT_ **closurevariable = NULL;
598 trace.prev = tracehead; tracehead = &trace;
599 trace.file = LOCATE_abstract_collection;
600 /* Register variable[0]: Local variable */
601 variable[0] = self;
602 /* Register variable[1]: Local variable */
603 variable[1] = param0;
604 /* Register variable[2]: Method return value and escape marker */
605 /* Register variable[3]: Result */
606 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ == NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*coll*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*coll*/)( variable[1] /*coll*/, NIT_NULL /*null*/) /*Object::==*/)))))));
607 if (UNTAG_Bool(variable[3])) { /*if*/
608 /* Register variable[3]: For iterator */
609 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*coll*/)( variable[1] /*coll*/) /*Collection::iterator*/;
610 while (true) { /*for*/
611 /* Register variable[4]: For 'is_ok' result */
612 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
613 if (!UNTAG_Bool(variable[4])) break; /*for*/
614 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
615 /* Register variable[5]: Local variable */
616 variable[5] = variable[4];
617 CALL_abstract_collection___SimpleCollection___add(variable[0])(variable[0], variable[5] /*i*/) /*SimpleCollection::add*/;
618 continue_24: while(0);
619 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
620 }
621 break_24: while(0);
622 }
623 return_label23: while(false);
624 tracehead = trace.prev;
625 return;
626 }
627 val_t abstract_collection___Set___has_only(val_t self, val_t param0) {
628 struct trace_t trace = {NULL, NULL, 204, LOCATE_abstract_collection___Set___has_only};
629 val_t variable[5];
630 struct WBT_ **closurevariable = NULL;
631 trace.prev = tracehead; tracehead = &trace;
632 trace.file = LOCATE_abstract_collection;
633 /* Register variable[0]: Local variable */
634 variable[0] = self;
635 /* Register variable[1]: Local variable */
636 variable[1] = param0;
637 /* Register variable[2]: Method return value and escape marker */
638 /* Register variable[3]: Local variable */
639 /* Register variable[4]: Result */
640 variable[4] = CALL_abstract_collection___Collection___length(variable[0])(variable[0]) /*Collection::length*/;
641 variable[3] = variable[4];
642 /* Register variable[4]: Result */
643 variable[4] = TAG_Bool(( variable[3] /*l*/)==( TAG_Int(1)));
644 if (UNTAG_Bool(variable[4])) { /*if*/
645 /* Register variable[4]: Result */
646 variable[4] = CALL_abstract_collection___Collection___has(variable[0])(variable[0], variable[1] /*item*/) /*Collection::has*/;
647 variable[2] = variable[4];
648 goto return_label25;
649 } else { /*if*/
650 /* Register variable[4]: Result */
651 variable[4] = TAG_Bool(( variable[3] /*l*/)==( TAG_Int(0)));
652 if (UNTAG_Bool(variable[4])) { /*if*/
653 variable[2] = TAG_Bool(true);
654 goto return_label25;
655 } else { /*if*/
656 variable[2] = TAG_Bool(false);
657 goto return_label25;
658 }
659 }
660 return_label25: while(false);
661 tracehead = trace.prev;
662 return variable[2];
663 }
664 val_t abstract_collection___Set___count(val_t self, val_t param0) {
665 struct trace_t trace = {NULL, NULL, 216, LOCATE_abstract_collection___Set___count};
666 val_t variable[4];
667 struct WBT_ **closurevariable = NULL;
668 trace.prev = tracehead; tracehead = &trace;
669 trace.file = LOCATE_abstract_collection;
670 /* Register variable[0]: Local variable */
671 variable[0] = self;
672 /* Register variable[1]: Local variable */
673 variable[1] = param0;
674 /* Register variable[2]: Method return value and escape marker */
675 /* Register variable[3]: Result */
676 variable[3] = CALL_abstract_collection___Collection___has(variable[0])(variable[0], variable[1] /*item*/) /*Collection::has*/;
677 if (UNTAG_Bool(variable[3])) { /*if*/
678 variable[2] = TAG_Int(1);
679 goto return_label26;
680 } else { /*if*/
681 variable[2] = TAG_Int(0);
682 goto return_label26;
683 }
684 return_label26: while(false);
685 tracehead = trace.prev;
686 return variable[2];
687 }
688 void abstract_collection___Set___remove_all(val_t self, val_t param0) {
689 struct trace_t trace = {NULL, NULL, 226, LOCATE_abstract_collection___Set___remove_all};
690 val_t variable[3];
691 struct WBT_ **closurevariable = NULL;
692 trace.prev = tracehead; tracehead = &trace;
693 trace.file = LOCATE_abstract_collection;
694 /* Register variable[0]: Local variable */
695 variable[0] = self;
696 /* Register variable[1]: Local variable */
697 variable[1] = param0;
698 /* Register variable[2]: Method return value and escape marker */
699 CALL_abstract_collection___RemovableCollection___remove(variable[0])(variable[0], variable[1] /*item*/) /*RemovableCollection::remove*/;
700 return_label27: while(false);
701 tracehead = trace.prev;
702 return;
703 }
704 val_t abstract_collection___MapRead___iterator(val_t self) {
705 struct trace_t trace = {NULL, NULL, 238, LOCATE_abstract_collection___MapRead___iterator};
706 val_t *variable = NULL;
707 struct WBT_ **closurevariable = NULL;
708 trace.prev = tracehead; tracehead = &trace;
709 trace.file = LOCATE_abstract_collection;
710 fprintf(stderr, "Deferred method called");
711 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 238);
712 nit_exit(1);
713 tracehead = trace.prev;
714 return NIT_NULL;
715 }
716 val_t abstract_collection___MapRead_____bra(val_t self, val_t param0) {
717 struct trace_t trace = {NULL, NULL, 232, LOCATE_abstract_collection___MapRead_____bra};
718 val_t *variable = NULL;
719 struct WBT_ **closurevariable = NULL;
720 trace.prev = tracehead; tracehead = &trace;
721 trace.file = LOCATE_abstract_collection;
722 fprintf(stderr, "Deferred method called");
723 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 232);
724 nit_exit(1);
725 tracehead = trace.prev;
726 return NIT_NULL;
727 }
728 val_t abstract_collection___MapRead___has_key(val_t self, val_t param0) {
729 struct trace_t trace = {NULL, NULL, 235, LOCATE_abstract_collection___MapRead___has_key};
730 val_t *variable = NULL;
731 struct WBT_ **closurevariable = NULL;
732 trace.prev = tracehead; tracehead = &trace;
733 trace.file = LOCATE_abstract_collection;
734 fprintf(stderr, "Deferred method called");
735 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 235);
736 nit_exit(1);
737 tracehead = trace.prev;
738 return NIT_NULL;
739 }
740 void abstract_collection___Map_____braeq(val_t self, val_t param0, val_t param1) {
741 struct trace_t trace = {NULL, NULL, 256, LOCATE_abstract_collection___Map_____braeq};
742 val_t *variable = NULL;
743 struct WBT_ **closurevariable = NULL;
744 trace.prev = tracehead; tracehead = &trace;
745 trace.file = LOCATE_abstract_collection;
746 fprintf(stderr, "Deferred method called");
747 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 256);
748 nit_exit(1);
749 tracehead = trace.prev;
750 return;
751 }
752 void abstract_collection___Map___remove_at(val_t self, val_t param0) {
753 struct trace_t trace = {NULL, NULL, 259, LOCATE_abstract_collection___Map___remove_at};
754 val_t *variable = NULL;
755 struct WBT_ **closurevariable = NULL;
756 trace.prev = tracehead; tracehead = &trace;
757 trace.file = LOCATE_abstract_collection;
758 fprintf(stderr, "Deferred method called");
759 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 259);
760 nit_exit(1);
761 tracehead = trace.prev;
762 return;
763 }
764 void abstract_collection___Map___recover_with(val_t self, val_t param0) {
765 struct trace_t trace = {NULL, NULL, 262, LOCATE_abstract_collection___Map___recover_with};
766 val_t variable[6];
767 struct WBT_ **closurevariable = NULL;
768 trace.prev = tracehead; tracehead = &trace;
769 trace.file = LOCATE_abstract_collection;
770 /* Register variable[0]: Local variable */
771 variable[0] = self;
772 /* Register variable[1]: Local variable */
773 variable[1] = param0;
774 /* Register variable[2]: Method return value and escape marker */
775 /* Register variable[3]: Local variable */
776 /* Register variable[4]: Result */
777 variable[4] = CALL_abstract_collection___Collection___iterator( variable[1] /*map*/)( variable[1] /*map*/) /*MapRead::iterator*/;
778 variable[3] = variable[4];
779 while (true) { /*while*/
780 /* Register variable[4]: Result */
781 variable[4] = CALL_abstract_collection___Iterator___is_ok( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::is_ok*/;
782 if (!UNTAG_Bool(variable[4])) break; /* while*/
783 /* Register variable[4]: Result */
784 variable[4] = CALL_abstract_collection___MapIterator___key( variable[3] /*i*/)( variable[3] /*i*/) /*MapIterator::key*/;
785 /* Register variable[5]: Result */
786 variable[5] = CALL_abstract_collection___Iterator___item( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::item*/;
787 CALL_abstract_collection___Map_____braeq(variable[0])(variable[0], variable[4], variable[5]) /*Map::[]=*/;
788 CALL_abstract_collection___Iterator___next( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::next*/;
789 continue_29: while(0);
790 }
791 break_29: while(0);
792 return_label28: while(false);
793 tracehead = trace.prev;
794 return;
795 }
796 val_t abstract_collection___MapIterator___key(val_t self) {
797 struct trace_t trace = {NULL, NULL, 277, LOCATE_abstract_collection___MapIterator___key};
798 val_t *variable = NULL;
799 struct WBT_ **closurevariable = NULL;
800 trace.prev = tracehead; tracehead = &trace;
801 trace.file = LOCATE_abstract_collection;
802 fprintf(stderr, "Deferred method called");
803 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 277);
804 nit_exit(1);
805 tracehead = trace.prev;
806 return NIT_NULL;
807 }
808 val_t abstract_collection___IndexedCollectionRead___iterator(val_t self) {
809 struct trace_t trace = {NULL, NULL, 316, LOCATE_abstract_collection___IndexedCollectionRead___iterator};
810 val_t *variable = NULL;
811 struct WBT_ **closurevariable = NULL;
812 trace.prev = tracehead; tracehead = &trace;
813 trace.file = LOCATE_abstract_collection;
814 fprintf(stderr, "Deferred method called");
815 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 316);
816 nit_exit(1);
817 tracehead = trace.prev;
818 return NIT_NULL;
819 }
820 val_t abstract_collection___IndexedCollectionRead___first(val_t self) {
821 struct trace_t trace = {NULL, NULL, 288, LOCATE_abstract_collection___IndexedCollectionRead___first};
822 val_t variable[3];
823 struct WBT_ **closurevariable = NULL;
824 trace.prev = tracehead; tracehead = &trace;
825 trace.file = LOCATE_abstract_collection;
826 /* Register variable[0]: Local variable */
827 variable[0] = self;
828 /* Register variable[1]: Method return value and escape marker */
829 /* Register variable[2]: Result */
830 variable[2] = CALL_abstract_collection___Collection___is_empty(variable[0])(variable[0]) /*Collection::is_empty*/;
831 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", " 'not_empty' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollectionRead___first, LOCATE_abstract_collection, 292); nit_exit(1);}
832 /* Register variable[2]: Result */
833 variable[2] = CALL_abstract_collection___MapRead_____bra(variable[0])(variable[0], TAG_Int(0)) /*MapRead::[]*/;
834 variable[1] = variable[2];
835 goto return_label30;
836 return_label30: while(false);
837 tracehead = trace.prev;
838 return variable[1];
839 }
840 val_t abstract_collection___IndexedCollectionRead___last(val_t self) {
841 struct trace_t trace = {NULL, NULL, 296, LOCATE_abstract_collection___IndexedCollectionRead___last};
842 val_t variable[3];
843 struct WBT_ **closurevariable = NULL;
844 trace.prev = tracehead; tracehead = &trace;
845 trace.file = LOCATE_abstract_collection;
846 /* Register variable[0]: Local variable */
847 variable[0] = self;
848 /* Register variable[1]: Method return value and escape marker */
849 /* Register variable[2]: Result */
850 variable[2] = CALL_abstract_collection___Collection___is_empty(variable[0])(variable[0]) /*Collection::is_empty*/;
851 if (!UNTAG_Bool( TAG_Bool(!UNTAG_Bool(variable[2])))) { fprintf(stderr, "Assert%s failed", " 'not_empty' "); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___IndexedCollectionRead___last, LOCATE_abstract_collection, 300); nit_exit(1);}
852 /* Register variable[2]: Result */
853 variable[2] = CALL_abstract_collection___Collection___length(variable[0])(variable[0]) /*Collection::length*/;
854 /* Register variable[2]: Result */
855 variable[2] = TAG_Int(UNTAG_Int(variable[2])-UNTAG_Int( TAG_Int(1)));
856 /* Register variable[2]: Result */
857 variable[2] = CALL_abstract_collection___MapRead_____bra(variable[0])(variable[0], variable[2]) /*MapRead::[]*/;
858 variable[1] = variable[2];
859 goto return_label31;
860 return_label31: while(false);
861 tracehead = trace.prev;
862 return variable[1];
863 }
864 val_t abstract_collection___IndexedCollectionRead___index_of(val_t self, val_t param0) {
865 struct trace_t trace = {NULL, NULL, 304, LOCATE_abstract_collection___IndexedCollectionRead___index_of};
866 val_t variable[5];
867 struct WBT_ **closurevariable = NULL;
868 trace.prev = tracehead; tracehead = &trace;
869 trace.file = LOCATE_abstract_collection;
870 /* Register variable[0]: Local variable */
871 variable[0] = self;
872 /* Register variable[1]: Local variable */
873 variable[1] = param0;
874 /* Register variable[2]: Method return value and escape marker */
875 /* Register variable[3]: Local variable */
876 /* Register variable[4]: Result */
877 variable[4] = CALL_abstract_collection___Collection___iterator(variable[0])(variable[0]) /*IndexedCollectionRead::iterator*/;
878 variable[3] = variable[4];
879 while (true) { /*while*/
880 /* Register variable[4]: Result */
881 variable[4] = CALL_abstract_collection___Iterator___is_ok( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::is_ok*/;
882 if (!UNTAG_Bool(variable[4])) break; /* while*/
883 /* Register variable[4]: Result */
884 variable[4] = CALL_abstract_collection___Iterator___item( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::item*/;
885 /* Register variable[4]: Result */
886 variable[4] = TAG_Bool((variable[4] == variable[1] /*item*/) || ((variable[4] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[4])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[4], variable[1] /*item*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[4])(variable[4], variable[1] /*item*/) /*Object::==*/)))));
887 if (UNTAG_Bool(variable[4])) { /*if*/
888 /* Register variable[4]: Result */
889 variable[4] = CALL_abstract_collection___IndexedIterator___index( variable[3] /*i*/)( variable[3] /*i*/) /*IndexedIterator::index*/;
890 variable[2] = variable[4];
891 goto return_label32;
892 }
893 CALL_abstract_collection___Iterator___next( variable[3] /*i*/)( variable[3] /*i*/) /*Iterator::next*/;
894 continue_33: while(0);
895 }
896 break_33: while(0);
897 /* Register variable[4]: Result */
898 variable[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
899 variable[2] = variable[4];
900 goto return_label32;
901 return_label32: while(false);
902 tracehead = trace.prev;
903 return variable[2];
904 }
905 void abstract_collection___IndexedCollection___add(val_t self, val_t param0) {
906 struct trace_t trace = {NULL, NULL, 342, LOCATE_abstract_collection___IndexedCollection___add};
907 val_t variable[3];
908 struct WBT_ **closurevariable = NULL;
909 trace.prev = tracehead; tracehead = &trace;
910 trace.file = LOCATE_abstract_collection;
911 /* Register variable[0]: Local variable */
912 variable[0] = self;
913 /* Register variable[1]: Local variable */
914 variable[1] = param0;
915 /* Register variable[2]: Method return value and escape marker */
916 CALL_abstract_collection___IndexedCollection___push(variable[0])(variable[0], variable[1] /*e*/) /*IndexedCollection::push*/;
917 return_label34: while(false);
918 tracehead = trace.prev;
919 return;
920 }
921 void abstract_collection___IndexedCollection___first__eq(val_t self, val_t param0) {
922 struct trace_t trace = {NULL, NULL, 325, LOCATE_abstract_collection___IndexedCollection___first__eq};
923 val_t variable[3];
924 struct WBT_ **closurevariable = NULL;
925 trace.prev = tracehead; tracehead = &trace;
926 trace.file = LOCATE_abstract_collection;
927 /* Register variable[0]: Local variable */
928 variable[0] = self;
929 /* Register variable[1]: Local variable */
930 variable[1] = param0;
931 /* Register variable[2]: Method return value and escape marker */
932 CALL_abstract_collection___Map_____braeq(variable[0])(variable[0], TAG_Int(0), variable[1] /*item*/) /*Map::[]=*/;
933 return_label35: while(false);
934 tracehead = trace.prev;
935 return;
936 }
937 void abstract_collection___IndexedCollection___last__eq(val_t self, val_t param0) {
938 struct trace_t trace = {NULL, NULL, 330, LOCATE_abstract_collection___IndexedCollection___last__eq};
939 val_t variable[5];
940 struct WBT_ **closurevariable = NULL;
941 trace.prev = tracehead; tracehead = &trace;
942 trace.file = LOCATE_abstract_collection;
943 /* Register variable[0]: Local variable */
944 variable[0] = self;
945 /* Register variable[1]: Local variable */
946 variable[1] = param0;
947 /* Register variable[2]: Method return value and escape marker */
948 /* Register variable[3]: Local variable */
949 /* Register variable[4]: Result */
950 variable[4] = CALL_abstract_collection___Collection___length(variable[0])(variable[0]) /*Collection::length*/;
951 variable[3] = variable[4];
952 /* Register variable[4]: Result */
953 variable[4] = TAG_Bool(UNTAG_Int( variable[3] /*l*/)>UNTAG_Int( TAG_Int(0)));
954 if (UNTAG_Bool(variable[4])) { /*if*/
955 /* Register variable[4]: Result */
956 variable[4] = TAG_Int(UNTAG_Int( variable[3] /*l*/)-UNTAG_Int( TAG_Int(1)));
957 CALL_abstract_collection___Map_____braeq(variable[0])(variable[0], variable[4], variable[1] /*item*/) /*Map::[]=*/;
958 } else { /*if*/
959 CALL_abstract_collection___Map_____braeq(variable[0])(variable[0], TAG_Int(0), variable[1] /*item*/) /*Map::[]=*/;
960 }
961 return_label36: while(false);
962 tracehead = trace.prev;
963 return;
964 }
965 void abstract_collection___IndexedCollection___push(val_t self, val_t param0) {
966 struct trace_t trace = {NULL, NULL, 345, LOCATE_abstract_collection___IndexedCollection___push};
967 val_t *variable = NULL;
968 struct WBT_ **closurevariable = NULL;
969 trace.prev = tracehead; tracehead = &trace;
970 trace.file = LOCATE_abstract_collection;
971 fprintf(stderr, "Deferred method called");
972 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 345);
973 nit_exit(1);
974 tracehead = trace.prev;
975 return;
976 }
977 void abstract_collection___IndexedCollection___append(val_t self, val_t param0) {
978 struct trace_t trace = {NULL, NULL, 348, LOCATE_abstract_collection___IndexedCollection___append};
979 val_t variable[6];
980 struct WBT_ **closurevariable = NULL;
981 trace.prev = tracehead; tracehead = &trace;
982 trace.file = LOCATE_abstract_collection;
983 /* Register variable[0]: Local variable */
984 variable[0] = self;
985 /* Register variable[1]: Local variable */
986 variable[1] = param0;
987 /* Register variable[2]: Method return value and escape marker */
988 /* Register variable[3]: Result */
989 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool(( variable[1] /*coll*/ == NIT_NULL /*null*/) || (( variable[1] /*coll*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[1] /*coll*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[1] /*coll*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[1] /*coll*/)( variable[1] /*coll*/, NIT_NULL /*null*/) /*Object::==*/)))))));
990 if (UNTAG_Bool(variable[3])) { /*if*/
991 /* Register variable[3]: For iterator */
992 variable[3] = CALL_abstract_collection___Collection___iterator( variable[1] /*coll*/)( variable[1] /*coll*/) /*Collection::iterator*/;
993 while (true) { /*for*/
994 /* Register variable[4]: For 'is_ok' result */
995 variable[4] = CALL_abstract_collection___Iterator___is_ok(variable[3])(variable[3]) /*Iterator::is_ok*/;
996 if (!UNTAG_Bool(variable[4])) break; /*for*/
997 variable[4] = CALL_abstract_collection___Iterator___item(variable[3])(variable[3]) /*Iterator::item*/ /* Ensure var: For item*/;
998 /* Register variable[5]: Local variable */
999 variable[5] = variable[4];
1000 CALL_abstract_collection___IndexedCollection___push(variable[0])(variable[0], variable[5] /*i*/) /*IndexedCollection::push*/;
1001 continue_38: while(0);
1002 CALL_abstract_collection___Iterator___next(variable[3])(variable[3]) /*Iterator::next*/;
1003 }
1004 break_38: while(0);
1005 }
1006 return_label37: while(false);
1007 tracehead = trace.prev;
1008 return;
1009 }
1010 val_t abstract_collection___IndexedCollection___pop(val_t self) {
1011 struct trace_t trace = {NULL, NULL, 351, LOCATE_abstract_collection___IndexedCollection___pop};
1012 val_t *variable = NULL;
1013 struct WBT_ **closurevariable = NULL;
1014 trace.prev = tracehead; tracehead = &trace;
1015 trace.file = LOCATE_abstract_collection;
1016 fprintf(stderr, "Deferred method called");
1017 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 351);
1018 nit_exit(1);
1019 tracehead = trace.prev;
1020 return NIT_NULL;
1021 }
1022 void abstract_collection___IndexedCollection___unshift(val_t self, val_t param0) {
1023 struct trace_t trace = {NULL, NULL, 354, LOCATE_abstract_collection___IndexedCollection___unshift};
1024 val_t *variable = NULL;
1025 struct WBT_ **closurevariable = NULL;
1026 trace.prev = tracehead; tracehead = &trace;
1027 trace.file = LOCATE_abstract_collection;
1028 fprintf(stderr, "Deferred method called");
1029 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 354);
1030 nit_exit(1);
1031 tracehead = trace.prev;
1032 return;
1033 }
1034 val_t abstract_collection___IndexedCollection___shift(val_t self) {
1035 struct trace_t trace = {NULL, NULL, 357, LOCATE_abstract_collection___IndexedCollection___shift};
1036 val_t *variable = NULL;
1037 struct WBT_ **closurevariable = NULL;
1038 trace.prev = tracehead; tracehead = &trace;
1039 trace.file = LOCATE_abstract_collection;
1040 fprintf(stderr, "Deferred method called");
1041 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 357);
1042 nit_exit(1);
1043 tracehead = trace.prev;
1044 return NIT_NULL;
1045 }
1046 val_t abstract_collection___IndexedIterator___key(val_t self) {
1047 struct trace_t trace = {NULL, NULL, 369, LOCATE_abstract_collection___IndexedIterator___key};
1048 val_t variable[3];
1049 struct WBT_ **closurevariable = NULL;
1050 trace.prev = tracehead; tracehead = &trace;
1051 trace.file = LOCATE_abstract_collection;
1052 /* Register variable[0]: Local variable */
1053 variable[0] = self;
1054 /* Register variable[1]: Method return value and escape marker */
1055 /* Register variable[2]: Result */
1056 variable[2] = CALL_abstract_collection___IndexedIterator___index(variable[0])(variable[0]) /*IndexedIterator::index*/;
1057 variable[1] = variable[2];
1058 goto return_label39;
1059 return_label39: while(false);
1060 tracehead = trace.prev;
1061 return variable[1];
1062 }
1063 val_t abstract_collection___IndexedIterator___index(val_t self) {
1064 struct trace_t trace = {NULL, NULL, 366, LOCATE_abstract_collection___IndexedIterator___index};
1065 val_t *variable = NULL;
1066 struct WBT_ **closurevariable = NULL;
1067 trace.prev = tracehead; tracehead = &trace;
1068 trace.file = LOCATE_abstract_collection;
1069 fprintf(stderr, "Deferred method called");
1070 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 366);
1071 nit_exit(1);
1072 tracehead = trace.prev;
1073 return NIT_NULL;
1074 }
1075 val_t abstract_collection___CoupleMap_____bra(val_t self, val_t param0) {
1076 struct trace_t trace = {NULL, NULL, 380, LOCATE_abstract_collection___CoupleMap_____bra};
1077 val_t variable[5];
1078 struct WBT_ **closurevariable = NULL;
1079 trace.prev = tracehead; tracehead = &trace;
1080 trace.file = LOCATE_abstract_collection;
1081 /* Register variable[0]: Local variable */
1082 variable[0] = self;
1083 /* Register variable[1]: Local variable */
1084 variable[1] = param0;
1085 /* Register variable[2]: Method return value and escape marker */
1086 /* Register variable[3]: Local variable */
1087 /* Register variable[4]: Result */
1088 variable[4] = CALL_abstract_collection___CoupleMap___couple_at(variable[0])(variable[0], variable[1] /*key*/) /*CoupleMap::couple_at*/;
1089 variable[3] = variable[4];
1090 /* Register variable[4]: Result */
1091 variable[4] = TAG_Bool(( variable[3] /*c*/ == NIT_NULL /*null*/) || (( variable[3] /*c*/ != NIT_NULL) && ((CALL_kernel___Object_____eqeq( variable[3] /*c*/)==kernel___Object_____eqeq)?(IS_EQUAL_NN( variable[3] /*c*/, NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq( variable[3] /*c*/)( variable[3] /*c*/, NIT_NULL /*null*/) /*Object::==*/)))));
1092 if (UNTAG_Bool(variable[4])) { /*if*/
1093 fprintf(stderr, "Aborted"); fprintf(stderr, " in %s (%s:%d)\n", LOCATE_abstract_collection___CoupleMap_____bra, LOCATE_abstract_collection, 384); nit_exit(1);
1094 } else { /*if*/
1095 /* Register variable[4]: Result */
1096 variable[4] = CALL_abstract_collection___Couple___second( variable[3] /*c*/)( variable[3] /*c*/) /*Couple::second*/;
1097 variable[2] = variable[4];
1098 goto return_label40;
1099 }
1100 return_label40: while(false);
1101 tracehead = trace.prev;
1102 return variable[2];
1103 }
1104 val_t abstract_collection___CoupleMap___has_key(val_t self, val_t param0) {
1105 struct trace_t trace = {NULL, NULL, 390, LOCATE_abstract_collection___CoupleMap___has_key};
1106 val_t variable[4];
1107 struct WBT_ **closurevariable = NULL;
1108 trace.prev = tracehead; tracehead = &trace;
1109 trace.file = LOCATE_abstract_collection;
1110 /* Register variable[0]: Local variable */
1111 variable[0] = self;
1112 /* Register variable[1]: Local variable */
1113 variable[1] = param0;
1114 /* Register variable[2]: Method return value and escape marker */
1115 /* Register variable[3]: Result */
1116 variable[3] = CALL_abstract_collection___CoupleMap___couple_at(variable[0])(variable[0], variable[1] /*key*/) /*CoupleMap::couple_at*/;
1117 /* Register variable[3]: Result */
1118 variable[3] = TAG_Bool(!UNTAG_Bool(TAG_Bool((variable[3] == NIT_NULL /*null*/) || ((variable[3] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[3])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[3], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[3])(variable[3], NIT_NULL /*null*/) /*Object::==*/)))))));
1119 variable[2] = variable[3];
1120 goto return_label41;
1121 return_label41: while(false);
1122 tracehead = trace.prev;
1123 return variable[2];
1124 }
1125 val_t abstract_collection___CoupleMap___couple_at(val_t self, val_t param0) {
1126 struct trace_t trace = {NULL, NULL, 376, LOCATE_abstract_collection___CoupleMap___couple_at};
1127 val_t *variable = NULL;
1128 struct WBT_ **closurevariable = NULL;
1129 trace.prev = tracehead; tracehead = &trace;
1130 trace.file = LOCATE_abstract_collection;
1131 fprintf(stderr, "Deferred method called");
1132 fprintf(stderr, " (%s:%d)\n", LOCATE_abstract_collection, 376);
1133 nit_exit(1);
1134 tracehead = trace.prev;
1135 return NIT_NULL;
1136 }
1137 val_t abstract_collection___CoupleMapIterator___item(val_t self) {
1138 struct trace_t trace = {NULL, NULL, 398, LOCATE_abstract_collection___CoupleMapIterator___item};
1139 val_t variable[3];
1140 struct WBT_ **closurevariable = NULL;
1141 trace.prev = tracehead; tracehead = &trace;
1142 trace.file = LOCATE_abstract_collection;
1143 /* Register variable[0]: Local variable */
1144 variable[0] = self;
1145 /* Register variable[1]: Method return value and escape marker */
1146 /* Register variable[2]: Result */
1147 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/;
1148 /* Register variable[2]: Result */
1149 variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
1150 /* Register variable[2]: Result */
1151 variable[2] = CALL_abstract_collection___Couple___second(variable[2])(variable[2]) /*Couple::second*/;
1152 variable[1] = variable[2];
1153 goto return_label42;
1154 return_label42: while(false);
1155 tracehead = trace.prev;
1156 return variable[1];
1157 }
1158 void abstract_collection___CoupleMapIterator___next(val_t self) {
1159 struct trace_t trace = {NULL, NULL, 406, LOCATE_abstract_collection___CoupleMapIterator___next};
1160 val_t variable[3];
1161 struct WBT_ **closurevariable = NULL;
1162 trace.prev = tracehead; tracehead = &trace;
1163 trace.file = LOCATE_abstract_collection;
1164 /* Register variable[0]: Local variable */
1165 variable[0] = self;
1166 /* Register variable[1]: Method return value and escape marker */
1167 /* Register variable[2]: Result */
1168 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/;
1169 CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*Iterator::next*/;
1170 while (true) { /*while*/
1171 /* Register variable[2]: Result */
1172 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/;
1173 /* Register variable[2]: Result */
1174 variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*Iterator::is_ok*/;
1175 /* Ensure var variable[2]: Left 'and' operand*/
1176 if (UNTAG_Bool(variable[2])) { /* and */
1177 /* Register variable[2]: Result */
1178 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/;
1179 /* Register variable[2]: Result */
1180 variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
1181 /* Register variable[2]: Result */
1182 variable[2] = TAG_Bool((variable[2] == NIT_NULL /*null*/) || ((variable[2] != NIT_NULL) && ((CALL_kernel___Object_____eqeq(variable[2])==kernel___Object_____eqeq)?(IS_EQUAL_NN(variable[2], NIT_NULL /*null*/)):(UNTAG_Bool(CALL_kernel___Object_____eqeq(variable[2])(variable[2], NIT_NULL /*null*/) /*Object::==*/)))));
1183 }
1184 /* Register variable[2]: Result */
1185 if (!UNTAG_Bool(variable[2])) break; /* while*/
1186 /* Register variable[2]: Result */
1187 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/;
1188 CALL_abstract_collection___Iterator___next(variable[2])(variable[2]) /*Iterator::next*/;
1189 continue_44: while(0);
1190 }
1191 break_44: while(0);
1192 return_label43: while(false);
1193 tracehead = trace.prev;
1194 return;
1195 }
1196 val_t abstract_collection___CoupleMapIterator___is_ok(val_t self) {
1197 struct trace_t trace = {NULL, NULL, 404, LOCATE_abstract_collection___CoupleMapIterator___is_ok};
1198 val_t variable[3];
1199 struct WBT_ **closurevariable = NULL;
1200 trace.prev = tracehead; tracehead = &trace;
1201 trace.file = LOCATE_abstract_collection;
1202 /* Register variable[0]: Local variable */
1203 variable[0] = self;
1204 /* Register variable[1]: Method return value and escape marker */
1205 /* Register variable[2]: Result */
1206 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/;
1207 /* Register variable[2]: Result */
1208 variable[2] = CALL_abstract_collection___Iterator___is_ok(variable[2])(variable[2]) /*Iterator::is_ok*/;
1209 variable[1] = variable[2];
1210 goto return_label45;
1211 return_label45: while(false);
1212 tracehead = trace.prev;
1213 return variable[1];
1214 }
1215 val_t abstract_collection___CoupleMapIterator___key(val_t self) {
1216 struct trace_t trace = {NULL, NULL, 402, LOCATE_abstract_collection___CoupleMapIterator___key};
1217 val_t variable[3];
1218 struct WBT_ **closurevariable = NULL;
1219 trace.prev = tracehead; tracehead = &trace;
1220 trace.file = LOCATE_abstract_collection;
1221 /* Register variable[0]: Local variable */
1222 variable[0] = self;
1223 /* Register variable[1]: Method return value and escape marker */
1224 /* Register variable[2]: Result */
1225 variable[2] = ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/;
1226 /* Register variable[2]: Result */
1227 variable[2] = CALL_abstract_collection___Iterator___item(variable[2])(variable[2]) /*Iterator::item*/;
1228 /* Register variable[2]: Result */
1229 variable[2] = CALL_abstract_collection___Couple___first(variable[2])(variable[2]) /*Couple::first*/;
1230 variable[1] = variable[2];
1231 goto return_label46;
1232 return_label46: while(false);
1233 tracehead = trace.prev;
1234 return variable[1];
1235 }
1236 void abstract_collection___CoupleMapIterator___init(val_t self, val_t param0, int* init_table) {
1237 struct trace_t trace = {NULL, NULL, 414, LOCATE_abstract_collection___CoupleMapIterator___init};
1238 val_t variable[3];
1239 struct WBT_ **closurevariable = NULL;
1240 trace.prev = tracehead; tracehead = &trace;
1241 trace.file = LOCATE_abstract_collection;
1242 /* Register variable[0]: Local variable */
1243 variable[0] = self;
1244 /* Register variable[1]: Local variable */
1245 variable[1] = param0;
1246 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CoupleMapIterator].i]) return;
1247 /* Register variable[2]: Method return value and escape marker */
1248 ATTR_abstract_collection___CoupleMapIterator____iter(variable[0]) /*CoupleMapIterator::_iter*/ = variable[1] /*i*/;
1249 return_label47: while(false);
1250 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_CoupleMapIterator].i] = 1;
1251 tracehead = trace.prev;
1252 return;
1253 }
1254 val_t abstract_collection___Couple___first(val_t self) {
1255 struct trace_t trace = {NULL, NULL, 422, LOCATE_abstract_collection___Couple___first};
1256 val_t *variable = NULL;
1257 struct WBT_ **closurevariable = NULL;
1258 trace.prev = tracehead; tracehead = &trace;
1259 trace.file = LOCATE_abstract_collection;
1260 tracehead = trace.prev;
1261 return ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/;
1262 }
1263 void abstract_collection___Couple___first__eq(val_t self, val_t param0) {
1264 struct trace_t trace = {NULL, NULL, 422, LOCATE_abstract_collection___Couple___first__eq};
1265 val_t *variable = NULL;
1266 struct WBT_ **closurevariable = NULL;
1267 trace.prev = tracehead; tracehead = &trace;
1268 trace.file = LOCATE_abstract_collection;
1269 ATTR_abstract_collection___Couple____first( self) /*Couple::_first*/ = param0;
1270 tracehead = trace.prev;
1271 return;
1272 }
1273 val_t abstract_collection___Couple___second(val_t self) {
1274 struct trace_t trace = {NULL, NULL, 425, LOCATE_abstract_collection___Couple___second};
1275 val_t *variable = NULL;
1276 struct WBT_ **closurevariable = NULL;
1277 trace.prev = tracehead; tracehead = &trace;
1278 trace.file = LOCATE_abstract_collection;
1279 tracehead = trace.prev;
1280 return ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/;
1281 }
1282 void abstract_collection___Couple___second__eq(val_t self, val_t param0) {
1283 struct trace_t trace = {NULL, NULL, 425, LOCATE_abstract_collection___Couple___second__eq};
1284 val_t *variable = NULL;
1285 struct WBT_ **closurevariable = NULL;
1286 trace.prev = tracehead; tracehead = &trace;
1287 trace.file = LOCATE_abstract_collection;
1288 ATTR_abstract_collection___Couple____second( self) /*Couple::_second*/ = param0;
1289 tracehead = trace.prev;
1290 return;
1291 }
1292 void abstract_collection___Couple___init(val_t self, val_t param0, val_t param1, int* init_table) {
1293 struct trace_t trace = {NULL, NULL, 428, LOCATE_abstract_collection___Couple___init};
1294 val_t variable[4];
1295 struct WBT_ **closurevariable = NULL;
1296 trace.prev = tracehead; tracehead = &trace;
1297 trace.file = LOCATE_abstract_collection;
1298 /* Register variable[0]: Local variable */
1299 variable[0] = self;
1300 /* Register variable[1]: Local variable */
1301 variable[1] = param0;
1302 /* Register variable[2]: Local variable */
1303 variable[2] = param1;
1304 if (init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Couple].i]) return;
1305 /* Register variable[3]: Method return value and escape marker */
1306 ATTR_abstract_collection___Couple____first(variable[0]) /*Couple::_first*/ = variable[1] /*f*/;
1307 ATTR_abstract_collection___Couple____second(variable[0]) /*Couple::_second*/ = variable[2] /*s*/;
1308 return_label48: while(false);
1309 init_table[VAL2OBJ(variable[0])->vft[INIT_TABLE_POS_Couple].i] = 1;
1310 tracehead = trace.prev;
1311 return;
1312 }