Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / core__array.sep.1.c
1 #include "core__array.sep.0.h"
2 /* method array$AbstractArrayRead$length for (self: AbstractArrayRead[nullable Object]): Int */
3 long core___core__AbstractArrayRead___core__abstract_collection__Collection__length(val* self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 var1 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:AbstractArrayRead[nullable Object]> */
7 var = var1;
8 RET_LABEL:;
9 return var;
10 }
11 /* method array$AbstractArrayRead$length= for (self: AbstractArrayRead[nullable Object], Int) */
12 void core___core__AbstractArrayRead___length_61d(val* self, long p0) {
13 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = p0; /* _length on <self:AbstractArrayRead[nullable Object]> */
14 RET_LABEL:;
15 }
16 /* method array$AbstractArrayRead$is_empty for (self: AbstractArrayRead[nullable Object]): Bool */
17 short int core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(val* self) {
18 short int var /* : Bool */;
19 long var1 /* : Int */;
20 short int var2 /* : Bool */;
21 short int var4 /* : Bool */;
22 var1 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:AbstractArrayRead[nullable Object]> */
23 {
24 { /* Inline kernel$Int$== (var1,0l) on <var1:Int> */
25 var4 = var1 == 0l;
26 var2 = var4;
27 goto RET_LABEL3;
28 RET_LABEL3:(void)0;
29 }
30 }
31 var = var2;
32 goto RET_LABEL;
33 RET_LABEL:;
34 return var;
35 }
36 /* method array$AbstractArrayRead$has for (self: AbstractArrayRead[nullable Object], nullable Object): Bool */
37 short int core___core__AbstractArrayRead___core__abstract_collection__Collection__has(val* self, val* p0) {
38 short int var /* : Bool */;
39 val* var_item /* var item: nullable Object */;
40 long var_i /* var i: Int */;
41 long var1 /* : Int */;
42 long var_l /* var l: Int */;
43 short int var2 /* : Bool */;
44 short int var4 /* : Bool */;
45 int cltype;
46 int idtype;
47 const char* var_class_name;
48 short int var5 /* : Bool */;
49 val* var6 /* : nullable Object */;
50 short int var7 /* : Bool */;
51 short int var8 /* : Bool */;
52 long var9 /* : Int */;
53 short int var11 /* : Bool */;
54 int cltype12;
55 int idtype13;
56 const char* var_class_name14;
57 long var15 /* : Int */;
58 var_item = p0;
59 var_i = 0l;
60 {
61 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
62 }
63 var_l = var1;
64 for(;;) {
65 {
66 { /* Inline kernel$Int$< (var_i,var_l) on <var_i:Int> */
67 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
68 /* <var_l:Int> isa OTHER */
69 var4 = 1; /* easy <var_l:Int> isa OTHER*/
70 if (unlikely(!var4)) {
71 var_class_name = type_core__Int.name;
72 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
73 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
74 fatal_exit(1);
75 }
76 var5 = var_i < var_l;
77 var2 = var5;
78 goto RET_LABEL3;
79 RET_LABEL3:(void)0;
80 }
81 }
82 if (var2){
83 {
84 var6 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on <self:AbstractArrayRead[nullable Object]>*/
85 }
86 if (var6 == NULL) {
87 var7 = (var_item == NULL);
88 } else {
89 var8 = ((short int(*)(val* self, val* p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var6, var_item); /* == on <var6:nullable Object>*/
90 var7 = var8;
91 }
92 if (var7){
93 var = 1;
94 goto RET_LABEL;
95 } else {
96 }
97 {
98 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
99 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
100 /* <1l:Int> isa OTHER */
101 var11 = 1; /* easy <1l:Int> isa OTHER*/
102 if (unlikely(!var11)) {
103 var_class_name14 = type_core__Int.name;
104 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
105 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
106 fatal_exit(1);
107 }
108 var15 = var_i + 1l;
109 var9 = var15;
110 goto RET_LABEL10;
111 RET_LABEL10:(void)0;
112 }
113 }
114 var_i = var9;
115 } else {
116 goto BREAK_label;
117 }
118 }
119 BREAK_label: (void)0;
120 var = 0;
121 goto RET_LABEL;
122 RET_LABEL:;
123 return var;
124 }
125 /* method array$AbstractArrayRead$count for (self: AbstractArrayRead[nullable Object], nullable Object): Int */
126 long core___core__AbstractArrayRead___core__abstract_collection__Collection__count(val* self, val* p0) {
127 long var /* : Int */;
128 val* var_item /* var item: nullable Object */;
129 long var_res /* var res: Int */;
130 long var_i /* var i: Int */;
131 long var1 /* : Int */;
132 long var_l /* var l: Int */;
133 short int var2 /* : Bool */;
134 short int var4 /* : Bool */;
135 int cltype;
136 int idtype;
137 const char* var_class_name;
138 short int var5 /* : Bool */;
139 val* var6 /* : nullable Object */;
140 short int var7 /* : Bool */;
141 short int var8 /* : Bool */;
142 long var9 /* : Int */;
143 short int var11 /* : Bool */;
144 int cltype12;
145 int idtype13;
146 const char* var_class_name14;
147 long var15 /* : Int */;
148 long var16 /* : Int */;
149 short int var18 /* : Bool */;
150 int cltype19;
151 int idtype20;
152 const char* var_class_name21;
153 long var22 /* : Int */;
154 var_item = p0;
155 var_res = 0l;
156 var_i = 0l;
157 {
158 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
159 }
160 var_l = var1;
161 for(;;) {
162 {
163 { /* Inline kernel$Int$< (var_i,var_l) on <var_i:Int> */
164 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
165 /* <var_l:Int> isa OTHER */
166 var4 = 1; /* easy <var_l:Int> isa OTHER*/
167 if (unlikely(!var4)) {
168 var_class_name = type_core__Int.name;
169 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
170 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
171 fatal_exit(1);
172 }
173 var5 = var_i < var_l;
174 var2 = var5;
175 goto RET_LABEL3;
176 RET_LABEL3:(void)0;
177 }
178 }
179 if (var2){
180 {
181 var6 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on <self:AbstractArrayRead[nullable Object]>*/
182 }
183 if (var6 == NULL) {
184 var7 = (var_item == NULL);
185 } else {
186 var8 = ((short int(*)(val* self, val* p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var6, var_item); /* == on <var6:nullable Object>*/
187 var7 = var8;
188 }
189 if (var7){
190 {
191 { /* Inline kernel$Int$+ (var_res,1l) on <var_res:Int> */
192 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
193 /* <1l:Int> isa OTHER */
194 var11 = 1; /* easy <1l:Int> isa OTHER*/
195 if (unlikely(!var11)) {
196 var_class_name14 = type_core__Int.name;
197 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
198 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
199 fatal_exit(1);
200 }
201 var15 = var_res + 1l;
202 var9 = var15;
203 goto RET_LABEL10;
204 RET_LABEL10:(void)0;
205 }
206 }
207 var_res = var9;
208 } else {
209 }
210 {
211 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
212 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
213 /* <1l:Int> isa OTHER */
214 var18 = 1; /* easy <1l:Int> isa OTHER*/
215 if (unlikely(!var18)) {
216 var_class_name21 = type_core__Int.name;
217 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
218 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
219 fatal_exit(1);
220 }
221 var22 = var_i + 1l;
222 var16 = var22;
223 goto RET_LABEL17;
224 RET_LABEL17:(void)0;
225 }
226 }
227 var_i = var16;
228 } else {
229 goto BREAK_label;
230 }
231 }
232 BREAK_label: (void)0;
233 var = var_res;
234 goto RET_LABEL;
235 RET_LABEL:;
236 return var;
237 }
238 /* method array$AbstractArrayRead$index_of for (self: AbstractArrayRead[nullable Object], nullable Object): Int */
239 long core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__index_of(val* self, val* p0) {
240 long var /* : Int */;
241 val* var_item /* var item: nullable Object */;
242 long var1 /* : Int */;
243 var_item = p0;
244 {
245 var1 = core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__index_of_from(self, var_item, 0l);
246 }
247 var = var1;
248 goto RET_LABEL;
249 RET_LABEL:;
250 return var;
251 }
252 /* method array$AbstractArrayRead$last_index_of for (self: AbstractArrayRead[nullable Object], nullable Object): Int */
253 long core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__last_index_of(val* self, val* p0) {
254 long var /* : Int */;
255 val* var_item /* var item: nullable Object */;
256 long var1 /* : Int */;
257 long var2 /* : Int */;
258 short int var4 /* : Bool */;
259 int cltype;
260 int idtype;
261 const char* var_class_name;
262 long var5 /* : Int */;
263 long var6 /* : Int */;
264 var_item = p0;
265 {
266 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
267 }
268 {
269 { /* Inline kernel$Int$- (var1,1l) on <var1:Int> */
270 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
271 /* <1l:Int> isa OTHER */
272 var4 = 1; /* easy <1l:Int> isa OTHER*/
273 if (unlikely(!var4)) {
274 var_class_name = type_core__Int.name;
275 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
276 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
277 fatal_exit(1);
278 }
279 var5 = var1 - 1l;
280 var2 = var5;
281 goto RET_LABEL3;
282 RET_LABEL3:(void)0;
283 }
284 }
285 {
286 var6 = core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__last_index_of_from(self, var_item, var2);
287 }
288 var = var6;
289 goto RET_LABEL;
290 RET_LABEL:;
291 return var;
292 }
293 /* method array$AbstractArrayRead$index_of_from for (self: AbstractArrayRead[nullable Object], nullable Object, Int): Int */
294 long core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__index_of_from(val* self, val* p0, long p1) {
295 long var /* : Int */;
296 val* var_item /* var item: nullable Object */;
297 long var_pos /* var pos: Int */;
298 long var_i /* var i: Int */;
299 long var1 /* : Int */;
300 long var_len /* var len: Int */;
301 short int var2 /* : Bool */;
302 short int var4 /* : Bool */;
303 int cltype;
304 int idtype;
305 const char* var_class_name;
306 short int var5 /* : Bool */;
307 val* var6 /* : nullable Object */;
308 short int var7 /* : Bool */;
309 short int var8 /* : Bool */;
310 long var9 /* : Int */;
311 short int var11 /* : Bool */;
312 int cltype12;
313 int idtype13;
314 const char* var_class_name14;
315 long var15 /* : Int */;
316 long var16 /* : Int */;
317 long var18 /* : Int */;
318 var_item = p0;
319 var_pos = p1;
320 var_i = var_pos;
321 {
322 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
323 }
324 var_len = var1;
325 for(;;) {
326 {
327 { /* Inline kernel$Int$< (var_i,var_len) on <var_i:Int> */
328 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
329 /* <var_len:Int> isa OTHER */
330 var4 = 1; /* easy <var_len:Int> isa OTHER*/
331 if (unlikely(!var4)) {
332 var_class_name = type_core__Int.name;
333 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
334 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
335 fatal_exit(1);
336 }
337 var5 = var_i < var_len;
338 var2 = var5;
339 goto RET_LABEL3;
340 RET_LABEL3:(void)0;
341 }
342 }
343 if (var2){
344 {
345 var6 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on <self:AbstractArrayRead[nullable Object]>*/
346 }
347 if (var6 == NULL) {
348 var7 = (var_item == NULL);
349 } else {
350 var8 = ((short int(*)(val* self, val* p0))((((long)var6&3)?class_info[((long)var6&3)]:var6->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var6, var_item); /* == on <var6:nullable Object>*/
351 var7 = var8;
352 }
353 if (var7){
354 var = var_i;
355 goto RET_LABEL;
356 } else {
357 }
358 {
359 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
360 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
361 /* <1l:Int> isa OTHER */
362 var11 = 1; /* easy <1l:Int> isa OTHER*/
363 if (unlikely(!var11)) {
364 var_class_name14 = type_core__Int.name;
365 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
366 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
367 fatal_exit(1);
368 }
369 var15 = var_i + 1l;
370 var9 = var15;
371 goto RET_LABEL10;
372 RET_LABEL10:(void)0;
373 }
374 }
375 var_i = var9;
376 } else {
377 goto BREAK_label;
378 }
379 }
380 BREAK_label: (void)0;
381 {
382 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
383 var18 = -1l;
384 var16 = var18;
385 goto RET_LABEL17;
386 RET_LABEL17:(void)0;
387 }
388 }
389 var = var16;
390 goto RET_LABEL;
391 RET_LABEL:;
392 return var;
393 }
394 /* method array$AbstractArrayRead$last_index_of_from for (self: AbstractArrayRead[nullable Object], nullable Object, Int): Int */
395 long core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__last_index_of_from(val* self, val* p0, long p1) {
396 long var /* : Int */;
397 val* var_item /* var item: nullable Object */;
398 long var_pos /* var pos: Int */;
399 long var_i /* var i: Int */;
400 short int var1 /* : Bool */;
401 short int var3 /* : Bool */;
402 int cltype;
403 int idtype;
404 const char* var_class_name;
405 short int var4 /* : Bool */;
406 val* var5 /* : nullable Object */;
407 short int var6 /* : Bool */;
408 short int var7 /* : Bool */;
409 long var8 /* : Int */;
410 short int var10 /* : Bool */;
411 int cltype11;
412 int idtype12;
413 const char* var_class_name13;
414 long var14 /* : Int */;
415 long var15 /* : Int */;
416 long var17 /* : Int */;
417 var_item = p0;
418 var_pos = p1;
419 var_i = var_pos;
420 for(;;) {
421 {
422 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
423 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
424 /* <0l:Int> isa OTHER */
425 var3 = 1; /* easy <0l:Int> isa OTHER*/
426 if (unlikely(!var3)) {
427 var_class_name = type_core__Int.name;
428 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
429 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
430 fatal_exit(1);
431 }
432 var4 = var_i >= 0l;
433 var1 = var4;
434 goto RET_LABEL2;
435 RET_LABEL2:(void)0;
436 }
437 }
438 if (var1){
439 {
440 var5 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on <self:AbstractArrayRead[nullable Object]>*/
441 }
442 if (var5 == NULL) {
443 var6 = (var_item == NULL);
444 } else {
445 var7 = ((short int(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var5, var_item); /* == on <var5:nullable Object>*/
446 var6 = var7;
447 }
448 if (var6){
449 var = var_i;
450 goto RET_LABEL;
451 } else {
452 {
453 { /* Inline kernel$Int$- (var_i,1l) on <var_i:Int> */
454 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
455 /* <1l:Int> isa OTHER */
456 var10 = 1; /* easy <1l:Int> isa OTHER*/
457 if (unlikely(!var10)) {
458 var_class_name13 = type_core__Int.name;
459 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
460 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
461 fatal_exit(1);
462 }
463 var14 = var_i - 1l;
464 var8 = var14;
465 goto RET_LABEL9;
466 RET_LABEL9:(void)0;
467 }
468 }
469 var_i = var8;
470 }
471 } else {
472 goto BREAK_label;
473 }
474 }
475 BREAK_label: (void)0;
476 {
477 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
478 var17 = -1l;
479 var15 = var17;
480 goto RET_LABEL16;
481 RET_LABEL16:(void)0;
482 }
483 }
484 var = var15;
485 goto RET_LABEL;
486 RET_LABEL:;
487 return var;
488 }
489 /* method array$AbstractArrayRead$reversed for (self: AbstractArrayRead[nullable Object]): Array[nullable Object] */
490 val* core___core__AbstractArrayRead___reversed(val* self) {
491 val* var /* : Array[nullable Object] */;
492 long var1 /* : Int */;
493 long var_cmp /* var cmp: Int */;
494 val* var2 /* : Array[nullable Object] */;
495 val* var_result /* var result: Array[nullable Object] */;
496 short int var3 /* : Bool */;
497 short int var5 /* : Bool */;
498 int cltype;
499 int idtype;
500 const char* var_class_name;
501 short int var6 /* : Bool */;
502 long var7 /* : Int */;
503 short int var9 /* : Bool */;
504 int cltype10;
505 int idtype11;
506 const char* var_class_name12;
507 long var13 /* : Int */;
508 val* var14 /* : nullable Object */;
509 var1 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:AbstractArrayRead[nullable Object]> */
510 var_cmp = var1;
511 var2 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__core__AbstractArrayRead___35dE]);
512 {
513 core___core__Array___with_capacity(var2, var_cmp); /* Direct call array$Array$with_capacity on <var2:Array[nullable Object]>*/
514 }
515 var_result = var2;
516 for(;;) {
517 {
518 { /* Inline kernel$Int$> (var_cmp,0l) on <var_cmp:Int> */
519 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
520 /* <0l:Int> isa OTHER */
521 var5 = 1; /* easy <0l:Int> isa OTHER*/
522 if (unlikely(!var5)) {
523 var_class_name = type_core__Int.name;
524 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
525 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
526 fatal_exit(1);
527 }
528 var6 = var_cmp > 0l;
529 var3 = var6;
530 goto RET_LABEL4;
531 RET_LABEL4:(void)0;
532 }
533 }
534 if (var3){
535 {
536 { /* Inline kernel$Int$- (var_cmp,1l) on <var_cmp:Int> */
537 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
538 /* <1l:Int> isa OTHER */
539 var9 = 1; /* easy <1l:Int> isa OTHER*/
540 if (unlikely(!var9)) {
541 var_class_name12 = type_core__Int.name;
542 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
543 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
544 fatal_exit(1);
545 }
546 var13 = var_cmp - 1l;
547 var7 = var13;
548 goto RET_LABEL8;
549 RET_LABEL8:(void)0;
550 }
551 }
552 var_cmp = var7;
553 {
554 var14 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var_cmp); /* [] on <self:AbstractArrayRead[nullable Object]>*/
555 }
556 {
557 core___core__Array___core__abstract_collection__SimpleCollection__add(var_result, var14); /* Direct call array$Array$add on <var_result:Array[nullable Object]>*/
558 }
559 } else {
560 goto BREAK_label;
561 }
562 }
563 BREAK_label: (void)0;
564 var = var_result;
565 goto RET_LABEL;
566 RET_LABEL:;
567 return var;
568 }
569 /* method array$AbstractArrayRead$copy_to for (self: AbstractArrayRead[nullable Object], Int, Int, AbstractArray[nullable Object], Int) */
570 void core___core__AbstractArrayRead___copy_to(val* self, long p0, long p1, val* p2, long p3) {
571 short int var /* : Bool */;
572 int cltype;
573 int idtype;
574 const struct type* type_struct;
575 const char* var_class_name;
576 long var_start /* var start: Int */;
577 long var_len /* var len: Int */;
578 val* var_dest /* var dest: AbstractArray[nullable Object] */;
579 long var_new_start /* var new_start: Int */;
580 short int var1 /* : Bool */;
581 short int var3 /* : Bool */;
582 int cltype4;
583 int idtype5;
584 const char* var_class_name6;
585 short int var7 /* : Bool */;
586 long var_i /* var i: Int */;
587 short int var8 /* : Bool */;
588 short int var10 /* : Bool */;
589 int cltype11;
590 int idtype12;
591 const char* var_class_name13;
592 short int var14 /* : Bool */;
593 long var15 /* : Int */;
594 short int var17 /* : Bool */;
595 int cltype18;
596 int idtype19;
597 const char* var_class_name20;
598 long var21 /* : Int */;
599 long var22 /* : Int */;
600 short int var24 /* : Bool */;
601 int cltype25;
602 int idtype26;
603 const char* var_class_name27;
604 long var28 /* : Int */;
605 long var29 /* : Int */;
606 short int var31 /* : Bool */;
607 int cltype32;
608 int idtype33;
609 const char* var_class_name34;
610 long var35 /* : Int */;
611 val* var36 /* : nullable Object */;
612 long var_i37 /* var i: Int */;
613 short int var38 /* : Bool */;
614 short int var40 /* : Bool */;
615 int cltype41;
616 int idtype42;
617 const char* var_class_name43;
618 short int var44 /* : Bool */;
619 long var45 /* : Int */;
620 short int var47 /* : Bool */;
621 int cltype48;
622 int idtype49;
623 const char* var_class_name50;
624 long var51 /* : Int */;
625 long var52 /* : Int */;
626 short int var54 /* : Bool */;
627 int cltype55;
628 int idtype56;
629 const char* var_class_name57;
630 long var58 /* : Int */;
631 val* var59 /* : nullable Object */;
632 long var60 /* : Int */;
633 short int var62 /* : Bool */;
634 int cltype63;
635 int idtype64;
636 const char* var_class_name65;
637 long var66 /* : Int */;
638 /* Covariant cast for argument 2 (dest) <p2:AbstractArray[nullable Object]> isa AbstractArray[E] */
639 /* <p2:AbstractArray[nullable Object]> isa AbstractArray[E] */
640 type_struct = self->type->resolution_table->types[COLOR_core__AbstractArray__core__AbstractArrayRead___35dE];
641 cltype = type_struct->color;
642 idtype = type_struct->id;
643 if(cltype >= p2->type->table_size) {
644 var = 0;
645 } else {
646 var = p2->type->type_table[cltype] == idtype;
647 }
648 if (unlikely(!var)) {
649 var_class_name = p2 == NULL ? "null" : p2->type->name;
650 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArray[E]", var_class_name);
651 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 106);
652 fatal_exit(1);
653 }
654 var_start = p0;
655 var_len = p1;
656 var_dest = p2;
657 var_new_start = p3;
658 {
659 { /* Inline kernel$Int$< (var_start,var_new_start) on <var_start:Int> */
660 /* Covariant cast for argument 0 (i) <var_new_start:Int> isa OTHER */
661 /* <var_new_start:Int> isa OTHER */
662 var3 = 1; /* easy <var_new_start:Int> isa OTHER*/
663 if (unlikely(!var3)) {
664 var_class_name6 = type_core__Int.name;
665 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
666 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
667 fatal_exit(1);
668 }
669 var7 = var_start < var_new_start;
670 var1 = var7;
671 goto RET_LABEL2;
672 RET_LABEL2:(void)0;
673 }
674 }
675 if (var1){
676 var_i = var_len;
677 for(;;) {
678 {
679 { /* Inline kernel$Int$> (var_i,0l) on <var_i:Int> */
680 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
681 /* <0l:Int> isa OTHER */
682 var10 = 1; /* easy <0l:Int> isa OTHER*/
683 if (unlikely(!var10)) {
684 var_class_name13 = type_core__Int.name;
685 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
686 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
687 fatal_exit(1);
688 }
689 var14 = var_i > 0l;
690 var8 = var14;
691 goto RET_LABEL9;
692 RET_LABEL9:(void)0;
693 }
694 }
695 if (var8){
696 {
697 { /* Inline kernel$Int$- (var_i,1l) on <var_i:Int> */
698 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
699 /* <1l:Int> isa OTHER */
700 var17 = 1; /* easy <1l:Int> isa OTHER*/
701 if (unlikely(!var17)) {
702 var_class_name20 = type_core__Int.name;
703 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
704 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
705 fatal_exit(1);
706 }
707 var21 = var_i - 1l;
708 var15 = var21;
709 goto RET_LABEL16;
710 RET_LABEL16:(void)0;
711 }
712 }
713 var_i = var15;
714 {
715 { /* Inline kernel$Int$+ (var_new_start,var_i) on <var_new_start:Int> */
716 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
717 /* <var_i:Int> isa OTHER */
718 var24 = 1; /* easy <var_i:Int> isa OTHER*/
719 if (unlikely(!var24)) {
720 var_class_name27 = type_core__Int.name;
721 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
722 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
723 fatal_exit(1);
724 }
725 var28 = var_new_start + var_i;
726 var22 = var28;
727 goto RET_LABEL23;
728 RET_LABEL23:(void)0;
729 }
730 }
731 {
732 { /* Inline kernel$Int$+ (var_start,var_i) on <var_start:Int> */
733 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
734 /* <var_i:Int> isa OTHER */
735 var31 = 1; /* easy <var_i:Int> isa OTHER*/
736 if (unlikely(!var31)) {
737 var_class_name34 = type_core__Int.name;
738 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
739 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
740 fatal_exit(1);
741 }
742 var35 = var_start + var_i;
743 var29 = var35;
744 goto RET_LABEL30;
745 RET_LABEL30:(void)0;
746 }
747 }
748 {
749 var36 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var29); /* [] on <self:AbstractArrayRead[nullable Object]>*/
750 }
751 {
752 ((void(*)(val* self, long p0, val* p1))(var_dest->class->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(var_dest, var22, var36); /* []= on <var_dest:AbstractArray[nullable Object]>*/
753 }
754 } else {
755 goto BREAK_label;
756 }
757 }
758 BREAK_label: (void)0;
759 } else {
760 var_i37 = 0l;
761 for(;;) {
762 {
763 { /* Inline kernel$Int$< (var_i37,var_len) on <var_i37:Int> */
764 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
765 /* <var_len:Int> isa OTHER */
766 var40 = 1; /* easy <var_len:Int> isa OTHER*/
767 if (unlikely(!var40)) {
768 var_class_name43 = type_core__Int.name;
769 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name43);
770 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
771 fatal_exit(1);
772 }
773 var44 = var_i37 < var_len;
774 var38 = var44;
775 goto RET_LABEL39;
776 RET_LABEL39:(void)0;
777 }
778 }
779 if (var38){
780 {
781 { /* Inline kernel$Int$+ (var_new_start,var_i37) on <var_new_start:Int> */
782 /* Covariant cast for argument 0 (i) <var_i37:Int> isa OTHER */
783 /* <var_i37:Int> isa OTHER */
784 var47 = 1; /* easy <var_i37:Int> isa OTHER*/
785 if (unlikely(!var47)) {
786 var_class_name50 = type_core__Int.name;
787 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name50);
788 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
789 fatal_exit(1);
790 }
791 var51 = var_new_start + var_i37;
792 var45 = var51;
793 goto RET_LABEL46;
794 RET_LABEL46:(void)0;
795 }
796 }
797 {
798 { /* Inline kernel$Int$+ (var_start,var_i37) on <var_start:Int> */
799 /* Covariant cast for argument 0 (i) <var_i37:Int> isa OTHER */
800 /* <var_i37:Int> isa OTHER */
801 var54 = 1; /* easy <var_i37:Int> isa OTHER*/
802 if (unlikely(!var54)) {
803 var_class_name57 = type_core__Int.name;
804 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name57);
805 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
806 fatal_exit(1);
807 }
808 var58 = var_start + var_i37;
809 var52 = var58;
810 goto RET_LABEL53;
811 RET_LABEL53:(void)0;
812 }
813 }
814 {
815 var59 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var52); /* [] on <self:AbstractArrayRead[nullable Object]>*/
816 }
817 {
818 ((void(*)(val* self, long p0, val* p1))(var_dest->class->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(var_dest, var45, var59); /* []= on <var_dest:AbstractArray[nullable Object]>*/
819 }
820 {
821 { /* Inline kernel$Int$+ (var_i37,1l) on <var_i37:Int> */
822 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
823 /* <1l:Int> isa OTHER */
824 var62 = 1; /* easy <1l:Int> isa OTHER*/
825 if (unlikely(!var62)) {
826 var_class_name65 = type_core__Int.name;
827 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name65);
828 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
829 fatal_exit(1);
830 }
831 var66 = var_i37 + 1l;
832 var60 = var66;
833 goto RET_LABEL61;
834 RET_LABEL61:(void)0;
835 }
836 }
837 var_i37 = var60;
838 } else {
839 goto BREAK_label67;
840 }
841 }
842 BREAK_label67: (void)0;
843 }
844 RET_LABEL:;
845 }
846 /* method array$AbstractArrayRead$iterator for (self: AbstractArrayRead[nullable Object]): IndexedIterator[nullable Object] */
847 val* core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(val* self) {
848 val* var /* : IndexedIterator[nullable Object] */;
849 val* var1 /* : nullable ArrayIterator[nullable Object] */;
850 val* var_res /* var res: nullable ArrayIterator[nullable Object] */;
851 short int var2 /* : Bool */;
852 short int var3 /* : Bool */;
853 val* var_other /* var other: nullable Object */;
854 short int var5 /* : Bool */;
855 short int var7 /* : Bool */;
856 val* var8 /* : ArrayIterator[nullable Object] */;
857 var1 = self->attrs[COLOR_core__array__AbstractArrayRead___free_iterator].val; /* _free_iterator on <self:AbstractArrayRead[nullable Object]> */
858 var_res = var1;
859 if (var_res == NULL) {
860 var2 = 1; /* is null */
861 } else {
862 var2 = 0; /* arg is null but recv is not */
863 }
864 if (0) {
865 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable ArrayIterator[nullable Object]> */
866 var_other = ((val*)NULL);
867 {
868 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable ArrayIterator[nullable Object](ArrayIterator[nullable Object])> */
869 var7 = var_res == var_other;
870 var5 = var7;
871 goto RET_LABEL6;
872 RET_LABEL6:(void)0;
873 }
874 }
875 var3 = var5;
876 goto RET_LABEL4;
877 RET_LABEL4:(void)0;
878 }
879 var2 = var3;
880 }
881 if (var2){
882 var8 = NEW_core__array__ArrayIterator(self->type->resolution_table->types[COLOR_core__array__ArrayIterator__core__AbstractArrayRead___35dE]);
883 {
884 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_core__array__ArrayIterator__array_61d]))(var8, self); /* array= on <var8:ArrayIterator[nullable Object]>*/
885 }
886 {
887 ((void(*)(val* self))(var8->class->vft[COLOR_core__kernel__Object__init]))(var8); /* init on <var8:ArrayIterator[nullable Object]>*/
888 }
889 var = var8;
890 goto RET_LABEL;
891 } else {
892 }
893 var_res->attrs[COLOR_core__array__ArrayIterator___index].l = 0l; /* _index on <var_res:nullable ArrayIterator[nullable Object](ArrayIterator[nullable Object])> */
894 self->attrs[COLOR_core__array__AbstractArrayRead___free_iterator].val = ((val*)NULL); /* _free_iterator on <self:AbstractArrayRead[nullable Object]> */
895 var = var_res;
896 goto RET_LABEL;
897 RET_LABEL:;
898 return var;
899 }
900 /* method array$AbstractArrayRead$reverse_iterator for (self: AbstractArrayRead[nullable Object]): IndexedIterator[nullable Object] */
901 val* core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__reverse_iterator(val* self) {
902 val* var /* : IndexedIterator[nullable Object] */;
903 val* var1 /* : ArrayReverseIterator[nullable Object] */;
904 var1 = NEW_core__array__ArrayReverseIterator(self->type->resolution_table->types[COLOR_core__array__ArrayReverseIterator__core__AbstractArrayRead___35dE]);
905 {
906 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__array__ArrayIterator__array_61d]))(var1, self); /* array= on <var1:ArrayReverseIterator[nullable Object]>*/
907 }
908 {
909 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:ArrayReverseIterator[nullable Object]>*/
910 }
911 var = var1;
912 goto RET_LABEL;
913 RET_LABEL:;
914 return var;
915 }
916 /* method array$AbstractArrayRead$sub for (self: AbstractArrayRead[nullable Object], Int, Int): Array[nullable Object] */
917 val* core___core__AbstractArrayRead___sub(val* self, long p0, long p1) {
918 val* var /* : Array[nullable Object] */;
919 long var_from /* var from: Int */;
920 long var_count /* var count: Int */;
921 short int var1 /* : Bool */;
922 short int var3 /* : Bool */;
923 int cltype;
924 int idtype;
925 const char* var_class_name;
926 short int var4 /* : Bool */;
927 long var5 /* : Int */;
928 short int var7 /* : Bool */;
929 int cltype8;
930 int idtype9;
931 const char* var_class_name10;
932 long var11 /* : Int */;
933 short int var12 /* : Bool */;
934 short int var14 /* : Bool */;
935 int cltype15;
936 int idtype16;
937 const char* var_class_name17;
938 short int var18 /* : Bool */;
939 long var19 /* : Int */;
940 short int var21 /* : Bool */;
941 int cltype22;
942 int idtype23;
943 const char* var_class_name24;
944 long var25 /* : Int */;
945 long var_to /* var to: Int */;
946 long var26 /* : Int */;
947 short int var27 /* : Bool */;
948 short int var29 /* : Bool */;
949 int cltype30;
950 int idtype31;
951 const char* var_class_name32;
952 short int var33 /* : Bool */;
953 long var34 /* : Int */;
954 val* var35 /* : Array[nullable Object] */;
955 long var36 /* : Int */;
956 short int var38 /* : Bool */;
957 int cltype39;
958 int idtype40;
959 const char* var_class_name41;
960 long var42 /* : Int */;
961 val* var_res /* var res: Array[nullable Object] */;
962 short int var43 /* : Bool */;
963 short int var45 /* : Bool */;
964 int cltype46;
965 int idtype47;
966 const char* var_class_name48;
967 short int var49 /* : Bool */;
968 val* var50 /* : nullable Object */;
969 long var51 /* : Int */;
970 short int var53 /* : Bool */;
971 int cltype54;
972 int idtype55;
973 const char* var_class_name56;
974 long var57 /* : Int */;
975 var_from = p0;
976 var_count = p1;
977 {
978 { /* Inline kernel$Int$< (var_from,0l) on <var_from:Int> */
979 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
980 /* <0l:Int> isa OTHER */
981 var3 = 1; /* easy <0l:Int> isa OTHER*/
982 if (unlikely(!var3)) {
983 var_class_name = type_core__Int.name;
984 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
985 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
986 fatal_exit(1);
987 }
988 var4 = var_from < 0l;
989 var1 = var4;
990 goto RET_LABEL2;
991 RET_LABEL2:(void)0;
992 }
993 }
994 if (var1){
995 {
996 { /* Inline kernel$Int$+ (var_count,var_from) on <var_count:Int> */
997 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
998 /* <var_from:Int> isa OTHER */
999 var7 = 1; /* easy <var_from:Int> isa OTHER*/
1000 if (unlikely(!var7)) {
1001 var_class_name10 = type_core__Int.name;
1002 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
1003 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1004 fatal_exit(1);
1005 }
1006 var11 = var_count + var_from;
1007 var5 = var11;
1008 goto RET_LABEL6;
1009 RET_LABEL6:(void)0;
1010 }
1011 }
1012 var_count = var5;
1013 var_from = 0l;
1014 } else {
1015 }
1016 {
1017 { /* Inline kernel$Int$< (var_count,0l) on <var_count:Int> */
1018 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1019 /* <0l:Int> isa OTHER */
1020 var14 = 1; /* easy <0l:Int> isa OTHER*/
1021 if (unlikely(!var14)) {
1022 var_class_name17 = type_core__Int.name;
1023 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
1024 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1025 fatal_exit(1);
1026 }
1027 var18 = var_count < 0l;
1028 var12 = var18;
1029 goto RET_LABEL13;
1030 RET_LABEL13:(void)0;
1031 }
1032 }
1033 if (var12){
1034 var_count = 0l;
1035 } else {
1036 }
1037 {
1038 { /* Inline kernel$Int$+ (var_from,var_count) on <var_from:Int> */
1039 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
1040 /* <var_count:Int> isa OTHER */
1041 var21 = 1; /* easy <var_count:Int> isa OTHER*/
1042 if (unlikely(!var21)) {
1043 var_class_name24 = type_core__Int.name;
1044 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
1045 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1046 fatal_exit(1);
1047 }
1048 var25 = var_from + var_count;
1049 var19 = var25;
1050 goto RET_LABEL20;
1051 RET_LABEL20:(void)0;
1052 }
1053 }
1054 var_to = var19;
1055 {
1056 var26 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
1057 }
1058 {
1059 { /* Inline kernel$Int$> (var_to,var26) on <var_to:Int> */
1060 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
1061 /* <var26:Int> isa OTHER */
1062 var29 = 1; /* easy <var26:Int> isa OTHER*/
1063 if (unlikely(!var29)) {
1064 var_class_name32 = type_core__Int.name;
1065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
1066 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1067 fatal_exit(1);
1068 }
1069 var33 = var_to > var26;
1070 var27 = var33;
1071 goto RET_LABEL28;
1072 RET_LABEL28:(void)0;
1073 }
1074 }
1075 if (var27){
1076 {
1077 var34 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
1078 }
1079 var_to = var34;
1080 } else {
1081 }
1082 var35 = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__core__AbstractArrayRead___35dE]);
1083 {
1084 { /* Inline kernel$Int$- (var_to,var_from) on <var_to:Int> */
1085 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
1086 /* <var_from:Int> isa OTHER */
1087 var38 = 1; /* easy <var_from:Int> isa OTHER*/
1088 if (unlikely(!var38)) {
1089 var_class_name41 = type_core__Int.name;
1090 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
1091 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1092 fatal_exit(1);
1093 }
1094 var42 = var_to - var_from;
1095 var36 = var42;
1096 goto RET_LABEL37;
1097 RET_LABEL37:(void)0;
1098 }
1099 }
1100 {
1101 core___core__Array___with_capacity(var35, var36); /* Direct call array$Array$with_capacity on <var35:Array[nullable Object]>*/
1102 }
1103 var_res = var35;
1104 for(;;) {
1105 {
1106 { /* Inline kernel$Int$< (var_from,var_to) on <var_from:Int> */
1107 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
1108 /* <var_to:Int> isa OTHER */
1109 var45 = 1; /* easy <var_to:Int> isa OTHER*/
1110 if (unlikely(!var45)) {
1111 var_class_name48 = type_core__Int.name;
1112 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
1113 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1114 fatal_exit(1);
1115 }
1116 var49 = var_from < var_to;
1117 var43 = var49;
1118 goto RET_LABEL44;
1119 RET_LABEL44:(void)0;
1120 }
1121 }
1122 if (var43){
1123 {
1124 var50 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var_from); /* [] on <self:AbstractArrayRead[nullable Object]>*/
1125 }
1126 {
1127 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var50); /* Direct call array$Array$add on <var_res:Array[nullable Object]>*/
1128 }
1129 {
1130 { /* Inline kernel$Int$+ (var_from,1l) on <var_from:Int> */
1131 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1132 /* <1l:Int> isa OTHER */
1133 var53 = 1; /* easy <1l:Int> isa OTHER*/
1134 if (unlikely(!var53)) {
1135 var_class_name56 = type_core__Int.name;
1136 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
1137 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1138 fatal_exit(1);
1139 }
1140 var57 = var_from + 1l;
1141 var51 = var57;
1142 goto RET_LABEL52;
1143 RET_LABEL52:(void)0;
1144 }
1145 }
1146 var_from = var51;
1147 } else {
1148 goto BREAK_label;
1149 }
1150 }
1151 BREAK_label: (void)0;
1152 var = var_res;
1153 goto RET_LABEL;
1154 RET_LABEL:;
1155 return var;
1156 }
1157 /* method array$AbstractArray$push for (self: AbstractArray[nullable Object], nullable Object) */
1158 void core___core__AbstractArray___core__abstract_collection__Sequence__push(val* self, val* p0) {
1159 short int var /* : Bool */;
1160 int cltype;
1161 int idtype;
1162 const struct type* type_struct;
1163 short int is_nullable;
1164 const char* var_class_name;
1165 val* var_item /* var item: nullable Object */;
1166 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
1167 /* <p0:nullable Object> isa E */
1168 type_struct = self->type->resolution_table->types[COLOR_core__AbstractArray___35dE];
1169 cltype = type_struct->color;
1170 idtype = type_struct->id;
1171 is_nullable = type_struct->is_nullable;
1172 if(p0 == NULL) {
1173 var = is_nullable;
1174 } else {
1175 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1176 var = 0;
1177 } else {
1178 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1179 }
1180 }
1181 if (unlikely(!var)) {
1182 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1183 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1184 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 216);
1185 fatal_exit(1);
1186 }
1187 var_item = p0;
1188 {
1189 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_core__abstract_collection__SimpleCollection__add]))(self, var_item); /* add on <self:AbstractArray[nullable Object]>*/
1190 }
1191 RET_LABEL:;
1192 }
1193 /* method array$AbstractArray$pop for (self: AbstractArray[nullable Object]): nullable Object */
1194 val* core___core__AbstractArray___core__abstract_collection__Sequence__pop(val* self) {
1195 val* var /* : nullable Object */;
1196 short int var1 /* : Bool */;
1197 short int var2 /* : Bool */;
1198 val* var3 /* : nullable Object */;
1199 val* var_r /* var r: nullable Object */;
1200 val* var_ /* var : AbstractArray[nullable Object] */;
1201 long var4 /* : Int */;
1202 long var5 /* : Int */;
1203 short int var7 /* : Bool */;
1204 int cltype;
1205 int idtype;
1206 const char* var_class_name;
1207 long var8 /* : Int */;
1208 {
1209 var1 = ((short int(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:AbstractArray[nullable Object]>*/
1210 }
1211 var2 = !var1;
1212 if (unlikely(!var2)) {
1213 if(catchStack.cursor >= 0){
1214 longjmp(catchStack.envs[catchStack.cursor], 1);
1215 }
1216 PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed");
1217 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 220);
1218 fatal_exit(1);
1219 }
1220 {
1221 var3 = core___core__SequenceRead___last(self);
1222 }
1223 var_r = var3;
1224 var_ = self;
1225 var4 = var_->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_:AbstractArray[nullable Object]> */
1226 {
1227 { /* Inline kernel$Int$- (var4,1l) on <var4:Int> */
1228 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1229 /* <1l:Int> isa OTHER */
1230 var7 = 1; /* easy <1l:Int> isa OTHER*/
1231 if (unlikely(!var7)) {
1232 var_class_name = type_core__Int.name;
1233 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1234 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1235 fatal_exit(1);
1236 }
1237 var8 = var4 - 1l;
1238 var5 = var8;
1239 goto RET_LABEL6;
1240 RET_LABEL6:(void)0;
1241 }
1242 }
1243 var_->attrs[COLOR_core__array__AbstractArrayRead___length].l = var5; /* _length on <var_:AbstractArray[nullable Object]> */
1244 var = var_r;
1245 goto RET_LABEL;
1246 RET_LABEL:;
1247 return var;
1248 }
1249 /* method array$AbstractArray$shift for (self: AbstractArray[nullable Object]): nullable Object */
1250 val* core___core__AbstractArray___core__abstract_collection__Sequence__shift(val* self) {
1251 val* var /* : nullable Object */;
1252 short int var1 /* : Bool */;
1253 short int var2 /* : Bool */;
1254 val* var3 /* : nullable Object */;
1255 val* var_r /* var r: nullable Object */;
1256 long var4 /* : Int */;
1257 long var5 /* : Int */;
1258 short int var7 /* : Bool */;
1259 int cltype;
1260 int idtype;
1261 const char* var_class_name;
1262 long var8 /* : Int */;
1263 long var_l /* var l: Int */;
1264 {
1265 var1 = ((short int(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:AbstractArray[nullable Object]>*/
1266 }
1267 var2 = !var1;
1268 if (unlikely(!var2)) {
1269 if(catchStack.cursor >= 0){
1270 longjmp(catchStack.envs[catchStack.cursor], 1);
1271 }
1272 PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed");
1273 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 228);
1274 fatal_exit(1);
1275 }
1276 {
1277 var3 = core___core__SequenceRead___Collection__first(self);
1278 }
1279 var_r = var3;
1280 {
1281 var4 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1282 }
1283 {
1284 { /* Inline kernel$Int$- (var4,1l) on <var4:Int> */
1285 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1286 /* <1l:Int> isa OTHER */
1287 var7 = 1; /* easy <1l:Int> isa OTHER*/
1288 if (unlikely(!var7)) {
1289 var_class_name = type_core__Int.name;
1290 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1291 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1292 fatal_exit(1);
1293 }
1294 var8 = var4 - 1l;
1295 var5 = var8;
1296 goto RET_LABEL6;
1297 RET_LABEL6:(void)0;
1298 }
1299 }
1300 var_l = var5;
1301 {
1302 ((void(*)(val* self, long p0, long p1, val* p2, long p3))(self->class->vft[COLOR_core__array__AbstractArrayRead__copy_to]))(self, 1l, var_l, self, 0l); /* copy_to on <self:AbstractArray[nullable Object]>*/
1303 }
1304 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = var_l; /* _length on <self:AbstractArray[nullable Object]> */
1305 var = var_r;
1306 goto RET_LABEL;
1307 RET_LABEL:;
1308 return var;
1309 }
1310 /* method array$AbstractArray$unshift for (self: AbstractArray[nullable Object], nullable Object) */
1311 void core___core__AbstractArray___core__abstract_collection__Sequence__unshift(val* self, val* p0) {
1312 short int var /* : Bool */;
1313 int cltype;
1314 int idtype;
1315 const struct type* type_struct;
1316 short int is_nullable;
1317 const char* var_class_name;
1318 val* var_item /* var item: nullable Object */;
1319 long var1 /* : Int */;
1320 long var_l /* var l: Int */;
1321 short int var2 /* : Bool */;
1322 short int var4 /* : Bool */;
1323 int cltype5;
1324 int idtype6;
1325 const char* var_class_name7;
1326 short int var8 /* : Bool */;
1327 long var9 /* : Int */;
1328 short int var11 /* : Bool */;
1329 int cltype12;
1330 int idtype13;
1331 const char* var_class_name14;
1332 long var15 /* : Int */;
1333 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
1334 /* <p0:nullable Object> isa E */
1335 type_struct = self->type->resolution_table->types[COLOR_core__AbstractArray___35dE];
1336 cltype = type_struct->color;
1337 idtype = type_struct->id;
1338 is_nullable = type_struct->is_nullable;
1339 if(p0 == NULL) {
1340 var = is_nullable;
1341 } else {
1342 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1343 var = 0;
1344 } else {
1345 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1346 }
1347 }
1348 if (unlikely(!var)) {
1349 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1350 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1351 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 236);
1352 fatal_exit(1);
1353 }
1354 var_item = p0;
1355 {
1356 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1357 }
1358 var_l = var1;
1359 {
1360 { /* Inline kernel$Int$> (var_l,0l) on <var_l:Int> */
1361 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1362 /* <0l:Int> isa OTHER */
1363 var4 = 1; /* easy <0l:Int> isa OTHER*/
1364 if (unlikely(!var4)) {
1365 var_class_name7 = type_core__Int.name;
1366 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1367 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
1368 fatal_exit(1);
1369 }
1370 var8 = var_l > 0l;
1371 var2 = var8;
1372 goto RET_LABEL3;
1373 RET_LABEL3:(void)0;
1374 }
1375 }
1376 if (var2){
1377 {
1378 { /* Inline kernel$Int$+ (var_l,1l) on <var_l:Int> */
1379 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1380 /* <1l:Int> isa OTHER */
1381 var11 = 1; /* easy <1l:Int> isa OTHER*/
1382 if (unlikely(!var11)) {
1383 var_class_name14 = type_core__Int.name;
1384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
1385 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1386 fatal_exit(1);
1387 }
1388 var15 = var_l + 1l;
1389 var9 = var15;
1390 goto RET_LABEL10;
1391 RET_LABEL10:(void)0;
1392 }
1393 }
1394 {
1395 ((void(*)(val* self, long p0))(self->class->vft[COLOR_core__array__AbstractArray__enlarge]))(self, var9); /* enlarge on <self:AbstractArray[nullable Object]>*/
1396 }
1397 {
1398 ((void(*)(val* self, long p0, long p1, val* p2, long p3))(self->class->vft[COLOR_core__array__AbstractArrayRead__copy_to]))(self, 0l, var_l, self, 1l); /* copy_to on <self:AbstractArray[nullable Object]>*/
1399 }
1400 } else {
1401 }
1402 {
1403 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(self, 0l, var_item); /* []= on <self:AbstractArray[nullable Object]>*/
1404 }
1405 RET_LABEL:;
1406 }
1407 /* method array$AbstractArray$insert for (self: AbstractArray[nullable Object], nullable Object, Int) */
1408 void core___core__AbstractArray___core__abstract_collection__Sequence__insert(val* self, val* p0, long p1) {
1409 short int var /* : Bool */;
1410 int cltype;
1411 int idtype;
1412 const struct type* type_struct;
1413 short int is_nullable;
1414 const char* var_class_name;
1415 val* var_item /* var item: nullable Object */;
1416 long var_pos /* var pos: Int */;
1417 long var1 /* : Int */;
1418 long var2 /* : Int */;
1419 short int var4 /* : Bool */;
1420 int cltype5;
1421 int idtype6;
1422 const char* var_class_name7;
1423 long var8 /* : Int */;
1424 long var9 /* : Int */;
1425 long var10 /* : Int */;
1426 short int var12 /* : Bool */;
1427 int cltype13;
1428 int idtype14;
1429 const char* var_class_name15;
1430 long var16 /* : Int */;
1431 long var17 /* : Int */;
1432 short int var19 /* : Bool */;
1433 int cltype20;
1434 int idtype21;
1435 const char* var_class_name22;
1436 long var23 /* : Int */;
1437 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
1438 /* <p0:nullable Object> isa E */
1439 type_struct = self->type->resolution_table->types[COLOR_core__AbstractArray___35dE];
1440 cltype = type_struct->color;
1441 idtype = type_struct->id;
1442 is_nullable = type_struct->is_nullable;
1443 if(p0 == NULL) {
1444 var = is_nullable;
1445 } else {
1446 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1447 var = 0;
1448 } else {
1449 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1450 }
1451 }
1452 if (unlikely(!var)) {
1453 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1454 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1455 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 246);
1456 fatal_exit(1);
1457 }
1458 var_item = p0;
1459 var_pos = p1;
1460 {
1461 var1 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1462 }
1463 {
1464 { /* Inline kernel$Int$+ (var1,1l) on <var1:Int> */
1465 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1466 /* <1l:Int> isa OTHER */
1467 var4 = 1; /* easy <1l:Int> isa OTHER*/
1468 if (unlikely(!var4)) {
1469 var_class_name7 = type_core__Int.name;
1470 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1471 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1472 fatal_exit(1);
1473 }
1474 var8 = var1 + 1l;
1475 var2 = var8;
1476 goto RET_LABEL3;
1477 RET_LABEL3:(void)0;
1478 }
1479 }
1480 {
1481 ((void(*)(val* self, long p0))(self->class->vft[COLOR_core__array__AbstractArray__enlarge]))(self, var2); /* enlarge on <self:AbstractArray[nullable Object]>*/
1482 }
1483 {
1484 var9 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1485 }
1486 {
1487 { /* Inline kernel$Int$- (var9,var_pos) on <var9:Int> */
1488 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
1489 /* <var_pos:Int> isa OTHER */
1490 var12 = 1; /* easy <var_pos:Int> isa OTHER*/
1491 if (unlikely(!var12)) {
1492 var_class_name15 = type_core__Int.name;
1493 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
1494 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1495 fatal_exit(1);
1496 }
1497 var16 = var9 - var_pos;
1498 var10 = var16;
1499 goto RET_LABEL11;
1500 RET_LABEL11:(void)0;
1501 }
1502 }
1503 {
1504 { /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
1505 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1506 /* <1l:Int> isa OTHER */
1507 var19 = 1; /* easy <1l:Int> isa OTHER*/
1508 if (unlikely(!var19)) {
1509 var_class_name22 = type_core__Int.name;
1510 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
1511 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1512 fatal_exit(1);
1513 }
1514 var23 = var_pos + 1l;
1515 var17 = var23;
1516 goto RET_LABEL18;
1517 RET_LABEL18:(void)0;
1518 }
1519 }
1520 {
1521 ((void(*)(val* self, long p0, long p1, val* p2, long p3))(self->class->vft[COLOR_core__array__AbstractArrayRead__copy_to]))(self, var_pos, var10, self, var17); /* copy_to on <self:AbstractArray[nullable Object]>*/
1522 }
1523 {
1524 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(self, var_pos, var_item); /* []= on <self:AbstractArray[nullable Object]>*/
1525 }
1526 RET_LABEL:;
1527 }
1528 /* method array$AbstractArray$insert_all for (self: AbstractArray[nullable Object], Collection[nullable Object], Int) */
1529 void core___core__AbstractArray___core__abstract_collection__Sequence__insert_all(val* self, val* p0, long p1) {
1530 short int var /* : Bool */;
1531 int cltype;
1532 int idtype;
1533 const struct type* type_struct;
1534 const char* var_class_name;
1535 val* var_coll /* var coll: Collection[nullable Object] */;
1536 long var_pos /* var pos: Int */;
1537 long var1 /* : Int */;
1538 long var_l /* var l: Int */;
1539 short int var2 /* : Bool */;
1540 short int var4 /* : Bool */;
1541 long var5 /* : Int */;
1542 long var6 /* : Int */;
1543 short int var8 /* : Bool */;
1544 int cltype9;
1545 int idtype10;
1546 const char* var_class_name11;
1547 long var12 /* : Int */;
1548 val* var_ /* var : AbstractArray[nullable Object] */;
1549 long var13 /* : Int */;
1550 long var14 /* : Int */;
1551 short int var16 /* : Bool */;
1552 int cltype17;
1553 int idtype18;
1554 const char* var_class_name19;
1555 long var20 /* : Int */;
1556 long var21 /* : Int */;
1557 long var22 /* : Int */;
1558 short int var24 /* : Bool */;
1559 int cltype25;
1560 int idtype26;
1561 const char* var_class_name27;
1562 long var28 /* : Int */;
1563 long var29 /* : Int */;
1564 short int var31 /* : Bool */;
1565 int cltype32;
1566 int idtype33;
1567 const char* var_class_name34;
1568 long var35 /* : Int */;
1569 long var36 /* : Int */;
1570 short int var38 /* : Bool */;
1571 int cltype39;
1572 int idtype40;
1573 const char* var_class_name41;
1574 long var42 /* : Int */;
1575 val* var_43 /* var : Collection[nullable Object] */;
1576 val* var44 /* : Iterator[nullable Object] */;
1577 val* var_45 /* var : Iterator[nullable Object] */;
1578 short int var46 /* : Bool */;
1579 val* var47 /* : nullable Object */;
1580 val* var_c /* var c: nullable Object */;
1581 long var48 /* : Int */;
1582 short int var50 /* : Bool */;
1583 int cltype51;
1584 int idtype52;
1585 const char* var_class_name53;
1586 long var54 /* : Int */;
1587 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[E] */
1588 /* <p0:Collection[nullable Object]> isa Collection[E] */
1589 type_struct = self->type->resolution_table->types[COLOR_core__Collection__core__AbstractArray___35dE];
1590 cltype = type_struct->color;
1591 idtype = type_struct->id;
1592 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1593 var = 0;
1594 } else {
1595 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1596 }
1597 if (unlikely(!var)) {
1598 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1599 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
1600 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 252);
1601 fatal_exit(1);
1602 }
1603 var_coll = p0;
1604 var_pos = p1;
1605 {
1606 var1 = ((long(*)(val* self))((((long)var_coll&3)?class_info[((long)var_coll&3)]:var_coll->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var_coll); /* length on <var_coll:Collection[nullable Object]>*/
1607 }
1608 var_l = var1;
1609 {
1610 { /* Inline kernel$Int$== (var_l,0l) on <var_l:Int> */
1611 var4 = var_l == 0l;
1612 var2 = var4;
1613 goto RET_LABEL3;
1614 RET_LABEL3:(void)0;
1615 }
1616 }
1617 if (var2){
1618 goto RET_LABEL;
1619 } else {
1620 }
1621 {
1622 var5 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1623 }
1624 {
1625 { /* Inline kernel$Int$+ (var5,var_l) on <var5:Int> */
1626 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1627 /* <var_l:Int> isa OTHER */
1628 var8 = 1; /* easy <var_l:Int> isa OTHER*/
1629 if (unlikely(!var8)) {
1630 var_class_name11 = type_core__Int.name;
1631 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
1632 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1633 fatal_exit(1);
1634 }
1635 var12 = var5 + var_l;
1636 var6 = var12;
1637 goto RET_LABEL7;
1638 RET_LABEL7:(void)0;
1639 }
1640 }
1641 {
1642 ((void(*)(val* self, long p0))(self->class->vft[COLOR_core__array__AbstractArray__enlarge]))(self, var6); /* enlarge on <self:AbstractArray[nullable Object]>*/
1643 }
1644 var_ = self;
1645 var13 = var_->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_:AbstractArray[nullable Object]> */
1646 {
1647 { /* Inline kernel$Int$+ (var13,var_l) on <var13:Int> */
1648 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1649 /* <var_l:Int> isa OTHER */
1650 var16 = 1; /* easy <var_l:Int> isa OTHER*/
1651 if (unlikely(!var16)) {
1652 var_class_name19 = type_core__Int.name;
1653 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
1654 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1655 fatal_exit(1);
1656 }
1657 var20 = var13 + var_l;
1658 var14 = var20;
1659 goto RET_LABEL15;
1660 RET_LABEL15:(void)0;
1661 }
1662 }
1663 var_->attrs[COLOR_core__array__AbstractArrayRead___length].l = var14; /* _length on <var_:AbstractArray[nullable Object]> */
1664 {
1665 var21 = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1666 }
1667 {
1668 { /* Inline kernel$Int$- (var21,var_pos) on <var21:Int> */
1669 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
1670 /* <var_pos:Int> isa OTHER */
1671 var24 = 1; /* easy <var_pos:Int> isa OTHER*/
1672 if (unlikely(!var24)) {
1673 var_class_name27 = type_core__Int.name;
1674 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
1675 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1676 fatal_exit(1);
1677 }
1678 var28 = var21 - var_pos;
1679 var22 = var28;
1680 goto RET_LABEL23;
1681 RET_LABEL23:(void)0;
1682 }
1683 }
1684 {
1685 { /* Inline kernel$Int$- (var22,var_l) on <var22:Int> */
1686 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1687 /* <var_l:Int> isa OTHER */
1688 var31 = 1; /* easy <var_l:Int> isa OTHER*/
1689 if (unlikely(!var31)) {
1690 var_class_name34 = type_core__Int.name;
1691 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
1692 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1693 fatal_exit(1);
1694 }
1695 var35 = var22 - var_l;
1696 var29 = var35;
1697 goto RET_LABEL30;
1698 RET_LABEL30:(void)0;
1699 }
1700 }
1701 {
1702 { /* Inline kernel$Int$+ (var_pos,var_l) on <var_pos:Int> */
1703 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1704 /* <var_l:Int> isa OTHER */
1705 var38 = 1; /* easy <var_l:Int> isa OTHER*/
1706 if (unlikely(!var38)) {
1707 var_class_name41 = type_core__Int.name;
1708 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
1709 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1710 fatal_exit(1);
1711 }
1712 var42 = var_pos + var_l;
1713 var36 = var42;
1714 goto RET_LABEL37;
1715 RET_LABEL37:(void)0;
1716 }
1717 }
1718 {
1719 ((void(*)(val* self, long p0, long p1, val* p2, long p3))(self->class->vft[COLOR_core__array__AbstractArrayRead__copy_to]))(self, var_pos, var29, self, var36); /* copy_to on <self:AbstractArray[nullable Object]>*/
1720 }
1721 var_43 = var_coll;
1722 {
1723 var44 = ((val*(*)(val* self))((((long)var_43&3)?class_info[((long)var_43&3)]:var_43->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_43); /* iterator on <var_43:Collection[nullable Object]>*/
1724 }
1725 var_45 = var44;
1726 for(;;) {
1727 {
1728 var46 = ((short int(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_45); /* is_ok on <var_45:Iterator[nullable Object]>*/
1729 }
1730 if (var46){
1731 } else {
1732 goto BREAK_label;
1733 }
1734 {
1735 var47 = ((val*(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_45); /* item on <var_45:Iterator[nullable Object]>*/
1736 }
1737 var_c = var47;
1738 {
1739 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(self, var_pos, var_c); /* []= on <self:AbstractArray[nullable Object]>*/
1740 }
1741 {
1742 { /* Inline kernel$Int$+ (var_pos,1l) on <var_pos:Int> */
1743 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1744 /* <1l:Int> isa OTHER */
1745 var50 = 1; /* easy <1l:Int> isa OTHER*/
1746 if (unlikely(!var50)) {
1747 var_class_name53 = type_core__Int.name;
1748 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
1749 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1750 fatal_exit(1);
1751 }
1752 var54 = var_pos + 1l;
1753 var48 = var54;
1754 goto RET_LABEL49;
1755 RET_LABEL49:(void)0;
1756 }
1757 }
1758 var_pos = var48;
1759 {
1760 ((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_45); /* next on <var_45:Iterator[nullable Object]>*/
1761 }
1762 }
1763 BREAK_label: (void)0;
1764 {
1765 ((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_45); /* finish on <var_45:Iterator[nullable Object]>*/
1766 }
1767 RET_LABEL:;
1768 }
1769 /* method array$AbstractArray$clear for (self: AbstractArray[nullable Object]) */
1770 void core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(val* self) {
1771 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = 0l; /* _length on <self:AbstractArray[nullable Object]> */
1772 RET_LABEL:;
1773 }
1774 /* method array$AbstractArray$remove for (self: AbstractArray[nullable Object], nullable Object) */
1775 void core___core__AbstractArray___core__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
1776 val* var_item /* var item: nullable Object */;
1777 long var /* : Int */;
1778 var_item = p0;
1779 {
1780 var = core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__index_of(self, var_item);
1781 }
1782 {
1783 core___core__AbstractArray___core__abstract_collection__Sequence__remove_at(self, var); /* Direct call array$AbstractArray$remove_at on <self:AbstractArray[nullable Object]>*/
1784 }
1785 RET_LABEL:;
1786 }
1787 /* method array$AbstractArray$remove_at for (self: AbstractArray[nullable Object], Int) */
1788 void core___core__AbstractArray___core__abstract_collection__Sequence__remove_at(val* self, long p0) {
1789 long var_i /* var i: Int */;
1790 long var /* : Int */;
1791 long var_l /* var l: Int */;
1792 short int var1 /* : Bool */;
1793 short int var2 /* : Bool */;
1794 short int var4 /* : Bool */;
1795 int cltype;
1796 int idtype;
1797 const char* var_class_name;
1798 short int var5 /* : Bool */;
1799 short int var_ /* var : Bool */;
1800 short int var6 /* : Bool */;
1801 short int var8 /* : Bool */;
1802 int cltype9;
1803 int idtype10;
1804 const char* var_class_name11;
1805 short int var12 /* : Bool */;
1806 long var13 /* : Int */;
1807 short int var15 /* : Bool */;
1808 int cltype16;
1809 int idtype17;
1810 const char* var_class_name18;
1811 long var19 /* : Int */;
1812 long var_j /* var j: Int */;
1813 short int var20 /* : Bool */;
1814 short int var22 /* : Bool */;
1815 int cltype23;
1816 int idtype24;
1817 const char* var_class_name25;
1818 short int var26 /* : Bool */;
1819 long var27 /* : Int */;
1820 short int var29 /* : Bool */;
1821 int cltype30;
1822 int idtype31;
1823 const char* var_class_name32;
1824 long var33 /* : Int */;
1825 val* var34 /* : nullable Object */;
1826 long var35 /* : Int */;
1827 short int var37 /* : Bool */;
1828 int cltype38;
1829 int idtype39;
1830 const char* var_class_name40;
1831 long var41 /* : Int */;
1832 long var42 /* : Int */;
1833 short int var44 /* : Bool */;
1834 int cltype45;
1835 int idtype46;
1836 const char* var_class_name47;
1837 long var48 /* : Int */;
1838 var_i = p0;
1839 {
1840 var = ((long(*)(val* self))(self->class->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1841 }
1842 var_l = var;
1843 {
1844 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
1845 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1846 /* <0l:Int> isa OTHER */
1847 var4 = 1; /* easy <0l:Int> isa OTHER*/
1848 if (unlikely(!var4)) {
1849 var_class_name = type_core__Int.name;
1850 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1851 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
1852 fatal_exit(1);
1853 }
1854 var5 = var_i >= 0l;
1855 var2 = var5;
1856 goto RET_LABEL3;
1857 RET_LABEL3:(void)0;
1858 }
1859 }
1860 var_ = var2;
1861 if (var2){
1862 {
1863 { /* Inline kernel$Int$< (var_i,var_l) on <var_i:Int> */
1864 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1865 /* <var_l:Int> isa OTHER */
1866 var8 = 1; /* easy <var_l:Int> isa OTHER*/
1867 if (unlikely(!var8)) {
1868 var_class_name11 = type_core__Int.name;
1869 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
1870 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1871 fatal_exit(1);
1872 }
1873 var12 = var_i < var_l;
1874 var6 = var12;
1875 goto RET_LABEL7;
1876 RET_LABEL7:(void)0;
1877 }
1878 }
1879 var1 = var6;
1880 } else {
1881 var1 = var_;
1882 }
1883 if (var1){
1884 {
1885 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
1886 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1887 /* <1l:Int> isa OTHER */
1888 var15 = 1; /* easy <1l:Int> isa OTHER*/
1889 if (unlikely(!var15)) {
1890 var_class_name18 = type_core__Int.name;
1891 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1892 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1893 fatal_exit(1);
1894 }
1895 var19 = var_i + 1l;
1896 var13 = var19;
1897 goto RET_LABEL14;
1898 RET_LABEL14:(void)0;
1899 }
1900 }
1901 var_j = var13;
1902 for(;;) {
1903 {
1904 { /* Inline kernel$Int$< (var_j,var_l) on <var_j:Int> */
1905 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1906 /* <var_l:Int> isa OTHER */
1907 var22 = 1; /* easy <var_l:Int> isa OTHER*/
1908 if (unlikely(!var22)) {
1909 var_class_name25 = type_core__Int.name;
1910 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
1911 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
1912 fatal_exit(1);
1913 }
1914 var26 = var_j < var_l;
1915 var20 = var26;
1916 goto RET_LABEL21;
1917 RET_LABEL21:(void)0;
1918 }
1919 }
1920 if (var20){
1921 {
1922 { /* Inline kernel$Int$- (var_j,1l) on <var_j:Int> */
1923 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1924 /* <1l:Int> isa OTHER */
1925 var29 = 1; /* easy <1l:Int> isa OTHER*/
1926 if (unlikely(!var29)) {
1927 var_class_name32 = type_core__Int.name;
1928 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
1929 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1930 fatal_exit(1);
1931 }
1932 var33 = var_j - 1l;
1933 var27 = var33;
1934 goto RET_LABEL28;
1935 RET_LABEL28:(void)0;
1936 }
1937 }
1938 {
1939 var34 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(self, var_j); /* [] on <self:AbstractArray[nullable Object]>*/
1940 }
1941 {
1942 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_core__abstract_collection__Sequence___91d_93d_61d]))(self, var27, var34); /* []= on <self:AbstractArray[nullable Object]>*/
1943 }
1944 {
1945 { /* Inline kernel$Int$+ (var_j,1l) on <var_j:Int> */
1946 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1947 /* <1l:Int> isa OTHER */
1948 var37 = 1; /* easy <1l:Int> isa OTHER*/
1949 if (unlikely(!var37)) {
1950 var_class_name40 = type_core__Int.name;
1951 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
1952 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
1953 fatal_exit(1);
1954 }
1955 var41 = var_j + 1l;
1956 var35 = var41;
1957 goto RET_LABEL36;
1958 RET_LABEL36:(void)0;
1959 }
1960 }
1961 var_j = var35;
1962 } else {
1963 goto BREAK_label;
1964 }
1965 }
1966 BREAK_label: (void)0;
1967 {
1968 { /* Inline kernel$Int$- (var_l,1l) on <var_l:Int> */
1969 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1970 /* <1l:Int> isa OTHER */
1971 var44 = 1; /* easy <1l:Int> isa OTHER*/
1972 if (unlikely(!var44)) {
1973 var_class_name47 = type_core__Int.name;
1974 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
1975 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
1976 fatal_exit(1);
1977 }
1978 var48 = var_l - 1l;
1979 var42 = var48;
1980 goto RET_LABEL43;
1981 RET_LABEL43:(void)0;
1982 }
1983 }
1984 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = var42; /* _length on <self:AbstractArray[nullable Object]> */
1985 } else {
1986 }
1987 RET_LABEL:;
1988 }
1989 /* method array$Array$[] for (self: Array[nullable Object], Int): nullable Object */
1990 val* core___core__Array___core__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
1991 val* var /* : nullable Object */;
1992 long var_index /* var index: Int */;
1993 short int var1 /* : Bool */;
1994 short int var2 /* : Bool */;
1995 short int var4 /* : Bool */;
1996 int cltype;
1997 int idtype;
1998 const char* var_class_name;
1999 short int var5 /* : Bool */;
2000 short int var_ /* var : Bool */;
2001 long var6 /* : Int */;
2002 short int var7 /* : Bool */;
2003 short int var9 /* : Bool */;
2004 int cltype10;
2005 int idtype11;
2006 const char* var_class_name12;
2007 short int var13 /* : Bool */;
2008 val* var14 /* : nullable NativeArray[nullable Object] */;
2009 val* var15 /* : nullable Object */;
2010 val* var17 /* : Object */;
2011 var_index = p0;
2012 {
2013 { /* Inline kernel$Int$>= (var_index,0l) on <var_index:Int> */
2014 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2015 /* <0l:Int> isa OTHER */
2016 var4 = 1; /* easy <0l:Int> isa OTHER*/
2017 if (unlikely(!var4)) {
2018 var_class_name = type_core__Int.name;
2019 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2020 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
2021 fatal_exit(1);
2022 }
2023 var5 = var_index >= 0l;
2024 var2 = var5;
2025 goto RET_LABEL3;
2026 RET_LABEL3:(void)0;
2027 }
2028 }
2029 var_ = var2;
2030 if (var2){
2031 var6 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2032 {
2033 { /* Inline kernel$Int$< (var_index,var6) on <var_index:Int> */
2034 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
2035 /* <var6:Int> isa OTHER */
2036 var9 = 1; /* easy <var6:Int> isa OTHER*/
2037 if (unlikely(!var9)) {
2038 var_class_name12 = type_core__Int.name;
2039 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
2040 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2041 fatal_exit(1);
2042 }
2043 var13 = var_index < var6;
2044 var7 = var13;
2045 goto RET_LABEL8;
2046 RET_LABEL8:(void)0;
2047 }
2048 }
2049 var1 = var7;
2050 } else {
2051 var1 = var_;
2052 }
2053 if (unlikely(!var1)) {
2054 if(catchStack.cursor >= 0){
2055 longjmp(catchStack.envs[catchStack.cursor], 1);
2056 }
2057 PRINT_ERROR("Runtime error: %s", "Assert \'index\' failed");
2058 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 323);
2059 fatal_exit(1);
2060 }
2061 var14 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2062 if (unlikely(var14 == NULL)) {
2063 if(catchStack.cursor >= 0){
2064 longjmp(catchStack.envs[catchStack.cursor], 1);
2065 }
2066 PRINT_ERROR("Runtime error: %s", "Cast failed");
2067 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 324);
2068 fatal_exit(1);
2069 }
2070 {
2071 { /* Inline array$NativeArray$[] (var14,var_index) on <var14:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
2072 var17 = ((struct instance_core__NativeArray*)var14)->values[var_index];
2073 var15 = var17;
2074 goto RET_LABEL16;
2075 RET_LABEL16:(void)0;
2076 }
2077 }
2078 var = var15;
2079 goto RET_LABEL;
2080 RET_LABEL:;
2081 return var;
2082 }
2083 /* method array$Array$[]= for (self: Array[nullable Object], Int, nullable Object) */
2084 void core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, val* p1) {
2085 short int var /* : Bool */;
2086 int cltype;
2087 int idtype;
2088 const struct type* type_struct;
2089 short int is_nullable;
2090 const char* var_class_name;
2091 long var_index /* var index: Int */;
2092 val* var_item /* var item: nullable Object */;
2093 short int var1 /* : Bool */;
2094 short int var2 /* : Bool */;
2095 short int var4 /* : Bool */;
2096 int cltype5;
2097 int idtype6;
2098 const char* var_class_name7;
2099 short int var8 /* : Bool */;
2100 short int var_ /* var : Bool */;
2101 long var9 /* : Int */;
2102 long var10 /* : Int */;
2103 short int var12 /* : Bool */;
2104 int cltype13;
2105 int idtype14;
2106 const char* var_class_name15;
2107 long var16 /* : Int */;
2108 short int var17 /* : Bool */;
2109 short int var19 /* : Bool */;
2110 int cltype20;
2111 int idtype21;
2112 const char* var_class_name22;
2113 short int var23 /* : Bool */;
2114 long var24 /* : Int */;
2115 short int var25 /* : Bool */;
2116 short int var27 /* : Bool */;
2117 int cltype28;
2118 int idtype29;
2119 const char* var_class_name30;
2120 short int var31 /* : Bool */;
2121 long var32 /* : Int */;
2122 short int var34 /* : Bool */;
2123 int cltype35;
2124 int idtype36;
2125 const char* var_class_name37;
2126 long var38 /* : Int */;
2127 long var39 /* : Int */;
2128 short int var40 /* : Bool */;
2129 short int var42 /* : Bool */;
2130 int cltype43;
2131 int idtype44;
2132 const char* var_class_name45;
2133 short int var46 /* : Bool */;
2134 long var47 /* : Int */;
2135 short int var49 /* : Bool */;
2136 int cltype50;
2137 int idtype51;
2138 const char* var_class_name52;
2139 long var53 /* : Int */;
2140 val* var54 /* : nullable NativeArray[nullable Object] */;
2141 short int var56 /* : Bool */;
2142 int cltype57;
2143 int idtype58;
2144 const struct type* type_struct59;
2145 short int is_nullable60;
2146 const char* var_class_name61;
2147 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
2148 /* <p1:nullable Object> isa E */
2149 type_struct = self->type->resolution_table->types[COLOR_core__Array___35dE];
2150 cltype = type_struct->color;
2151 idtype = type_struct->id;
2152 is_nullable = type_struct->is_nullable;
2153 if(p1 == NULL) {
2154 var = is_nullable;
2155 } else {
2156 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
2157 var = 0;
2158 } else {
2159 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
2160 }
2161 }
2162 if (unlikely(!var)) {
2163 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
2164 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
2165 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 327);
2166 fatal_exit(1);
2167 }
2168 var_index = p0;
2169 var_item = p1;
2170 {
2171 { /* Inline kernel$Int$>= (var_index,0l) on <var_index:Int> */
2172 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2173 /* <0l:Int> isa OTHER */
2174 var4 = 1; /* easy <0l:Int> isa OTHER*/
2175 if (unlikely(!var4)) {
2176 var_class_name7 = type_core__Int.name;
2177 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2178 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
2179 fatal_exit(1);
2180 }
2181 var8 = var_index >= 0l;
2182 var2 = var8;
2183 goto RET_LABEL3;
2184 RET_LABEL3:(void)0;
2185 }
2186 }
2187 var_ = var2;
2188 if (var2){
2189 var9 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2190 {
2191 { /* Inline kernel$Int$+ (var9,1l) on <var9:Int> */
2192 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2193 /* <1l:Int> isa OTHER */
2194 var12 = 1; /* easy <1l:Int> isa OTHER*/
2195 if (unlikely(!var12)) {
2196 var_class_name15 = type_core__Int.name;
2197 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
2198 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2199 fatal_exit(1);
2200 }
2201 var16 = var9 + 1l;
2202 var10 = var16;
2203 goto RET_LABEL11;
2204 RET_LABEL11:(void)0;
2205 }
2206 }
2207 {
2208 { /* Inline kernel$Int$< (var_index,var10) on <var_index:Int> */
2209 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
2210 /* <var10:Int> isa OTHER */
2211 var19 = 1; /* easy <var10:Int> isa OTHER*/
2212 if (unlikely(!var19)) {
2213 var_class_name22 = type_core__Int.name;
2214 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
2215 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2216 fatal_exit(1);
2217 }
2218 var23 = var_index < var10;
2219 var17 = var23;
2220 goto RET_LABEL18;
2221 RET_LABEL18:(void)0;
2222 }
2223 }
2224 var1 = var17;
2225 } else {
2226 var1 = var_;
2227 }
2228 if (unlikely(!var1)) {
2229 if(catchStack.cursor >= 0){
2230 longjmp(catchStack.envs[catchStack.cursor], 1);
2231 }
2232 PRINT_ERROR("Runtime error: %s", "Assert \'index\' failed");
2233 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 329);
2234 fatal_exit(1);
2235 }
2236 var24 = self->attrs[COLOR_core__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2237 {
2238 { /* Inline kernel$Int$<= (var24,var_index) on <var24:Int> */
2239 /* Covariant cast for argument 0 (i) <var_index:Int> isa OTHER */
2240 /* <var_index:Int> isa OTHER */
2241 var27 = 1; /* easy <var_index:Int> isa OTHER*/
2242 if (unlikely(!var27)) {
2243 var_class_name30 = type_core__Int.name;
2244 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
2245 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
2246 fatal_exit(1);
2247 }
2248 var31 = var24 <= var_index;
2249 var25 = var31;
2250 goto RET_LABEL26;
2251 RET_LABEL26:(void)0;
2252 }
2253 }
2254 if (var25){
2255 {
2256 { /* Inline kernel$Int$+ (var_index,1l) on <var_index:Int> */
2257 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2258 /* <1l:Int> isa OTHER */
2259 var34 = 1; /* easy <1l:Int> isa OTHER*/
2260 if (unlikely(!var34)) {
2261 var_class_name37 = type_core__Int.name;
2262 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
2263 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2264 fatal_exit(1);
2265 }
2266 var38 = var_index + 1l;
2267 var32 = var38;
2268 goto RET_LABEL33;
2269 RET_LABEL33:(void)0;
2270 }
2271 }
2272 {
2273 core___core__Array___AbstractArray__enlarge(self, var32); /* Direct call array$Array$enlarge on <self:Array[nullable Object]>*/
2274 }
2275 } else {
2276 }
2277 var39 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2278 {
2279 { /* Inline kernel$Int$<= (var39,var_index) on <var39:Int> */
2280 /* Covariant cast for argument 0 (i) <var_index:Int> isa OTHER */
2281 /* <var_index:Int> isa OTHER */
2282 var42 = 1; /* easy <var_index:Int> isa OTHER*/
2283 if (unlikely(!var42)) {
2284 var_class_name45 = type_core__Int.name;
2285 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
2286 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
2287 fatal_exit(1);
2288 }
2289 var46 = var39 <= var_index;
2290 var40 = var46;
2291 goto RET_LABEL41;
2292 RET_LABEL41:(void)0;
2293 }
2294 }
2295 if (var40){
2296 {
2297 { /* Inline kernel$Int$+ (var_index,1l) on <var_index:Int> */
2298 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2299 /* <1l:Int> isa OTHER */
2300 var49 = 1; /* easy <1l:Int> isa OTHER*/
2301 if (unlikely(!var49)) {
2302 var_class_name52 = type_core__Int.name;
2303 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
2304 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2305 fatal_exit(1);
2306 }
2307 var53 = var_index + 1l;
2308 var47 = var53;
2309 goto RET_LABEL48;
2310 RET_LABEL48:(void)0;
2311 }
2312 }
2313 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = var47; /* _length on <self:Array[nullable Object]> */
2314 } else {
2315 }
2316 var54 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2317 if (unlikely(var54 == NULL)) {
2318 if(catchStack.cursor >= 0){
2319 longjmp(catchStack.envs[catchStack.cursor], 1);
2320 }
2321 PRINT_ERROR("Runtime error: %s", "Cast failed");
2322 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 336);
2323 fatal_exit(1);
2324 }
2325 {
2326 { /* Inline array$NativeArray$[]= (var54,var_index,var_item) on <var54:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
2327 /* Covariant cast for argument 1 (item) <var_item:nullable Object> isa E */
2328 /* <var_item:nullable Object> isa E */
2329 type_struct59 = var54->type->resolution_table->types[COLOR_core__NativeArray___35dE];
2330 cltype57 = type_struct59->color;
2331 idtype58 = type_struct59->id;
2332 is_nullable60 = type_struct59->is_nullable;
2333 if(var_item == NULL) {
2334 var56 = is_nullable60;
2335 } else {
2336 if(cltype57 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
2337 var56 = 0;
2338 } else {
2339 var56 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype57] == idtype58;
2340 }
2341 }
2342 if (unlikely(!var56)) {
2343 var_class_name61 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
2344 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name61);
2345 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 991);
2346 fatal_exit(1);
2347 }
2348 ((struct instance_core__NativeArray*)var54)->values[var_index]=var_item;
2349 RET_LABEL55:(void)0;
2350 }
2351 }
2352 RET_LABEL:;
2353 }
2354 /* method array$Array$add for (self: Array[nullable Object], nullable Object) */
2355 void core___core__Array___core__abstract_collection__SimpleCollection__add(val* self, val* p0) {
2356 short int var /* : Bool */;
2357 int cltype;
2358 int idtype;
2359 const struct type* type_struct;
2360 short int is_nullable;
2361 const char* var_class_name;
2362 val* var_item /* var item: nullable Object */;
2363 long var1 /* : Int */;
2364 long var_l /* var l: Int */;
2365 long var2 /* : Int */;
2366 short int var3 /* : Bool */;
2367 short int var5 /* : Bool */;
2368 int cltype6;
2369 int idtype7;
2370 const char* var_class_name8;
2371 short int var9 /* : Bool */;
2372 long var10 /* : Int */;
2373 short int var12 /* : Bool */;
2374 int cltype13;
2375 int idtype14;
2376 const char* var_class_name15;
2377 long var16 /* : Int */;
2378 long var17 /* : Int */;
2379 short int var19 /* : Bool */;
2380 int cltype20;
2381 int idtype21;
2382 const char* var_class_name22;
2383 long var23 /* : Int */;
2384 val* var24 /* : nullable NativeArray[nullable Object] */;
2385 short int var26 /* : Bool */;
2386 int cltype27;
2387 int idtype28;
2388 const struct type* type_struct29;
2389 short int is_nullable30;
2390 const char* var_class_name31;
2391 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
2392 /* <p0:nullable Object> isa E */
2393 type_struct = self->type->resolution_table->types[COLOR_core__Array___35dE];
2394 cltype = type_struct->color;
2395 idtype = type_struct->id;
2396 is_nullable = type_struct->is_nullable;
2397 if(p0 == NULL) {
2398 var = is_nullable;
2399 } else {
2400 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2401 var = 0;
2402 } else {
2403 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2404 }
2405 }
2406 if (unlikely(!var)) {
2407 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2408 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
2409 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 339);
2410 fatal_exit(1);
2411 }
2412 var_item = p0;
2413 var1 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2414 var_l = var1;
2415 var2 = self->attrs[COLOR_core__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2416 {
2417 { /* Inline kernel$Int$<= (var2,var_l) on <var2:Int> */
2418 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
2419 /* <var_l:Int> isa OTHER */
2420 var5 = 1; /* easy <var_l:Int> isa OTHER*/
2421 if (unlikely(!var5)) {
2422 var_class_name8 = type_core__Int.name;
2423 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
2424 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
2425 fatal_exit(1);
2426 }
2427 var9 = var2 <= var_l;
2428 var3 = var9;
2429 goto RET_LABEL4;
2430 RET_LABEL4:(void)0;
2431 }
2432 }
2433 if (var3){
2434 {
2435 { /* Inline kernel$Int$+ (var_l,1l) on <var_l:Int> */
2436 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2437 /* <1l:Int> isa OTHER */
2438 var12 = 1; /* easy <1l:Int> isa OTHER*/
2439 if (unlikely(!var12)) {
2440 var_class_name15 = type_core__Int.name;
2441 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
2442 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2443 fatal_exit(1);
2444 }
2445 var16 = var_l + 1l;
2446 var10 = var16;
2447 goto RET_LABEL11;
2448 RET_LABEL11:(void)0;
2449 }
2450 }
2451 {
2452 core___core__Array___AbstractArray__enlarge(self, var10); /* Direct call array$Array$enlarge on <self:Array[nullable Object]>*/
2453 }
2454 } else {
2455 }
2456 {
2457 { /* Inline kernel$Int$+ (var_l,1l) on <var_l:Int> */
2458 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2459 /* <1l:Int> isa OTHER */
2460 var19 = 1; /* easy <1l:Int> isa OTHER*/
2461 if (unlikely(!var19)) {
2462 var_class_name22 = type_core__Int.name;
2463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
2464 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2465 fatal_exit(1);
2466 }
2467 var23 = var_l + 1l;
2468 var17 = var23;
2469 goto RET_LABEL18;
2470 RET_LABEL18:(void)0;
2471 }
2472 }
2473 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = var17; /* _length on <self:Array[nullable Object]> */
2474 var24 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2475 if (unlikely(var24 == NULL)) {
2476 if(catchStack.cursor >= 0){
2477 longjmp(catchStack.envs[catchStack.cursor], 1);
2478 }
2479 PRINT_ERROR("Runtime error: %s", "Cast failed");
2480 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 346);
2481 fatal_exit(1);
2482 }
2483 {
2484 { /* Inline array$NativeArray$[]= (var24,var_l,var_item) on <var24:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
2485 /* Covariant cast for argument 1 (item) <var_item:nullable Object> isa E */
2486 /* <var_item:nullable Object> isa E */
2487 type_struct29 = var24->type->resolution_table->types[COLOR_core__NativeArray___35dE];
2488 cltype27 = type_struct29->color;
2489 idtype28 = type_struct29->id;
2490 is_nullable30 = type_struct29->is_nullable;
2491 if(var_item == NULL) {
2492 var26 = is_nullable30;
2493 } else {
2494 if(cltype27 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
2495 var26 = 0;
2496 } else {
2497 var26 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype27] == idtype28;
2498 }
2499 }
2500 if (unlikely(!var26)) {
2501 var_class_name31 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
2502 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name31);
2503 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 991);
2504 fatal_exit(1);
2505 }
2506 ((struct instance_core__NativeArray*)var24)->values[var_l]=var_item;
2507 RET_LABEL25:(void)0;
2508 }
2509 }
2510 RET_LABEL:;
2511 }
2512 /* method array$Array$add_all for (self: Array[nullable Object], Collection[nullable Object]) */
2513 void core___core__Array___core__abstract_collection__SimpleCollection__add_all(val* self, val* p0) {
2514 short int var /* : Bool */;
2515 int cltype;
2516 int idtype;
2517 const struct type* type_struct;
2518 const char* var_class_name;
2519 val* var_items /* var items: Collection[nullable Object] */;
2520 long var1 /* : Int */;
2521 long var_l /* var l: Int */;
2522 long var2 /* : Int */;
2523 long var3 /* : Int */;
2524 short int var5 /* : Bool */;
2525 int cltype6;
2526 int idtype7;
2527 const char* var_class_name8;
2528 long var9 /* : Int */;
2529 long var_nl /* var nl: Int */;
2530 long var10 /* : Int */;
2531 short int var11 /* : Bool */;
2532 short int var13 /* : Bool */;
2533 int cltype14;
2534 int idtype15;
2535 const char* var_class_name16;
2536 short int var17 /* : Bool */;
2537 short int var18 /* : Bool */;
2538 int cltype19;
2539 int idtype20;
2540 const struct type* type_struct21;
2541 long var_k /* var k: Int */;
2542 short int var22 /* : Bool */;
2543 short int var24 /* : Bool */;
2544 int cltype25;
2545 int idtype26;
2546 const char* var_class_name27;
2547 short int var28 /* : Bool */;
2548 val* var29 /* : nullable NativeArray[nullable Object] */;
2549 val* var30 /* : nullable NativeArray[nullable Object] */;
2550 val* var31 /* : nullable Object */;
2551 val* var33 /* : Object */;
2552 short int var35 /* : Bool */;
2553 int cltype36;
2554 int idtype37;
2555 const struct type* type_struct38;
2556 short int is_nullable;
2557 const char* var_class_name39;
2558 long var40 /* : Int */;
2559 short int var42 /* : Bool */;
2560 int cltype43;
2561 int idtype44;
2562 const char* var_class_name45;
2563 long var46 /* : Int */;
2564 long var47 /* : Int */;
2565 short int var49 /* : Bool */;
2566 int cltype50;
2567 int idtype51;
2568 const char* var_class_name52;
2569 long var53 /* : Int */;
2570 val* var_ /* var : Collection[nullable Object] */;
2571 val* var54 /* : Iterator[nullable Object] */;
2572 val* var_55 /* var : Iterator[nullable Object] */;
2573 short int var56 /* : Bool */;
2574 val* var58 /* : nullable Object */;
2575 val* var_item /* var item: nullable Object */;
2576 val* var59 /* : nullable NativeArray[nullable Object] */;
2577 short int var61 /* : Bool */;
2578 int cltype62;
2579 int idtype63;
2580 const struct type* type_struct64;
2581 short int is_nullable65;
2582 const char* var_class_name66;
2583 long var67 /* : Int */;
2584 short int var69 /* : Bool */;
2585 int cltype70;
2586 int idtype71;
2587 const char* var_class_name72;
2588 long var73 /* : Int */;
2589 /* Covariant cast for argument 0 (items) <p0:Collection[nullable Object]> isa Collection[E] */
2590 /* <p0:Collection[nullable Object]> isa Collection[E] */
2591 type_struct = self->type->resolution_table->types[COLOR_core__Collection__core__Array___35dE];
2592 cltype = type_struct->color;
2593 idtype = type_struct->id;
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 if (unlikely(!var)) {
2600 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2601 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
2602 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 349);
2603 fatal_exit(1);
2604 }
2605 var_items = p0;
2606 var1 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2607 var_l = var1;
2608 {
2609 var2 = ((long(*)(val* self))((((long)var_items&3)?class_info[((long)var_items&3)]:var_items->class)->vft[COLOR_core__abstract_collection__Collection__length]))(var_items); /* length on <var_items:Collection[nullable Object]>*/
2610 }
2611 {
2612 { /* Inline kernel$Int$+ (var_l,var2) on <var_l:Int> */
2613 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2614 /* <var2:Int> isa OTHER */
2615 var5 = 1; /* easy <var2:Int> isa OTHER*/
2616 if (unlikely(!var5)) {
2617 var_class_name8 = type_core__Int.name;
2618 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
2619 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2620 fatal_exit(1);
2621 }
2622 var9 = var_l + var2;
2623 var3 = var9;
2624 goto RET_LABEL4;
2625 RET_LABEL4:(void)0;
2626 }
2627 }
2628 var_nl = var3;
2629 var10 = self->attrs[COLOR_core__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2630 {
2631 { /* Inline kernel$Int$< (var10,var_nl) on <var10:Int> */
2632 /* Covariant cast for argument 0 (i) <var_nl:Int> isa OTHER */
2633 /* <var_nl:Int> isa OTHER */
2634 var13 = 1; /* easy <var_nl:Int> isa OTHER*/
2635 if (unlikely(!var13)) {
2636 var_class_name16 = type_core__Int.name;
2637 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
2638 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2639 fatal_exit(1);
2640 }
2641 var17 = var10 < var_nl;
2642 var11 = var17;
2643 goto RET_LABEL12;
2644 RET_LABEL12:(void)0;
2645 }
2646 }
2647 if (var11){
2648 {
2649 core___core__Array___AbstractArray__enlarge(self, var_nl); /* Direct call array$Array$enlarge on <self:Array[nullable Object]>*/
2650 }
2651 } else {
2652 }
2653 /* <var_items:Collection[nullable Object]> isa Array[E] */
2654 type_struct21 = self->type->resolution_table->types[COLOR_core__Array__core__Array___35dE];
2655 cltype19 = type_struct21->color;
2656 idtype20 = type_struct21->id;
2657 if(cltype19 >= (((long)var_items&3)?type_info[((long)var_items&3)]:var_items->type)->table_size) {
2658 var18 = 0;
2659 } else {
2660 var18 = (((long)var_items&3)?type_info[((long)var_items&3)]:var_items->type)->type_table[cltype19] == idtype20;
2661 }
2662 if (var18){
2663 var_k = 0l;
2664 for(;;) {
2665 {
2666 { /* Inline kernel$Int$< (var_l,var_nl) on <var_l:Int> */
2667 /* Covariant cast for argument 0 (i) <var_nl:Int> isa OTHER */
2668 /* <var_nl:Int> isa OTHER */
2669 var24 = 1; /* easy <var_nl:Int> isa OTHER*/
2670 if (unlikely(!var24)) {
2671 var_class_name27 = type_core__Int.name;
2672 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
2673 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2674 fatal_exit(1);
2675 }
2676 var28 = var_l < var_nl;
2677 var22 = var28;
2678 goto RET_LABEL23;
2679 RET_LABEL23:(void)0;
2680 }
2681 }
2682 if (var22){
2683 var29 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2684 if (unlikely(var29 == NULL)) {
2685 if(catchStack.cursor >= 0){
2686 longjmp(catchStack.envs[catchStack.cursor], 1);
2687 }
2688 PRINT_ERROR("Runtime error: %s", "Cast failed");
2689 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 361);
2690 fatal_exit(1);
2691 }
2692 var30 = var_items->attrs[COLOR_core__array__Array___items].val; /* _items on <var_items:Collection[nullable Object](Array[nullable Object])> */
2693 if (unlikely(var30 == NULL)) {
2694 if(catchStack.cursor >= 0){
2695 longjmp(catchStack.envs[catchStack.cursor], 1);
2696 }
2697 PRINT_ERROR("Runtime error: %s", "Cast failed");
2698 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 361);
2699 fatal_exit(1);
2700 }
2701 {
2702 { /* Inline array$NativeArray$[] (var30,var_k) on <var30:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
2703 var33 = ((struct instance_core__NativeArray*)var30)->values[var_k];
2704 var31 = var33;
2705 goto RET_LABEL32;
2706 RET_LABEL32:(void)0;
2707 }
2708 }
2709 {
2710 { /* Inline array$NativeArray$[]= (var29,var_l,var31) on <var29:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
2711 /* Covariant cast for argument 1 (item) <var31:nullable Object> isa E */
2712 /* <var31:nullable Object> isa E */
2713 type_struct38 = var29->type->resolution_table->types[COLOR_core__NativeArray___35dE];
2714 cltype36 = type_struct38->color;
2715 idtype37 = type_struct38->id;
2716 is_nullable = type_struct38->is_nullable;
2717 if(var31 == NULL) {
2718 var35 = is_nullable;
2719 } else {
2720 if(cltype36 >= (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->table_size) {
2721 var35 = 0;
2722 } else {
2723 var35 = (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->type_table[cltype36] == idtype37;
2724 }
2725 }
2726 if (unlikely(!var35)) {
2727 var_class_name39 = var31 == NULL ? "null" : (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->name;
2728 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name39);
2729 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 991);
2730 fatal_exit(1);
2731 }
2732 ((struct instance_core__NativeArray*)var29)->values[var_l]=var31;
2733 RET_LABEL34:(void)0;
2734 }
2735 }
2736 {
2737 { /* Inline kernel$Int$+ (var_l,1l) on <var_l:Int> */
2738 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2739 /* <1l:Int> isa OTHER */
2740 var42 = 1; /* easy <1l:Int> isa OTHER*/
2741 if (unlikely(!var42)) {
2742 var_class_name45 = type_core__Int.name;
2743 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
2744 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2745 fatal_exit(1);
2746 }
2747 var46 = var_l + 1l;
2748 var40 = var46;
2749 goto RET_LABEL41;
2750 RET_LABEL41:(void)0;
2751 }
2752 }
2753 var_l = var40;
2754 {
2755 { /* Inline kernel$Int$+ (var_k,1l) on <var_k:Int> */
2756 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2757 /* <1l:Int> isa OTHER */
2758 var49 = 1; /* easy <1l:Int> isa OTHER*/
2759 if (unlikely(!var49)) {
2760 var_class_name52 = type_core__Int.name;
2761 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
2762 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2763 fatal_exit(1);
2764 }
2765 var53 = var_k + 1l;
2766 var47 = var53;
2767 goto RET_LABEL48;
2768 RET_LABEL48:(void)0;
2769 }
2770 }
2771 var_k = var47;
2772 } else {
2773 goto BREAK_label;
2774 }
2775 }
2776 BREAK_label: (void)0;
2777 } else {
2778 var_ = var_items;
2779 {
2780 var54 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[nullable Object]>*/
2781 }
2782 var_55 = var54;
2783 for(;;) {
2784 {
2785 var56 = ((short int(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_55); /* is_ok on <var_55:Iterator[nullable Object]>*/
2786 }
2787 if (var56){
2788 } else {
2789 goto BREAK_label57;
2790 }
2791 {
2792 var58 = ((val*(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_55); /* item on <var_55:Iterator[nullable Object]>*/
2793 }
2794 var_item = var58;
2795 var59 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2796 if (unlikely(var59 == NULL)) {
2797 if(catchStack.cursor >= 0){
2798 longjmp(catchStack.envs[catchStack.cursor], 1);
2799 }
2800 PRINT_ERROR("Runtime error: %s", "Cast failed");
2801 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 367);
2802 fatal_exit(1);
2803 }
2804 {
2805 { /* Inline array$NativeArray$[]= (var59,var_l,var_item) on <var59:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
2806 /* Covariant cast for argument 1 (item) <var_item:nullable Object> isa E */
2807 /* <var_item:nullable Object> isa E */
2808 type_struct64 = var59->type->resolution_table->types[COLOR_core__NativeArray___35dE];
2809 cltype62 = type_struct64->color;
2810 idtype63 = type_struct64->id;
2811 is_nullable65 = type_struct64->is_nullable;
2812 if(var_item == NULL) {
2813 var61 = is_nullable65;
2814 } else {
2815 if(cltype62 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
2816 var61 = 0;
2817 } else {
2818 var61 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype62] == idtype63;
2819 }
2820 }
2821 if (unlikely(!var61)) {
2822 var_class_name66 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
2823 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name66);
2824 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 991);
2825 fatal_exit(1);
2826 }
2827 ((struct instance_core__NativeArray*)var59)->values[var_l]=var_item;
2828 RET_LABEL60:(void)0;
2829 }
2830 }
2831 {
2832 { /* Inline kernel$Int$+ (var_l,1l) on <var_l:Int> */
2833 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2834 /* <1l:Int> isa OTHER */
2835 var69 = 1; /* easy <1l:Int> isa OTHER*/
2836 if (unlikely(!var69)) {
2837 var_class_name72 = type_core__Int.name;
2838 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name72);
2839 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2840 fatal_exit(1);
2841 }
2842 var73 = var_l + 1l;
2843 var67 = var73;
2844 goto RET_LABEL68;
2845 RET_LABEL68:(void)0;
2846 }
2847 }
2848 var_l = var67;
2849 {
2850 ((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_55); /* next on <var_55:Iterator[nullable Object]>*/
2851 }
2852 }
2853 BREAK_label57: (void)0;
2854 {
2855 ((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_55); /* finish on <var_55:Iterator[nullable Object]>*/
2856 }
2857 }
2858 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = var_nl; /* _length on <self:Array[nullable Object]> */
2859 RET_LABEL:;
2860 }
2861 /* method array$Array$copy_to for (self: Array[nullable Object], Int, Int, AbstractArray[nullable Object], Int) */
2862 void core___core__Array___AbstractArrayRead__copy_to(val* self, long p0, long p1, val* p2, long p3) {
2863 short int var /* : Bool */;
2864 int cltype;
2865 int idtype;
2866 const struct type* type_struct;
2867 const char* var_class_name;
2868 long var_start /* var start: Int */;
2869 long var_len /* var len: Int */;
2870 val* var_dest /* var dest: AbstractArray[nullable Object] */;
2871 long var_new_start /* var new_start: Int */;
2872 short int var1 /* : Bool */;
2873 int cltype2;
2874 int idtype3;
2875 const struct type* type_struct4;
2876 short int var5 /* : Bool */;
2877 long var6 /* : Int */;
2878 short int var8 /* : Bool */;
2879 int cltype9;
2880 int idtype10;
2881 const char* var_class_name11;
2882 long var12 /* : Int */;
2883 long var_dest_len /* var dest_len: Int */;
2884 long var13 /* : Int */;
2885 long var15 /* : Int */;
2886 short int var16 /* : Bool */;
2887 short int var18 /* : Bool */;
2888 int cltype19;
2889 int idtype20;
2890 const char* var_class_name21;
2891 short int var22 /* : Bool */;
2892 val* var24 /* : nullable NativeArray[nullable Object] */;
2893 val* var26 /* : nullable NativeArray[nullable Object] */;
2894 val* var_items /* var items: nullable NativeArray[nullable Object] */;
2895 short int var27 /* : Bool */;
2896 short int var28 /* : Bool */;
2897 val* var_other /* var other: nullable Object */;
2898 short int var30 /* : Bool */;
2899 short int var32 /* : Bool */;
2900 val* var33 /* : nullable NativeArray[nullable Object] */;
2901 val* var35 /* : nullable NativeArray[nullable Object] */;
2902 val* var_dest_items /* var dest_items: nullable NativeArray[nullable Object] */;
2903 short int var36 /* : Bool */;
2904 short int var37 /* : Bool */;
2905 val* var_other39 /* var other: nullable Object */;
2906 short int var40 /* : Bool */;
2907 short int var41 /* : Bool */;
2908 short int var43 /* : Bool */;
2909 int cltype44;
2910 int idtype45;
2911 const struct type* type_struct46;
2912 const char* var_class_name47;
2913 /* Covariant cast for argument 2 (dest) <p2:AbstractArray[nullable Object]> isa AbstractArray[E] */
2914 /* <p2:AbstractArray[nullable Object]> isa AbstractArray[E] */
2915 type_struct = self->type->resolution_table->types[COLOR_core__AbstractArray__core__Array___35dE];
2916 cltype = type_struct->color;
2917 idtype = type_struct->id;
2918 if(cltype >= p2->type->table_size) {
2919 var = 0;
2920 } else {
2921 var = p2->type->type_table[cltype] == idtype;
2922 }
2923 if (unlikely(!var)) {
2924 var_class_name = p2 == NULL ? "null" : p2->type->name;
2925 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArray[E]", var_class_name);
2926 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 375);
2927 fatal_exit(1);
2928 }
2929 var_start = p0;
2930 var_len = p1;
2931 var_dest = p2;
2932 var_new_start = p3;
2933 /* <var_dest:AbstractArray[nullable Object]> isa Array[E] */
2934 type_struct4 = self->type->resolution_table->types[COLOR_core__Array__core__Array___35dE];
2935 cltype2 = type_struct4->color;
2936 idtype3 = type_struct4->id;
2937 if(cltype2 >= var_dest->type->table_size) {
2938 var1 = 0;
2939 } else {
2940 var1 = var_dest->type->type_table[cltype2] == idtype3;
2941 }
2942 var5 = !var1;
2943 if (var5){
2944 {
2945 ((void(*)(val* self, long p0, long p1, val* p2, long p3))(self->class->vft[COLOR_core___core__Array___AbstractArrayRead__copy_to]))(self, p0, p1, p2, p3); /* copy_to on <self:Array[nullable Object]>*/
2946 }
2947 goto RET_LABEL;
2948 } else {
2949 }
2950 {
2951 { /* Inline kernel$Int$+ (var_new_start,var_len) on <var_new_start:Int> */
2952 /* Covariant cast for argument 0 (i) <var_len:Int> isa OTHER */
2953 /* <var_len:Int> isa OTHER */
2954 var8 = 1; /* easy <var_len:Int> isa OTHER*/
2955 if (unlikely(!var8)) {
2956 var_class_name11 = type_core__Int.name;
2957 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
2958 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2959 fatal_exit(1);
2960 }
2961 var12 = var_new_start + var_len;
2962 var6 = var12;
2963 goto RET_LABEL7;
2964 RET_LABEL7:(void)0;
2965 }
2966 }
2967 var_dest_len = var6;
2968 {
2969 { /* Inline array$AbstractArrayRead$length (var_dest) on <var_dest:AbstractArray[nullable Object](Array[nullable Object])> */
2970 var15 = var_dest->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_dest:AbstractArray[nullable Object](Array[nullable Object])> */
2971 var13 = var15;
2972 RET_LABEL14:(void)0;
2973 }
2974 }
2975 {
2976 { /* Inline kernel$Int$> (var_dest_len,var13) on <var_dest_len:Int> */
2977 /* Covariant cast for argument 0 (i) <var13:Int> isa OTHER */
2978 /* <var13:Int> isa OTHER */
2979 var18 = 1; /* easy <var13:Int> isa OTHER*/
2980 if (unlikely(!var18)) {
2981 var_class_name21 = type_core__Int.name;
2982 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
2983 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2984 fatal_exit(1);
2985 }
2986 var22 = var_dest_len > var13;
2987 var16 = var22;
2988 goto RET_LABEL17;
2989 RET_LABEL17:(void)0;
2990 }
2991 }
2992 if (var16){
2993 {
2994 core___core__Array___AbstractArray__enlarge(var_dest, var_dest_len); /* Direct call array$Array$enlarge on <var_dest:AbstractArray[nullable Object](Array[nullable Object])>*/
2995 }
2996 {
2997 { /* Inline array$AbstractArrayRead$length= (var_dest,var_dest_len) on <var_dest:AbstractArray[nullable Object](Array[nullable Object])> */
2998 var_dest->attrs[COLOR_core__array__AbstractArrayRead___length].l = var_dest_len; /* _length on <var_dest:AbstractArray[nullable Object](Array[nullable Object])> */
2999 RET_LABEL23:(void)0;
3000 }
3001 }
3002 } else {
3003 }
3004 {
3005 { /* Inline array$Array$items (self) on <self:Array[nullable Object]> */
3006 var26 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
3007 var24 = var26;
3008 RET_LABEL25:(void)0;
3009 }
3010 }
3011 var_items = var24;
3012 if (var_items == NULL) {
3013 var27 = 1; /* is null */
3014 } else {
3015 var27 = 0; /* arg is null but recv is not */
3016 }
3017 if (0) {
3018 { /* Inline kernel$Object$== (var_items,((val*)NULL)) on <var_items:nullable NativeArray[nullable Object]> */
3019 var_other = ((val*)NULL);
3020 {
3021 { /* Inline kernel$Object$is_same_instance (var_items,var_other) on <var_items:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
3022 var32 = var_items == var_other;
3023 var30 = var32;
3024 goto RET_LABEL31;
3025 RET_LABEL31:(void)0;
3026 }
3027 }
3028 var28 = var30;
3029 goto RET_LABEL29;
3030 RET_LABEL29:(void)0;
3031 }
3032 var27 = var28;
3033 }
3034 if (var27){
3035 goto RET_LABEL;
3036 } else {
3037 }
3038 {
3039 { /* Inline array$Array$items (var_dest) on <var_dest:AbstractArray[nullable Object](Array[nullable Object])> */
3040 var35 = var_dest->attrs[COLOR_core__array__Array___items].val; /* _items on <var_dest:AbstractArray[nullable Object](Array[nullable Object])> */
3041 var33 = var35;
3042 RET_LABEL34:(void)0;
3043 }
3044 }
3045 var_dest_items = var33;
3046 if (var_dest_items == NULL) {
3047 var36 = 0; /* is null */
3048 } else {
3049 var36 = 1; /* arg is null and recv is not */
3050 }
3051 if (0) {
3052 { /* Inline kernel$Object$!= (var_dest_items,((val*)NULL)) on <var_dest_items:nullable NativeArray[nullable Object]> */
3053 var_other39 = ((val*)NULL);
3054 {
3055 var40 = ((short int(*)(val* self, val* p0))(var_dest_items->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_dest_items, var_other39); /* == on <var_dest_items:nullable NativeArray[nullable Object](NativeArray[nullable Object])>*/
3056 }
3057 var41 = !var40;
3058 var37 = var41;
3059 goto RET_LABEL38;
3060 RET_LABEL38:(void)0;
3061 }
3062 var36 = var37;
3063 }
3064 if (unlikely(!var36)) {
3065 if(catchStack.cursor >= 0){
3066 longjmp(catchStack.envs[catchStack.cursor], 1);
3067 }
3068 PRINT_ERROR("Runtime error: %s", "Assert failed");
3069 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 395);
3070 fatal_exit(1);
3071 }
3072 {
3073 { /* Inline array$NativeArray$memmove (var_items,var_start,var_len,var_dest_items,var_new_start) on <var_items:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
3074 /* Covariant cast for argument 2 (dest) <var_dest_items:nullable NativeArray[nullable Object](NativeArray[nullable Object])> isa NativeArray[E] */
3075 /* <var_dest_items:nullable NativeArray[nullable Object](NativeArray[nullable Object])> isa NativeArray[E] */
3076 type_struct46 = var_items->type->resolution_table->types[COLOR_core__NativeArray__core__NativeArray___35dE];
3077 cltype44 = type_struct46->color;
3078 idtype45 = type_struct46->id;
3079 if(cltype44 >= var_dest_items->type->table_size) {
3080 var43 = 0;
3081 } else {
3082 var43 = var_dest_items->type->type_table[cltype44] == idtype45;
3083 }
3084 if (unlikely(!var43)) {
3085 var_class_name47 = var_dest_items == NULL ? "null" : var_dest_items->type->name;
3086 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name47);
3087 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 997);
3088 fatal_exit(1);
3089 }
3090 memmove(((struct instance_core__NativeArray*)var_dest_items)->values+var_new_start, ((struct instance_core__NativeArray*)var_items)->values+var_start, var_len*sizeof(val*));
3091 RET_LABEL42:(void)0;
3092 }
3093 }
3094 RET_LABEL:;
3095 }
3096 /* method array$Array$enlarge for (self: Array[nullable Object], Int) */
3097 void core___core__Array___AbstractArray__enlarge(val* self, long p0) {
3098 long var_cap /* var cap: Int */;
3099 long var /* : Int */;
3100 long var_c /* var c: Int */;
3101 short int var1 /* : Bool */;
3102 short int var3 /* : Bool */;
3103 int cltype;
3104 int idtype;
3105 const char* var_class_name;
3106 short int var4 /* : Bool */;
3107 short int var5 /* : Bool */;
3108 short int var7 /* : Bool */;
3109 int cltype8;
3110 int idtype9;
3111 const char* var_class_name10;
3112 short int var11 /* : Bool */;
3113 long var12 /* : Int */;
3114 short int var14 /* : Bool */;
3115 int cltype15;
3116 int idtype16;
3117 const char* var_class_name17;
3118 long var18 /* : Int */;
3119 long var19 /* : Int */;
3120 short int var21 /* : Bool */;
3121 int cltype22;
3122 int idtype23;
3123 const char* var_class_name24;
3124 long var25 /* : Int */;
3125 val* var26 /* : NativeArray[nullable Object] */;
3126 val* var_a /* var a: NativeArray[nullable Object] */;
3127 long var27 /* : Int */;
3128 short int var28 /* : Bool */;
3129 short int var30 /* : Bool */;
3130 int cltype31;
3131 int idtype32;
3132 const char* var_class_name33;
3133 short int var34 /* : Bool */;
3134 val* var35 /* : nullable NativeArray[nullable Object] */;
3135 long var36 /* : Int */;
3136 short int var38 /* : Bool */;
3137 int cltype39;
3138 int idtype40;
3139 const struct type* type_struct;
3140 const char* var_class_name41;
3141 var_cap = p0;
3142 var = self->attrs[COLOR_core__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
3143 var_c = var;
3144 {
3145 { /* Inline kernel$Int$<= (var_cap,var_c) on <var_cap:Int> */
3146 /* Covariant cast for argument 0 (i) <var_c:Int> isa OTHER */
3147 /* <var_c:Int> isa OTHER */
3148 var3 = 1; /* easy <var_c:Int> isa OTHER*/
3149 if (unlikely(!var3)) {
3150 var_class_name = type_core__Int.name;
3151 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3152 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
3153 fatal_exit(1);
3154 }
3155 var4 = var_cap <= var_c;
3156 var1 = var4;
3157 goto RET_LABEL2;
3158 RET_LABEL2:(void)0;
3159 }
3160 }
3161 if (var1){
3162 goto RET_LABEL;
3163 } else {
3164 }
3165 for(;;) {
3166 {
3167 { /* Inline kernel$Int$<= (var_c,var_cap) on <var_c:Int> */
3168 /* Covariant cast for argument 0 (i) <var_cap:Int> isa OTHER */
3169 /* <var_cap:Int> isa OTHER */
3170 var7 = 1; /* easy <var_cap:Int> isa OTHER*/
3171 if (unlikely(!var7)) {
3172 var_class_name10 = type_core__Int.name;
3173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
3174 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 724);
3175 fatal_exit(1);
3176 }
3177 var11 = var_c <= var_cap;
3178 var5 = var11;
3179 goto RET_LABEL6;
3180 RET_LABEL6:(void)0;
3181 }
3182 }
3183 if (var5){
3184 {
3185 { /* Inline kernel$Int$* (var_c,2l) on <var_c:Int> */
3186 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
3187 /* <2l:Int> isa OTHER */
3188 var14 = 1; /* easy <2l:Int> isa OTHER*/
3189 if (unlikely(!var14)) {
3190 var_class_name17 = type_core__Int.name;
3191 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
3192 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 732);
3193 fatal_exit(1);
3194 }
3195 var18 = var_c * 2l;
3196 var12 = var18;
3197 goto RET_LABEL13;
3198 RET_LABEL13:(void)0;
3199 }
3200 }
3201 {
3202 { /* Inline kernel$Int$+ (var12,2l) on <var12:Int> */
3203 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
3204 /* <2l:Int> isa OTHER */
3205 var21 = 1; /* easy <2l:Int> isa OTHER*/
3206 if (unlikely(!var21)) {
3207 var_class_name24 = type_core__Int.name;
3208 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
3209 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3210 fatal_exit(1);
3211 }
3212 var25 = var12 + 2l;
3213 var19 = var25;
3214 goto RET_LABEL20;
3215 RET_LABEL20:(void)0;
3216 }
3217 }
3218 var_c = var19;
3219 } else {
3220 goto BREAK_label;
3221 }
3222 }
3223 BREAK_label: (void)0;
3224 var26 = NEW_core__NativeArray((int)var_c, self->type->resolution_table->types[COLOR_core__NativeArray__core__Array___35dE]);
3225 var_a = var26;
3226 var27 = self->attrs[COLOR_core__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
3227 {
3228 { /* Inline kernel$Int$> (var27,0l) on <var27:Int> */
3229 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3230 /* <0l:Int> isa OTHER */
3231 var30 = 1; /* easy <0l:Int> isa OTHER*/
3232 if (unlikely(!var30)) {
3233 var_class_name33 = type_core__Int.name;
3234 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
3235 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
3236 fatal_exit(1);
3237 }
3238 var34 = var27 > 0l;
3239 var28 = var34;
3240 goto RET_LABEL29;
3241 RET_LABEL29:(void)0;
3242 }
3243 }
3244 if (var28){
3245 var35 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
3246 if (unlikely(var35 == NULL)) {
3247 if(catchStack.cursor >= 0){
3248 longjmp(catchStack.envs[catchStack.cursor], 1);
3249 }
3250 PRINT_ERROR("Runtime error: %s", "Cast failed");
3251 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 407);
3252 fatal_exit(1);
3253 }
3254 var36 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
3255 {
3256 { /* Inline array$NativeArray$copy_to (var35,var_a,var36) on <var35:nullable NativeArray[nullable Object](NativeArray[nullable Object])> */
3257 /* Covariant cast for argument 0 (dest) <var_a:NativeArray[nullable Object]> isa NativeArray[E] */
3258 /* <var_a:NativeArray[nullable Object]> isa NativeArray[E] */
3259 type_struct = var35->type->resolution_table->types[COLOR_core__NativeArray__core__NativeArray___35dE];
3260 cltype39 = type_struct->color;
3261 idtype40 = type_struct->id;
3262 if(cltype39 >= var_a->type->table_size) {
3263 var38 = 0;
3264 } else {
3265 var38 = var_a->type->type_table[cltype39] == idtype40;
3266 }
3267 if (unlikely(!var38)) {
3268 var_class_name41 = var_a == NULL ? "null" : var_a->type->name;
3269 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name41);
3270 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 994);
3271 fatal_exit(1);
3272 }
3273 memmove(((struct instance_core__NativeArray*)var_a)->values, ((struct instance_core__NativeArray*)var35)->values, var36*sizeof(val*));
3274 RET_LABEL37:(void)0;
3275 }
3276 }
3277 } else {
3278 }
3279 self->attrs[COLOR_core__array__Array___items].val = var_a; /* _items on <self:Array[nullable Object]> */
3280 self->attrs[COLOR_core__array__Array___capacity].l = var_c; /* _capacity on <self:Array[nullable Object]> */
3281 RET_LABEL:;
3282 }
3283 /* method array$Array$init for (self: Array[nullable Object]) */
3284 void core___core__Array___core__kernel__Object__init(val* self) {
3285 {
3286 ((void(*)(val* self))(self->class->vft[COLOR_core___core__Array___core__kernel__Object__init]))(self); /* init on <self:Array[nullable Object]>*/
3287 }
3288 self->attrs[COLOR_core__array__Array___capacity].l = 0l; /* _capacity on <self:Array[nullable Object]> */
3289 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = 0l; /* _length on <self:Array[nullable Object]> */
3290 RET_LABEL:;
3291 }
3292 /* method array$Array$with_capacity for (self: Array[nullable Object], Int) */
3293 void core___core__Array___with_capacity(val* self, long p0) {
3294 long var_cap /* var cap: Int */;
3295 short int var /* : Bool */;
3296 short int var2 /* : Bool */;
3297 int cltype;
3298 int idtype;
3299 const char* var_class_name;
3300 short int var3 /* : Bool */;
3301 val* var4 /* : NativeArray[nullable Object] */;
3302 {
3303 core___core__Array___core__kernel__Object__init(self); /* Direct call array$Array$init on <self:Array[nullable Object]>*/
3304 }
3305 var_cap = p0;
3306 {
3307 { /* Inline kernel$Int$>= (var_cap,0l) on <var_cap:Int> */
3308 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3309 /* <0l:Int> isa OTHER */
3310 var2 = 1; /* easy <0l:Int> isa OTHER*/
3311 if (unlikely(!var2)) {
3312 var_class_name = type_core__Int.name;
3313 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3314 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
3315 fatal_exit(1);
3316 }
3317 var3 = var_cap >= 0l;
3318 var = var3;
3319 goto RET_LABEL1;
3320 RET_LABEL1:(void)0;
3321 }
3322 }
3323 if (unlikely(!var)) {
3324 if(catchStack.cursor >= 0){
3325 longjmp(catchStack.envs[catchStack.cursor], 1);
3326 }
3327 PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed");
3328 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 436);
3329 fatal_exit(1);
3330 }
3331 var4 = NEW_core__NativeArray((int)var_cap, self->type->resolution_table->types[COLOR_core__NativeArray__core__Array___35dE]);
3332 self->attrs[COLOR_core__array__Array___items].val = var4; /* _items on <self:Array[nullable Object]> */
3333 self->attrs[COLOR_core__array__Array___capacity].l = var_cap; /* _capacity on <self:Array[nullable Object]> */
3334 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = 0l; /* _length on <self:Array[nullable Object]> */
3335 RET_LABEL:;
3336 }
3337 /* method array$Array$filled_with for (self: Array[nullable Object], nullable Object, Int) */
3338 void core___core__Array___filled_with(val* self, val* p0, long p1) {
3339 short int var /* : Bool */;
3340 int cltype;
3341 int idtype;
3342 const struct type* type_struct;
3343 short int is_nullable;
3344 const char* var_class_name;
3345 val* var_value /* var value: nullable Object */;
3346 long var_count /* var count: Int */;
3347 short int var1 /* : Bool */;
3348 short int var3 /* : Bool */;
3349 int cltype4;
3350 int idtype5;
3351 const char* var_class_name6;
3352 short int var7 /* : Bool */;
3353 val* var8 /* : NativeArray[nullable Object] */;
3354 long var_i /* var i: Int */;
3355 short int var9 /* : Bool */;
3356 short int var11 /* : Bool */;
3357 int cltype12;
3358 int idtype13;
3359 const char* var_class_name14;
3360 short int var15 /* : Bool */;
3361 long var16 /* : Int */;
3362 short int var18 /* : Bool */;
3363 int cltype19;
3364 int idtype20;
3365 const char* var_class_name21;
3366 long var22 /* : Int */;
3367 /* Covariant cast for argument 0 (value) <p0:nullable Object> isa E */
3368 /* <p0:nullable Object> isa E */
3369 type_struct = self->type->resolution_table->types[COLOR_core__Array___35dE];
3370 cltype = type_struct->color;
3371 idtype = type_struct->id;
3372 is_nullable = type_struct->is_nullable;
3373 if(p0 == NULL) {
3374 var = is_nullable;
3375 } else {
3376 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
3377 var = 0;
3378 } else {
3379 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
3380 }
3381 }
3382 if (unlikely(!var)) {
3383 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
3384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
3385 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 442);
3386 fatal_exit(1);
3387 }
3388 {
3389 core___core__Array___core__kernel__Object__init(self); /* Direct call array$Array$init on <self:Array[nullable Object]>*/
3390 }
3391 var_value = p0;
3392 var_count = p1;
3393 {
3394 { /* Inline kernel$Int$>= (var_count,0l) on <var_count:Int> */
3395 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3396 /* <0l:Int> isa OTHER */
3397 var3 = 1; /* easy <0l:Int> isa OTHER*/
3398 if (unlikely(!var3)) {
3399 var_class_name6 = type_core__Int.name;
3400 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
3401 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
3402 fatal_exit(1);
3403 }
3404 var7 = var_count >= 0l;
3405 var1 = var7;
3406 goto RET_LABEL2;
3407 RET_LABEL2:(void)0;
3408 }
3409 }
3410 if (unlikely(!var1)) {
3411 if(catchStack.cursor >= 0){
3412 longjmp(catchStack.envs[catchStack.cursor], 1);
3413 }
3414 PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed");
3415 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 445);
3416 fatal_exit(1);
3417 }
3418 var8 = NEW_core__NativeArray((int)var_count, self->type->resolution_table->types[COLOR_core__NativeArray__core__Array___35dE]);
3419 self->attrs[COLOR_core__array__Array___items].val = var8; /* _items on <self:Array[nullable Object]> */
3420 self->attrs[COLOR_core__array__Array___capacity].l = var_count; /* _capacity on <self:Array[nullable Object]> */
3421 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = var_count; /* _length on <self:Array[nullable Object]> */
3422 var_i = 0l;
3423 for(;;) {
3424 {
3425 { /* Inline kernel$Int$< (var_i,var_count) on <var_i:Int> */
3426 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
3427 /* <var_count:Int> isa OTHER */
3428 var11 = 1; /* easy <var_count:Int> isa OTHER*/
3429 if (unlikely(!var11)) {
3430 var_class_name14 = type_core__Int.name;
3431 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
3432 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3433 fatal_exit(1);
3434 }
3435 var15 = var_i < var_count;
3436 var9 = var15;
3437 goto RET_LABEL10;
3438 RET_LABEL10:(void)0;
3439 }
3440 }
3441 if (var9){
3442 {
3443 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(self, var_i, var_value); /* Direct call array$Array$[]= on <self:Array[nullable Object]>*/
3444 }
3445 {
3446 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
3447 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3448 /* <1l:Int> isa OTHER */
3449 var18 = 1; /* easy <1l:Int> isa OTHER*/
3450 if (unlikely(!var18)) {
3451 var_class_name21 = type_core__Int.name;
3452 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
3453 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3454 fatal_exit(1);
3455 }
3456 var22 = var_i + 1l;
3457 var16 = var22;
3458 goto RET_LABEL17;
3459 RET_LABEL17:(void)0;
3460 }
3461 }
3462 var_i = var16;
3463 } else {
3464 goto BREAK_label;
3465 }
3466 }
3467 BREAK_label: (void)0;
3468 RET_LABEL:;
3469 }
3470 /* method array$Array$with_native for (self: Array[nullable Object], NativeArray[nullable Object], Int) */
3471 void core___core__Array___with_native(val* self, val* p0, long p1) {
3472 short int var /* : Bool */;
3473 int cltype;
3474 int idtype;
3475 const struct type* type_struct;
3476 const char* var_class_name;
3477 val* var_nat /* var nat: NativeArray[nullable Object] */;
3478 long var_size /* var size: Int */;
3479 short int var1 /* : Bool */;
3480 short int var3 /* : Bool */;
3481 int cltype4;
3482 int idtype5;
3483 const char* var_class_name6;
3484 short int var7 /* : Bool */;
3485 /* Covariant cast for argument 0 (nat) <p0:NativeArray[nullable Object]> isa NativeArray[E] */
3486 /* <p0:NativeArray[nullable Object]> isa NativeArray[E] */
3487 type_struct = self->type->resolution_table->types[COLOR_core__NativeArray__core__Array___35dE];
3488 cltype = type_struct->color;
3489 idtype = type_struct->id;
3490 if(cltype >= p0->type->table_size) {
3491 var = 0;
3492 } else {
3493 var = p0->type->type_table[cltype] == idtype;
3494 }
3495 if (unlikely(!var)) {
3496 var_class_name = p0 == NULL ? "null" : p0->type->name;
3497 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name);
3498 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 456);
3499 fatal_exit(1);
3500 }
3501 {
3502 core___core__Array___core__kernel__Object__init(self); /* Direct call array$Array$init on <self:Array[nullable Object]>*/
3503 }
3504 var_nat = p0;
3505 var_size = p1;
3506 {
3507 { /* Inline kernel$Int$>= (var_size,0l) on <var_size:Int> */
3508 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3509 /* <0l:Int> isa OTHER */
3510 var3 = 1; /* easy <0l:Int> isa OTHER*/
3511 if (unlikely(!var3)) {
3512 var_class_name6 = type_core__Int.name;
3513 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
3514 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
3515 fatal_exit(1);
3516 }
3517 var7 = var_size >= 0l;
3518 var1 = var7;
3519 goto RET_LABEL2;
3520 RET_LABEL2:(void)0;
3521 }
3522 }
3523 if (unlikely(!var1)) {
3524 if(catchStack.cursor >= 0){
3525 longjmp(catchStack.envs[catchStack.cursor], 1);
3526 }
3527 PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed");
3528 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 459);
3529 fatal_exit(1);
3530 }
3531 self->attrs[COLOR_core__array__Array___items].val = var_nat; /* _items on <self:Array[nullable Object]> */
3532 self->attrs[COLOR_core__array__Array___capacity].l = var_size; /* _capacity on <self:Array[nullable Object]> */
3533 self->attrs[COLOR_core__array__AbstractArrayRead___length].l = var_size; /* _length on <self:Array[nullable Object]> */
3534 RET_LABEL:;
3535 }
3536 /* method array$Array$items for (self: Array[nullable Object]): nullable NativeArray[nullable Object] */
3537 val* core___core__Array___items(val* self) {
3538 val* var /* : nullable NativeArray[nullable Object] */;
3539 val* var1 /* : nullable NativeArray[nullable Object] */;
3540 var1 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
3541 var = var1;
3542 RET_LABEL:;
3543 return var;
3544 }
3545 /* method array$Array$== for (self: Array[nullable Object], nullable Object): Bool */
3546 short int core___core__Array___core__kernel__Object___61d_61d(val* self, val* p0) {
3547 short int var /* : Bool */;
3548 val* var_o /* var o: nullable Object */;
3549 short int var1 /* : Bool */;
3550 int cltype;
3551 int idtype;
3552 short int var2 /* : Bool */;
3553 short int var3 /* : Bool */;
3554 long var4 /* : Int */;
3555 long var6 /* : Int */;
3556 long var_l /* var l: Int */;
3557 long var7 /* : Int */;
3558 long var9 /* : Int */;
3559 short int var10 /* : Bool */;
3560 short int var12 /* : Bool */;
3561 short int var13 /* : Bool */;
3562 short int var14 /* : Bool */;
3563 short int var16 /* : Bool */;
3564 long var_i /* var i: Int */;
3565 val* var17 /* : nullable NativeArray[nullable Object] */;
3566 val* var_it /* var it: NativeArray[nullable Object] */;
3567 val* var18 /* : nullable NativeArray[nullable Object] */;
3568 val* var_oit /* var oit: NativeArray[nullable Object] */;
3569 short int var19 /* : Bool */;
3570 short int var21 /* : Bool */;
3571 int cltype22;
3572 int idtype23;
3573 const char* var_class_name;
3574 short int var24 /* : Bool */;
3575 val* var25 /* : nullable Object */;
3576 val* var27 /* : Object */;
3577 val* var28 /* : nullable Object */;
3578 val* var30 /* : Object */;
3579 short int var31 /* : Bool */;
3580 short int var32 /* : Bool */;
3581 long var33 /* : Int */;
3582 short int var35 /* : Bool */;
3583 int cltype36;
3584 int idtype37;
3585 const char* var_class_name38;
3586 long var39 /* : Int */;
3587 var_o = p0;
3588 /* <var_o:nullable Object> isa Array[nullable Object] */
3589 cltype = type_core__Array__nullable__core__Object.color;
3590 idtype = type_core__Array__nullable__core__Object.id;
3591 if(var_o == NULL) {
3592 var1 = 0;
3593 } else {
3594 if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) {
3595 var1 = 0;
3596 } else {
3597 var1 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype;
3598 }
3599 }
3600 var2 = !var1;
3601 if (var2){
3602 {
3603 var3 = ((short int(*)(val* self, val* p0))(self->class->vft[COLOR_core___core__Array___core__kernel__Object___61d_61d]))(self, p0); /* == on <self:Array[nullable Object]>*/
3604 }
3605 var = var3;
3606 goto RET_LABEL;
3607 } else {
3608 }
3609 {
3610 { /* Inline array$AbstractArrayRead$length (self) on <self:Array[nullable Object]> */
3611 var6 = self->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
3612 var4 = var6;
3613 RET_LABEL5:(void)0;
3614 }
3615 }
3616 var_l = var4;
3617 {
3618 { /* Inline array$AbstractArrayRead$length (var_o) on <var_o:nullable Object(Array[nullable Object])> */
3619 var9 = var_o->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_o:nullable Object(Array[nullable Object])> */
3620 var7 = var9;
3621 RET_LABEL8:(void)0;
3622 }
3623 }
3624 {
3625 { /* Inline kernel$Int$!= (var_l,var7) on <var_l:Int> */
3626 var12 = var_l == var7;
3627 var13 = !var12;
3628 var10 = var13;
3629 goto RET_LABEL11;
3630 RET_LABEL11:(void)0;
3631 }
3632 }
3633 if (var10){
3634 var = 0;
3635 goto RET_LABEL;
3636 } else {
3637 }
3638 {
3639 { /* Inline kernel$Int$== (var_l,0l) on <var_l:Int> */
3640 var16 = var_l == 0l;
3641 var14 = var16;
3642 goto RET_LABEL15;
3643 RET_LABEL15:(void)0;
3644 }
3645 }
3646 if (var14){
3647 var = 1;
3648 goto RET_LABEL;
3649 } else {
3650 }
3651 var_i = 0l;
3652 var17 = self->attrs[COLOR_core__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
3653 if (unlikely(var17 == NULL)) {
3654 if(catchStack.cursor >= 0){
3655 longjmp(catchStack.envs[catchStack.cursor], 1);
3656 }
3657 PRINT_ERROR("Runtime error: %s", "Cast failed");
3658 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 479);
3659 fatal_exit(1);
3660 }
3661 var_it = var17;
3662 var18 = var_o->attrs[COLOR_core__array__Array___items].val; /* _items on <var_o:nullable Object(Array[nullable Object])> */
3663 if (unlikely(var18 == NULL)) {
3664 if(catchStack.cursor >= 0){
3665 longjmp(catchStack.envs[catchStack.cursor], 1);
3666 }
3667 PRINT_ERROR("Runtime error: %s", "Cast failed");
3668 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 480);
3669 fatal_exit(1);
3670 }
3671 var_oit = var18;
3672 for(;;) {
3673 {
3674 { /* Inline kernel$Int$< (var_i,var_l) on <var_i:Int> */
3675 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
3676 /* <var_l:Int> isa OTHER */
3677 var21 = 1; /* easy <var_l:Int> isa OTHER*/
3678 if (unlikely(!var21)) {
3679 var_class_name = type_core__Int.name;
3680 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3681 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3682 fatal_exit(1);
3683 }
3684 var24 = var_i < var_l;
3685 var19 = var24;
3686 goto RET_LABEL20;
3687 RET_LABEL20:(void)0;
3688 }
3689 }
3690 if (var19){
3691 {
3692 { /* Inline array$NativeArray$[] (var_it,var_i) on <var_it:NativeArray[nullable Object]> */
3693 var27 = ((struct instance_core__NativeArray*)var_it)->values[var_i];
3694 var25 = var27;
3695 goto RET_LABEL26;
3696 RET_LABEL26:(void)0;
3697 }
3698 }
3699 {
3700 { /* Inline array$NativeArray$[] (var_oit,var_i) on <var_oit:NativeArray[nullable Object]> */
3701 var30 = ((struct instance_core__NativeArray*)var_oit)->values[var_i];
3702 var28 = var30;
3703 goto RET_LABEL29;
3704 RET_LABEL29:(void)0;
3705 }
3706 }
3707 if (var25 == NULL) {
3708 var31 = (var28 != NULL);
3709 } else {
3710 var32 = ((short int(*)(val* self, val* p0))((((long)var25&3)?class_info[((long)var25&3)]:var25->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var25, var28); /* != on <var25:nullable Object>*/
3711 var31 = var32;
3712 }
3713 if (var31){
3714 var = 0;
3715 goto RET_LABEL;
3716 } else {
3717 }
3718 {
3719 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
3720 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3721 /* <1l:Int> isa OTHER */
3722 var35 = 1; /* easy <1l:Int> isa OTHER*/
3723 if (unlikely(!var35)) {
3724 var_class_name38 = type_core__Int.name;
3725 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name38);
3726 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3727 fatal_exit(1);
3728 }
3729 var39 = var_i + 1l;
3730 var33 = var39;
3731 goto RET_LABEL34;
3732 RET_LABEL34:(void)0;
3733 }
3734 }
3735 var_i = var33;
3736 } else {
3737 goto BREAK_label;
3738 }
3739 }
3740 BREAK_label: (void)0;
3741 var = 1;
3742 goto RET_LABEL;
3743 RET_LABEL:;
3744 return var;
3745 }
3746 /* method array$Array$clone for (self: Array[nullable Object]): Array[nullable Object] */
3747 val* core___core__Array___core__kernel__Cloneable__clone(val* self) {
3748 val* var /* : Array[nullable Object] */;
3749 val* var1 /* : Array[nullable Object] */;
3750 short int var2 /* : Bool */;
3751 int cltype;
3752 int idtype;
3753 const struct type* type_struct;
3754 const char* var_class_name;
3755 {
3756 var1 = core__array___Collection___to_a(self);
3757 }
3758 /* <var1:Array[nullable Object]> isa SELF */
3759 type_struct = self->type->resolution_table->types[COLOR_core__kernel__Object__SELF];
3760 cltype = type_struct->color;
3761 idtype = type_struct->id;
3762 if(cltype >= var1->type->table_size) {
3763 var2 = 0;
3764 } else {
3765 var2 = var1->type->type_table[cltype] == idtype;
3766 }
3767 if (unlikely(!var2)) {
3768 var_class_name = var1 == NULL ? "null" : var1->type->name;
3769 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELF", var_class_name);
3770 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 509);
3771 fatal_exit(1);
3772 }
3773 var = var1;
3774 goto RET_LABEL;
3775 RET_LABEL:;
3776 return var;
3777 }
3778 /* method array$ArrayIterator$item for (self: ArrayIterator[nullable Object]): nullable Object */
3779 val* core__array___core__array__ArrayIterator___core__abstract_collection__Iterator__item(val* self) {
3780 val* var /* : nullable Object */;
3781 val* var1 /* : AbstractArrayRead[nullable Object] */;
3782 long var2 /* : Int */;
3783 val* var3 /* : nullable Object */;
3784 var1 = self->attrs[COLOR_core__array__ArrayIterator___array].val; /* _array on <self:ArrayIterator[nullable Object]> */
3785 if (unlikely(var1 == NULL)) {
3786 if(catchStack.cursor >= 0){
3787 longjmp(catchStack.envs[catchStack.cursor], 1);
3788 }
3789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3790 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 560);
3791 fatal_exit(1);
3792 }
3793 var2 = self->attrs[COLOR_core__array__ArrayIterator___index].l; /* _index on <self:ArrayIterator[nullable Object]> */
3794 {
3795 var3 = ((val*(*)(val* self, long p0))(var1->class->vft[COLOR_core__abstract_collection__SequenceRead___91d_93d]))(var1, var2); /* [] on <var1:AbstractArrayRead[nullable Object]>*/
3796 }
3797 var = var3;
3798 goto RET_LABEL;
3799 RET_LABEL:;
3800 return var;
3801 }
3802 /* method array$ArrayIterator$is_ok for (self: ArrayIterator[nullable Object]): Bool */
3803 short int core__array___core__array__ArrayIterator___core__abstract_collection__Iterator__is_ok(val* self) {
3804 short int var /* : Bool */;
3805 long var1 /* : Int */;
3806 val* var2 /* : AbstractArrayRead[nullable Object] */;
3807 long var3 /* : Int */;
3808 short int var4 /* : Bool */;
3809 short int var6 /* : Bool */;
3810 int cltype;
3811 int idtype;
3812 const char* var_class_name;
3813 short int var7 /* : Bool */;
3814 var1 = self->attrs[COLOR_core__array__ArrayIterator___index].l; /* _index on <self:ArrayIterator[nullable Object]> */
3815 var2 = self->attrs[COLOR_core__array__ArrayIterator___array].val; /* _array on <self:ArrayIterator[nullable Object]> */
3816 if (unlikely(var2 == NULL)) {
3817 if(catchStack.cursor >= 0){
3818 longjmp(catchStack.envs[catchStack.cursor], 1);
3819 }
3820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3821 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 564);
3822 fatal_exit(1);
3823 }
3824 {
3825 var3 = ((long(*)(val* self))(var2->class->vft[COLOR_core__abstract_collection__Collection__length]))(var2); /* length on <var2:AbstractArrayRead[nullable Object]>*/
3826 }
3827 {
3828 { /* Inline kernel$Int$< (var1,var3) on <var1:Int> */
3829 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
3830 /* <var3:Int> isa OTHER */
3831 var6 = 1; /* easy <var3:Int> isa OTHER*/
3832 if (unlikely(!var6)) {
3833 var_class_name = type_core__Int.name;
3834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3835 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3836 fatal_exit(1);
3837 }
3838 var7 = var1 < var3;
3839 var4 = var7;
3840 goto RET_LABEL5;
3841 RET_LABEL5:(void)0;
3842 }
3843 }
3844 var = var4;
3845 goto RET_LABEL;
3846 RET_LABEL:;
3847 return var;
3848 }
3849 /* method array$ArrayIterator$next for (self: ArrayIterator[nullable Object]) */
3850 void core__array___core__array__ArrayIterator___core__abstract_collection__Iterator__next(val* self) {
3851 val* var_ /* var : ArrayIterator[nullable Object] */;
3852 long var /* : Int */;
3853 long var1 /* : Int */;
3854 short int var3 /* : Bool */;
3855 int cltype;
3856 int idtype;
3857 const char* var_class_name;
3858 long var4 /* : Int */;
3859 var_ = self;
3860 var = var_->attrs[COLOR_core__array__ArrayIterator___index].l; /* _index on <var_:ArrayIterator[nullable Object]> */
3861 {
3862 { /* Inline kernel$Int$+ (var,1l) on <var:Int> */
3863 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3864 /* <1l:Int> isa OTHER */
3865 var3 = 1; /* easy <1l:Int> isa OTHER*/
3866 if (unlikely(!var3)) {
3867 var_class_name = type_core__Int.name;
3868 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3869 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3870 fatal_exit(1);
3871 }
3872 var4 = var + 1l;
3873 var1 = var4;
3874 goto RET_LABEL2;
3875 RET_LABEL2:(void)0;
3876 }
3877 }
3878 var_->attrs[COLOR_core__array__ArrayIterator___index].l = var1; /* _index on <var_:ArrayIterator[nullable Object]> */
3879 RET_LABEL:;
3880 }
3881 /* method array$ArrayIterator$index for (self: ArrayIterator[nullable Object]): Int */
3882 long core__array___core__array__ArrayIterator___core__abstract_collection__IndexedIterator__index(val* self) {
3883 long var /* : Int */;
3884 long var1 /* : Int */;
3885 var1 = self->attrs[COLOR_core__array__ArrayIterator___index].l; /* _index on <self:ArrayIterator[nullable Object]> */
3886 var = var1;
3887 RET_LABEL:;
3888 return var;
3889 }
3890 /* method array$ArrayIterator$array= for (self: ArrayIterator[nullable Object], AbstractArrayRead[nullable Object]) */
3891 void core__array___core__array__ArrayIterator___array_61d(val* self, val* p0) {
3892 short int var /* : Bool */;
3893 int cltype;
3894 int idtype;
3895 const struct type* type_struct;
3896 const char* var_class_name;
3897 /* Covariant cast for argument 0 (array) <p0:AbstractArrayRead[nullable Object]> isa AbstractArrayRead[E] */
3898 /* <p0:AbstractArrayRead[nullable Object]> isa AbstractArrayRead[E] */
3899 type_struct = self->type->resolution_table->types[COLOR_core__AbstractArrayRead__core__array__ArrayIterator___35dE];
3900 cltype = type_struct->color;
3901 idtype = type_struct->id;
3902 if(cltype >= p0->type->table_size) {
3903 var = 0;
3904 } else {
3905 var = p0->type->type_table[cltype] == idtype;
3906 }
3907 if (unlikely(!var)) {
3908 var_class_name = p0 == NULL ? "null" : p0->type->name;
3909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArrayRead[E]", var_class_name);
3910 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 570);
3911 fatal_exit(1);
3912 }
3913 self->attrs[COLOR_core__array__ArrayIterator___array].val = p0; /* _array on <self:ArrayIterator[nullable Object]> */
3914 RET_LABEL:;
3915 }
3916 /* method array$ArrayIterator$finish for (self: ArrayIterator[nullable Object]) */
3917 void core__array___core__array__ArrayIterator___core__abstract_collection__Iterator__finish(val* self) {
3918 val* var /* : AbstractArrayRead[nullable Object] */;
3919 var = self->attrs[COLOR_core__array__ArrayIterator___array].val; /* _array on <self:ArrayIterator[nullable Object]> */
3920 if (unlikely(var == NULL)) {
3921 if(catchStack.cursor >= 0){
3922 longjmp(catchStack.envs[catchStack.cursor], 1);
3923 }
3924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3925 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 572);
3926 fatal_exit(1);
3927 }
3928 var->attrs[COLOR_core__array__AbstractArrayRead___free_iterator].val = self; /* _free_iterator on <var:AbstractArrayRead[nullable Object]> */
3929 RET_LABEL:;
3930 }
3931 /* method array$ArrayIterator$init for (self: ArrayIterator[nullable Object]) */
3932 void core__array___core__array__ArrayIterator___core__kernel__Object__init(val* self) {
3933 {
3934 ((void(*)(val* self))(self->class->vft[COLOR_core__array___core__array__ArrayIterator___core__kernel__Object__init]))(self); /* init on <self:ArrayIterator[nullable Object]>*/
3935 }
3936 RET_LABEL:;
3937 }
3938 /* method array$ArrayReverseIterator$is_ok for (self: ArrayReverseIterator[nullable Object]): Bool */
3939 short int core__array___core__array__ArrayReverseIterator___core__abstract_collection__Iterator__is_ok(val* self) {
3940 short int var /* : Bool */;
3941 long var1 /* : Int */;
3942 short int var2 /* : Bool */;
3943 short int var4 /* : Bool */;
3944 int cltype;
3945 int idtype;
3946 const char* var_class_name;
3947 short int var5 /* : Bool */;
3948 var1 = self->attrs[COLOR_core__array__ArrayIterator___index].l; /* _index on <self:ArrayReverseIterator[nullable Object]> */
3949 {
3950 { /* Inline kernel$Int$>= (var1,0l) on <var1:Int> */
3951 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3952 /* <0l:Int> isa OTHER */
3953 var4 = 1; /* easy <0l:Int> isa OTHER*/
3954 if (unlikely(!var4)) {
3955 var_class_name = type_core__Int.name;
3956 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3957 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
3958 fatal_exit(1);
3959 }
3960 var5 = var1 >= 0l;
3961 var2 = var5;
3962 goto RET_LABEL3;
3963 RET_LABEL3:(void)0;
3964 }
3965 }
3966 var = var2;
3967 goto RET_LABEL;
3968 RET_LABEL:;
3969 return var;
3970 }
3971 /* method array$ArrayReverseIterator$next for (self: ArrayReverseIterator[nullable Object]) */
3972 void core__array___core__array__ArrayReverseIterator___core__abstract_collection__Iterator__next(val* self) {
3973 val* var_ /* var : ArrayReverseIterator[nullable Object] */;
3974 long var /* : Int */;
3975 long var1 /* : Int */;
3976 short int var3 /* : Bool */;
3977 int cltype;
3978 int idtype;
3979 const char* var_class_name;
3980 long var4 /* : Int */;
3981 var_ = self;
3982 var = var_->attrs[COLOR_core__array__ArrayIterator___index].l; /* _index on <var_:ArrayReverseIterator[nullable Object]> */
3983 {
3984 { /* Inline kernel$Int$- (var,1l) on <var:Int> */
3985 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3986 /* <1l:Int> isa OTHER */
3987 var3 = 1; /* easy <1l:Int> isa OTHER*/
3988 if (unlikely(!var3)) {
3989 var_class_name = type_core__Int.name;
3990 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3991 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
3992 fatal_exit(1);
3993 }
3994 var4 = var - 1l;
3995 var1 = var4;
3996 goto RET_LABEL2;
3997 RET_LABEL2:(void)0;
3998 }
3999 }
4000 var_->attrs[COLOR_core__array__ArrayIterator___index].l = var1; /* _index on <var_:ArrayReverseIterator[nullable Object]> */
4001 RET_LABEL:;
4002 }
4003 /* method array$ArrayReverseIterator$init for (self: ArrayReverseIterator[nullable Object]) */
4004 void core__array___core__array__ArrayReverseIterator___core__kernel__Object__init(val* self) {
4005 val* var /* : AbstractArrayRead[nullable Object] */;
4006 long var1 /* : Int */;
4007 long var2 /* : Int */;
4008 short int var4 /* : Bool */;
4009 int cltype;
4010 int idtype;
4011 const char* var_class_name;
4012 long var5 /* : Int */;
4013 {
4014 ((void(*)(val* self))(self->class->vft[COLOR_core__array___core__array__ArrayReverseIterator___core__kernel__Object__init]))(self); /* init on <self:ArrayReverseIterator[nullable Object]>*/
4015 }
4016 var = self->attrs[COLOR_core__array__ArrayIterator___array].val; /* _array on <self:ArrayReverseIterator[nullable Object]> */
4017 if (unlikely(var == NULL)) {
4018 if(catchStack.cursor >= 0){
4019 longjmp(catchStack.envs[catchStack.cursor], 1);
4020 }
4021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4022 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 584);
4023 fatal_exit(1);
4024 }
4025 {
4026 var1 = ((long(*)(val* self))(var->class->vft[COLOR_core__abstract_collection__Collection__length]))(var); /* length on <var:AbstractArrayRead[nullable Object]>*/
4027 }
4028 {
4029 { /* Inline kernel$Int$- (var1,1l) on <var1:Int> */
4030 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4031 /* <1l:Int> isa OTHER */
4032 var4 = 1; /* easy <1l:Int> isa OTHER*/
4033 if (unlikely(!var4)) {
4034 var_class_name = type_core__Int.name;
4035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4036 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
4037 fatal_exit(1);
4038 }
4039 var5 = var1 - 1l;
4040 var2 = var5;
4041 goto RET_LABEL3;
4042 RET_LABEL3:(void)0;
4043 }
4044 }
4045 self->attrs[COLOR_core__array__ArrayIterator___index].l = var2; /* _index on <self:ArrayReverseIterator[nullable Object]> */
4046 RET_LABEL:;
4047 }
4048 /* method array$ArrayReverseIterator$finish for (self: ArrayReverseIterator[nullable Object]) */
4049 void core__array___core__array__ArrayReverseIterator___core__abstract_collection__Iterator__finish(val* self) {
4050 RET_LABEL:;
4051 }
4052 /* method array$ArraySet$has for (self: ArraySet[nullable Object], nullable Object): Bool */
4053 short int core___core__ArraySet___core__abstract_collection__Collection__has(val* self, val* p0) {
4054 short int var /* : Bool */;
4055 val* var_e /* var e: nullable Object */;
4056 val* var1 /* : Array[nullable Object] */;
4057 short int var2 /* : Bool */;
4058 var_e = p0;
4059 var1 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4060 if (unlikely(var1 == NULL)) {
4061 if(catchStack.cursor >= 0){
4062 longjmp(catchStack.envs[catchStack.cursor], 1);
4063 }
4064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4065 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 600);
4066 fatal_exit(1);
4067 }
4068 {
4069 var2 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var1, var_e);
4070 }
4071 var = var2;
4072 goto RET_LABEL;
4073 RET_LABEL:;
4074 return var;
4075 }
4076 /* method array$ArraySet$add for (self: ArraySet[nullable Object], nullable Object) */
4077 void core___core__ArraySet___core__abstract_collection__SimpleCollection__add(val* self, val* p0) {
4078 short int var /* : Bool */;
4079 int cltype;
4080 int idtype;
4081 const struct type* type_struct;
4082 short int is_nullable;
4083 const char* var_class_name;
4084 val* var_e /* var e: nullable Object */;
4085 val* var1 /* : Array[nullable Object] */;
4086 short int var2 /* : Bool */;
4087 short int var3 /* : Bool */;
4088 val* var4 /* : Array[nullable Object] */;
4089 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
4090 /* <p0:nullable Object> isa E */
4091 type_struct = self->type->resolution_table->types[COLOR_core__ArraySet___35dE];
4092 cltype = type_struct->color;
4093 idtype = type_struct->id;
4094 is_nullable = type_struct->is_nullable;
4095 if(p0 == NULL) {
4096 var = is_nullable;
4097 } else {
4098 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4099 var = 0;
4100 } else {
4101 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4102 }
4103 }
4104 if (unlikely(!var)) {
4105 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4106 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
4107 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 602);
4108 fatal_exit(1);
4109 }
4110 var_e = p0;
4111 var1 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4112 if (unlikely(var1 == NULL)) {
4113 if(catchStack.cursor >= 0){
4114 longjmp(catchStack.envs[catchStack.cursor], 1);
4115 }
4116 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4117 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 602);
4118 fatal_exit(1);
4119 }
4120 {
4121 var2 = core___core__AbstractArrayRead___core__abstract_collection__Collection__has(var1, var_e);
4122 }
4123 var3 = !var2;
4124 if (var3){
4125 var4 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4126 if (unlikely(var4 == NULL)) {
4127 if(catchStack.cursor >= 0){
4128 longjmp(catchStack.envs[catchStack.cursor], 1);
4129 }
4130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4131 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 602);
4132 fatal_exit(1);
4133 }
4134 {
4135 core___core__Array___core__abstract_collection__SimpleCollection__add(var4, var_e); /* Direct call array$Array$add on <var4:Array[nullable Object]>*/
4136 }
4137 } else {
4138 }
4139 RET_LABEL:;
4140 }
4141 /* method array$ArraySet$is_empty for (self: ArraySet[nullable Object]): Bool */
4142 short int core___core__ArraySet___core__abstract_collection__Collection__is_empty(val* self) {
4143 short int var /* : Bool */;
4144 val* var1 /* : Array[nullable Object] */;
4145 short int var2 /* : Bool */;
4146 var1 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4147 if (unlikely(var1 == NULL)) {
4148 if(catchStack.cursor >= 0){
4149 longjmp(catchStack.envs[catchStack.cursor], 1);
4150 }
4151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4152 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 604);
4153 fatal_exit(1);
4154 }
4155 {
4156 var2 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var1);
4157 }
4158 var = var2;
4159 goto RET_LABEL;
4160 RET_LABEL:;
4161 return var;
4162 }
4163 /* method array$ArraySet$length for (self: ArraySet[nullable Object]): Int */
4164 long core___core__ArraySet___core__abstract_collection__Collection__length(val* self) {
4165 long var /* : Int */;
4166 val* var1 /* : Array[nullable Object] */;
4167 long var2 /* : Int */;
4168 long var4 /* : Int */;
4169 var1 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4170 if (unlikely(var1 == NULL)) {
4171 if(catchStack.cursor >= 0){
4172 longjmp(catchStack.envs[catchStack.cursor], 1);
4173 }
4174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4175 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 606);
4176 fatal_exit(1);
4177 }
4178 {
4179 { /* Inline array$AbstractArrayRead$length (var1) on <var1:Array[nullable Object]> */
4180 var4 = var1->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var1:Array[nullable Object]> */
4181 var2 = var4;
4182 RET_LABEL3:(void)0;
4183 }
4184 }
4185 var = var2;
4186 goto RET_LABEL;
4187 RET_LABEL:;
4188 return var;
4189 }
4190 /* method array$ArraySet$first for (self: ArraySet[nullable Object]): nullable Object */
4191 val* core___core__ArraySet___core__abstract_collection__Collection__first(val* self) {
4192 val* var /* : nullable Object */;
4193 val* var1 /* : Array[nullable Object] */;
4194 long var2 /* : Int */;
4195 long var4 /* : Int */;
4196 short int var5 /* : Bool */;
4197 short int var7 /* : Bool */;
4198 int cltype;
4199 int idtype;
4200 const char* var_class_name;
4201 short int var8 /* : Bool */;
4202 val* var9 /* : Array[nullable Object] */;
4203 val* var10 /* : nullable Object */;
4204 var1 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4205 if (unlikely(var1 == NULL)) {
4206 if(catchStack.cursor >= 0){
4207 longjmp(catchStack.envs[catchStack.cursor], 1);
4208 }
4209 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4210 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 610);
4211 fatal_exit(1);
4212 }
4213 {
4214 { /* Inline array$AbstractArrayRead$length (var1) on <var1:Array[nullable Object]> */
4215 var4 = var1->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var1:Array[nullable Object]> */
4216 var2 = var4;
4217 RET_LABEL3:(void)0;
4218 }
4219 }
4220 {
4221 { /* Inline kernel$Int$> (var2,0l) on <var2:Int> */
4222 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4223 /* <0l:Int> isa OTHER */
4224 var7 = 1; /* easy <0l:Int> isa OTHER*/
4225 if (unlikely(!var7)) {
4226 var_class_name = type_core__Int.name;
4227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4228 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4229 fatal_exit(1);
4230 }
4231 var8 = var2 > 0l;
4232 var5 = var8;
4233 goto RET_LABEL6;
4234 RET_LABEL6:(void)0;
4235 }
4236 }
4237 if (unlikely(!var5)) {
4238 if(catchStack.cursor >= 0){
4239 longjmp(catchStack.envs[catchStack.cursor], 1);
4240 }
4241 PRINT_ERROR("Runtime error: %s", "Assert failed");
4242 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 610);
4243 fatal_exit(1);
4244 }
4245 var9 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4246 if (unlikely(var9 == NULL)) {
4247 if(catchStack.cursor >= 0){
4248 longjmp(catchStack.envs[catchStack.cursor], 1);
4249 }
4250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4251 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 611);
4252 fatal_exit(1);
4253 }
4254 {
4255 var10 = core___core__SequenceRead___Collection__first(var9);
4256 }
4257 var = var10;
4258 goto RET_LABEL;
4259 RET_LABEL:;
4260 return var;
4261 }
4262 /* method array$ArraySet$remove for (self: ArraySet[nullable Object], nullable Object) */
4263 void core___core__ArraySet___core__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
4264 val* var_item /* var item: nullable Object */;
4265 val* var /* : Array[nullable Object] */;
4266 long var1 /* : Int */;
4267 long var_i /* var i: Int */;
4268 short int var2 /* : Bool */;
4269 short int var4 /* : Bool */;
4270 int cltype;
4271 int idtype;
4272 const char* var_class_name;
4273 short int var5 /* : Bool */;
4274 var_item = p0;
4275 var = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4276 if (unlikely(var == NULL)) {
4277 if(catchStack.cursor >= 0){
4278 longjmp(catchStack.envs[catchStack.cursor], 1);
4279 }
4280 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4281 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 616);
4282 fatal_exit(1);
4283 }
4284 {
4285 var1 = core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__index_of(var, var_item);
4286 }
4287 var_i = var1;
4288 {
4289 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
4290 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4291 /* <0l:Int> isa OTHER */
4292 var4 = 1; /* easy <0l:Int> isa OTHER*/
4293 if (unlikely(!var4)) {
4294 var_class_name = type_core__Int.name;
4295 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4296 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4297 fatal_exit(1);
4298 }
4299 var5 = var_i >= 0l;
4300 var2 = var5;
4301 goto RET_LABEL3;
4302 RET_LABEL3:(void)0;
4303 }
4304 }
4305 if (var2){
4306 {
4307 core___core__ArraySet___remove_at(self, var_i); /* Direct call array$ArraySet$remove_at on <self:ArraySet[nullable Object]>*/
4308 }
4309 } else {
4310 }
4311 RET_LABEL:;
4312 }
4313 /* method array$ArraySet$clear for (self: ArraySet[nullable Object]) */
4314 void core___core__ArraySet___core__abstract_collection__RemovableCollection__clear(val* self) {
4315 val* var /* : Array[nullable Object] */;
4316 var = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4317 if (unlikely(var == NULL)) {
4318 if(catchStack.cursor >= 0){
4319 longjmp(catchStack.envs[catchStack.cursor], 1);
4320 }
4321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4322 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 622);
4323 fatal_exit(1);
4324 }
4325 {
4326 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var); /* Direct call array$AbstractArray$clear on <var:Array[nullable Object]>*/
4327 }
4328 RET_LABEL:;
4329 }
4330 /* method array$ArraySet$iterator for (self: ArraySet[nullable Object]): Iterator[nullable Object] */
4331 val* core___core__ArraySet___core__abstract_collection__Collection__iterator(val* self) {
4332 val* var /* : Iterator[nullable Object] */;
4333 val* var1 /* : ArraySetIterator[nullable Object] */;
4334 val* var2 /* : Array[nullable Object] */;
4335 val* var3 /* : IndexedIterator[nullable Object] */;
4336 var1 = NEW_core__array__ArraySetIterator(self->type->resolution_table->types[COLOR_core__array__ArraySetIterator__core__ArraySet___35dE]);
4337 var2 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4338 if (unlikely(var2 == NULL)) {
4339 if(catchStack.cursor >= 0){
4340 longjmp(catchStack.envs[catchStack.cursor], 1);
4341 }
4342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4343 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 624);
4344 fatal_exit(1);
4345 }
4346 {
4347 var3 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var2);
4348 }
4349 {
4350 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__array__ArraySetIterator__iter_61d]))(var1, var3); /* iter= on <var1:ArraySetIterator[nullable Object]>*/
4351 }
4352 {
4353 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:ArraySetIterator[nullable Object]>*/
4354 }
4355 var = var1;
4356 goto RET_LABEL;
4357 RET_LABEL:;
4358 return var;
4359 }
4360 /* method array$ArraySet$remove_at for (self: ArraySet[nullable Object], Int) */
4361 void core___core__ArraySet___remove_at(val* self, long p0) {
4362 long var_i /* var i: Int */;
4363 val* var /* : Array[nullable Object] */;
4364 val* var1 /* : Array[nullable Object] */;
4365 val* var2 /* : nullable Object */;
4366 val* var3 /* : Array[nullable Object] */;
4367 val* var4 /* : nullable Object */;
4368 var_i = p0;
4369 var = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4370 if (unlikely(var == NULL)) {
4371 if(catchStack.cursor >= 0){
4372 longjmp(catchStack.envs[catchStack.cursor], 1);
4373 }
4374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4375 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 631);
4376 fatal_exit(1);
4377 }
4378 var1 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4379 if (unlikely(var1 == NULL)) {
4380 if(catchStack.cursor >= 0){
4381 longjmp(catchStack.envs[catchStack.cursor], 1);
4382 }
4383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4384 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 631);
4385 fatal_exit(1);
4386 }
4387 {
4388 var2 = core___core__SequenceRead___last(var1);
4389 }
4390 {
4391 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var, var_i, var2); /* Direct call array$Array$[]= on <var:Array[nullable Object]>*/
4392 }
4393 var3 = self->attrs[COLOR_core__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
4394 if (unlikely(var3 == NULL)) {
4395 if(catchStack.cursor >= 0){
4396 longjmp(catchStack.envs[catchStack.cursor], 1);
4397 }
4398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
4399 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 632);
4400 fatal_exit(1);
4401 }
4402 {
4403 var4 = core___core__AbstractArray___core__abstract_collection__Sequence__pop(var3);
4404 }
4405 RET_LABEL:;
4406 }
4407 /* method array$ArraySet$init for (self: ArraySet[nullable Object]) */
4408 void core___core__ArraySet___core__kernel__Object__init(val* self) {
4409 val* var /* : Array[nullable Object] */;
4410 {
4411 ((void(*)(val* self))(self->class->vft[COLOR_core___core__ArraySet___core__kernel__Object__init]))(self); /* init on <self:ArraySet[nullable Object]>*/
4412 }
4413 var = NEW_core__Array(self->type->resolution_table->types[COLOR_core__Array__core__ArraySet___35dE]);
4414 {
4415 core___core__Array___core__kernel__Object__init(var); /* Direct call array$Array$init on <var:Array[nullable Object]>*/
4416 }
4417 self->attrs[COLOR_core__array__ArraySet___array].val = var; /* _array on <self:ArraySet[nullable Object]> */
4418 RET_LABEL:;
4419 }
4420 /* method array$ArraySet$new_set for (self: ArraySet[nullable Object]): Set[nullable Object] */
4421 val* core___core__ArraySet___core__abstract_collection__Set__new_set(val* self) {
4422 val* var /* : Set[nullable Object] */;
4423 val* var1 /* : ArraySet[nullable Object] */;
4424 var1 = NEW_core__ArraySet(self->type->resolution_table->types[COLOR_core__ArraySet__core__ArraySet___35dE]);
4425 {
4426 core___core__ArraySet___core__kernel__Object__init(var1); /* Direct call array$ArraySet$init on <var1:ArraySet[nullable Object]>*/
4427 }
4428 var = var1;
4429 goto RET_LABEL;
4430 RET_LABEL:;
4431 return var;
4432 }
4433 /* method array$ArraySet$clone for (self: ArraySet[nullable Object]): ArraySet[nullable Object] */
4434 val* core___core__ArraySet___core__kernel__Cloneable__clone(val* self) {
4435 val* var /* : ArraySet[nullable Object] */;
4436 val* var1 /* : ArraySet[nullable Object] */;
4437 val* var_res /* var res: ArraySet[nullable Object] */;
4438 short int var2 /* : Bool */;
4439 int cltype;
4440 int idtype;
4441 const struct type* type_struct;
4442 const char* var_class_name;
4443 var1 = NEW_core__ArraySet(self->type->resolution_table->types[COLOR_core__ArraySet__core__ArraySet___35dE]);
4444 {
4445 core___core__ArraySet___core__kernel__Object__init(var1); /* Direct call array$ArraySet$init on <var1:ArraySet[nullable Object]>*/
4446 }
4447 var_res = var1;
4448 {
4449 core___core__SimpleCollection___add_all(var_res, self); /* Direct call abstract_collection$SimpleCollection$add_all on <var_res:ArraySet[nullable Object]>*/
4450 }
4451 /* <var_res:ArraySet[nullable Object]> isa SELF */
4452 type_struct = self->type->resolution_table->types[COLOR_core__kernel__Object__SELF];
4453 cltype = type_struct->color;
4454 idtype = type_struct->id;
4455 if(cltype >= var_res->type->table_size) {
4456 var2 = 0;
4457 } else {
4458 var2 = var_res->type->type_table[cltype] == idtype;
4459 }
4460 if (unlikely(!var2)) {
4461 var_class_name = var_res == NULL ? "null" : var_res->type->name;
4462 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELF", var_class_name);
4463 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 671);
4464 fatal_exit(1);
4465 }
4466 var = var_res;
4467 goto RET_LABEL;
4468 RET_LABEL:;
4469 return var;
4470 }
4471 /* method array$ArraySetIterator$is_ok for (self: ArraySetIterator[nullable Object]): Bool */
4472 short int core__array___core__array__ArraySetIterator___core__abstract_collection__Iterator__is_ok(val* self) {
4473 short int var /* : Bool */;
4474 val* var1 /* : Iterator[nullable Object] */;
4475 short int var2 /* : Bool */;
4476 var1 = self->attrs[COLOR_core__array__ArraySetIterator___iter].val; /* _iter on <self:ArraySetIterator[nullable Object]> */
4477 if (unlikely(var1 == NULL)) {
4478 if(catchStack.cursor >= 0){
4479 longjmp(catchStack.envs[catchStack.cursor], 1);
4480 }
4481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4482 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 679);
4483 fatal_exit(1);
4484 }
4485 {
4486 var2 = ((short int(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var1); /* is_ok on <var1:Iterator[nullable Object]>*/
4487 }
4488 var = var2;
4489 goto RET_LABEL;
4490 RET_LABEL:;
4491 return var;
4492 }
4493 /* method array$ArraySetIterator$next for (self: ArraySetIterator[nullable Object]) */
4494 void core__array___core__array__ArraySetIterator___core__abstract_collection__Iterator__next(val* self) {
4495 val* var /* : Iterator[nullable Object] */;
4496 var = self->attrs[COLOR_core__array__ArraySetIterator___iter].val; /* _iter on <self:ArraySetIterator[nullable Object]> */
4497 if (unlikely(var == NULL)) {
4498 if(catchStack.cursor >= 0){
4499 longjmp(catchStack.envs[catchStack.cursor], 1);
4500 }
4501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4502 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 681);
4503 fatal_exit(1);
4504 }
4505 {
4506 ((void(*)(val* self))((((long)var&3)?class_info[((long)var&3)]:var->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var); /* next on <var:Iterator[nullable Object]>*/
4507 }
4508 RET_LABEL:;
4509 }
4510 /* method array$ArraySetIterator$item for (self: ArraySetIterator[nullable Object]): nullable Object */
4511 val* core__array___core__array__ArraySetIterator___core__abstract_collection__Iterator__item(val* self) {
4512 val* var /* : nullable Object */;
4513 val* var1 /* : Iterator[nullable Object] */;
4514 val* var2 /* : nullable Object */;
4515 var1 = self->attrs[COLOR_core__array__ArraySetIterator___iter].val; /* _iter on <self:ArraySetIterator[nullable Object]> */
4516 if (unlikely(var1 == NULL)) {
4517 if(catchStack.cursor >= 0){
4518 longjmp(catchStack.envs[catchStack.cursor], 1);
4519 }
4520 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
4521 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 683);
4522 fatal_exit(1);
4523 }
4524 {
4525 var2 = ((val*(*)(val* self))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var1); /* item on <var1:Iterator[nullable Object]>*/
4526 }
4527 var = var2;
4528 goto RET_LABEL;
4529 RET_LABEL:;
4530 return var;
4531 }
4532 /* method array$ArraySetIterator$iter= for (self: ArraySetIterator[nullable Object], Iterator[nullable Object]) */
4533 void core__array___core__array__ArraySetIterator___iter_61d(val* self, val* p0) {
4534 short int var /* : Bool */;
4535 int cltype;
4536 int idtype;
4537 const struct type* type_struct;
4538 const char* var_class_name;
4539 /* Covariant cast for argument 0 (iter) <p0:Iterator[nullable Object]> isa Iterator[E] */
4540 /* <p0:Iterator[nullable Object]> isa Iterator[E] */
4541 type_struct = self->type->resolution_table->types[COLOR_core__Iterator__core__array__ArraySetIterator___35dE];
4542 cltype = type_struct->color;
4543 idtype = type_struct->id;
4544 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4545 var = 0;
4546 } else {
4547 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4548 }
4549 if (unlikely(!var)) {
4550 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4551 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Iterator[E]", var_class_name);
4552 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 685);
4553 fatal_exit(1);
4554 }
4555 self->attrs[COLOR_core__array__ArraySetIterator___iter].val = p0; /* _iter on <self:ArraySetIterator[nullable Object]> */
4556 RET_LABEL:;
4557 }
4558 /* method array$ArraySetIterator$init for (self: ArraySetIterator[nullable Object]) */
4559 void core__array___core__array__ArraySetIterator___core__kernel__Object__init(val* self) {
4560 {
4561 ((void(*)(val* self))(self->class->vft[COLOR_core__array___core__array__ArraySetIterator___core__kernel__Object__init]))(self); /* init on <self:ArraySetIterator[nullable Object]>*/
4562 }
4563 RET_LABEL:;
4564 }
4565 /* method array$ArrayMap$[] for (self: ArrayMap[nullable Object, nullable Object], nullable Object): nullable Object */
4566 val* core___core__ArrayMap___core__abstract_collection__MapRead___91d_93d(val* self, val* p0) {
4567 val* var /* : nullable Object */;
4568 val* var_key /* var key: nullable Object */;
4569 short int var1 /* : Bool */;
4570 int cltype;
4571 int idtype;
4572 const struct type* type_struct;
4573 short int is_nullable;
4574 const char* var_class_name;
4575 long var2 /* : Int */;
4576 long var_i /* var i: Int */;
4577 short int var3 /* : Bool */;
4578 short int var5 /* : Bool */;
4579 int cltype6;
4580 int idtype7;
4581 const char* var_class_name8;
4582 short int var9 /* : Bool */;
4583 val* var10 /* : Array[Couple[nullable Object, nullable Object]] */;
4584 val* var11 /* : nullable Object */;
4585 val* var12 /* : nullable Object */;
4586 val* var14 /* : nullable Object */;
4587 val* var15 /* : nullable Object */;
4588 var_key = p0;
4589 /* <var_key:nullable Object> isa K */
4590 type_struct = self->type->resolution_table->types[COLOR_core__ArrayMap___35dK];
4591 cltype = type_struct->color;
4592 idtype = type_struct->id;
4593 is_nullable = type_struct->is_nullable;
4594 if(var_key == NULL) {
4595 var1 = is_nullable;
4596 } else {
4597 if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) {
4598 var1 = 0;
4599 } else {
4600 var1 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype;
4601 }
4602 }
4603 if (unlikely(!var1)) {
4604 var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name;
4605 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
4606 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 697);
4607 fatal_exit(1);
4608 }
4609 {
4610 var2 = core___core__ArrayMap___index(self, var_key);
4611 }
4612 var_i = var2;
4613 {
4614 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
4615 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4616 /* <0l:Int> isa OTHER */
4617 var5 = 1; /* easy <0l:Int> isa OTHER*/
4618 if (unlikely(!var5)) {
4619 var_class_name8 = type_core__Int.name;
4620 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
4621 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4622 fatal_exit(1);
4623 }
4624 var9 = var_i >= 0l;
4625 var3 = var9;
4626 goto RET_LABEL4;
4627 RET_LABEL4:(void)0;
4628 }
4629 }
4630 if (var3){
4631 var10 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4632 if (unlikely(var10 == NULL)) {
4633 if(catchStack.cursor >= 0){
4634 longjmp(catchStack.envs[catchStack.cursor], 1);
4635 }
4636 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4637 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 699);
4638 fatal_exit(1);
4639 }
4640 {
4641 var11 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var10, var_i);
4642 }
4643 {
4644 { /* Inline abstract_collection$Couple$second (var11) on <var11:nullable Object(Couple[nullable Object, nullable Object])> */
4645 var14 = var11->attrs[COLOR_core__abstract_collection__Couple___second].val; /* _second on <var11:nullable Object(Couple[nullable Object, nullable Object])> */
4646 var12 = var14;
4647 RET_LABEL13:(void)0;
4648 }
4649 }
4650 var = var12;
4651 goto RET_LABEL;
4652 } else {
4653 {
4654 var15 = core___core__MapRead___provide_default_value(self, var_key);
4655 }
4656 var = var15;
4657 goto RET_LABEL;
4658 }
4659 RET_LABEL:;
4660 return var;
4661 }
4662 /* method array$ArrayMap$[]= for (self: ArrayMap[nullable Object, nullable Object], nullable Object, nullable Object) */
4663 void core___core__ArrayMap___core__abstract_collection__Map___91d_93d_61d(val* self, val* p0, val* p1) {
4664 short int var /* : Bool */;
4665 int cltype;
4666 int idtype;
4667 const struct type* type_struct;
4668 short int is_nullable;
4669 const char* var_class_name;
4670 short int var1 /* : Bool */;
4671 int cltype2;
4672 int idtype3;
4673 const struct type* type_struct4;
4674 short int is_nullable5;
4675 const char* var_class_name6;
4676 val* var_key /* var key: nullable Object */;
4677 val* var_item /* var item: nullable Object */;
4678 long var7 /* : Int */;
4679 long var_i /* var i: Int */;
4680 short int var8 /* : Bool */;
4681 short int var10 /* : Bool */;
4682 int cltype11;
4683 int idtype12;
4684 const char* var_class_name13;
4685 short int var14 /* : Bool */;
4686 val* var15 /* : Array[Couple[nullable Object, nullable Object]] */;
4687 val* var16 /* : nullable Object */;
4688 short int var18 /* : Bool */;
4689 int cltype19;
4690 int idtype20;
4691 const struct type* type_struct21;
4692 short int is_nullable22;
4693 const char* var_class_name23;
4694 val* var24 /* : Array[Couple[nullable Object, nullable Object]] */;
4695 val* var25 /* : Couple[nullable Object, nullable Object] */;
4696 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
4697 /* <p0:nullable Object> isa K */
4698 type_struct = self->type->resolution_table->types[COLOR_core__ArrayMap___35dK];
4699 cltype = type_struct->color;
4700 idtype = type_struct->id;
4701 is_nullable = type_struct->is_nullable;
4702 if(p0 == NULL) {
4703 var = is_nullable;
4704 } else {
4705 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4706 var = 0;
4707 } else {
4708 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4709 }
4710 }
4711 if (unlikely(!var)) {
4712 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4713 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
4714 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 705);
4715 fatal_exit(1);
4716 }
4717 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
4718 /* <p1:nullable Object> isa E */
4719 type_struct4 = self->type->resolution_table->types[COLOR_core__ArrayMap___35dE];
4720 cltype2 = type_struct4->color;
4721 idtype3 = type_struct4->id;
4722 is_nullable5 = type_struct4->is_nullable;
4723 if(p1 == NULL) {
4724 var1 = is_nullable5;
4725 } else {
4726 if(cltype2 >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
4727 var1 = 0;
4728 } else {
4729 var1 = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype2] == idtype3;
4730 }
4731 }
4732 if (unlikely(!var1)) {
4733 var_class_name6 = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
4734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name6);
4735 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 705);
4736 fatal_exit(1);
4737 }
4738 var_key = p0;
4739 var_item = p1;
4740 {
4741 var7 = core___core__ArrayMap___index(self, var_key);
4742 }
4743 var_i = var7;
4744 {
4745 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
4746 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4747 /* <0l:Int> isa OTHER */
4748 var10 = 1; /* easy <0l:Int> isa OTHER*/
4749 if (unlikely(!var10)) {
4750 var_class_name13 = type_core__Int.name;
4751 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4752 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
4753 fatal_exit(1);
4754 }
4755 var14 = var_i >= 0l;
4756 var8 = var14;
4757 goto RET_LABEL9;
4758 RET_LABEL9:(void)0;
4759 }
4760 }
4761 if (var8){
4762 var15 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4763 if (unlikely(var15 == NULL)) {
4764 if(catchStack.cursor >= 0){
4765 longjmp(catchStack.envs[catchStack.cursor], 1);
4766 }
4767 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4768 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 710);
4769 fatal_exit(1);
4770 }
4771 {
4772 var16 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var15, var_i);
4773 }
4774 {
4775 { /* Inline abstract_collection$Couple$second= (var16,var_item) on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
4776 /* Covariant cast for argument 0 (second) <var_item:nullable Object> isa S */
4777 /* <var_item:nullable Object> isa S */
4778 type_struct21 = var16->type->resolution_table->types[COLOR_core__Couple___35dS];
4779 cltype19 = type_struct21->color;
4780 idtype20 = type_struct21->id;
4781 is_nullable22 = type_struct21->is_nullable;
4782 if(var_item == NULL) {
4783 var18 = is_nullable22;
4784 } else {
4785 if(cltype19 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
4786 var18 = 0;
4787 } else {
4788 var18 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype19] == idtype20;
4789 }
4790 }
4791 if (unlikely(!var18)) {
4792 var_class_name23 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
4793 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name23);
4794 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection, 1258);
4795 fatal_exit(1);
4796 }
4797 var16->attrs[COLOR_core__abstract_collection__Couple___second].val = var_item; /* _second on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
4798 RET_LABEL17:(void)0;
4799 }
4800 }
4801 } else {
4802 var24 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4803 if (unlikely(var24 == NULL)) {
4804 if(catchStack.cursor >= 0){
4805 longjmp(catchStack.envs[catchStack.cursor], 1);
4806 }
4807 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4808 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 712);
4809 fatal_exit(1);
4810 }
4811 var25 = NEW_core__Couple(self->type->resolution_table->types[COLOR_core__Couple__core__ArrayMap___35dK__core__ArrayMap___35dE]);
4812 {
4813 ((void(*)(val* self, val* p0))(var25->class->vft[COLOR_core__abstract_collection__Couple__first_61d]))(var25, var_key); /* first= on <var25:Couple[nullable Object, nullable Object]>*/
4814 }
4815 {
4816 ((void(*)(val* self, val* p0))(var25->class->vft[COLOR_core__abstract_collection__Couple__second_61d]))(var25, var_item); /* second= on <var25:Couple[nullable Object, nullable Object]>*/
4817 }
4818 {
4819 ((void(*)(val* self))(var25->class->vft[COLOR_core__kernel__Object__init]))(var25); /* init on <var25:Couple[nullable Object, nullable Object]>*/
4820 }
4821 {
4822 core___core__AbstractArray___core__abstract_collection__Sequence__push(var24, var25); /* Direct call array$AbstractArray$push on <var24:Array[Couple[nullable Object, nullable Object]]>*/
4823 }
4824 }
4825 RET_LABEL:;
4826 }
4827 /* method array$ArrayMap$keys for (self: ArrayMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */
4828 val* core___core__ArrayMap___core__abstract_collection__MapRead__keys(val* self) {
4829 val* var /* : RemovableCollection[nullable Object] */;
4830 short int var1 /* : Bool */;
4831 val* var2 /* : RemovableCollection[nullable Object] */;
4832 val* var3 /* : ArrayMapKeys[nullable Object, nullable Object] */;
4833 var1 = self->attrs[COLOR_core__array__ArrayMap___keys].val != NULL; /* _keys on <self:ArrayMap[nullable Object, nullable Object]> */
4834 if(likely(var1)) {
4835 var2 = self->attrs[COLOR_core__array__ArrayMap___keys].val; /* _keys on <self:ArrayMap[nullable Object, nullable Object]> */
4836 if (unlikely(var2 == NULL)) {
4837 if(catchStack.cursor >= 0){
4838 longjmp(catchStack.envs[catchStack.cursor], 1);
4839 }
4840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
4841 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 716);
4842 fatal_exit(1);
4843 }
4844 } else {
4845 var3 = NEW_core__array__ArrayMapKeys(self->type->resolution_table->types[COLOR_core__array__ArrayMapKeys__core__ArrayMap___35dK__core__ArrayMap___35dE]);
4846 {
4847 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_core__array__ArrayMapKeys__map_61d]))(var3, self); /* map= on <var3:ArrayMapKeys[nullable Object, nullable Object]>*/
4848 }
4849 {
4850 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:ArrayMapKeys[nullable Object, nullable Object]>*/
4851 }
4852 self->attrs[COLOR_core__array__ArrayMap___keys].val = var3; /* _keys on <self:ArrayMap[nullable Object, nullable Object]> */
4853 var2 = var3;
4854 }
4855 var = var2;
4856 RET_LABEL:;
4857 return var;
4858 }
4859 /* method array$ArrayMap$values for (self: ArrayMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */
4860 val* core___core__ArrayMap___core__abstract_collection__MapRead__values(val* self) {
4861 val* var /* : RemovableCollection[nullable Object] */;
4862 short int var1 /* : Bool */;
4863 val* var2 /* : RemovableCollection[nullable Object] */;
4864 val* var3 /* : ArrayMapValues[nullable Object, nullable Object] */;
4865 var1 = self->attrs[COLOR_core__array__ArrayMap___values].val != NULL; /* _values on <self:ArrayMap[nullable Object, nullable Object]> */
4866 if(likely(var1)) {
4867 var2 = self->attrs[COLOR_core__array__ArrayMap___values].val; /* _values on <self:ArrayMap[nullable Object, nullable Object]> */
4868 if (unlikely(var2 == NULL)) {
4869 if(catchStack.cursor >= 0){
4870 longjmp(catchStack.envs[catchStack.cursor], 1);
4871 }
4872 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
4873 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 717);
4874 fatal_exit(1);
4875 }
4876 } else {
4877 var3 = NEW_core__array__ArrayMapValues(self->type->resolution_table->types[COLOR_core__array__ArrayMapValues__core__ArrayMap___35dK__core__ArrayMap___35dE]);
4878 {
4879 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_core__array__ArrayMapValues__map_61d]))(var3, self); /* map= on <var3:ArrayMapValues[nullable Object, nullable Object]>*/
4880 }
4881 {
4882 ((void(*)(val* self))(var3->class->vft[COLOR_core__kernel__Object__init]))(var3); /* init on <var3:ArrayMapValues[nullable Object, nullable Object]>*/
4883 }
4884 self->attrs[COLOR_core__array__ArrayMap___values].val = var3; /* _values on <self:ArrayMap[nullable Object, nullable Object]> */
4885 var2 = var3;
4886 }
4887 var = var2;
4888 RET_LABEL:;
4889 return var;
4890 }
4891 /* method array$ArrayMap$length for (self: ArrayMap[nullable Object, nullable Object]): Int */
4892 long core___core__ArrayMap___core__abstract_collection__MapRead__length(val* self) {
4893 long var /* : Int */;
4894 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
4895 long var2 /* : Int */;
4896 long var4 /* : Int */;
4897 var1 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4898 if (unlikely(var1 == NULL)) {
4899 if(catchStack.cursor >= 0){
4900 longjmp(catchStack.envs[catchStack.cursor], 1);
4901 }
4902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4903 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 720);
4904 fatal_exit(1);
4905 }
4906 {
4907 { /* Inline array$AbstractArrayRead$length (var1) on <var1:Array[Couple[nullable Object, nullable Object]]> */
4908 var4 = var1->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var1:Array[Couple[nullable Object, nullable Object]]> */
4909 var2 = var4;
4910 RET_LABEL3:(void)0;
4911 }
4912 }
4913 var = var2;
4914 goto RET_LABEL;
4915 RET_LABEL:;
4916 return var;
4917 }
4918 /* method array$ArrayMap$couple_iterator for (self: ArrayMap[nullable Object, nullable Object]): Iterator[Couple[nullable Object, nullable Object]] */
4919 val* core___core__ArrayMap___core__abstract_collection__CoupleMap__couple_iterator(val* self) {
4920 val* var /* : Iterator[Couple[nullable Object, nullable Object]] */;
4921 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
4922 val* var2 /* : IndexedIterator[nullable Object] */;
4923 var1 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4924 if (unlikely(var1 == NULL)) {
4925 if(catchStack.cursor >= 0){
4926 longjmp(catchStack.envs[catchStack.cursor], 1);
4927 }
4928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4929 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 722);
4930 fatal_exit(1);
4931 }
4932 {
4933 var2 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var1);
4934 }
4935 var = var2;
4936 goto RET_LABEL;
4937 RET_LABEL:;
4938 return var;
4939 }
4940 /* method array$ArrayMap$is_empty for (self: ArrayMap[nullable Object, nullable Object]): Bool */
4941 short int core___core__ArrayMap___core__abstract_collection__MapRead__is_empty(val* self) {
4942 short int var /* : Bool */;
4943 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
4944 short int var2 /* : Bool */;
4945 var1 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4946 if (unlikely(var1 == NULL)) {
4947 if(catchStack.cursor >= 0){
4948 longjmp(catchStack.envs[catchStack.cursor], 1);
4949 }
4950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4951 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 724);
4952 fatal_exit(1);
4953 }
4954 {
4955 var2 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var1);
4956 }
4957 var = var2;
4958 goto RET_LABEL;
4959 RET_LABEL:;
4960 return var;
4961 }
4962 /* method array$ArrayMap$clear for (self: ArrayMap[nullable Object, nullable Object]) */
4963 void core___core__ArrayMap___core__abstract_collection__Map__clear(val* self) {
4964 val* var /* : Array[Couple[nullable Object, nullable Object]] */;
4965 var = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4966 if (unlikely(var == NULL)) {
4967 if(catchStack.cursor >= 0){
4968 longjmp(catchStack.envs[catchStack.cursor], 1);
4969 }
4970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4971 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 726);
4972 fatal_exit(1);
4973 }
4974 {
4975 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var); /* Direct call array$AbstractArray$clear on <var:Array[Couple[nullable Object, nullable Object]]>*/
4976 }
4977 RET_LABEL:;
4978 }
4979 /* method array$ArrayMap$couple_at for (self: ArrayMap[nullable Object, nullable Object], nullable Object): nullable Couple[nullable Object, nullable Object] */
4980 val* core___core__ArrayMap___core__abstract_collection__CoupleMap__couple_at(val* self, val* p0) {
4981 val* var /* : nullable Couple[nullable Object, nullable Object] */;
4982 val* var_key /* var key: nullable Object */;
4983 short int var1 /* : Bool */;
4984 int cltype;
4985 int idtype;
4986 const struct type* type_struct;
4987 short int is_nullable;
4988 const char* var_class_name;
4989 long var2 /* : Int */;
4990 long var_i /* var i: Int */;
4991 short int var3 /* : Bool */;
4992 short int var5 /* : Bool */;
4993 int cltype6;
4994 int idtype7;
4995 const char* var_class_name8;
4996 short int var9 /* : Bool */;
4997 val* var10 /* : Array[Couple[nullable Object, nullable Object]] */;
4998 val* var11 /* : nullable Object */;
4999 var_key = p0;
5000 /* <var_key:nullable Object> isa K */
5001 type_struct = self->type->resolution_table->types[COLOR_core__ArrayMap___35dK];
5002 cltype = type_struct->color;
5003 idtype = type_struct->id;
5004 is_nullable = type_struct->is_nullable;
5005 if(var_key == NULL) {
5006 var1 = is_nullable;
5007 } else {
5008 if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) {
5009 var1 = 0;
5010 } else {
5011 var1 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype;
5012 }
5013 }
5014 if (unlikely(!var1)) {
5015 var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name;
5016 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
5017 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 733);
5018 fatal_exit(1);
5019 }
5020 {
5021 var2 = core___core__ArrayMap___index(self, var_key);
5022 }
5023 var_i = var2;
5024 {
5025 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
5026 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5027 /* <0l:Int> isa OTHER */
5028 var5 = 1; /* easy <0l:Int> isa OTHER*/
5029 if (unlikely(!var5)) {
5030 var_class_name8 = type_core__Int.name;
5031 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
5032 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
5033 fatal_exit(1);
5034 }
5035 var9 = var_i >= 0l;
5036 var3 = var9;
5037 goto RET_LABEL4;
5038 RET_LABEL4:(void)0;
5039 }
5040 }
5041 if (var3){
5042 var10 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5043 if (unlikely(var10 == NULL)) {
5044 if(catchStack.cursor >= 0){
5045 longjmp(catchStack.envs[catchStack.cursor], 1);
5046 }
5047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5048 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 735);
5049 fatal_exit(1);
5050 }
5051 {
5052 var11 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var10, var_i);
5053 }
5054 var = var11;
5055 goto RET_LABEL;
5056 } else {
5057 var = ((val*)NULL);
5058 goto RET_LABEL;
5059 }
5060 RET_LABEL:;
5061 return var;
5062 }
5063 /* method array$ArrayMap$remove_at_index for (self: ArrayMap[nullable Object, nullable Object], Int) */
5064 void core___core__ArrayMap___remove_at_index(val* self, long p0) {
5065 long var_i /* var i: Int */;
5066 val* var /* : Array[Couple[nullable Object, nullable Object]] */;
5067 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
5068 val* var2 /* : nullable Object */;
5069 val* var3 /* : Array[Couple[nullable Object, nullable Object]] */;
5070 val* var4 /* : nullable Object */;
5071 var_i = p0;
5072 var = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5073 if (unlikely(var == NULL)) {
5074 if(catchStack.cursor >= 0){
5075 longjmp(catchStack.envs[catchStack.cursor], 1);
5076 }
5077 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5078 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 747);
5079 fatal_exit(1);
5080 }
5081 var1 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5082 if (unlikely(var1 == NULL)) {
5083 if(catchStack.cursor >= 0){
5084 longjmp(catchStack.envs[catchStack.cursor], 1);
5085 }
5086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5087 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 747);
5088 fatal_exit(1);
5089 }
5090 {
5091 var2 = core___core__SequenceRead___last(var1);
5092 }
5093 {
5094 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var, var_i, var2); /* Direct call array$Array$[]= on <var:Array[Couple[nullable Object, nullable Object]]>*/
5095 }
5096 var3 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5097 if (unlikely(var3 == NULL)) {
5098 if(catchStack.cursor >= 0){
5099 longjmp(catchStack.envs[catchStack.cursor], 1);
5100 }
5101 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5102 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 748);
5103 fatal_exit(1);
5104 }
5105 {
5106 var4 = core___core__AbstractArray___core__abstract_collection__Sequence__pop(var3);
5107 }
5108 RET_LABEL:;
5109 }
5110 /* method array$ArrayMap$index for (self: ArrayMap[nullable Object, nullable Object], nullable Object): Int */
5111 long core___core__ArrayMap___index(val* self, val* p0) {
5112 long var /* : Int */;
5113 short int var1 /* : Bool */;
5114 int cltype;
5115 int idtype;
5116 const struct type* type_struct;
5117 short int is_nullable;
5118 const char* var_class_name;
5119 val* var_key /* var key: nullable Object */;
5120 long var2 /* : Int */;
5121 long var_l /* var l: Int */;
5122 short int var3 /* : Bool */;
5123 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
5124 long var5 /* : Int */;
5125 long var7 /* : Int */;
5126 short int var8 /* : Bool */;
5127 short int var10 /* : Bool */;
5128 int cltype11;
5129 int idtype12;
5130 const char* var_class_name13;
5131 short int var14 /* : Bool */;
5132 short int var_ /* var : Bool */;
5133 val* var15 /* : Array[Couple[nullable Object, nullable Object]] */;
5134 val* var16 /* : nullable Object */;
5135 val* var17 /* : nullable Object */;
5136 val* var19 /* : nullable Object */;
5137 short int var20 /* : Bool */;
5138 short int var21 /* : Bool */;
5139 long var_i /* var i: Int */;
5140 val* var22 /* : Array[Couple[nullable Object, nullable Object]] */;
5141 long var23 /* : Int */;
5142 long var25 /* : Int */;
5143 short int var26 /* : Bool */;
5144 short int var28 /* : Bool */;
5145 int cltype29;
5146 int idtype30;
5147 const char* var_class_name31;
5148 short int var32 /* : Bool */;
5149 val* var33 /* : Array[Couple[nullable Object, nullable Object]] */;
5150 val* var34 /* : nullable Object */;
5151 val* var35 /* : nullable Object */;
5152 val* var37 /* : nullable Object */;
5153 short int var38 /* : Bool */;
5154 short int var39 /* : Bool */;
5155 long var40 /* : Int */;
5156 short int var42 /* : Bool */;
5157 int cltype43;
5158 int idtype44;
5159 const char* var_class_name45;
5160 long var46 /* : Int */;
5161 long var47 /* : Int */;
5162 long var49 /* : Int */;
5163 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
5164 /* <p0:nullable Object> isa K */
5165 type_struct = self->type->resolution_table->types[COLOR_core__ArrayMap___35dK];
5166 cltype = type_struct->color;
5167 idtype = type_struct->id;
5168 is_nullable = type_struct->is_nullable;
5169 if(p0 == NULL) {
5170 var1 = is_nullable;
5171 } else {
5172 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
5173 var1 = 0;
5174 } else {
5175 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
5176 }
5177 }
5178 if (unlikely(!var1)) {
5179 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
5180 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
5181 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 754);
5182 fatal_exit(1);
5183 }
5184 var_key = p0;
5185 var2 = self->attrs[COLOR_core__array__ArrayMap___last_index].l; /* _last_index on <self:ArrayMap[nullable Object, nullable Object]> */
5186 var_l = var2;
5187 var4 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5188 if (unlikely(var4 == NULL)) {
5189 if(catchStack.cursor >= 0){
5190 longjmp(catchStack.envs[catchStack.cursor], 1);
5191 }
5192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5193 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 759);
5194 fatal_exit(1);
5195 }
5196 {
5197 { /* Inline array$AbstractArrayRead$length (var4) on <var4:Array[Couple[nullable Object, nullable Object]]> */
5198 var7 = var4->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var4:Array[Couple[nullable Object, nullable Object]]> */
5199 var5 = var7;
5200 RET_LABEL6:(void)0;
5201 }
5202 }
5203 {
5204 { /* Inline kernel$Int$< (var_l,var5) on <var_l:Int> */
5205 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
5206 /* <var5:Int> isa OTHER */
5207 var10 = 1; /* easy <var5:Int> isa OTHER*/
5208 if (unlikely(!var10)) {
5209 var_class_name13 = type_core__Int.name;
5210 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
5211 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
5212 fatal_exit(1);
5213 }
5214 var14 = var_l < var5;
5215 var8 = var14;
5216 goto RET_LABEL9;
5217 RET_LABEL9:(void)0;
5218 }
5219 }
5220 var_ = var8;
5221 if (var8){
5222 var15 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5223 if (unlikely(var15 == NULL)) {
5224 if(catchStack.cursor >= 0){
5225 longjmp(catchStack.envs[catchStack.cursor], 1);
5226 }
5227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5228 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 759);
5229 fatal_exit(1);
5230 }
5231 {
5232 var16 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var15, var_l);
5233 }
5234 {
5235 { /* Inline abstract_collection$Couple$first (var16) on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
5236 var19 = var16->attrs[COLOR_core__abstract_collection__Couple___first].val; /* _first on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
5237 var17 = var19;
5238 RET_LABEL18:(void)0;
5239 }
5240 }
5241 if (var17 == NULL) {
5242 var20 = (var_key == NULL);
5243 } else {
5244 var21 = ((short int(*)(val* self, val* p0))((((long)var17&3)?class_info[((long)var17&3)]:var17->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var17, var_key); /* == on <var17:nullable Object>*/
5245 var20 = var21;
5246 }
5247 var3 = var20;
5248 } else {
5249 var3 = var_;
5250 }
5251 if (var3){
5252 var = var_l;
5253 goto RET_LABEL;
5254 } else {
5255 }
5256 var_i = 0l;
5257 for(;;) {
5258 var22 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5259 if (unlikely(var22 == NULL)) {
5260 if(catchStack.cursor >= 0){
5261 longjmp(catchStack.envs[catchStack.cursor], 1);
5262 }
5263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5264 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 762);
5265 fatal_exit(1);
5266 }
5267 {
5268 { /* Inline array$AbstractArrayRead$length (var22) on <var22:Array[Couple[nullable Object, nullable Object]]> */
5269 var25 = var22->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var22:Array[Couple[nullable Object, nullable Object]]> */
5270 var23 = var25;
5271 RET_LABEL24:(void)0;
5272 }
5273 }
5274 {
5275 { /* Inline kernel$Int$< (var_i,var23) on <var_i:Int> */
5276 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
5277 /* <var23:Int> isa OTHER */
5278 var28 = 1; /* easy <var23:Int> isa OTHER*/
5279 if (unlikely(!var28)) {
5280 var_class_name31 = type_core__Int.name;
5281 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
5282 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
5283 fatal_exit(1);
5284 }
5285 var32 = var_i < var23;
5286 var26 = var32;
5287 goto RET_LABEL27;
5288 RET_LABEL27:(void)0;
5289 }
5290 }
5291 if (var26){
5292 var33 = self->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
5293 if (unlikely(var33 == NULL)) {
5294 if(catchStack.cursor >= 0){
5295 longjmp(catchStack.envs[catchStack.cursor], 1);
5296 }
5297 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5298 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 763);
5299 fatal_exit(1);
5300 }
5301 {
5302 var34 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var33, var_i);
5303 }
5304 {
5305 { /* Inline abstract_collection$Couple$first (var34) on <var34:nullable Object(Couple[nullable Object, nullable Object])> */
5306 var37 = var34->attrs[COLOR_core__abstract_collection__Couple___first].val; /* _first on <var34:nullable Object(Couple[nullable Object, nullable Object])> */
5307 var35 = var37;
5308 RET_LABEL36:(void)0;
5309 }
5310 }
5311 if (var35 == NULL) {
5312 var38 = (var_key == NULL);
5313 } else {
5314 var39 = ((short int(*)(val* self, val* p0))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var35, var_key); /* == on <var35:nullable Object>*/
5315 var38 = var39;
5316 }
5317 if (var38){
5318 self->attrs[COLOR_core__array__ArrayMap___last_index].l = var_i; /* _last_index on <self:ArrayMap[nullable Object, nullable Object]> */
5319 var = var_i;
5320 goto RET_LABEL;
5321 } else {
5322 }
5323 {
5324 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
5325 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5326 /* <1l:Int> isa OTHER */
5327 var42 = 1; /* easy <1l:Int> isa OTHER*/
5328 if (unlikely(!var42)) {
5329 var_class_name45 = type_core__Int.name;
5330 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
5331 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5332 fatal_exit(1);
5333 }
5334 var46 = var_i + 1l;
5335 var40 = var46;
5336 goto RET_LABEL41;
5337 RET_LABEL41:(void)0;
5338 }
5339 }
5340 var_i = var40;
5341 } else {
5342 goto BREAK_label;
5343 }
5344 }
5345 BREAK_label: (void)0;
5346 {
5347 { /* Inline kernel$Int$unary - (1l) on <1l:Int> */
5348 var49 = -1l;
5349 var47 = var49;
5350 goto RET_LABEL48;
5351 RET_LABEL48:(void)0;
5352 }
5353 }
5354 var = var47;
5355 goto RET_LABEL;
5356 RET_LABEL:;
5357 return var;
5358 }
5359 /* method array$ArrayMap$clone for (self: ArrayMap[nullable Object, nullable Object]): ArrayMap[nullable Object, nullable Object] */
5360 val* core___core__ArrayMap___core__kernel__Cloneable__clone(val* self) {
5361 val* var /* : ArrayMap[nullable Object, nullable Object] */;
5362 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5363 val* var_res /* var res: ArrayMap[nullable Object, nullable Object] */;
5364 short int var3 /* : Bool */;
5365 int cltype;
5366 int idtype;
5367 const struct type* type_struct;
5368 const char* var_class_name;
5369 var1 = NEW_core__ArrayMap(self->type->resolution_table->types[COLOR_core__ArrayMap__core__ArrayMap___35dK__core__ArrayMap___35dE]);
5370 {
5371 { /* Inline kernel$Object$init (var1) on <var1:ArrayMap[nullable Object, nullable Object]> */
5372 RET_LABEL2:(void)0;
5373 }
5374 }
5375 var_res = var1;
5376 {
5377 core___core__Map___add_all(var_res, self); /* Direct call abstract_collection$Map$add_all on <var_res:ArrayMap[nullable Object, nullable Object]>*/
5378 }
5379 /* <var_res:ArrayMap[nullable Object, nullable Object]> isa SELF */
5380 type_struct = self->type->resolution_table->types[COLOR_core__kernel__Object__SELF];
5381 cltype = type_struct->color;
5382 idtype = type_struct->id;
5383 if(cltype >= var_res->type->table_size) {
5384 var3 = 0;
5385 } else {
5386 var3 = var_res->type->type_table[cltype] == idtype;
5387 }
5388 if (unlikely(!var3)) {
5389 var_class_name = var_res == NULL ? "null" : var_res->type->name;
5390 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SELF", var_class_name);
5391 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 798);
5392 fatal_exit(1);
5393 }
5394 var = var_res;
5395 goto RET_LABEL;
5396 RET_LABEL:;
5397 return var;
5398 }
5399 /* method array$ArrayMapKeys$map for (self: ArrayMapKeys[nullable Object, nullable Object]): ArrayMap[nullable Object, nullable Object] */
5400 val* core__array___core__array__ArrayMapKeys___map(val* self) {
5401 val* var /* : ArrayMap[nullable Object, nullable Object] */;
5402 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5403 var1 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5404 if (unlikely(var1 == NULL)) {
5405 if(catchStack.cursor >= 0){
5406 longjmp(catchStack.envs[catchStack.cursor], 1);
5407 }
5408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5409 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5410 fatal_exit(1);
5411 }
5412 var = var1;
5413 RET_LABEL:;
5414 return var;
5415 }
5416 /* method array$ArrayMapKeys$map= for (self: ArrayMapKeys[nullable Object, nullable Object], ArrayMap[nullable Object, nullable Object]) */
5417 void core__array___core__array__ArrayMapKeys___map_61d(val* self, val* p0) {
5418 short int var /* : Bool */;
5419 int cltype;
5420 int idtype;
5421 const struct type* type_struct;
5422 const char* var_class_name;
5423 /* Covariant cast for argument 0 (map) <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
5424 /* <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
5425 type_struct = self->type->resolution_table->types[COLOR_core__ArrayMap__core__array__ArrayMapKeys___35dK__core__array__ArrayMapKeys___35dE];
5426 cltype = type_struct->color;
5427 idtype = type_struct->id;
5428 if(cltype >= p0->type->table_size) {
5429 var = 0;
5430 } else {
5431 var = p0->type->type_table[cltype] == idtype;
5432 }
5433 if (unlikely(!var)) {
5434 var_class_name = p0 == NULL ? "null" : p0->type->name;
5435 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayMap[K, E]", var_class_name);
5436 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5437 fatal_exit(1);
5438 }
5439 self->attrs[COLOR_core__array__ArrayMapKeys___map].val = p0; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5440 RET_LABEL:;
5441 }
5442 /* method array$ArrayMapKeys$count for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object): Int */
5443 long core__array___core__array__ArrayMapKeys___core__abstract_collection__Collection__count(val* self, val* p0) {
5444 long var /* : Int */;
5445 val* var_k /* var k: nullable Object */;
5446 short int var1 /* : Bool */;
5447 var_k = p0;
5448 {
5449 var1 = core__array___core__array__ArrayMapKeys___core__abstract_collection__Collection__has(self, var_k);
5450 }
5451 if (var1){
5452 var = 1l;
5453 goto RET_LABEL;
5454 } else {
5455 var = 0l;
5456 goto RET_LABEL;
5457 }
5458 RET_LABEL:;
5459 return var;
5460 }
5461 /* method array$ArrayMapKeys$first for (self: ArrayMapKeys[nullable Object, nullable Object]): nullable Object */
5462 val* core__array___core__array__ArrayMapKeys___core__abstract_collection__Collection__first(val* self) {
5463 val* var /* : nullable Object */;
5464 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5465 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5466 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
5467 val* var5 /* : nullable Object */;
5468 val* var6 /* : nullable Object */;
5469 val* var8 /* : nullable Object */;
5470 {
5471 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5472 var3 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5473 if (unlikely(var3 == NULL)) {
5474 if(catchStack.cursor >= 0){
5475 longjmp(catchStack.envs[catchStack.cursor], 1);
5476 }
5477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5478 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5479 fatal_exit(1);
5480 }
5481 var1 = var3;
5482 RET_LABEL2:(void)0;
5483 }
5484 }
5485 var4 = var1->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <var1:ArrayMap[nullable Object, nullable Object]> */
5486 if (unlikely(var4 == NULL)) {
5487 if(catchStack.cursor >= 0){
5488 longjmp(catchStack.envs[catchStack.cursor], 1);
5489 }
5490 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5491 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 807);
5492 fatal_exit(1);
5493 }
5494 {
5495 var5 = core___core__SequenceRead___Collection__first(var4);
5496 }
5497 {
5498 { /* Inline abstract_collection$Couple$first (var5) on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
5499 var8 = var5->attrs[COLOR_core__abstract_collection__Couple___first].val; /* _first on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
5500 var6 = var8;
5501 RET_LABEL7:(void)0;
5502 }
5503 }
5504 var = var6;
5505 goto RET_LABEL;
5506 RET_LABEL:;
5507 return var;
5508 }
5509 /* method array$ArrayMapKeys$has for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object): Bool */
5510 short int core__array___core__array__ArrayMapKeys___core__abstract_collection__Collection__has(val* self, val* p0) {
5511 short int var /* : Bool */;
5512 val* var_k /* var k: nullable Object */;
5513 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5514 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5515 short int var4 /* : Bool */;
5516 int cltype;
5517 int idtype;
5518 const struct type* type_struct;
5519 short int is_nullable;
5520 const char* var_class_name;
5521 long var5 /* : Int */;
5522 short int var6 /* : Bool */;
5523 short int var8 /* : Bool */;
5524 int cltype9;
5525 int idtype10;
5526 const char* var_class_name11;
5527 short int var12 /* : Bool */;
5528 var_k = p0;
5529 {
5530 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5531 var3 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5532 if (unlikely(var3 == NULL)) {
5533 if(catchStack.cursor >= 0){
5534 longjmp(catchStack.envs[catchStack.cursor], 1);
5535 }
5536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5537 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5538 fatal_exit(1);
5539 }
5540 var1 = var3;
5541 RET_LABEL2:(void)0;
5542 }
5543 }
5544 /* <var_k:nullable Object> isa K */
5545 type_struct = self->type->resolution_table->types[COLOR_core__array__ArrayMapKeys___35dK];
5546 cltype = type_struct->color;
5547 idtype = type_struct->id;
5548 is_nullable = type_struct->is_nullable;
5549 if(var_k == NULL) {
5550 var4 = is_nullable;
5551 } else {
5552 if(cltype >= (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->table_size) {
5553 var4 = 0;
5554 } else {
5555 var4 = (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->type_table[cltype] == idtype;
5556 }
5557 }
5558 if (unlikely(!var4)) {
5559 var_class_name = var_k == NULL ? "null" : (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->name;
5560 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
5561 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 808);
5562 fatal_exit(1);
5563 }
5564 {
5565 var5 = core___core__ArrayMap___index(var1, var_k);
5566 }
5567 {
5568 { /* Inline kernel$Int$>= (var5,0l) on <var5:Int> */
5569 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5570 /* <0l:Int> isa OTHER */
5571 var8 = 1; /* easy <0l:Int> isa OTHER*/
5572 if (unlikely(!var8)) {
5573 var_class_name11 = type_core__Int.name;
5574 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
5575 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
5576 fatal_exit(1);
5577 }
5578 var12 = var5 >= 0l;
5579 var6 = var12;
5580 goto RET_LABEL7;
5581 RET_LABEL7:(void)0;
5582 }
5583 }
5584 var = var6;
5585 goto RET_LABEL;
5586 RET_LABEL:;
5587 return var;
5588 }
5589 /* method array$ArrayMapKeys$is_empty for (self: ArrayMapKeys[nullable Object, nullable Object]): Bool */
5590 short int core__array___core__array__ArrayMapKeys___core__abstract_collection__Collection__is_empty(val* self) {
5591 short int var /* : Bool */;
5592 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5593 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5594 short int var4 /* : Bool */;
5595 {
5596 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5597 var3 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5598 if (unlikely(var3 == NULL)) {
5599 if(catchStack.cursor >= 0){
5600 longjmp(catchStack.envs[catchStack.cursor], 1);
5601 }
5602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5603 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5604 fatal_exit(1);
5605 }
5606 var1 = var3;
5607 RET_LABEL2:(void)0;
5608 }
5609 }
5610 {
5611 var4 = core___core__ArrayMap___core__abstract_collection__MapRead__is_empty(var1);
5612 }
5613 var = var4;
5614 goto RET_LABEL;
5615 RET_LABEL:;
5616 return var;
5617 }
5618 /* method array$ArrayMapKeys$length for (self: ArrayMapKeys[nullable Object, nullable Object]): Int */
5619 long core__array___core__array__ArrayMapKeys___core__abstract_collection__Collection__length(val* self) {
5620 long var /* : Int */;
5621 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5622 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5623 long var4 /* : Int */;
5624 {
5625 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5626 var3 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5627 if (unlikely(var3 == NULL)) {
5628 if(catchStack.cursor >= 0){
5629 longjmp(catchStack.envs[catchStack.cursor], 1);
5630 }
5631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5632 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5633 fatal_exit(1);
5634 }
5635 var1 = var3;
5636 RET_LABEL2:(void)0;
5637 }
5638 }
5639 {
5640 var4 = core___core__ArrayMap___core__abstract_collection__MapRead__length(var1);
5641 }
5642 var = var4;
5643 goto RET_LABEL;
5644 RET_LABEL:;
5645 return var;
5646 }
5647 /* method array$ArrayMapKeys$iterator for (self: ArrayMapKeys[nullable Object, nullable Object]): Iterator[nullable Object] */
5648 val* core__array___core__array__ArrayMapKeys___core__abstract_collection__Collection__iterator(val* self) {
5649 val* var /* : Iterator[nullable Object] */;
5650 val* var1 /* : MapKeysIterator[nullable Object, nullable Object] */;
5651 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
5652 val* var4 /* : ArrayMap[nullable Object, nullable Object] */;
5653 val* var5 /* : MapIterator[nullable Object, nullable Object] */;
5654 var1 = NEW_core__MapKeysIterator(self->type->resolution_table->types[COLOR_core__MapKeysIterator__core__array__ArrayMapKeys___35dK__core__array__ArrayMapKeys___35dE]);
5655 {
5656 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5657 var4 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5658 if (unlikely(var4 == NULL)) {
5659 if(catchStack.cursor >= 0){
5660 longjmp(catchStack.envs[catchStack.cursor], 1);
5661 }
5662 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5663 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5664 fatal_exit(1);
5665 }
5666 var2 = var4;
5667 RET_LABEL3:(void)0;
5668 }
5669 }
5670 {
5671 var5 = core___core__CoupleMap___MapRead__iterator(var2);
5672 }
5673 {
5674 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__abstract_collection__MapKeysIterator__original_iterator_61d]))(var1, var5); /* original_iterator= on <var1:MapKeysIterator[nullable Object, nullable Object]>*/
5675 }
5676 {
5677 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:MapKeysIterator[nullable Object, nullable Object]>*/
5678 }
5679 var = var1;
5680 goto RET_LABEL;
5681 RET_LABEL:;
5682 return var;
5683 }
5684 /* method array$ArrayMapKeys$clear for (self: ArrayMapKeys[nullable Object, nullable Object]) */
5685 void core__array___core__array__ArrayMapKeys___core__abstract_collection__RemovableCollection__clear(val* self) {
5686 val* var /* : ArrayMap[nullable Object, nullable Object] */;
5687 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
5688 {
5689 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5690 var2 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5691 if (unlikely(var2 == NULL)) {
5692 if(catchStack.cursor >= 0){
5693 longjmp(catchStack.envs[catchStack.cursor], 1);
5694 }
5695 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5696 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5697 fatal_exit(1);
5698 }
5699 var = var2;
5700 RET_LABEL1:(void)0;
5701 }
5702 }
5703 {
5704 core___core__ArrayMap___core__abstract_collection__Map__clear(var); /* Direct call array$ArrayMap$clear on <var:ArrayMap[nullable Object, nullable Object]>*/
5705 }
5706 RET_LABEL:;
5707 }
5708 /* method array$ArrayMapKeys$remove for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object) */
5709 void core__array___core__array__ArrayMapKeys___core__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
5710 val* var_key /* var key: nullable Object */;
5711 val* var /* : ArrayMap[nullable Object, nullable Object] */;
5712 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
5713 short int var3 /* : Bool */;
5714 int cltype;
5715 int idtype;
5716 const struct type* type_struct;
5717 short int is_nullable;
5718 const char* var_class_name;
5719 long var4 /* : Int */;
5720 long var_i /* var i: Int */;
5721 short int var5 /* : Bool */;
5722 short int var7 /* : Bool */;
5723 int cltype8;
5724 int idtype9;
5725 const char* var_class_name10;
5726 short int var11 /* : Bool */;
5727 val* var12 /* : ArrayMap[nullable Object, nullable Object] */;
5728 val* var14 /* : ArrayMap[nullable Object, nullable Object] */;
5729 var_key = p0;
5730 {
5731 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5732 var2 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5733 if (unlikely(var2 == NULL)) {
5734 if(catchStack.cursor >= 0){
5735 longjmp(catchStack.envs[catchStack.cursor], 1);
5736 }
5737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5738 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5739 fatal_exit(1);
5740 }
5741 var = var2;
5742 RET_LABEL1:(void)0;
5743 }
5744 }
5745 /* <var_key:nullable Object> isa K */
5746 type_struct = self->type->resolution_table->types[COLOR_core__array__ArrayMapKeys___35dK];
5747 cltype = type_struct->color;
5748 idtype = type_struct->id;
5749 is_nullable = type_struct->is_nullable;
5750 if(var_key == NULL) {
5751 var3 = is_nullable;
5752 } else {
5753 if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) {
5754 var3 = 0;
5755 } else {
5756 var3 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype;
5757 }
5758 }
5759 if (unlikely(!var3)) {
5760 var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name;
5761 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
5762 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 816);
5763 fatal_exit(1);
5764 }
5765 {
5766 var4 = core___core__ArrayMap___index(var, var_key);
5767 }
5768 var_i = var4;
5769 {
5770 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
5771 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5772 /* <0l:Int> isa OTHER */
5773 var7 = 1; /* easy <0l:Int> isa OTHER*/
5774 if (unlikely(!var7)) {
5775 var_class_name10 = type_core__Int.name;
5776 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
5777 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
5778 fatal_exit(1);
5779 }
5780 var11 = var_i >= 0l;
5781 var5 = var11;
5782 goto RET_LABEL6;
5783 RET_LABEL6:(void)0;
5784 }
5785 }
5786 if (var5){
5787 {
5788 { /* Inline array$ArrayMapKeys$map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5789 var14 = self->attrs[COLOR_core__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
5790 if (unlikely(var14 == NULL)) {
5791 if(catchStack.cursor >= 0){
5792 longjmp(catchStack.envs[catchStack.cursor], 1);
5793 }
5794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5795 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 804);
5796 fatal_exit(1);
5797 }
5798 var12 = var14;
5799 RET_LABEL13:(void)0;
5800 }
5801 }
5802 {
5803 core___core__ArrayMap___remove_at_index(var12, var_i); /* Direct call array$ArrayMap$remove_at_index on <var12:ArrayMap[nullable Object, nullable Object]>*/
5804 }
5805 } else {
5806 }
5807 RET_LABEL:;
5808 }
5809 /* method array$ArrayMapKeys$init for (self: ArrayMapKeys[nullable Object, nullable Object]) */
5810 void core__array___core__array__ArrayMapKeys___core__kernel__Object__init(val* self) {
5811 {
5812 ((void(*)(val* self))(self->class->vft[COLOR_core__array___core__array__ArrayMapKeys___core__kernel__Object__init]))(self); /* init on <self:ArrayMapKeys[nullable Object, nullable Object]>*/
5813 }
5814 RET_LABEL:;
5815 }
5816 /* method array$ArrayMapValues$map for (self: ArrayMapValues[nullable Object, nullable Object]): ArrayMap[nullable Object, nullable Object] */
5817 val* core__array___core__array__ArrayMapValues___map(val* self) {
5818 val* var /* : ArrayMap[nullable Object, nullable Object] */;
5819 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5820 var1 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5821 if (unlikely(var1 == NULL)) {
5822 if(catchStack.cursor >= 0){
5823 longjmp(catchStack.envs[catchStack.cursor], 1);
5824 }
5825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5826 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
5827 fatal_exit(1);
5828 }
5829 var = var1;
5830 RET_LABEL:;
5831 return var;
5832 }
5833 /* method array$ArrayMapValues$map= for (self: ArrayMapValues[nullable Object, nullable Object], ArrayMap[nullable Object, nullable Object]) */
5834 void core__array___core__array__ArrayMapValues___map_61d(val* self, val* p0) {
5835 short int var /* : Bool */;
5836 int cltype;
5837 int idtype;
5838 const struct type* type_struct;
5839 const char* var_class_name;
5840 /* Covariant cast for argument 0 (map) <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
5841 /* <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
5842 type_struct = self->type->resolution_table->types[COLOR_core__ArrayMap__core__array__ArrayMapValues___35dK__core__array__ArrayMapValues___35dE];
5843 cltype = type_struct->color;
5844 idtype = type_struct->id;
5845 if(cltype >= p0->type->table_size) {
5846 var = 0;
5847 } else {
5848 var = p0->type->type_table[cltype] == idtype;
5849 }
5850 if (unlikely(!var)) {
5851 var_class_name = p0 == NULL ? "null" : p0->type->name;
5852 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayMap[K, E]", var_class_name);
5853 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
5854 fatal_exit(1);
5855 }
5856 self->attrs[COLOR_core__array__ArrayMapValues___map].val = p0; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5857 RET_LABEL:;
5858 }
5859 /* method array$ArrayMapValues$first for (self: ArrayMapValues[nullable Object, nullable Object]): nullable Object */
5860 val* core__array___core__array__ArrayMapValues___core__abstract_collection__Collection__first(val* self) {
5861 val* var /* : nullable Object */;
5862 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5863 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5864 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
5865 val* var5 /* : nullable Object */;
5866 val* var6 /* : nullable Object */;
5867 val* var8 /* : nullable Object */;
5868 {
5869 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5870 var3 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5871 if (unlikely(var3 == NULL)) {
5872 if(catchStack.cursor >= 0){
5873 longjmp(catchStack.envs[catchStack.cursor], 1);
5874 }
5875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5876 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
5877 fatal_exit(1);
5878 }
5879 var1 = var3;
5880 RET_LABEL2:(void)0;
5881 }
5882 }
5883 var4 = var1->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <var1:ArrayMap[nullable Object, nullable Object]> */
5884 if (unlikely(var4 == NULL)) {
5885 if(catchStack.cursor >= 0){
5886 longjmp(catchStack.envs[catchStack.cursor], 1);
5887 }
5888 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5889 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 826);
5890 fatal_exit(1);
5891 }
5892 {
5893 var5 = core___core__SequenceRead___Collection__first(var4);
5894 }
5895 {
5896 { /* Inline abstract_collection$Couple$second (var5) on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
5897 var8 = var5->attrs[COLOR_core__abstract_collection__Couple___second].val; /* _second on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
5898 var6 = var8;
5899 RET_LABEL7:(void)0;
5900 }
5901 }
5902 var = var6;
5903 goto RET_LABEL;
5904 RET_LABEL:;
5905 return var;
5906 }
5907 /* method array$ArrayMapValues$is_empty for (self: ArrayMapValues[nullable Object, nullable Object]): Bool */
5908 short int core__array___core__array__ArrayMapValues___core__abstract_collection__Collection__is_empty(val* self) {
5909 short int var /* : Bool */;
5910 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5911 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5912 short int var4 /* : Bool */;
5913 {
5914 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5915 var3 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5916 if (unlikely(var3 == NULL)) {
5917 if(catchStack.cursor >= 0){
5918 longjmp(catchStack.envs[catchStack.cursor], 1);
5919 }
5920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5921 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
5922 fatal_exit(1);
5923 }
5924 var1 = var3;
5925 RET_LABEL2:(void)0;
5926 }
5927 }
5928 {
5929 var4 = core___core__ArrayMap___core__abstract_collection__MapRead__is_empty(var1);
5930 }
5931 var = var4;
5932 goto RET_LABEL;
5933 RET_LABEL:;
5934 return var;
5935 }
5936 /* method array$ArrayMapValues$length for (self: ArrayMapValues[nullable Object, nullable Object]): Int */
5937 long core__array___core__array__ArrayMapValues___core__abstract_collection__Collection__length(val* self) {
5938 long var /* : Int */;
5939 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5940 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5941 long var4 /* : Int */;
5942 {
5943 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5944 var3 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5945 if (unlikely(var3 == NULL)) {
5946 if(catchStack.cursor >= 0){
5947 longjmp(catchStack.envs[catchStack.cursor], 1);
5948 }
5949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5950 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
5951 fatal_exit(1);
5952 }
5953 var1 = var3;
5954 RET_LABEL2:(void)0;
5955 }
5956 }
5957 {
5958 var4 = core___core__ArrayMap___core__abstract_collection__MapRead__length(var1);
5959 }
5960 var = var4;
5961 goto RET_LABEL;
5962 RET_LABEL:;
5963 return var;
5964 }
5965 /* method array$ArrayMapValues$iterator for (self: ArrayMapValues[nullable Object, nullable Object]): Iterator[nullable Object] */
5966 val* core__array___core__array__ArrayMapValues___core__abstract_collection__Collection__iterator(val* self) {
5967 val* var /* : Iterator[nullable Object] */;
5968 val* var1 /* : MapValuesIterator[nullable Object, nullable Object] */;
5969 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
5970 val* var4 /* : ArrayMap[nullable Object, nullable Object] */;
5971 val* var5 /* : MapIterator[nullable Object, nullable Object] */;
5972 var1 = NEW_core__MapValuesIterator(self->type->resolution_table->types[COLOR_core__MapValuesIterator__core__array__ArrayMapValues___35dK__core__array__ArrayMapValues___35dE]);
5973 {
5974 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5975 var4 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5976 if (unlikely(var4 == NULL)) {
5977 if(catchStack.cursor >= 0){
5978 longjmp(catchStack.envs[catchStack.cursor], 1);
5979 }
5980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5981 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
5982 fatal_exit(1);
5983 }
5984 var2 = var4;
5985 RET_LABEL3:(void)0;
5986 }
5987 }
5988 {
5989 var5 = core___core__CoupleMap___MapRead__iterator(var2);
5990 }
5991 {
5992 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_core__abstract_collection__MapValuesIterator__original_iterator_61d]))(var1, var5); /* original_iterator= on <var1:MapValuesIterator[nullable Object, nullable Object]>*/
5993 }
5994 {
5995 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:MapValuesIterator[nullable Object, nullable Object]>*/
5996 }
5997 var = var1;
5998 goto RET_LABEL;
5999 RET_LABEL:;
6000 return var;
6001 }
6002 /* method array$ArrayMapValues$has for (self: ArrayMapValues[nullable Object, nullable Object], nullable Object): Bool */
6003 short int core__array___core__array__ArrayMapValues___core__abstract_collection__Collection__has(val* self, val* p0) {
6004 short int var /* : Bool */;
6005 val* var_item /* var item: nullable Object */;
6006 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
6007 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
6008 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
6009 val* var_ /* var : Array[Couple[nullable Object, nullable Object]] */;
6010 val* var5 /* : IndexedIterator[nullable Object] */;
6011 val* var_6 /* var : IndexedIterator[Couple[nullable Object, nullable Object]] */;
6012 short int var7 /* : Bool */;
6013 val* var8 /* : nullable Object */;
6014 val* var_i /* var i: Couple[nullable Object, nullable Object] */;
6015 val* var9 /* : nullable Object */;
6016 val* var11 /* : nullable Object */;
6017 short int var12 /* : Bool */;
6018 short int var13 /* : Bool */;
6019 var_item = p0;
6020 {
6021 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
6022 var3 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
6023 if (unlikely(var3 == NULL)) {
6024 if(catchStack.cursor >= 0){
6025 longjmp(catchStack.envs[catchStack.cursor], 1);
6026 }
6027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
6028 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
6029 fatal_exit(1);
6030 }
6031 var1 = var3;
6032 RET_LABEL2:(void)0;
6033 }
6034 }
6035 var4 = var1->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <var1:ArrayMap[nullable Object, nullable Object]> */
6036 if (unlikely(var4 == NULL)) {
6037 if(catchStack.cursor >= 0){
6038 longjmp(catchStack.envs[catchStack.cursor], 1);
6039 }
6040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
6041 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 834);
6042 fatal_exit(1);
6043 }
6044 var_ = var4;
6045 {
6046 var5 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
6047 }
6048 var_6 = var5;
6049 for(;;) {
6050 {
6051 var7 = ((short int(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_6); /* is_ok on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6052 }
6053 if (var7){
6054 } else {
6055 goto BREAK_label;
6056 }
6057 {
6058 var8 = ((val*(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_6); /* item on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6059 }
6060 var_i = var8;
6061 {
6062 { /* Inline abstract_collection$Couple$second (var_i) on <var_i:Couple[nullable Object, nullable Object]> */
6063 var11 = var_i->attrs[COLOR_core__abstract_collection__Couple___second].val; /* _second on <var_i:Couple[nullable Object, nullable Object]> */
6064 var9 = var11;
6065 RET_LABEL10:(void)0;
6066 }
6067 }
6068 if (var9 == NULL) {
6069 var12 = (var_item == NULL);
6070 } else {
6071 var13 = ((short int(*)(val* self, val* p0))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var9, var_item); /* == on <var9:nullable Object>*/
6072 var12 = var13;
6073 }
6074 if (var12){
6075 var = 1;
6076 goto RET_LABEL;
6077 } else {
6078 }
6079 {
6080 ((void(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_6); /* next on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6081 }
6082 }
6083 BREAK_label: (void)0;
6084 {
6085 ((void(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_6); /* finish on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6086 }
6087 var = 0;
6088 goto RET_LABEL;
6089 RET_LABEL:;
6090 return var;
6091 }
6092 /* method array$ArrayMapValues$count for (self: ArrayMapValues[nullable Object, nullable Object], nullable Object): Int */
6093 long core__array___core__array__ArrayMapValues___core__abstract_collection__Collection__count(val* self, val* p0) {
6094 long var /* : Int */;
6095 val* var_item /* var item: nullable Object */;
6096 long var_nb /* var nb: Int */;
6097 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
6098 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
6099 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
6100 val* var_ /* var : Array[Couple[nullable Object, nullable Object]] */;
6101 val* var5 /* : IndexedIterator[nullable Object] */;
6102 val* var_6 /* var : IndexedIterator[Couple[nullable Object, nullable Object]] */;
6103 short int var7 /* : Bool */;
6104 val* var8 /* : nullable Object */;
6105 val* var_i /* var i: Couple[nullable Object, nullable Object] */;
6106 val* var9 /* : nullable Object */;
6107 val* var11 /* : nullable Object */;
6108 short int var12 /* : Bool */;
6109 short int var13 /* : Bool */;
6110 long var14 /* : Int */;
6111 short int var16 /* : Bool */;
6112 int cltype;
6113 int idtype;
6114 const char* var_class_name;
6115 long var17 /* : Int */;
6116 var_item = p0;
6117 var_nb = 0l;
6118 {
6119 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
6120 var3 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
6121 if (unlikely(var3 == NULL)) {
6122 if(catchStack.cursor >= 0){
6123 longjmp(catchStack.envs[catchStack.cursor], 1);
6124 }
6125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
6126 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
6127 fatal_exit(1);
6128 }
6129 var1 = var3;
6130 RET_LABEL2:(void)0;
6131 }
6132 }
6133 var4 = var1->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <var1:ArrayMap[nullable Object, nullable Object]> */
6134 if (unlikely(var4 == NULL)) {
6135 if(catchStack.cursor >= 0){
6136 longjmp(catchStack.envs[catchStack.cursor], 1);
6137 }
6138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
6139 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 849);
6140 fatal_exit(1);
6141 }
6142 var_ = var4;
6143 {
6144 var5 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
6145 }
6146 var_6 = var5;
6147 for(;;) {
6148 {
6149 var7 = ((short int(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_6); /* is_ok on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6150 }
6151 if (var7){
6152 } else {
6153 goto BREAK_label;
6154 }
6155 {
6156 var8 = ((val*(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_6); /* item on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6157 }
6158 var_i = var8;
6159 {
6160 { /* Inline abstract_collection$Couple$second (var_i) on <var_i:Couple[nullable Object, nullable Object]> */
6161 var11 = var_i->attrs[COLOR_core__abstract_collection__Couple___second].val; /* _second on <var_i:Couple[nullable Object, nullable Object]> */
6162 var9 = var11;
6163 RET_LABEL10:(void)0;
6164 }
6165 }
6166 if (var9 == NULL) {
6167 var12 = (var_item == NULL);
6168 } else {
6169 var13 = ((short int(*)(val* self, val* p0))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var9, var_item); /* == on <var9:nullable Object>*/
6170 var12 = var13;
6171 }
6172 if (var12){
6173 {
6174 { /* Inline kernel$Int$+ (var_nb,1l) on <var_nb:Int> */
6175 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6176 /* <1l:Int> isa OTHER */
6177 var16 = 1; /* easy <1l:Int> isa OTHER*/
6178 if (unlikely(!var16)) {
6179 var_class_name = type_core__Int.name;
6180 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6181 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
6182 fatal_exit(1);
6183 }
6184 var17 = var_nb + 1l;
6185 var14 = var17;
6186 goto RET_LABEL15;
6187 RET_LABEL15:(void)0;
6188 }
6189 }
6190 var_nb = var14;
6191 } else {
6192 }
6193 {
6194 ((void(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_6); /* next on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6195 }
6196 }
6197 BREAK_label: (void)0;
6198 {
6199 ((void(*)(val* self))((((long)var_6&3)?class_info[((long)var_6&3)]:var_6->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_6); /* finish on <var_6:IndexedIterator[Couple[nullable Object, nullable Object]]>*/
6200 }
6201 var = var_nb;
6202 goto RET_LABEL;
6203 RET_LABEL:;
6204 return var;
6205 }
6206 /* method array$ArrayMapValues$clear for (self: ArrayMapValues[nullable Object, nullable Object]) */
6207 void core__array___core__array__ArrayMapValues___core__abstract_collection__RemovableCollection__clear(val* self) {
6208 val* var /* : ArrayMap[nullable Object, nullable Object] */;
6209 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
6210 {
6211 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
6212 var2 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
6213 if (unlikely(var2 == NULL)) {
6214 if(catchStack.cursor >= 0){
6215 longjmp(catchStack.envs[catchStack.cursor], 1);
6216 }
6217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
6218 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
6219 fatal_exit(1);
6220 }
6221 var = var2;
6222 RET_LABEL1:(void)0;
6223 }
6224 }
6225 {
6226 core___core__ArrayMap___core__abstract_collection__Map__clear(var); /* Direct call array$ArrayMap$clear on <var:ArrayMap[nullable Object, nullable Object]>*/
6227 }
6228 RET_LABEL:;
6229 }
6230 /* method array$ArrayMapValues$remove for (self: ArrayMapValues[nullable Object, nullable Object], nullable Object) */
6231 void core__array___core__array__ArrayMapValues___core__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
6232 val* var_item /* var item: nullable Object */;
6233 val* var /* : ArrayMap[nullable Object, nullable Object] */;
6234 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
6235 val* var_map /* var map: ArrayMap[nullable Object, nullable Object] */;
6236 val* var3 /* : Array[Couple[nullable Object, nullable Object]] */;
6237 long var4 /* : Int */;
6238 long var6 /* : Int */;
6239 long var7 /* : Int */;
6240 short int var9 /* : Bool */;
6241 int cltype;
6242 int idtype;
6243 const char* var_class_name;
6244 long var10 /* : Int */;
6245 long var_i /* var i: Int */;
6246 short int var11 /* : Bool */;
6247 short int var13 /* : Bool */;
6248 int cltype14;
6249 int idtype15;
6250 const char* var_class_name16;
6251 short int var17 /* : Bool */;
6252 val* var18 /* : Array[Couple[nullable Object, nullable Object]] */;
6253 val* var19 /* : nullable Object */;
6254 val* var20 /* : nullable Object */;
6255 val* var22 /* : nullable Object */;
6256 short int var23 /* : Bool */;
6257 short int var24 /* : Bool */;
6258 long var25 /* : Int */;
6259 short int var27 /* : Bool */;
6260 int cltype28;
6261 int idtype29;
6262 const char* var_class_name30;
6263 long var31 /* : Int */;
6264 var_item = p0;
6265 {
6266 { /* Inline array$ArrayMapValues$map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
6267 var2 = self->attrs[COLOR_core__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
6268 if (unlikely(var2 == NULL)) {
6269 if(catchStack.cursor >= 0){
6270 longjmp(catchStack.envs[catchStack.cursor], 1);
6271 }
6272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
6273 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 824);
6274 fatal_exit(1);
6275 }
6276 var = var2;
6277 RET_LABEL1:(void)0;
6278 }
6279 }
6280 var_map = var;
6281 var3 = var_map->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <var_map:ArrayMap[nullable Object, nullable Object]> */
6282 if (unlikely(var3 == NULL)) {
6283 if(catchStack.cursor >= 0){
6284 longjmp(catchStack.envs[catchStack.cursor], 1);
6285 }
6286 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
6287 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 858);
6288 fatal_exit(1);
6289 }
6290 {
6291 { /* Inline array$AbstractArrayRead$length (var3) on <var3:Array[Couple[nullable Object, nullable Object]]> */
6292 var6 = var3->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var3:Array[Couple[nullable Object, nullable Object]]> */
6293 var4 = var6;
6294 RET_LABEL5:(void)0;
6295 }
6296 }
6297 {
6298 { /* Inline kernel$Int$- (var4,1l) on <var4:Int> */
6299 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6300 /* <1l:Int> isa OTHER */
6301 var9 = 1; /* easy <1l:Int> isa OTHER*/
6302 if (unlikely(!var9)) {
6303 var_class_name = type_core__Int.name;
6304 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6305 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6306 fatal_exit(1);
6307 }
6308 var10 = var4 - 1l;
6309 var7 = var10;
6310 goto RET_LABEL8;
6311 RET_LABEL8:(void)0;
6312 }
6313 }
6314 var_i = var7;
6315 for(;;) {
6316 {
6317 { /* Inline kernel$Int$>= (var_i,0l) on <var_i:Int> */
6318 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6319 /* <0l:Int> isa OTHER */
6320 var13 = 1; /* easy <0l:Int> isa OTHER*/
6321 if (unlikely(!var13)) {
6322 var_class_name16 = type_core__Int.name;
6323 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
6324 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 726);
6325 fatal_exit(1);
6326 }
6327 var17 = var_i >= 0l;
6328 var11 = var17;
6329 goto RET_LABEL12;
6330 RET_LABEL12:(void)0;
6331 }
6332 }
6333 if (var11){
6334 var18 = var_map->attrs[COLOR_core__array__ArrayMap___items].val; /* _items on <var_map:ArrayMap[nullable Object, nullable Object]> */
6335 if (unlikely(var18 == NULL)) {
6336 if(catchStack.cursor >= 0){
6337 longjmp(catchStack.envs[catchStack.cursor], 1);
6338 }
6339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
6340 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 860);
6341 fatal_exit(1);
6342 }
6343 {
6344 var19 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var18, var_i);
6345 }
6346 {
6347 { /* Inline abstract_collection$Couple$second (var19) on <var19:nullable Object(Couple[nullable Object, nullable Object])> */
6348 var22 = var19->attrs[COLOR_core__abstract_collection__Couple___second].val; /* _second on <var19:nullable Object(Couple[nullable Object, nullable Object])> */
6349 var20 = var22;
6350 RET_LABEL21:(void)0;
6351 }
6352 }
6353 if (var20 == NULL) {
6354 var23 = (var_item == NULL);
6355 } else {
6356 var24 = ((short int(*)(val* self, val* p0))((((long)var20&3)?class_info[((long)var20&3)]:var20->class)->vft[COLOR_core__kernel__Object___61d_61d]))(var20, var_item); /* == on <var20:nullable Object>*/
6357 var23 = var24;
6358 }
6359 if (var23){
6360 {
6361 core___core__ArrayMap___remove_at_index(var_map, var_i); /* Direct call array$ArrayMap$remove_at_index on <var_map:ArrayMap[nullable Object, nullable Object]>*/
6362 }
6363 goto RET_LABEL;
6364 } else {
6365 }
6366 {
6367 { /* Inline kernel$Int$- (var_i,1l) on <var_i:Int> */
6368 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6369 /* <1l:Int> isa OTHER */
6370 var27 = 1; /* easy <1l:Int> isa OTHER*/
6371 if (unlikely(!var27)) {
6372 var_class_name30 = type_core__Int.name;
6373 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
6374 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
6375 fatal_exit(1);
6376 }
6377 var31 = var_i - 1l;
6378 var25 = var31;
6379 goto RET_LABEL26;
6380 RET_LABEL26:(void)0;
6381 }
6382 }
6383 var_i = var25;
6384 } else {
6385 goto BREAK_label;
6386 }
6387 }
6388 BREAK_label: (void)0;
6389 RET_LABEL:;
6390 }
6391 /* method array$ArrayMapValues$init for (self: ArrayMapValues[nullable Object, nullable Object]) */
6392 void core__array___core__array__ArrayMapValues___core__kernel__Object__init(val* self) {
6393 {
6394 ((void(*)(val* self))(self->class->vft[COLOR_core__array___core__array__ArrayMapValues___core__kernel__Object__init]))(self); /* init on <self:ArrayMapValues[nullable Object, nullable Object]>*/
6395 }
6396 RET_LABEL:;
6397 }
6398 /* method array$Iterator$to_a for (self: Iterator[nullable Object]): Array[nullable Object] */
6399 val* core__array___Iterator___to_a(val* self) {
6400 val* var /* : Array[nullable Object] */;
6401 val* var1 /* : Array[nullable Object] */;
6402 val* var_res /* var res: Array[nullable Object] */;
6403 short int var2 /* : Bool */;
6404 val* var3 /* : nullable Object */;
6405 var1 = NEW_core__Array((((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__Array__core__Iterator___35dE]);
6406 {
6407 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[nullable Object]>*/
6408 }
6409 var_res = var1;
6410 for(;;) {
6411 {
6412 var2 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(self); /* is_ok on <self:Iterator[nullable Object]>*/
6413 }
6414 if (var2){
6415 {
6416 var3 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(self); /* item on <self:Iterator[nullable Object]>*/
6417 }
6418 {
6419 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var3); /* Direct call array$Array$add on <var_res:Array[nullable Object]>*/
6420 }
6421 {
6422 ((void(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(self); /* next on <self:Iterator[nullable Object]>*/
6423 }
6424 } else {
6425 goto BREAK_label;
6426 }
6427 }
6428 BREAK_label: (void)0;
6429 {
6430 ((void(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(self); /* finish on <self:Iterator[nullable Object]>*/
6431 }
6432 var = var_res;
6433 goto RET_LABEL;
6434 RET_LABEL:;
6435 return var;
6436 }
6437 /* method array$Collection$to_a for (self: Collection[nullable Object]): Array[nullable Object] */
6438 val* core__array___Collection___to_a(val* self) {
6439 val* var /* : Array[nullable Object] */;
6440 val* var1 /* : Array[nullable Object] */;
6441 long var2 /* : Int */;
6442 val* var_res /* var res: Array[nullable Object] */;
6443 var1 = NEW_core__Array((((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_core__Array__core__Collection___35dE]);
6444 {
6445 var2 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_core__abstract_collection__Collection__length]))(self); /* length on <self:Collection[nullable Object]>*/
6446 }
6447 {
6448 core___core__Array___with_capacity(var1, var2); /* Direct call array$Array$with_capacity on <var1:Array[nullable Object]>*/
6449 }
6450 var_res = var1;
6451 {
6452 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_res, self); /* Direct call array$Array$add_all on <var_res:Array[nullable Object]>*/
6453 }
6454 var = var_res;
6455 goto RET_LABEL;
6456 RET_LABEL:;
6457 return var;
6458 }
6459 /* method array$NativeArray$new for (self: NativeArray[nullable Object], Int): NativeArray[nullable Object] */
6460 val* core___core__NativeArray___new(val* self, long p0) {
6461 val* var /* : NativeArray[nullable Object] */;
6462 const char* var_class_name;
6463 var_class_name = self == NULL ? "null" : self->type->name;
6464 PRINT_ERROR("Runtime error: uncompiled method `%s` called on `%s`. NOT YET IMPLEMENTED", "new", var_class_name);
6465 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 981);
6466 fatal_exit(1);
6467 RET_LABEL:;
6468 return var;
6469 }
6470 /* method array$NativeArray$length for (self: NativeArray[nullable Object]): Int */
6471 long core___core__NativeArray___length(val* self) {
6472 long var /* : Int */;
6473 long var1 /* : Int */;
6474 var1 = ((struct instance_core__NativeArray*)self)->length;
6475 var = var1;
6476 goto RET_LABEL;
6477 RET_LABEL:;
6478 return var;
6479 }
6480 /* method array$NativeArray$[] for (self: NativeArray[nullable Object], Int): nullable Object */
6481 val* core___core__NativeArray____91d_93d(val* self, long p0) {
6482 val* var /* : nullable Object */;
6483 val* var1 /* : Object */;
6484 var1 = ((struct instance_core__NativeArray*)self)->values[p0];
6485 var = var1;
6486 goto RET_LABEL;
6487 RET_LABEL:;
6488 return var;
6489 }
6490 /* method array$NativeArray$[]= for (self: NativeArray[nullable Object], Int, nullable Object) */
6491 void core___core__NativeArray____91d_93d_61d(val* self, long p0, val* p1) {
6492 short int var /* : Bool */;
6493 int cltype;
6494 int idtype;
6495 const struct type* type_struct;
6496 short int is_nullable;
6497 const char* var_class_name;
6498 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
6499 /* <p1:nullable Object> isa E */
6500 type_struct = self->type->resolution_table->types[COLOR_core__NativeArray___35dE];
6501 cltype = type_struct->color;
6502 idtype = type_struct->id;
6503 is_nullable = type_struct->is_nullable;
6504 if(p1 == NULL) {
6505 var = is_nullable;
6506 } else {
6507 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
6508 var = 0;
6509 } else {
6510 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
6511 }
6512 }
6513 if (unlikely(!var)) {
6514 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
6515 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
6516 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 991);
6517 fatal_exit(1);
6518 }
6519 ((struct instance_core__NativeArray*)self)->values[p0]=p1;
6520 RET_LABEL:;
6521 }
6522 /* method array$NativeArray$copy_to for (self: NativeArray[nullable Object], NativeArray[nullable Object], Int) */
6523 void core___core__NativeArray___copy_to(val* self, val* p0, long p1) {
6524 short int var /* : Bool */;
6525 int cltype;
6526 int idtype;
6527 const struct type* type_struct;
6528 const char* var_class_name;
6529 /* Covariant cast for argument 0 (dest) <p0:NativeArray[nullable Object]> isa NativeArray[E] */
6530 /* <p0:NativeArray[nullable Object]> isa NativeArray[E] */
6531 type_struct = self->type->resolution_table->types[COLOR_core__NativeArray__core__NativeArray___35dE];
6532 cltype = type_struct->color;
6533 idtype = type_struct->id;
6534 if(cltype >= p0->type->table_size) {
6535 var = 0;
6536 } else {
6537 var = p0->type->type_table[cltype] == idtype;
6538 }
6539 if (unlikely(!var)) {
6540 var_class_name = p0 == NULL ? "null" : p0->type->name;
6541 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name);
6542 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 994);
6543 fatal_exit(1);
6544 }
6545 memmove(((struct instance_core__NativeArray*)p0)->values, ((struct instance_core__NativeArray*)self)->values, p1*sizeof(val*));
6546 RET_LABEL:;
6547 }
6548 /* method array$NativeArray$memmove for (self: NativeArray[nullable Object], Int, Int, NativeArray[nullable Object], Int) */
6549 void core___core__NativeArray___memmove(val* self, long p0, long p1, val* p2, long p3) {
6550 short int var /* : Bool */;
6551 int cltype;
6552 int idtype;
6553 const struct type* type_struct;
6554 const char* var_class_name;
6555 /* Covariant cast for argument 2 (dest) <p2:NativeArray[nullable Object]> isa NativeArray[E] */
6556 /* <p2:NativeArray[nullable Object]> isa NativeArray[E] */
6557 type_struct = self->type->resolution_table->types[COLOR_core__NativeArray__core__NativeArray___35dE];
6558 cltype = type_struct->color;
6559 idtype = type_struct->id;
6560 if(cltype >= p2->type->table_size) {
6561 var = 0;
6562 } else {
6563 var = p2->type->type_table[cltype] == idtype;
6564 }
6565 if (unlikely(!var)) {
6566 var_class_name = p2 == NULL ? "null" : p2->type->name;
6567 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name);
6568 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 997);
6569 fatal_exit(1);
6570 }
6571 memmove(((struct instance_core__NativeArray*)p2)->values+p3, ((struct instance_core__NativeArray*)self)->values+p0, p1*sizeof(val*));
6572 RET_LABEL:;
6573 }