1 #include "core__list.sep.0.h"
2 /* method list$List$[] for (self: List[nullable Object], Int): nullable Object */
3 val
* core___core__List___core__abstract_collection__SequenceRead___91d_93d(val
* self
, long p0
) {
4 val
* var
/* : nullable Object */;
5 long var_index
/* var index: Int */;
6 val
* var1
/* : nullable ListNode[nullable Object] */;
7 val
* var2
/* : nullable Object */;
8 val
* var4
/* : nullable Object */;
11 var1
= core___core__List___get_node(self
, var_index
);
13 if (unlikely(var1
== NULL
)) {
14 if(catchStack
.cursor
>= 0){
15 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
17 PRINT_ERROR("Runtime error: %s", "Cast failed");
18 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 24);
22 { /* Inline abstract_collection$Ref$item (var1) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
23 var4
= var1
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
33 /* method list$List$[]= for (self: List[nullable Object], Int, nullable Object) */
34 void core___core__List___core__abstract_collection__Sequence___91d_93d_61d(val
* self
, long p0
, val
* p1
) {
35 short int var
/* : Bool */;
38 const struct type
* type_struct
;
39 short int is_nullable
;
40 const char* var_class_name
;
41 long var_index
/* var index: Int */;
42 val
* var_item
/* var item: nullable Object */;
43 val
* var1
/* : nullable ListNode[nullable Object] */;
44 short int var3
/* : Bool */;
47 const struct type
* type_struct6
;
48 short int is_nullable7
;
49 const char* var_class_name8
;
50 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
51 /* <p1:nullable Object> isa E */
52 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
53 cltype
= type_struct
->color
;
54 idtype
= type_struct
->id
;
55 is_nullable
= type_struct
->is_nullable
;
59 if(cltype
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
62 var
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
66 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->name
;
67 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
68 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 26);
74 var1
= core___core__List___get_node(self
, var_index
);
76 if (unlikely(var1
== NULL
)) {
77 if(catchStack
.cursor
>= 0){
78 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
80 PRINT_ERROR("Runtime error: %s", "Cast failed");
81 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 26);
85 { /* Inline abstract_collection$Ref$item= (var1,var_item) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
86 /* Covariant cast for argument 0 (item) <var_item:nullable Object> isa E */
87 /* <var_item:nullable Object> isa E */
88 type_struct6
= var1
->type
->resolution_table
->types
[COLOR_core__Ref___35dE
];
89 cltype4
= type_struct6
->color
;
90 idtype5
= type_struct6
->id
;
91 is_nullable7
= type_struct6
->is_nullable
;
92 if(var_item
== NULL
) {
95 if(cltype4
>= (((long)var_item
&3)?type_info
[((long)var_item
&3)]:var_item
->type
)->table_size
) {
98 var3
= (((long)var_item
&3)?type_info
[((long)var_item
&3)]:var_item
->type
)->type_table
[cltype4
] == idtype5
;
101 if (unlikely(!var3
)) {
102 var_class_name8
= var_item
== NULL ?
"null" : (((long)var_item
&3)?type_info
[((long)var_item
&3)]:var_item
->type
)->name
;
103 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name8
);
104 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection
, 340);
107 var1
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
= var_item
; /* _item on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
113 /* method list$List$first for (self: List[nullable Object]): nullable Object */
114 val
* core___core__List___core__abstract_collection__Collection__first(val
* self
) {
115 val
* var
/* : nullable Object */;
116 val
* var1
/* : nullable ListNode[nullable Object] */;
117 val
* var2
/* : nullable Object */;
118 val
* var4
/* : nullable Object */;
119 var1
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
120 if (unlikely(var1
== NULL
)) {
121 if(catchStack
.cursor
>= 0){
122 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
124 PRINT_ERROR("Runtime error: %s", "Cast failed");
125 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 29);
129 { /* Inline abstract_collection$Ref$item (var1) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
130 var4
= var1
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
140 /* method list$List$first= for (self: List[nullable Object], nullable Object) */
141 void core___core__List___core__abstract_collection__Sequence__first_61d(val
* self
, val
* p0
) {
142 short int var
/* : Bool */;
145 const struct type
* type_struct
;
146 short int is_nullable
;
147 const char* var_class_name
;
148 val
* var_e
/* var e: nullable Object */;
149 val
* var1
/* : nullable ListNode[nullable Object] */;
150 short int var3
/* : Bool */;
153 const struct type
* type_struct6
;
154 short int is_nullable7
;
155 const char* var_class_name8
;
156 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
157 /* <p0:nullable Object> isa E */
158 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
159 cltype
= type_struct
->color
;
160 idtype
= type_struct
->id
;
161 is_nullable
= type_struct
->is_nullable
;
165 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
168 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
171 if (unlikely(!var
)) {
172 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
173 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
174 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 31);
178 var1
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
179 if (unlikely(var1
== NULL
)) {
180 if(catchStack
.cursor
>= 0){
181 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
183 PRINT_ERROR("Runtime error: %s", "Cast failed");
184 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 32);
188 { /* Inline abstract_collection$Ref$item= (var1,var_e) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
189 /* Covariant cast for argument 0 (item) <var_e:nullable Object> isa E */
190 /* <var_e:nullable Object> isa E */
191 type_struct6
= var1
->type
->resolution_table
->types
[COLOR_core__Ref___35dE
];
192 cltype4
= type_struct6
->color
;
193 idtype5
= type_struct6
->id
;
194 is_nullable7
= type_struct6
->is_nullable
;
198 if(cltype4
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
201 var3
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype4
] == idtype5
;
204 if (unlikely(!var3
)) {
205 var_class_name8
= var_e
== NULL ?
"null" : (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->name
;
206 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name8
);
207 PRINT_ERROR(" (%s:%d)\n", FILE_core__abstract_collection
, 340);
210 var1
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
= var_e
; /* _item on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
216 /* method list$List$last for (self: List[nullable Object]): nullable Object */
217 val
* core___core__List___core__abstract_collection__SequenceRead__last(val
* self
) {
218 val
* var
/* : nullable Object */;
219 val
* var1
/* : nullable ListNode[nullable Object] */;
220 val
* var2
/* : nullable Object */;
221 val
* var4
/* : nullable Object */;
222 var1
= self
->attrs
[COLOR_core__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
223 if (unlikely(var1
== NULL
)) {
224 if(catchStack
.cursor
>= 0){
225 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
227 PRINT_ERROR("Runtime error: %s", "Cast failed");
228 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 35);
232 { /* Inline abstract_collection$Ref$item (var1) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
233 var4
= var1
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
243 /* method list$List$is_empty for (self: List[nullable Object]): Bool */
244 short int core___core__List___core__abstract_collection__Collection__is_empty(val
* self
) {
245 short int var
/* : Bool */;
246 val
* var1
/* : nullable ListNode[nullable Object] */;
247 short int var2
/* : Bool */;
248 short int var3
/* : Bool */;
249 val
* var_other
/* var other: nullable Object */;
250 short int var5
/* : Bool */;
251 short int var7
/* : Bool */;
252 var1
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
254 var2
= 1; /* is null */
256 var2
= 0; /* arg is null but recv is not */
259 { /* Inline kernel$Object$== (var1,((val*)NULL)) on <var1:nullable ListNode[nullable Object]> */
260 var_other
= ((val
*)NULL
);
262 { /* Inline kernel$Object$is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
263 var7
= var1
== var_other
;
280 /* method list$List$length for (self: List[nullable Object]): Int */
281 long core___core__List___core__abstract_collection__Collection__length(val
* self
) {
282 long var
/* : Int */;
283 long var1
/* : Int */;
284 var1
= self
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <self:List[nullable Object]> */
289 /* method list$List$length= for (self: List[nullable Object], Int) */
290 void core___core__List___length_61d(val
* self
, long p0
) {
291 self
->attrs
[COLOR_core__list__List___length
].l
= p0
; /* _length on <self:List[nullable Object]> */
294 /* method list$List$has for (self: List[nullable Object], nullable Object): Bool */
295 short int core___core__List___core__abstract_collection__Collection__has(val
* self
, val
* p0
) {
296 short int var
/* : Bool */;
297 val
* var_e
/* var e: nullable Object */;
298 short int var1
/* : Bool */;
301 const struct type
* type_struct
;
302 short int is_nullable
;
303 const char* var_class_name
;
304 val
* var2
/* : nullable ListNode[nullable Object] */;
305 val
* var3
/* : nullable ListNode[nullable Object] */;
306 short int var4
/* : Bool */;
307 short int var5
/* : Bool */;
308 val
* var_other
/* var other: nullable Object */;
309 short int var7
/* : Bool */;
310 short int var8
/* : Bool */;
312 /* <var_e:nullable Object> isa E */
313 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
314 cltype
= type_struct
->color
;
315 idtype
= type_struct
->id
;
316 is_nullable
= type_struct
->is_nullable
;
320 if(cltype
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
323 var1
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype
] == idtype
;
326 if (unlikely(!var1
)) {
327 var_class_name
= var_e
== NULL ?
"null" : (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->name
;
328 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
329 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 49);
332 var2
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
334 var3
= core___core__List___search_node_after(self
, var_e
, var2
);
337 var4
= 0; /* is null */
339 var4
= 1; /* arg is null and recv is not */
342 { /* Inline kernel$Object$!= (var3,((val*)NULL)) on <var3:nullable ListNode[nullable Object]> */
343 var_other
= ((val
*)NULL
);
345 var7
= ((short int(*)(val
* self
, val
* p0
))(var3
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var3
, var_other
); /* == on <var3:nullable ListNode[nullable Object](ListNode[nullable Object])>*/
359 /* method list$List$count for (self: List[nullable Object], nullable Object): Int */
360 long core___core__List___core__abstract_collection__Collection__count(val
* self
, val
* p0
) {
361 long var
/* : Int */;
362 val
* var_e
/* var e: nullable Object */;
363 long var_nb
/* var nb: Int */;
364 val
* var1
/* : nullable ListNode[nullable Object] */;
365 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
366 short int var2
/* : Bool */;
367 short int var3
/* : Bool */;
368 val
* var_other
/* var other: nullable Object */;
369 short int var5
/* : Bool */;
370 short int var6
/* : Bool */;
371 val
* var7
/* : nullable Object */;
372 val
* var9
/* : nullable Object */;
373 short int var10
/* : Bool */;
374 short int var11
/* : Bool */;
375 long var12
/* : Int */;
376 short int var14
/* : Bool */;
379 const char* var_class_name
;
380 long var15
/* : Int */;
381 val
* var16
/* : nullable ListNode[nullable Object] */;
382 val
* var18
/* : nullable ListNode[nullable Object] */;
385 var1
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
388 if (var_node
== NULL
) {
389 var2
= 0; /* is null */
391 var2
= 1; /* arg is null and recv is not */
394 { /* Inline kernel$Object$!= (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
395 var_other
= ((val
*)NULL
);
397 var5
= ((short int(*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_node
, var_other
); /* == on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/
408 { /* Inline abstract_collection$Ref$item (var_node) on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
409 var9
= var_node
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
415 var10
= (var_e
!= NULL
);
417 var11
= ((short int(*)(val
* self
, val
* p0
))((((long)var7
&3)?class_info
[((long)var7
&3)]:var7
->class)->vft
[COLOR_core__kernel__Object___33d_61d
]))(var7
, var_e
); /* != on <var7:nullable Object>*/
422 { /* Inline kernel$Int$+ (var_nb,1l) on <var_nb:Int> */
423 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
424 /* <1l:Int> isa OTHER */
425 var14
= 1; /* easy <1l:Int> isa OTHER*/
426 if (unlikely(!var14
)) {
427 var_class_name
= type_core__Int
.name
;
428 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
429 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
442 { /* Inline list$ListNode$next (var_node) on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
443 var18
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
453 BREAK_label
: (void)0;
459 /* method list$List$push for (self: List[nullable Object], nullable Object) */
460 void core___core__List___core__abstract_collection__Sequence__push(val
* self
, val
* p0
) {
461 short int var
/* : Bool */;
464 const struct type
* type_struct
;
465 short int is_nullable
;
466 const char* var_class_name
;
467 val
* var_e
/* var e: nullable Object */;
468 val
* var1
/* : ListNode[nullable Object] */;
469 val
* var_node
/* var node: ListNode[nullable Object] */;
470 val
* var2
/* : nullable ListNode[nullable Object] */;
471 val
* var_tail
/* var tail: nullable ListNode[nullable Object] */;
472 short int var3
/* : Bool */;
473 short int var4
/* : Bool */;
474 val
* var_other
/* var other: nullable Object */;
475 short int var6
/* : Bool */;
476 short int var8
/* : Bool */;
477 short int var10
/* : Bool */;
480 const struct type
* type_struct13
;
481 const char* var_class_name14
;
482 short int var16
/* : Bool */;
485 const struct type
* type_struct19
;
486 const char* var_class_name20
;
487 val
* var_
/* var : List[nullable Object] */;
488 long var21
/* : Int */;
489 long var23
/* : Int */;
490 long var24
/* : Int */;
491 short int var26
/* : Bool */;
494 const char* var_class_name29
;
495 long var30
/* : Int */;
496 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
497 /* <p0:nullable Object> isa E */
498 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
499 cltype
= type_struct
->color
;
500 idtype
= type_struct
->id
;
501 is_nullable
= type_struct
->is_nullable
;
505 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
508 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
511 if (unlikely(!var
)) {
512 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
513 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
514 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 86);
518 var1
= NEW_core__list__ListNode(self
->type
->resolution_table
->types
[COLOR_core__list__ListNode__core__List___35dE
]);
520 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_core__abstract_collection__Ref__item_61d
]))(var1
, var_e
); /* item= on <var1:ListNode[nullable Object]>*/
523 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_core__kernel__Object__init
]))(var1
); /* init on <var1:ListNode[nullable Object]>*/
526 var2
= self
->attrs
[COLOR_core__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
528 if (var_tail
== NULL
) {
529 var3
= 1; /* is null */
531 var3
= 0; /* arg is null but recv is not */
534 { /* Inline kernel$Object$== (var_tail,((val*)NULL)) on <var_tail:nullable ListNode[nullable Object]> */
535 var_other
= ((val
*)NULL
);
537 { /* Inline kernel$Object$is_same_instance (var_tail,var_other) on <var_tail:nullable ListNode[nullable Object](ListNode[nullable Object])> */
538 var8
= var_tail
== var_other
;
551 self
->attrs
[COLOR_core__list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
554 { /* Inline list$ListNode$next= (var_tail,var_node) on <var_tail:nullable ListNode[nullable Object](ListNode[nullable Object])> */
555 /* Covariant cast for argument 0 (next) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
556 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
557 type_struct13
= var_tail
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
558 cltype11
= type_struct13
->color
;
559 idtype12
= type_struct13
->id
;
560 if(cltype11
>= var_node
->type
->table_size
) {
563 var10
= var_node
->type
->type_table
[cltype11
] == idtype12
;
565 if (unlikely(!var10
)) {
566 var_class_name14
= var_node
== NULL ?
"null" : var_node
->type
->name
;
567 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name14
);
568 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
571 var_tail
->attrs
[COLOR_core__list__ListNode___next
].val
= var_node
; /* _next on <var_tail:nullable ListNode[nullable Object](ListNode[nullable Object])> */
576 { /* Inline list$ListNode$prev= (var_node,var_tail) on <var_node:ListNode[nullable Object]> */
577 /* Covariant cast for argument 0 (prev) <var_tail:nullable ListNode[nullable Object](ListNode[nullable Object])> isa nullable ListNode[E] */
578 /* <var_tail:nullable ListNode[nullable Object](ListNode[nullable Object])> isa nullable ListNode[E] */
579 type_struct19
= var_node
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
580 cltype17
= type_struct19
->color
;
581 idtype18
= type_struct19
->id
;
582 if(cltype17
>= var_tail
->type
->table_size
) {
585 var16
= var_tail
->type
->type_table
[cltype17
] == idtype18
;
587 if (unlikely(!var16
)) {
588 var_class_name20
= var_tail
== NULL ?
"null" : var_tail
->type
->name
;
589 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name20
);
590 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
593 var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
= var_tail
; /* _prev on <var_node:ListNode[nullable Object]> */
598 self
->attrs
[COLOR_core__list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
601 { /* Inline list$List$length (var_) on <var_:List[nullable Object]> */
602 var23
= var_
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <var_:List[nullable Object]> */
608 { /* Inline kernel$Int$+ (var21,1l) on <var21:Int> */
609 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
610 /* <1l:Int> isa OTHER */
611 var26
= 1; /* easy <1l:Int> isa OTHER*/
612 if (unlikely(!var26
)) {
613 var_class_name29
= type_core__Int
.name
;
614 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29
);
615 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
625 { /* Inline list$List$length= (var_,var24) on <var_:List[nullable Object]> */
626 var_
->attrs
[COLOR_core__list__List___length
].l
= var24
; /* _length on <var_:List[nullable Object]> */
632 /* method list$List$unshift for (self: List[nullable Object], nullable Object) */
633 void core___core__List___core__abstract_collection__Sequence__unshift(val
* self
, val
* p0
) {
634 short int var
/* : Bool */;
637 const struct type
* type_struct
;
638 short int is_nullable
;
639 const char* var_class_name
;
640 val
* var_e
/* var e: nullable Object */;
641 val
* var1
/* : ListNode[nullable Object] */;
642 val
* var_node
/* var node: ListNode[nullable Object] */;
643 val
* var2
/* : nullable ListNode[nullable Object] */;
644 val
* var_head
/* var head: nullable ListNode[nullable Object] */;
645 short int var3
/* : Bool */;
646 short int var4
/* : Bool */;
647 val
* var_other
/* var other: nullable Object */;
648 short int var6
/* : Bool */;
649 short int var8
/* : Bool */;
650 short int var10
/* : Bool */;
653 const struct type
* type_struct13
;
654 const char* var_class_name14
;
655 short int var16
/* : Bool */;
658 const struct type
* type_struct19
;
659 const char* var_class_name20
;
660 val
* var_
/* var : List[nullable Object] */;
661 long var21
/* : Int */;
662 long var23
/* : Int */;
663 long var24
/* : Int */;
664 short int var26
/* : Bool */;
667 const char* var_class_name29
;
668 long var30
/* : Int */;
669 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
670 /* <p0:nullable Object> isa E */
671 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
672 cltype
= type_struct
->color
;
673 idtype
= type_struct
->id
;
674 is_nullable
= type_struct
->is_nullable
;
678 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
681 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
684 if (unlikely(!var
)) {
685 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
686 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
687 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 101);
691 var1
= NEW_core__list__ListNode(self
->type
->resolution_table
->types
[COLOR_core__list__ListNode__core__List___35dE
]);
693 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_core__abstract_collection__Ref__item_61d
]))(var1
, var_e
); /* item= on <var1:ListNode[nullable Object]>*/
696 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_core__kernel__Object__init
]))(var1
); /* init on <var1:ListNode[nullable Object]>*/
699 var2
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
701 if (var_head
== NULL
) {
702 var3
= 1; /* is null */
704 var3
= 0; /* arg is null but recv is not */
707 { /* Inline kernel$Object$== (var_head,((val*)NULL)) on <var_head:nullable ListNode[nullable Object]> */
708 var_other
= ((val
*)NULL
);
710 { /* Inline kernel$Object$is_same_instance (var_head,var_other) on <var_head:nullable ListNode[nullable Object](ListNode[nullable Object])> */
711 var8
= var_head
== var_other
;
724 self
->attrs
[COLOR_core__list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
727 { /* Inline list$ListNode$next= (var_node,var_head) on <var_node:ListNode[nullable Object]> */
728 /* Covariant cast for argument 0 (next) <var_head:nullable ListNode[nullable Object](ListNode[nullable Object])> isa nullable ListNode[E] */
729 /* <var_head:nullable ListNode[nullable Object](ListNode[nullable Object])> isa nullable ListNode[E] */
730 type_struct13
= var_node
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
731 cltype11
= type_struct13
->color
;
732 idtype12
= type_struct13
->id
;
733 if(cltype11
>= var_head
->type
->table_size
) {
736 var10
= var_head
->type
->type_table
[cltype11
] == idtype12
;
738 if (unlikely(!var10
)) {
739 var_class_name14
= var_head
== NULL ?
"null" : var_head
->type
->name
;
740 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name14
);
741 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
744 var_node
->attrs
[COLOR_core__list__ListNode___next
].val
= var_head
; /* _next on <var_node:ListNode[nullable Object]> */
749 { /* Inline list$ListNode$prev= (var_head,var_node) on <var_head:nullable ListNode[nullable Object](ListNode[nullable Object])> */
750 /* Covariant cast for argument 0 (prev) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
751 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
752 type_struct19
= var_head
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
753 cltype17
= type_struct19
->color
;
754 idtype18
= type_struct19
->id
;
755 if(cltype17
>= var_node
->type
->table_size
) {
758 var16
= var_node
->type
->type_table
[cltype17
] == idtype18
;
760 if (unlikely(!var16
)) {
761 var_class_name20
= var_node
== NULL ?
"null" : var_node
->type
->name
;
762 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name20
);
763 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
766 var_head
->attrs
[COLOR_core__list__ListNode___prev
].val
= var_node
; /* _prev on <var_head:nullable ListNode[nullable Object](ListNode[nullable Object])> */
771 self
->attrs
[COLOR_core__list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
774 { /* Inline list$List$length (var_) on <var_:List[nullable Object]> */
775 var23
= var_
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <var_:List[nullable Object]> */
781 { /* Inline kernel$Int$+ (var21,1l) on <var21:Int> */
782 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
783 /* <1l:Int> isa OTHER */
784 var26
= 1; /* easy <1l:Int> isa OTHER*/
785 if (unlikely(!var26
)) {
786 var_class_name29
= type_core__Int
.name
;
787 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name29
);
788 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
798 { /* Inline list$List$length= (var_,var24) on <var_:List[nullable Object]> */
799 var_
->attrs
[COLOR_core__list__List___length
].l
= var24
; /* _length on <var_:List[nullable Object]> */
805 /* method list$List$insert for (self: List[nullable Object], nullable Object, Int) */
806 void core___core__List___core__abstract_collection__Sequence__insert(val
* self
, val
* p0
, long p1
) {
807 short int var
/* : Bool */;
810 const struct type
* type_struct
;
811 short int is_nullable
;
812 const char* var_class_name
;
813 val
* var_e
/* var e: nullable Object */;
814 long var_i
/* var i: Int */;
815 val
* var1
/* : nullable ListNode[nullable Object] */;
816 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
817 short int var2
/* : Bool */;
818 short int var3
/* : Bool */;
819 val
* var_other
/* var other: nullable Object */;
820 short int var5
/* : Bool */;
821 short int var7
/* : Bool */;
822 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
823 /* <p0:nullable Object> isa E */
824 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
825 cltype
= type_struct
->color
;
826 idtype
= type_struct
->id
;
827 is_nullable
= type_struct
->is_nullable
;
831 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
834 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
837 if (unlikely(!var
)) {
838 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
839 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
840 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 116);
846 var1
= core___core__List___get_node(self
, var_i
);
849 if (var_node
== NULL
) {
850 var2
= 1; /* is null */
852 var2
= 0; /* arg is null but recv is not */
855 { /* Inline kernel$Object$== (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
856 var_other
= ((val
*)NULL
);
858 { /* Inline kernel$Object$is_same_instance (var_node,var_other) on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
859 var7
= var_node
== var_other
;
873 core___core__List___core__abstract_collection__Sequence__push(self
, var_e
); /* Direct call list$List$push on <self:List[nullable Object]>*/
879 core___core__List___insert_before(self
, var_e
, var_node
); /* Direct call list$List$insert_before on <self:List[nullable Object]>*/
883 /* method list$List$pop for (self: List[nullable Object]): nullable Object */
884 val
* core___core__List___core__abstract_collection__Sequence__pop(val
* self
) {
885 val
* var
/* : nullable Object */;
886 val
* var1
/* : nullable ListNode[nullable Object] */;
887 val
* var_node
/* var node: ListNode[nullable Object] */;
888 val
* var2
/* : nullable ListNode[nullable Object] */;
889 val
* var4
/* : nullable ListNode[nullable Object] */;
890 short int var6
/* : Bool */;
893 const char* var_class_name
;
894 val
* var7
/* : nullable ListNode[nullable Object] */;
895 short int var8
/* : Bool */;
896 short int var9
/* : Bool */;
897 val
* var_other
/* var other: nullable Object */;
898 short int var11
/* : Bool */;
899 short int var13
/* : Bool */;
900 val
* var14
/* : nullable ListNode[nullable Object] */;
901 short int var16
/* : Bool */;
904 const char* var_class_name19
;
905 val
* var_
/* var : List[nullable Object] */;
906 long var20
/* : Int */;
907 long var22
/* : Int */;
908 long var23
/* : Int */;
909 short int var25
/* : Bool */;
912 const char* var_class_name28
;
913 long var29
/* : Int */;
914 val
* var31
/* : nullable Object */;
915 val
* var33
/* : nullable Object */;
916 var1
= self
->attrs
[COLOR_core__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
917 if (unlikely(var1
== NULL
)) {
918 if(catchStack
.cursor
>= 0){
919 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
921 PRINT_ERROR("Runtime error: %s", "Cast failed");
922 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 149);
927 { /* Inline list$ListNode$prev (var_node) on <var_node:ListNode[nullable Object]> */
928 var4
= var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
933 self
->attrs
[COLOR_core__list__List___tail
].val
= var2
; /* _tail on <self:List[nullable Object]> */
935 { /* Inline list$ListNode$prev= (var_node,((val*)NULL)) on <var_node:ListNode[nullable Object]> */
936 /* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */
937 /* <((val*)NULL):null> isa nullable ListNode[E] */
938 var6
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
939 if (unlikely(!var6
)) {
940 var_class_name
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
941 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
942 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
945 var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
= ((val
*)NULL
); /* _prev on <var_node:ListNode[nullable Object]> */
949 var7
= self
->attrs
[COLOR_core__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
951 var8
= 1; /* is null */
953 var8
= 0; /* arg is null but recv is not */
956 { /* Inline kernel$Object$== (var7,((val*)NULL)) on <var7:nullable ListNode[nullable Object]> */
957 var_other
= ((val
*)NULL
);
959 { /* Inline kernel$Object$is_same_instance (var7,var_other) on <var7:nullable ListNode[nullable Object](ListNode[nullable Object])> */
960 var13
= var7
== var_other
;
973 self
->attrs
[COLOR_core__list__List___head
].val
= ((val
*)NULL
); /* _head on <self:List[nullable Object]> */
975 var14
= self
->attrs
[COLOR_core__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
976 if (unlikely(var14
== NULL
)) {
977 if(catchStack
.cursor
>= 0){
978 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
980 PRINT_ERROR("Runtime error: %s", "Cast failed");
981 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 155);
985 { /* Inline list$ListNode$next= (var14,((val*)NULL)) on <var14:nullable ListNode[nullable Object](ListNode[nullable Object])> */
986 /* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */
987 /* <((val*)NULL):null> isa nullable ListNode[E] */
988 var16
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
989 if (unlikely(!var16
)) {
990 var_class_name19
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
991 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name19
);
992 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
995 var14
->attrs
[COLOR_core__list__ListNode___next
].val
= ((val
*)NULL
); /* _next on <var14:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1002 { /* Inline list$List$length (var_) on <var_:List[nullable Object]> */
1003 var22
= var_
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <var_:List[nullable Object]> */
1005 RET_LABEL21
:(void)0;
1009 { /* Inline kernel$Int$- (var20,1l) on <var20:Int> */
1010 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1011 /* <1l:Int> isa OTHER */
1012 var25
= 1; /* easy <1l:Int> isa OTHER*/
1013 if (unlikely(!var25
)) {
1014 var_class_name28
= type_core__Int
.name
;
1015 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
1016 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
1022 RET_LABEL24
:(void)0;
1026 { /* Inline list$List$length= (var_,var23) on <var_:List[nullable Object]> */
1027 var_
->attrs
[COLOR_core__list__List___length
].l
= var23
; /* _length on <var_:List[nullable Object]> */
1028 RET_LABEL30
:(void)0;
1032 { /* Inline abstract_collection$Ref$item (var_node) on <var_node:ListNode[nullable Object]> */
1033 var33
= var_node
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var_node:ListNode[nullable Object]> */
1035 RET_LABEL32
:(void)0;
1043 /* method list$List$shift for (self: List[nullable Object]): nullable Object */
1044 val
* core___core__List___core__abstract_collection__Sequence__shift(val
* self
) {
1045 val
* var
/* : nullable Object */;
1046 val
* var1
/* : nullable ListNode[nullable Object] */;
1047 val
* var_node
/* var node: ListNode[nullable Object] */;
1048 val
* var2
/* : nullable ListNode[nullable Object] */;
1049 val
* var4
/* : nullable ListNode[nullable Object] */;
1050 short int var6
/* : Bool */;
1053 const char* var_class_name
;
1054 val
* var7
/* : nullable ListNode[nullable Object] */;
1055 short int var8
/* : Bool */;
1056 short int var9
/* : Bool */;
1057 val
* var_other
/* var other: nullable Object */;
1058 short int var11
/* : Bool */;
1059 short int var13
/* : Bool */;
1060 val
* var14
/* : nullable ListNode[nullable Object] */;
1061 short int var16
/* : Bool */;
1064 const char* var_class_name19
;
1065 val
* var_
/* var : List[nullable Object] */;
1066 long var20
/* : Int */;
1067 long var22
/* : Int */;
1068 long var23
/* : Int */;
1069 short int var25
/* : Bool */;
1072 const char* var_class_name28
;
1073 long var29
/* : Int */;
1074 val
* var31
/* : nullable Object */;
1075 val
* var33
/* : nullable Object */;
1076 var1
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1077 if (unlikely(var1
== NULL
)) {
1078 if(catchStack
.cursor
>= 0){
1079 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1081 PRINT_ERROR("Runtime error: %s", "Cast failed");
1082 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 164);
1087 { /* Inline list$ListNode$next (var_node) on <var_node:ListNode[nullable Object]> */
1088 var4
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1093 self
->attrs
[COLOR_core__list__List___head
].val
= var2
; /* _head on <self:List[nullable Object]> */
1095 { /* Inline list$ListNode$next= (var_node,((val*)NULL)) on <var_node:ListNode[nullable Object]> */
1096 /* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */
1097 /* <((val*)NULL):null> isa nullable ListNode[E] */
1098 var6
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
1099 if (unlikely(!var6
)) {
1100 var_class_name
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
1101 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
1102 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
1105 var_node
->attrs
[COLOR_core__list__ListNode___next
].val
= ((val
*)NULL
); /* _next on <var_node:ListNode[nullable Object]> */
1109 var7
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1111 var8
= 1; /* is null */
1113 var8
= 0; /* arg is null but recv is not */
1116 { /* Inline kernel$Object$== (var7,((val*)NULL)) on <var7:nullable ListNode[nullable Object]> */
1117 var_other
= ((val
*)NULL
);
1119 { /* Inline kernel$Object$is_same_instance (var7,var_other) on <var7:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1120 var13
= var7
== var_other
;
1123 RET_LABEL12
:(void)0;
1128 RET_LABEL10
:(void)0;
1133 self
->attrs
[COLOR_core__list__List___tail
].val
= ((val
*)NULL
); /* _tail on <self:List[nullable Object]> */
1135 var14
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1136 if (unlikely(var14
== NULL
)) {
1137 if(catchStack
.cursor
>= 0){
1138 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1140 PRINT_ERROR("Runtime error: %s", "Cast failed");
1141 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 170);
1145 { /* Inline list$ListNode$prev= (var14,((val*)NULL)) on <var14:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1146 /* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */
1147 /* <((val*)NULL):null> isa nullable ListNode[E] */
1148 var16
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
1149 if (unlikely(!var16
)) {
1150 var_class_name19
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
1151 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name19
);
1152 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
1155 var14
->attrs
[COLOR_core__list__ListNode___prev
].val
= ((val
*)NULL
); /* _prev on <var14:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1156 RET_LABEL15
:(void)0;
1162 { /* Inline list$List$length (var_) on <var_:List[nullable Object]> */
1163 var22
= var_
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <var_:List[nullable Object]> */
1165 RET_LABEL21
:(void)0;
1169 { /* Inline kernel$Int$- (var20,1l) on <var20:Int> */
1170 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1171 /* <1l:Int> isa OTHER */
1172 var25
= 1; /* easy <1l:Int> isa OTHER*/
1173 if (unlikely(!var25
)) {
1174 var_class_name28
= type_core__Int
.name
;
1175 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name28
);
1176 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
1182 RET_LABEL24
:(void)0;
1186 { /* Inline list$List$length= (var_,var23) on <var_:List[nullable Object]> */
1187 var_
->attrs
[COLOR_core__list__List___length
].l
= var23
; /* _length on <var_:List[nullable Object]> */
1188 RET_LABEL30
:(void)0;
1192 { /* Inline abstract_collection$Ref$item (var_node) on <var_node:ListNode[nullable Object]> */
1193 var33
= var_node
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var_node:ListNode[nullable Object]> */
1195 RET_LABEL32
:(void)0;
1203 /* method list$List$remove for (self: List[nullable Object], nullable Object) */
1204 void core___core__List___core__abstract_collection__RemovableCollection__remove(val
* self
, val
* p0
) {
1205 val
* var_e
/* var e: nullable Object */;
1206 short int var
/* : Bool */;
1209 const struct type
* type_struct
;
1210 short int is_nullable
;
1211 const char* var_class_name
;
1212 val
* var1
/* : nullable ListNode[nullable Object] */;
1213 val
* var2
/* : nullable ListNode[nullable Object] */;
1214 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1215 short int var3
/* : Bool */;
1216 short int var4
/* : Bool */;
1217 val
* var_other
/* var other: nullable Object */;
1218 short int var6
/* : Bool */;
1219 short int var7
/* : Bool */;
1221 /* <var_e:nullable Object> isa E */
1222 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
1223 cltype
= type_struct
->color
;
1224 idtype
= type_struct
->id
;
1225 is_nullable
= type_struct
->is_nullable
;
1229 if(cltype
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
1232 var
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype
] == idtype
;
1235 if (unlikely(!var
)) {
1236 var_class_name
= var_e
== NULL ?
"null" : (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->name
;
1237 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1238 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 178);
1241 var1
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1243 var2
= core___core__List___search_node_after(self
, var_e
, var1
);
1246 if (var_node
== NULL
) {
1247 var3
= 0; /* is null */
1249 var3
= 1; /* arg is null and recv is not */
1252 { /* Inline kernel$Object$!= (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
1253 var_other
= ((val
*)NULL
);
1255 var6
= ((short int(*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_node
, var_other
); /* == on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/
1266 core___core__List___remove_node(self
, var_node
); /* Direct call list$List$remove_node on <self:List[nullable Object]>*/
1272 /* method list$List$remove_at for (self: List[nullable Object], Int) */
1273 void core___core__List___core__abstract_collection__Sequence__remove_at(val
* self
, long p0
) {
1274 long var_i
/* var i: Int */;
1275 val
* var
/* : nullable ListNode[nullable Object] */;
1276 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1277 short int var1
/* : Bool */;
1278 short int var2
/* : Bool */;
1279 val
* var_other
/* var other: nullable Object */;
1280 short int var4
/* : Bool */;
1281 short int var5
/* : Bool */;
1284 var
= core___core__List___get_node(self
, var_i
);
1287 if (var_node
== NULL
) {
1288 var1
= 0; /* is null */
1290 var1
= 1; /* arg is null and recv is not */
1293 { /* Inline kernel$Object$!= (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
1294 var_other
= ((val
*)NULL
);
1296 var4
= ((short int(*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_node
, var_other
); /* == on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/
1307 core___core__List___remove_node(self
, var_node
); /* Direct call list$List$remove_node on <self:List[nullable Object]>*/
1313 /* method list$List$clear for (self: List[nullable Object]) */
1314 void core___core__List___core__abstract_collection__RemovableCollection__clear(val
* self
) {
1315 self
->attrs
[COLOR_core__list__List___head
].val
= ((val
*)NULL
); /* _head on <self:List[nullable Object]> */
1316 self
->attrs
[COLOR_core__list__List___tail
].val
= ((val
*)NULL
); /* _tail on <self:List[nullable Object]> */
1318 { /* Inline list$List$length= (self,0l) on <self:List[nullable Object]> */
1319 self
->attrs
[COLOR_core__list__List___length
].l
= 0l; /* _length on <self:List[nullable Object]> */
1325 /* method list$List$iterator for (self: List[nullable Object]): ListIterator[nullable Object] */
1326 val
* core___core__List___core__abstract_collection__Collection__iterator(val
* self
) {
1327 val
* var
/* : ListIterator[nullable Object] */;
1328 val
* var1
/* : ListIterator[nullable Object] */;
1329 var1
= NEW_core__ListIterator(self
->type
->resolution_table
->types
[COLOR_core__ListIterator__core__List___35dE
]);
1331 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_core__list__ListIterator__list_61d
]))(var1
, self
); /* list= on <var1:ListIterator[nullable Object]>*/
1334 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_core__kernel__Object__init
]))(var1
); /* init on <var1:ListIterator[nullable Object]>*/
1341 /* method list$List$reverse_iterator for (self: List[nullable Object]): ListIterator[nullable Object] */
1342 val
* core___core__List___core__abstract_collection__SequenceRead__reverse_iterator(val
* self
) {
1343 val
* var
/* : ListIterator[nullable Object] */;
1344 val
* var1
/* : ListReverseIterator[nullable Object] */;
1345 var1
= NEW_core__list__ListReverseIterator(self
->type
->resolution_table
->types
[COLOR_core__list__ListReverseIterator__core__List___35dE
]);
1347 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_core__list__ListIterator__list_61d
]))(var1
, self
); /* list= on <var1:ListReverseIterator[nullable Object]>*/
1350 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_core__kernel__Object__init
]))(var1
); /* init on <var1:ListReverseIterator[nullable Object]>*/
1357 /* method list$List$init for (self: List[nullable Object]) */
1358 void core___core__List___core__kernel__Object__init(val
* self
) {
1360 ((void(*)(val
* self
))(self
->class->vft
[COLOR_core___core__List___core__kernel__Object__init
]))(self
); /* init on <self:List[nullable Object]>*/
1364 /* method list$List$get_node for (self: List[nullable Object], Int): nullable ListNode[nullable Object] */
1365 val
* core___core__List___get_node(val
* self
, long p0
) {
1366 val
* var
/* : nullable ListNode[nullable Object] */;
1367 long var_i
/* var i: Int */;
1368 val
* var1
/* : nullable ListNode[nullable Object] */;
1369 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1370 short int var2
/* : Bool */;
1371 short int var4
/* : Bool */;
1374 const char* var_class_name
;
1375 short int var5
/* : Bool */;
1376 short int var6
/* : Bool */;
1377 short int var7
/* : Bool */;
1378 short int var8
/* : Bool */;
1379 val
* var_other
/* var other: nullable Object */;
1380 short int var10
/* : Bool */;
1381 short int var11
/* : Bool */;
1382 short int var_
/* var : Bool */;
1383 short int var12
/* : Bool */;
1384 short int var14
/* : Bool */;
1387 const char* var_class_name17
;
1388 short int var18
/* : Bool */;
1389 val
* var19
/* : nullable ListNode[nullable Object] */;
1390 val
* var21
/* : nullable ListNode[nullable Object] */;
1391 long var22
/* : Int */;
1392 short int var24
/* : Bool */;
1395 const char* var_class_name27
;
1396 long var28
/* : Int */;
1398 var1
= self
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1401 { /* Inline kernel$Int$< (var_i,0l) on <var_i:Int> */
1402 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1403 /* <0l:Int> isa OTHER */
1404 var4
= 1; /* easy <0l:Int> isa OTHER*/
1405 if (unlikely(!var4
)) {
1406 var_class_name
= type_core__Int
.name
;
1407 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1408 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 725);
1423 if (var_n
== NULL
) {
1424 var7
= 0; /* is null */
1426 var7
= 1; /* arg is null and recv is not */
1429 { /* Inline kernel$Object$!= (var_n,((val*)NULL)) on <var_n:nullable ListNode[nullable Object]> */
1430 var_other
= ((val
*)NULL
);
1432 var10
= ((short int(*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_n
, var_other
); /* == on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])>*/
1444 { /* Inline kernel$Int$> (var_i,0l) on <var_i:Int> */
1445 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1446 /* <0l:Int> isa OTHER */
1447 var14
= 1; /* easy <0l:Int> isa OTHER*/
1448 if (unlikely(!var14
)) {
1449 var_class_name17
= type_core__Int
.name
;
1450 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
1451 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
1457 RET_LABEL13
:(void)0;
1466 { /* Inline list$ListNode$next (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1467 var21
= var_n
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1469 RET_LABEL20
:(void)0;
1474 { /* Inline kernel$Int$- (var_i,1l) on <var_i:Int> */
1475 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1476 /* <1l:Int> isa OTHER */
1477 var24
= 1; /* easy <1l:Int> isa OTHER*/
1478 if (unlikely(!var24
)) {
1479 var_class_name27
= type_core__Int
.name
;
1480 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27
);
1481 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
1487 RET_LABEL23
:(void)0;
1495 BREAK_label
: (void)0;
1501 /* method list$List$search_node_after for (self: List[nullable Object], nullable Object, nullable ListNode[nullable Object]): nullable ListNode[nullable Object] */
1502 val
* core___core__List___search_node_after(val
* self
, val
* p0
, val
* p1
) {
1503 val
* var
/* : nullable ListNode[nullable Object] */;
1504 short int var1
/* : Bool */;
1507 const struct type
* type_struct
;
1508 short int is_nullable
;
1509 const char* var_class_name
;
1510 short int var2
/* : Bool */;
1513 const struct type
* type_struct5
;
1514 const char* var_class_name6
;
1515 val
* var_e
/* var e: nullable Object */;
1516 val
* var_after
/* var after: nullable ListNode[nullable Object] */;
1517 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1518 short int var7
/* : Bool */;
1519 short int var8
/* : Bool */;
1520 short int var9
/* : Bool */;
1521 val
* var_other
/* var other: nullable Object */;
1522 short int var11
/* : Bool */;
1523 short int var12
/* : Bool */;
1524 short int var_
/* var : Bool */;
1525 val
* var13
/* : nullable Object */;
1526 val
* var15
/* : nullable Object */;
1527 short int var16
/* : Bool */;
1528 short int var17
/* : Bool */;
1529 val
* var18
/* : nullable ListNode[nullable Object] */;
1530 val
* var20
/* : nullable ListNode[nullable Object] */;
1531 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
1532 /* <p0:nullable Object> isa E */
1533 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
1534 cltype
= type_struct
->color
;
1535 idtype
= type_struct
->id
;
1536 is_nullable
= type_struct
->is_nullable
;
1540 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
1543 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1546 if (unlikely(!var1
)) {
1547 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1548 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1549 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 225);
1552 /* Covariant cast for argument 1 (after) <p1:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1553 /* <p1:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1554 type_struct5
= self
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__List___35dE
];
1555 cltype3
= type_struct5
->color
;
1556 idtype4
= type_struct5
->id
;
1560 if(cltype3
>= p1
->type
->table_size
) {
1563 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
1566 if (unlikely(!var2
)) {
1567 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
1568 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name6
);
1569 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 225);
1576 if (var_n
== NULL
) {
1577 var8
= 0; /* is null */
1579 var8
= 1; /* arg is null and recv is not */
1582 { /* Inline kernel$Object$!= (var_n,((val*)NULL)) on <var_n:nullable ListNode[nullable Object]> */
1583 var_other
= ((val
*)NULL
);
1585 var11
= ((short int(*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_n
, var_other
); /* == on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])>*/
1590 RET_LABEL10
:(void)0;
1597 { /* Inline abstract_collection$Ref$item (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1598 var15
= var_n
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1600 RET_LABEL14
:(void)0;
1603 if (var13
== NULL
) {
1604 var16
= (var_e
!= NULL
);
1606 var17
= ((short int(*)(val
* self
, val
* p0
))((((long)var13
&3)?class_info
[((long)var13
&3)]:var13
->class)->vft
[COLOR_core__kernel__Object___33d_61d
]))(var13
, var_e
); /* != on <var13:nullable Object>*/
1615 { /* Inline list$ListNode$next (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1616 var20
= var_n
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1618 RET_LABEL19
:(void)0;
1626 BREAK_label
: (void)0;
1632 /* method list$List$remove_node for (self: List[nullable Object], ListNode[nullable Object]) */
1633 void core___core__List___remove_node(val
* self
, val
* p0
) {
1634 short int var
/* : Bool */;
1637 const struct type
* type_struct
;
1638 const char* var_class_name
;
1639 val
* var_node
/* var node: ListNode[nullable Object] */;
1640 val
* var_
/* var : List[nullable Object] */;
1641 long var1
/* : Int */;
1642 long var3
/* : Int */;
1643 long var4
/* : Int */;
1644 short int var6
/* : Bool */;
1647 const char* var_class_name9
;
1648 long var10
/* : Int */;
1649 val
* var12
/* : nullable ListNode[nullable Object] */;
1650 val
* var14
/* : nullable ListNode[nullable Object] */;
1651 short int var15
/* : Bool */;
1652 short int var16
/* : Bool */;
1653 val
* var_other
/* var other: nullable Object */;
1654 short int var18
/* : Bool */;
1655 short int var20
/* : Bool */;
1656 val
* var21
/* : nullable ListNode[nullable Object] */;
1657 val
* var23
/* : nullable ListNode[nullable Object] */;
1658 val
* var24
/* : nullable ListNode[nullable Object] */;
1659 val
* var26
/* : nullable ListNode[nullable Object] */;
1660 short int var27
/* : Bool */;
1661 short int var28
/* : Bool */;
1662 short int var30
/* : Bool */;
1663 short int var32
/* : Bool */;
1664 val
* var33
/* : nullable ListNode[nullable Object] */;
1665 val
* var35
/* : nullable ListNode[nullable Object] */;
1666 short int var37
/* : Bool */;
1669 const char* var_class_name40
;
1670 val
* var41
/* : nullable ListNode[nullable Object] */;
1671 val
* var43
/* : nullable ListNode[nullable Object] */;
1672 short int var44
/* : Bool */;
1673 short int var45
/* : Bool */;
1674 short int var47
/* : Bool */;
1675 short int var49
/* : Bool */;
1676 val
* var50
/* : nullable ListNode[nullable Object] */;
1677 val
* var52
/* : nullable ListNode[nullable Object] */;
1678 val
* var53
/* : nullable ListNode[nullable Object] */;
1679 val
* var55
/* : nullable ListNode[nullable Object] */;
1680 short int var57
/* : Bool */;
1683 const char* var_class_name60
;
1684 val
* var61
/* : nullable ListNode[nullable Object] */;
1685 val
* var63
/* : nullable ListNode[nullable Object] */;
1686 val
* var64
/* : nullable ListNode[nullable Object] */;
1687 val
* var66
/* : nullable ListNode[nullable Object] */;
1688 short int var68
/* : Bool */;
1691 const struct type
* type_struct71
;
1692 const char* var_class_name72
;
1693 val
* var73
/* : nullable ListNode[nullable Object] */;
1694 val
* var75
/* : nullable ListNode[nullable Object] */;
1695 val
* var76
/* : nullable ListNode[nullable Object] */;
1696 val
* var78
/* : nullable ListNode[nullable Object] */;
1697 short int var80
/* : Bool */;
1700 const struct type
* type_struct83
;
1701 const char* var_class_name84
;
1702 /* Covariant cast for argument 0 (node) <p0:ListNode[nullable Object]> isa ListNode[E] */
1703 /* <p0:ListNode[nullable Object]> isa ListNode[E] */
1704 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__list__ListNode__core__List___35dE
];
1705 cltype
= type_struct
->color
;
1706 idtype
= type_struct
->id
;
1707 if(cltype
>= p0
->type
->table_size
) {
1710 var
= p0
->type
->type_table
[cltype
] == idtype
;
1712 if (unlikely(!var
)) {
1713 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1714 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ListNode[E]", var_class_name
);
1715 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 233);
1721 { /* Inline list$List$length (var_) on <var_:List[nullable Object]> */
1722 var3
= var_
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <var_:List[nullable Object]> */
1728 { /* Inline kernel$Int$- (var1,1l) on <var1:Int> */
1729 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1730 /* <1l:Int> isa OTHER */
1731 var6
= 1; /* easy <1l:Int> isa OTHER*/
1732 if (unlikely(!var6
)) {
1733 var_class_name9
= type_core__Int
.name
;
1734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name9
);
1735 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
1745 { /* Inline list$List$length= (var_,var4) on <var_:List[nullable Object]> */
1746 var_
->attrs
[COLOR_core__list__List___length
].l
= var4
; /* _length on <var_:List[nullable Object]> */
1747 RET_LABEL11
:(void)0;
1751 { /* Inline list$ListNode$prev (var_node) on <var_node:ListNode[nullable Object]> */
1752 var14
= var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1754 RET_LABEL13
:(void)0;
1757 if (var12
== NULL
) {
1758 var15
= 1; /* is null */
1760 var15
= 0; /* arg is null but recv is not */
1763 { /* Inline kernel$Object$== (var12,((val*)NULL)) on <var12:nullable ListNode[nullable Object]> */
1764 var_other
= ((val
*)NULL
);
1766 { /* Inline kernel$Object$is_same_instance (var12,var_other) on <var12:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1767 var20
= var12
== var_other
;
1770 RET_LABEL19
:(void)0;
1775 RET_LABEL17
:(void)0;
1781 { /* Inline list$ListNode$next (var_node) on <var_node:ListNode[nullable Object]> */
1782 var23
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1784 RET_LABEL22
:(void)0;
1787 self
->attrs
[COLOR_core__list__List___head
].val
= var21
; /* _head on <self:List[nullable Object]> */
1789 { /* Inline list$ListNode$next (var_node) on <var_node:ListNode[nullable Object]> */
1790 var26
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1792 RET_LABEL25
:(void)0;
1795 if (var24
== NULL
) {
1796 var27
= 1; /* is null */
1798 var27
= 0; /* arg is null but recv is not */
1801 { /* Inline kernel$Object$== (var24,((val*)NULL)) on <var24:nullable ListNode[nullable Object]> */
1802 var_other
= ((val
*)NULL
);
1804 { /* Inline kernel$Object$is_same_instance (var24,var_other) on <var24:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1805 var32
= var24
== var_other
;
1808 RET_LABEL31
:(void)0;
1813 RET_LABEL29
:(void)0;
1818 self
->attrs
[COLOR_core__list__List___tail
].val
= ((val
*)NULL
); /* _tail on <self:List[nullable Object]> */
1821 { /* Inline list$ListNode$next (var_node) on <var_node:ListNode[nullable Object]> */
1822 var35
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1824 RET_LABEL34
:(void)0;
1827 if (unlikely(var33
== NULL
)) {
1828 if(catchStack
.cursor
>= 0){
1829 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1831 PRINT_ERROR("Runtime error: %s", "Cast failed");
1832 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 242);
1836 { /* Inline list$ListNode$prev= (var33,((val*)NULL)) on <var33:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1837 /* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */
1838 /* <((val*)NULL):null> isa nullable ListNode[E] */
1839 var37
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
1840 if (unlikely(!var37
)) {
1841 var_class_name40
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
1842 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name40
);
1843 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
1846 var33
->attrs
[COLOR_core__list__ListNode___prev
].val
= ((val
*)NULL
); /* _prev on <var33:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1847 RET_LABEL36
:(void)0;
1853 { /* Inline list$ListNode$next (var_node) on <var_node:ListNode[nullable Object]> */
1854 var43
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1856 RET_LABEL42
:(void)0;
1859 if (var41
== NULL
) {
1860 var44
= 1; /* is null */
1862 var44
= 0; /* arg is null but recv is not */
1865 { /* Inline kernel$Object$== (var41,((val*)NULL)) on <var41:nullable ListNode[nullable Object]> */
1866 var_other
= ((val
*)NULL
);
1868 { /* Inline kernel$Object$is_same_instance (var41,var_other) on <var41:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1869 var49
= var41
== var_other
;
1872 RET_LABEL48
:(void)0;
1877 RET_LABEL46
:(void)0;
1883 { /* Inline list$ListNode$prev (var_node) on <var_node:ListNode[nullable Object]> */
1884 var52
= var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1886 RET_LABEL51
:(void)0;
1889 self
->attrs
[COLOR_core__list__List___tail
].val
= var50
; /* _tail on <self:List[nullable Object]> */
1891 { /* Inline list$ListNode$prev (var_node) on <var_node:ListNode[nullable Object]> */
1892 var55
= var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1894 RET_LABEL54
:(void)0;
1897 if (unlikely(var53
== NULL
)) {
1898 if(catchStack
.cursor
>= 0){
1899 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1901 PRINT_ERROR("Runtime error: %s", "Cast failed");
1902 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 246);
1906 { /* Inline list$ListNode$next= (var53,((val*)NULL)) on <var53:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1907 /* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */
1908 /* <((val*)NULL):null> isa nullable ListNode[E] */
1909 var57
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
1910 if (unlikely(!var57
)) {
1911 var_class_name60
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
1912 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name60
);
1913 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
1916 var53
->attrs
[COLOR_core__list__ListNode___next
].val
= ((val
*)NULL
); /* _next on <var53:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1917 RET_LABEL56
:(void)0;
1922 { /* Inline list$ListNode$prev (var_node) on <var_node:ListNode[nullable Object]> */
1923 var63
= var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1925 RET_LABEL62
:(void)0;
1928 if (unlikely(var61
== NULL
)) {
1929 if(catchStack
.cursor
>= 0){
1930 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1932 PRINT_ERROR("Runtime error: %s", "Cast failed");
1933 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 248);
1937 { /* Inline list$ListNode$next (var_node) on <var_node:ListNode[nullable Object]> */
1938 var66
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1940 RET_LABEL65
:(void)0;
1944 { /* Inline list$ListNode$next= (var61,var64) on <var61:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1945 /* Covariant cast for argument 0 (next) <var64:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1946 /* <var64:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1947 type_struct71
= var61
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
1948 cltype69
= type_struct71
->color
;
1949 idtype70
= type_struct71
->id
;
1953 if(cltype69
>= var64
->type
->table_size
) {
1956 var68
= var64
->type
->type_table
[cltype69
] == idtype70
;
1959 if (unlikely(!var68
)) {
1960 var_class_name72
= var64
== NULL ?
"null" : var64
->type
->name
;
1961 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name72
);
1962 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
1965 var61
->attrs
[COLOR_core__list__ListNode___next
].val
= var64
; /* _next on <var61:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1966 RET_LABEL67
:(void)0;
1970 { /* Inline list$ListNode$next (var_node) on <var_node:ListNode[nullable Object]> */
1971 var75
= var_node
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1973 RET_LABEL74
:(void)0;
1976 if (unlikely(var73
== NULL
)) {
1977 if(catchStack
.cursor
>= 0){
1978 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
1980 PRINT_ERROR("Runtime error: %s", "Cast failed");
1981 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 249);
1985 { /* Inline list$ListNode$prev (var_node) on <var_node:ListNode[nullable Object]> */
1986 var78
= var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1988 RET_LABEL77
:(void)0;
1992 { /* Inline list$ListNode$prev= (var73,var76) on <var73:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1993 /* Covariant cast for argument 0 (prev) <var76:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1994 /* <var76:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1995 type_struct83
= var73
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
1996 cltype81
= type_struct83
->color
;
1997 idtype82
= type_struct83
->id
;
2001 if(cltype81
>= var76
->type
->table_size
) {
2004 var80
= var76
->type
->type_table
[cltype81
] == idtype82
;
2007 if (unlikely(!var80
)) {
2008 var_class_name84
= var76
== NULL ?
"null" : var76
->type
->name
;
2009 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name84
);
2010 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
2013 var73
->attrs
[COLOR_core__list__ListNode___prev
].val
= var76
; /* _prev on <var73:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2014 RET_LABEL79
:(void)0;
2021 /* method list$List$insert_before for (self: List[nullable Object], nullable Object, ListNode[nullable Object]) */
2022 void core___core__List___insert_before(val
* self
, val
* p0
, val
* p1
) {
2023 short int var
/* : Bool */;
2026 const struct type
* type_struct
;
2027 short int is_nullable
;
2028 const char* var_class_name
;
2029 short int var1
/* : Bool */;
2032 const struct type
* type_struct4
;
2033 const char* var_class_name5
;
2034 val
* var_element
/* var element: nullable Object */;
2035 val
* var_node
/* var node: ListNode[nullable Object] */;
2036 val
* var_
/* var : List[nullable Object] */;
2037 long var6
/* : Int */;
2038 long var8
/* : Int */;
2039 long var9
/* : Int */;
2040 short int var11
/* : Bool */;
2043 const char* var_class_name14
;
2044 long var15
/* : Int */;
2045 val
* var17
/* : ListNode[nullable Object] */;
2046 val
* var_nnode
/* var nnode: ListNode[nullable Object] */;
2047 val
* var18
/* : nullable ListNode[nullable Object] */;
2048 val
* var20
/* : nullable ListNode[nullable Object] */;
2049 val
* var_prev
/* var prev: nullable ListNode[nullable Object] */;
2050 short int var21
/* : Bool */;
2051 short int var22
/* : Bool */;
2052 val
* var_other
/* var other: nullable Object */;
2053 short int var24
/* : Bool */;
2054 short int var26
/* : Bool */;
2055 short int var28
/* : Bool */;
2058 const struct type
* type_struct31
;
2059 const char* var_class_name32
;
2060 short int var34
/* : Bool */;
2063 const struct type
* type_struct37
;
2064 const char* var_class_name38
;
2065 short int var40
/* : Bool */;
2068 const struct type
* type_struct43
;
2069 const char* var_class_name44
;
2070 short int var46
/* : Bool */;
2073 const struct type
* type_struct49
;
2074 const char* var_class_name50
;
2075 /* Covariant cast for argument 0 (element) <p0:nullable Object> isa E */
2076 /* <p0:nullable Object> isa E */
2077 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List___35dE
];
2078 cltype
= type_struct
->color
;
2079 idtype
= type_struct
->id
;
2080 is_nullable
= type_struct
->is_nullable
;
2084 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
2087 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
2090 if (unlikely(!var
)) {
2091 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
2092 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
2093 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 253);
2096 /* Covariant cast for argument 1 (node) <p1:ListNode[nullable Object]> isa ListNode[E] */
2097 /* <p1:ListNode[nullable Object]> isa ListNode[E] */
2098 type_struct4
= self
->type
->resolution_table
->types
[COLOR_core__list__ListNode__core__List___35dE
];
2099 cltype2
= type_struct4
->color
;
2100 idtype3
= type_struct4
->id
;
2101 if(cltype2
>= p1
->type
->table_size
) {
2104 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
2106 if (unlikely(!var1
)) {
2107 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
2108 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ListNode[E]", var_class_name5
);
2109 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 253);
2116 { /* Inline list$List$length (var_) on <var_:List[nullable Object]> */
2117 var8
= var_
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <var_:List[nullable Object]> */
2123 { /* Inline kernel$Int$+ (var6,1l) on <var6:Int> */
2124 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2125 /* <1l:Int> isa OTHER */
2126 var11
= 1; /* easy <1l:Int> isa OTHER*/
2127 if (unlikely(!var11
)) {
2128 var_class_name14
= type_core__Int
.name
;
2129 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name14
);
2130 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
2136 RET_LABEL10
:(void)0;
2140 { /* Inline list$List$length= (var_,var9) on <var_:List[nullable Object]> */
2141 var_
->attrs
[COLOR_core__list__List___length
].l
= var9
; /* _length on <var_:List[nullable Object]> */
2142 RET_LABEL16
:(void)0;
2145 var17
= NEW_core__list__ListNode(self
->type
->resolution_table
->types
[COLOR_core__list__ListNode__core__List___35dE
]);
2147 ((void(*)(val
* self
, val
* p0
))(var17
->class->vft
[COLOR_core__abstract_collection__Ref__item_61d
]))(var17
, var_element
); /* item= on <var17:ListNode[nullable Object]>*/
2150 ((void(*)(val
* self
))(var17
->class->vft
[COLOR_core__kernel__Object__init
]))(var17
); /* init on <var17:ListNode[nullable Object]>*/
2154 { /* Inline list$ListNode$prev (var_node) on <var_node:ListNode[nullable Object]> */
2155 var20
= var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
2157 RET_LABEL19
:(void)0;
2161 if (var_prev
== NULL
) {
2162 var21
= 1; /* is null */
2164 var21
= 0; /* arg is null but recv is not */
2167 { /* Inline kernel$Object$== (var_prev,((val*)NULL)) on <var_prev:nullable ListNode[nullable Object]> */
2168 var_other
= ((val
*)NULL
);
2170 { /* Inline kernel$Object$is_same_instance (var_prev,var_other) on <var_prev:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2171 var26
= var_prev
== var_other
;
2174 RET_LABEL25
:(void)0;
2179 RET_LABEL23
:(void)0;
2184 self
->attrs
[COLOR_core__list__List___head
].val
= var_nnode
; /* _head on <self:List[nullable Object]> */
2187 { /* Inline list$ListNode$next= (var_prev,var_nnode) on <var_prev:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2188 /* Covariant cast for argument 0 (next) <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
2189 /* <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
2190 type_struct31
= var_prev
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
2191 cltype29
= type_struct31
->color
;
2192 idtype30
= type_struct31
->id
;
2193 if(cltype29
>= var_nnode
->type
->table_size
) {
2196 var28
= var_nnode
->type
->type_table
[cltype29
] == idtype30
;
2198 if (unlikely(!var28
)) {
2199 var_class_name32
= var_nnode
== NULL ?
"null" : var_nnode
->type
->name
;
2200 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name32
);
2201 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
2204 var_prev
->attrs
[COLOR_core__list__ListNode___next
].val
= var_nnode
; /* _next on <var_prev:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2205 RET_LABEL27
:(void)0;
2210 { /* Inline list$ListNode$prev= (var_nnode,var_prev) on <var_nnode:ListNode[nullable Object]> */
2211 /* Covariant cast for argument 0 (prev) <var_prev:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2212 /* <var_prev:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2213 type_struct37
= var_nnode
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
2214 cltype35
= type_struct37
->color
;
2215 idtype36
= type_struct37
->id
;
2216 if(var_prev
== NULL
) {
2219 if(cltype35
>= var_prev
->type
->table_size
) {
2222 var34
= var_prev
->type
->type_table
[cltype35
] == idtype36
;
2225 if (unlikely(!var34
)) {
2226 var_class_name38
= var_prev
== NULL ?
"null" : var_prev
->type
->name
;
2227 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name38
);
2228 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
2231 var_nnode
->attrs
[COLOR_core__list__ListNode___prev
].val
= var_prev
; /* _prev on <var_nnode:ListNode[nullable Object]> */
2232 RET_LABEL33
:(void)0;
2236 { /* Inline list$ListNode$next= (var_nnode,var_node) on <var_nnode:ListNode[nullable Object]> */
2237 /* Covariant cast for argument 0 (next) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
2238 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
2239 type_struct43
= var_nnode
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
2240 cltype41
= type_struct43
->color
;
2241 idtype42
= type_struct43
->id
;
2242 if(cltype41
>= var_node
->type
->table_size
) {
2245 var40
= var_node
->type
->type_table
[cltype41
] == idtype42
;
2247 if (unlikely(!var40
)) {
2248 var_class_name44
= var_node
== NULL ?
"null" : var_node
->type
->name
;
2249 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name44
);
2250 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
2253 var_nnode
->attrs
[COLOR_core__list__ListNode___next
].val
= var_node
; /* _next on <var_nnode:ListNode[nullable Object]> */
2254 RET_LABEL39
:(void)0;
2258 { /* Inline list$ListNode$prev= (var_node,var_nnode) on <var_node:ListNode[nullable Object]> */
2259 /* Covariant cast for argument 0 (prev) <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
2260 /* <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
2261 type_struct49
= var_node
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
2262 cltype47
= type_struct49
->color
;
2263 idtype48
= type_struct49
->id
;
2264 if(cltype47
>= var_nnode
->type
->table_size
) {
2267 var46
= var_nnode
->type
->type_table
[cltype47
] == idtype48
;
2269 if (unlikely(!var46
)) {
2270 var_class_name50
= var_nnode
== NULL ?
"null" : var_nnode
->type
->name
;
2271 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name50
);
2272 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
2275 var_node
->attrs
[COLOR_core__list__ListNode___prev
].val
= var_nnode
; /* _prev on <var_node:ListNode[nullable Object]> */
2276 RET_LABEL45
:(void)0;
2281 /* method list$ListIterator$item for (self: ListIterator[nullable Object]): nullable Object */
2282 val
* core___core__ListIterator___core__abstract_collection__Iterator__item(val
* self
) {
2283 val
* var
/* : nullable Object */;
2284 val
* var1
/* : nullable ListNode[nullable Object] */;
2285 val
* var2
/* : nullable Object */;
2286 val
* var4
/* : nullable Object */;
2287 var1
= self
->attrs
[COLOR_core__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2288 if (unlikely(var1
== NULL
)) {
2289 if(catchStack
.cursor
>= 0){
2290 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2292 PRINT_ERROR("Runtime error: %s", "Cast failed");
2293 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 272);
2297 { /* Inline abstract_collection$Ref$item (var1) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2298 var4
= var1
->attrs
[COLOR_core__abstract_collection__Ref___item
].val
; /* _item on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2308 /* method list$ListIterator$is_ok for (self: ListIterator[nullable Object]): Bool */
2309 short int core___core__ListIterator___core__abstract_collection__Iterator__is_ok(val
* self
) {
2310 short int var
/* : Bool */;
2311 val
* var1
/* : nullable ListNode[nullable Object] */;
2312 short int var2
/* : Bool */;
2313 short int var3
/* : Bool */;
2314 val
* var_other
/* var other: nullable Object */;
2315 short int var5
/* : Bool */;
2316 short int var7
/* : Bool */;
2317 short int var8
/* : Bool */;
2318 var1
= self
->attrs
[COLOR_core__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2320 var2
= 1; /* is null */
2322 var2
= 0; /* arg is null but recv is not */
2325 { /* Inline kernel$Object$== (var1,((val*)NULL)) on <var1:nullable ListNode[nullable Object]> */
2326 var_other
= ((val
*)NULL
);
2328 { /* Inline kernel$Object$is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2329 var7
= var1
== var_other
;
2347 /* method list$ListIterator$next for (self: ListIterator[nullable Object]) */
2348 void core___core__ListIterator___core__abstract_collection__Iterator__next(val
* self
) {
2349 val
* var
/* : nullable ListNode[nullable Object] */;
2350 val
* var1
/* : nullable ListNode[nullable Object] */;
2351 val
* var3
/* : nullable ListNode[nullable Object] */;
2352 val
* var_
/* var : ListIterator[nullable Object] */;
2353 long var4
/* : Int */;
2354 long var5
/* : Int */;
2355 short int var7
/* : Bool */;
2358 const char* var_class_name
;
2359 long var8
/* : Int */;
2360 var
= self
->attrs
[COLOR_core__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2361 if (unlikely(var
== NULL
)) {
2362 if(catchStack
.cursor
>= 0){
2363 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2365 PRINT_ERROR("Runtime error: %s", "Cast failed");
2366 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 281);
2370 { /* Inline list$ListNode$next (var) on <var:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2371 var3
= var
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <var:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2376 self
->attrs
[COLOR_core__list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
2378 var4
= var_
->attrs
[COLOR_core__list__ListIterator___index
].l
; /* _index on <var_:ListIterator[nullable Object]> */
2380 { /* Inline kernel$Int$+ (var4,1l) on <var4:Int> */
2381 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2382 /* <1l:Int> isa OTHER */
2383 var7
= 1; /* easy <1l:Int> isa OTHER*/
2384 if (unlikely(!var7
)) {
2385 var_class_name
= type_core__Int
.name
;
2386 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2387 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
2396 var_
->attrs
[COLOR_core__list__ListIterator___index
].l
= var5
; /* _index on <var_:ListIterator[nullable Object]> */
2399 /* method list$ListIterator$init for (self: ListIterator[nullable Object]) */
2400 void core___core__ListIterator___core__kernel__Object__init(val
* self
) {
2401 val
* var
/* : List[nullable Object] */;
2402 val
* var1
/* : nullable ListNode[nullable Object] */;
2404 ((void(*)(val
* self
))(self
->class->vft
[COLOR_core___core__ListIterator___core__kernel__Object__init
]))(self
); /* init on <self:ListIterator[nullable Object]>*/
2406 var
= self
->attrs
[COLOR_core__list__ListIterator___list
].val
; /* _list on <self:ListIterator[nullable Object]> */
2407 if (unlikely(var
== NULL
)) {
2408 if(catchStack
.cursor
>= 0){
2409 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _list");
2412 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 288);
2415 var1
= var
->attrs
[COLOR_core__list__List___head
].val
; /* _head on <var:List[nullable Object]> */
2416 self
->attrs
[COLOR_core__list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
2419 /* method list$ListIterator$list= for (self: ListIterator[nullable Object], List[nullable Object]) */
2420 void core___core__ListIterator___list_61d(val
* self
, val
* p0
) {
2421 short int var
/* : Bool */;
2424 const struct type
* type_struct
;
2425 const char* var_class_name
;
2426 /* Covariant cast for argument 0 (list) <p0:List[nullable Object]> isa List[E] */
2427 /* <p0:List[nullable Object]> isa List[E] */
2428 type_struct
= self
->type
->resolution_table
->types
[COLOR_core__List__core__ListIterator___35dE
];
2429 cltype
= type_struct
->color
;
2430 idtype
= type_struct
->id
;
2431 if(cltype
>= p0
->type
->table_size
) {
2434 var
= p0
->type
->type_table
[cltype
] == idtype
;
2436 if (unlikely(!var
)) {
2437 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2438 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "List[E]", var_class_name
);
2439 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 291);
2442 self
->attrs
[COLOR_core__list__ListIterator___list
].val
= p0
; /* _list on <self:ListIterator[nullable Object]> */
2445 /* method list$ListIterator$index for (self: ListIterator[nullable Object]): Int */
2446 long core___core__ListIterator___core__abstract_collection__IndexedIterator__index(val
* self
) {
2447 long var
/* : Int */;
2448 long var1
/* : Int */;
2449 var1
= self
->attrs
[COLOR_core__list__ListIterator___index
].l
; /* _index on <self:ListIterator[nullable Object]> */
2454 /* method list$ListReverseIterator$next for (self: ListReverseIterator[nullable Object]) */
2455 void core__list___core__list__ListReverseIterator___core__abstract_collection__Iterator__next(val
* self
) {
2456 val
* var
/* : nullable ListNode[nullable Object] */;
2457 val
* var1
/* : nullable ListNode[nullable Object] */;
2458 val
* var3
/* : nullable ListNode[nullable Object] */;
2459 val
* var_
/* var : ListReverseIterator[nullable Object] */;
2460 long var4
/* : Int */;
2461 long var5
/* : Int */;
2462 short int var7
/* : Bool */;
2465 const char* var_class_name
;
2466 long var8
/* : Int */;
2467 var
= self
->attrs
[COLOR_core__list__ListIterator___node
].val
; /* _node on <self:ListReverseIterator[nullable Object]> */
2468 if (unlikely(var
== NULL
)) {
2469 if(catchStack
.cursor
>= 0){
2470 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2472 PRINT_ERROR("Runtime error: %s", "Cast failed");
2473 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 318);
2477 { /* Inline list$ListNode$prev (var) on <var:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2478 var3
= var
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <var:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2483 self
->attrs
[COLOR_core__list__ListIterator___node
].val
= var1
; /* _node on <self:ListReverseIterator[nullable Object]> */
2485 var4
= var_
->attrs
[COLOR_core__list__ListIterator___index
].l
; /* _index on <var_:ListReverseIterator[nullable Object]> */
2487 { /* Inline kernel$Int$- (var4,1l) on <var4:Int> */
2488 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2489 /* <1l:Int> isa OTHER */
2490 var7
= 1; /* easy <1l:Int> isa OTHER*/
2491 if (unlikely(!var7
)) {
2492 var_class_name
= type_core__Int
.name
;
2493 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2494 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
2503 var_
->attrs
[COLOR_core__list__ListIterator___index
].l
= var5
; /* _index on <var_:ListReverseIterator[nullable Object]> */
2506 /* method list$ListReverseIterator$init for (self: ListReverseIterator[nullable Object]) */
2507 void core__list___core__list__ListReverseIterator___core__kernel__Object__init(val
* self
) {
2508 val
* var
/* : List[nullable Object] */;
2509 val
* var_list
/* var list: List[nullable Object] */;
2510 val
* var1
/* : nullable ListNode[nullable Object] */;
2511 long var2
/* : Int */;
2512 long var4
/* : Int */;
2514 ((void(*)(val
* self
))(self
->class->vft
[COLOR_core__list___core__list__ListReverseIterator___core__kernel__Object__init
]))(self
); /* init on <self:ListReverseIterator[nullable Object]>*/
2516 var
= self
->attrs
[COLOR_core__list__ListIterator___list
].val
; /* _list on <self:ListReverseIterator[nullable Object]> */
2517 if (unlikely(var
== NULL
)) {
2518 if(catchStack
.cursor
>= 0){
2519 longjmp(catchStack
.envs
[catchStack
.cursor
], 1);
2521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _list");
2522 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 324);
2526 var1
= var_list
->attrs
[COLOR_core__list__List___tail
].val
; /* _tail on <var_list:List[nullable Object]> */
2527 self
->attrs
[COLOR_core__list__ListIterator___node
].val
= var1
; /* _node on <self:ListReverseIterator[nullable Object]> */
2529 { /* Inline list$List$length (var_list) on <var_list:List[nullable Object]> */
2530 var4
= var_list
->attrs
[COLOR_core__list__List___length
].l
; /* _length on <var_list:List[nullable Object]> */
2535 self
->attrs
[COLOR_core__list__ListIterator___index
].l
= var2
; /* _index on <self:ListReverseIterator[nullable Object]> */
2538 /* method list$ListNode$next for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
2539 val
* core__list___core__list__ListNode___next(val
* self
) {
2540 val
* var
/* : nullable ListNode[nullable Object] */;
2541 val
* var1
/* : nullable ListNode[nullable Object] */;
2542 var1
= self
->attrs
[COLOR_core__list__ListNode___next
].val
; /* _next on <self:ListNode[nullable Object]> */
2547 /* method list$ListNode$next= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
2548 void core__list___core__list__ListNode___next_61d(val
* self
, val
* p0
) {
2549 short int var
/* : Bool */;
2552 const struct type
* type_struct
;
2553 const char* var_class_name
;
2554 /* Covariant cast for argument 0 (next) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2555 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2556 type_struct
= self
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
2557 cltype
= type_struct
->color
;
2558 idtype
= type_struct
->id
;
2562 if(cltype
>= p0
->type
->table_size
) {
2565 var
= p0
->type
->type_table
[cltype
] == idtype
;
2568 if (unlikely(!var
)) {
2569 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2570 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
2571 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 334);
2574 self
->attrs
[COLOR_core__list__ListNode___next
].val
= p0
; /* _next on <self:ListNode[nullable Object]> */
2577 /* method list$ListNode$prev for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
2578 val
* core__list___core__list__ListNode___prev(val
* self
) {
2579 val
* var
/* : nullable ListNode[nullable Object] */;
2580 val
* var1
/* : nullable ListNode[nullable Object] */;
2581 var1
= self
->attrs
[COLOR_core__list__ListNode___prev
].val
; /* _prev on <self:ListNode[nullable Object]> */
2586 /* method list$ListNode$prev= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
2587 void core__list___core__list__ListNode___prev_61d(val
* self
, val
* p0
) {
2588 short int var
/* : Bool */;
2591 const struct type
* type_struct
;
2592 const char* var_class_name
;
2593 /* Covariant cast for argument 0 (prev) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2594 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2595 type_struct
= self
->type
->resolution_table
->types
[COLOR_nullable__core__list__ListNode__core__list__ListNode___35dE
];
2596 cltype
= type_struct
->color
;
2597 idtype
= type_struct
->id
;
2601 if(cltype
>= p0
->type
->table_size
) {
2604 var
= p0
->type
->type_table
[cltype
] == idtype
;
2607 if (unlikely(!var
)) {
2608 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2609 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
2610 PRINT_ERROR(" (%s:%d)\n", FILE_core__list
, 337);
2613 self
->attrs
[COLOR_core__list__ListNode___prev
].val
= p0
; /* _prev on <self:ListNode[nullable Object]> */