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