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