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