README: document nit_env.sh
[nit.git] / c_src / standard__abstract_collection.sep.1.c
1 #include "standard__abstract_collection.sep.0.h"
2 /* method abstract_collection#Collection#is_empty for (self: Collection[nullable Object]): Bool */
3 short int standard___standard__Collection___is_empty(val* self) {
4 short int var /* : Bool */;
5 long var1 /* : Int */;
6 short int var2 /* : Bool */;
7 short int var4 /* : Bool */;
8 {
9 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:Collection[nullable Object]>*/
10 }
11 {
12 { /* Inline kernel#Int#== (var1,0l) on <var1:Int> */
13 var4 = var1 == 0l;
14 var2 = var4;
15 goto RET_LABEL3;
16 RET_LABEL3:(void)0;
17 }
18 }
19 var = var2;
20 goto RET_LABEL;
21 RET_LABEL:;
22 return var;
23 }
24 /* method abstract_collection#Collection#not_empty for (self: Collection[nullable Object]): Bool */
25 short int standard___standard__Collection___not_empty(val* self) {
26 short int var /* : Bool */;
27 short int var1 /* : Bool */;
28 short int var2 /* : Bool */;
29 {
30 var1 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:Collection[nullable Object]>*/
31 }
32 var2 = !var1;
33 var = var2;
34 goto RET_LABEL;
35 RET_LABEL:;
36 return var;
37 }
38 /* method abstract_collection#Collection#length for (self: Collection[nullable Object]): Int */
39 long standard___standard__Collection___length(val* self) {
40 long var /* : Int */;
41 long var_nb /* var nb: Int */;
42 val* var_ /* var : Collection[nullable Object] */;
43 val* var1 /* : Iterator[nullable Object] */;
44 val* var_2 /* var : Iterator[nullable Object] */;
45 short int var3 /* : Bool */;
46 val* var4 /* : nullable Object */;
47 val* var_i /* var i: nullable Object */;
48 long var5 /* : Int */;
49 short int var7 /* : Bool */;
50 int cltype;
51 int idtype;
52 const char* var_class_name;
53 long var8 /* : Int */;
54 var_nb = 0l;
55 var_ = self;
56 {
57 var1 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[nullable Object]>*/
58 }
59 var_2 = var1;
60 for(;;) {
61 {
62 var3 = ((short int(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_2); /* is_ok on <var_2:Iterator[nullable Object]>*/
63 }
64 if (var3){
65 {
66 var4 = ((val*(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_2); /* item on <var_2:Iterator[nullable Object]>*/
67 }
68 var_i = var4;
69 {
70 { /* Inline kernel#Int#+ (var_nb,1l) on <var_nb:Int> */
71 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
72 /* <1l:Int> isa OTHER */
73 var7 = 1; /* easy <1l:Int> isa OTHER*/
74 if (unlikely(!var7)) {
75 var_class_name = type_standard__Int.name;
76 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
77 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
78 fatal_exit(1);
79 }
80 var8 = var_nb + 1l;
81 var5 = var8;
82 goto RET_LABEL6;
83 RET_LABEL6:(void)0;
84 }
85 }
86 var_nb = var5;
87 {
88 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_2); /* next on <var_2:Iterator[nullable Object]>*/
89 }
90 } else {
91 goto BREAK_label;
92 }
93 }
94 BREAK_label: (void)0;
95 {
96 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_2); /* finish on <var_2:Iterator[nullable Object]>*/
97 }
98 var = var_nb;
99 goto RET_LABEL;
100 RET_LABEL:;
101 return var;
102 }
103 /* method abstract_collection#Collection#has for (self: Collection[nullable Object], nullable Object): Bool */
104 short int standard___standard__Collection___has(val* self, val* p0) {
105 short int var /* : Bool */;
106 val* var_item /* var item: nullable Object */;
107 val* var_ /* var : Collection[nullable Object] */;
108 val* var1 /* : Iterator[nullable Object] */;
109 val* var_2 /* var : Iterator[nullable Object] */;
110 short int var3 /* : Bool */;
111 val* var4 /* : nullable Object */;
112 val* var_i /* var i: nullable Object */;
113 short int var5 /* : Bool */;
114 short int var6 /* : Bool */;
115 var_item = p0;
116 var_ = self;
117 {
118 var1 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[nullable Object]>*/
119 }
120 var_2 = var1;
121 for(;;) {
122 {
123 var3 = ((short int(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_2); /* is_ok on <var_2:Iterator[nullable Object]>*/
124 }
125 if (var3){
126 {
127 var4 = ((val*(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_2); /* item on <var_2:Iterator[nullable Object]>*/
128 }
129 var_i = var4;
130 if (var_i == NULL) {
131 var5 = (var_item == NULL);
132 } else {
133 var6 = ((short int(*)(val* self, val* p0))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var_i, var_item); /* == on <var_i:nullable Object>*/
134 var5 = var6;
135 }
136 if (var5){
137 var = 1;
138 goto RET_LABEL;
139 } else {
140 }
141 {
142 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_2); /* next on <var_2:Iterator[nullable Object]>*/
143 }
144 } else {
145 goto BREAK_label;
146 }
147 }
148 BREAK_label: (void)0;
149 {
150 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_2); /* finish on <var_2:Iterator[nullable Object]>*/
151 }
152 var = 0;
153 goto RET_LABEL;
154 RET_LABEL:;
155 return var;
156 }
157 /* method abstract_collection#Collection#first for (self: Collection[nullable Object]): nullable Object */
158 val* standard___standard__Collection___first(val* self) {
159 val* var /* : nullable Object */;
160 long var1 /* : Int */;
161 short int var2 /* : Bool */;
162 short int var4 /* : Bool */;
163 int cltype;
164 int idtype;
165 const char* var_class_name;
166 short int var5 /* : Bool */;
167 val* var6 /* : Iterator[nullable Object] */;
168 val* var7 /* : nullable Object */;
169 {
170 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:Collection[nullable Object]>*/
171 }
172 {
173 { /* Inline kernel#Int#> (var1,0l) on <var1:Int> */
174 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
175 /* <0l:Int> isa OTHER */
176 var4 = 1; /* easy <0l:Int> isa OTHER*/
177 if (unlikely(!var4)) {
178 var_class_name = type_standard__Int.name;
179 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
180 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
181 fatal_exit(1);
182 }
183 var5 = var1 > 0l;
184 var2 = var5;
185 goto RET_LABEL3;
186 RET_LABEL3:(void)0;
187 }
188 }
189 if (unlikely(!var2)) {
190 PRINT_ERROR("Runtime error: %s", "Assert failed");
191 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 134);
192 fatal_exit(1);
193 }
194 {
195 var6 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(self); /* iterator on <self:Collection[nullable Object]>*/
196 }
197 {
198 var7 = ((val*(*)(val* self))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var6); /* item on <var6:Iterator[nullable Object]>*/
199 }
200 var = var7;
201 goto RET_LABEL;
202 RET_LABEL:;
203 return var;
204 }
205 /* method abstract_collection#Collection#has_all for (self: Collection[nullable Object], Collection[nullable Object]): Bool */
206 short int standard___standard__Collection___has_all(val* self, val* p0) {
207 short int var /* : Bool */;
208 val* var_other /* var other: Collection[nullable Object] */;
209 val* var_ /* var : Collection[nullable Object] */;
210 val* var1 /* : Iterator[nullable Object] */;
211 val* var_2 /* var : Iterator[nullable Object] */;
212 short int var3 /* : Bool */;
213 val* var4 /* : nullable Object */;
214 val* var_x /* var x: nullable Object */;
215 short int var5 /* : Bool */;
216 short int var6 /* : Bool */;
217 var_other = p0;
218 var_ = var_other;
219 {
220 var1 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[nullable Object]>*/
221 }
222 var_2 = var1;
223 for(;;) {
224 {
225 var3 = ((short int(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_2); /* is_ok on <var_2:Iterator[nullable Object]>*/
226 }
227 if (var3){
228 {
229 var4 = ((val*(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_2); /* item on <var_2:Iterator[nullable Object]>*/
230 }
231 var_x = var4;
232 {
233 var5 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__has]))(self, var_x); /* has on <self:Collection[nullable Object]>*/
234 }
235 var6 = !var5;
236 if (var6){
237 var = 0;
238 goto RET_LABEL;
239 } else {
240 }
241 {
242 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_2); /* next on <var_2:Iterator[nullable Object]>*/
243 }
244 } else {
245 goto BREAK_label;
246 }
247 }
248 BREAK_label: (void)0;
249 {
250 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_2); /* finish on <var_2:Iterator[nullable Object]>*/
251 }
252 var = 1;
253 goto RET_LABEL;
254 RET_LABEL:;
255 return var;
256 }
257 /* method abstract_collection#Iterator#iterator for (self: Iterator[nullable Object]): Iterator[nullable Object] */
258 val* standard___standard__Iterator___iterator(val* self) {
259 val* var /* : Iterator[nullable Object] */;
260 var = self;
261 goto RET_LABEL;
262 RET_LABEL:;
263 return var;
264 }
265 /* method abstract_collection#Iterator#finish for (self: Iterator[nullable Object]) */
266 void standard___standard__Iterator___finish(val* self) {
267 RET_LABEL:;
268 }
269 /* method abstract_collection#Container#first for (self: Container[nullable Object]): nullable Object */
270 val* standard___standard__Container___Collection__first(val* self) {
271 val* var /* : nullable Object */;
272 val* var1 /* : nullable Object */;
273 val* var3 /* : nullable Object */;
274 {
275 { /* Inline abstract_collection#Container#item (self) on <self:Container[nullable Object]> */
276 var3 = self->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on <self:Container[nullable Object]> */
277 var1 = var3;
278 RET_LABEL2:(void)0;
279 }
280 }
281 var = var1;
282 goto RET_LABEL;
283 RET_LABEL:;
284 return var;
285 }
286 /* method abstract_collection#Container#is_empty for (self: Container[nullable Object]): Bool */
287 short int standard___standard__Container___Collection__is_empty(val* self) {
288 short int var /* : Bool */;
289 var = 0;
290 goto RET_LABEL;
291 RET_LABEL:;
292 return var;
293 }
294 /* method abstract_collection#Container#length for (self: Container[nullable Object]): Int */
295 long standard___standard__Container___Collection__length(val* self) {
296 long var /* : Int */;
297 var = 1l;
298 goto RET_LABEL;
299 RET_LABEL:;
300 return var;
301 }
302 /* method abstract_collection#Container#has for (self: Container[nullable Object], nullable Object): Bool */
303 short int standard___standard__Container___Collection__has(val* self, val* p0) {
304 short int var /* : Bool */;
305 val* var_an_item /* var an_item: nullable Object */;
306 val* var1 /* : nullable Object */;
307 val* var3 /* : nullable Object */;
308 short int var4 /* : Bool */;
309 short int var5 /* : Bool */;
310 var_an_item = p0;
311 {
312 { /* Inline abstract_collection#Container#item (self) on <self:Container[nullable Object]> */
313 var3 = self->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on <self:Container[nullable Object]> */
314 var1 = var3;
315 RET_LABEL2:(void)0;
316 }
317 }
318 if (var1 == NULL) {
319 var4 = (var_an_item == NULL);
320 } else {
321 var5 = ((short int(*)(val* self, val* p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_an_item); /* == on <var1:nullable Object>*/
322 var4 = var5;
323 }
324 var = var4;
325 goto RET_LABEL;
326 RET_LABEL:;
327 return var;
328 }
329 /* method abstract_collection#Container#iterator for (self: Container[nullable Object]): Iterator[nullable Object] */
330 val* standard___standard__Container___Collection__iterator(val* self) {
331 val* var /* : Iterator[nullable Object] */;
332 val* var1 /* : ContainerIterator[nullable Object] */;
333 var1 = NEW_standard__abstract_collection__ContainerIterator(self->type->resolution_table->types[COLOR_standard__abstract_collection__ContainerIterator__standard__Container___35dE]);
334 {
335 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__ContainerIterator__container_61d]))(var1, self); /* container= on <var1:ContainerIterator[nullable Object]>*/
336 }
337 {
338 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:ContainerIterator[nullable Object]>*/
339 }
340 var = var1;
341 goto RET_LABEL;
342 RET_LABEL:;
343 return var;
344 }
345 /* method abstract_collection#Container#item for (self: Container[nullable Object]): nullable Object */
346 val* standard___standard__Container___item(val* self) {
347 val* var /* : nullable Object */;
348 val* var1 /* : nullable Object */;
349 var1 = self->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on <self:Container[nullable Object]> */
350 var = var1;
351 RET_LABEL:;
352 return var;
353 }
354 /* method abstract_collection#Container#item= for (self: Container[nullable Object], nullable Object) */
355 void standard___standard__Container___item_61d(val* self, val* p0) {
356 short int var /* : Bool */;
357 int cltype;
358 int idtype;
359 const struct type* type_struct;
360 short int is_nullable;
361 const char* var_class_name;
362 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
363 /* <p0:nullable Object> isa E */
364 type_struct = self->type->resolution_table->types[COLOR_standard__Container___35dE];
365 cltype = type_struct->color;
366 idtype = type_struct->id;
367 is_nullable = type_struct->is_nullable;
368 if(p0 == NULL) {
369 var = is_nullable;
370 } else {
371 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
372 var = 0;
373 } else {
374 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
375 }
376 }
377 if (unlikely(!var)) {
378 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
379 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
380 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 309);
381 fatal_exit(1);
382 }
383 self->attrs[COLOR_standard__abstract_collection__Container___item].val = p0; /* _item on <self:Container[nullable Object]> */
384 RET_LABEL:;
385 }
386 /* method abstract_collection#Container#init for (self: Container[nullable Object]) */
387 void standard___standard__Container___standard__kernel__Object__init(val* self) {
388 {
389 ((void(*)(val* self))(self->class->vft[COLOR_standard___standard__Container___standard__kernel__Object__init]))(self); /* init on <self:Container[nullable Object]>*/
390 }
391 RET_LABEL:;
392 }
393 /* method abstract_collection#ContainerIterator#item for (self: ContainerIterator[nullable Object]): nullable Object */
394 val* standard__abstract_collection___standard__abstract_collection__ContainerIterator___Iterator__item(val* self) {
395 val* var /* : nullable Object */;
396 val* var1 /* : Container[nullable Object] */;
397 val* var2 /* : nullable Object */;
398 val* var4 /* : nullable Object */;
399 var1 = self->attrs[COLOR_standard__abstract_collection__ContainerIterator___container].val; /* _container on <self:ContainerIterator[nullable Object]> */
400 if (unlikely(var1 == NULL)) {
401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _container");
402 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 316);
403 fatal_exit(1);
404 }
405 {
406 { /* Inline abstract_collection#Container#item (var1) on <var1:Container[nullable Object]> */
407 var4 = var1->attrs[COLOR_standard__abstract_collection__Container___item].val; /* _item on <var1:Container[nullable Object]> */
408 var2 = var4;
409 RET_LABEL3:(void)0;
410 }
411 }
412 var = var2;
413 goto RET_LABEL;
414 RET_LABEL:;
415 return var;
416 }
417 /* method abstract_collection#ContainerIterator#next for (self: ContainerIterator[nullable Object]) */
418 void standard__abstract_collection___standard__abstract_collection__ContainerIterator___Iterator__next(val* self) {
419 {
420 { /* Inline abstract_collection#ContainerIterator#is_ok= (self,0) on <self:ContainerIterator[nullable Object]> */
421 self->attrs[COLOR_standard__abstract_collection__ContainerIterator___is_ok].s = 0; /* _is_ok on <self:ContainerIterator[nullable Object]> */
422 RET_LABEL1:(void)0;
423 }
424 }
425 RET_LABEL:;
426 }
427 /* method abstract_collection#ContainerIterator#is_ok for (self: ContainerIterator[nullable Object]): Bool */
428 short int standard__abstract_collection___standard__abstract_collection__ContainerIterator___Iterator__is_ok(val* self) {
429 short int var /* : Bool */;
430 short int var1 /* : Bool */;
431 var1 = self->attrs[COLOR_standard__abstract_collection__ContainerIterator___is_ok].s; /* _is_ok on <self:ContainerIterator[nullable Object]> */
432 var = var1;
433 RET_LABEL:;
434 return var;
435 }
436 /* method abstract_collection#ContainerIterator#is_ok= for (self: ContainerIterator[nullable Object], Bool) */
437 void standard__abstract_collection___standard__abstract_collection__ContainerIterator___is_ok_61d(val* self, short int p0) {
438 self->attrs[COLOR_standard__abstract_collection__ContainerIterator___is_ok].s = p0; /* _is_ok on <self:ContainerIterator[nullable Object]> */
439 RET_LABEL:;
440 }
441 /* method abstract_collection#ContainerIterator#container= for (self: ContainerIterator[nullable Object], Container[nullable Object]) */
442 void standard__abstract_collection___standard__abstract_collection__ContainerIterator___container_61d(val* self, val* p0) {
443 short int var /* : Bool */;
444 int cltype;
445 int idtype;
446 const struct type* type_struct;
447 const char* var_class_name;
448 /* Covariant cast for argument 0 (container) <p0:Container[nullable Object]> isa Container[E] */
449 /* <p0:Container[nullable Object]> isa Container[E] */
450 type_struct = self->type->resolution_table->types[COLOR_standard__Container__standard__abstract_collection__ContainerIterator___35dE];
451 cltype = type_struct->color;
452 idtype = type_struct->id;
453 if(cltype >= p0->type->table_size) {
454 var = 0;
455 } else {
456 var = p0->type->type_table[cltype] == idtype;
457 }
458 if (unlikely(!var)) {
459 var_class_name = p0 == NULL ? "null" : p0->type->name;
460 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Container[E]", var_class_name);
461 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 322);
462 fatal_exit(1);
463 }
464 self->attrs[COLOR_standard__abstract_collection__ContainerIterator___container].val = p0; /* _container on <self:ContainerIterator[nullable Object]> */
465 RET_LABEL:;
466 }
467 /* method abstract_collection#ContainerIterator#init for (self: ContainerIterator[nullable Object]) */
468 void standard__abstract_collection___standard__abstract_collection__ContainerIterator___standard__kernel__Object__init(val* self) {
469 {
470 ((void(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection___standard__abstract_collection__ContainerIterator___standard__kernel__Object__init]))(self); /* init on <self:ContainerIterator[nullable Object]>*/
471 }
472 RET_LABEL:;
473 }
474 /* method abstract_collection#RemovableCollection#clear for (self: RemovableCollection[nullable Object]) */
475 void standard___standard__RemovableCollection___clear(val* self) {
476 const char* var_class_name;
477 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
478 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "clear", var_class_name);
479 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 329);
480 fatal_exit(1);
481 RET_LABEL:;
482 }
483 /* method abstract_collection#RemovableCollection#remove for (self: RemovableCollection[nullable Object], nullable Object) */
484 void standard___standard__RemovableCollection___remove(val* self, val* p0) {
485 const char* var_class_name;
486 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
487 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "remove", var_class_name);
488 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 338);
489 fatal_exit(1);
490 RET_LABEL:;
491 }
492 /* method abstract_collection#SimpleCollection#add_all for (self: SimpleCollection[nullable Object], Collection[nullable Object]) */
493 void standard___standard__SimpleCollection___add_all(val* self, val* p0) {
494 short int var /* : Bool */;
495 int cltype;
496 int idtype;
497 const struct type* type_struct;
498 const char* var_class_name;
499 val* var_coll /* var coll: Collection[nullable Object] */;
500 val* var_ /* var : Collection[nullable Object] */;
501 val* var1 /* : Iterator[nullable Object] */;
502 val* var_2 /* var : Iterator[nullable Object] */;
503 short int var3 /* : Bool */;
504 val* var4 /* : nullable Object */;
505 val* var_i /* var i: nullable Object */;
506 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[E] */
507 /* <p0:Collection[nullable Object]> isa Collection[E] */
508 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Collection__standard__SimpleCollection___35dE];
509 cltype = type_struct->color;
510 idtype = type_struct->id;
511 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
512 var = 0;
513 } else {
514 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
515 }
516 if (unlikely(!var)) {
517 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
519 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 367);
520 fatal_exit(1);
521 }
522 var_coll = p0;
523 var_ = var_coll;
524 {
525 var1 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[nullable Object]>*/
526 }
527 var_2 = var1;
528 for(;;) {
529 {
530 var3 = ((short int(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_2); /* is_ok on <var_2:Iterator[nullable Object]>*/
531 }
532 if (var3){
533 {
534 var4 = ((val*(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_2); /* item on <var_2:Iterator[nullable Object]>*/
535 }
536 var_i = var4;
537 {
538 ((void(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(self, var_i); /* add on <self:SimpleCollection[nullable Object]>*/
539 }
540 {
541 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_2); /* next on <var_2:Iterator[nullable Object]>*/
542 }
543 } else {
544 goto BREAK_label;
545 }
546 }
547 BREAK_label: (void)0;
548 {
549 ((void(*)(val* self))((((long)var_2&3)?class_info[((long)var_2&3)]:var_2->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_2); /* finish on <var_2:Iterator[nullable Object]>*/
550 }
551 RET_LABEL:;
552 }
553 /* method abstract_collection#Set#== for (self: Set[nullable Object], nullable Object): Bool */
554 short int standard___standard__Set___standard__kernel__Object___61d_61d(val* self, val* p0) {
555 short int var /* : Bool */;
556 val* var_other /* var other: nullable Object */;
557 short int var1 /* : Bool */;
558 int cltype;
559 int idtype;
560 short int var2 /* : Bool */;
561 long var3 /* : Int */;
562 long var4 /* : Int */;
563 short int var5 /* : Bool */;
564 short int var7 /* : Bool */;
565 short int var8 /* : Bool */;
566 short int var9 /* : Bool */;
567 var_other = p0;
568 /* <var_other:nullable Object> isa Set[nullable Object] */
569 cltype = type_standard__Set__nullable__standard__Object.color;
570 idtype = type_standard__Set__nullable__standard__Object.id;
571 if(var_other == NULL) {
572 var1 = 0;
573 } else {
574 if(cltype >= (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->table_size) {
575 var1 = 0;
576 } else {
577 var1 = (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->type_table[cltype] == idtype;
578 }
579 }
580 var2 = !var1;
581 if (var2){
582 var = 0;
583 goto RET_LABEL;
584 } else {
585 }
586 {
587 var3 = ((long(*)(val* self))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(var_other); /* length on <var_other:nullable Object(Set[nullable Object])>*/
588 }
589 {
590 var4 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:Set[nullable Object]>*/
591 }
592 {
593 { /* Inline kernel#Int#!= (var3,var4) on <var3:Int> */
594 var7 = var3 == var4;
595 var8 = !var7;
596 var5 = var8;
597 goto RET_LABEL6;
598 RET_LABEL6:(void)0;
599 }
600 }
601 if (var5){
602 var = 0;
603 goto RET_LABEL;
604 } else {
605 }
606 {
607 var9 = standard___standard__Collection___has_all(self, var_other);
608 }
609 var = var9;
610 goto RET_LABEL;
611 RET_LABEL:;
612 return var;
613 }
614 /* method abstract_collection#Set#hash for (self: Set[nullable Object]): Int */
615 long standard___standard__Set___standard__kernel__Object__hash(val* self) {
616 long var /* : Int */;
617 long var1 /* : Int */;
618 long var2 /* : Int */;
619 short int var4 /* : Bool */;
620 int cltype;
621 int idtype;
622 const char* var_class_name;
623 long var5 /* : Int */;
624 long var_res /* var res: Int */;
625 val* var_ /* var : Set[nullable Object] */;
626 val* var6 /* : Iterator[nullable Object] */;
627 val* var_7 /* var : Iterator[nullable Object] */;
628 short int var8 /* : Bool */;
629 val* var9 /* : nullable Object */;
630 val* var_e /* var e: nullable Object */;
631 long var10 /* : Int */;
632 long var11 /* : Int */;
633 short int var13 /* : Bool */;
634 int cltype14;
635 int idtype15;
636 const char* var_class_name16;
637 long var17 /* : Int */;
638 {
639 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:Set[nullable Object]>*/
640 }
641 {
642 { /* Inline kernel#Int#+ (23l,var1) on <23l:Int> */
643 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
644 /* <var1:Int> isa OTHER */
645 var4 = 1; /* easy <var1:Int> isa OTHER*/
646 if (unlikely(!var4)) {
647 var_class_name = type_standard__Int.name;
648 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
649 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
650 fatal_exit(1);
651 }
652 var5 = 23l + var1;
653 var2 = var5;
654 goto RET_LABEL3;
655 RET_LABEL3:(void)0;
656 }
657 }
658 var_res = var2;
659 var_ = self;
660 {
661 var6 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Set[nullable Object]>*/
662 }
663 var_7 = var6;
664 for(;;) {
665 {
666 var8 = ((short int(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_7); /* is_ok on <var_7:Iterator[nullable Object]>*/
667 }
668 if (var8){
669 {
670 var9 = ((val*(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_7); /* item on <var_7:Iterator[nullable Object]>*/
671 }
672 var_e = var9;
673 if (var_e == NULL) {
674 PRINT_ERROR("Runtime error: %s", "Receiver is null");
675 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 428);
676 fatal_exit(1);
677 } else {
678 var10 = ((long(*)(val* self))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_standard__kernel__Object__hash]))(var_e); /* hash on <var_e:nullable Object>*/
679 }
680 {
681 { /* Inline kernel#Int#+ (var_res,var10) on <var_res:Int> */
682 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
683 /* <var10:Int> isa OTHER */
684 var13 = 1; /* easy <var10:Int> isa OTHER*/
685 if (unlikely(!var13)) {
686 var_class_name16 = type_standard__Int.name;
687 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
688 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
689 fatal_exit(1);
690 }
691 var17 = var_res + var10;
692 var11 = var17;
693 goto RET_LABEL12;
694 RET_LABEL12:(void)0;
695 }
696 }
697 var_res = var11;
698 {
699 ((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_7); /* next on <var_7:Iterator[nullable Object]>*/
700 }
701 } else {
702 goto BREAK_label;
703 }
704 }
705 BREAK_label: (void)0;
706 {
707 ((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_7); /* finish on <var_7:Iterator[nullable Object]>*/
708 }
709 var = var_res;
710 goto RET_LABEL;
711 RET_LABEL:;
712 return var;
713 }
714 /* method abstract_collection#MapRead#get_or_null for (self: MapRead[nullable Object, nullable Object], nullable Object): nullable Object */
715 val* standard___standard__MapRead___get_or_null(val* self, val* p0) {
716 val* var /* : nullable Object */;
717 val* var_key /* var key: nullable Object */;
718 short int var1 /* : Bool */;
719 val* var2 /* : nullable Object */;
720 var_key = p0;
721 {
722 var1 = ((short int(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__MapRead__has_key]))(self, var_key); /* has_key on <self:MapRead[nullable Object, nullable Object]>*/
723 }
724 if (var1){
725 {
726 var2 = ((val*(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(self, var_key); /* [] on <self:MapRead[nullable Object, nullable Object]>*/
727 }
728 var = var2;
729 goto RET_LABEL;
730 } else {
731 }
732 var = ((val*)NULL);
733 goto RET_LABEL;
734 RET_LABEL:;
735 return var;
736 }
737 /* method abstract_collection#MapRead#provide_default_value for (self: MapRead[nullable Object, nullable Object], nullable Object): nullable Object */
738 val* standard___standard__MapRead___provide_default_value(val* self, val* p0) {
739 val* var /* : nullable Object */;
740 val* var_key /* var key: nullable Object */;
741 var_key = p0;
742 PRINT_ERROR("Runtime error: %s", "Aborted");
743 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 552);
744 fatal_exit(1);
745 RET_LABEL:;
746 return var;
747 }
748 /* method abstract_collection#MapRead#== for (self: MapRead[nullable Object, nullable Object], nullable Object): Bool */
749 short int standard___standard__MapRead___standard__kernel__Object___61d_61d(val* self, val* p0) {
750 short int var /* : Bool */;
751 val* var_other /* var other: nullable Object */;
752 short int var1 /* : Bool */;
753 int cltype;
754 int idtype;
755 short int var2 /* : Bool */;
756 long var3 /* : Int */;
757 long var4 /* : Int */;
758 short int var5 /* : Bool */;
759 short int var7 /* : Bool */;
760 short int var8 /* : Bool */;
761 val* var_ /* var : MapRead[nullable Object, nullable Object] */;
762 val* var9 /* : MapIterator[nullable Object, nullable Object] */;
763 val* var_10 /* var : MapIterator[nullable Object, nullable Object] */;
764 short int var11 /* : Bool */;
765 val* var12 /* : nullable Object */;
766 val* var_k /* var k: nullable Object */;
767 val* var13 /* : nullable Object */;
768 val* var_v /* var v: nullable Object */;
769 short int var14 /* : Bool */;
770 short int var15 /* : Bool */;
771 val* var16 /* : nullable Object */;
772 short int var17 /* : Bool */;
773 short int var18 /* : Bool */;
774 var_other = p0;
775 /* <var_other:nullable Object> isa MapRead[nullable Object, nullable Object] */
776 cltype = type_standard__MapRead__nullable__standard__Object__nullable__standard__Object.color;
777 idtype = type_standard__MapRead__nullable__standard__Object__nullable__standard__Object.id;
778 if(var_other == NULL) {
779 var1 = 0;
780 } else {
781 if(cltype >= (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->table_size) {
782 var1 = 0;
783 } else {
784 var1 = (((long)var_other&3)?type_info[((long)var_other&3)]:var_other->type)->type_table[cltype] == idtype;
785 }
786 }
787 var2 = !var1;
788 if (var2){
789 var = 0;
790 goto RET_LABEL;
791 } else {
792 }
793 {
794 var3 = ((long(*)(val* self))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_standard__abstract_collection__MapRead__length]))(var_other); /* length on <var_other:nullable Object(MapRead[nullable Object, nullable Object])>*/
795 }
796 {
797 var4 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__MapRead__length]))(self); /* length on <self:MapRead[nullable Object, nullable Object]>*/
798 }
799 {
800 { /* Inline kernel#Int#!= (var3,var4) on <var3:Int> */
801 var7 = var3 == var4;
802 var8 = !var7;
803 var5 = var8;
804 goto RET_LABEL6;
805 RET_LABEL6:(void)0;
806 }
807 }
808 if (var5){
809 var = 0;
810 goto RET_LABEL;
811 } else {
812 }
813 var_ = self;
814 {
815 var9 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_); /* iterator on <var_:MapRead[nullable Object, nullable Object]>*/
816 }
817 var_10 = var9;
818 for(;;) {
819 {
820 var11 = ((short int(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_10); /* is_ok on <var_10:MapIterator[nullable Object, nullable Object]>*/
821 }
822 if (var11){
823 {
824 var12 = ((val*(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_10); /* key on <var_10:MapIterator[nullable Object, nullable Object]>*/
825 }
826 var_k = var12;
827 {
828 var13 = ((val*(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_10); /* item on <var_10:MapIterator[nullable Object, nullable Object]>*/
829 }
830 var_v = var13;
831 {
832 var14 = ((short int(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_standard__abstract_collection__MapRead__has_key]))(var_other, var_k); /* has_key on <var_other:nullable Object(MapRead[nullable Object, nullable Object])>*/
833 }
834 var15 = !var14;
835 if (var15){
836 var = 0;
837 goto RET_LABEL;
838 } else {
839 }
840 {
841 var16 = ((val*(*)(val* self, val* p0))((((long)var_other&3)?class_info[((long)var_other&3)]:var_other->class)->vft[COLOR_standard__abstract_collection__MapRead___91d_93d]))(var_other, var_k); /* [] on <var_other:nullable Object(MapRead[nullable Object, nullable Object])>*/
842 }
843 if (var16 == NULL) {
844 var17 = (var_v != NULL);
845 } else {
846 var18 = ((short int(*)(val* self, val* p0))((((long)var16&3)?class_info[((long)var16&3)]:var16->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var16, var_v); /* != on <var16:nullable Object>*/
847 var17 = var18;
848 }
849 if (var17){
850 var = 0;
851 goto RET_LABEL;
852 } else {
853 }
854 {
855 ((void(*)(val* self))((((long)var_10&3)?class_info[((long)var_10&3)]:var_10->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_10); /* next on <var_10:MapIterator[nullable Object, nullable Object]>*/
856 }
857 } else {
858 goto BREAK_label;
859 }
860 }
861 BREAK_label: (void)0;
862 {
863 { /* Inline abstract_collection#MapIterator#finish (var_10) on <var_10:MapIterator[nullable Object, nullable Object]> */
864 RET_LABEL19:(void)0;
865 }
866 }
867 var = 1;
868 goto RET_LABEL;
869 RET_LABEL:;
870 return var;
871 }
872 /* method abstract_collection#MapRead#hash for (self: MapRead[nullable Object, nullable Object]): Int */
873 long standard___standard__MapRead___standard__kernel__Object__hash(val* self) {
874 long var /* : Int */;
875 long var1 /* : Int */;
876 long var_res /* var res: Int */;
877 val* var_ /* var : MapRead[nullable Object, nullable Object] */;
878 val* var2 /* : MapIterator[nullable Object, nullable Object] */;
879 val* var_3 /* var : MapIterator[nullable Object, nullable Object] */;
880 short int var4 /* : Bool */;
881 val* var5 /* : nullable Object */;
882 val* var_k /* var k: nullable Object */;
883 val* var6 /* : nullable Object */;
884 val* var_v /* var v: nullable Object */;
885 short int var7 /* : Bool */;
886 short int var8 /* : Bool */;
887 long var9 /* : Int */;
888 long var10 /* : Int */;
889 short int var12 /* : Bool */;
890 int cltype;
891 int idtype;
892 const char* var_class_name;
893 long var13 /* : Int */;
894 long var14 /* : Int */;
895 short int var16 /* : Bool */;
896 int cltype17;
897 int idtype18;
898 const char* var_class_name19;
899 long var20 /* : Int */;
900 short int var21 /* : Bool */;
901 short int var22 /* : Bool */;
902 long var23 /* : Int */;
903 long var24 /* : Int */;
904 short int var26 /* : Bool */;
905 int cltype27;
906 int idtype28;
907 const char* var_class_name29;
908 long var30 /* : Int */;
909 long var31 /* : Int */;
910 short int var33 /* : Bool */;
911 int cltype34;
912 int idtype35;
913 const char* var_class_name36;
914 long var37 /* : Int */;
915 {
916 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__MapRead__length]))(self); /* length on <self:MapRead[nullable Object, nullable Object]>*/
917 }
918 var_res = var1;
919 var_ = self;
920 {
921 var2 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__MapRead__iterator]))(var_); /* iterator on <var_:MapRead[nullable Object, nullable Object]>*/
922 }
923 var_3 = var2;
924 for(;;) {
925 {
926 var4 = ((short int(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var_3); /* is_ok on <var_3:MapIterator[nullable Object, nullable Object]>*/
927 }
928 if (var4){
929 {
930 var5 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var_3); /* key on <var_3:MapIterator[nullable Object, nullable Object]>*/
931 }
932 var_k = var5;
933 {
934 var6 = ((val*(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var_3); /* item on <var_3:MapIterator[nullable Object, nullable Object]>*/
935 }
936 var_v = var6;
937 if (var_k == NULL) {
938 var7 = 0; /* is null */
939 } else {
940 var7 = 1; /* arg is null and recv is not */
941 }
942 if (0) {
943 var8 = ((short int(*)(val* self, val* p0))((((long)var_k&3)?class_info[((long)var_k&3)]:var_k->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_k, ((val*)NULL)); /* != on <var_k:nullable Object>*/
944 var7 = var8;
945 }
946 if (var7){
947 {
948 var9 = ((long(*)(val* self))((((long)var_k&3)?class_info[((long)var_k&3)]:var_k->class)->vft[COLOR_standard__kernel__Object__hash]))(var_k); /* hash on <var_k:nullable Object(Object)>*/
949 }
950 {
951 { /* Inline kernel#Int#* (var9,7l) on <var9:Int> */
952 /* Covariant cast for argument 0 (i) <7l:Int> isa OTHER */
953 /* <7l:Int> isa OTHER */
954 var12 = 1; /* easy <7l:Int> isa OTHER*/
955 if (unlikely(!var12)) {
956 var_class_name = type_standard__Int.name;
957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
958 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 541);
959 fatal_exit(1);
960 }
961 var13 = var9 * 7l;
962 var10 = var13;
963 goto RET_LABEL11;
964 RET_LABEL11:(void)0;
965 }
966 }
967 {
968 { /* Inline kernel#Int#+ (var_res,var10) on <var_res:Int> */
969 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
970 /* <var10:Int> isa OTHER */
971 var16 = 1; /* easy <var10:Int> isa OTHER*/
972 if (unlikely(!var16)) {
973 var_class_name19 = type_standard__Int.name;
974 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
975 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
976 fatal_exit(1);
977 }
978 var20 = var_res + var10;
979 var14 = var20;
980 goto RET_LABEL15;
981 RET_LABEL15:(void)0;
982 }
983 }
984 var_res = var14;
985 } else {
986 }
987 if (var_v == NULL) {
988 var21 = 0; /* is null */
989 } else {
990 var21 = 1; /* arg is null and recv is not */
991 }
992 if (0) {
993 var22 = ((short int(*)(val* self, val* p0))((((long)var_v&3)?class_info[((long)var_v&3)]:var_v->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_v, ((val*)NULL)); /* != on <var_v:nullable Object>*/
994 var21 = var22;
995 }
996 if (var21){
997 {
998 var23 = ((long(*)(val* self))((((long)var_v&3)?class_info[((long)var_v&3)]:var_v->class)->vft[COLOR_standard__kernel__Object__hash]))(var_v); /* hash on <var_v:nullable Object(Object)>*/
999 }
1000 {
1001 { /* Inline kernel#Int#* (var23,11l) on <var23:Int> */
1002 /* Covariant cast for argument 0 (i) <11l:Int> isa OTHER */
1003 /* <11l:Int> isa OTHER */
1004 var26 = 1; /* easy <11l:Int> isa OTHER*/
1005 if (unlikely(!var26)) {
1006 var_class_name29 = type_standard__Int.name;
1007 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
1008 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 541);
1009 fatal_exit(1);
1010 }
1011 var30 = var23 * 11l;
1012 var24 = var30;
1013 goto RET_LABEL25;
1014 RET_LABEL25:(void)0;
1015 }
1016 }
1017 {
1018 { /* Inline kernel#Int#+ (var_res,var24) on <var_res:Int> */
1019 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
1020 /* <var24:Int> isa OTHER */
1021 var33 = 1; /* easy <var24:Int> isa OTHER*/
1022 if (unlikely(!var33)) {
1023 var_class_name36 = type_standard__Int.name;
1024 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name36);
1025 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1026 fatal_exit(1);
1027 }
1028 var37 = var_res + var24;
1029 var31 = var37;
1030 goto RET_LABEL32;
1031 RET_LABEL32:(void)0;
1032 }
1033 }
1034 var_res = var31;
1035 } else {
1036 }
1037 {
1038 ((void(*)(val* self))((((long)var_3&3)?class_info[((long)var_3&3)]:var_3->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var_3); /* next on <var_3:MapIterator[nullable Object, nullable Object]>*/
1039 }
1040 } else {
1041 goto BREAK_label;
1042 }
1043 }
1044 BREAK_label: (void)0;
1045 {
1046 { /* Inline abstract_collection#MapIterator#finish (var_3) on <var_3:MapIterator[nullable Object, nullable Object]> */
1047 RET_LABEL38:(void)0;
1048 }
1049 }
1050 var = var_res;
1051 goto RET_LABEL;
1052 RET_LABEL:;
1053 return var;
1054 }
1055 /* method abstract_collection#MapIterator#finish for (self: MapIterator[nullable Object, nullable Object]) */
1056 void standard___standard__MapIterator___finish(val* self) {
1057 RET_LABEL:;
1058 }
1059 /* method abstract_collection#MapKeysIterator#original_iterator for (self: MapKeysIterator[nullable Object, nullable Object]): MapIterator[nullable Object, nullable Object] */
1060 val* standard___standard__MapKeysIterator___original_iterator(val* self) {
1061 val* var /* : MapIterator[nullable Object, nullable Object] */;
1062 val* var1 /* : MapIterator[nullable Object, nullable Object] */;
1063 var1 = self->attrs[COLOR_standard__abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on <self:MapKeysIterator[nullable Object, nullable Object]> */
1064 if (unlikely(var1 == NULL)) {
1065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1066 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 715);
1067 fatal_exit(1);
1068 }
1069 var = var1;
1070 RET_LABEL:;
1071 return var;
1072 }
1073 /* method abstract_collection#MapKeysIterator#original_iterator= for (self: MapKeysIterator[nullable Object, nullable Object], MapIterator[nullable Object, nullable Object]) */
1074 void standard___standard__MapKeysIterator___original_iterator_61d(val* self, val* p0) {
1075 short int var /* : Bool */;
1076 int cltype;
1077 int idtype;
1078 const struct type* type_struct;
1079 const char* var_class_name;
1080 /* Covariant cast for argument 0 (original_iterator) <p0:MapIterator[nullable Object, nullable Object]> isa MapIterator[K, V] */
1081 /* <p0:MapIterator[nullable Object, nullable Object]> isa MapIterator[K, V] */
1082 type_struct = self->type->resolution_table->types[COLOR_standard__MapIterator__standard__MapKeysIterator___35dK__standard__MapKeysIterator___35dV];
1083 cltype = type_struct->color;
1084 idtype = type_struct->id;
1085 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1086 var = 0;
1087 } else {
1088 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1089 }
1090 if (unlikely(!var)) {
1091 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1092 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[K, V]", var_class_name);
1093 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 715);
1094 fatal_exit(1);
1095 }
1096 self->attrs[COLOR_standard__abstract_collection__MapKeysIterator___original_iterator].val = p0; /* _original_iterator on <self:MapKeysIterator[nullable Object, nullable Object]> */
1097 RET_LABEL:;
1098 }
1099 /* method abstract_collection#MapKeysIterator#is_ok for (self: MapKeysIterator[nullable Object, nullable Object]): Bool */
1100 short int standard___standard__MapKeysIterator___Iterator__is_ok(val* self) {
1101 short int var /* : Bool */;
1102 val* var1 /* : MapIterator[nullable Object, nullable Object] */;
1103 val* var3 /* : MapIterator[nullable Object, nullable Object] */;
1104 short int var4 /* : Bool */;
1105 {
1106 { /* Inline abstract_collection#MapKeysIterator#original_iterator (self) on <self:MapKeysIterator[nullable Object, nullable Object]> */
1107 var3 = self->attrs[COLOR_standard__abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on <self:MapKeysIterator[nullable Object, nullable Object]> */
1108 if (unlikely(var3 == NULL)) {
1109 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1110 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 715);
1111 fatal_exit(1);
1112 }
1113 var1 = var3;
1114 RET_LABEL2:(void)0;
1115 }
1116 }
1117 {
1118 var4 = ((short int(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var1); /* is_ok on <var1:MapIterator[nullable Object, nullable Object]>*/
1119 }
1120 var = var4;
1121 goto RET_LABEL;
1122 RET_LABEL:;
1123 return var;
1124 }
1125 /* method abstract_collection#MapKeysIterator#next for (self: MapKeysIterator[nullable Object, nullable Object]) */
1126 void standard___standard__MapKeysIterator___Iterator__next(val* self) {
1127 val* var /* : MapIterator[nullable Object, nullable Object] */;
1128 val* var2 /* : MapIterator[nullable Object, nullable Object] */;
1129 {
1130 { /* Inline abstract_collection#MapKeysIterator#original_iterator (self) on <self:MapKeysIterator[nullable Object, nullable Object]> */
1131 var2 = self->attrs[COLOR_standard__abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on <self:MapKeysIterator[nullable Object, nullable Object]> */
1132 if (unlikely(var2 == NULL)) {
1133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1134 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 715);
1135 fatal_exit(1);
1136 }
1137 var = var2;
1138 RET_LABEL1:(void)0;
1139 }
1140 }
1141 {
1142 ((void(*)(val* self))((((long)var&3)?class_info[((long)var&3)]:var->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var); /* next on <var:MapIterator[nullable Object, nullable Object]>*/
1143 }
1144 RET_LABEL:;
1145 }
1146 /* method abstract_collection#MapKeysIterator#item for (self: MapKeysIterator[nullable Object, nullable Object]): nullable Object */
1147 val* standard___standard__MapKeysIterator___Iterator__item(val* self) {
1148 val* var /* : nullable Object */;
1149 val* var1 /* : MapIterator[nullable Object, nullable Object] */;
1150 val* var3 /* : MapIterator[nullable Object, nullable Object] */;
1151 val* var4 /* : nullable Object */;
1152 {
1153 { /* Inline abstract_collection#MapKeysIterator#original_iterator (self) on <self:MapKeysIterator[nullable Object, nullable Object]> */
1154 var3 = self->attrs[COLOR_standard__abstract_collection__MapKeysIterator___original_iterator].val; /* _original_iterator on <self:MapKeysIterator[nullable Object, nullable Object]> */
1155 if (unlikely(var3 == NULL)) {
1156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1157 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 715);
1158 fatal_exit(1);
1159 }
1160 var1 = var3;
1161 RET_LABEL2:(void)0;
1162 }
1163 }
1164 {
1165 var4 = ((val*(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__MapIterator__key]))(var1); /* key on <var1:MapIterator[nullable Object, nullable Object]>*/
1166 }
1167 var = var4;
1168 goto RET_LABEL;
1169 RET_LABEL:;
1170 return var;
1171 }
1172 /* method abstract_collection#MapKeysIterator#init for (self: MapKeysIterator[nullable Object, nullable Object]) */
1173 void standard___standard__MapKeysIterator___standard__kernel__Object__init(val* self) {
1174 {
1175 ((void(*)(val* self))(self->class->vft[COLOR_standard___standard__MapKeysIterator___standard__kernel__Object__init]))(self); /* init on <self:MapKeysIterator[nullable Object, nullable Object]>*/
1176 }
1177 RET_LABEL:;
1178 }
1179 /* method abstract_collection#MapValuesIterator#original_iterator for (self: MapValuesIterator[nullable Object, nullable Object]): MapIterator[nullable Object, nullable Object] */
1180 val* standard___standard__MapValuesIterator___original_iterator(val* self) {
1181 val* var /* : MapIterator[nullable Object, nullable Object] */;
1182 val* var1 /* : MapIterator[nullable Object, nullable Object] */;
1183 var1 = self->attrs[COLOR_standard__abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on <self:MapValuesIterator[nullable Object, nullable Object]> */
1184 if (unlikely(var1 == NULL)) {
1185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1186 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 726);
1187 fatal_exit(1);
1188 }
1189 var = var1;
1190 RET_LABEL:;
1191 return var;
1192 }
1193 /* method abstract_collection#MapValuesIterator#original_iterator= for (self: MapValuesIterator[nullable Object, nullable Object], MapIterator[nullable Object, nullable Object]) */
1194 void standard___standard__MapValuesIterator___original_iterator_61d(val* self, val* p0) {
1195 short int var /* : Bool */;
1196 int cltype;
1197 int idtype;
1198 const struct type* type_struct;
1199 const char* var_class_name;
1200 /* Covariant cast for argument 0 (original_iterator) <p0:MapIterator[nullable Object, nullable Object]> isa MapIterator[K, V] */
1201 /* <p0:MapIterator[nullable Object, nullable Object]> isa MapIterator[K, V] */
1202 type_struct = self->type->resolution_table->types[COLOR_standard__MapIterator__standard__MapValuesIterator___35dK__standard__MapValuesIterator___35dV];
1203 cltype = type_struct->color;
1204 idtype = type_struct->id;
1205 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1206 var = 0;
1207 } else {
1208 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1209 }
1210 if (unlikely(!var)) {
1211 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MapIterator[K, V]", var_class_name);
1213 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 726);
1214 fatal_exit(1);
1215 }
1216 self->attrs[COLOR_standard__abstract_collection__MapValuesIterator___original_iterator].val = p0; /* _original_iterator on <self:MapValuesIterator[nullable Object, nullable Object]> */
1217 RET_LABEL:;
1218 }
1219 /* method abstract_collection#MapValuesIterator#is_ok for (self: MapValuesIterator[nullable Object, nullable Object]): Bool */
1220 short int standard___standard__MapValuesIterator___Iterator__is_ok(val* self) {
1221 short int var /* : Bool */;
1222 val* var1 /* : MapIterator[nullable Object, nullable Object] */;
1223 val* var3 /* : MapIterator[nullable Object, nullable Object] */;
1224 short int var4 /* : Bool */;
1225 {
1226 { /* Inline abstract_collection#MapValuesIterator#original_iterator (self) on <self:MapValuesIterator[nullable Object, nullable Object]> */
1227 var3 = self->attrs[COLOR_standard__abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on <self:MapValuesIterator[nullable Object, nullable Object]> */
1228 if (unlikely(var3 == NULL)) {
1229 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1230 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 726);
1231 fatal_exit(1);
1232 }
1233 var1 = var3;
1234 RET_LABEL2:(void)0;
1235 }
1236 }
1237 {
1238 var4 = ((short int(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__MapIterator__is_ok]))(var1); /* is_ok on <var1:MapIterator[nullable Object, nullable Object]>*/
1239 }
1240 var = var4;
1241 goto RET_LABEL;
1242 RET_LABEL:;
1243 return var;
1244 }
1245 /* method abstract_collection#MapValuesIterator#next for (self: MapValuesIterator[nullable Object, nullable Object]) */
1246 void standard___standard__MapValuesIterator___Iterator__next(val* self) {
1247 val* var /* : MapIterator[nullable Object, nullable Object] */;
1248 val* var2 /* : MapIterator[nullable Object, nullable Object] */;
1249 {
1250 { /* Inline abstract_collection#MapValuesIterator#original_iterator (self) on <self:MapValuesIterator[nullable Object, nullable Object]> */
1251 var2 = self->attrs[COLOR_standard__abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on <self:MapValuesIterator[nullable Object, nullable Object]> */
1252 if (unlikely(var2 == NULL)) {
1253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1254 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 726);
1255 fatal_exit(1);
1256 }
1257 var = var2;
1258 RET_LABEL1:(void)0;
1259 }
1260 }
1261 {
1262 ((void(*)(val* self))((((long)var&3)?class_info[((long)var&3)]:var->class)->vft[COLOR_standard__abstract_collection__MapIterator__next]))(var); /* next on <var:MapIterator[nullable Object, nullable Object]>*/
1263 }
1264 RET_LABEL:;
1265 }
1266 /* method abstract_collection#MapValuesIterator#item for (self: MapValuesIterator[nullable Object, nullable Object]): nullable Object */
1267 val* standard___standard__MapValuesIterator___Iterator__item(val* self) {
1268 val* var /* : nullable Object */;
1269 val* var1 /* : MapIterator[nullable Object, nullable Object] */;
1270 val* var3 /* : MapIterator[nullable Object, nullable Object] */;
1271 val* var4 /* : nullable Object */;
1272 {
1273 { /* Inline abstract_collection#MapValuesIterator#original_iterator (self) on <self:MapValuesIterator[nullable Object, nullable Object]> */
1274 var3 = self->attrs[COLOR_standard__abstract_collection__MapValuesIterator___original_iterator].val; /* _original_iterator on <self:MapValuesIterator[nullable Object, nullable Object]> */
1275 if (unlikely(var3 == NULL)) {
1276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _original_iterator");
1277 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 726);
1278 fatal_exit(1);
1279 }
1280 var1 = var3;
1281 RET_LABEL2:(void)0;
1282 }
1283 }
1284 {
1285 var4 = ((val*(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__MapIterator__item]))(var1); /* item on <var1:MapIterator[nullable Object, nullable Object]>*/
1286 }
1287 var = var4;
1288 goto RET_LABEL;
1289 RET_LABEL:;
1290 return var;
1291 }
1292 /* method abstract_collection#MapValuesIterator#init for (self: MapValuesIterator[nullable Object, nullable Object]) */
1293 void standard___standard__MapValuesIterator___standard__kernel__Object__init(val* self) {
1294 {
1295 ((void(*)(val* self))(self->class->vft[COLOR_standard___standard__MapValuesIterator___standard__kernel__Object__init]))(self); /* init on <self:MapValuesIterator[nullable Object, nullable Object]>*/
1296 }
1297 RET_LABEL:;
1298 }
1299 /* method abstract_collection#SequenceRead#first for (self: SequenceRead[nullable Object]): nullable Object */
1300 val* standard___standard__SequenceRead___Collection__first(val* self) {
1301 val* var /* : nullable Object */;
1302 short int var1 /* : Bool */;
1303 short int var2 /* : Bool */;
1304 val* var3 /* : nullable Object */;
1305 {
1306 var1 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:SequenceRead[nullable Object]>*/
1307 }
1308 var2 = !var1;
1309 if (unlikely(!var2)) {
1310 PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed");
1311 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 751);
1312 fatal_exit(1);
1313 }
1314 {
1315 var3 = ((val*(*)(val* self, long p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, 0l); /* [] on <self:SequenceRead[nullable Object]>*/
1316 }
1317 var = var3;
1318 goto RET_LABEL;
1319 RET_LABEL:;
1320 return var;
1321 }
1322 /* method abstract_collection#SequenceRead#last for (self: SequenceRead[nullable Object]): nullable Object */
1323 val* standard___standard__SequenceRead___last(val* self) {
1324 val* var /* : nullable Object */;
1325 short int var1 /* : Bool */;
1326 short int var2 /* : Bool */;
1327 long var3 /* : Int */;
1328 long var4 /* : Int */;
1329 short int var6 /* : Bool */;
1330 int cltype;
1331 int idtype;
1332 const char* var_class_name;
1333 long var7 /* : Int */;
1334 val* var8 /* : nullable Object */;
1335 {
1336 var1 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:SequenceRead[nullable Object]>*/
1337 }
1338 var2 = !var1;
1339 if (unlikely(!var2)) {
1340 PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed");
1341 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 776);
1342 fatal_exit(1);
1343 }
1344 {
1345 var3 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:SequenceRead[nullable Object]>*/
1346 }
1347 {
1348 { /* Inline kernel#Int#- (var3,1l) on <var3:Int> */
1349 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1350 /* <1l:Int> isa OTHER */
1351 var6 = 1; /* easy <1l:Int> isa OTHER*/
1352 if (unlikely(!var6)) {
1353 var_class_name = type_standard__Int.name;
1354 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1355 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1356 fatal_exit(1);
1357 }
1358 var7 = var3 - 1l;
1359 var4 = var7;
1360 goto RET_LABEL5;
1361 RET_LABEL5:(void)0;
1362 }
1363 }
1364 {
1365 var8 = ((val*(*)(val* self, long p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var4); /* [] on <self:SequenceRead[nullable Object]>*/
1366 }
1367 var = var8;
1368 goto RET_LABEL;
1369 RET_LABEL:;
1370 return var;
1371 }
1372 /* method abstract_collection#SequenceRead#index_of for (self: SequenceRead[nullable Object], nullable Object): Int */
1373 long standard___standard__SequenceRead___index_of(val* self, val* p0) {
1374 long var /* : Int */;
1375 val* var_item /* var item: nullable Object */;
1376 long var1 /* : Int */;
1377 var_item = p0;
1378 {
1379 var1 = ((long(*)(val* self, val* p0, long p1))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SequenceRead__index_of_from]))(self, var_item, 0l); /* index_of_from on <self:SequenceRead[nullable Object]>*/
1380 }
1381 var = var1;
1382 goto RET_LABEL;
1383 RET_LABEL:;
1384 return var;
1385 }
1386 /* method abstract_collection#SequenceRead#last_index_of for (self: SequenceRead[nullable Object], nullable Object): Int */
1387 long standard___standard__SequenceRead___last_index_of(val* self, val* p0) {
1388 long var /* : Int */;
1389 val* var_item /* var item: nullable Object */;
1390 long var1 /* : Int */;
1391 long var2 /* : Int */;
1392 short int var4 /* : Bool */;
1393 int cltype;
1394 int idtype;
1395 const char* var_class_name;
1396 long var5 /* : Int */;
1397 long var6 /* : Int */;
1398 var_item = p0;
1399 {
1400 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:SequenceRead[nullable Object]>*/
1401 }
1402 {
1403 { /* Inline kernel#Int#- (var1,1l) on <var1:Int> */
1404 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1405 /* <1l:Int> isa OTHER */
1406 var4 = 1; /* easy <1l:Int> isa OTHER*/
1407 if (unlikely(!var4)) {
1408 var_class_name = type_standard__Int.name;
1409 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1410 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1411 fatal_exit(1);
1412 }
1413 var5 = var1 - 1l;
1414 var2 = var5;
1415 goto RET_LABEL3;
1416 RET_LABEL3:(void)0;
1417 }
1418 }
1419 {
1420 var6 = ((long(*)(val* self, val* p0, long p1))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SequenceRead__last_index_of_from]))(self, var_item, var2); /* last_index_of_from on <self:SequenceRead[nullable Object]>*/
1421 }
1422 var = var6;
1423 goto RET_LABEL;
1424 RET_LABEL:;
1425 return var;
1426 }
1427 /* method abstract_collection#SequenceRead#index_of_from for (self: SequenceRead[nullable Object], nullable Object, Int): Int */
1428 long standard___standard__SequenceRead___index_of_from(val* self, val* p0, long p1) {
1429 long var /* : Int */;
1430 val* var_item /* var item: nullable Object */;
1431 long var_pos /* var pos: Int */;
1432 long var_p /* var p: Int */;
1433 val* var1 /* : Iterator[nullable Object] */;
1434 val* var_i /* var i: IndexedIterator[nullable Object] */;
1435 short int var2 /* : Bool */;
1436 short int var3 /* : Bool */;
1437 short int var4 /* : Bool */;
1438 short int var6 /* : Bool */;
1439 int cltype;
1440 int idtype;
1441 const char* var_class_name;
1442 short int var7 /* : Bool */;
1443 short int var_ /* var : Bool */;
1444 val* var8 /* : nullable Object */;
1445 short int var9 /* : Bool */;
1446 short int var10 /* : Bool */;
1447 long var11 /* : Int */;
1448 long var12 /* : Int */;
1449 short int var14 /* : Bool */;
1450 int cltype15;
1451 int idtype16;
1452 const char* var_class_name17;
1453 long var18 /* : Int */;
1454 long var19 /* : Int */;
1455 long var21 /* : Int */;
1456 var_item = p0;
1457 var_pos = p1;
1458 var_p = 0l;
1459 {
1460 var1 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(self); /* iterator on <self:SequenceRead[nullable Object]>*/
1461 }
1462 var_i = var1;
1463 for(;;) {
1464 {
1465 var2 = ((short int(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_i); /* is_ok on <var_i:IndexedIterator[nullable Object]>*/
1466 }
1467 if (var2){
1468 {
1469 { /* Inline kernel#Int#>= (var_p,var_pos) on <var_p:Int> */
1470 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
1471 /* <var_pos:Int> isa OTHER */
1472 var6 = 1; /* easy <var_pos:Int> isa OTHER*/
1473 if (unlikely(!var6)) {
1474 var_class_name = type_standard__Int.name;
1475 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1476 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
1477 fatal_exit(1);
1478 }
1479 var7 = var_p >= var_pos;
1480 var4 = var7;
1481 goto RET_LABEL5;
1482 RET_LABEL5:(void)0;
1483 }
1484 }
1485 var_ = var4;
1486 if (var4){
1487 {
1488 var8 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_i); /* item on <var_i:IndexedIterator[nullable Object]>*/
1489 }
1490 if (var8 == NULL) {
1491 var9 = (var_item == NULL);
1492 } else {
1493 var10 = ((short int(*)(val* self, val* p0))((((long)var8&3)?class_info[((long)var8&3)]:var8->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var8, var_item); /* == on <var8:nullable Object>*/
1494 var9 = var10;
1495 }
1496 var3 = var9;
1497 } else {
1498 var3 = var_;
1499 }
1500 if (var3){
1501 {
1502 var11 = ((long(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__abstract_collection__IndexedIterator__index]))(var_i); /* index on <var_i:IndexedIterator[nullable Object]>*/
1503 }
1504 var = var11;
1505 goto RET_LABEL;
1506 } else {
1507 }
1508 {
1509 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_i); /* next on <var_i:IndexedIterator[nullable Object]>*/
1510 }
1511 {
1512 { /* Inline kernel#Int#+ (var_p,1l) on <var_p:Int> */
1513 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1514 /* <1l:Int> isa OTHER */
1515 var14 = 1; /* easy <1l:Int> isa OTHER*/
1516 if (unlikely(!var14)) {
1517 var_class_name17 = type_standard__Int.name;
1518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1519 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1520 fatal_exit(1);
1521 }
1522 var18 = var_p + 1l;
1523 var12 = var18;
1524 goto RET_LABEL13;
1525 RET_LABEL13:(void)0;
1526 }
1527 }
1528 var_p = var12;
1529 } else {
1530 goto BREAK_label;
1531 }
1532 }
1533 BREAK_label: (void)0;
1534 {
1535 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
1536 var21 = -1l;
1537 var19 = var21;
1538 goto RET_LABEL20;
1539 RET_LABEL20:(void)0;
1540 }
1541 }
1542 var = var19;
1543 goto RET_LABEL;
1544 RET_LABEL:;
1545 return var;
1546 }
1547 /* method abstract_collection#SequenceRead#last_index_of_from for (self: SequenceRead[nullable Object], nullable Object, Int): Int */
1548 long standard___standard__SequenceRead___last_index_of_from(val* self, val* p0, long p1) {
1549 long var /* : Int */;
1550 val* var_item /* var item: nullable Object */;
1551 long var_pos /* var pos: Int */;
1552 long var1 /* : Int */;
1553 long var3 /* : Int */;
1554 long var_res /* var res: Int */;
1555 long var_p /* var p: Int */;
1556 val* var4 /* : Iterator[nullable Object] */;
1557 val* var_i /* var i: IndexedIterator[nullable Object] */;
1558 short int var5 /* : Bool */;
1559 short int var6 /* : Bool */;
1560 short int var8 /* : Bool */;
1561 int cltype;
1562 int idtype;
1563 const char* var_class_name;
1564 short int var9 /* : Bool */;
1565 val* var10 /* : nullable Object */;
1566 short int var11 /* : Bool */;
1567 short int var12 /* : Bool */;
1568 long var13 /* : Int */;
1569 short int var15 /* : Bool */;
1570 int cltype16;
1571 int idtype17;
1572 const char* var_class_name18;
1573 long var19 /* : Int */;
1574 var_item = p0;
1575 var_pos = p1;
1576 {
1577 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
1578 var3 = -1l;
1579 var1 = var3;
1580 goto RET_LABEL2;
1581 RET_LABEL2:(void)0;
1582 }
1583 }
1584 var_res = var1;
1585 var_p = 0l;
1586 {
1587 var4 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(self); /* iterator on <self:SequenceRead[nullable Object]>*/
1588 }
1589 var_i = var4;
1590 for(;;) {
1591 {
1592 var5 = ((short int(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_i); /* is_ok on <var_i:IndexedIterator[nullable Object]>*/
1593 }
1594 if (var5){
1595 {
1596 { /* Inline kernel#Int#> (var_p,var_pos) on <var_p:Int> */
1597 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
1598 /* <var_pos:Int> isa OTHER */
1599 var8 = 1; /* easy <var_pos:Int> isa OTHER*/
1600 if (unlikely(!var8)) {
1601 var_class_name = type_standard__Int.name;
1602 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1603 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
1604 fatal_exit(1);
1605 }
1606 var9 = var_p > var_pos;
1607 var6 = var9;
1608 goto RET_LABEL7;
1609 RET_LABEL7:(void)0;
1610 }
1611 }
1612 if (var6){
1613 goto BREAK_label;
1614 } else {
1615 }
1616 {
1617 var10 = ((val*(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_i); /* item on <var_i:IndexedIterator[nullable Object]>*/
1618 }
1619 if (var10 == NULL) {
1620 var11 = (var_item == NULL);
1621 } else {
1622 var12 = ((short int(*)(val* self, val* p0))((((long)var10&3)?class_info[((long)var10&3)]:var10->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var10, var_item); /* == on <var10:nullable Object>*/
1623 var11 = var12;
1624 }
1625 if (var11){
1626 var_res = var_p;
1627 } else {
1628 }
1629 {
1630 ((void(*)(val* self))((((long)var_i&3)?class_info[((long)var_i&3)]:var_i->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_i); /* next on <var_i:IndexedIterator[nullable Object]>*/
1631 }
1632 {
1633 { /* Inline kernel#Int#+ (var_p,1l) on <var_p:Int> */
1634 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1635 /* <1l:Int> isa OTHER */
1636 var15 = 1; /* easy <1l:Int> isa OTHER*/
1637 if (unlikely(!var15)) {
1638 var_class_name18 = type_standard__Int.name;
1639 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1640 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1641 fatal_exit(1);
1642 }
1643 var19 = var_p + 1l;
1644 var13 = var19;
1645 goto RET_LABEL14;
1646 RET_LABEL14:(void)0;
1647 }
1648 }
1649 var_p = var13;
1650 } else {
1651 goto BREAK_label;
1652 }
1653 }
1654 BREAK_label: (void)0;
1655 var = var_res;
1656 goto RET_LABEL;
1657 RET_LABEL:;
1658 return var;
1659 }
1660 /* method abstract_collection#SequenceRead#== for (self: SequenceRead[nullable Object], nullable Object): Bool */
1661 short int standard___standard__SequenceRead___standard__kernel__Object___61d_61d(val* self, val* p0) {
1662 short int var /* : Bool */;
1663 val* var_o /* var o: nullable Object */;
1664 short int var1 /* : Bool */;
1665 int cltype;
1666 int idtype;
1667 short int var2 /* : Bool */;
1668 long var3 /* : Int */;
1669 long var_l /* var l: Int */;
1670 long var4 /* : Int */;
1671 short int var5 /* : Bool */;
1672 short int var7 /* : Bool */;
1673 short int var8 /* : Bool */;
1674 long var_i /* var i: Int */;
1675 short int var9 /* : Bool */;
1676 short int var11 /* : Bool */;
1677 int cltype12;
1678 int idtype13;
1679 const char* var_class_name;
1680 short int var14 /* : Bool */;
1681 val* var15 /* : nullable Object */;
1682 val* var16 /* : nullable Object */;
1683 short int var17 /* : Bool */;
1684 short int var18 /* : Bool */;
1685 long var19 /* : Int */;
1686 short int var21 /* : Bool */;
1687 int cltype22;
1688 int idtype23;
1689 const char* var_class_name24;
1690 long var25 /* : Int */;
1691 var_o = p0;
1692 /* <var_o:nullable Object> isa SequenceRead[nullable Object] */
1693 cltype = type_standard__SequenceRead__nullable__standard__Object.color;
1694 idtype = type_standard__SequenceRead__nullable__standard__Object.id;
1695 if(var_o == NULL) {
1696 var1 = 0;
1697 } else {
1698 if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) {
1699 var1 = 0;
1700 } else {
1701 var1 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype;
1702 }
1703 }
1704 var2 = !var1;
1705 if (var2){
1706 var = 0;
1707 goto RET_LABEL;
1708 } else {
1709 }
1710 {
1711 var3 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:SequenceRead[nullable Object]>*/
1712 }
1713 var_l = var3;
1714 {
1715 var4 = ((long(*)(val* self))((((long)var_o&3)?class_info[((long)var_o&3)]:var_o->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(var_o); /* length on <var_o:nullable Object(SequenceRead[nullable Object])>*/
1716 }
1717 {
1718 { /* Inline kernel#Int#!= (var4,var_l) on <var4:Int> */
1719 var7 = var4 == var_l;
1720 var8 = !var7;
1721 var5 = var8;
1722 goto RET_LABEL6;
1723 RET_LABEL6:(void)0;
1724 }
1725 }
1726 if (var5){
1727 var = 0;
1728 goto RET_LABEL;
1729 } else {
1730 }
1731 var_i = 0l;
1732 for(;;) {
1733 {
1734 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
1735 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1736 /* <var_l:Int> isa OTHER */
1737 var11 = 1; /* easy <var_l:Int> isa OTHER*/
1738 if (unlikely(!var11)) {
1739 var_class_name = type_standard__Int.name;
1740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1741 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1742 fatal_exit(1);
1743 }
1744 var14 = var_i < var_l;
1745 var9 = var14;
1746 goto RET_LABEL10;
1747 RET_LABEL10:(void)0;
1748 }
1749 }
1750 if (var9){
1751 {
1752 var15 = ((val*(*)(val* self, long p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on <self:SequenceRead[nullable Object]>*/
1753 }
1754 {
1755 var16 = ((val*(*)(val* self, long p0))((((long)var_o&3)?class_info[((long)var_o&3)]:var_o->class)->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var_o, var_i); /* [] on <var_o:nullable Object(SequenceRead[nullable Object])>*/
1756 }
1757 if (var15 == NULL) {
1758 var17 = (var16 != NULL);
1759 } else {
1760 var18 = ((short int(*)(val* self, val* p0))((((long)var15&3)?class_info[((long)var15&3)]:var15->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var15, var16); /* != on <var15:nullable Object>*/
1761 var17 = var18;
1762 }
1763 if (var17){
1764 var = 0;
1765 goto RET_LABEL;
1766 } else {
1767 }
1768 {
1769 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
1770 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1771 /* <1l:Int> isa OTHER */
1772 var21 = 1; /* easy <1l:Int> isa OTHER*/
1773 if (unlikely(!var21)) {
1774 var_class_name24 = type_standard__Int.name;
1775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
1776 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1777 fatal_exit(1);
1778 }
1779 var25 = var_i + 1l;
1780 var19 = var25;
1781 goto RET_LABEL20;
1782 RET_LABEL20:(void)0;
1783 }
1784 }
1785 var_i = var19;
1786 } else {
1787 goto BREAK_label;
1788 }
1789 }
1790 BREAK_label: (void)0;
1791 var = 1;
1792 goto RET_LABEL;
1793 RET_LABEL:;
1794 return var;
1795 }
1796 /* method abstract_collection#SequenceRead#hash for (self: SequenceRead[nullable Object]): Int */
1797 long standard___standard__SequenceRead___standard__kernel__Object__hash(val* self) {
1798 long var /* : Int */;
1799 long var1 /* : Int */;
1800 long var2 /* : Int */;
1801 short int var4 /* : Bool */;
1802 int cltype;
1803 int idtype;
1804 const char* var_class_name;
1805 long var5 /* : Int */;
1806 long var_res /* var res: Int */;
1807 val* var_ /* var : SequenceRead[nullable Object] */;
1808 val* var6 /* : Iterator[nullable Object] */;
1809 val* var_7 /* var : IndexedIterator[nullable Object] */;
1810 short int var8 /* : Bool */;
1811 val* var9 /* : nullable Object */;
1812 val* var_e /* var e: nullable Object */;
1813 long var10 /* : Int */;
1814 short int var12 /* : Bool */;
1815 int cltype13;
1816 int idtype14;
1817 const char* var_class_name15;
1818 long var16 /* : Int */;
1819 long var17 /* : Int */;
1820 short int var19 /* : Bool */;
1821 int cltype20;
1822 int idtype21;
1823 const char* var_class_name22;
1824 long var23 /* : Int */;
1825 short int var24 /* : Bool */;
1826 short int var25 /* : Bool */;
1827 long var26 /* : Int */;
1828 long var27 /* : Int */;
1829 short int var29 /* : Bool */;
1830 int cltype30;
1831 int idtype31;
1832 const char* var_class_name32;
1833 long var33 /* : Int */;
1834 {
1835 var1 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:SequenceRead[nullable Object]>*/
1836 }
1837 {
1838 { /* Inline kernel#Int#+ (17l,var1) on <17l:Int> */
1839 /* Covariant cast for argument 0 (i) <var1:Int> isa OTHER */
1840 /* <var1:Int> isa OTHER */
1841 var4 = 1; /* easy <var1:Int> isa OTHER*/
1842 if (unlikely(!var4)) {
1843 var_class_name = type_standard__Int.name;
1844 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1845 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1846 fatal_exit(1);
1847 }
1848 var5 = 17l + var1;
1849 var2 = var5;
1850 goto RET_LABEL3;
1851 RET_LABEL3:(void)0;
1852 }
1853 }
1854 var_res = var2;
1855 var_ = self;
1856 {
1857 var6 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[nullable Object]>*/
1858 }
1859 var_7 = var6;
1860 for(;;) {
1861 {
1862 var8 = ((short int(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_7); /* is_ok on <var_7:IndexedIterator[nullable Object]>*/
1863 }
1864 if (var8){
1865 {
1866 var9 = ((val*(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_7); /* item on <var_7:IndexedIterator[nullable Object]>*/
1867 }
1868 var_e = var9;
1869 {
1870 { /* Inline kernel#Int#* (var_res,3l) on <var_res:Int> */
1871 /* Covariant cast for argument 0 (i) <3l:Int> isa OTHER */
1872 /* <3l:Int> isa OTHER */
1873 var12 = 1; /* easy <3l:Int> isa OTHER*/
1874 if (unlikely(!var12)) {
1875 var_class_name15 = type_standard__Int.name;
1876 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
1877 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 541);
1878 fatal_exit(1);
1879 }
1880 var16 = var_res * 3l;
1881 var10 = var16;
1882 goto RET_LABEL11;
1883 RET_LABEL11:(void)0;
1884 }
1885 }
1886 {
1887 { /* Inline kernel#Int#/ (var10,2l) on <var10:Int> */
1888 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
1889 /* <2l:Int> isa OTHER */
1890 var19 = 1; /* easy <2l:Int> isa OTHER*/
1891 if (unlikely(!var19)) {
1892 var_class_name22 = type_standard__Int.name;
1893 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
1894 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 542);
1895 fatal_exit(1);
1896 }
1897 var23 = var10 / 2l;
1898 var17 = var23;
1899 goto RET_LABEL18;
1900 RET_LABEL18:(void)0;
1901 }
1902 }
1903 var_res = var17;
1904 if (var_e == NULL) {
1905 var24 = 0; /* is null */
1906 } else {
1907 var24 = 1; /* arg is null and recv is not */
1908 }
1909 if (0) {
1910 var25 = ((short int(*)(val* self, val* p0))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var_e, ((val*)NULL)); /* != on <var_e:nullable Object>*/
1911 var24 = var25;
1912 }
1913 if (var24){
1914 {
1915 var26 = ((long(*)(val* self))((((long)var_e&3)?class_info[((long)var_e&3)]:var_e->class)->vft[COLOR_standard__kernel__Object__hash]))(var_e); /* hash on <var_e:nullable Object(Object)>*/
1916 }
1917 {
1918 { /* Inline kernel#Int#+ (var_res,var26) on <var_res:Int> */
1919 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
1920 /* <var26:Int> isa OTHER */
1921 var29 = 1; /* easy <var26:Int> isa OTHER*/
1922 if (unlikely(!var29)) {
1923 var_class_name32 = type_standard__Int.name;
1924 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
1925 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1926 fatal_exit(1);
1927 }
1928 var33 = var_res + var26;
1929 var27 = var33;
1930 goto RET_LABEL28;
1931 RET_LABEL28:(void)0;
1932 }
1933 }
1934 var_res = var27;
1935 } else {
1936 }
1937 {
1938 ((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_7); /* next on <var_7:IndexedIterator[nullable Object]>*/
1939 }
1940 } else {
1941 goto BREAK_label;
1942 }
1943 }
1944 BREAK_label: (void)0;
1945 {
1946 ((void(*)(val* self))((((long)var_7&3)?class_info[((long)var_7&3)]:var_7->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_7); /* finish on <var_7:IndexedIterator[nullable Object]>*/
1947 }
1948 var = var_res;
1949 goto RET_LABEL;
1950 RET_LABEL:;
1951 return var;
1952 }
1953 /* method abstract_collection#SequenceRead#iterator_from for (self: SequenceRead[nullable Object], Int): IndexedIterator[nullable Object] */
1954 val* standard___standard__SequenceRead___iterator_from(val* self, long p0) {
1955 val* var /* : IndexedIterator[nullable Object] */;
1956 long var_pos /* var pos: Int */;
1957 val* var1 /* : Iterator[nullable Object] */;
1958 val* var_res /* var res: IndexedIterator[nullable Object] */;
1959 short int var2 /* : Bool */;
1960 short int var3 /* : Bool */;
1961 short int var5 /* : Bool */;
1962 int cltype;
1963 int idtype;
1964 const char* var_class_name;
1965 short int var6 /* : Bool */;
1966 short int var_ /* var : Bool */;
1967 short int var7 /* : Bool */;
1968 long var8 /* : Int */;
1969 short int var10 /* : Bool */;
1970 int cltype11;
1971 int idtype12;
1972 const char* var_class_name13;
1973 long var14 /* : Int */;
1974 var_pos = p0;
1975 {
1976 var1 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(self); /* iterator on <self:SequenceRead[nullable Object]>*/
1977 }
1978 var_res = var1;
1979 for(;;) {
1980 {
1981 { /* Inline kernel#Int#> (var_pos,0l) on <var_pos:Int> */
1982 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1983 /* <0l:Int> isa OTHER */
1984 var5 = 1; /* easy <0l:Int> isa OTHER*/
1985 if (unlikely(!var5)) {
1986 var_class_name = type_standard__Int.name;
1987 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1988 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
1989 fatal_exit(1);
1990 }
1991 var6 = var_pos > 0l;
1992 var3 = var6;
1993 goto RET_LABEL4;
1994 RET_LABEL4:(void)0;
1995 }
1996 }
1997 var_ = var3;
1998 if (var3){
1999 {
2000 var7 = ((short int(*)(val* self))((((long)var_res&3)?class_info[((long)var_res&3)]:var_res->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_res); /* is_ok on <var_res:IndexedIterator[nullable Object]>*/
2001 }
2002 var2 = var7;
2003 } else {
2004 var2 = var_;
2005 }
2006 if (var2){
2007 {
2008 ((void(*)(val* self))((((long)var_res&3)?class_info[((long)var_res&3)]:var_res->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_res); /* next on <var_res:IndexedIterator[nullable Object]>*/
2009 }
2010 {
2011 { /* Inline kernel#Int#- (var_pos,1l) on <var_pos:Int> */
2012 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2013 /* <1l:Int> isa OTHER */
2014 var10 = 1; /* easy <1l:Int> isa OTHER*/
2015 if (unlikely(!var10)) {
2016 var_class_name13 = type_standard__Int.name;
2017 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
2018 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
2019 fatal_exit(1);
2020 }
2021 var14 = var_pos - 1l;
2022 var8 = var14;
2023 goto RET_LABEL9;
2024 RET_LABEL9:(void)0;
2025 }
2026 }
2027 var_pos = var8;
2028 } else {
2029 goto BREAK_label;
2030 }
2031 }
2032 BREAK_label: (void)0;
2033 var = var_res;
2034 goto RET_LABEL;
2035 RET_LABEL:;
2036 return var;
2037 }
2038 /* method abstract_collection#Sequence#first= for (self: Sequence[nullable Object], nullable Object) */
2039 void standard___standard__Sequence___first_61d(val* self, val* p0) {
2040 short int var /* : Bool */;
2041 int cltype;
2042 int idtype;
2043 const struct type* type_struct;
2044 short int is_nullable;
2045 const char* var_class_name;
2046 val* var_item /* var item: nullable Object */;
2047 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
2048 /* <p0:nullable Object> isa E */
2049 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Sequence___35dE];
2050 cltype = type_struct->color;
2051 idtype = type_struct->id;
2052 is_nullable = type_struct->is_nullable;
2053 if(p0 == NULL) {
2054 var = is_nullable;
2055 } else {
2056 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2057 var = 0;
2058 } else {
2059 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2060 }
2061 }
2062 if (unlikely(!var)) {
2063 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2064 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
2065 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 918);
2066 fatal_exit(1);
2067 }
2068 var_item = p0;
2069 {
2070 ((void(*)(val* self, long p0, val* p1))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, 0l, var_item); /* []= on <self:Sequence[nullable Object]>*/
2071 }
2072 RET_LABEL:;
2073 }
2074 /* method abstract_collection#Sequence#add for (self: Sequence[nullable Object], nullable Object) */
2075 void standard___standard__Sequence___SimpleCollection__add(val* self, val* p0) {
2076 short int var /* : Bool */;
2077 int cltype;
2078 int idtype;
2079 const struct type* type_struct;
2080 short int is_nullable;
2081 const char* var_class_name;
2082 val* var_e /* var e: nullable Object */;
2083 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
2084 /* <p0:nullable Object> isa E */
2085 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Sequence___35dE];
2086 cltype = type_struct->color;
2087 idtype = type_struct->id;
2088 is_nullable = type_struct->is_nullable;
2089 if(p0 == NULL) {
2090 var = is_nullable;
2091 } else {
2092 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2093 var = 0;
2094 } else {
2095 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2096 }
2097 }
2098 if (unlikely(!var)) {
2099 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2100 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
2101 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 949);
2102 fatal_exit(1);
2103 }
2104 var_e = p0;
2105 {
2106 ((void(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Sequence__push]))(self, var_e); /* push on <self:Sequence[nullable Object]>*/
2107 }
2108 RET_LABEL:;
2109 }
2110 /* method abstract_collection#Sequence#append for (self: Sequence[nullable Object], Collection[nullable Object]) */
2111 void standard___standard__Sequence___append(val* self, val* p0) {
2112 short int var /* : Bool */;
2113 int cltype;
2114 int idtype;
2115 const struct type* type_struct;
2116 const char* var_class_name;
2117 val* var_coll /* var coll: Collection[nullable Object] */;
2118 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[E] */
2119 /* <p0:Collection[nullable Object]> isa Collection[E] */
2120 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Collection__standard__Sequence___35dE];
2121 cltype = type_struct->color;
2122 idtype = type_struct->id;
2123 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2124 var = 0;
2125 } else {
2126 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2127 }
2128 if (unlikely(!var)) {
2129 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2130 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
2131 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 960);
2132 fatal_exit(1);
2133 }
2134 var_coll = p0;
2135 {
2136 ((void(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add_all]))(self, var_coll); /* add_all on <self:Sequence[nullable Object]>*/
2137 }
2138 RET_LABEL:;
2139 }
2140 /* method abstract_collection#Sequence#pop for (self: Sequence[nullable Object]): nullable Object */
2141 val* standard___standard__Sequence___pop(val* self) {
2142 val* var /* : nullable Object */;
2143 const char* var_class_name;
2144 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
2145 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "pop", var_class_name);
2146 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 969);
2147 fatal_exit(1);
2148 RET_LABEL:;
2149 return var;
2150 }
2151 /* method abstract_collection#Sequence#unshift for (self: Sequence[nullable Object], nullable Object) */
2152 void standard___standard__Sequence___unshift(val* self, val* p0) {
2153 const char* var_class_name;
2154 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
2155 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "unshift", var_class_name);
2156 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 979);
2157 fatal_exit(1);
2158 RET_LABEL:;
2159 }
2160 /* method abstract_collection#Sequence#prepend for (self: Sequence[nullable Object], Collection[nullable Object]) */
2161 void standard___standard__Sequence___prepend(val* self, val* p0) {
2162 short int var /* : Bool */;
2163 int cltype;
2164 int idtype;
2165 const struct type* type_struct;
2166 const char* var_class_name;
2167 val* var_coll /* var coll: Collection[nullable Object] */;
2168 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[E] */
2169 /* <p0:Collection[nullable Object]> isa Collection[E] */
2170 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Collection__standard__Sequence___35dE];
2171 cltype = type_struct->color;
2172 idtype = type_struct->id;
2173 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2174 var = 0;
2175 } else {
2176 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2177 }
2178 if (unlikely(!var)) {
2179 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2180 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
2181 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 987);
2182 fatal_exit(1);
2183 }
2184 var_coll = p0;
2185 {
2186 ((void(*)(val* self, val* p0, long p1))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Sequence__insert_all]))(self, var_coll, 0l); /* insert_all on <self:Sequence[nullable Object]>*/
2187 }
2188 RET_LABEL:;
2189 }
2190 /* method abstract_collection#Sequence#shift for (self: Sequence[nullable Object]): nullable Object */
2191 val* standard___standard__Sequence___shift(val* self) {
2192 val* var /* : nullable Object */;
2193 const char* var_class_name;
2194 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
2195 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "shift", var_class_name);
2196 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 996);
2197 fatal_exit(1);
2198 RET_LABEL:;
2199 return var;
2200 }
2201 /* method abstract_collection#Sequence#insert for (self: Sequence[nullable Object], nullable Object, Int) */
2202 void standard___standard__Sequence___insert(val* self, val* p0, long p1) {
2203 const char* var_class_name;
2204 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
2205 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "insert", var_class_name);
2206 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1022);
2207 fatal_exit(1);
2208 RET_LABEL:;
2209 }
2210 /* method abstract_collection#Sequence#insert_all for (self: Sequence[nullable Object], Collection[nullable Object], Int) */
2211 void standard___standard__Sequence___insert_all(val* self, val* p0, long p1) {
2212 short int var /* : Bool */;
2213 int cltype;
2214 int idtype;
2215 const struct type* type_struct;
2216 const char* var_class_name;
2217 val* var_coll /* var coll: Collection[nullable Object] */;
2218 long var_index /* var index: Int */;
2219 short int var1 /* : Bool */;
2220 short int var2 /* : Bool */;
2221 short int var4 /* : Bool */;
2222 int cltype5;
2223 int idtype6;
2224 const char* var_class_name7;
2225 short int var8 /* : Bool */;
2226 short int var_ /* var : Bool */;
2227 long var9 /* : Int */;
2228 short int var10 /* : Bool */;
2229 short int var12 /* : Bool */;
2230 int cltype13;
2231 int idtype14;
2232 const char* var_class_name15;
2233 short int var16 /* : Bool */;
2234 long var17 /* : Int */;
2235 short int var18 /* : Bool */;
2236 short int var20 /* : Bool */;
2237 val* var_21 /* var : Collection[nullable Object] */;
2238 val* var22 /* : Iterator[nullable Object] */;
2239 val* var_23 /* var : Iterator[nullable Object] */;
2240 short int var24 /* : Bool */;
2241 val* var25 /* : nullable Object */;
2242 val* var_c /* var c: nullable Object */;
2243 long var26 /* : Int */;
2244 short int var28 /* : Bool */;
2245 int cltype29;
2246 int idtype30;
2247 const char* var_class_name31;
2248 long var32 /* : Int */;
2249 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[E] */
2250 /* <p0:Collection[nullable Object]> isa Collection[E] */
2251 type_struct = (((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Collection__standard__Sequence___35dE];
2252 cltype = type_struct->color;
2253 idtype = type_struct->id;
2254 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2255 var = 0;
2256 } else {
2257 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2258 }
2259 if (unlikely(!var)) {
2260 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2261 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
2262 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1032);
2263 fatal_exit(1);
2264 }
2265 var_coll = p0;
2266 var_index = p1;
2267 {
2268 { /* Inline kernel#Int#>= (var_index,0l) on <var_index:Int> */
2269 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2270 /* <0l:Int> isa OTHER */
2271 var4 = 1; /* easy <0l:Int> isa OTHER*/
2272 if (unlikely(!var4)) {
2273 var_class_name7 = type_standard__Int.name;
2274 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2275 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
2276 fatal_exit(1);
2277 }
2278 var8 = var_index >= 0l;
2279 var2 = var8;
2280 goto RET_LABEL3;
2281 RET_LABEL3:(void)0;
2282 }
2283 }
2284 var_ = var2;
2285 if (var2){
2286 {
2287 var9 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:Sequence[nullable Object]>*/
2288 }
2289 {
2290 { /* Inline kernel#Int#< (var_index,var9) on <var_index:Int> */
2291 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
2292 /* <var9:Int> isa OTHER */
2293 var12 = 1; /* easy <var9:Int> isa OTHER*/
2294 if (unlikely(!var12)) {
2295 var_class_name15 = type_standard__Int.name;
2296 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
2297 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
2298 fatal_exit(1);
2299 }
2300 var16 = var_index < var9;
2301 var10 = var16;
2302 goto RET_LABEL11;
2303 RET_LABEL11:(void)0;
2304 }
2305 }
2306 var1 = var10;
2307 } else {
2308 var1 = var_;
2309 }
2310 if (unlikely(!var1)) {
2311 PRINT_ERROR("Runtime error: %s", "Assert failed");
2312 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1042);
2313 fatal_exit(1);
2314 }
2315 {
2316 var17 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:Sequence[nullable Object]>*/
2317 }
2318 {
2319 { /* Inline kernel#Int#== (var_index,var17) on <var_index:Int> */
2320 var20 = var_index == var17;
2321 var18 = var20;
2322 goto RET_LABEL19;
2323 RET_LABEL19:(void)0;
2324 }
2325 }
2326 if (var18){
2327 {
2328 ((void(*)(val* self, val* p0))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__SimpleCollection__add_all]))(self, var_coll); /* add_all on <self:Sequence[nullable Object]>*/
2329 }
2330 } else {
2331 }
2332 var_21 = var_coll;
2333 {
2334 var22 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_21); /* iterator on <var_21:Collection[nullable Object]>*/
2335 }
2336 var_23 = var22;
2337 for(;;) {
2338 {
2339 var24 = ((short int(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_23); /* is_ok on <var_23:Iterator[nullable Object]>*/
2340 }
2341 if (var24){
2342 {
2343 var25 = ((val*(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_23); /* item on <var_23:Iterator[nullable Object]>*/
2344 }
2345 var_c = var25;
2346 {
2347 ((void(*)(val* self, val* p0, long p1))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Sequence__insert]))(self, var_c, var_index); /* insert on <self:Sequence[nullable Object]>*/
2348 }
2349 {
2350 { /* Inline kernel#Int#+ (var_index,1l) on <var_index:Int> */
2351 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2352 /* <1l:Int> isa OTHER */
2353 var28 = 1; /* easy <1l:Int> isa OTHER*/
2354 if (unlikely(!var28)) {
2355 var_class_name31 = type_standard__Int.name;
2356 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
2357 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2358 fatal_exit(1);
2359 }
2360 var32 = var_index + 1l;
2361 var26 = var32;
2362 goto RET_LABEL27;
2363 RET_LABEL27:(void)0;
2364 }
2365 }
2366 var_index = var26;
2367 {
2368 ((void(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_23); /* next on <var_23:Iterator[nullable Object]>*/
2369 }
2370 } else {
2371 goto BREAK_label;
2372 }
2373 }
2374 BREAK_label: (void)0;
2375 {
2376 ((void(*)(val* self))((((long)var_23&3)?class_info[((long)var_23&3)]:var_23->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_23); /* finish on <var_23:Iterator[nullable Object]>*/
2377 }
2378 RET_LABEL:;
2379 }
2380 /* method abstract_collection#Sequence#remove_at for (self: Sequence[nullable Object], Int) */
2381 void standard___standard__Sequence___remove_at(val* self, long p0) {
2382 const char* var_class_name;
2383 var_class_name = self == NULL ? "null" : (((long)self&3)?type_info[((long)self&3)]:self->type)->name;
2384 PRINT_ERROR("Runtime error: Abstract method `%s` called on `%s`", "remove_at", var_class_name);
2385 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1052);
2386 fatal_exit(1);
2387 RET_LABEL:;
2388 }
2389 /* method abstract_collection#CoupleMap#iterator for (self: CoupleMap[nullable Object, nullable Object]): MapIterator[nullable Object, nullable Object] */
2390 val* standard___standard__CoupleMap___MapRead__iterator(val* self) {
2391 val* var /* : MapIterator[nullable Object, nullable Object] */;
2392 val* var1 /* : CoupleMapIterator[nullable Object, nullable Object] */;
2393 val* var2 /* : Iterator[Couple[nullable Object, nullable Object]] */;
2394 var1 = NEW_standard__abstract_collection__CoupleMapIterator((((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__abstract_collection__CoupleMapIterator__standard__CoupleMap___35dK__standard__CoupleMap___35dV]);
2395 {
2396 var2 = standard___standard__ArrayMap___standard__abstract_collection__CoupleMap__couple_iterator(self);
2397 }
2398 {
2399 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__CoupleMapIterator__iter_61d]))(var1, var2); /* iter= on <var1:CoupleMapIterator[nullable Object, nullable Object]>*/
2400 }
2401 {
2402 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:CoupleMapIterator[nullable Object, nullable Object]>*/
2403 }
2404 var = var1;
2405 goto RET_LABEL;
2406 RET_LABEL:;
2407 return var;
2408 }
2409 /* method abstract_collection#CoupleMap#has_key for (self: CoupleMap[nullable Object, nullable Object], nullable Object): Bool */
2410 short int standard___standard__CoupleMap___MapRead__has_key(val* self, val* p0) {
2411 short int var /* : Bool */;
2412 val* var_key /* var key: nullable Object */;
2413 val* var1 /* : nullable Couple[nullable Object, nullable Object] */;
2414 short int var2 /* : Bool */;
2415 short int var3 /* : Bool */;
2416 val* var_other /* var other: nullable Object */;
2417 short int var5 /* : Bool */;
2418 short int var6 /* : Bool */;
2419 var_key = p0;
2420 {
2421 var1 = standard___standard__ArrayMap___standard__abstract_collection__CoupleMap__couple_at(self, var_key);
2422 }
2423 if (var1 == NULL) {
2424 var2 = 0; /* is null */
2425 } else {
2426 var2 = 1; /* arg is null and recv is not */
2427 }
2428 if (0) {
2429 { /* Inline kernel#Object#!= (var1,((val*)NULL)) on <var1:nullable Couple[nullable Object, nullable Object]> */
2430 var_other = ((val*)NULL);
2431 {
2432 var5 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable Couple[nullable Object, nullable Object](Couple[nullable Object, nullable Object])>*/
2433 }
2434 var6 = !var5;
2435 var3 = var6;
2436 goto RET_LABEL4;
2437 RET_LABEL4:(void)0;
2438 }
2439 var2 = var3;
2440 }
2441 var = var2;
2442 goto RET_LABEL;
2443 RET_LABEL:;
2444 return var;
2445 }
2446 /* method abstract_collection#CoupleMapIterator#item for (self: CoupleMapIterator[nullable Object, nullable Object]): nullable Object */
2447 val* standard__abstract_collection___standard__abstract_collection__CoupleMapIterator___MapIterator__item(val* self) {
2448 val* var /* : nullable Object */;
2449 val* var1 /* : Iterator[Couple[nullable Object, nullable Object]] */;
2450 val* var2 /* : nullable Object */;
2451 val* var3 /* : nullable Object */;
2452 val* var5 /* : nullable Object */;
2453 var1 = self->attrs[COLOR_standard__abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[nullable Object, nullable Object]> */
2454 if (unlikely(var1 == NULL)) {
2455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
2456 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1102);
2457 fatal_exit(1);
2458 }
2459 {
2460 var2 = ((val*(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var1); /* item on <var1:Iterator[Couple[nullable Object, nullable Object]]>*/
2461 }
2462 {
2463 { /* Inline abstract_collection#Couple#second (var2) on <var2:nullable Object(Couple[nullable Object, nullable Object])> */
2464 var5 = var2->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on <var2:nullable Object(Couple[nullable Object, nullable Object])> */
2465 var3 = var5;
2466 RET_LABEL4:(void)0;
2467 }
2468 }
2469 var = var3;
2470 goto RET_LABEL;
2471 RET_LABEL:;
2472 return var;
2473 }
2474 /* method abstract_collection#CoupleMapIterator#key for (self: CoupleMapIterator[nullable Object, nullable Object]): nullable Object */
2475 val* standard__abstract_collection___standard__abstract_collection__CoupleMapIterator___MapIterator__key(val* self) {
2476 val* var /* : nullable Object */;
2477 val* var1 /* : Iterator[Couple[nullable Object, nullable Object]] */;
2478 val* var2 /* : nullable Object */;
2479 val* var3 /* : nullable Object */;
2480 val* var5 /* : nullable Object */;
2481 var1 = self->attrs[COLOR_standard__abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[nullable Object, nullable Object]> */
2482 if (unlikely(var1 == NULL)) {
2483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
2484 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1106);
2485 fatal_exit(1);
2486 }
2487 {
2488 var2 = ((val*(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var1); /* item on <var1:Iterator[Couple[nullable Object, nullable Object]]>*/
2489 }
2490 {
2491 { /* Inline abstract_collection#Couple#first (var2) on <var2:nullable Object(Couple[nullable Object, nullable Object])> */
2492 var5 = var2->attrs[COLOR_standard__abstract_collection__Couple___first].val; /* _first on <var2:nullable Object(Couple[nullable Object, nullable Object])> */
2493 var3 = var5;
2494 RET_LABEL4:(void)0;
2495 }
2496 }
2497 var = var3;
2498 goto RET_LABEL;
2499 RET_LABEL:;
2500 return var;
2501 }
2502 /* method abstract_collection#CoupleMapIterator#is_ok for (self: CoupleMapIterator[nullable Object, nullable Object]): Bool */
2503 short int standard__abstract_collection___standard__abstract_collection__CoupleMapIterator___MapIterator__is_ok(val* self) {
2504 short int var /* : Bool */;
2505 val* var1 /* : Iterator[Couple[nullable Object, nullable Object]] */;
2506 short int var2 /* : Bool */;
2507 var1 = self->attrs[COLOR_standard__abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[nullable Object, nullable Object]> */
2508 if (unlikely(var1 == NULL)) {
2509 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
2510 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1108);
2511 fatal_exit(1);
2512 }
2513 {
2514 var2 = ((short int(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var1); /* is_ok on <var1:Iterator[Couple[nullable Object, nullable Object]]>*/
2515 }
2516 var = var2;
2517 goto RET_LABEL;
2518 RET_LABEL:;
2519 return var;
2520 }
2521 /* method abstract_collection#CoupleMapIterator#next for (self: CoupleMapIterator[nullable Object, nullable Object]) */
2522 void standard__abstract_collection___standard__abstract_collection__CoupleMapIterator___MapIterator__next(val* self) {
2523 val* var /* : Iterator[Couple[nullable Object, nullable Object]] */;
2524 var = self->attrs[COLOR_standard__abstract_collection__CoupleMapIterator___iter].val; /* _iter on <self:CoupleMapIterator[nullable Object, nullable Object]> */
2525 if (unlikely(var == NULL)) {
2526 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
2527 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1112);
2528 fatal_exit(1);
2529 }
2530 {
2531 ((void(*)(val* self))((((long)var&3)?class_info[((long)var&3)]:var->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var); /* next on <var:Iterator[Couple[nullable Object, nullable Object]]>*/
2532 }
2533 RET_LABEL:;
2534 }
2535 /* method abstract_collection#CoupleMapIterator#iter= for (self: CoupleMapIterator[nullable Object, nullable Object], Iterator[Couple[nullable Object, nullable Object]]) */
2536 void standard__abstract_collection___standard__abstract_collection__CoupleMapIterator___iter_61d(val* self, val* p0) {
2537 short int var /* : Bool */;
2538 int cltype;
2539 int idtype;
2540 const struct type* type_struct;
2541 const char* var_class_name;
2542 /* Covariant cast for argument 0 (iter) <p0:Iterator[Couple[nullable Object, nullable Object]]> isa Iterator[Couple[K, V]] */
2543 /* <p0:Iterator[Couple[nullable Object, nullable Object]]> isa Iterator[Couple[K, V]] */
2544 type_struct = self->type->resolution_table->types[COLOR_standard__Iterator__standard__Couple__standard__abstract_collection__CoupleMapIterator___35dK__standard__abstract_collection__CoupleMapIterator___35dV];
2545 cltype = type_struct->color;
2546 idtype = type_struct->id;
2547 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2548 var = 0;
2549 } else {
2550 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2551 }
2552 if (unlikely(!var)) {
2553 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2554 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Iterator[Couple[K, V]]", var_class_name);
2555 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1115);
2556 fatal_exit(1);
2557 }
2558 self->attrs[COLOR_standard__abstract_collection__CoupleMapIterator___iter].val = p0; /* _iter on <self:CoupleMapIterator[nullable Object, nullable Object]> */
2559 RET_LABEL:;
2560 }
2561 /* method abstract_collection#CoupleMapIterator#init for (self: CoupleMapIterator[nullable Object, nullable Object]) */
2562 void standard__abstract_collection___standard__abstract_collection__CoupleMapIterator___standard__kernel__Object__init(val* self) {
2563 {
2564 ((void(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection___standard__abstract_collection__CoupleMapIterator___standard__kernel__Object__init]))(self); /* init on <self:CoupleMapIterator[nullable Object, nullable Object]>*/
2565 }
2566 RET_LABEL:;
2567 }
2568 /* method abstract_collection#Couple#first for (self: Couple[nullable Object, nullable Object]): nullable Object */
2569 val* standard___standard__Couple___first(val* self) {
2570 val* var /* : nullable Object */;
2571 val* var1 /* : nullable Object */;
2572 var1 = self->attrs[COLOR_standard__abstract_collection__Couple___first].val; /* _first on <self:Couple[nullable Object, nullable Object]> */
2573 var = var1;
2574 RET_LABEL:;
2575 return var;
2576 }
2577 /* method abstract_collection#Couple#first= for (self: Couple[nullable Object, nullable Object], nullable Object) */
2578 void standard___standard__Couple___first_61d(val* self, val* p0) {
2579 short int var /* : Bool */;
2580 int cltype;
2581 int idtype;
2582 const struct type* type_struct;
2583 short int is_nullable;
2584 const char* var_class_name;
2585 /* Covariant cast for argument 0 (first) <p0:nullable Object> isa F */
2586 /* <p0:nullable Object> isa F */
2587 type_struct = self->type->resolution_table->types[COLOR_standard__Couple___35dF];
2588 cltype = type_struct->color;
2589 idtype = type_struct->id;
2590 is_nullable = type_struct->is_nullable;
2591 if(p0 == NULL) {
2592 var = is_nullable;
2593 } else {
2594 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2595 var = 0;
2596 } else {
2597 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2598 }
2599 }
2600 if (unlikely(!var)) {
2601 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2602 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "F", var_class_name);
2603 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1123);
2604 fatal_exit(1);
2605 }
2606 self->attrs[COLOR_standard__abstract_collection__Couple___first].val = p0; /* _first on <self:Couple[nullable Object, nullable Object]> */
2607 RET_LABEL:;
2608 }
2609 /* method abstract_collection#Couple#second for (self: Couple[nullable Object, nullable Object]): nullable Object */
2610 val* standard___standard__Couple___second(val* self) {
2611 val* var /* : nullable Object */;
2612 val* var1 /* : nullable Object */;
2613 var1 = self->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on <self:Couple[nullable Object, nullable Object]> */
2614 var = var1;
2615 RET_LABEL:;
2616 return var;
2617 }
2618 /* method abstract_collection#Couple#second= for (self: Couple[nullable Object, nullable Object], nullable Object) */
2619 void standard___standard__Couple___second_61d(val* self, val* p0) {
2620 short int var /* : Bool */;
2621 int cltype;
2622 int idtype;
2623 const struct type* type_struct;
2624 short int is_nullable;
2625 const char* var_class_name;
2626 /* Covariant cast for argument 0 (second) <p0:nullable Object> isa S */
2627 /* <p0:nullable Object> isa S */
2628 type_struct = self->type->resolution_table->types[COLOR_standard__Couple___35dS];
2629 cltype = type_struct->color;
2630 idtype = type_struct->id;
2631 is_nullable = type_struct->is_nullable;
2632 if(p0 == NULL) {
2633 var = is_nullable;
2634 } else {
2635 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2636 var = 0;
2637 } else {
2638 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2639 }
2640 }
2641 if (unlikely(!var)) {
2642 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2643 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name);
2644 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1126);
2645 fatal_exit(1);
2646 }
2647 self->attrs[COLOR_standard__abstract_collection__Couple___second].val = p0; /* _second on <self:Couple[nullable Object, nullable Object]> */
2648 RET_LABEL:;
2649 }
2650 /* method abstract_collection#Couple#init for (self: Couple[nullable Object, nullable Object]) */
2651 void standard___standard__Couple___standard__kernel__Object__init(val* self) {
2652 {
2653 ((void(*)(val* self))(self->class->vft[COLOR_standard___standard__Couple___standard__kernel__Object__init]))(self); /* init on <self:Couple[nullable Object, nullable Object]>*/
2654 }
2655 RET_LABEL:;
2656 }