lib/html: implement the tag list as an hashset instead of a array.
[nit.git] / c_src / standard__array.sep.1.c
1 #include "standard__array.sep.0.h"
2 /* method array#AbstractArrayRead#length for (self: AbstractArrayRead[nullable Object]): Int */
3 long standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__length(val* self) {
4 long var /* : Int */;
5 long var1 /* : Int */;
6 var1 = self->attrs[COLOR_standard__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 standard___standard__AbstractArrayRead___length_61d(val* self, long p0) {
13 self->attrs[COLOR_standard__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 standard___standard__AbstractArrayRead___standard__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_standard__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 standard___standard__AbstractArrayRead___standard__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_standard__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_standard__Int.name;
72 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
73 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
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_standard__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_standard__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_standard__Int.name;
104 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
105 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
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 standard___standard__AbstractArrayRead___standard__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 = standard___standard__AbstractArrayRead___standard__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 standard___standard__AbstractArrayRead___standard__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_standard__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_standard__Int.name;
162 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
163 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
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 = standard___standard__AbstractArrayRead___standard__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 standard___standard__AbstractArrayRead___standard__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_standard__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_standard__Int.name;
220 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
221 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
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_standard__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_standard__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_standard__Int.name;
252 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
253 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
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 standard___standard__AbstractArrayRead___standard__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_standard__Int.name;
315 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
316 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
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_standard__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_standard__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_standard__Int.name;
346 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
347 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
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* standard___standard__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_standard__array__AbstractArrayRead___length].l; /* _length on <self:AbstractArrayRead[nullable Object]> */
397 var_cmp = var1;
398 var2 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__AbstractArrayRead___35dE]);
399 {
400 standard___standard__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_standard__Int.name;
411 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
412 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
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_standard__Int.name;
429 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
430 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
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_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_cmp); /* [] on <self:AbstractArrayRead[nullable Object]>*/
442 }
443 {
444 standard___standard__Array___standard__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 standard___standard__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 long var_i /* var i: Int */;
468 short int var1 /* : Bool */;
469 short int var3 /* : Bool */;
470 int cltype4;
471 int idtype5;
472 const char* var_class_name6;
473 short int var7 /* : Bool */;
474 long var8 /* : Int */;
475 short int var10 /* : Bool */;
476 int cltype11;
477 int idtype12;
478 const char* var_class_name13;
479 long var14 /* : Int */;
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 val* var29 /* : nullable Object */;
493 /* Covariant cast for argument 2 (dest) <p2:AbstractArray[nullable Object]> isa AbstractArray[E] */
494 /* <p2:AbstractArray[nullable Object]> isa AbstractArray[E] */
495 type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray__standard__AbstractArrayRead___35dE];
496 cltype = type_struct->color;
497 idtype = type_struct->id;
498 if(cltype >= p2->type->table_size) {
499 var = 0;
500 } else {
501 var = p2->type->type_table[cltype] == idtype;
502 }
503 if (unlikely(!var)) {
504 var_class_name = p2 == NULL ? "null" : p2->type->name;
505 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArray[E]", var_class_name);
506 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 106);
507 fatal_exit(1);
508 }
509 var_start = p0;
510 var_len = p1;
511 var_dest = p2;
512 var_new_start = p3;
513 var_i = var_len;
514 for(;;) {
515 {
516 { /* Inline kernel#Int#> (var_i,0l) on <var_i:Int> */
517 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
518 /* <0l:Int> isa OTHER */
519 var3 = 1; /* easy <0l:Int> isa OTHER*/
520 if (unlikely(!var3)) {
521 var_class_name6 = type_standard__Int.name;
522 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
523 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
524 fatal_exit(1);
525 }
526 var7 = var_i > 0l;
527 var1 = var7;
528 goto RET_LABEL2;
529 RET_LABEL2:(void)0;
530 }
531 }
532 if (var1){
533 {
534 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
535 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
536 /* <1l:Int> isa OTHER */
537 var10 = 1; /* easy <1l:Int> isa OTHER*/
538 if (unlikely(!var10)) {
539 var_class_name13 = type_standard__Int.name;
540 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
541 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
542 fatal_exit(1);
543 }
544 var14 = var_i - 1l;
545 var8 = var14;
546 goto RET_LABEL9;
547 RET_LABEL9:(void)0;
548 }
549 }
550 var_i = var8;
551 {
552 { /* Inline kernel#Int#+ (var_new_start,var_i) on <var_new_start:Int> */
553 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
554 /* <var_i:Int> isa OTHER */
555 var17 = 1; /* easy <var_i:Int> isa OTHER*/
556 if (unlikely(!var17)) {
557 var_class_name20 = type_standard__Int.name;
558 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name20);
559 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
560 fatal_exit(1);
561 }
562 var21 = var_new_start + var_i;
563 var15 = var21;
564 goto RET_LABEL16;
565 RET_LABEL16:(void)0;
566 }
567 }
568 {
569 { /* Inline kernel#Int#+ (var_start,var_i) on <var_start:Int> */
570 /* Covariant cast for argument 0 (i) <var_i:Int> isa OTHER */
571 /* <var_i:Int> isa OTHER */
572 var24 = 1; /* easy <var_i:Int> isa OTHER*/
573 if (unlikely(!var24)) {
574 var_class_name27 = type_standard__Int.name;
575 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
576 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
577 fatal_exit(1);
578 }
579 var28 = var_start + var_i;
580 var22 = var28;
581 goto RET_LABEL23;
582 RET_LABEL23:(void)0;
583 }
584 }
585 {
586 var29 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var22); /* [] on <self:AbstractArrayRead[nullable Object]>*/
587 }
588 {
589 ((void(*)(val* self, long p0, val* p1))(var_dest->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(var_dest, var15, var29); /* []= on <var_dest:AbstractArray[nullable Object]>*/
590 }
591 } else {
592 goto BREAK_label;
593 }
594 }
595 BREAK_label: (void)0;
596 RET_LABEL:;
597 }
598 /* method array#AbstractArrayRead#iterator for (self: AbstractArrayRead[nullable Object]): ArrayIterator[nullable Object] */
599 val* standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(val* self) {
600 val* var /* : ArrayIterator[nullable Object] */;
601 val* var1 /* : nullable ArrayIterator[nullable Object] */;
602 val* var_res /* var res: nullable ArrayIterator[nullable Object] */;
603 short int var2 /* : Bool */;
604 short int var3 /* : Bool */;
605 val* var_other /* var other: nullable Object */;
606 short int var5 /* : Bool */;
607 short int var7 /* : Bool */;
608 val* var8 /* : ArrayIterator[nullable Object] */;
609 var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___free_iterator].val; /* _free_iterator on <self:AbstractArrayRead[nullable Object]> */
610 var_res = var1;
611 if (var_res == NULL) {
612 var2 = 1; /* is null */
613 } else {
614 var2 = 0; /* arg is null but recv is not */
615 }
616 if (0) {
617 { /* Inline kernel#Object#== (var_res,((val*)NULL)) on <var_res:nullable ArrayIterator[nullable Object]> */
618 var_other = ((val*)NULL);
619 {
620 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable ArrayIterator[nullable Object](ArrayIterator[nullable Object])> */
621 var7 = var_res == var_other;
622 var5 = var7;
623 goto RET_LABEL6;
624 RET_LABEL6:(void)0;
625 }
626 }
627 var3 = var5;
628 goto RET_LABEL4;
629 RET_LABEL4:(void)0;
630 }
631 var2 = var3;
632 }
633 if (var2){
634 var8 = NEW_standard__array__ArrayIterator(self->type->resolution_table->types[COLOR_standard__array__ArrayIterator__standard__AbstractArrayRead___35dE]);
635 {
636 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_standard__array__ArrayIterator__array_61d]))(var8, self); /* array= on <var8:ArrayIterator[nullable Object]>*/
637 }
638 {
639 ((void(*)(val* self))(var8->class->vft[COLOR_standard__kernel__Object__init]))(var8); /* init on <var8:ArrayIterator[nullable Object]>*/
640 }
641 var = var8;
642 goto RET_LABEL;
643 } else {
644 }
645 var_res->attrs[COLOR_standard__array__ArrayIterator___index].l = 0l; /* _index on <var_res:nullable ArrayIterator[nullable Object](ArrayIterator[nullable Object])> */
646 self->attrs[COLOR_standard__array__AbstractArrayRead___free_iterator].val = ((val*)NULL); /* _free_iterator on <self:AbstractArrayRead[nullable Object]> */
647 var = var_res;
648 goto RET_LABEL;
649 RET_LABEL:;
650 return var;
651 }
652 /* method array#AbstractArrayRead#sub for (self: AbstractArrayRead[nullable Object], Int, Int): Array[nullable Object] */
653 val* standard___standard__AbstractArrayRead___sub(val* self, long p0, long p1) {
654 val* var /* : Array[nullable Object] */;
655 long var_from /* var from: Int */;
656 long var_count /* var count: Int */;
657 short int var1 /* : Bool */;
658 short int var3 /* : Bool */;
659 int cltype;
660 int idtype;
661 const char* var_class_name;
662 short int var4 /* : Bool */;
663 long var5 /* : Int */;
664 short int var7 /* : Bool */;
665 int cltype8;
666 int idtype9;
667 const char* var_class_name10;
668 long var11 /* : Int */;
669 short int var12 /* : Bool */;
670 short int var14 /* : Bool */;
671 int cltype15;
672 int idtype16;
673 const char* var_class_name17;
674 short int var18 /* : Bool */;
675 long var19 /* : Int */;
676 short int var21 /* : Bool */;
677 int cltype22;
678 int idtype23;
679 const char* var_class_name24;
680 long var25 /* : Int */;
681 long var_to /* var to: Int */;
682 long var26 /* : Int */;
683 short int var27 /* : Bool */;
684 short int var29 /* : Bool */;
685 int cltype30;
686 int idtype31;
687 const char* var_class_name32;
688 short int var33 /* : Bool */;
689 long var34 /* : Int */;
690 val* var35 /* : Array[nullable Object] */;
691 long var36 /* : Int */;
692 short int var38 /* : Bool */;
693 int cltype39;
694 int idtype40;
695 const char* var_class_name41;
696 long var42 /* : Int */;
697 val* var_res /* var res: Array[nullable Object] */;
698 short int var43 /* : Bool */;
699 short int var45 /* : Bool */;
700 int cltype46;
701 int idtype47;
702 const char* var_class_name48;
703 short int var49 /* : Bool */;
704 val* var50 /* : nullable Object */;
705 long var51 /* : Int */;
706 short int var53 /* : Bool */;
707 int cltype54;
708 int idtype55;
709 const char* var_class_name56;
710 long var57 /* : Int */;
711 var_from = p0;
712 var_count = p1;
713 {
714 { /* Inline kernel#Int#< (var_from,0l) on <var_from:Int> */
715 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
716 /* <0l:Int> isa OTHER */
717 var3 = 1; /* easy <0l:Int> isa OTHER*/
718 if (unlikely(!var3)) {
719 var_class_name = type_standard__Int.name;
720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
721 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
722 fatal_exit(1);
723 }
724 var4 = var_from < 0l;
725 var1 = var4;
726 goto RET_LABEL2;
727 RET_LABEL2:(void)0;
728 }
729 }
730 if (var1){
731 {
732 { /* Inline kernel#Int#+ (var_count,var_from) on <var_count:Int> */
733 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
734 /* <var_from:Int> isa OTHER */
735 var7 = 1; /* easy <var_from:Int> isa OTHER*/
736 if (unlikely(!var7)) {
737 var_class_name10 = type_standard__Int.name;
738 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
739 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
740 fatal_exit(1);
741 }
742 var11 = var_count + var_from;
743 var5 = var11;
744 goto RET_LABEL6;
745 RET_LABEL6:(void)0;
746 }
747 }
748 var_count = var5;
749 var_from = 0l;
750 } else {
751 }
752 {
753 { /* Inline kernel#Int#< (var_count,0l) on <var_count:Int> */
754 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
755 /* <0l:Int> isa OTHER */
756 var14 = 1; /* easy <0l:Int> isa OTHER*/
757 if (unlikely(!var14)) {
758 var_class_name17 = type_standard__Int.name;
759 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
760 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
761 fatal_exit(1);
762 }
763 var18 = var_count < 0l;
764 var12 = var18;
765 goto RET_LABEL13;
766 RET_LABEL13:(void)0;
767 }
768 }
769 if (var12){
770 var_count = 0l;
771 } else {
772 }
773 {
774 { /* Inline kernel#Int#+ (var_from,var_count) on <var_from:Int> */
775 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
776 /* <var_count:Int> isa OTHER */
777 var21 = 1; /* easy <var_count:Int> isa OTHER*/
778 if (unlikely(!var21)) {
779 var_class_name24 = type_standard__Int.name;
780 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
781 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
782 fatal_exit(1);
783 }
784 var25 = var_from + var_count;
785 var19 = var25;
786 goto RET_LABEL20;
787 RET_LABEL20:(void)0;
788 }
789 }
790 var_to = var19;
791 {
792 var26 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
793 }
794 {
795 { /* Inline kernel#Int#> (var_to,var26) on <var_to:Int> */
796 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
797 /* <var26:Int> isa OTHER */
798 var29 = 1; /* easy <var26:Int> isa OTHER*/
799 if (unlikely(!var29)) {
800 var_class_name32 = type_standard__Int.name;
801 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
802 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
803 fatal_exit(1);
804 }
805 var33 = var_to > var26;
806 var27 = var33;
807 goto RET_LABEL28;
808 RET_LABEL28:(void)0;
809 }
810 }
811 if (var27){
812 {
813 var34 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArrayRead[nullable Object]>*/
814 }
815 var_to = var34;
816 } else {
817 }
818 var35 = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__AbstractArrayRead___35dE]);
819 {
820 { /* Inline kernel#Int#- (var_to,var_from) on <var_to:Int> */
821 /* Covariant cast for argument 0 (i) <var_from:Int> isa OTHER */
822 /* <var_from:Int> isa OTHER */
823 var38 = 1; /* easy <var_from:Int> isa OTHER*/
824 if (unlikely(!var38)) {
825 var_class_name41 = type_standard__Int.name;
826 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
827 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
828 fatal_exit(1);
829 }
830 var42 = var_to - var_from;
831 var36 = var42;
832 goto RET_LABEL37;
833 RET_LABEL37:(void)0;
834 }
835 }
836 {
837 standard___standard__Array___with_capacity(var35, var36); /* Direct call array#Array#with_capacity on <var35:Array[nullable Object]>*/
838 }
839 var_res = var35;
840 for(;;) {
841 {
842 { /* Inline kernel#Int#< (var_from,var_to) on <var_from:Int> */
843 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
844 /* <var_to:Int> isa OTHER */
845 var45 = 1; /* easy <var_to:Int> isa OTHER*/
846 if (unlikely(!var45)) {
847 var_class_name48 = type_standard__Int.name;
848 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name48);
849 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
850 fatal_exit(1);
851 }
852 var49 = var_from < var_to;
853 var43 = var49;
854 goto RET_LABEL44;
855 RET_LABEL44:(void)0;
856 }
857 }
858 if (var43){
859 {
860 var50 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_from); /* [] on <self:AbstractArrayRead[nullable Object]>*/
861 }
862 {
863 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var50); /* Direct call array#Array#add on <var_res:Array[nullable Object]>*/
864 }
865 {
866 { /* Inline kernel#Int#+ (var_from,1l) on <var_from:Int> */
867 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
868 /* <1l:Int> isa OTHER */
869 var53 = 1; /* easy <1l:Int> isa OTHER*/
870 if (unlikely(!var53)) {
871 var_class_name56 = type_standard__Int.name;
872 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name56);
873 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
874 fatal_exit(1);
875 }
876 var57 = var_from + 1l;
877 var51 = var57;
878 goto RET_LABEL52;
879 RET_LABEL52:(void)0;
880 }
881 }
882 var_from = var51;
883 } else {
884 goto BREAK_label;
885 }
886 }
887 BREAK_label: (void)0;
888 var = var_res;
889 goto RET_LABEL;
890 RET_LABEL:;
891 return var;
892 }
893 /* method array#AbstractArray#push for (self: AbstractArray[nullable Object], nullable Object) */
894 void standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(val* self, val* p0) {
895 short int var /* : Bool */;
896 int cltype;
897 int idtype;
898 const struct type* type_struct;
899 short int is_nullable;
900 const char* var_class_name;
901 val* var_item /* var item: nullable Object */;
902 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
903 /* <p0:nullable Object> isa E */
904 type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray___35dE];
905 cltype = type_struct->color;
906 idtype = type_struct->id;
907 is_nullable = type_struct->is_nullable;
908 if(p0 == NULL) {
909 var = is_nullable;
910 } else {
911 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
912 var = 0;
913 } else {
914 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
915 }
916 }
917 if (unlikely(!var)) {
918 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
919 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
920 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 209);
921 fatal_exit(1);
922 }
923 var_item = p0;
924 {
925 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_standard__abstract_collection__SimpleCollection__add]))(self, var_item); /* add on <self:AbstractArray[nullable Object]>*/
926 }
927 RET_LABEL:;
928 }
929 /* method array#AbstractArray#pop for (self: AbstractArray[nullable Object]): nullable Object */
930 val* standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(val* self) {
931 val* var /* : nullable Object */;
932 short int var1 /* : Bool */;
933 short int var2 /* : Bool */;
934 val* var3 /* : nullable Object */;
935 val* var_r /* var r: nullable Object */;
936 val* var_ /* var : AbstractArray[nullable Object] */;
937 long var4 /* : Int */;
938 long var5 /* : Int */;
939 short int var7 /* : Bool */;
940 int cltype;
941 int idtype;
942 const char* var_class_name;
943 long var8 /* : Int */;
944 {
945 var1 = ((short int(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:AbstractArray[nullable Object]>*/
946 }
947 var2 = !var1;
948 if (unlikely(!var2)) {
949 PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed");
950 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 213);
951 fatal_exit(1);
952 }
953 {
954 var3 = standard___standard__SequenceRead___last(self);
955 }
956 var_r = var3;
957 var_ = self;
958 var4 = var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_:AbstractArray[nullable Object]> */
959 {
960 { /* Inline kernel#Int#- (var4,1l) on <var4:Int> */
961 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
962 /* <1l:Int> isa OTHER */
963 var7 = 1; /* easy <1l:Int> isa OTHER*/
964 if (unlikely(!var7)) {
965 var_class_name = type_standard__Int.name;
966 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
967 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
968 fatal_exit(1);
969 }
970 var8 = var4 - 1l;
971 var5 = var8;
972 goto RET_LABEL6;
973 RET_LABEL6:(void)0;
974 }
975 }
976 var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var5; /* _length on <var_:AbstractArray[nullable Object]> */
977 var = var_r;
978 goto RET_LABEL;
979 RET_LABEL:;
980 return var;
981 }
982 /* method array#AbstractArray#shift for (self: AbstractArray[nullable Object]): nullable Object */
983 val* standard___standard__AbstractArray___standard__abstract_collection__Sequence__shift(val* self) {
984 val* var /* : nullable Object */;
985 short int var1 /* : Bool */;
986 short int var2 /* : Bool */;
987 val* var3 /* : nullable Object */;
988 val* var_r /* var r: nullable Object */;
989 long var_i /* var i: Int */;
990 long var4 /* : Int */;
991 long var_l /* var l: Int */;
992 short int var5 /* : Bool */;
993 short int var7 /* : Bool */;
994 int cltype;
995 int idtype;
996 const char* var_class_name;
997 short int var8 /* : Bool */;
998 long var9 /* : Int */;
999 short int var11 /* : Bool */;
1000 int cltype12;
1001 int idtype13;
1002 const char* var_class_name14;
1003 long var15 /* : Int */;
1004 val* var16 /* : nullable Object */;
1005 long var17 /* : Int */;
1006 short int var19 /* : Bool */;
1007 int cltype20;
1008 int idtype21;
1009 const char* var_class_name22;
1010 long var23 /* : Int */;
1011 long var24 /* : Int */;
1012 short int var26 /* : Bool */;
1013 int cltype27;
1014 int idtype28;
1015 const char* var_class_name29;
1016 long var30 /* : Int */;
1017 {
1018 var1 = ((short int(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(self); /* is_empty on <self:AbstractArray[nullable Object]>*/
1019 }
1020 var2 = !var1;
1021 if (unlikely(!var2)) {
1022 PRINT_ERROR("Runtime error: %s", "Assert \'not_empty\' failed");
1023 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 221);
1024 fatal_exit(1);
1025 }
1026 {
1027 var3 = standard___standard__SequenceRead___Collection__first(self);
1028 }
1029 var_r = var3;
1030 var_i = 1l;
1031 {
1032 var4 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1033 }
1034 var_l = var4;
1035 for(;;) {
1036 {
1037 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
1038 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1039 /* <var_l:Int> isa OTHER */
1040 var7 = 1; /* easy <var_l:Int> isa OTHER*/
1041 if (unlikely(!var7)) {
1042 var_class_name = type_standard__Int.name;
1043 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1044 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1045 fatal_exit(1);
1046 }
1047 var8 = var_i < var_l;
1048 var5 = var8;
1049 goto RET_LABEL6;
1050 RET_LABEL6:(void)0;
1051 }
1052 }
1053 if (var5){
1054 {
1055 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
1056 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1057 /* <1l:Int> isa OTHER */
1058 var11 = 1; /* easy <1l:Int> isa OTHER*/
1059 if (unlikely(!var11)) {
1060 var_class_name14 = type_standard__Int.name;
1061 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
1062 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1063 fatal_exit(1);
1064 }
1065 var15 = var_i - 1l;
1066 var9 = var15;
1067 goto RET_LABEL10;
1068 RET_LABEL10:(void)0;
1069 }
1070 }
1071 {
1072 var16 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on <self:AbstractArray[nullable Object]>*/
1073 }
1074 {
1075 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var9, var16); /* []= on <self:AbstractArray[nullable Object]>*/
1076 }
1077 {
1078 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
1079 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1080 /* <1l:Int> isa OTHER */
1081 var19 = 1; /* easy <1l:Int> isa OTHER*/
1082 if (unlikely(!var19)) {
1083 var_class_name22 = type_standard__Int.name;
1084 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
1085 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1086 fatal_exit(1);
1087 }
1088 var23 = var_i + 1l;
1089 var17 = var23;
1090 goto RET_LABEL18;
1091 RET_LABEL18:(void)0;
1092 }
1093 }
1094 var_i = var17;
1095 } else {
1096 goto BREAK_label;
1097 }
1098 }
1099 BREAK_label: (void)0;
1100 {
1101 { /* Inline kernel#Int#- (var_l,1l) on <var_l:Int> */
1102 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1103 /* <1l:Int> isa OTHER */
1104 var26 = 1; /* easy <1l:Int> isa OTHER*/
1105 if (unlikely(!var26)) {
1106 var_class_name29 = type_standard__Int.name;
1107 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
1108 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1109 fatal_exit(1);
1110 }
1111 var30 = var_l - 1l;
1112 var24 = var30;
1113 goto RET_LABEL25;
1114 RET_LABEL25:(void)0;
1115 }
1116 }
1117 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var24; /* _length on <self:AbstractArray[nullable Object]> */
1118 var = var_r;
1119 goto RET_LABEL;
1120 RET_LABEL:;
1121 return var;
1122 }
1123 /* method array#AbstractArray#unshift for (self: AbstractArray[nullable Object], nullable Object) */
1124 void standard___standard__AbstractArray___standard__abstract_collection__Sequence__unshift(val* self, val* p0) {
1125 short int var /* : Bool */;
1126 int cltype;
1127 int idtype;
1128 const struct type* type_struct;
1129 short int is_nullable;
1130 const char* var_class_name;
1131 val* var_item /* var item: nullable Object */;
1132 long var1 /* : Int */;
1133 long var2 /* : Int */;
1134 short int var4 /* : Bool */;
1135 int cltype5;
1136 int idtype6;
1137 const char* var_class_name7;
1138 long var8 /* : Int */;
1139 long var_i /* var i: Int */;
1140 short int var9 /* : Bool */;
1141 short int var11 /* : Bool */;
1142 int cltype12;
1143 int idtype13;
1144 const char* var_class_name14;
1145 short int var15 /* : Bool */;
1146 long var16 /* : Int */;
1147 short int var18 /* : Bool */;
1148 int cltype19;
1149 int idtype20;
1150 const char* var_class_name21;
1151 long var22 /* : Int */;
1152 val* var23 /* : nullable Object */;
1153 long var24 /* : Int */;
1154 short int var26 /* : Bool */;
1155 int cltype27;
1156 int idtype28;
1157 const char* var_class_name29;
1158 long var30 /* : Int */;
1159 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
1160 /* <p0:nullable Object> isa E */
1161 type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray___35dE];
1162 cltype = type_struct->color;
1163 idtype = type_struct->id;
1164 is_nullable = type_struct->is_nullable;
1165 if(p0 == NULL) {
1166 var = is_nullable;
1167 } else {
1168 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1169 var = 0;
1170 } else {
1171 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1172 }
1173 }
1174 if (unlikely(!var)) {
1175 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1177 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 233);
1178 fatal_exit(1);
1179 }
1180 var_item = p0;
1181 {
1182 var1 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1183 }
1184 {
1185 { /* Inline kernel#Int#- (var1,1l) on <var1:Int> */
1186 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1187 /* <1l:Int> isa OTHER */
1188 var4 = 1; /* easy <1l:Int> isa OTHER*/
1189 if (unlikely(!var4)) {
1190 var_class_name7 = type_standard__Int.name;
1191 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1192 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1193 fatal_exit(1);
1194 }
1195 var8 = var1 - 1l;
1196 var2 = var8;
1197 goto RET_LABEL3;
1198 RET_LABEL3:(void)0;
1199 }
1200 }
1201 var_i = var2;
1202 for(;;) {
1203 {
1204 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
1205 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1206 /* <0l:Int> isa OTHER */
1207 var11 = 1; /* easy <0l:Int> isa OTHER*/
1208 if (unlikely(!var11)) {
1209 var_class_name14 = type_standard__Int.name;
1210 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
1211 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
1212 fatal_exit(1);
1213 }
1214 var15 = var_i >= 0l;
1215 var9 = var15;
1216 goto RET_LABEL10;
1217 RET_LABEL10:(void)0;
1218 }
1219 }
1220 if (var9){
1221 {
1222 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
1223 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1224 /* <1l:Int> isa OTHER */
1225 var18 = 1; /* easy <1l:Int> isa OTHER*/
1226 if (unlikely(!var18)) {
1227 var_class_name21 = type_standard__Int.name;
1228 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
1229 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1230 fatal_exit(1);
1231 }
1232 var22 = var_i + 1l;
1233 var16 = var22;
1234 goto RET_LABEL17;
1235 RET_LABEL17:(void)0;
1236 }
1237 }
1238 {
1239 var23 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_i); /* [] on <self:AbstractArray[nullable Object]>*/
1240 }
1241 {
1242 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var16, var23); /* []= on <self:AbstractArray[nullable Object]>*/
1243 }
1244 {
1245 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
1246 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1247 /* <1l:Int> isa OTHER */
1248 var26 = 1; /* easy <1l:Int> isa OTHER*/
1249 if (unlikely(!var26)) {
1250 var_class_name29 = type_standard__Int.name;
1251 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29);
1252 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1253 fatal_exit(1);
1254 }
1255 var30 = var_i - 1l;
1256 var24 = var30;
1257 goto RET_LABEL25;
1258 RET_LABEL25:(void)0;
1259 }
1260 }
1261 var_i = var24;
1262 } else {
1263 goto BREAK_label;
1264 }
1265 }
1266 BREAK_label: (void)0;
1267 {
1268 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, 0l, var_item); /* []= on <self:AbstractArray[nullable Object]>*/
1269 }
1270 RET_LABEL:;
1271 }
1272 /* method array#AbstractArray#insert for (self: AbstractArray[nullable Object], nullable Object, Int) */
1273 void standard___standard__AbstractArray___standard__abstract_collection__Sequence__insert(val* self, val* p0, long p1) {
1274 short int var /* : Bool */;
1275 int cltype;
1276 int idtype;
1277 const struct type* type_struct;
1278 short int is_nullable;
1279 const char* var_class_name;
1280 val* var_item /* var item: nullable Object */;
1281 long var_pos /* var pos: Int */;
1282 long var1 /* : Int */;
1283 long var2 /* : Int */;
1284 short int var4 /* : Bool */;
1285 int cltype5;
1286 int idtype6;
1287 const char* var_class_name7;
1288 long var8 /* : Int */;
1289 long var9 /* : Int */;
1290 long var10 /* : Int */;
1291 short int var12 /* : Bool */;
1292 int cltype13;
1293 int idtype14;
1294 const char* var_class_name15;
1295 long var16 /* : Int */;
1296 long var17 /* : Int */;
1297 short int var19 /* : Bool */;
1298 int cltype20;
1299 int idtype21;
1300 const char* var_class_name22;
1301 long var23 /* : Int */;
1302 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
1303 /* <p0:nullable Object> isa E */
1304 type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArray___35dE];
1305 cltype = type_struct->color;
1306 idtype = type_struct->id;
1307 is_nullable = type_struct->is_nullable;
1308 if(p0 == NULL) {
1309 var = is_nullable;
1310 } else {
1311 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1312 var = 0;
1313 } else {
1314 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1315 }
1316 }
1317 if (unlikely(!var)) {
1318 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1319 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
1320 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 243);
1321 fatal_exit(1);
1322 }
1323 var_item = p0;
1324 var_pos = p1;
1325 {
1326 var1 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1327 }
1328 {
1329 { /* Inline kernel#Int#+ (var1,1l) on <var1:Int> */
1330 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1331 /* <1l:Int> isa OTHER */
1332 var4 = 1; /* easy <1l:Int> isa OTHER*/
1333 if (unlikely(!var4)) {
1334 var_class_name7 = type_standard__Int.name;
1335 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
1336 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1337 fatal_exit(1);
1338 }
1339 var8 = var1 + 1l;
1340 var2 = var8;
1341 goto RET_LABEL3;
1342 RET_LABEL3:(void)0;
1343 }
1344 }
1345 {
1346 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__array__AbstractArray__enlarge]))(self, var2); /* enlarge on <self:AbstractArray[nullable Object]>*/
1347 }
1348 {
1349 var9 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1350 }
1351 {
1352 { /* Inline kernel#Int#- (var9,var_pos) on <var9:Int> */
1353 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
1354 /* <var_pos:Int> isa OTHER */
1355 var12 = 1; /* easy <var_pos:Int> isa OTHER*/
1356 if (unlikely(!var12)) {
1357 var_class_name15 = type_standard__Int.name;
1358 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
1359 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1360 fatal_exit(1);
1361 }
1362 var16 = var9 - var_pos;
1363 var10 = var16;
1364 goto RET_LABEL11;
1365 RET_LABEL11:(void)0;
1366 }
1367 }
1368 {
1369 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
1370 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1371 /* <1l:Int> isa OTHER */
1372 var19 = 1; /* easy <1l:Int> isa OTHER*/
1373 if (unlikely(!var19)) {
1374 var_class_name22 = type_standard__Int.name;
1375 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
1376 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1377 fatal_exit(1);
1378 }
1379 var23 = var_pos + 1l;
1380 var17 = var23;
1381 goto RET_LABEL18;
1382 RET_LABEL18:(void)0;
1383 }
1384 }
1385 {
1386 standard___standard__AbstractArrayRead___copy_to(self, var_pos, var10, self, var17); /* Direct call array#AbstractArrayRead#copy_to on <self:AbstractArray[nullable Object]>*/
1387 }
1388 {
1389 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var_pos, var_item); /* []= on <self:AbstractArray[nullable Object]>*/
1390 }
1391 RET_LABEL:;
1392 }
1393 /* method array#AbstractArray#insert_all for (self: AbstractArray[nullable Object], Collection[nullable Object], Int) */
1394 void standard___standard__AbstractArray___standard__abstract_collection__Sequence__insert_all(val* self, val* p0, long p1) {
1395 short int var /* : Bool */;
1396 int cltype;
1397 int idtype;
1398 const struct type* type_struct;
1399 const char* var_class_name;
1400 val* var_coll /* var coll: Collection[nullable Object] */;
1401 long var_pos /* var pos: Int */;
1402 long var1 /* : Int */;
1403 long var_l /* var l: Int */;
1404 short int var2 /* : Bool */;
1405 short int var4 /* : Bool */;
1406 long var5 /* : Int */;
1407 long var6 /* : Int */;
1408 short int var8 /* : Bool */;
1409 int cltype9;
1410 int idtype10;
1411 const char* var_class_name11;
1412 long var12 /* : Int */;
1413 val* var_ /* var : AbstractArray[nullable Object] */;
1414 long var13 /* : Int */;
1415 long var14 /* : Int */;
1416 short int var16 /* : Bool */;
1417 int cltype17;
1418 int idtype18;
1419 const char* var_class_name19;
1420 long var20 /* : Int */;
1421 long var21 /* : Int */;
1422 long var22 /* : Int */;
1423 short int var24 /* : Bool */;
1424 int cltype25;
1425 int idtype26;
1426 const char* var_class_name27;
1427 long var28 /* : Int */;
1428 long var29 /* : Int */;
1429 short int var31 /* : Bool */;
1430 int cltype32;
1431 int idtype33;
1432 const char* var_class_name34;
1433 long var35 /* : Int */;
1434 long var36 /* : Int */;
1435 short int var38 /* : Bool */;
1436 int cltype39;
1437 int idtype40;
1438 const char* var_class_name41;
1439 long var42 /* : Int */;
1440 val* var_43 /* var : Collection[nullable Object] */;
1441 val* var44 /* : Iterator[nullable Object] */;
1442 val* var_45 /* var : Iterator[nullable Object] */;
1443 short int var46 /* : Bool */;
1444 val* var47 /* : nullable Object */;
1445 val* var_c /* var c: nullable Object */;
1446 long var48 /* : Int */;
1447 short int var50 /* : Bool */;
1448 int cltype51;
1449 int idtype52;
1450 const char* var_class_name53;
1451 long var54 /* : Int */;
1452 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[E] */
1453 /* <p0:Collection[nullable Object]> isa Collection[E] */
1454 type_struct = self->type->resolution_table->types[COLOR_standard__Collection__standard__AbstractArray___35dE];
1455 cltype = type_struct->color;
1456 idtype = type_struct->id;
1457 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
1458 var = 0;
1459 } else {
1460 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
1461 }
1462 if (unlikely(!var)) {
1463 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
1464 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
1465 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 249);
1466 fatal_exit(1);
1467 }
1468 var_coll = p0;
1469 var_pos = p1;
1470 {
1471 var1 = ((long(*)(val* self))((((long)var_coll&3)?class_info[((long)var_coll&3)]:var_coll->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(var_coll); /* length on <var_coll:Collection[nullable Object]>*/
1472 }
1473 var_l = var1;
1474 {
1475 { /* Inline kernel#Int#== (var_l,0l) on <var_l:Int> */
1476 var4 = var_l == 0l;
1477 var2 = var4;
1478 goto RET_LABEL3;
1479 RET_LABEL3:(void)0;
1480 }
1481 }
1482 if (var2){
1483 goto RET_LABEL;
1484 } else {
1485 }
1486 {
1487 var5 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1488 }
1489 {
1490 { /* Inline kernel#Int#+ (var5,var_l) on <var5:Int> */
1491 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1492 /* <var_l:Int> isa OTHER */
1493 var8 = 1; /* easy <var_l:Int> isa OTHER*/
1494 if (unlikely(!var8)) {
1495 var_class_name11 = type_standard__Int.name;
1496 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
1497 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1498 fatal_exit(1);
1499 }
1500 var12 = var5 + var_l;
1501 var6 = var12;
1502 goto RET_LABEL7;
1503 RET_LABEL7:(void)0;
1504 }
1505 }
1506 {
1507 ((void(*)(val* self, long p0))(self->class->vft[COLOR_standard__array__AbstractArray__enlarge]))(self, var6); /* enlarge on <self:AbstractArray[nullable Object]>*/
1508 }
1509 var_ = self;
1510 var13 = var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_:AbstractArray[nullable Object]> */
1511 {
1512 { /* Inline kernel#Int#+ (var13,var_l) on <var13:Int> */
1513 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1514 /* <var_l:Int> isa OTHER */
1515 var16 = 1; /* easy <var_l:Int> isa OTHER*/
1516 if (unlikely(!var16)) {
1517 var_class_name19 = type_standard__Int.name;
1518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
1519 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1520 fatal_exit(1);
1521 }
1522 var20 = var13 + var_l;
1523 var14 = var20;
1524 goto RET_LABEL15;
1525 RET_LABEL15:(void)0;
1526 }
1527 }
1528 var_->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var14; /* _length on <var_:AbstractArray[nullable Object]> */
1529 {
1530 var21 = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1531 }
1532 {
1533 { /* Inline kernel#Int#- (var21,var_pos) on <var21:Int> */
1534 /* Covariant cast for argument 0 (i) <var_pos:Int> isa OTHER */
1535 /* <var_pos:Int> isa OTHER */
1536 var24 = 1; /* easy <var_pos:Int> isa OTHER*/
1537 if (unlikely(!var24)) {
1538 var_class_name27 = type_standard__Int.name;
1539 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
1540 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1541 fatal_exit(1);
1542 }
1543 var28 = var21 - var_pos;
1544 var22 = var28;
1545 goto RET_LABEL23;
1546 RET_LABEL23:(void)0;
1547 }
1548 }
1549 {
1550 { /* Inline kernel#Int#- (var22,var_l) on <var22:Int> */
1551 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1552 /* <var_l:Int> isa OTHER */
1553 var31 = 1; /* easy <var_l:Int> isa OTHER*/
1554 if (unlikely(!var31)) {
1555 var_class_name34 = type_standard__Int.name;
1556 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
1557 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1558 fatal_exit(1);
1559 }
1560 var35 = var22 - var_l;
1561 var29 = var35;
1562 goto RET_LABEL30;
1563 RET_LABEL30:(void)0;
1564 }
1565 }
1566 {
1567 { /* Inline kernel#Int#+ (var_pos,var_l) on <var_pos:Int> */
1568 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1569 /* <var_l:Int> isa OTHER */
1570 var38 = 1; /* easy <var_l:Int> isa OTHER*/
1571 if (unlikely(!var38)) {
1572 var_class_name41 = type_standard__Int.name;
1573 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name41);
1574 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1575 fatal_exit(1);
1576 }
1577 var42 = var_pos + var_l;
1578 var36 = var42;
1579 goto RET_LABEL37;
1580 RET_LABEL37:(void)0;
1581 }
1582 }
1583 {
1584 standard___standard__AbstractArrayRead___copy_to(self, var_pos, var29, self, var36); /* Direct call array#AbstractArrayRead#copy_to on <self:AbstractArray[nullable Object]>*/
1585 }
1586 var_43 = var_coll;
1587 {
1588 var44 = ((val*(*)(val* self))((((long)var_43&3)?class_info[((long)var_43&3)]:var_43->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_43); /* iterator on <var_43:Collection[nullable Object]>*/
1589 }
1590 var_45 = var44;
1591 for(;;) {
1592 {
1593 var46 = ((short int(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_45); /* is_ok on <var_45:Iterator[nullable Object]>*/
1594 }
1595 if (var46){
1596 {
1597 var47 = ((val*(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_45); /* item on <var_45:Iterator[nullable Object]>*/
1598 }
1599 var_c = var47;
1600 {
1601 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var_pos, var_c); /* []= on <self:AbstractArray[nullable Object]>*/
1602 }
1603 {
1604 { /* Inline kernel#Int#+ (var_pos,1l) on <var_pos:Int> */
1605 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1606 /* <1l:Int> isa OTHER */
1607 var50 = 1; /* easy <1l:Int> isa OTHER*/
1608 if (unlikely(!var50)) {
1609 var_class_name53 = type_standard__Int.name;
1610 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
1611 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1612 fatal_exit(1);
1613 }
1614 var54 = var_pos + 1l;
1615 var48 = var54;
1616 goto RET_LABEL49;
1617 RET_LABEL49:(void)0;
1618 }
1619 }
1620 var_pos = var48;
1621 {
1622 ((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_45); /* next on <var_45:Iterator[nullable Object]>*/
1623 }
1624 } else {
1625 goto BREAK_label;
1626 }
1627 }
1628 BREAK_label: (void)0;
1629 {
1630 ((void(*)(val* self))((((long)var_45&3)?class_info[((long)var_45&3)]:var_45->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_45); /* finish on <var_45:Iterator[nullable Object]>*/
1631 }
1632 RET_LABEL:;
1633 }
1634 /* method array#AbstractArray#clear for (self: AbstractArray[nullable Object]) */
1635 void standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(val* self) {
1636 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = 0l; /* _length on <self:AbstractArray[nullable Object]> */
1637 RET_LABEL:;
1638 }
1639 /* method array#AbstractArray#remove for (self: AbstractArray[nullable Object], nullable Object) */
1640 void standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
1641 val* var_item /* var item: nullable Object */;
1642 long var /* : Int */;
1643 var_item = p0;
1644 {
1645 var = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(self, var_item);
1646 }
1647 {
1648 standard___standard__AbstractArray___standard__abstract_collection__Sequence__remove_at(self, var); /* Direct call array#AbstractArray#remove_at on <self:AbstractArray[nullable Object]>*/
1649 }
1650 RET_LABEL:;
1651 }
1652 /* method array#AbstractArray#remove_at for (self: AbstractArray[nullable Object], Int) */
1653 void standard___standard__AbstractArray___standard__abstract_collection__Sequence__remove_at(val* self, long p0) {
1654 long var_i /* var i: Int */;
1655 long var /* : Int */;
1656 long var_l /* var l: Int */;
1657 short int var1 /* : Bool */;
1658 short int var2 /* : Bool */;
1659 short int var4 /* : Bool */;
1660 int cltype;
1661 int idtype;
1662 const char* var_class_name;
1663 short int var5 /* : Bool */;
1664 short int var_ /* var : Bool */;
1665 short int var6 /* : Bool */;
1666 short int var8 /* : Bool */;
1667 int cltype9;
1668 int idtype10;
1669 const char* var_class_name11;
1670 short int var12 /* : Bool */;
1671 long var13 /* : Int */;
1672 short int var15 /* : Bool */;
1673 int cltype16;
1674 int idtype17;
1675 const char* var_class_name18;
1676 long var19 /* : Int */;
1677 long var_j /* var j: Int */;
1678 short int var20 /* : Bool */;
1679 short int var22 /* : Bool */;
1680 int cltype23;
1681 int idtype24;
1682 const char* var_class_name25;
1683 short int var26 /* : Bool */;
1684 long var27 /* : Int */;
1685 short int var29 /* : Bool */;
1686 int cltype30;
1687 int idtype31;
1688 const char* var_class_name32;
1689 long var33 /* : Int */;
1690 val* var34 /* : nullable Object */;
1691 long var35 /* : Int */;
1692 short int var37 /* : Bool */;
1693 int cltype38;
1694 int idtype39;
1695 const char* var_class_name40;
1696 long var41 /* : Int */;
1697 long var42 /* : Int */;
1698 short int var44 /* : Bool */;
1699 int cltype45;
1700 int idtype46;
1701 const char* var_class_name47;
1702 long var48 /* : Int */;
1703 var_i = p0;
1704 {
1705 var = ((long(*)(val* self))(self->class->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:AbstractArray[nullable Object]>*/
1706 }
1707 var_l = var;
1708 {
1709 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
1710 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1711 /* <0l:Int> isa OTHER */
1712 var4 = 1; /* easy <0l:Int> isa OTHER*/
1713 if (unlikely(!var4)) {
1714 var_class_name = type_standard__Int.name;
1715 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1716 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
1717 fatal_exit(1);
1718 }
1719 var5 = var_i >= 0l;
1720 var2 = var5;
1721 goto RET_LABEL3;
1722 RET_LABEL3:(void)0;
1723 }
1724 }
1725 var_ = var2;
1726 if (var2){
1727 {
1728 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
1729 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1730 /* <var_l:Int> isa OTHER */
1731 var8 = 1; /* easy <var_l:Int> isa OTHER*/
1732 if (unlikely(!var8)) {
1733 var_class_name11 = type_standard__Int.name;
1734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
1735 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1736 fatal_exit(1);
1737 }
1738 var12 = var_i < var_l;
1739 var6 = var12;
1740 goto RET_LABEL7;
1741 RET_LABEL7:(void)0;
1742 }
1743 }
1744 var1 = var6;
1745 } else {
1746 var1 = var_;
1747 }
1748 if (var1){
1749 {
1750 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
1751 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1752 /* <1l:Int> isa OTHER */
1753 var15 = 1; /* easy <1l:Int> isa OTHER*/
1754 if (unlikely(!var15)) {
1755 var_class_name18 = type_standard__Int.name;
1756 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name18);
1757 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1758 fatal_exit(1);
1759 }
1760 var19 = var_i + 1l;
1761 var13 = var19;
1762 goto RET_LABEL14;
1763 RET_LABEL14:(void)0;
1764 }
1765 }
1766 var_j = var13;
1767 for(;;) {
1768 {
1769 { /* Inline kernel#Int#< (var_j,var_l) on <var_j:Int> */
1770 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
1771 /* <var_l:Int> isa OTHER */
1772 var22 = 1; /* easy <var_l:Int> isa OTHER*/
1773 if (unlikely(!var22)) {
1774 var_class_name25 = type_standard__Int.name;
1775 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
1776 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1777 fatal_exit(1);
1778 }
1779 var26 = var_j < var_l;
1780 var20 = var26;
1781 goto RET_LABEL21;
1782 RET_LABEL21:(void)0;
1783 }
1784 }
1785 if (var20){
1786 {
1787 { /* Inline kernel#Int#- (var_j,1l) on <var_j:Int> */
1788 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1789 /* <1l:Int> isa OTHER */
1790 var29 = 1; /* easy <1l:Int> isa OTHER*/
1791 if (unlikely(!var29)) {
1792 var_class_name32 = type_standard__Int.name;
1793 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32);
1794 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1795 fatal_exit(1);
1796 }
1797 var33 = var_j - 1l;
1798 var27 = var33;
1799 goto RET_LABEL28;
1800 RET_LABEL28:(void)0;
1801 }
1802 }
1803 {
1804 var34 = ((val*(*)(val* self, long p0))(self->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(self, var_j); /* [] on <self:AbstractArray[nullable Object]>*/
1805 }
1806 {
1807 ((void(*)(val* self, long p0, val* p1))(self->class->vft[COLOR_standard__abstract_collection__Sequence___91d_93d_61d]))(self, var27, var34); /* []= on <self:AbstractArray[nullable Object]>*/
1808 }
1809 {
1810 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
1811 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1812 /* <1l:Int> isa OTHER */
1813 var37 = 1; /* easy <1l:Int> isa OTHER*/
1814 if (unlikely(!var37)) {
1815 var_class_name40 = type_standard__Int.name;
1816 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name40);
1817 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
1818 fatal_exit(1);
1819 }
1820 var41 = var_j + 1l;
1821 var35 = var41;
1822 goto RET_LABEL36;
1823 RET_LABEL36:(void)0;
1824 }
1825 }
1826 var_j = var35;
1827 } else {
1828 goto BREAK_label;
1829 }
1830 }
1831 BREAK_label: (void)0;
1832 {
1833 { /* Inline kernel#Int#- (var_l,1l) on <var_l:Int> */
1834 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1835 /* <1l:Int> isa OTHER */
1836 var44 = 1; /* easy <1l:Int> isa OTHER*/
1837 if (unlikely(!var44)) {
1838 var_class_name47 = type_standard__Int.name;
1839 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name47);
1840 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
1841 fatal_exit(1);
1842 }
1843 var48 = var_l - 1l;
1844 var42 = var48;
1845 goto RET_LABEL43;
1846 RET_LABEL43:(void)0;
1847 }
1848 }
1849 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var42; /* _length on <self:AbstractArray[nullable Object]> */
1850 } else {
1851 }
1852 RET_LABEL:;
1853 }
1854 /* method array#Array#[] for (self: Array[nullable Object], Int): nullable Object */
1855 val* standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(val* self, long p0) {
1856 val* var /* : nullable Object */;
1857 long var_index /* var index: Int */;
1858 short int var1 /* : Bool */;
1859 short int var2 /* : Bool */;
1860 short int var4 /* : Bool */;
1861 int cltype;
1862 int idtype;
1863 const char* var_class_name;
1864 short int var5 /* : Bool */;
1865 short int var_ /* var : Bool */;
1866 long var6 /* : Int */;
1867 short int var7 /* : Bool */;
1868 short int var9 /* : Bool */;
1869 int cltype10;
1870 int idtype11;
1871 const char* var_class_name12;
1872 short int var13 /* : Bool */;
1873 val* var14 /* : nullable NativeArray[nullable Object] */;
1874 val* var15 /* : nullable Object */;
1875 val* var17 /* : Object */;
1876 var_index = p0;
1877 {
1878 { /* Inline kernel#Int#>= (var_index,0l) on <var_index:Int> */
1879 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1880 /* <0l:Int> isa OTHER */
1881 var4 = 1; /* easy <0l:Int> isa OTHER*/
1882 if (unlikely(!var4)) {
1883 var_class_name = type_standard__Int.name;
1884 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
1885 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
1886 fatal_exit(1);
1887 }
1888 var5 = var_index >= 0l;
1889 var2 = var5;
1890 goto RET_LABEL3;
1891 RET_LABEL3:(void)0;
1892 }
1893 }
1894 var_ = var2;
1895 if (var2){
1896 var6 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
1897 {
1898 { /* Inline kernel#Int#< (var_index,var6) on <var_index:Int> */
1899 /* Covariant cast for argument 0 (i) <var6:Int> isa OTHER */
1900 /* <var6:Int> isa OTHER */
1901 var9 = 1; /* easy <var6:Int> isa OTHER*/
1902 if (unlikely(!var9)) {
1903 var_class_name12 = type_standard__Int.name;
1904 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name12);
1905 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
1906 fatal_exit(1);
1907 }
1908 var13 = var_index < var6;
1909 var7 = var13;
1910 goto RET_LABEL8;
1911 RET_LABEL8:(void)0;
1912 }
1913 }
1914 var1 = var7;
1915 } else {
1916 var1 = var_;
1917 }
1918 if (unlikely(!var1)) {
1919 PRINT_ERROR("Runtime error: %s", "Assert \'index\' failed");
1920 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 320);
1921 fatal_exit(1);
1922 }
1923 var14 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
1924 if (var14 == NULL) {
1925 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1926 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 321);
1927 fatal_exit(1);
1928 } else {
1929 { /* Inline array#NativeArray#[] (var14,var_index) on <var14:nullable NativeArray[nullable Object]> */
1930 var17 = ((struct instance_standard__NativeArray*)var14)->values[var_index];
1931 var15 = var17;
1932 goto RET_LABEL16;
1933 RET_LABEL16:(void)0;
1934 }
1935 }
1936 var = var15;
1937 goto RET_LABEL;
1938 RET_LABEL:;
1939 return var;
1940 }
1941 /* method array#Array#[]= for (self: Array[nullable Object], Int, nullable Object) */
1942 void standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(val* self, long p0, val* p1) {
1943 short int var /* : Bool */;
1944 int cltype;
1945 int idtype;
1946 const struct type* type_struct;
1947 short int is_nullable;
1948 const char* var_class_name;
1949 long var_index /* var index: Int */;
1950 val* var_item /* var item: nullable Object */;
1951 short int var1 /* : Bool */;
1952 short int var2 /* : Bool */;
1953 short int var4 /* : Bool */;
1954 int cltype5;
1955 int idtype6;
1956 const char* var_class_name7;
1957 short int var8 /* : Bool */;
1958 short int var_ /* var : Bool */;
1959 long var9 /* : Int */;
1960 long var10 /* : Int */;
1961 short int var12 /* : Bool */;
1962 int cltype13;
1963 int idtype14;
1964 const char* var_class_name15;
1965 long var16 /* : Int */;
1966 short int var17 /* : Bool */;
1967 short int var19 /* : Bool */;
1968 int cltype20;
1969 int idtype21;
1970 const char* var_class_name22;
1971 short int var23 /* : Bool */;
1972 long var24 /* : Int */;
1973 short int var25 /* : Bool */;
1974 short int var27 /* : Bool */;
1975 int cltype28;
1976 int idtype29;
1977 const char* var_class_name30;
1978 short int var31 /* : Bool */;
1979 long var32 /* : Int */;
1980 short int var34 /* : Bool */;
1981 int cltype35;
1982 int idtype36;
1983 const char* var_class_name37;
1984 long var38 /* : Int */;
1985 long var39 /* : Int */;
1986 short int var40 /* : Bool */;
1987 short int var42 /* : Bool */;
1988 int cltype43;
1989 int idtype44;
1990 const char* var_class_name45;
1991 short int var46 /* : Bool */;
1992 long var47 /* : Int */;
1993 short int var49 /* : Bool */;
1994 int cltype50;
1995 int idtype51;
1996 const char* var_class_name52;
1997 long var53 /* : Int */;
1998 val* var54 /* : nullable NativeArray[nullable Object] */;
1999 short int var56 /* : Bool */;
2000 int cltype57;
2001 int idtype58;
2002 const struct type* type_struct59;
2003 short int is_nullable60;
2004 const char* var_class_name61;
2005 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
2006 /* <p1:nullable Object> isa E */
2007 type_struct = self->type->resolution_table->types[COLOR_standard__Array___35dE];
2008 cltype = type_struct->color;
2009 idtype = type_struct->id;
2010 is_nullable = type_struct->is_nullable;
2011 if(p1 == NULL) {
2012 var = is_nullable;
2013 } else {
2014 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
2015 var = 0;
2016 } else {
2017 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
2018 }
2019 }
2020 if (unlikely(!var)) {
2021 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
2022 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
2023 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 324);
2024 fatal_exit(1);
2025 }
2026 var_index = p0;
2027 var_item = p1;
2028 {
2029 { /* Inline kernel#Int#>= (var_index,0l) on <var_index:Int> */
2030 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2031 /* <0l:Int> isa OTHER */
2032 var4 = 1; /* easy <0l:Int> isa OTHER*/
2033 if (unlikely(!var4)) {
2034 var_class_name7 = type_standard__Int.name;
2035 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name7);
2036 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
2037 fatal_exit(1);
2038 }
2039 var8 = var_index >= 0l;
2040 var2 = var8;
2041 goto RET_LABEL3;
2042 RET_LABEL3:(void)0;
2043 }
2044 }
2045 var_ = var2;
2046 if (var2){
2047 var9 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2048 {
2049 { /* Inline kernel#Int#+ (var9,1l) on <var9:Int> */
2050 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2051 /* <1l:Int> isa OTHER */
2052 var12 = 1; /* easy <1l:Int> isa OTHER*/
2053 if (unlikely(!var12)) {
2054 var_class_name15 = type_standard__Int.name;
2055 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
2056 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2057 fatal_exit(1);
2058 }
2059 var16 = var9 + 1l;
2060 var10 = var16;
2061 goto RET_LABEL11;
2062 RET_LABEL11:(void)0;
2063 }
2064 }
2065 {
2066 { /* Inline kernel#Int#< (var_index,var10) on <var_index:Int> */
2067 /* Covariant cast for argument 0 (i) <var10:Int> isa OTHER */
2068 /* <var10:Int> isa OTHER */
2069 var19 = 1; /* easy <var10:Int> isa OTHER*/
2070 if (unlikely(!var19)) {
2071 var_class_name22 = type_standard__Int.name;
2072 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
2073 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
2074 fatal_exit(1);
2075 }
2076 var23 = var_index < var10;
2077 var17 = var23;
2078 goto RET_LABEL18;
2079 RET_LABEL18:(void)0;
2080 }
2081 }
2082 var1 = var17;
2083 } else {
2084 var1 = var_;
2085 }
2086 if (unlikely(!var1)) {
2087 PRINT_ERROR("Runtime error: %s", "Assert \'index\' failed");
2088 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 326);
2089 fatal_exit(1);
2090 }
2091 var24 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2092 {
2093 { /* Inline kernel#Int#<= (var24,var_index) on <var24:Int> */
2094 /* Covariant cast for argument 0 (i) <var_index:Int> isa OTHER */
2095 /* <var_index:Int> isa OTHER */
2096 var27 = 1; /* easy <var_index:Int> isa OTHER*/
2097 if (unlikely(!var27)) {
2098 var_class_name30 = type_standard__Int.name;
2099 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
2100 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2101 fatal_exit(1);
2102 }
2103 var31 = var24 <= var_index;
2104 var25 = var31;
2105 goto RET_LABEL26;
2106 RET_LABEL26:(void)0;
2107 }
2108 }
2109 if (var25){
2110 {
2111 { /* Inline kernel#Int#+ (var_index,1l) on <var_index:Int> */
2112 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2113 /* <1l:Int> isa OTHER */
2114 var34 = 1; /* easy <1l:Int> isa OTHER*/
2115 if (unlikely(!var34)) {
2116 var_class_name37 = type_standard__Int.name;
2117 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name37);
2118 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2119 fatal_exit(1);
2120 }
2121 var38 = var_index + 1l;
2122 var32 = var38;
2123 goto RET_LABEL33;
2124 RET_LABEL33:(void)0;
2125 }
2126 }
2127 {
2128 standard___standard__Array___AbstractArray__enlarge(self, var32); /* Direct call array#Array#enlarge on <self:Array[nullable Object]>*/
2129 }
2130 } else {
2131 }
2132 var39 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2133 {
2134 { /* Inline kernel#Int#<= (var39,var_index) on <var39:Int> */
2135 /* Covariant cast for argument 0 (i) <var_index:Int> isa OTHER */
2136 /* <var_index:Int> isa OTHER */
2137 var42 = 1; /* easy <var_index:Int> isa OTHER*/
2138 if (unlikely(!var42)) {
2139 var_class_name45 = type_standard__Int.name;
2140 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
2141 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2142 fatal_exit(1);
2143 }
2144 var46 = var39 <= var_index;
2145 var40 = var46;
2146 goto RET_LABEL41;
2147 RET_LABEL41:(void)0;
2148 }
2149 }
2150 if (var40){
2151 {
2152 { /* Inline kernel#Int#+ (var_index,1l) on <var_index:Int> */
2153 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2154 /* <1l:Int> isa OTHER */
2155 var49 = 1; /* easy <1l:Int> isa OTHER*/
2156 if (unlikely(!var49)) {
2157 var_class_name52 = type_standard__Int.name;
2158 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
2159 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2160 fatal_exit(1);
2161 }
2162 var53 = var_index + 1l;
2163 var47 = var53;
2164 goto RET_LABEL48;
2165 RET_LABEL48:(void)0;
2166 }
2167 }
2168 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var47; /* _length on <self:Array[nullable Object]> */
2169 } else {
2170 }
2171 var54 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2172 if (var54 == NULL) {
2173 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2174 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 333);
2175 fatal_exit(1);
2176 } else {
2177 { /* Inline array#NativeArray#[]= (var54,var_index,var_item) on <var54:nullable NativeArray[nullable Object]> */
2178 /* Covariant cast for argument 1 (item) <var_item:nullable Object> isa E */
2179 /* <var_item:nullable Object> isa E */
2180 type_struct59 = var54->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
2181 cltype57 = type_struct59->color;
2182 idtype58 = type_struct59->id;
2183 is_nullable60 = type_struct59->is_nullable;
2184 if(var_item == NULL) {
2185 var56 = is_nullable60;
2186 } else {
2187 if(cltype57 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
2188 var56 = 0;
2189 } else {
2190 var56 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype57] == idtype58;
2191 }
2192 }
2193 if (unlikely(!var56)) {
2194 var_class_name61 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
2195 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name61);
2196 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957);
2197 fatal_exit(1);
2198 }
2199 ((struct instance_standard__NativeArray*)var54)->values[var_index]=var_item;
2200 RET_LABEL55:(void)0;
2201 }
2202 }
2203 RET_LABEL:;
2204 }
2205 /* method array#Array#add for (self: Array[nullable Object], nullable Object) */
2206 void standard___standard__Array___standard__abstract_collection__SimpleCollection__add(val* self, val* p0) {
2207 short int var /* : Bool */;
2208 int cltype;
2209 int idtype;
2210 const struct type* type_struct;
2211 short int is_nullable;
2212 const char* var_class_name;
2213 val* var_item /* var item: nullable Object */;
2214 long var1 /* : Int */;
2215 long var_l /* var l: Int */;
2216 long var2 /* : Int */;
2217 short int var3 /* : Bool */;
2218 short int var5 /* : Bool */;
2219 int cltype6;
2220 int idtype7;
2221 const char* var_class_name8;
2222 short int var9 /* : Bool */;
2223 long var10 /* : Int */;
2224 short int var12 /* : Bool */;
2225 int cltype13;
2226 int idtype14;
2227 const char* var_class_name15;
2228 long var16 /* : Int */;
2229 long var17 /* : Int */;
2230 short int var19 /* : Bool */;
2231 int cltype20;
2232 int idtype21;
2233 const char* var_class_name22;
2234 long var23 /* : Int */;
2235 val* var24 /* : nullable NativeArray[nullable Object] */;
2236 short int var26 /* : Bool */;
2237 int cltype27;
2238 int idtype28;
2239 const struct type* type_struct29;
2240 short int is_nullable30;
2241 const char* var_class_name31;
2242 /* Covariant cast for argument 0 (item) <p0:nullable Object> isa E */
2243 /* <p0:nullable Object> isa E */
2244 type_struct = self->type->resolution_table->types[COLOR_standard__Array___35dE];
2245 cltype = type_struct->color;
2246 idtype = type_struct->id;
2247 is_nullable = type_struct->is_nullable;
2248 if(p0 == NULL) {
2249 var = is_nullable;
2250 } else {
2251 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2252 var = 0;
2253 } else {
2254 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2255 }
2256 }
2257 if (unlikely(!var)) {
2258 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2259 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
2260 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 336);
2261 fatal_exit(1);
2262 }
2263 var_item = p0;
2264 var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2265 var_l = var1;
2266 var2 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2267 {
2268 { /* Inline kernel#Int#<= (var2,var_l) on <var2:Int> */
2269 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
2270 /* <var_l:Int> isa OTHER */
2271 var5 = 1; /* easy <var_l:Int> isa OTHER*/
2272 if (unlikely(!var5)) {
2273 var_class_name8 = type_standard__Int.name;
2274 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
2275 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2276 fatal_exit(1);
2277 }
2278 var9 = var2 <= var_l;
2279 var3 = var9;
2280 goto RET_LABEL4;
2281 RET_LABEL4:(void)0;
2282 }
2283 }
2284 if (var3){
2285 {
2286 { /* Inline kernel#Int#+ (var_l,1l) on <var_l:Int> */
2287 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2288 /* <1l:Int> isa OTHER */
2289 var12 = 1; /* easy <1l:Int> isa OTHER*/
2290 if (unlikely(!var12)) {
2291 var_class_name15 = type_standard__Int.name;
2292 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name15);
2293 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2294 fatal_exit(1);
2295 }
2296 var16 = var_l + 1l;
2297 var10 = var16;
2298 goto RET_LABEL11;
2299 RET_LABEL11:(void)0;
2300 }
2301 }
2302 {
2303 standard___standard__Array___AbstractArray__enlarge(self, var10); /* Direct call array#Array#enlarge on <self:Array[nullable Object]>*/
2304 }
2305 } else {
2306 }
2307 {
2308 { /* Inline kernel#Int#+ (var_l,1l) on <var_l:Int> */
2309 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2310 /* <1l:Int> isa OTHER */
2311 var19 = 1; /* easy <1l:Int> isa OTHER*/
2312 if (unlikely(!var19)) {
2313 var_class_name22 = type_standard__Int.name;
2314 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name22);
2315 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2316 fatal_exit(1);
2317 }
2318 var23 = var_l + 1l;
2319 var17 = var23;
2320 goto RET_LABEL18;
2321 RET_LABEL18:(void)0;
2322 }
2323 }
2324 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var17; /* _length on <self:Array[nullable Object]> */
2325 var24 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2326 if (var24 == NULL) {
2327 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2328 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 343);
2329 fatal_exit(1);
2330 } else {
2331 { /* Inline array#NativeArray#[]= (var24,var_l,var_item) on <var24:nullable NativeArray[nullable Object]> */
2332 /* Covariant cast for argument 1 (item) <var_item:nullable Object> isa E */
2333 /* <var_item:nullable Object> isa E */
2334 type_struct29 = var24->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
2335 cltype27 = type_struct29->color;
2336 idtype28 = type_struct29->id;
2337 is_nullable30 = type_struct29->is_nullable;
2338 if(var_item == NULL) {
2339 var26 = is_nullable30;
2340 } else {
2341 if(cltype27 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
2342 var26 = 0;
2343 } else {
2344 var26 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype27] == idtype28;
2345 }
2346 }
2347 if (unlikely(!var26)) {
2348 var_class_name31 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
2349 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name31);
2350 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957);
2351 fatal_exit(1);
2352 }
2353 ((struct instance_standard__NativeArray*)var24)->values[var_l]=var_item;
2354 RET_LABEL25:(void)0;
2355 }
2356 }
2357 RET_LABEL:;
2358 }
2359 /* method array#Array#add_all for (self: Array[nullable Object], Collection[nullable Object]) */
2360 void standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(val* self, val* p0) {
2361 short int var /* : Bool */;
2362 int cltype;
2363 int idtype;
2364 const struct type* type_struct;
2365 const char* var_class_name;
2366 val* var_items /* var items: Collection[nullable Object] */;
2367 long var1 /* : Int */;
2368 long var_l /* var l: Int */;
2369 long var2 /* : Int */;
2370 long var3 /* : Int */;
2371 short int var5 /* : Bool */;
2372 int cltype6;
2373 int idtype7;
2374 const char* var_class_name8;
2375 long var9 /* : Int */;
2376 long var_nl /* var nl: Int */;
2377 long var10 /* : Int */;
2378 short int var11 /* : Bool */;
2379 short int var13 /* : Bool */;
2380 int cltype14;
2381 int idtype15;
2382 const char* var_class_name16;
2383 short int var17 /* : Bool */;
2384 short int var18 /* : Bool */;
2385 int cltype19;
2386 int idtype20;
2387 const struct type* type_struct21;
2388 long var_k /* var k: Int */;
2389 short int var22 /* : Bool */;
2390 short int var24 /* : Bool */;
2391 int cltype25;
2392 int idtype26;
2393 const char* var_class_name27;
2394 short int var28 /* : Bool */;
2395 val* var29 /* : nullable NativeArray[nullable Object] */;
2396 val* var30 /* : nullable NativeArray[nullable Object] */;
2397 val* var31 /* : nullable Object */;
2398 val* var33 /* : Object */;
2399 short int var35 /* : Bool */;
2400 int cltype36;
2401 int idtype37;
2402 const struct type* type_struct38;
2403 short int is_nullable;
2404 const char* var_class_name39;
2405 long var40 /* : Int */;
2406 short int var42 /* : Bool */;
2407 int cltype43;
2408 int idtype44;
2409 const char* var_class_name45;
2410 long var46 /* : Int */;
2411 long var47 /* : Int */;
2412 short int var49 /* : Bool */;
2413 int cltype50;
2414 int idtype51;
2415 const char* var_class_name52;
2416 long var53 /* : Int */;
2417 val* var_ /* var : Collection[nullable Object] */;
2418 val* var54 /* : Iterator[nullable Object] */;
2419 val* var_55 /* var : Iterator[nullable Object] */;
2420 short int var56 /* : Bool */;
2421 val* var57 /* : nullable Object */;
2422 val* var_item /* var item: nullable Object */;
2423 val* var58 /* : nullable NativeArray[nullable Object] */;
2424 short int var60 /* : Bool */;
2425 int cltype61;
2426 int idtype62;
2427 const struct type* type_struct63;
2428 short int is_nullable64;
2429 const char* var_class_name65;
2430 long var66 /* : Int */;
2431 short int var68 /* : Bool */;
2432 int cltype69;
2433 int idtype70;
2434 const char* var_class_name71;
2435 long var72 /* : Int */;
2436 /* Covariant cast for argument 0 (items) <p0:Collection[nullable Object]> isa Collection[E] */
2437 /* <p0:Collection[nullable Object]> isa Collection[E] */
2438 type_struct = self->type->resolution_table->types[COLOR_standard__Collection__standard__Array___35dE];
2439 cltype = type_struct->color;
2440 idtype = type_struct->id;
2441 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2442 var = 0;
2443 } else {
2444 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2445 }
2446 if (unlikely(!var)) {
2447 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2448 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Collection[E]", var_class_name);
2449 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 346);
2450 fatal_exit(1);
2451 }
2452 var_items = p0;
2453 var1 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2454 var_l = var1;
2455 {
2456 var2 = ((long(*)(val* self))((((long)var_items&3)?class_info[((long)var_items&3)]:var_items->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(var_items); /* length on <var_items:Collection[nullable Object]>*/
2457 }
2458 {
2459 { /* Inline kernel#Int#+ (var_l,var2) on <var_l:Int> */
2460 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
2461 /* <var2:Int> isa OTHER */
2462 var5 = 1; /* easy <var2:Int> isa OTHER*/
2463 if (unlikely(!var5)) {
2464 var_class_name8 = type_standard__Int.name;
2465 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
2466 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2467 fatal_exit(1);
2468 }
2469 var9 = var_l + var2;
2470 var3 = var9;
2471 goto RET_LABEL4;
2472 RET_LABEL4:(void)0;
2473 }
2474 }
2475 var_nl = var3;
2476 var10 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2477 {
2478 { /* Inline kernel#Int#< (var10,var_nl) on <var10:Int> */
2479 /* Covariant cast for argument 0 (i) <var_nl:Int> isa OTHER */
2480 /* <var_nl:Int> isa OTHER */
2481 var13 = 1; /* easy <var_nl:Int> isa OTHER*/
2482 if (unlikely(!var13)) {
2483 var_class_name16 = type_standard__Int.name;
2484 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
2485 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
2486 fatal_exit(1);
2487 }
2488 var17 = var10 < var_nl;
2489 var11 = var17;
2490 goto RET_LABEL12;
2491 RET_LABEL12:(void)0;
2492 }
2493 }
2494 if (var11){
2495 {
2496 standard___standard__Array___AbstractArray__enlarge(self, var_nl); /* Direct call array#Array#enlarge on <self:Array[nullable Object]>*/
2497 }
2498 } else {
2499 }
2500 /* <var_items:Collection[nullable Object]> isa Array[E] */
2501 type_struct21 = self->type->resolution_table->types[COLOR_standard__Array__standard__Array___35dE];
2502 cltype19 = type_struct21->color;
2503 idtype20 = type_struct21->id;
2504 if(cltype19 >= (((long)var_items&3)?type_info[((long)var_items&3)]:var_items->type)->table_size) {
2505 var18 = 0;
2506 } else {
2507 var18 = (((long)var_items&3)?type_info[((long)var_items&3)]:var_items->type)->type_table[cltype19] == idtype20;
2508 }
2509 if (var18){
2510 var_k = 0l;
2511 for(;;) {
2512 {
2513 { /* Inline kernel#Int#< (var_l,var_nl) on <var_l:Int> */
2514 /* Covariant cast for argument 0 (i) <var_nl:Int> isa OTHER */
2515 /* <var_nl:Int> isa OTHER */
2516 var24 = 1; /* easy <var_nl:Int> isa OTHER*/
2517 if (unlikely(!var24)) {
2518 var_class_name27 = type_standard__Int.name;
2519 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
2520 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
2521 fatal_exit(1);
2522 }
2523 var28 = var_l < var_nl;
2524 var22 = var28;
2525 goto RET_LABEL23;
2526 RET_LABEL23:(void)0;
2527 }
2528 }
2529 if (var22){
2530 var29 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2531 var30 = var_items->attrs[COLOR_standard__array__Array___items].val; /* _items on <var_items:Collection[nullable Object](Array[nullable Object])> */
2532 if (var30 == NULL) {
2533 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2534 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 358);
2535 fatal_exit(1);
2536 } else {
2537 { /* Inline array#NativeArray#[] (var30,var_k) on <var30:nullable NativeArray[nullable Object]> */
2538 var33 = ((struct instance_standard__NativeArray*)var30)->values[var_k];
2539 var31 = var33;
2540 goto RET_LABEL32;
2541 RET_LABEL32:(void)0;
2542 }
2543 }
2544 if (var29 == NULL) {
2545 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2546 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 358);
2547 fatal_exit(1);
2548 } else {
2549 { /* Inline array#NativeArray#[]= (var29,var_l,var31) on <var29:nullable NativeArray[nullable Object]> */
2550 /* Covariant cast for argument 1 (item) <var31:nullable Object> isa E */
2551 /* <var31:nullable Object> isa E */
2552 type_struct38 = var29->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
2553 cltype36 = type_struct38->color;
2554 idtype37 = type_struct38->id;
2555 is_nullable = type_struct38->is_nullable;
2556 if(var31 == NULL) {
2557 var35 = is_nullable;
2558 } else {
2559 if(cltype36 >= (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->table_size) {
2560 var35 = 0;
2561 } else {
2562 var35 = (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->type_table[cltype36] == idtype37;
2563 }
2564 }
2565 if (unlikely(!var35)) {
2566 var_class_name39 = var31 == NULL ? "null" : (((long)var31&3)?type_info[((long)var31&3)]:var31->type)->name;
2567 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name39);
2568 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957);
2569 fatal_exit(1);
2570 }
2571 ((struct instance_standard__NativeArray*)var29)->values[var_l]=var31;
2572 RET_LABEL34:(void)0;
2573 }
2574 }
2575 {
2576 { /* Inline kernel#Int#+ (var_l,1l) on <var_l:Int> */
2577 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2578 /* <1l:Int> isa OTHER */
2579 var42 = 1; /* easy <1l:Int> isa OTHER*/
2580 if (unlikely(!var42)) {
2581 var_class_name45 = type_standard__Int.name;
2582 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
2583 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2584 fatal_exit(1);
2585 }
2586 var46 = var_l + 1l;
2587 var40 = var46;
2588 goto RET_LABEL41;
2589 RET_LABEL41:(void)0;
2590 }
2591 }
2592 var_l = var40;
2593 {
2594 { /* Inline kernel#Int#+ (var_k,1l) on <var_k:Int> */
2595 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2596 /* <1l:Int> isa OTHER */
2597 var49 = 1; /* easy <1l:Int> isa OTHER*/
2598 if (unlikely(!var49)) {
2599 var_class_name52 = type_standard__Int.name;
2600 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name52);
2601 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2602 fatal_exit(1);
2603 }
2604 var53 = var_k + 1l;
2605 var47 = var53;
2606 goto RET_LABEL48;
2607 RET_LABEL48:(void)0;
2608 }
2609 }
2610 var_k = var47;
2611 } else {
2612 goto BREAK_label;
2613 }
2614 }
2615 BREAK_label: (void)0;
2616 } else {
2617 var_ = var_items;
2618 {
2619 var54 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:Collection[nullable Object]>*/
2620 }
2621 var_55 = var54;
2622 for(;;) {
2623 {
2624 var56 = ((short int(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_55); /* is_ok on <var_55:Iterator[nullable Object]>*/
2625 }
2626 if (var56){
2627 {
2628 var57 = ((val*(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_55); /* item on <var_55:Iterator[nullable Object]>*/
2629 }
2630 var_item = var57;
2631 var58 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2632 if (var58 == NULL) {
2633 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2634 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 364);
2635 fatal_exit(1);
2636 } else {
2637 { /* Inline array#NativeArray#[]= (var58,var_l,var_item) on <var58:nullable NativeArray[nullable Object]> */
2638 /* Covariant cast for argument 1 (item) <var_item:nullable Object> isa E */
2639 /* <var_item:nullable Object> isa E */
2640 type_struct63 = var58->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
2641 cltype61 = type_struct63->color;
2642 idtype62 = type_struct63->id;
2643 is_nullable64 = type_struct63->is_nullable;
2644 if(var_item == NULL) {
2645 var60 = is_nullable64;
2646 } else {
2647 if(cltype61 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
2648 var60 = 0;
2649 } else {
2650 var60 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype61] == idtype62;
2651 }
2652 }
2653 if (unlikely(!var60)) {
2654 var_class_name65 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
2655 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name65);
2656 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957);
2657 fatal_exit(1);
2658 }
2659 ((struct instance_standard__NativeArray*)var58)->values[var_l]=var_item;
2660 RET_LABEL59:(void)0;
2661 }
2662 }
2663 {
2664 { /* Inline kernel#Int#+ (var_l,1l) on <var_l:Int> */
2665 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2666 /* <1l:Int> isa OTHER */
2667 var68 = 1; /* easy <1l:Int> isa OTHER*/
2668 if (unlikely(!var68)) {
2669 var_class_name71 = type_standard__Int.name;
2670 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name71);
2671 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2672 fatal_exit(1);
2673 }
2674 var72 = var_l + 1l;
2675 var66 = var72;
2676 goto RET_LABEL67;
2677 RET_LABEL67:(void)0;
2678 }
2679 }
2680 var_l = var66;
2681 {
2682 ((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_55); /* next on <var_55:Iterator[nullable Object]>*/
2683 }
2684 } else {
2685 goto BREAK_label73;
2686 }
2687 }
2688 BREAK_label73: (void)0;
2689 {
2690 ((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_standard__abstract_collection__Iterator__finish]))(var_55); /* finish on <var_55:Iterator[nullable Object]>*/
2691 }
2692 }
2693 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var_nl; /* _length on <self:Array[nullable Object]> */
2694 RET_LABEL:;
2695 }
2696 /* method array#Array#enlarge for (self: Array[nullable Object], Int) */
2697 void standard___standard__Array___AbstractArray__enlarge(val* self, long p0) {
2698 long var_cap /* var cap: Int */;
2699 long var /* : Int */;
2700 long var_c /* var c: Int */;
2701 short int var1 /* : Bool */;
2702 short int var3 /* : Bool */;
2703 int cltype;
2704 int idtype;
2705 const char* var_class_name;
2706 short int var4 /* : Bool */;
2707 short int var5 /* : Bool */;
2708 short int var7 /* : Bool */;
2709 int cltype8;
2710 int idtype9;
2711 const char* var_class_name10;
2712 short int var11 /* : Bool */;
2713 long var12 /* : Int */;
2714 short int var14 /* : Bool */;
2715 int cltype15;
2716 int idtype16;
2717 const char* var_class_name17;
2718 long var18 /* : Int */;
2719 long var19 /* : Int */;
2720 short int var21 /* : Bool */;
2721 int cltype22;
2722 int idtype23;
2723 const char* var_class_name24;
2724 long var25 /* : Int */;
2725 val* var26 /* : NativeArray[nullable Object] */;
2726 val* var_a /* var a: NativeArray[nullable Object] */;
2727 long var27 /* : Int */;
2728 short int var28 /* : Bool */;
2729 short int var30 /* : Bool */;
2730 int cltype31;
2731 int idtype32;
2732 const char* var_class_name33;
2733 short int var34 /* : Bool */;
2734 val* var35 /* : nullable NativeArray[nullable Object] */;
2735 long var36 /* : Int */;
2736 short int var38 /* : Bool */;
2737 int cltype39;
2738 int idtype40;
2739 const struct type* type_struct;
2740 const char* var_class_name41;
2741 var_cap = p0;
2742 var = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2743 var_c = var;
2744 {
2745 { /* Inline kernel#Int#<= (var_cap,var_c) on <var_cap:Int> */
2746 /* Covariant cast for argument 0 (i) <var_c:Int> isa OTHER */
2747 /* <var_c:Int> isa OTHER */
2748 var3 = 1; /* easy <var_c:Int> isa OTHER*/
2749 if (unlikely(!var3)) {
2750 var_class_name = type_standard__Int.name;
2751 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2752 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2753 fatal_exit(1);
2754 }
2755 var4 = var_cap <= var_c;
2756 var1 = var4;
2757 goto RET_LABEL2;
2758 RET_LABEL2:(void)0;
2759 }
2760 }
2761 if (var1){
2762 goto RET_LABEL;
2763 } else {
2764 }
2765 for(;;) {
2766 {
2767 { /* Inline kernel#Int#<= (var_c,var_cap) on <var_c:Int> */
2768 /* Covariant cast for argument 0 (i) <var_cap:Int> isa OTHER */
2769 /* <var_cap:Int> isa OTHER */
2770 var7 = 1; /* easy <var_cap:Int> isa OTHER*/
2771 if (unlikely(!var7)) {
2772 var_class_name10 = type_standard__Int.name;
2773 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
2774 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 533);
2775 fatal_exit(1);
2776 }
2777 var11 = var_c <= var_cap;
2778 var5 = var11;
2779 goto RET_LABEL6;
2780 RET_LABEL6:(void)0;
2781 }
2782 }
2783 if (var5){
2784 {
2785 { /* Inline kernel#Int#* (var_c,2l) on <var_c:Int> */
2786 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
2787 /* <2l:Int> isa OTHER */
2788 var14 = 1; /* easy <2l:Int> isa OTHER*/
2789 if (unlikely(!var14)) {
2790 var_class_name17 = type_standard__Int.name;
2791 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17);
2792 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 541);
2793 fatal_exit(1);
2794 }
2795 var18 = var_c * 2l;
2796 var12 = var18;
2797 goto RET_LABEL13;
2798 RET_LABEL13:(void)0;
2799 }
2800 }
2801 {
2802 { /* Inline kernel#Int#+ (var12,2l) on <var12:Int> */
2803 /* Covariant cast for argument 0 (i) <2l:Int> isa OTHER */
2804 /* <2l:Int> isa OTHER */
2805 var21 = 1; /* easy <2l:Int> isa OTHER*/
2806 if (unlikely(!var21)) {
2807 var_class_name24 = type_standard__Int.name;
2808 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name24);
2809 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
2810 fatal_exit(1);
2811 }
2812 var25 = var12 + 2l;
2813 var19 = var25;
2814 goto RET_LABEL20;
2815 RET_LABEL20:(void)0;
2816 }
2817 }
2818 var_c = var19;
2819 } else {
2820 goto BREAK_label;
2821 }
2822 }
2823 BREAK_label: (void)0;
2824 var26 = NEW_standard__NativeArray(var_c, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]);
2825 var_a = var26;
2826 var27 = self->attrs[COLOR_standard__array__Array___capacity].l; /* _capacity on <self:Array[nullable Object]> */
2827 {
2828 { /* Inline kernel#Int#> (var27,0l) on <var27:Int> */
2829 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2830 /* <0l:Int> isa OTHER */
2831 var30 = 1; /* easy <0l:Int> isa OTHER*/
2832 if (unlikely(!var30)) {
2833 var_class_name33 = type_standard__Int.name;
2834 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name33);
2835 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
2836 fatal_exit(1);
2837 }
2838 var34 = var27 > 0l;
2839 var28 = var34;
2840 goto RET_LABEL29;
2841 RET_LABEL29:(void)0;
2842 }
2843 }
2844 if (var28){
2845 var35 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
2846 var36 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
2847 if (var35 == NULL) {
2848 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2849 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 378);
2850 fatal_exit(1);
2851 } else {
2852 { /* Inline array#NativeArray#copy_to (var35,var_a,var36) on <var35:nullable NativeArray[nullable Object]> */
2853 /* Covariant cast for argument 0 (dest) <var_a:NativeArray[nullable Object]> isa NativeArray[E] */
2854 /* <var_a:NativeArray[nullable Object]> isa NativeArray[E] */
2855 type_struct = var35->type->resolution_table->types[COLOR_standard__NativeArray__standard__NativeArray___35dE];
2856 cltype39 = type_struct->color;
2857 idtype40 = type_struct->id;
2858 if(cltype39 >= var_a->type->table_size) {
2859 var38 = 0;
2860 } else {
2861 var38 = var_a->type->type_table[cltype39] == idtype40;
2862 }
2863 if (unlikely(!var38)) {
2864 var_class_name41 = var_a == NULL ? "null" : var_a->type->name;
2865 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name41);
2866 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 960);
2867 fatal_exit(1);
2868 }
2869 memmove(((struct instance_standard__NativeArray*)var_a)->values, ((struct instance_standard__NativeArray*)var35)->values, var36*sizeof(val*));
2870 RET_LABEL37:(void)0;
2871 }
2872 }
2873 } else {
2874 }
2875 self->attrs[COLOR_standard__array__Array___items].val = var_a; /* _items on <self:Array[nullable Object]> */
2876 self->attrs[COLOR_standard__array__Array___capacity].l = var_c; /* _capacity on <self:Array[nullable Object]> */
2877 RET_LABEL:;
2878 }
2879 /* method array#Array#init for (self: Array[nullable Object]) */
2880 void standard___standard__Array___standard__kernel__Object__init(val* self) {
2881 {
2882 ((void(*)(val* self))(self->class->vft[COLOR_standard___standard__Array___standard__kernel__Object__init]))(self); /* init on <self:Array[nullable Object]>*/
2883 }
2884 self->attrs[COLOR_standard__array__Array___capacity].l = 0l; /* _capacity on <self:Array[nullable Object]> */
2885 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = 0l; /* _length on <self:Array[nullable Object]> */
2886 RET_LABEL:;
2887 }
2888 /* method array#Array#with_capacity for (self: Array[nullable Object], Int) */
2889 void standard___standard__Array___with_capacity(val* self, long p0) {
2890 long var_cap /* var cap: Int */;
2891 short int var /* : Bool */;
2892 short int var2 /* : Bool */;
2893 int cltype;
2894 int idtype;
2895 const char* var_class_name;
2896 short int var3 /* : Bool */;
2897 val* var4 /* : NativeArray[nullable Object] */;
2898 {
2899 standard___standard__Array___standard__kernel__Object__init(self); /* Direct call array#Array#init on <self:Array[nullable Object]>*/
2900 }
2901 var_cap = p0;
2902 {
2903 { /* Inline kernel#Int#>= (var_cap,0l) on <var_cap:Int> */
2904 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2905 /* <0l:Int> isa OTHER */
2906 var2 = 1; /* easy <0l:Int> isa OTHER*/
2907 if (unlikely(!var2)) {
2908 var_class_name = type_standard__Int.name;
2909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2910 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
2911 fatal_exit(1);
2912 }
2913 var3 = var_cap >= 0l;
2914 var = var3;
2915 goto RET_LABEL1;
2916 RET_LABEL1:(void)0;
2917 }
2918 }
2919 if (unlikely(!var)) {
2920 PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed");
2921 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 407);
2922 fatal_exit(1);
2923 }
2924 var4 = NEW_standard__NativeArray(var_cap, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]);
2925 self->attrs[COLOR_standard__array__Array___items].val = var4; /* _items on <self:Array[nullable Object]> */
2926 self->attrs[COLOR_standard__array__Array___capacity].l = var_cap; /* _capacity on <self:Array[nullable Object]> */
2927 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = 0l; /* _length on <self:Array[nullable Object]> */
2928 RET_LABEL:;
2929 }
2930 /* method array#Array#filled_with for (self: Array[nullable Object], nullable Object, Int) */
2931 void standard___standard__Array___filled_with(val* self, val* p0, long p1) {
2932 short int var /* : Bool */;
2933 int cltype;
2934 int idtype;
2935 const struct type* type_struct;
2936 short int is_nullable;
2937 const char* var_class_name;
2938 val* var_value /* var value: nullable Object */;
2939 long var_count /* var count: Int */;
2940 short int var1 /* : Bool */;
2941 short int var3 /* : Bool */;
2942 int cltype4;
2943 int idtype5;
2944 const char* var_class_name6;
2945 short int var7 /* : Bool */;
2946 val* var8 /* : NativeArray[nullable Object] */;
2947 long var_i /* var i: Int */;
2948 short int var9 /* : Bool */;
2949 short int var11 /* : Bool */;
2950 int cltype12;
2951 int idtype13;
2952 const char* var_class_name14;
2953 short int var15 /* : Bool */;
2954 long var16 /* : Int */;
2955 short int var18 /* : Bool */;
2956 int cltype19;
2957 int idtype20;
2958 const char* var_class_name21;
2959 long var22 /* : Int */;
2960 /* Covariant cast for argument 0 (value) <p0:nullable Object> isa E */
2961 /* <p0:nullable Object> isa E */
2962 type_struct = self->type->resolution_table->types[COLOR_standard__Array___35dE];
2963 cltype = type_struct->color;
2964 idtype = type_struct->id;
2965 is_nullable = type_struct->is_nullable;
2966 if(p0 == NULL) {
2967 var = is_nullable;
2968 } else {
2969 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
2970 var = 0;
2971 } else {
2972 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
2973 }
2974 }
2975 if (unlikely(!var)) {
2976 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
2977 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
2978 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 413);
2979 fatal_exit(1);
2980 }
2981 {
2982 standard___standard__Array___standard__kernel__Object__init(self); /* Direct call array#Array#init on <self:Array[nullable Object]>*/
2983 }
2984 var_value = p0;
2985 var_count = p1;
2986 {
2987 { /* Inline kernel#Int#>= (var_count,0l) on <var_count:Int> */
2988 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2989 /* <0l:Int> isa OTHER */
2990 var3 = 1; /* easy <0l:Int> isa OTHER*/
2991 if (unlikely(!var3)) {
2992 var_class_name6 = type_standard__Int.name;
2993 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
2994 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
2995 fatal_exit(1);
2996 }
2997 var7 = var_count >= 0l;
2998 var1 = var7;
2999 goto RET_LABEL2;
3000 RET_LABEL2:(void)0;
3001 }
3002 }
3003 if (unlikely(!var1)) {
3004 PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed");
3005 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 416);
3006 fatal_exit(1);
3007 }
3008 var8 = NEW_standard__NativeArray(var_count, self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE]);
3009 self->attrs[COLOR_standard__array__Array___items].val = var8; /* _items on <self:Array[nullable Object]> */
3010 self->attrs[COLOR_standard__array__Array___capacity].l = var_count; /* _capacity on <self:Array[nullable Object]> */
3011 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var_count; /* _length on <self:Array[nullable Object]> */
3012 var_i = 0l;
3013 for(;;) {
3014 {
3015 { /* Inline kernel#Int#< (var_i,var_count) on <var_i:Int> */
3016 /* Covariant cast for argument 0 (i) <var_count:Int> isa OTHER */
3017 /* <var_count:Int> isa OTHER */
3018 var11 = 1; /* easy <var_count:Int> isa OTHER*/
3019 if (unlikely(!var11)) {
3020 var_class_name14 = type_standard__Int.name;
3021 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14);
3022 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
3023 fatal_exit(1);
3024 }
3025 var15 = var_i < var_count;
3026 var9 = var15;
3027 goto RET_LABEL10;
3028 RET_LABEL10:(void)0;
3029 }
3030 }
3031 if (var9){
3032 {
3033 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(self, var_i, var_value); /* Direct call array#Array#[]= on <self:Array[nullable Object]>*/
3034 }
3035 {
3036 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
3037 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3038 /* <1l:Int> isa OTHER */
3039 var18 = 1; /* easy <1l:Int> isa OTHER*/
3040 if (unlikely(!var18)) {
3041 var_class_name21 = type_standard__Int.name;
3042 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21);
3043 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
3044 fatal_exit(1);
3045 }
3046 var22 = var_i + 1l;
3047 var16 = var22;
3048 goto RET_LABEL17;
3049 RET_LABEL17:(void)0;
3050 }
3051 }
3052 var_i = var16;
3053 } else {
3054 goto BREAK_label;
3055 }
3056 }
3057 BREAK_label: (void)0;
3058 RET_LABEL:;
3059 }
3060 /* method array#Array#with_native for (self: Array[nullable Object], NativeArray[nullable Object], Int) */
3061 void standard___standard__Array___with_native(val* self, val* p0, long p1) {
3062 short int var /* : Bool */;
3063 int cltype;
3064 int idtype;
3065 const struct type* type_struct;
3066 const char* var_class_name;
3067 val* var_nat /* var nat: NativeArray[nullable Object] */;
3068 long var_size /* var size: Int */;
3069 short int var1 /* : Bool */;
3070 short int var3 /* : Bool */;
3071 int cltype4;
3072 int idtype5;
3073 const char* var_class_name6;
3074 short int var7 /* : Bool */;
3075 /* Covariant cast for argument 0 (nat) <p0:NativeArray[nullable Object]> isa NativeArray[E] */
3076 /* <p0:NativeArray[nullable Object]> isa NativeArray[E] */
3077 type_struct = self->type->resolution_table->types[COLOR_standard__NativeArray__standard__Array___35dE];
3078 cltype = type_struct->color;
3079 idtype = type_struct->id;
3080 if(cltype >= p0->type->table_size) {
3081 var = 0;
3082 } else {
3083 var = p0->type->type_table[cltype] == idtype;
3084 }
3085 if (unlikely(!var)) {
3086 var_class_name = p0 == NULL ? "null" : p0->type->name;
3087 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name);
3088 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 427);
3089 fatal_exit(1);
3090 }
3091 {
3092 standard___standard__Array___standard__kernel__Object__init(self); /* Direct call array#Array#init on <self:Array[nullable Object]>*/
3093 }
3094 var_nat = p0;
3095 var_size = p1;
3096 {
3097 { /* Inline kernel#Int#>= (var_size,0l) on <var_size:Int> */
3098 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3099 /* <0l:Int> isa OTHER */
3100 var3 = 1; /* easy <0l:Int> isa OTHER*/
3101 if (unlikely(!var3)) {
3102 var_class_name6 = type_standard__Int.name;
3103 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name6);
3104 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
3105 fatal_exit(1);
3106 }
3107 var7 = var_size >= 0l;
3108 var1 = var7;
3109 goto RET_LABEL2;
3110 RET_LABEL2:(void)0;
3111 }
3112 }
3113 if (unlikely(!var1)) {
3114 PRINT_ERROR("Runtime error: %s", "Assert \'positive\' failed");
3115 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 430);
3116 fatal_exit(1);
3117 }
3118 self->attrs[COLOR_standard__array__Array___items].val = var_nat; /* _items on <self:Array[nullable Object]> */
3119 self->attrs[COLOR_standard__array__Array___capacity].l = var_size; /* _capacity on <self:Array[nullable Object]> */
3120 self->attrs[COLOR_standard__array__AbstractArrayRead___length].l = var_size; /* _length on <self:Array[nullable Object]> */
3121 RET_LABEL:;
3122 }
3123 /* method array#Array#== for (self: Array[nullable Object], nullable Object): Bool */
3124 short int standard___standard__Array___standard__kernel__Object___61d_61d(val* self, val* p0) {
3125 short int var /* : Bool */;
3126 val* var_o /* var o: nullable Object */;
3127 short int var1 /* : Bool */;
3128 int cltype;
3129 int idtype;
3130 short int var2 /* : Bool */;
3131 short int var3 /* : Bool */;
3132 long var4 /* : Int */;
3133 long var6 /* : Int */;
3134 long var_l /* var l: Int */;
3135 long var7 /* : Int */;
3136 long var9 /* : Int */;
3137 short int var10 /* : Bool */;
3138 short int var12 /* : Bool */;
3139 short int var13 /* : Bool */;
3140 long var_i /* var i: Int */;
3141 val* var14 /* : nullable NativeArray[nullable Object] */;
3142 val* var_it /* var it: nullable NativeArray[nullable Object] */;
3143 val* var15 /* : nullable NativeArray[nullable Object] */;
3144 val* var_oit /* var oit: nullable NativeArray[nullable Object] */;
3145 short int var16 /* : Bool */;
3146 short int var18 /* : Bool */;
3147 int cltype19;
3148 int idtype20;
3149 const char* var_class_name;
3150 short int var21 /* : Bool */;
3151 val* var22 /* : nullable Object */;
3152 val* var24 /* : Object */;
3153 val* var25 /* : nullable Object */;
3154 val* var27 /* : Object */;
3155 short int var28 /* : Bool */;
3156 short int var29 /* : Bool */;
3157 long var30 /* : Int */;
3158 short int var32 /* : Bool */;
3159 int cltype33;
3160 int idtype34;
3161 const char* var_class_name35;
3162 long var36 /* : Int */;
3163 var_o = p0;
3164 /* <var_o:nullable Object> isa Array[nullable Object] */
3165 cltype = type_standard__Array__nullable__standard__Object.color;
3166 idtype = type_standard__Array__nullable__standard__Object.id;
3167 if(var_o == NULL) {
3168 var1 = 0;
3169 } else {
3170 if(cltype >= (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->table_size) {
3171 var1 = 0;
3172 } else {
3173 var1 = (((long)var_o&3)?type_info[((long)var_o&3)]:var_o->type)->type_table[cltype] == idtype;
3174 }
3175 }
3176 var2 = !var1;
3177 if (var2){
3178 {
3179 var3 = ((short int(*)(val* self, val* p0))(self->class->vft[COLOR_standard___standard__Array___standard__kernel__Object___61d_61d]))(self, p0); /* == on <self:Array[nullable Object]>*/
3180 }
3181 var = var3;
3182 goto RET_LABEL;
3183 } else {
3184 }
3185 {
3186 { /* Inline array#AbstractArrayRead#length (self) on <self:Array[nullable Object]> */
3187 var6 = self->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <self:Array[nullable Object]> */
3188 var4 = var6;
3189 RET_LABEL5:(void)0;
3190 }
3191 }
3192 var_l = var4;
3193 {
3194 { /* Inline array#AbstractArrayRead#length (var_o) on <var_o:nullable Object(Array[nullable Object])> */
3195 var9 = var_o->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_o:nullable Object(Array[nullable Object])> */
3196 var7 = var9;
3197 RET_LABEL8:(void)0;
3198 }
3199 }
3200 {
3201 { /* Inline kernel#Int#!= (var_l,var7) on <var_l:Int> */
3202 var12 = var_l == var7;
3203 var13 = !var12;
3204 var10 = var13;
3205 goto RET_LABEL11;
3206 RET_LABEL11:(void)0;
3207 }
3208 }
3209 if (var10){
3210 var = 0;
3211 goto RET_LABEL;
3212 } else {
3213 }
3214 var_i = 0l;
3215 var14 = self->attrs[COLOR_standard__array__Array___items].val; /* _items on <self:Array[nullable Object]> */
3216 var_it = var14;
3217 var15 = var_o->attrs[COLOR_standard__array__Array___items].val; /* _items on <var_o:nullable Object(Array[nullable Object])> */
3218 var_oit = var15;
3219 for(;;) {
3220 {
3221 { /* Inline kernel#Int#< (var_i,var_l) on <var_i:Int> */
3222 /* Covariant cast for argument 0 (i) <var_l:Int> isa OTHER */
3223 /* <var_l:Int> isa OTHER */
3224 var18 = 1; /* easy <var_l:Int> isa OTHER*/
3225 if (unlikely(!var18)) {
3226 var_class_name = type_standard__Int.name;
3227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3228 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
3229 fatal_exit(1);
3230 }
3231 var21 = var_i < var_l;
3232 var16 = var21;
3233 goto RET_LABEL17;
3234 RET_LABEL17:(void)0;
3235 }
3236 }
3237 if (var16){
3238 if (var_it == NULL) {
3239 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3240 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 452);
3241 fatal_exit(1);
3242 } else {
3243 { /* Inline array#NativeArray#[] (var_it,var_i) on <var_it:nullable NativeArray[nullable Object]> */
3244 var24 = ((struct instance_standard__NativeArray*)var_it)->values[var_i];
3245 var22 = var24;
3246 goto RET_LABEL23;
3247 RET_LABEL23:(void)0;
3248 }
3249 }
3250 if (var_oit == NULL) {
3251 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3252 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 452);
3253 fatal_exit(1);
3254 } else {
3255 { /* Inline array#NativeArray#[] (var_oit,var_i) on <var_oit:nullable NativeArray[nullable Object]> */
3256 var27 = ((struct instance_standard__NativeArray*)var_oit)->values[var_i];
3257 var25 = var27;
3258 goto RET_LABEL26;
3259 RET_LABEL26:(void)0;
3260 }
3261 }
3262 if (var22 == NULL) {
3263 var28 = (var25 != NULL);
3264 } else {
3265 var29 = ((short int(*)(val* self, val* p0))((((long)var22&3)?class_info[((long)var22&3)]:var22->class)->vft[COLOR_standard__kernel__Object___33d_61d]))(var22, var25); /* != on <var22:nullable Object>*/
3266 var28 = var29;
3267 }
3268 if (var28){
3269 var = 0;
3270 goto RET_LABEL;
3271 } else {
3272 }
3273 {
3274 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
3275 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3276 /* <1l:Int> isa OTHER */
3277 var32 = 1; /* easy <1l:Int> isa OTHER*/
3278 if (unlikely(!var32)) {
3279 var_class_name35 = type_standard__Int.name;
3280 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
3281 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
3282 fatal_exit(1);
3283 }
3284 var36 = var_i + 1l;
3285 var30 = var36;
3286 goto RET_LABEL31;
3287 RET_LABEL31:(void)0;
3288 }
3289 }
3290 var_i = var30;
3291 } else {
3292 goto BREAK_label;
3293 }
3294 }
3295 BREAK_label: (void)0;
3296 var = 1;
3297 goto RET_LABEL;
3298 RET_LABEL:;
3299 return var;
3300 }
3301 /* method array#ArrayIterator#item for (self: ArrayIterator[nullable Object]): nullable Object */
3302 val* standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(val* self) {
3303 val* var /* : nullable Object */;
3304 val* var1 /* : AbstractArrayRead[nullable Object] */;
3305 long var2 /* : Int */;
3306 val* var3 /* : nullable Object */;
3307 var1 = self->attrs[COLOR_standard__array__ArrayIterator___array].val; /* _array on <self:ArrayIterator[nullable Object]> */
3308 if (unlikely(var1 == NULL)) {
3309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3310 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 530);
3311 fatal_exit(1);
3312 }
3313 var2 = self->attrs[COLOR_standard__array__ArrayIterator___index].l; /* _index on <self:ArrayIterator[nullable Object]> */
3314 {
3315 var3 = ((val*(*)(val* self, long p0))(var1->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var1, var2); /* [] on <var1:AbstractArrayRead[nullable Object]>*/
3316 }
3317 var = var3;
3318 goto RET_LABEL;
3319 RET_LABEL:;
3320 return var;
3321 }
3322 /* method array#ArrayIterator#is_ok for (self: ArrayIterator[nullable Object]): Bool */
3323 short int standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(val* self) {
3324 short int var /* : Bool */;
3325 long var1 /* : Int */;
3326 val* var2 /* : AbstractArrayRead[nullable Object] */;
3327 long var3 /* : Int */;
3328 short int var4 /* : Bool */;
3329 short int var6 /* : Bool */;
3330 int cltype;
3331 int idtype;
3332 const char* var_class_name;
3333 short int var7 /* : Bool */;
3334 var1 = self->attrs[COLOR_standard__array__ArrayIterator___index].l; /* _index on <self:ArrayIterator[nullable Object]> */
3335 var2 = self->attrs[COLOR_standard__array__ArrayIterator___array].val; /* _array on <self:ArrayIterator[nullable Object]> */
3336 if (unlikely(var2 == NULL)) {
3337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3338 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 534);
3339 fatal_exit(1);
3340 }
3341 {
3342 var3 = ((long(*)(val* self))(var2->class->vft[COLOR_standard__abstract_collection__Collection__length]))(var2); /* length on <var2:AbstractArrayRead[nullable Object]>*/
3343 }
3344 {
3345 { /* Inline kernel#Int#< (var1,var3) on <var1:Int> */
3346 /* Covariant cast for argument 0 (i) <var3:Int> isa OTHER */
3347 /* <var3:Int> isa OTHER */
3348 var6 = 1; /* easy <var3:Int> isa OTHER*/
3349 if (unlikely(!var6)) {
3350 var_class_name = type_standard__Int.name;
3351 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3352 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
3353 fatal_exit(1);
3354 }
3355 var7 = var1 < var3;
3356 var4 = var7;
3357 goto RET_LABEL5;
3358 RET_LABEL5:(void)0;
3359 }
3360 }
3361 var = var4;
3362 goto RET_LABEL;
3363 RET_LABEL:;
3364 return var;
3365 }
3366 /* method array#ArrayIterator#next for (self: ArrayIterator[nullable Object]) */
3367 void standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(val* self) {
3368 val* var_ /* var : ArrayIterator[nullable Object] */;
3369 long var /* : Int */;
3370 long var1 /* : Int */;
3371 short int var3 /* : Bool */;
3372 int cltype;
3373 int idtype;
3374 const char* var_class_name;
3375 long var4 /* : Int */;
3376 var_ = self;
3377 var = var_->attrs[COLOR_standard__array__ArrayIterator___index].l; /* _index on <var_:ArrayIterator[nullable Object]> */
3378 {
3379 { /* Inline kernel#Int#+ (var,1l) on <var:Int> */
3380 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3381 /* <1l:Int> isa OTHER */
3382 var3 = 1; /* easy <1l:Int> isa OTHER*/
3383 if (unlikely(!var3)) {
3384 var_class_name = type_standard__Int.name;
3385 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3386 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
3387 fatal_exit(1);
3388 }
3389 var4 = var + 1l;
3390 var1 = var4;
3391 goto RET_LABEL2;
3392 RET_LABEL2:(void)0;
3393 }
3394 }
3395 var_->attrs[COLOR_standard__array__ArrayIterator___index].l = var1; /* _index on <var_:ArrayIterator[nullable Object]> */
3396 RET_LABEL:;
3397 }
3398 /* method array#ArrayIterator#index for (self: ArrayIterator[nullable Object]): Int */
3399 long standard__array___standard__array__ArrayIterator___standard__abstract_collection__IndexedIterator__index(val* self) {
3400 long var /* : Int */;
3401 long var1 /* : Int */;
3402 var1 = self->attrs[COLOR_standard__array__ArrayIterator___index].l; /* _index on <self:ArrayIterator[nullable Object]> */
3403 var = var1;
3404 RET_LABEL:;
3405 return var;
3406 }
3407 /* method array#ArrayIterator#array= for (self: ArrayIterator[nullable Object], AbstractArrayRead[nullable Object]) */
3408 void standard__array___standard__array__ArrayIterator___array_61d(val* self, val* p0) {
3409 short int var /* : Bool */;
3410 int cltype;
3411 int idtype;
3412 const struct type* type_struct;
3413 const char* var_class_name;
3414 /* Covariant cast for argument 0 (array) <p0:AbstractArrayRead[nullable Object]> isa AbstractArrayRead[E] */
3415 /* <p0:AbstractArrayRead[nullable Object]> isa AbstractArrayRead[E] */
3416 type_struct = self->type->resolution_table->types[COLOR_standard__AbstractArrayRead__standard__array__ArrayIterator___35dE];
3417 cltype = type_struct->color;
3418 idtype = type_struct->id;
3419 if(cltype >= p0->type->table_size) {
3420 var = 0;
3421 } else {
3422 var = p0->type->type_table[cltype] == idtype;
3423 }
3424 if (unlikely(!var)) {
3425 var_class_name = p0 == NULL ? "null" : p0->type->name;
3426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "AbstractArrayRead[E]", var_class_name);
3427 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 540);
3428 fatal_exit(1);
3429 }
3430 self->attrs[COLOR_standard__array__ArrayIterator___array].val = p0; /* _array on <self:ArrayIterator[nullable Object]> */
3431 RET_LABEL:;
3432 }
3433 /* method array#ArrayIterator#finish for (self: ArrayIterator[nullable Object]) */
3434 void standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(val* self) {
3435 val* var /* : AbstractArrayRead[nullable Object] */;
3436 var = self->attrs[COLOR_standard__array__ArrayIterator___array].val; /* _array on <self:ArrayIterator[nullable Object]> */
3437 if (unlikely(var == NULL)) {
3438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3439 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 542);
3440 fatal_exit(1);
3441 }
3442 var->attrs[COLOR_standard__array__AbstractArrayRead___free_iterator].val = self; /* _free_iterator on <var:AbstractArrayRead[nullable Object]> */
3443 RET_LABEL:;
3444 }
3445 /* method array#ArrayIterator#init for (self: ArrayIterator[nullable Object]) */
3446 void standard__array___standard__array__ArrayIterator___standard__kernel__Object__init(val* self) {
3447 {
3448 ((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayIterator___standard__kernel__Object__init]))(self); /* init on <self:ArrayIterator[nullable Object]>*/
3449 }
3450 RET_LABEL:;
3451 }
3452 /* method array#ArraySet#has for (self: ArraySet[nullable Object], nullable Object): Bool */
3453 short int standard___standard__ArraySet___standard__abstract_collection__Collection__has(val* self, val* p0) {
3454 short int var /* : Bool */;
3455 val* var_e /* var e: nullable Object */;
3456 val* var1 /* : Array[nullable Object] */;
3457 short int var2 /* : Bool */;
3458 var_e = p0;
3459 var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3460 if (unlikely(var1 == NULL)) {
3461 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3462 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 568);
3463 fatal_exit(1);
3464 }
3465 {
3466 var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var1, var_e);
3467 }
3468 var = var2;
3469 goto RET_LABEL;
3470 RET_LABEL:;
3471 return var;
3472 }
3473 /* method array#ArraySet#add for (self: ArraySet[nullable Object], nullable Object) */
3474 void standard___standard__ArraySet___standard__abstract_collection__SimpleCollection__add(val* self, val* p0) {
3475 short int var /* : Bool */;
3476 int cltype;
3477 int idtype;
3478 const struct type* type_struct;
3479 short int is_nullable;
3480 const char* var_class_name;
3481 val* var_e /* var e: nullable Object */;
3482 val* var1 /* : Array[nullable Object] */;
3483 short int var2 /* : Bool */;
3484 short int var3 /* : Bool */;
3485 val* var4 /* : Array[nullable Object] */;
3486 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
3487 /* <p0:nullable Object> isa E */
3488 type_struct = self->type->resolution_table->types[COLOR_standard__ArraySet___35dE];
3489 cltype = type_struct->color;
3490 idtype = type_struct->id;
3491 is_nullable = type_struct->is_nullable;
3492 if(p0 == NULL) {
3493 var = is_nullable;
3494 } else {
3495 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
3496 var = 0;
3497 } else {
3498 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
3499 }
3500 }
3501 if (unlikely(!var)) {
3502 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
3503 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
3504 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 570);
3505 fatal_exit(1);
3506 }
3507 var_e = p0;
3508 var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3509 if (unlikely(var1 == NULL)) {
3510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3511 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 570);
3512 fatal_exit(1);
3513 }
3514 {
3515 var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__has(var1, var_e);
3516 }
3517 var3 = !var2;
3518 if (var3){
3519 var4 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3520 if (unlikely(var4 == NULL)) {
3521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3522 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 570);
3523 fatal_exit(1);
3524 }
3525 {
3526 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var4, var_e); /* Direct call array#Array#add on <var4:Array[nullable Object]>*/
3527 }
3528 } else {
3529 }
3530 RET_LABEL:;
3531 }
3532 /* method array#ArraySet#is_empty for (self: ArraySet[nullable Object]): Bool */
3533 short int standard___standard__ArraySet___standard__abstract_collection__Collection__is_empty(val* self) {
3534 short int var /* : Bool */;
3535 val* var1 /* : Array[nullable Object] */;
3536 short int var2 /* : Bool */;
3537 var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3538 if (unlikely(var1 == NULL)) {
3539 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3540 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 572);
3541 fatal_exit(1);
3542 }
3543 {
3544 var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var1);
3545 }
3546 var = var2;
3547 goto RET_LABEL;
3548 RET_LABEL:;
3549 return var;
3550 }
3551 /* method array#ArraySet#length for (self: ArraySet[nullable Object]): Int */
3552 long standard___standard__ArraySet___standard__abstract_collection__Collection__length(val* self) {
3553 long var /* : Int */;
3554 val* var1 /* : Array[nullable Object] */;
3555 long var2 /* : Int */;
3556 long var4 /* : Int */;
3557 var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3558 if (unlikely(var1 == NULL)) {
3559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3560 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 574);
3561 fatal_exit(1);
3562 }
3563 {
3564 { /* Inline array#AbstractArrayRead#length (var1) on <var1:Array[nullable Object]> */
3565 var4 = var1->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var1:Array[nullable Object]> */
3566 var2 = var4;
3567 RET_LABEL3:(void)0;
3568 }
3569 }
3570 var = var2;
3571 goto RET_LABEL;
3572 RET_LABEL:;
3573 return var;
3574 }
3575 /* method array#ArraySet#first for (self: ArraySet[nullable Object]): nullable Object */
3576 val* standard___standard__ArraySet___standard__abstract_collection__Collection__first(val* self) {
3577 val* var /* : nullable Object */;
3578 val* var1 /* : Array[nullable Object] */;
3579 long var2 /* : Int */;
3580 long var4 /* : Int */;
3581 short int var5 /* : Bool */;
3582 short int var7 /* : Bool */;
3583 int cltype;
3584 int idtype;
3585 const char* var_class_name;
3586 short int var8 /* : Bool */;
3587 val* var9 /* : Array[nullable Object] */;
3588 val* var10 /* : nullable Object */;
3589 var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3590 if (unlikely(var1 == NULL)) {
3591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3592 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 578);
3593 fatal_exit(1);
3594 }
3595 {
3596 { /* Inline array#AbstractArrayRead#length (var1) on <var1:Array[nullable Object]> */
3597 var4 = var1->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var1:Array[nullable Object]> */
3598 var2 = var4;
3599 RET_LABEL3:(void)0;
3600 }
3601 }
3602 {
3603 { /* Inline kernel#Int#> (var2,0l) on <var2:Int> */
3604 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3605 /* <0l:Int> isa OTHER */
3606 var7 = 1; /* easy <0l:Int> isa OTHER*/
3607 if (unlikely(!var7)) {
3608 var_class_name = type_standard__Int.name;
3609 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3610 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 536);
3611 fatal_exit(1);
3612 }
3613 var8 = var2 > 0l;
3614 var5 = var8;
3615 goto RET_LABEL6;
3616 RET_LABEL6:(void)0;
3617 }
3618 }
3619 if (unlikely(!var5)) {
3620 PRINT_ERROR("Runtime error: %s", "Assert failed");
3621 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 578);
3622 fatal_exit(1);
3623 }
3624 var9 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3625 if (unlikely(var9 == NULL)) {
3626 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3627 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 579);
3628 fatal_exit(1);
3629 }
3630 {
3631 var10 = standard___standard__SequenceRead___Collection__first(var9);
3632 }
3633 var = var10;
3634 goto RET_LABEL;
3635 RET_LABEL:;
3636 return var;
3637 }
3638 /* method array#ArraySet#remove for (self: ArraySet[nullable Object], nullable Object) */
3639 void standard___standard__ArraySet___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
3640 val* var_item /* var item: nullable Object */;
3641 val* var /* : Array[nullable Object] */;
3642 long var1 /* : Int */;
3643 long var_i /* var i: Int */;
3644 short int var2 /* : Bool */;
3645 short int var4 /* : Bool */;
3646 int cltype;
3647 int idtype;
3648 const char* var_class_name;
3649 short int var5 /* : Bool */;
3650 var_item = p0;
3651 var = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3652 if (unlikely(var == NULL)) {
3653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3654 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 584);
3655 fatal_exit(1);
3656 }
3657 {
3658 var1 = standard___standard__AbstractArrayRead___standard__abstract_collection__SequenceRead__index_of(var, var_item);
3659 }
3660 var_i = var1;
3661 {
3662 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
3663 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3664 /* <0l:Int> isa OTHER */
3665 var4 = 1; /* easy <0l:Int> isa OTHER*/
3666 if (unlikely(!var4)) {
3667 var_class_name = type_standard__Int.name;
3668 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3669 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
3670 fatal_exit(1);
3671 }
3672 var5 = var_i >= 0l;
3673 var2 = var5;
3674 goto RET_LABEL3;
3675 RET_LABEL3:(void)0;
3676 }
3677 }
3678 if (var2){
3679 {
3680 standard___standard__ArraySet___remove_at(self, var_i); /* Direct call array#ArraySet#remove_at on <self:ArraySet[nullable Object]>*/
3681 }
3682 } else {
3683 }
3684 RET_LABEL:;
3685 }
3686 /* method array#ArraySet#clear for (self: ArraySet[nullable Object]) */
3687 void standard___standard__ArraySet___standard__abstract_collection__RemovableCollection__clear(val* self) {
3688 val* var /* : Array[nullable Object] */;
3689 var = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3690 if (unlikely(var == NULL)) {
3691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3692 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 590);
3693 fatal_exit(1);
3694 }
3695 {
3696 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var); /* Direct call array#AbstractArray#clear on <var:Array[nullable Object]>*/
3697 }
3698 RET_LABEL:;
3699 }
3700 /* method array#ArraySet#iterator for (self: ArraySet[nullable Object]): Iterator[nullable Object] */
3701 val* standard___standard__ArraySet___standard__abstract_collection__Collection__iterator(val* self) {
3702 val* var /* : Iterator[nullable Object] */;
3703 val* var1 /* : ArraySetIterator[nullable Object] */;
3704 val* var2 /* : Array[nullable Object] */;
3705 val* var3 /* : ArrayIterator[nullable Object] */;
3706 var1 = NEW_standard__array__ArraySetIterator(self->type->resolution_table->types[COLOR_standard__array__ArraySetIterator__standard__ArraySet___35dE]);
3707 var2 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3708 if (unlikely(var2 == NULL)) {
3709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3710 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 592);
3711 fatal_exit(1);
3712 }
3713 {
3714 var3 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var2);
3715 }
3716 {
3717 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__array__ArraySetIterator__iter_61d]))(var1, var3); /* iter= on <var1:ArraySetIterator[nullable Object]>*/
3718 }
3719 {
3720 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:ArraySetIterator[nullable Object]>*/
3721 }
3722 var = var1;
3723 goto RET_LABEL;
3724 RET_LABEL:;
3725 return var;
3726 }
3727 /* method array#ArraySet#remove_at for (self: ArraySet[nullable Object], Int) */
3728 void standard___standard__ArraySet___remove_at(val* self, long p0) {
3729 long var_i /* var i: Int */;
3730 val* var /* : Array[nullable Object] */;
3731 val* var1 /* : Array[nullable Object] */;
3732 val* var2 /* : nullable Object */;
3733 val* var3 /* : Array[nullable Object] */;
3734 val* var4 /* : nullable Object */;
3735 var_i = p0;
3736 var = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3737 if (unlikely(var == NULL)) {
3738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3739 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 599);
3740 fatal_exit(1);
3741 }
3742 var1 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3743 if (unlikely(var1 == NULL)) {
3744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3745 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 599);
3746 fatal_exit(1);
3747 }
3748 {
3749 var2 = standard___standard__SequenceRead___last(var1);
3750 }
3751 {
3752 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var, var_i, var2); /* Direct call array#Array#[]= on <var:Array[nullable Object]>*/
3753 }
3754 var3 = self->attrs[COLOR_standard__array__ArraySet___array].val; /* _array on <self:ArraySet[nullable Object]> */
3755 if (unlikely(var3 == NULL)) {
3756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _array");
3757 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 600);
3758 fatal_exit(1);
3759 }
3760 {
3761 var4 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var3);
3762 }
3763 RET_LABEL:;
3764 }
3765 /* method array#ArraySet#init for (self: ArraySet[nullable Object]) */
3766 void standard___standard__ArraySet___standard__kernel__Object__init(val* self) {
3767 val* var /* : Array[nullable Object] */;
3768 var = NEW_standard__Array(self->type->resolution_table->types[COLOR_standard__Array__standard__ArraySet___35dE]);
3769 {
3770 standard___standard__Array___standard__kernel__Object__init(var); /* Direct call array#Array#init on <var:Array[nullable Object]>*/
3771 }
3772 self->attrs[COLOR_standard__array__ArraySet___array].val = var; /* _array on <self:ArraySet[nullable Object]> */
3773 RET_LABEL:;
3774 }
3775 /* method array#ArraySetIterator#is_ok for (self: ArraySetIterator[nullable Object]): Bool */
3776 short int standard__array___standard__array__ArraySetIterator___standard__abstract_collection__Iterator__is_ok(val* self) {
3777 short int var /* : Bool */;
3778 val* var1 /* : ArrayIterator[nullable Object] */;
3779 short int var2 /* : Bool */;
3780 var1 = self->attrs[COLOR_standard__array__ArraySetIterator___iter].val; /* _iter on <self:ArraySetIterator[nullable Object]> */
3781 if (unlikely(var1 == NULL)) {
3782 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
3783 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 647);
3784 fatal_exit(1);
3785 }
3786 {
3787 var2 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var1);
3788 }
3789 var = var2;
3790 goto RET_LABEL;
3791 RET_LABEL:;
3792 return var;
3793 }
3794 /* method array#ArraySetIterator#next for (self: ArraySetIterator[nullable Object]) */
3795 void standard__array___standard__array__ArraySetIterator___standard__abstract_collection__Iterator__next(val* self) {
3796 val* var /* : ArrayIterator[nullable Object] */;
3797 var = self->attrs[COLOR_standard__array__ArraySetIterator___iter].val; /* _iter on <self:ArraySetIterator[nullable Object]> */
3798 if (unlikely(var == NULL)) {
3799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
3800 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 649);
3801 fatal_exit(1);
3802 }
3803 {
3804 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var); /* Direct call array#ArrayIterator#next on <var:ArrayIterator[nullable Object]>*/
3805 }
3806 RET_LABEL:;
3807 }
3808 /* method array#ArraySetIterator#item for (self: ArraySetIterator[nullable Object]): nullable Object */
3809 val* standard__array___standard__array__ArraySetIterator___standard__abstract_collection__Iterator__item(val* self) {
3810 val* var /* : nullable Object */;
3811 val* var1 /* : ArrayIterator[nullable Object] */;
3812 val* var2 /* : nullable Object */;
3813 var1 = self->attrs[COLOR_standard__array__ArraySetIterator___iter].val; /* _iter on <self:ArraySetIterator[nullable Object]> */
3814 if (unlikely(var1 == NULL)) {
3815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _iter");
3816 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 651);
3817 fatal_exit(1);
3818 }
3819 {
3820 var2 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var1);
3821 }
3822 var = var2;
3823 goto RET_LABEL;
3824 RET_LABEL:;
3825 return var;
3826 }
3827 /* method array#ArraySetIterator#iter= for (self: ArraySetIterator[nullable Object], ArrayIterator[nullable Object]) */
3828 void standard__array___standard__array__ArraySetIterator___iter_61d(val* self, val* p0) {
3829 short int var /* : Bool */;
3830 int cltype;
3831 int idtype;
3832 const struct type* type_struct;
3833 const char* var_class_name;
3834 /* Covariant cast for argument 0 (iter) <p0:ArrayIterator[nullable Object]> isa ArrayIterator[E] */
3835 /* <p0:ArrayIterator[nullable Object]> isa ArrayIterator[E] */
3836 type_struct = self->type->resolution_table->types[COLOR_standard__array__ArrayIterator__standard__array__ArraySetIterator___35dE];
3837 cltype = type_struct->color;
3838 idtype = type_struct->id;
3839 if(cltype >= p0->type->table_size) {
3840 var = 0;
3841 } else {
3842 var = p0->type->type_table[cltype] == idtype;
3843 }
3844 if (unlikely(!var)) {
3845 var_class_name = p0 == NULL ? "null" : p0->type->name;
3846 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayIterator[E]", var_class_name);
3847 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 653);
3848 fatal_exit(1);
3849 }
3850 self->attrs[COLOR_standard__array__ArraySetIterator___iter].val = p0; /* _iter on <self:ArraySetIterator[nullable Object]> */
3851 RET_LABEL:;
3852 }
3853 /* method array#ArraySetIterator#init for (self: ArraySetIterator[nullable Object]) */
3854 void standard__array___standard__array__ArraySetIterator___standard__kernel__Object__init(val* self) {
3855 {
3856 ((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArraySetIterator___standard__kernel__Object__init]))(self); /* init on <self:ArraySetIterator[nullable Object]>*/
3857 }
3858 RET_LABEL:;
3859 }
3860 /* method array#ArrayMap#[] for (self: ArrayMap[nullable Object, nullable Object], nullable Object): nullable Object */
3861 val* standard___standard__ArrayMap___standard__abstract_collection__MapRead___91d_93d(val* self, val* p0) {
3862 val* var /* : nullable Object */;
3863 val* var_key /* var key: nullable Object */;
3864 short int var1 /* : Bool */;
3865 int cltype;
3866 int idtype;
3867 const struct type* type_struct;
3868 short int is_nullable;
3869 const char* var_class_name;
3870 long var2 /* : Int */;
3871 long var_i /* var i: Int */;
3872 short int var3 /* : Bool */;
3873 short int var5 /* : Bool */;
3874 int cltype6;
3875 int idtype7;
3876 const char* var_class_name8;
3877 short int var9 /* : Bool */;
3878 val* var10 /* : Array[Couple[nullable Object, nullable Object]] */;
3879 val* var11 /* : nullable Object */;
3880 val* var12 /* : nullable Object */;
3881 val* var14 /* : nullable Object */;
3882 val* var15 /* : nullable Object */;
3883 var_key = p0;
3884 /* <var_key:nullable Object> isa K */
3885 type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK];
3886 cltype = type_struct->color;
3887 idtype = type_struct->id;
3888 is_nullable = type_struct->is_nullable;
3889 if(var_key == NULL) {
3890 var1 = is_nullable;
3891 } else {
3892 if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) {
3893 var1 = 0;
3894 } else {
3895 var1 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype;
3896 }
3897 }
3898 if (unlikely(!var1)) {
3899 var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name;
3900 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
3901 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 665);
3902 fatal_exit(1);
3903 }
3904 {
3905 var2 = standard___standard__ArrayMap___index(self, var_key);
3906 }
3907 var_i = var2;
3908 {
3909 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
3910 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
3911 /* <0l:Int> isa OTHER */
3912 var5 = 1; /* easy <0l:Int> isa OTHER*/
3913 if (unlikely(!var5)) {
3914 var_class_name8 = type_standard__Int.name;
3915 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
3916 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
3917 fatal_exit(1);
3918 }
3919 var9 = var_i >= 0l;
3920 var3 = var9;
3921 goto RET_LABEL4;
3922 RET_LABEL4:(void)0;
3923 }
3924 }
3925 if (var3){
3926 var10 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
3927 if (unlikely(var10 == NULL)) {
3928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
3929 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 667);
3930 fatal_exit(1);
3931 }
3932 {
3933 var11 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var10, var_i);
3934 }
3935 {
3936 { /* Inline abstract_collection#Couple#second (var11) on <var11:nullable Object(Couple[nullable Object, nullable Object])> */
3937 var14 = var11->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on <var11:nullable Object(Couple[nullable Object, nullable Object])> */
3938 var12 = var14;
3939 RET_LABEL13:(void)0;
3940 }
3941 }
3942 var = var12;
3943 goto RET_LABEL;
3944 } else {
3945 {
3946 var15 = standard___standard__MapRead___provide_default_value(self, var_key);
3947 }
3948 var = var15;
3949 goto RET_LABEL;
3950 }
3951 RET_LABEL:;
3952 return var;
3953 }
3954 /* method array#ArrayMap#[]= for (self: ArrayMap[nullable Object, nullable Object], nullable Object, nullable Object) */
3955 void standard___standard__ArrayMap___standard__abstract_collection__Map___91d_93d_61d(val* self, val* p0, val* p1) {
3956 short int var /* : Bool */;
3957 int cltype;
3958 int idtype;
3959 const struct type* type_struct;
3960 short int is_nullable;
3961 const char* var_class_name;
3962 short int var1 /* : Bool */;
3963 int cltype2;
3964 int idtype3;
3965 const struct type* type_struct4;
3966 short int is_nullable5;
3967 const char* var_class_name6;
3968 val* var_key /* var key: nullable Object */;
3969 val* var_item /* var item: nullable Object */;
3970 long var7 /* : Int */;
3971 long var_i /* var i: Int */;
3972 short int var8 /* : Bool */;
3973 short int var10 /* : Bool */;
3974 int cltype11;
3975 int idtype12;
3976 const char* var_class_name13;
3977 short int var14 /* : Bool */;
3978 val* var15 /* : Array[Couple[nullable Object, nullable Object]] */;
3979 val* var16 /* : nullable Object */;
3980 short int var18 /* : Bool */;
3981 int cltype19;
3982 int idtype20;
3983 const struct type* type_struct21;
3984 short int is_nullable22;
3985 const char* var_class_name23;
3986 val* var24 /* : Array[Couple[nullable Object, nullable Object]] */;
3987 val* var25 /* : Couple[nullable Object, nullable Object] */;
3988 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
3989 /* <p0:nullable Object> isa K */
3990 type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK];
3991 cltype = type_struct->color;
3992 idtype = type_struct->id;
3993 is_nullable = type_struct->is_nullable;
3994 if(p0 == NULL) {
3995 var = is_nullable;
3996 } else {
3997 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
3998 var = 0;
3999 } else {
4000 var = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4001 }
4002 }
4003 if (unlikely(!var)) {
4004 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
4006 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 673);
4007 fatal_exit(1);
4008 }
4009 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
4010 /* <p1:nullable Object> isa E */
4011 type_struct4 = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dE];
4012 cltype2 = type_struct4->color;
4013 idtype3 = type_struct4->id;
4014 is_nullable5 = type_struct4->is_nullable;
4015 if(p1 == NULL) {
4016 var1 = is_nullable5;
4017 } else {
4018 if(cltype2 >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
4019 var1 = 0;
4020 } else {
4021 var1 = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype2] == idtype3;
4022 }
4023 }
4024 if (unlikely(!var1)) {
4025 var_class_name6 = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
4026 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name6);
4027 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 673);
4028 fatal_exit(1);
4029 }
4030 var_key = p0;
4031 var_item = p1;
4032 {
4033 var7 = standard___standard__ArrayMap___index(self, var_key);
4034 }
4035 var_i = var7;
4036 {
4037 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
4038 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4039 /* <0l:Int> isa OTHER */
4040 var10 = 1; /* easy <0l:Int> isa OTHER*/
4041 if (unlikely(!var10)) {
4042 var_class_name13 = type_standard__Int.name;
4043 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4044 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
4045 fatal_exit(1);
4046 }
4047 var14 = var_i >= 0l;
4048 var8 = var14;
4049 goto RET_LABEL9;
4050 RET_LABEL9:(void)0;
4051 }
4052 }
4053 if (var8){
4054 var15 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4055 if (unlikely(var15 == NULL)) {
4056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4057 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 678);
4058 fatal_exit(1);
4059 }
4060 {
4061 var16 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var15, var_i);
4062 }
4063 {
4064 { /* Inline abstract_collection#Couple#second= (var16,var_item) on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
4065 /* Covariant cast for argument 0 (second) <var_item:nullable Object> isa S */
4066 /* <var_item:nullable Object> isa S */
4067 type_struct21 = var16->type->resolution_table->types[COLOR_standard__Couple___35dS];
4068 cltype19 = type_struct21->color;
4069 idtype20 = type_struct21->id;
4070 is_nullable22 = type_struct21->is_nullable;
4071 if(var_item == NULL) {
4072 var18 = is_nullable22;
4073 } else {
4074 if(cltype19 >= (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->table_size) {
4075 var18 = 0;
4076 } else {
4077 var18 = (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->type_table[cltype19] == idtype20;
4078 }
4079 }
4080 if (unlikely(!var18)) {
4081 var_class_name23 = var_item == NULL ? "null" : (((long)var_item&3)?type_info[((long)var_item&3)]:var_item->type)->name;
4082 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "S", var_class_name23);
4083 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection, 1126);
4084 fatal_exit(1);
4085 }
4086 var16->attrs[COLOR_standard__abstract_collection__Couple___second].val = var_item; /* _second on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
4087 RET_LABEL17:(void)0;
4088 }
4089 }
4090 } else {
4091 var24 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4092 if (unlikely(var24 == NULL)) {
4093 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4094 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 680);
4095 fatal_exit(1);
4096 }
4097 var25 = NEW_standard__Couple(self->type->resolution_table->types[COLOR_standard__Couple__standard__ArrayMap___35dK__standard__ArrayMap___35dE]);
4098 {
4099 ((void(*)(val* self, val* p0))(var25->class->vft[COLOR_standard__abstract_collection__Couple__first_61d]))(var25, var_key); /* first= on <var25:Couple[nullable Object, nullable Object]>*/
4100 }
4101 {
4102 ((void(*)(val* self, val* p0))(var25->class->vft[COLOR_standard__abstract_collection__Couple__second_61d]))(var25, var_item); /* second= on <var25:Couple[nullable Object, nullable Object]>*/
4103 }
4104 {
4105 ((void(*)(val* self))(var25->class->vft[COLOR_standard__kernel__Object__init]))(var25); /* init on <var25:Couple[nullable Object, nullable Object]>*/
4106 }
4107 {
4108 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var24, var25); /* Direct call array#AbstractArray#push on <var24:Array[Couple[nullable Object, nullable Object]]>*/
4109 }
4110 }
4111 RET_LABEL:;
4112 }
4113 /* method array#ArrayMap#keys for (self: ArrayMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */
4114 val* standard___standard__ArrayMap___standard__abstract_collection__MapRead__keys(val* self) {
4115 val* var /* : RemovableCollection[nullable Object] */;
4116 short int var1 /* : Bool */;
4117 val* var2 /* : RemovableCollection[nullable Object] */;
4118 val* var3 /* : ArrayMapKeys[nullable Object, nullable Object] */;
4119 var1 = self->attrs[COLOR_standard__array__ArrayMap___keys].val != NULL; /* _keys on <self:ArrayMap[nullable Object, nullable Object]> */
4120 if(likely(var1)) {
4121 var2 = self->attrs[COLOR_standard__array__ArrayMap___keys].val; /* _keys on <self:ArrayMap[nullable Object, nullable Object]> */
4122 if (unlikely(var2 == NULL)) {
4123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _keys");
4124 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 684);
4125 fatal_exit(1);
4126 }
4127 } else {
4128 var3 = NEW_standard__array__ArrayMapKeys(self->type->resolution_table->types[COLOR_standard__array__ArrayMapKeys__standard__ArrayMap___35dK__standard__ArrayMap___35dE]);
4129 {
4130 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__array__ArrayMapKeys__map_61d]))(var3, self); /* map= on <var3:ArrayMapKeys[nullable Object, nullable Object]>*/
4131 }
4132 {
4133 ((void(*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3); /* init on <var3:ArrayMapKeys[nullable Object, nullable Object]>*/
4134 }
4135 self->attrs[COLOR_standard__array__ArrayMap___keys].val = var3; /* _keys on <self:ArrayMap[nullable Object, nullable Object]> */
4136 var2 = var3;
4137 }
4138 var = var2;
4139 RET_LABEL:;
4140 return var;
4141 }
4142 /* method array#ArrayMap#values for (self: ArrayMap[nullable Object, nullable Object]): RemovableCollection[nullable Object] */
4143 val* standard___standard__ArrayMap___standard__abstract_collection__MapRead__values(val* self) {
4144 val* var /* : RemovableCollection[nullable Object] */;
4145 short int var1 /* : Bool */;
4146 val* var2 /* : RemovableCollection[nullable Object] */;
4147 val* var3 /* : ArrayMapValues[nullable Object, nullable Object] */;
4148 var1 = self->attrs[COLOR_standard__array__ArrayMap___values].val != NULL; /* _values on <self:ArrayMap[nullable Object, nullable Object]> */
4149 if(likely(var1)) {
4150 var2 = self->attrs[COLOR_standard__array__ArrayMap___values].val; /* _values on <self:ArrayMap[nullable Object, nullable Object]> */
4151 if (unlikely(var2 == NULL)) {
4152 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _values");
4153 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 685);
4154 fatal_exit(1);
4155 }
4156 } else {
4157 var3 = NEW_standard__array__ArrayMapValues(self->type->resolution_table->types[COLOR_standard__array__ArrayMapValues__standard__ArrayMap___35dK__standard__ArrayMap___35dE]);
4158 {
4159 ((void(*)(val* self, val* p0))(var3->class->vft[COLOR_standard__array__ArrayMapValues__map_61d]))(var3, self); /* map= on <var3:ArrayMapValues[nullable Object, nullable Object]>*/
4160 }
4161 {
4162 ((void(*)(val* self))(var3->class->vft[COLOR_standard__kernel__Object__init]))(var3); /* init on <var3:ArrayMapValues[nullable Object, nullable Object]>*/
4163 }
4164 self->attrs[COLOR_standard__array__ArrayMap___values].val = var3; /* _values on <self:ArrayMap[nullable Object, nullable Object]> */
4165 var2 = var3;
4166 }
4167 var = var2;
4168 RET_LABEL:;
4169 return var;
4170 }
4171 /* method array#ArrayMap#length for (self: ArrayMap[nullable Object, nullable Object]): Int */
4172 long standard___standard__ArrayMap___standard__abstract_collection__MapRead__length(val* self) {
4173 long var /* : Int */;
4174 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
4175 long var2 /* : Int */;
4176 long var4 /* : Int */;
4177 var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4178 if (unlikely(var1 == NULL)) {
4179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4180 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 688);
4181 fatal_exit(1);
4182 }
4183 {
4184 { /* Inline array#AbstractArrayRead#length (var1) on <var1:Array[Couple[nullable Object, nullable Object]]> */
4185 var4 = var1->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var1:Array[Couple[nullable Object, nullable Object]]> */
4186 var2 = var4;
4187 RET_LABEL3:(void)0;
4188 }
4189 }
4190 var = var2;
4191 goto RET_LABEL;
4192 RET_LABEL:;
4193 return var;
4194 }
4195 /* method array#ArrayMap#couple_iterator for (self: ArrayMap[nullable Object, nullable Object]): Iterator[Couple[nullable Object, nullable Object]] */
4196 val* standard___standard__ArrayMap___standard__abstract_collection__CoupleMap__couple_iterator(val* self) {
4197 val* var /* : Iterator[Couple[nullable Object, nullable Object]] */;
4198 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
4199 val* var2 /* : ArrayIterator[nullable Object] */;
4200 var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4201 if (unlikely(var1 == NULL)) {
4202 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4203 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 690);
4204 fatal_exit(1);
4205 }
4206 {
4207 var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var1);
4208 }
4209 var = var2;
4210 goto RET_LABEL;
4211 RET_LABEL:;
4212 return var;
4213 }
4214 /* method array#ArrayMap#is_empty for (self: ArrayMap[nullable Object, nullable Object]): Bool */
4215 short int standard___standard__ArrayMap___standard__abstract_collection__MapRead__is_empty(val* self) {
4216 short int var /* : Bool */;
4217 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
4218 short int var2 /* : Bool */;
4219 var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4220 if (unlikely(var1 == NULL)) {
4221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4222 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 692);
4223 fatal_exit(1);
4224 }
4225 {
4226 var2 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var1);
4227 }
4228 var = var2;
4229 goto RET_LABEL;
4230 RET_LABEL:;
4231 return var;
4232 }
4233 /* method array#ArrayMap#clear for (self: ArrayMap[nullable Object, nullable Object]) */
4234 void standard___standard__ArrayMap___standard__abstract_collection__Map__clear(val* self) {
4235 val* var /* : Array[Couple[nullable Object, nullable Object]] */;
4236 var = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4237 if (unlikely(var == NULL)) {
4238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4239 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 694);
4240 fatal_exit(1);
4241 }
4242 {
4243 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var); /* Direct call array#AbstractArray#clear on <var:Array[Couple[nullable Object, nullable Object]]>*/
4244 }
4245 RET_LABEL:;
4246 }
4247 /* method array#ArrayMap#couple_at for (self: ArrayMap[nullable Object, nullable Object], nullable Object): nullable Couple[nullable Object, nullable Object] */
4248 val* standard___standard__ArrayMap___standard__abstract_collection__CoupleMap__couple_at(val* self, val* p0) {
4249 val* var /* : nullable Couple[nullable Object, nullable Object] */;
4250 val* var_key /* var key: nullable Object */;
4251 short int var1 /* : Bool */;
4252 int cltype;
4253 int idtype;
4254 const struct type* type_struct;
4255 short int is_nullable;
4256 const char* var_class_name;
4257 long var2 /* : Int */;
4258 long var_i /* var i: Int */;
4259 short int var3 /* : Bool */;
4260 short int var5 /* : Bool */;
4261 int cltype6;
4262 int idtype7;
4263 const char* var_class_name8;
4264 short int var9 /* : Bool */;
4265 val* var10 /* : Array[Couple[nullable Object, nullable Object]] */;
4266 val* var11 /* : nullable Object */;
4267 var_key = p0;
4268 /* <var_key:nullable Object> isa K */
4269 type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK];
4270 cltype = type_struct->color;
4271 idtype = type_struct->id;
4272 is_nullable = type_struct->is_nullable;
4273 if(var_key == NULL) {
4274 var1 = is_nullable;
4275 } else {
4276 if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) {
4277 var1 = 0;
4278 } else {
4279 var1 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype;
4280 }
4281 }
4282 if (unlikely(!var1)) {
4283 var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name;
4284 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
4285 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 701);
4286 fatal_exit(1);
4287 }
4288 {
4289 var2 = standard___standard__ArrayMap___index(self, var_key);
4290 }
4291 var_i = var2;
4292 {
4293 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
4294 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4295 /* <0l:Int> isa OTHER */
4296 var5 = 1; /* easy <0l:Int> isa OTHER*/
4297 if (unlikely(!var5)) {
4298 var_class_name8 = type_standard__Int.name;
4299 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name8);
4300 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
4301 fatal_exit(1);
4302 }
4303 var9 = var_i >= 0l;
4304 var3 = var9;
4305 goto RET_LABEL4;
4306 RET_LABEL4:(void)0;
4307 }
4308 }
4309 if (var3){
4310 var10 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4311 if (unlikely(var10 == NULL)) {
4312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4313 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 703);
4314 fatal_exit(1);
4315 }
4316 {
4317 var11 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var10, var_i);
4318 }
4319 var = var11;
4320 goto RET_LABEL;
4321 } else {
4322 var = ((val*)NULL);
4323 goto RET_LABEL;
4324 }
4325 RET_LABEL:;
4326 return var;
4327 }
4328 /* method array#ArrayMap#remove_at_index for (self: ArrayMap[nullable Object, nullable Object], Int) */
4329 void standard___standard__ArrayMap___remove_at_index(val* self, long p0) {
4330 long var_i /* var i: Int */;
4331 val* var /* : Array[Couple[nullable Object, nullable Object]] */;
4332 val* var1 /* : Array[Couple[nullable Object, nullable Object]] */;
4333 val* var2 /* : nullable Object */;
4334 val* var3 /* : Array[Couple[nullable Object, nullable Object]] */;
4335 val* var4 /* : nullable Object */;
4336 var_i = p0;
4337 var = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4338 if (unlikely(var == NULL)) {
4339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4340 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 715);
4341 fatal_exit(1);
4342 }
4343 var1 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4344 if (unlikely(var1 == NULL)) {
4345 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4346 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 715);
4347 fatal_exit(1);
4348 }
4349 {
4350 var2 = standard___standard__SequenceRead___last(var1);
4351 }
4352 {
4353 standard___standard__Array___standard__abstract_collection__Sequence___91d_93d_61d(var, var_i, var2); /* Direct call array#Array#[]= on <var:Array[Couple[nullable Object, nullable Object]]>*/
4354 }
4355 var3 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4356 if (unlikely(var3 == NULL)) {
4357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4358 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 716);
4359 fatal_exit(1);
4360 }
4361 {
4362 var4 = standard___standard__AbstractArray___standard__abstract_collection__Sequence__pop(var3);
4363 }
4364 RET_LABEL:;
4365 }
4366 /* method array#ArrayMap#index for (self: ArrayMap[nullable Object, nullable Object], nullable Object): Int */
4367 long standard___standard__ArrayMap___index(val* self, val* p0) {
4368 long var /* : Int */;
4369 short int var1 /* : Bool */;
4370 int cltype;
4371 int idtype;
4372 const struct type* type_struct;
4373 short int is_nullable;
4374 const char* var_class_name;
4375 val* var_key /* var key: nullable Object */;
4376 long var2 /* : Int */;
4377 long var_l /* var l: Int */;
4378 short int var3 /* : Bool */;
4379 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
4380 long var5 /* : Int */;
4381 long var7 /* : Int */;
4382 short int var8 /* : Bool */;
4383 short int var10 /* : Bool */;
4384 int cltype11;
4385 int idtype12;
4386 const char* var_class_name13;
4387 short int var14 /* : Bool */;
4388 short int var_ /* var : Bool */;
4389 val* var15 /* : Array[Couple[nullable Object, nullable Object]] */;
4390 val* var16 /* : nullable Object */;
4391 val* var17 /* : nullable Object */;
4392 val* var19 /* : nullable Object */;
4393 short int var20 /* : Bool */;
4394 short int var21 /* : Bool */;
4395 long var_i /* var i: Int */;
4396 val* var22 /* : Array[Couple[nullable Object, nullable Object]] */;
4397 long var23 /* : Int */;
4398 long var25 /* : Int */;
4399 short int var26 /* : Bool */;
4400 short int var28 /* : Bool */;
4401 int cltype29;
4402 int idtype30;
4403 const char* var_class_name31;
4404 short int var32 /* : Bool */;
4405 val* var33 /* : Array[Couple[nullable Object, nullable Object]] */;
4406 val* var34 /* : nullable Object */;
4407 val* var35 /* : nullable Object */;
4408 val* var37 /* : nullable Object */;
4409 short int var38 /* : Bool */;
4410 short int var39 /* : Bool */;
4411 long var40 /* : Int */;
4412 short int var42 /* : Bool */;
4413 int cltype43;
4414 int idtype44;
4415 const char* var_class_name45;
4416 long var46 /* : Int */;
4417 long var47 /* : Int */;
4418 long var49 /* : Int */;
4419 /* Covariant cast for argument 0 (key) <p0:nullable Object> isa K */
4420 /* <p0:nullable Object> isa K */
4421 type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap___35dK];
4422 cltype = type_struct->color;
4423 idtype = type_struct->id;
4424 is_nullable = type_struct->is_nullable;
4425 if(p0 == NULL) {
4426 var1 = is_nullable;
4427 } else {
4428 if(cltype >= (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->table_size) {
4429 var1 = 0;
4430 } else {
4431 var1 = (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->type_table[cltype] == idtype;
4432 }
4433 }
4434 if (unlikely(!var1)) {
4435 var_class_name = p0 == NULL ? "null" : (((long)p0&3)?type_info[((long)p0&3)]:p0->type)->name;
4436 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
4437 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 722);
4438 fatal_exit(1);
4439 }
4440 var_key = p0;
4441 var2 = self->attrs[COLOR_standard__array__ArrayMap___last_index].l; /* _last_index on <self:ArrayMap[nullable Object, nullable Object]> */
4442 var_l = var2;
4443 var4 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4444 if (unlikely(var4 == NULL)) {
4445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4446 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 727);
4447 fatal_exit(1);
4448 }
4449 {
4450 { /* Inline array#AbstractArrayRead#length (var4) on <var4:Array[Couple[nullable Object, nullable Object]]> */
4451 var7 = var4->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var4:Array[Couple[nullable Object, nullable Object]]> */
4452 var5 = var7;
4453 RET_LABEL6:(void)0;
4454 }
4455 }
4456 {
4457 { /* Inline kernel#Int#< (var_l,var5) on <var_l:Int> */
4458 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
4459 /* <var5:Int> isa OTHER */
4460 var10 = 1; /* easy <var5:Int> isa OTHER*/
4461 if (unlikely(!var10)) {
4462 var_class_name13 = type_standard__Int.name;
4463 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name13);
4464 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
4465 fatal_exit(1);
4466 }
4467 var14 = var_l < var5;
4468 var8 = var14;
4469 goto RET_LABEL9;
4470 RET_LABEL9:(void)0;
4471 }
4472 }
4473 var_ = var8;
4474 if (var8){
4475 var15 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4476 if (unlikely(var15 == NULL)) {
4477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4478 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 727);
4479 fatal_exit(1);
4480 }
4481 {
4482 var16 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var15, var_l);
4483 }
4484 {
4485 { /* Inline abstract_collection#Couple#first (var16) on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
4486 var19 = var16->attrs[COLOR_standard__abstract_collection__Couple___first].val; /* _first on <var16:nullable Object(Couple[nullable Object, nullable Object])> */
4487 var17 = var19;
4488 RET_LABEL18:(void)0;
4489 }
4490 }
4491 if (var17 == NULL) {
4492 var20 = (var_key == NULL);
4493 } else {
4494 var21 = ((short int(*)(val* self, val* p0))((((long)var17&3)?class_info[((long)var17&3)]:var17->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var17, var_key); /* == on <var17:nullable Object>*/
4495 var20 = var21;
4496 }
4497 var3 = var20;
4498 } else {
4499 var3 = var_;
4500 }
4501 if (var3){
4502 var = var_l;
4503 goto RET_LABEL;
4504 } else {
4505 }
4506 var_i = 0l;
4507 for(;;) {
4508 var22 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4509 if (unlikely(var22 == NULL)) {
4510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4511 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 730);
4512 fatal_exit(1);
4513 }
4514 {
4515 { /* Inline array#AbstractArrayRead#length (var22) on <var22:Array[Couple[nullable Object, nullable Object]]> */
4516 var25 = var22->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var22:Array[Couple[nullable Object, nullable Object]]> */
4517 var23 = var25;
4518 RET_LABEL24:(void)0;
4519 }
4520 }
4521 {
4522 { /* Inline kernel#Int#< (var_i,var23) on <var_i:Int> */
4523 /* Covariant cast for argument 0 (i) <var23:Int> isa OTHER */
4524 /* <var23:Int> isa OTHER */
4525 var28 = 1; /* easy <var23:Int> isa OTHER*/
4526 if (unlikely(!var28)) {
4527 var_class_name31 = type_standard__Int.name;
4528 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name31);
4529 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 534);
4530 fatal_exit(1);
4531 }
4532 var32 = var_i < var23;
4533 var26 = var32;
4534 goto RET_LABEL27;
4535 RET_LABEL27:(void)0;
4536 }
4537 }
4538 if (var26){
4539 var33 = self->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <self:ArrayMap[nullable Object, nullable Object]> */
4540 if (unlikely(var33 == NULL)) {
4541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4542 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 731);
4543 fatal_exit(1);
4544 }
4545 {
4546 var34 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var33, var_i);
4547 }
4548 {
4549 { /* Inline abstract_collection#Couple#first (var34) on <var34:nullable Object(Couple[nullable Object, nullable Object])> */
4550 var37 = var34->attrs[COLOR_standard__abstract_collection__Couple___first].val; /* _first on <var34:nullable Object(Couple[nullable Object, nullable Object])> */
4551 var35 = var37;
4552 RET_LABEL36:(void)0;
4553 }
4554 }
4555 if (var35 == NULL) {
4556 var38 = (var_key == NULL);
4557 } else {
4558 var39 = ((short int(*)(val* self, val* p0))((((long)var35&3)?class_info[((long)var35&3)]:var35->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var35, var_key); /* == on <var35:nullable Object>*/
4559 var38 = var39;
4560 }
4561 if (var38){
4562 self->attrs[COLOR_standard__array__ArrayMap___last_index].l = var_i; /* _last_index on <self:ArrayMap[nullable Object, nullable Object]> */
4563 var = var_i;
4564 goto RET_LABEL;
4565 } else {
4566 }
4567 {
4568 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
4569 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4570 /* <1l:Int> isa OTHER */
4571 var42 = 1; /* easy <1l:Int> isa OTHER*/
4572 if (unlikely(!var42)) {
4573 var_class_name45 = type_standard__Int.name;
4574 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name45);
4575 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 537);
4576 fatal_exit(1);
4577 }
4578 var46 = var_i + 1l;
4579 var40 = var46;
4580 goto RET_LABEL41;
4581 RET_LABEL41:(void)0;
4582 }
4583 }
4584 var_i = var40;
4585 } else {
4586 goto BREAK_label;
4587 }
4588 }
4589 BREAK_label: (void)0;
4590 {
4591 { /* Inline kernel#Int#unary - (1l) on <1l:Int> */
4592 var49 = -1l;
4593 var47 = var49;
4594 goto RET_LABEL48;
4595 RET_LABEL48:(void)0;
4596 }
4597 }
4598 var = var47;
4599 goto RET_LABEL;
4600 RET_LABEL:;
4601 return var;
4602 }
4603 /* method array#ArrayMapKeys#map for (self: ArrayMapKeys[nullable Object, nullable Object]): ArrayMap[nullable Object, nullable Object] */
4604 val* standard__array___standard__array__ArrayMapKeys___map(val* self) {
4605 val* var /* : ArrayMap[nullable Object, nullable Object] */;
4606 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
4607 var1 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4608 if (unlikely(var1 == NULL)) {
4609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4610 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4611 fatal_exit(1);
4612 }
4613 var = var1;
4614 RET_LABEL:;
4615 return var;
4616 }
4617 /* method array#ArrayMapKeys#map= for (self: ArrayMapKeys[nullable Object, nullable Object], ArrayMap[nullable Object, nullable Object]) */
4618 void standard__array___standard__array__ArrayMapKeys___map_61d(val* self, val* p0) {
4619 short int var /* : Bool */;
4620 int cltype;
4621 int idtype;
4622 const struct type* type_struct;
4623 const char* var_class_name;
4624 /* Covariant cast for argument 0 (map) <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
4625 /* <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
4626 type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap__standard__array__ArrayMapKeys___35dK__standard__array__ArrayMapKeys___35dE];
4627 cltype = type_struct->color;
4628 idtype = type_struct->id;
4629 if(cltype >= p0->type->table_size) {
4630 var = 0;
4631 } else {
4632 var = p0->type->type_table[cltype] == idtype;
4633 }
4634 if (unlikely(!var)) {
4635 var_class_name = p0 == NULL ? "null" : p0->type->name;
4636 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayMap[K, E]", var_class_name);
4637 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4638 fatal_exit(1);
4639 }
4640 self->attrs[COLOR_standard__array__ArrayMapKeys___map].val = p0; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4641 RET_LABEL:;
4642 }
4643 /* method array#ArrayMapKeys#first for (self: ArrayMapKeys[nullable Object, nullable Object]): nullable Object */
4644 val* standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__Collection__first(val* self) {
4645 val* var /* : nullable Object */;
4646 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
4647 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
4648 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
4649 val* var5 /* : nullable Object */;
4650 val* var6 /* : nullable Object */;
4651 val* var8 /* : nullable Object */;
4652 {
4653 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4654 var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4655 if (unlikely(var3 == NULL)) {
4656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4657 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4658 fatal_exit(1);
4659 }
4660 var1 = var3;
4661 RET_LABEL2:(void)0;
4662 }
4663 }
4664 var4 = var1->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <var1:ArrayMap[nullable Object, nullable Object]> */
4665 if (unlikely(var4 == NULL)) {
4666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
4667 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 775);
4668 fatal_exit(1);
4669 }
4670 {
4671 var5 = standard___standard__SequenceRead___Collection__first(var4);
4672 }
4673 {
4674 { /* Inline abstract_collection#Couple#first (var5) on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
4675 var8 = var5->attrs[COLOR_standard__abstract_collection__Couple___first].val; /* _first on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
4676 var6 = var8;
4677 RET_LABEL7:(void)0;
4678 }
4679 }
4680 var = var6;
4681 goto RET_LABEL;
4682 RET_LABEL:;
4683 return var;
4684 }
4685 /* method array#ArrayMapKeys#has for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object): Bool */
4686 short int standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__Collection__has(val* self, val* p0) {
4687 short int var /* : Bool */;
4688 val* var_k /* var k: nullable Object */;
4689 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
4690 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
4691 short int var4 /* : Bool */;
4692 int cltype;
4693 int idtype;
4694 const struct type* type_struct;
4695 short int is_nullable;
4696 const char* var_class_name;
4697 long var5 /* : Int */;
4698 short int var6 /* : Bool */;
4699 short int var8 /* : Bool */;
4700 int cltype9;
4701 int idtype10;
4702 const char* var_class_name11;
4703 short int var12 /* : Bool */;
4704 var_k = p0;
4705 {
4706 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4707 var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4708 if (unlikely(var3 == NULL)) {
4709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4710 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4711 fatal_exit(1);
4712 }
4713 var1 = var3;
4714 RET_LABEL2:(void)0;
4715 }
4716 }
4717 /* <var_k:nullable Object> isa K */
4718 type_struct = self->type->resolution_table->types[COLOR_standard__array__ArrayMapKeys___35dK];
4719 cltype = type_struct->color;
4720 idtype = type_struct->id;
4721 is_nullable = type_struct->is_nullable;
4722 if(var_k == NULL) {
4723 var4 = is_nullable;
4724 } else {
4725 if(cltype >= (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->table_size) {
4726 var4 = 0;
4727 } else {
4728 var4 = (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->type_table[cltype] == idtype;
4729 }
4730 }
4731 if (unlikely(!var4)) {
4732 var_class_name = var_k == NULL ? "null" : (((long)var_k&3)?type_info[((long)var_k&3)]:var_k->type)->name;
4733 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
4734 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 776);
4735 fatal_exit(1);
4736 }
4737 {
4738 var5 = standard___standard__ArrayMap___index(var1, var_k);
4739 }
4740 {
4741 { /* Inline kernel#Int#>= (var5,0l) on <var5:Int> */
4742 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4743 /* <0l:Int> isa OTHER */
4744 var8 = 1; /* easy <0l:Int> isa OTHER*/
4745 if (unlikely(!var8)) {
4746 var_class_name11 = type_standard__Int.name;
4747 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name11);
4748 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
4749 fatal_exit(1);
4750 }
4751 var12 = var5 >= 0l;
4752 var6 = var12;
4753 goto RET_LABEL7;
4754 RET_LABEL7:(void)0;
4755 }
4756 }
4757 var = var6;
4758 goto RET_LABEL;
4759 RET_LABEL:;
4760 return var;
4761 }
4762 /* method array#ArrayMapKeys#is_empty for (self: ArrayMapKeys[nullable Object, nullable Object]): Bool */
4763 short int standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__Collection__is_empty(val* self) {
4764 short int var /* : Bool */;
4765 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
4766 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
4767 short int var4 /* : Bool */;
4768 {
4769 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4770 var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4771 if (unlikely(var3 == NULL)) {
4772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4773 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4774 fatal_exit(1);
4775 }
4776 var1 = var3;
4777 RET_LABEL2:(void)0;
4778 }
4779 }
4780 {
4781 var4 = standard___standard__ArrayMap___standard__abstract_collection__MapRead__is_empty(var1);
4782 }
4783 var = var4;
4784 goto RET_LABEL;
4785 RET_LABEL:;
4786 return var;
4787 }
4788 /* method array#ArrayMapKeys#length for (self: ArrayMapKeys[nullable Object, nullable Object]): Int */
4789 long standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__Collection__length(val* self) {
4790 long var /* : Int */;
4791 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
4792 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
4793 long var4 /* : Int */;
4794 {
4795 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4796 var3 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4797 if (unlikely(var3 == NULL)) {
4798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4799 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4800 fatal_exit(1);
4801 }
4802 var1 = var3;
4803 RET_LABEL2:(void)0;
4804 }
4805 }
4806 {
4807 var4 = standard___standard__ArrayMap___standard__abstract_collection__MapRead__length(var1);
4808 }
4809 var = var4;
4810 goto RET_LABEL;
4811 RET_LABEL:;
4812 return var;
4813 }
4814 /* method array#ArrayMapKeys#iterator for (self: ArrayMapKeys[nullable Object, nullable Object]): Iterator[nullable Object] */
4815 val* standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__Collection__iterator(val* self) {
4816 val* var /* : Iterator[nullable Object] */;
4817 val* var1 /* : MapKeysIterator[nullable Object, nullable Object] */;
4818 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
4819 val* var4 /* : ArrayMap[nullable Object, nullable Object] */;
4820 val* var5 /* : MapIterator[nullable Object, nullable Object] */;
4821 var1 = NEW_standard__MapKeysIterator(self->type->resolution_table->types[COLOR_standard__MapKeysIterator__standard__array__ArrayMapKeys___35dK__standard__array__ArrayMapKeys___35dE]);
4822 {
4823 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4824 var4 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4825 if (unlikely(var4 == NULL)) {
4826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4827 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4828 fatal_exit(1);
4829 }
4830 var2 = var4;
4831 RET_LABEL3:(void)0;
4832 }
4833 }
4834 {
4835 var5 = standard___standard__CoupleMap___MapRead__iterator(var2);
4836 }
4837 {
4838 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapKeysIterator__original_iterator_61d]))(var1, var5); /* original_iterator= on <var1:MapKeysIterator[nullable Object, nullable Object]>*/
4839 }
4840 {
4841 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:MapKeysIterator[nullable Object, nullable Object]>*/
4842 }
4843 var = var1;
4844 goto RET_LABEL;
4845 RET_LABEL:;
4846 return var;
4847 }
4848 /* method array#ArrayMapKeys#clear for (self: ArrayMapKeys[nullable Object, nullable Object]) */
4849 void standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__RemovableCollection__clear(val* self) {
4850 val* var /* : ArrayMap[nullable Object, nullable Object] */;
4851 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
4852 {
4853 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4854 var2 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4855 if (unlikely(var2 == NULL)) {
4856 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4857 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4858 fatal_exit(1);
4859 }
4860 var = var2;
4861 RET_LABEL1:(void)0;
4862 }
4863 }
4864 {
4865 standard___standard__ArrayMap___standard__abstract_collection__Map__clear(var); /* Direct call array#ArrayMap#clear on <var:ArrayMap[nullable Object, nullable Object]>*/
4866 }
4867 RET_LABEL:;
4868 }
4869 /* method array#ArrayMapKeys#remove for (self: ArrayMapKeys[nullable Object, nullable Object], nullable Object) */
4870 void standard__array___standard__array__ArrayMapKeys___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
4871 val* var_key /* var key: nullable Object */;
4872 val* var /* : ArrayMap[nullable Object, nullable Object] */;
4873 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
4874 short int var3 /* : Bool */;
4875 int cltype;
4876 int idtype;
4877 const struct type* type_struct;
4878 short int is_nullable;
4879 const char* var_class_name;
4880 long var4 /* : Int */;
4881 long var_i /* var i: Int */;
4882 short int var5 /* : Bool */;
4883 short int var7 /* : Bool */;
4884 int cltype8;
4885 int idtype9;
4886 const char* var_class_name10;
4887 short int var11 /* : Bool */;
4888 val* var12 /* : ArrayMap[nullable Object, nullable Object] */;
4889 val* var14 /* : ArrayMap[nullable Object, nullable Object] */;
4890 var_key = p0;
4891 {
4892 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4893 var2 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4894 if (unlikely(var2 == NULL)) {
4895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4896 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4897 fatal_exit(1);
4898 }
4899 var = var2;
4900 RET_LABEL1:(void)0;
4901 }
4902 }
4903 /* <var_key:nullable Object> isa K */
4904 type_struct = self->type->resolution_table->types[COLOR_standard__array__ArrayMapKeys___35dK];
4905 cltype = type_struct->color;
4906 idtype = type_struct->id;
4907 is_nullable = type_struct->is_nullable;
4908 if(var_key == NULL) {
4909 var3 = is_nullable;
4910 } else {
4911 if(cltype >= (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->table_size) {
4912 var3 = 0;
4913 } else {
4914 var3 = (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->type_table[cltype] == idtype;
4915 }
4916 }
4917 if (unlikely(!var3)) {
4918 var_class_name = var_key == NULL ? "null" : (((long)var_key&3)?type_info[((long)var_key&3)]:var_key->type)->name;
4919 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "K", var_class_name);
4920 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 784);
4921 fatal_exit(1);
4922 }
4923 {
4924 var4 = standard___standard__ArrayMap___index(var, var_key);
4925 }
4926 var_i = var4;
4927 {
4928 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
4929 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4930 /* <0l:Int> isa OTHER */
4931 var7 = 1; /* easy <0l:Int> isa OTHER*/
4932 if (unlikely(!var7)) {
4933 var_class_name10 = type_standard__Int.name;
4934 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name10);
4935 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
4936 fatal_exit(1);
4937 }
4938 var11 = var_i >= 0l;
4939 var5 = var11;
4940 goto RET_LABEL6;
4941 RET_LABEL6:(void)0;
4942 }
4943 }
4944 if (var5){
4945 {
4946 { /* Inline array#ArrayMapKeys#map (self) on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4947 var14 = self->attrs[COLOR_standard__array__ArrayMapKeys___map].val; /* _map on <self:ArrayMapKeys[nullable Object, nullable Object]> */
4948 if (unlikely(var14 == NULL)) {
4949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4950 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 772);
4951 fatal_exit(1);
4952 }
4953 var12 = var14;
4954 RET_LABEL13:(void)0;
4955 }
4956 }
4957 {
4958 standard___standard__ArrayMap___remove_at_index(var12, var_i); /* Direct call array#ArrayMap#remove_at_index on <var12:ArrayMap[nullable Object, nullable Object]>*/
4959 }
4960 } else {
4961 }
4962 RET_LABEL:;
4963 }
4964 /* method array#ArrayMapKeys#init for (self: ArrayMapKeys[nullable Object, nullable Object]) */
4965 void standard__array___standard__array__ArrayMapKeys___standard__kernel__Object__init(val* self) {
4966 {
4967 ((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayMapKeys___standard__kernel__Object__init]))(self); /* init on <self:ArrayMapKeys[nullable Object, nullable Object]>*/
4968 }
4969 RET_LABEL:;
4970 }
4971 /* method array#ArrayMapValues#map for (self: ArrayMapValues[nullable Object, nullable Object]): ArrayMap[nullable Object, nullable Object] */
4972 val* standard__array___standard__array__ArrayMapValues___map(val* self) {
4973 val* var /* : ArrayMap[nullable Object, nullable Object] */;
4974 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
4975 var1 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
4976 if (unlikely(var1 == NULL)) {
4977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
4978 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
4979 fatal_exit(1);
4980 }
4981 var = var1;
4982 RET_LABEL:;
4983 return var;
4984 }
4985 /* method array#ArrayMapValues#map= for (self: ArrayMapValues[nullable Object, nullable Object], ArrayMap[nullable Object, nullable Object]) */
4986 void standard__array___standard__array__ArrayMapValues___map_61d(val* self, val* p0) {
4987 short int var /* : Bool */;
4988 int cltype;
4989 int idtype;
4990 const struct type* type_struct;
4991 const char* var_class_name;
4992 /* Covariant cast for argument 0 (map) <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
4993 /* <p0:ArrayMap[nullable Object, nullable Object]> isa ArrayMap[K, E] */
4994 type_struct = self->type->resolution_table->types[COLOR_standard__ArrayMap__standard__array__ArrayMapValues___35dK__standard__array__ArrayMapValues___35dE];
4995 cltype = type_struct->color;
4996 idtype = type_struct->id;
4997 if(cltype >= p0->type->table_size) {
4998 var = 0;
4999 } else {
5000 var = p0->type->type_table[cltype] == idtype;
5001 }
5002 if (unlikely(!var)) {
5003 var_class_name = p0 == NULL ? "null" : p0->type->name;
5004 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ArrayMap[K, E]", var_class_name);
5005 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5006 fatal_exit(1);
5007 }
5008 self->attrs[COLOR_standard__array__ArrayMapValues___map].val = p0; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5009 RET_LABEL:;
5010 }
5011 /* method array#ArrayMapValues#first for (self: ArrayMapValues[nullable Object, nullable Object]): nullable Object */
5012 val* standard__array___standard__array__ArrayMapValues___standard__abstract_collection__Collection__first(val* self) {
5013 val* var /* : nullable Object */;
5014 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5015 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5016 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
5017 val* var5 /* : nullable Object */;
5018 val* var6 /* : nullable Object */;
5019 val* var8 /* : nullable Object */;
5020 {
5021 { /* Inline array#ArrayMapValues#map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5022 var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5023 if (unlikely(var3 == NULL)) {
5024 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5025 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5026 fatal_exit(1);
5027 }
5028 var1 = var3;
5029 RET_LABEL2:(void)0;
5030 }
5031 }
5032 var4 = var1->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <var1:ArrayMap[nullable Object, nullable Object]> */
5033 if (unlikely(var4 == NULL)) {
5034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5035 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 794);
5036 fatal_exit(1);
5037 }
5038 {
5039 var5 = standard___standard__SequenceRead___Collection__first(var4);
5040 }
5041 {
5042 { /* Inline abstract_collection#Couple#second (var5) on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
5043 var8 = var5->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on <var5:nullable Object(Couple[nullable Object, nullable Object])> */
5044 var6 = var8;
5045 RET_LABEL7:(void)0;
5046 }
5047 }
5048 var = var6;
5049 goto RET_LABEL;
5050 RET_LABEL:;
5051 return var;
5052 }
5053 /* method array#ArrayMapValues#is_empty for (self: ArrayMapValues[nullable Object, nullable Object]): Bool */
5054 short int standard__array___standard__array__ArrayMapValues___standard__abstract_collection__Collection__is_empty(val* self) {
5055 short int var /* : Bool */;
5056 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5057 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5058 short int var4 /* : Bool */;
5059 {
5060 { /* Inline array#ArrayMapValues#map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5061 var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5062 if (unlikely(var3 == NULL)) {
5063 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5064 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5065 fatal_exit(1);
5066 }
5067 var1 = var3;
5068 RET_LABEL2:(void)0;
5069 }
5070 }
5071 {
5072 var4 = standard___standard__ArrayMap___standard__abstract_collection__MapRead__is_empty(var1);
5073 }
5074 var = var4;
5075 goto RET_LABEL;
5076 RET_LABEL:;
5077 return var;
5078 }
5079 /* method array#ArrayMapValues#length for (self: ArrayMapValues[nullable Object, nullable Object]): Int */
5080 long standard__array___standard__array__ArrayMapValues___standard__abstract_collection__Collection__length(val* self) {
5081 long var /* : Int */;
5082 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5083 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5084 long var4 /* : Int */;
5085 {
5086 { /* Inline array#ArrayMapValues#map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5087 var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5088 if (unlikely(var3 == NULL)) {
5089 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5090 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5091 fatal_exit(1);
5092 }
5093 var1 = var3;
5094 RET_LABEL2:(void)0;
5095 }
5096 }
5097 {
5098 var4 = standard___standard__ArrayMap___standard__abstract_collection__MapRead__length(var1);
5099 }
5100 var = var4;
5101 goto RET_LABEL;
5102 RET_LABEL:;
5103 return var;
5104 }
5105 /* method array#ArrayMapValues#iterator for (self: ArrayMapValues[nullable Object, nullable Object]): Iterator[nullable Object] */
5106 val* standard__array___standard__array__ArrayMapValues___standard__abstract_collection__Collection__iterator(val* self) {
5107 val* var /* : Iterator[nullable Object] */;
5108 val* var1 /* : MapValuesIterator[nullable Object, nullable Object] */;
5109 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
5110 val* var4 /* : ArrayMap[nullable Object, nullable Object] */;
5111 val* var5 /* : MapIterator[nullable Object, nullable Object] */;
5112 var1 = NEW_standard__MapValuesIterator(self->type->resolution_table->types[COLOR_standard__MapValuesIterator__standard__array__ArrayMapValues___35dK__standard__array__ArrayMapValues___35dE]);
5113 {
5114 { /* Inline array#ArrayMapValues#map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5115 var4 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5116 if (unlikely(var4 == NULL)) {
5117 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5118 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5119 fatal_exit(1);
5120 }
5121 var2 = var4;
5122 RET_LABEL3:(void)0;
5123 }
5124 }
5125 {
5126 var5 = standard___standard__CoupleMap___MapRead__iterator(var2);
5127 }
5128 {
5129 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_standard__abstract_collection__MapValuesIterator__original_iterator_61d]))(var1, var5); /* original_iterator= on <var1:MapValuesIterator[nullable Object, nullable Object]>*/
5130 }
5131 {
5132 ((void(*)(val* self))(var1->class->vft[COLOR_standard__kernel__Object__init]))(var1); /* init on <var1:MapValuesIterator[nullable Object, nullable Object]>*/
5133 }
5134 var = var1;
5135 goto RET_LABEL;
5136 RET_LABEL:;
5137 return var;
5138 }
5139 /* method array#ArrayMapValues#has for (self: ArrayMapValues[nullable Object, nullable Object], nullable Object): Bool */
5140 short int standard__array___standard__array__ArrayMapValues___standard__abstract_collection__Collection__has(val* self, val* p0) {
5141 short int var /* : Bool */;
5142 val* var_item /* var item: nullable Object */;
5143 val* var1 /* : ArrayMap[nullable Object, nullable Object] */;
5144 val* var3 /* : ArrayMap[nullable Object, nullable Object] */;
5145 val* var4 /* : Array[Couple[nullable Object, nullable Object]] */;
5146 val* var_ /* var : Array[Couple[nullable Object, nullable Object]] */;
5147 val* var5 /* : ArrayIterator[nullable Object] */;
5148 val* var_6 /* var : ArrayIterator[Couple[nullable Object, nullable Object]] */;
5149 short int var7 /* : Bool */;
5150 val* var8 /* : nullable Object */;
5151 val* var_i /* var i: Couple[nullable Object, nullable Object] */;
5152 val* var9 /* : nullable Object */;
5153 val* var11 /* : nullable Object */;
5154 short int var12 /* : Bool */;
5155 short int var13 /* : Bool */;
5156 var_item = p0;
5157 {
5158 { /* Inline array#ArrayMapValues#map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5159 var3 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5160 if (unlikely(var3 == NULL)) {
5161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5162 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5163 fatal_exit(1);
5164 }
5165 var1 = var3;
5166 RET_LABEL2:(void)0;
5167 }
5168 }
5169 var4 = var1->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <var1:ArrayMap[nullable Object, nullable Object]> */
5170 if (unlikely(var4 == NULL)) {
5171 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5172 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 802);
5173 fatal_exit(1);
5174 }
5175 var_ = var4;
5176 {
5177 var5 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
5178 }
5179 var_6 = var5;
5180 for(;;) {
5181 {
5182 var7 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_6);
5183 }
5184 if (var7){
5185 {
5186 var8 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_6);
5187 }
5188 var_i = var8;
5189 {
5190 { /* Inline abstract_collection#Couple#second (var_i) on <var_i:Couple[nullable Object, nullable Object]> */
5191 var11 = var_i->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on <var_i:Couple[nullable Object, nullable Object]> */
5192 var9 = var11;
5193 RET_LABEL10:(void)0;
5194 }
5195 }
5196 if (var9 == NULL) {
5197 var12 = (var_item == NULL);
5198 } else {
5199 var13 = ((short int(*)(val* self, val* p0))((((long)var9&3)?class_info[((long)var9&3)]:var9->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var9, var_item); /* == on <var9:nullable Object>*/
5200 var12 = var13;
5201 }
5202 if (var12){
5203 var = 1;
5204 goto RET_LABEL;
5205 } else {
5206 }
5207 {
5208 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_6); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[Couple[nullable Object, nullable Object]]>*/
5209 }
5210 } else {
5211 goto BREAK_label;
5212 }
5213 }
5214 BREAK_label: (void)0;
5215 {
5216 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__finish(var_6); /* Direct call array#ArrayIterator#finish on <var_6:ArrayIterator[Couple[nullable Object, nullable Object]]>*/
5217 }
5218 var = 0;
5219 goto RET_LABEL;
5220 RET_LABEL:;
5221 return var;
5222 }
5223 /* method array#ArrayMapValues#clear for (self: ArrayMapValues[nullable Object, nullable Object]) */
5224 void standard__array___standard__array__ArrayMapValues___standard__abstract_collection__RemovableCollection__clear(val* self) {
5225 val* var /* : ArrayMap[nullable Object, nullable Object] */;
5226 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
5227 {
5228 { /* Inline array#ArrayMapValues#map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5229 var2 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5230 if (unlikely(var2 == NULL)) {
5231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5232 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5233 fatal_exit(1);
5234 }
5235 var = var2;
5236 RET_LABEL1:(void)0;
5237 }
5238 }
5239 {
5240 standard___standard__ArrayMap___standard__abstract_collection__Map__clear(var); /* Direct call array#ArrayMap#clear on <var:ArrayMap[nullable Object, nullable Object]>*/
5241 }
5242 RET_LABEL:;
5243 }
5244 /* method array#ArrayMapValues#remove for (self: ArrayMapValues[nullable Object, nullable Object], nullable Object) */
5245 void standard__array___standard__array__ArrayMapValues___standard__abstract_collection__RemovableCollection__remove(val* self, val* p0) {
5246 val* var_item /* var item: nullable Object */;
5247 val* var /* : ArrayMap[nullable Object, nullable Object] */;
5248 val* var2 /* : ArrayMap[nullable Object, nullable Object] */;
5249 val* var_map /* var map: ArrayMap[nullable Object, nullable Object] */;
5250 val* var3 /* : Array[Couple[nullable Object, nullable Object]] */;
5251 long var4 /* : Int */;
5252 long var6 /* : Int */;
5253 long var7 /* : Int */;
5254 short int var9 /* : Bool */;
5255 int cltype;
5256 int idtype;
5257 const char* var_class_name;
5258 long var10 /* : Int */;
5259 long var_i /* var i: Int */;
5260 short int var11 /* : Bool */;
5261 short int var13 /* : Bool */;
5262 int cltype14;
5263 int idtype15;
5264 const char* var_class_name16;
5265 short int var17 /* : Bool */;
5266 val* var18 /* : Array[Couple[nullable Object, nullable Object]] */;
5267 val* var19 /* : nullable Object */;
5268 val* var20 /* : nullable Object */;
5269 val* var22 /* : nullable Object */;
5270 short int var23 /* : Bool */;
5271 short int var24 /* : Bool */;
5272 long var25 /* : Int */;
5273 short int var27 /* : Bool */;
5274 int cltype28;
5275 int idtype29;
5276 const char* var_class_name30;
5277 long var31 /* : Int */;
5278 var_item = p0;
5279 {
5280 { /* Inline array#ArrayMapValues#map (self) on <self:ArrayMapValues[nullable Object, nullable Object]> */
5281 var2 = self->attrs[COLOR_standard__array__ArrayMapValues___map].val; /* _map on <self:ArrayMapValues[nullable Object, nullable Object]> */
5282 if (unlikely(var2 == NULL)) {
5283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5284 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 792);
5285 fatal_exit(1);
5286 }
5287 var = var2;
5288 RET_LABEL1:(void)0;
5289 }
5290 }
5291 var_map = var;
5292 var3 = var_map->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <var_map:ArrayMap[nullable Object, nullable Object]> */
5293 if (unlikely(var3 == NULL)) {
5294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5295 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 826);
5296 fatal_exit(1);
5297 }
5298 {
5299 { /* Inline array#AbstractArrayRead#length (var3) on <var3:Array[Couple[nullable Object, nullable Object]]> */
5300 var6 = var3->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var3:Array[Couple[nullable Object, nullable Object]]> */
5301 var4 = var6;
5302 RET_LABEL5:(void)0;
5303 }
5304 }
5305 {
5306 { /* Inline kernel#Int#- (var4,1l) on <var4:Int> */
5307 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5308 /* <1l:Int> isa OTHER */
5309 var9 = 1; /* easy <1l:Int> isa OTHER*/
5310 if (unlikely(!var9)) {
5311 var_class_name = type_standard__Int.name;
5312 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5313 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
5314 fatal_exit(1);
5315 }
5316 var10 = var4 - 1l;
5317 var7 = var10;
5318 goto RET_LABEL8;
5319 RET_LABEL8:(void)0;
5320 }
5321 }
5322 var_i = var7;
5323 for(;;) {
5324 {
5325 { /* Inline kernel#Int#>= (var_i,0l) on <var_i:Int> */
5326 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
5327 /* <0l:Int> isa OTHER */
5328 var13 = 1; /* easy <0l:Int> isa OTHER*/
5329 if (unlikely(!var13)) {
5330 var_class_name16 = type_standard__Int.name;
5331 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name16);
5332 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 535);
5333 fatal_exit(1);
5334 }
5335 var17 = var_i >= 0l;
5336 var11 = var17;
5337 goto RET_LABEL12;
5338 RET_LABEL12:(void)0;
5339 }
5340 }
5341 if (var11){
5342 var18 = var_map->attrs[COLOR_standard__array__ArrayMap___items].val; /* _items on <var_map:ArrayMap[nullable Object, nullable Object]> */
5343 if (unlikely(var18 == NULL)) {
5344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _items");
5345 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 828);
5346 fatal_exit(1);
5347 }
5348 {
5349 var19 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var18, var_i);
5350 }
5351 {
5352 { /* Inline abstract_collection#Couple#second (var19) on <var19:nullable Object(Couple[nullable Object, nullable Object])> */
5353 var22 = var19->attrs[COLOR_standard__abstract_collection__Couple___second].val; /* _second on <var19:nullable Object(Couple[nullable Object, nullable Object])> */
5354 var20 = var22;
5355 RET_LABEL21:(void)0;
5356 }
5357 }
5358 if (var20 == NULL) {
5359 var23 = (var_item == NULL);
5360 } else {
5361 var24 = ((short int(*)(val* self, val* p0))((((long)var20&3)?class_info[((long)var20&3)]:var20->class)->vft[COLOR_standard__kernel__Object___61d_61d]))(var20, var_item); /* == on <var20:nullable Object>*/
5362 var23 = var24;
5363 }
5364 if (var23){
5365 {
5366 standard___standard__ArrayMap___remove_at_index(var_map, var_i); /* Direct call array#ArrayMap#remove_at_index on <var_map:ArrayMap[nullable Object, nullable Object]>*/
5367 }
5368 goto RET_LABEL;
5369 } else {
5370 }
5371 {
5372 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
5373 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5374 /* <1l:Int> isa OTHER */
5375 var27 = 1; /* easy <1l:Int> isa OTHER*/
5376 if (unlikely(!var27)) {
5377 var_class_name30 = type_standard__Int.name;
5378 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
5379 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 540);
5380 fatal_exit(1);
5381 }
5382 var31 = var_i - 1l;
5383 var25 = var31;
5384 goto RET_LABEL26;
5385 RET_LABEL26:(void)0;
5386 }
5387 }
5388 var_i = var25;
5389 } else {
5390 goto BREAK_label;
5391 }
5392 }
5393 BREAK_label: (void)0;
5394 RET_LABEL:;
5395 }
5396 /* method array#ArrayMapValues#init for (self: ArrayMapValues[nullable Object, nullable Object]) */
5397 void standard__array___standard__array__ArrayMapValues___standard__kernel__Object__init(val* self) {
5398 {
5399 ((void(*)(val* self))(self->class->vft[COLOR_standard__array___standard__array__ArrayMapValues___standard__kernel__Object__init]))(self); /* init on <self:ArrayMapValues[nullable Object, nullable Object]>*/
5400 }
5401 RET_LABEL:;
5402 }
5403 /* method array#Iterator#to_a for (self: Iterator[nullable Object]): Array[nullable Object] */
5404 val* standard__array___Iterator___to_a(val* self) {
5405 val* var /* : Array[nullable Object] */;
5406 val* var1 /* : Array[nullable Object] */;
5407 val* var_res /* var res: Array[nullable Object] */;
5408 short int var2 /* : Bool */;
5409 val* var3 /* : nullable Object */;
5410 var1 = NEW_standard__Array((((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Array__standard__Iterator___35dE]);
5411 {
5412 standard___standard__Array___standard__kernel__Object__init(var1); /* Direct call array#Array#init on <var1:Array[nullable Object]>*/
5413 }
5414 var_res = var1;
5415 for(;;) {
5416 {
5417 var2 = ((short int(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(self); /* is_ok on <self:Iterator[nullable Object]>*/
5418 }
5419 if (var2){
5420 {
5421 var3 = ((val*(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Iterator__item]))(self); /* item on <self:Iterator[nullable Object]>*/
5422 }
5423 {
5424 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var3); /* Direct call array#Array#add on <var_res:Array[nullable Object]>*/
5425 }
5426 {
5427 ((void(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Iterator__next]))(self); /* next on <self:Iterator[nullable Object]>*/
5428 }
5429 } else {
5430 goto BREAK_label;
5431 }
5432 }
5433 BREAK_label: (void)0;
5434 var = var_res;
5435 goto RET_LABEL;
5436 RET_LABEL:;
5437 return var;
5438 }
5439 /* method array#Collection#to_a for (self: Collection[nullable Object]): Array[nullable Object] */
5440 val* standard__array___Collection___to_a(val* self) {
5441 val* var /* : Array[nullable Object] */;
5442 val* var1 /* : Array[nullable Object] */;
5443 long var2 /* : Int */;
5444 val* var_res /* var res: Array[nullable Object] */;
5445 var1 = NEW_standard__Array((((long)self&3)?type_info[((long)self&3)]:self->type)->resolution_table->types[COLOR_standard__Array__standard__Collection___35dE]);
5446 {
5447 var2 = ((long(*)(val* self))((((long)self&3)?class_info[((long)self&3)]:self->class)->vft[COLOR_standard__abstract_collection__Collection__length]))(self); /* length on <self:Collection[nullable Object]>*/
5448 }
5449 {
5450 standard___standard__Array___with_capacity(var1, var2); /* Direct call array#Array#with_capacity on <var1:Array[nullable Object]>*/
5451 }
5452 var_res = var1;
5453 {
5454 standard___standard__Array___standard__abstract_collection__SimpleCollection__add_all(var_res, self); /* Direct call array#Array#add_all on <var_res:Array[nullable Object]>*/
5455 }
5456 var = var_res;
5457 goto RET_LABEL;
5458 RET_LABEL:;
5459 return var;
5460 }
5461 /* method array#NativeArray#new for (self: NativeArray[nullable Object], Int): NativeArray[nullable Object] */
5462 val* standard___standard__NativeArray___new(val* self, long p0) {
5463 val* var /* : NativeArray[nullable Object] */;
5464 RET_LABEL:;
5465 return var;
5466 }
5467 /* method array#NativeArray#length for (self: NativeArray[nullable Object]): Int */
5468 long standard___standard__NativeArray___length(val* self) {
5469 long var /* : Int */;
5470 long var1 /* : Int */;
5471 var1 = ((struct instance_standard__NativeArray*)self)->length;
5472 var = var1;
5473 goto RET_LABEL;
5474 RET_LABEL:;
5475 return var;
5476 }
5477 /* method array#NativeArray#[] for (self: NativeArray[nullable Object], Int): nullable Object */
5478 val* standard___standard__NativeArray____91d_93d(val* self, long p0) {
5479 val* var /* : nullable Object */;
5480 val* var1 /* : Object */;
5481 var1 = ((struct instance_standard__NativeArray*)self)->values[p0];
5482 var = var1;
5483 goto RET_LABEL;
5484 RET_LABEL:;
5485 return var;
5486 }
5487 /* method array#NativeArray#[]= for (self: NativeArray[nullable Object], Int, nullable Object) */
5488 void standard___standard__NativeArray____91d_93d_61d(val* self, long p0, val* p1) {
5489 short int var /* : Bool */;
5490 int cltype;
5491 int idtype;
5492 const struct type* type_struct;
5493 short int is_nullable;
5494 const char* var_class_name;
5495 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
5496 /* <p1:nullable Object> isa E */
5497 type_struct = self->type->resolution_table->types[COLOR_standard__NativeArray___35dE];
5498 cltype = type_struct->color;
5499 idtype = type_struct->id;
5500 is_nullable = type_struct->is_nullable;
5501 if(p1 == NULL) {
5502 var = is_nullable;
5503 } else {
5504 if(cltype >= (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->table_size) {
5505 var = 0;
5506 } else {
5507 var = (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->type_table[cltype] == idtype;
5508 }
5509 }
5510 if (unlikely(!var)) {
5511 var_class_name = p1 == NULL ? "null" : (((long)p1&3)?type_info[((long)p1&3)]:p1->type)->name;
5512 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name);
5513 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 957);
5514 fatal_exit(1);
5515 }
5516 ((struct instance_standard__NativeArray*)self)->values[p0]=p1;
5517 RET_LABEL:;
5518 }
5519 /* method array#NativeArray#copy_to for (self: NativeArray[nullable Object], NativeArray[nullable Object], Int) */
5520 void standard___standard__NativeArray___copy_to(val* self, val* p0, long p1) {
5521 short int var /* : Bool */;
5522 int cltype;
5523 int idtype;
5524 const struct type* type_struct;
5525 const char* var_class_name;
5526 /* Covariant cast for argument 0 (dest) <p0:NativeArray[nullable Object]> isa NativeArray[E] */
5527 /* <p0:NativeArray[nullable Object]> isa NativeArray[E] */
5528 type_struct = self->type->resolution_table->types[COLOR_standard__NativeArray__standard__NativeArray___35dE];
5529 cltype = type_struct->color;
5530 idtype = type_struct->id;
5531 if(cltype >= p0->type->table_size) {
5532 var = 0;
5533 } else {
5534 var = p0->type->type_table[cltype] == idtype;
5535 }
5536 if (unlikely(!var)) {
5537 var_class_name = p0 == NULL ? "null" : p0->type->name;
5538 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "NativeArray[E]", var_class_name);
5539 PRINT_ERROR(" (%s:%d)\n", FILE_standard__array, 960);
5540 fatal_exit(1);
5541 }
5542 memmove(((struct instance_standard__NativeArray*)p0)->values, ((struct instance_standard__NativeArray*)self)->values, p1*sizeof(val*));
5543 RET_LABEL:;
5544 }