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);
12 tracehead
= trace
.prev
;
15 val_t
abstract_collection___Collection___is_empty(val_t self
) {
16 struct trace_t trace
= {NULL
, NULL
, 45, LOCATE_abstract_collection___Collection___is_empty
};
17 val_t
*variable
= NULL
;
18 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);
24 tracehead
= trace
.prev
;
27 val_t
abstract_collection___Collection___length(val_t self
) {
28 struct trace_t trace
= {NULL
, NULL
, 48, LOCATE_abstract_collection___Collection___length
};
29 val_t
*variable
= NULL
;
30 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);
36 tracehead
= trace
.prev
;
39 val_t
abstract_collection___Collection___has(val_t self
, val_t param0
) {
40 struct trace_t trace
= {NULL
, NULL
, 51, LOCATE_abstract_collection___Collection___has
};
41 val_t
*variable
= NULL
;
42 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);
48 tracehead
= trace
.prev
;
51 val_t
abstract_collection___Collection___has_only(val_t self
, val_t param0
) {
52 struct trace_t trace
= {NULL
, NULL
, 55, LOCATE_abstract_collection___Collection___has_only
};
53 val_t
*variable
= NULL
;
54 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);
60 tracehead
= trace
.prev
;
63 val_t
abstract_collection___Collection___count(val_t self
, val_t param0
) {
64 struct trace_t trace
= {NULL
, NULL
, 60, LOCATE_abstract_collection___Collection___count
};
65 val_t
*variable
= NULL
;
66 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);
72 tracehead
= trace
.prev
;
75 val_t
abstract_collection___Collection___first(val_t self
) {
76 struct trace_t trace
= {NULL
, NULL
, 64, LOCATE_abstract_collection___Collection___first
};
77 val_t
*variable
= NULL
;
78 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);
84 tracehead
= trace
.prev
;
87 val_t
abstract_collection___NaiveCollection___is_empty(val_t self
) {
88 struct trace_t trace
= {NULL
, NULL
, 72, LOCATE_abstract_collection___NaiveCollection___is_empty
};
90 struct WBT_
**closurevariable
= NULL
;
91 trace
.prev
= tracehead
; tracehead
= &trace
;
92 trace
.file
= LOCATE_abstract_collection
;
93 /* Register variable[0]: Local variable */
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];
102 return_label0
: while(false);
103 tracehead
= trace
.prev
;
106 val_t
abstract_collection___NaiveCollection___length(val_t self
) {
107 struct trace_t trace
= {NULL
, NULL
, 74, LOCATE_abstract_collection___NaiveCollection___length
};
109 struct WBT_
**closurevariable
= NULL
;
110 trace
.prev
= tracehead
; tracehead
= &trace
;
111 trace
.file
= LOCATE_abstract_collection
;
112 /* Register variable[0]: Local variable */
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*/;
131 variable
[1] = variable
[2] /*nb*/;
133 return_label1
: while(false);
134 tracehead
= trace
.prev
;
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
};
140 struct WBT_
**closurevariable
= NULL
;
141 trace
.prev
= tracehead
; tracehead
= &trace
;
142 trace
.file
= LOCATE_abstract_collection
;
143 /* Register variable[0]: Local variable */
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);
163 continue_4
: while(0);
164 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
167 variable
[2] = TAG_Bool(false);
169 return_label3
: while(false);
170 tracehead
= trace
.prev
;
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
};
176 struct WBT_
**closurevariable
= NULL
;
177 trace
.prev
= tracehead
; tracehead
= &trace
;
178 trace
.file
= LOCATE_abstract_collection
;
179 /* Register variable[0]: Local variable */
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);
199 continue_6
: while(0);
200 CALL_abstract_collection___Iterator___next(variable
[3])(variable
[3]) /*Iterator::next*/;
203 variable
[2] = TAG_Bool(true);
205 return_label5
: while(false);
206 tracehead
= trace
.prev
;
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
};
212 struct WBT_
**closurevariable
= NULL
;
213 trace
.prev
= tracehead
; tracehead
= &trace
;
214 trace
.file
= LOCATE_abstract_collection
;
215 /* Register variable[0]: Local variable */
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*/;
236 continue_8
: while(0);
237 CALL_abstract_collection___Iterator___next(variable
[4])(variable
[4]) /*Iterator::next*/;
240 variable
[2] = variable
[3] /*nb*/;
242 return_label7
: while(false);
243 tracehead
= trace
.prev
;
246 val_t
abstract_collection___NaiveCollection___first(val_t self
) {
247 struct trace_t trace
= {NULL
, NULL
, 100, LOCATE_abstract_collection___NaiveCollection___first
};
249 struct WBT_
**closurevariable
= NULL
;
250 trace
.prev
= tracehead
; tracehead
= &trace
;
251 trace
.file
= LOCATE_abstract_collection
;
252 /* Register variable[0]: Local variable */
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];
266 return_label9
: while(false);
267 tracehead
= trace
.prev
;
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);
279 tracehead
= trace
.prev
;
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);
291 tracehead
= trace
.prev
;
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);
303 tracehead
= trace
.prev
;
306 val_t
abstract_collection___Container___iterator(val_t self
) {
307 struct trace_t trace
= {NULL
, NULL
, 145, LOCATE_abstract_collection___Container___iterator
};
309 struct WBT_
**closurevariable
= NULL
;
310 trace
.prev
= tracehead
; tracehead
= &trace
;
311 trace
.file
= LOCATE_abstract_collection
;
312 /* Register variable[0]: Local variable */
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];
319 return_label10
: while(false);
320 tracehead
= trace
.prev
;
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
};
326 struct WBT_
**closurevariable
= NULL
;
327 trace
.prev
= tracehead
; tracehead
= &trace
;
328 trace
.file
= LOCATE_abstract_collection
;
329 /* Register variable[0]: Local variable */
331 /* Register variable[1]: Method return value and escape marker */
332 variable
[1] = TAG_Bool(false);
334 return_label11
: while(false);
335 tracehead
= trace
.prev
;
338 val_t
abstract_collection___Container___length(val_t self
) {
339 struct trace_t trace
= {NULL
, NULL
, 130, LOCATE_abstract_collection___Container___length
};
341 struct WBT_
**closurevariable
= NULL
;
342 trace
.prev
= tracehead
; tracehead
= &trace
;
343 trace
.file
= LOCATE_abstract_collection
;
344 /* Register variable[0]: Local variable */
346 /* Register variable[1]: Method return value and escape marker */
347 variable
[1] = TAG_Int(1);
349 return_label12
: while(false);
350 tracehead
= trace
.prev
;
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
};
356 struct WBT_
**closurevariable
= NULL
;
357 trace
.prev
= tracehead
; tracehead
= &trace
;
358 trace
.file
= LOCATE_abstract_collection
;
359 /* Register variable[0]: Local variable */
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];
370 return_label13
: while(false);
371 tracehead
= trace
.prev
;
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
};
377 struct WBT_
**closurevariable
= NULL
;
378 trace
.prev
= tracehead
; tracehead
= &trace
;
379 trace
.file
= LOCATE_abstract_collection
;
380 /* Register variable[0]: Local variable */
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];
391 return_label14
: while(false);
392 tracehead
= trace
.prev
;
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
};
398 struct WBT_
**closurevariable
= NULL
;
399 trace
.prev
= tracehead
; tracehead
= &trace
;
400 trace
.file
= LOCATE_abstract_collection
;
401 /* Register variable[0]: Local variable */
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);
414 variable
[2] = TAG_Int(0);
417 return_label15
: while(false);
418 tracehead
= trace
.prev
;
421 val_t
abstract_collection___Container___first(val_t self
) {
422 struct trace_t trace
= {NULL
, NULL
, 126, LOCATE_abstract_collection___Container___first
};
424 struct WBT_
**closurevariable
= NULL
;
425 trace
.prev
= tracehead
; tracehead
= &trace
;
426 trace
.file
= LOCATE_abstract_collection
;
427 /* Register variable[0]: Local variable */
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];
434 return_label16
: while(false);
435 tracehead
= trace
.prev
;
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
};
441 struct WBT_
**closurevariable
= NULL
;
442 trace
.prev
= tracehead
; tracehead
= &trace
;
443 trace
.file
= LOCATE_abstract_collection
;
444 /* Register variable[0]: Local variable */
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
;
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*/;
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
;
475 val_t
abstract_collection___ContainerIterator___item(val_t self
) {
476 struct trace_t trace
= {NULL
, NULL
, 157, LOCATE_abstract_collection___ContainerIterator___item
};
478 struct WBT_
**closurevariable
= NULL
;
479 trace
.prev
= tracehead
; tracehead
= &trace
;
480 trace
.file
= LOCATE_abstract_collection
;
481 /* Register variable[0]: Local variable */
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];
490 return_label18
: while(false);
491 tracehead
= trace
.prev
;
494 void abstract_collection___ContainerIterator___next(val_t self
) {
495 struct trace_t trace
= {NULL
, NULL
, 159, LOCATE_abstract_collection___ContainerIterator___next
};
497 struct WBT_
**closurevariable
= NULL
;
498 trace
.prev
= tracehead
; tracehead
= &trace
;
499 trace
.file
= LOCATE_abstract_collection
;
500 /* Register variable[0]: Local variable */
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
;
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*/;
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
};
520 struct WBT_
**closurevariable
= NULL
;
521 trace
.prev
= tracehead
; tracehead
= &trace
;
522 trace
.file
= LOCATE_abstract_collection
;
523 /* Register variable[0]: Local variable */
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
;
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);
544 tracehead
= trace
.prev
;
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);
556 tracehead
= trace
.prev
;
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
};
562 struct WBT_
**closurevariable
= NULL
;
563 trace
.prev
= tracehead
; tracehead
= &trace
;
564 trace
.file
= LOCATE_abstract_collection
;
565 /* Register variable[0]: Local variable */
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);
578 return_label21
: while(false);
579 tracehead
= trace
.prev
;
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);
591 tracehead
= trace
.prev
;
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
};
597 struct WBT_
**closurevariable
= NULL
;
598 trace
.prev
= tracehead
; tracehead
= &trace
;
599 trace
.file
= LOCATE_abstract_collection
;
600 /* Register variable[0]: Local variable */
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*/;
623 return_label23
: while(false);
624 tracehead
= trace
.prev
;
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
};
630 struct WBT_
**closurevariable
= NULL
;
631 trace
.prev
= tracehead
; tracehead
= &trace
;
632 trace
.file
= LOCATE_abstract_collection
;
633 /* Register variable[0]: Local variable */
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];
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);
656 variable
[2] = TAG_Bool(false);
660 return_label25
: while(false);
661 tracehead
= trace
.prev
;
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
};
667 struct WBT_
**closurevariable
= NULL
;
668 trace
.prev
= tracehead
; tracehead
= &trace
;
669 trace
.file
= LOCATE_abstract_collection
;
670 /* Register variable[0]: Local variable */
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);
681 variable
[2] = TAG_Int(0);
684 return_label26
: while(false);
685 tracehead
= trace
.prev
;
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
};
691 struct WBT_
**closurevariable
= NULL
;
692 trace
.prev
= tracehead
; tracehead
= &trace
;
693 trace
.file
= LOCATE_abstract_collection
;
694 /* Register variable[0]: Local variable */
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
;
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);
713 tracehead
= trace
.prev
;
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);
725 tracehead
= trace
.prev
;
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);
737 tracehead
= trace
.prev
;
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);
749 tracehead
= trace
.prev
;
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);
761 tracehead
= trace
.prev
;
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
};
767 struct WBT_
**closurevariable
= NULL
;
768 trace
.prev
= tracehead
; tracehead
= &trace
;
769 trace
.file
= LOCATE_abstract_collection
;
770 /* Register variable[0]: Local variable */
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);
792 return_label28
: while(false);
793 tracehead
= trace
.prev
;
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);
805 tracehead
= trace
.prev
;
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);
817 tracehead
= trace
.prev
;
820 val_t
abstract_collection___IndexedCollectionRead___first(val_t self
) {
821 struct trace_t trace
= {NULL
, NULL
, 288, LOCATE_abstract_collection___IndexedCollectionRead___first
};
823 struct WBT_
**closurevariable
= NULL
;
824 trace
.prev
= tracehead
; tracehead
= &trace
;
825 trace
.file
= LOCATE_abstract_collection
;
826 /* Register variable[0]: Local variable */
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];
836 return_label30
: while(false);
837 tracehead
= trace
.prev
;
840 val_t
abstract_collection___IndexedCollectionRead___last(val_t self
) {
841 struct trace_t trace
= {NULL
, NULL
, 296, LOCATE_abstract_collection___IndexedCollectionRead___last
};
843 struct WBT_
**closurevariable
= NULL
;
844 trace
.prev
= tracehead
; tracehead
= &trace
;
845 trace
.file
= LOCATE_abstract_collection
;
846 /* Register variable[0]: Local variable */
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];
860 return_label31
: while(false);
861 tracehead
= trace
.prev
;
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
};
867 struct WBT_
**closurevariable
= NULL
;
868 trace
.prev
= tracehead
; tracehead
= &trace
;
869 trace
.file
= LOCATE_abstract_collection
;
870 /* Register variable[0]: Local variable */
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];
893 CALL_abstract_collection___Iterator___next( variable
[3] /*i*/)( variable
[3] /*i*/) /*Iterator::next*/;
894 continue_33
: while(0);
897 /* Register variable[4]: Result */
898 variable
[4] = TAG_Int(-UNTAG_Int( TAG_Int(1)));
899 variable
[2] = variable
[4];
901 return_label32
: while(false);
902 tracehead
= trace
.prev
;
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
};
908 struct WBT_
**closurevariable
= NULL
;
909 trace
.prev
= tracehead
; tracehead
= &trace
;
910 trace
.file
= LOCATE_abstract_collection
;
911 /* Register variable[0]: Local variable */
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
;
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
};
924 struct WBT_
**closurevariable
= NULL
;
925 trace
.prev
= tracehead
; tracehead
= &trace
;
926 trace
.file
= LOCATE_abstract_collection
;
927 /* Register variable[0]: Local variable */
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
;
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
};
940 struct WBT_
**closurevariable
= NULL
;
941 trace
.prev
= tracehead
; tracehead
= &trace
;
942 trace
.file
= LOCATE_abstract_collection
;
943 /* Register variable[0]: Local variable */
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::[]=*/;
959 CALL_abstract_collection___Map_____braeq(variable
[0])(variable
[0], TAG_Int(0), variable
[1] /*item*/) /*Map::[]=*/;
961 return_label36
: while(false);
962 tracehead
= trace
.prev
;
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);
974 tracehead
= trace
.prev
;
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
};
980 struct WBT_
**closurevariable
= NULL
;
981 trace
.prev
= tracehead
; tracehead
= &trace
;
982 trace
.file
= LOCATE_abstract_collection
;
983 /* Register variable[0]: Local variable */
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*/;
1006 return_label37
: while(false);
1007 tracehead
= trace
.prev
;
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);
1019 tracehead
= trace
.prev
;
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);
1031 tracehead
= trace
.prev
;
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);
1043 tracehead
= trace
.prev
;
1046 val_t
abstract_collection___IndexedIterator___key(val_t self
) {
1047 struct trace_t trace
= {NULL
, NULL
, 369, LOCATE_abstract_collection___IndexedIterator___key
};
1049 struct WBT_
**closurevariable
= NULL
;
1050 trace
.prev
= tracehead
; tracehead
= &trace
;
1051 trace
.file
= LOCATE_abstract_collection
;
1052 /* Register variable[0]: Local variable */
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
;
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);
1072 tracehead
= trace
.prev
;
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
};
1078 struct WBT_
**closurevariable
= NULL
;
1079 trace
.prev
= tracehead
; tracehead
= &trace
;
1080 trace
.file
= LOCATE_abstract_collection
;
1081 /* Register variable[0]: Local variable */
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);
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
;
1100 return_label40
: while(false);
1101 tracehead
= trace
.prev
;
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
};
1107 struct WBT_
**closurevariable
= NULL
;
1108 trace
.prev
= tracehead
; tracehead
= &trace
;
1109 trace
.file
= LOCATE_abstract_collection
;
1110 /* Register variable[0]: Local variable */
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
;
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);
1134 tracehead
= trace
.prev
;
1137 val_t
abstract_collection___CoupleMapIterator___item(val_t self
) {
1138 struct trace_t trace
= {NULL
, NULL
, 398, LOCATE_abstract_collection___CoupleMapIterator___item
};
1140 struct WBT_
**closurevariable
= NULL
;
1141 trace
.prev
= tracehead
; tracehead
= &trace
;
1142 trace
.file
= LOCATE_abstract_collection
;
1143 /* Register variable[0]: Local variable */
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
;
1158 void abstract_collection___CoupleMapIterator___next(val_t self
) {
1159 struct trace_t trace
= {NULL
, NULL
, 406, LOCATE_abstract_collection___CoupleMapIterator___next
};
1161 struct WBT_
**closurevariable
= NULL
;
1162 trace
.prev
= tracehead
; tracehead
= &trace
;
1163 trace
.file
= LOCATE_abstract_collection
;
1164 /* Register variable[0]: Local variable */
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::==*/)))));
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);
1192 return_label43
: while(false);
1193 tracehead
= trace
.prev
;
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
};
1199 struct WBT_
**closurevariable
= NULL
;
1200 trace
.prev
= tracehead
; tracehead
= &trace
;
1201 trace
.file
= LOCATE_abstract_collection
;
1202 /* Register variable[0]: Local variable */
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
;
1215 val_t
abstract_collection___CoupleMapIterator___key(val_t self
) {
1216 struct trace_t trace
= {NULL
, NULL
, 402, LOCATE_abstract_collection___CoupleMapIterator___key
};
1218 struct WBT_
**closurevariable
= NULL
;
1219 trace
.prev
= tracehead
; tracehead
= &trace
;
1220 trace
.file
= LOCATE_abstract_collection
;
1221 /* Register variable[0]: Local variable */
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
;
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
};
1239 struct WBT_
**closurevariable
= NULL
;
1240 trace
.prev
= tracehead
; tracehead
= &trace
;
1241 trace
.file
= LOCATE_abstract_collection
;
1242 /* Register variable[0]: Local variable */
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
;
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*/;
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
;
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*/;
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
;
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
};
1295 struct WBT_
**closurevariable
= NULL
;
1296 trace
.prev
= tracehead
; tracehead
= &trace
;
1297 trace
.file
= LOCATE_abstract_collection
;
1298 /* Register variable[0]: Local variable */
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
;