1 #include "standard__list.sep.0.h"
2 /* method list#List#[] for (self: List[nullable Object], Int): nullable Object */
3 val
* standard___standard__List___standard__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
= standard___standard__List___get_node(self
, var_index
);
14 PRINT_ERROR("Runtime error: %s", "Receiver is null");
15 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 24);
18 { /* Inline abstract_collection#Container#item (var1) on <var1:nullable ListNode[nullable Object]> */
19 if (unlikely(var1
== NULL
)) {
20 PRINT_ERROR("Runtime error: %s", "Receiver is null");
21 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
24 var4
= var1
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var1:nullable ListNode[nullable Object]> */
34 /* method list#List#[]= for (self: List[nullable Object], Int, nullable Object) */
35 void standard___standard__List___standard__abstract_collection__Sequence___91d_93d_61d(val
* self
, long p0
, val
* p1
) {
36 short int var
/* : Bool */;
39 const struct type
* type_struct
;
40 short int is_nullable
;
41 const char* var_class_name
;
42 long var_index
/* var index: Int */;
43 val
* var_item
/* var item: nullable Object */;
44 val
* var1
/* : nullable ListNode[nullable Object] */;
45 short int var3
/* : Bool */;
48 const struct type
* type_struct6
;
49 short int is_nullable7
;
50 const char* var_class_name8
;
51 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa E */
52 /* <p1:nullable Object> isa E */
53 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
54 cltype
= type_struct
->color
;
55 idtype
= type_struct
->id
;
56 is_nullable
= type_struct
->is_nullable
;
60 if(cltype
>= p1
->type
->table_size
) {
63 var
= p1
->type
->type_table
[cltype
] == idtype
;
67 var_class_name
= p1
== NULL ?
"null" : p1
->type
->name
;
68 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
69 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 26);
75 var1
= standard___standard__List___get_node(self
, var_index
);
78 PRINT_ERROR("Runtime error: %s", "Receiver is null");
79 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 26);
82 { /* Inline abstract_collection#Container#item= (var1,var_item) on <var1:nullable ListNode[nullable Object]> */
83 /* Covariant cast for argument 0 (item) <var_item:nullable Object> isa E */
84 /* <var_item:nullable Object> isa E */
85 type_struct6
= var1
->type
->resolution_table
->types
[COLOR_standard__Container___35dE
];
86 cltype4
= type_struct6
->color
;
87 idtype5
= type_struct6
->id
;
88 is_nullable7
= type_struct6
->is_nullable
;
89 if(var_item
== NULL
) {
92 if(cltype4
>= var_item
->type
->table_size
) {
95 var3
= var_item
->type
->type_table
[cltype4
] == idtype5
;
98 if (unlikely(!var3
)) {
99 var_class_name8
= var_item
== NULL ?
"null" : var_item
->type
->name
;
100 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name8
);
101 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
104 if (unlikely(var1
== NULL
)) {
105 PRINT_ERROR("Runtime error: %s", "Receiver is null");
106 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
109 var1
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
= var_item
; /* _item on <var1:nullable ListNode[nullable Object]> */
115 /* method list#List#first for (self: List[nullable Object]): nullable Object */
116 val
* standard___standard__List___standard__abstract_collection__Collection__first(val
* self
) {
117 val
* var
/* : nullable Object */;
118 val
* var1
/* : nullable ListNode[nullable Object] */;
119 val
* var2
/* : nullable Object */;
120 val
* var4
/* : nullable Object */;
121 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
123 PRINT_ERROR("Runtime error: %s", "Receiver is null");
124 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 29);
127 { /* Inline abstract_collection#Container#item (var1) on <var1:nullable ListNode[nullable Object]> */
128 if (unlikely(var1
== NULL
)) {
129 PRINT_ERROR("Runtime error: %s", "Receiver is null");
130 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
133 var4
= var1
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var1:nullable ListNode[nullable Object]> */
143 /* method list#List#first= for (self: List[nullable Object], nullable Object) */
144 void standard___standard__List___standard__abstract_collection__Sequence__first_61d(val
* self
, val
* p0
) {
145 short int var
/* : Bool */;
148 const struct type
* type_struct
;
149 short int is_nullable
;
150 const char* var_class_name
;
151 val
* var_e
/* var e: nullable Object */;
152 val
* var1
/* : nullable ListNode[nullable Object] */;
153 short int var3
/* : Bool */;
156 const struct type
* type_struct6
;
157 short int is_nullable7
;
158 const char* var_class_name8
;
159 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
160 /* <p0:nullable Object> isa E */
161 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
162 cltype
= type_struct
->color
;
163 idtype
= type_struct
->id
;
164 is_nullable
= type_struct
->is_nullable
;
168 if(cltype
>= p0
->type
->table_size
) {
171 var
= p0
->type
->type_table
[cltype
] == idtype
;
174 if (unlikely(!var
)) {
175 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
176 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
177 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 31);
181 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
183 PRINT_ERROR("Runtime error: %s", "Receiver is null");
184 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 32);
187 { /* Inline abstract_collection#Container#item= (var1,var_e) on <var1:nullable ListNode[nullable Object]> */
188 /* Covariant cast for argument 0 (item) <var_e:nullable Object> isa E */
189 /* <var_e:nullable Object> isa E */
190 type_struct6
= var1
->type
->resolution_table
->types
[COLOR_standard__Container___35dE
];
191 cltype4
= type_struct6
->color
;
192 idtype5
= type_struct6
->id
;
193 is_nullable7
= type_struct6
->is_nullable
;
197 if(cltype4
>= var_e
->type
->table_size
) {
200 var3
= var_e
->type
->type_table
[cltype4
] == idtype5
;
203 if (unlikely(!var3
)) {
204 var_class_name8
= var_e
== NULL ?
"null" : var_e
->type
->name
;
205 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name8
);
206 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
209 if (unlikely(var1
== NULL
)) {
210 PRINT_ERROR("Runtime error: %s", "Receiver is null");
211 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
214 var1
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
= var_e
; /* _item on <var1:nullable ListNode[nullable Object]> */
220 /* method list#List#last for (self: List[nullable Object]): nullable Object */
221 val
* standard___standard__List___standard__abstract_collection__SequenceRead__last(val
* self
) {
222 val
* var
/* : nullable Object */;
223 val
* var1
/* : nullable ListNode[nullable Object] */;
224 val
* var2
/* : nullable Object */;
225 val
* var4
/* : nullable Object */;
226 var1
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
228 PRINT_ERROR("Runtime error: %s", "Receiver is null");
229 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 35);
232 { /* Inline abstract_collection#Container#item (var1) on <var1:nullable ListNode[nullable Object]> */
233 if (unlikely(var1
== NULL
)) {
234 PRINT_ERROR("Runtime error: %s", "Receiver is null");
235 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
238 var4
= var1
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var1:nullable ListNode[nullable Object]> */
248 /* method list#List#is_empty for (self: List[nullable Object]): Bool */
249 short int standard___standard__List___standard__abstract_collection__Collection__is_empty(val
* self
) {
250 short int var
/* : Bool */;
251 val
* var1
/* : nullable ListNode[nullable Object] */;
252 val
* var2
/* : null */;
253 short int var3
/* : Bool */;
254 short int var4
/* : Bool */;
255 val
* var_other
/* var other: nullable Object */;
256 short int var6
/* : Bool */;
257 short int var8
/* : Bool */;
258 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
261 var3
= 1; /* is null */
263 var3
= 0; /* arg is null but recv is not */
266 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable ListNode[nullable Object]> */
269 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
270 var8
= var1
== var_other
;
287 /* method list#List#length for (self: List[nullable Object]): Int */
288 long standard___standard__List___standard__abstract_collection__Collection__length(val
* self
) {
289 long var
/* : Int */;
290 long var1
/* : Int */;
291 long var_l
/* var l: Int */;
292 val
* var2
/* : nullable ListNode[nullable Object] */;
293 val
* var_t
/* var t: nullable ListNode[nullable Object] */;
294 val
* var3
/* : null */;
295 short int var4
/* : Bool */;
296 short int var5
/* : Bool */;
297 val
* var_other
/* var other: nullable Object */;
298 short int var7
/* : Bool */;
299 short int var8
/* : Bool */;
300 long var9
/* : Int */;
301 long var10
/* : Int */;
302 short int var12
/* : Bool */;
305 const char* var_class_name
;
306 long var13
/* : Int */;
307 val
* var14
/* : nullable ListNode[nullable Object] */;
308 val
* var16
/* : nullable ListNode[nullable Object] */;
311 var2
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
316 var4
= 0; /* is null */
318 var4
= 1; /* arg is null and recv is not */
321 { /* Inline kernel#Object#!= (var_t,var3) on <var_t:nullable ListNode[nullable Object]> */
324 var7
= ((short int (*)(val
* self
, val
* p0
))(var_t
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_t
, var_other
) /* == on <var_t:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
336 { /* Inline kernel#Int#+ (var_l,var9) on <var_l:Int> */
337 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
338 /* <var9:Int> isa OTHER */
339 var12
= 1; /* easy <var9:Int> isa OTHER*/
340 if (unlikely(!var12
)) {
341 var_class_name
= type_standard__Int
.name
;
342 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
343 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
346 var13
= var_l
+ var9
;
354 { /* Inline list#ListNode#next (var_t) on <var_t:nullable ListNode[nullable Object](ListNode[nullable Object])> */
355 var16
= var_t
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_t:nullable ListNode[nullable Object](ListNode[nullable Object])> */
365 BREAK_label
: (void)0;
371 /* method list#List#has for (self: List[nullable Object], nullable Object): Bool */
372 short int standard___standard__List___standard__abstract_collection__Collection__has(val
* self
, val
* p0
) {
373 short int var
/* : Bool */;
374 short int var1
/* : Bool */;
377 const struct type
* type_struct
;
378 short int is_nullable
;
379 const char* var_class_name
;
380 val
* var_e
/* var e: nullable Object */;
381 val
* var2
/* : nullable ListNode[nullable Object] */;
382 val
* var3
/* : nullable ListNode[nullable Object] */;
383 val
* var4
/* : null */;
384 short int var5
/* : Bool */;
385 short int var6
/* : Bool */;
386 val
* var_other
/* var other: nullable Object */;
387 short int var8
/* : Bool */;
388 short int var9
/* : Bool */;
389 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
390 /* <p0:nullable Object> isa E */
391 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
392 cltype
= type_struct
->color
;
393 idtype
= type_struct
->id
;
394 is_nullable
= type_struct
->is_nullable
;
398 if(cltype
>= p0
->type
->table_size
) {
401 var1
= p0
->type
->type_table
[cltype
] == idtype
;
404 if (unlikely(!var1
)) {
405 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
406 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
407 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 57);
411 var2
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
413 var3
= standard___standard__List___search_node_after(self
, var_e
, var2
);
417 var5
= 0; /* is null */
419 var5
= 1; /* arg is null and recv is not */
422 { /* Inline kernel#Object#!= (var3,var4) on <var3:nullable ListNode[nullable Object]> */
425 var8
= ((short int (*)(val
* self
, val
* p0
))(var3
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var3
, var_other
) /* == on <var3:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
439 /* method list#List#push for (self: List[nullable Object], nullable Object) */
440 void standard___standard__List___standard__abstract_collection__Sequence__push(val
* self
, val
* p0
) {
441 short int var
/* : Bool */;
444 const struct type
* type_struct
;
445 short int is_nullable
;
446 const char* var_class_name
;
447 val
* var_e
/* var e: nullable Object */;
448 val
* var1
/* : ListNode[nullable Object] */;
449 val
* var_node
/* var node: ListNode[nullable Object] */;
450 val
* var2
/* : nullable ListNode[nullable Object] */;
451 val
* var3
/* : null */;
452 short int var4
/* : Bool */;
453 short int var5
/* : Bool */;
454 val
* var_other
/* var other: nullable Object */;
455 short int var7
/* : Bool */;
456 short int var9
/* : Bool */;
457 val
* var10
/* : nullable ListNode[nullable Object] */;
458 short int var12
/* : Bool */;
461 const struct type
* type_struct15
;
462 const char* var_class_name16
;
463 val
* var17
/* : nullable ListNode[nullable Object] */;
464 short int var19
/* : Bool */;
467 const struct type
* type_struct22
;
468 const char* var_class_name23
;
469 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
470 /* <p0:nullable Object> isa E */
471 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
472 cltype
= type_struct
->color
;
473 idtype
= type_struct
->id
;
474 is_nullable
= type_struct
->is_nullable
;
478 if(cltype
>= p0
->type
->table_size
) {
481 var
= p0
->type
->type_table
[cltype
] == idtype
;
484 if (unlikely(!var
)) {
485 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
486 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
487 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 95);
491 var1
= NEW_standard__list__ListNode(self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
]);
493 ((void (*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__abstract_collection__Container__item_61d
]))(var1
, var_e
) /* item= on <var1:ListNode[nullable Object]>*/;
496 ((void (*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
) /* init on <var1:ListNode[nullable Object]>*/;
499 var2
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
502 var4
= 1; /* is null */
504 var4
= 0; /* arg is null but recv is not */
507 { /* Inline kernel#Object#== (var2,var3) on <var2:nullable ListNode[nullable Object]> */
510 { /* Inline kernel#Object#is_same_instance (var2,var_other) on <var2:nullable ListNode[nullable Object](ListNode[nullable Object])> */
511 var9
= var2
== var_other
;
524 self
->attrs
[COLOR_standard__list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
526 var10
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
529 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 102);
532 { /* Inline list#ListNode#next= (var10,var_node) on <var10:nullable ListNode[nullable Object]> */
533 /* Covariant cast for argument 0 (next) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
534 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
535 type_struct15
= var10
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
536 cltype13
= type_struct15
->color
;
537 idtype14
= type_struct15
->id
;
538 if(cltype13
>= var_node
->type
->table_size
) {
541 var12
= var_node
->type
->type_table
[cltype13
] == idtype14
;
543 if (unlikely(!var12
)) {
544 var_class_name16
= var_node
== NULL ?
"null" : var_node
->type
->name
;
545 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name16
);
546 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
549 if (unlikely(var10
== NULL
)) {
550 PRINT_ERROR("Runtime error: %s", "Receiver is null");
551 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
554 var10
->attrs
[COLOR_standard__list__ListNode___next
].val
= var_node
; /* _next on <var10:nullable ListNode[nullable Object]> */
558 var17
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
560 { /* Inline list#ListNode#prev= (var_node,var17) on <var_node:ListNode[nullable Object]> */
561 /* Covariant cast for argument 0 (prev) <var17:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
562 /* <var17:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
563 type_struct22
= var_node
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
564 cltype20
= type_struct22
->color
;
565 idtype21
= type_struct22
->id
;
569 if(cltype20
>= var17
->type
->table_size
) {
572 var19
= var17
->type
->type_table
[cltype20
] == idtype21
;
575 if (unlikely(!var19
)) {
576 var_class_name23
= var17
== NULL ?
"null" : var17
->type
->name
;
577 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23
);
578 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
581 var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var17
; /* _prev on <var_node:ListNode[nullable Object]> */
586 self
->attrs
[COLOR_standard__list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
589 /* method list#List#unshift for (self: List[nullable Object], nullable Object) */
590 void standard___standard__List___standard__abstract_collection__Sequence__unshift(val
* self
, val
* p0
) {
591 short int var
/* : Bool */;
594 const struct type
* type_struct
;
595 short int is_nullable
;
596 const char* var_class_name
;
597 val
* var_e
/* var e: nullable Object */;
598 val
* var1
/* : ListNode[nullable Object] */;
599 val
* var_node
/* var node: ListNode[nullable Object] */;
600 val
* var2
/* : nullable ListNode[nullable Object] */;
601 val
* var3
/* : null */;
602 short int var4
/* : Bool */;
603 short int var5
/* : Bool */;
604 val
* var_other
/* var other: nullable Object */;
605 short int var7
/* : Bool */;
606 short int var9
/* : Bool */;
607 val
* var10
/* : nullable ListNode[nullable Object] */;
608 short int var12
/* : Bool */;
611 const struct type
* type_struct15
;
612 const char* var_class_name16
;
613 val
* var17
/* : nullable ListNode[nullable Object] */;
614 short int var19
/* : Bool */;
617 const struct type
* type_struct22
;
618 const char* var_class_name23
;
619 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
620 /* <p0:nullable Object> isa E */
621 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
622 cltype
= type_struct
->color
;
623 idtype
= type_struct
->id
;
624 is_nullable
= type_struct
->is_nullable
;
628 if(cltype
>= p0
->type
->table_size
) {
631 var
= p0
->type
->type_table
[cltype
] == idtype
;
634 if (unlikely(!var
)) {
635 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
636 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
637 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 108);
641 var1
= NEW_standard__list__ListNode(self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
]);
643 ((void (*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__abstract_collection__Container__item_61d
]))(var1
, var_e
) /* item= on <var1:ListNode[nullable Object]>*/;
646 ((void (*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
) /* init on <var1:ListNode[nullable Object]>*/;
649 var2
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
652 var4
= 1; /* is null */
654 var4
= 0; /* arg is null but recv is not */
657 { /* Inline kernel#Object#== (var2,var3) on <var2:nullable ListNode[nullable Object]> */
660 { /* Inline kernel#Object#is_same_instance (var2,var_other) on <var2:nullable ListNode[nullable Object](ListNode[nullable Object])> */
661 var9
= var2
== var_other
;
674 self
->attrs
[COLOR_standard__list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
676 var10
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
678 { /* Inline list#ListNode#next= (var_node,var10) on <var_node:ListNode[nullable Object]> */
679 /* Covariant cast for argument 0 (next) <var10:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
680 /* <var10:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
681 type_struct15
= var_node
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
682 cltype13
= type_struct15
->color
;
683 idtype14
= type_struct15
->id
;
687 if(cltype13
>= var10
->type
->table_size
) {
690 var12
= var10
->type
->type_table
[cltype13
] == idtype14
;
693 if (unlikely(!var12
)) {
694 var_class_name16
= var10
== NULL ?
"null" : var10
->type
->name
;
695 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name16
);
696 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
699 var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
= var10
; /* _next on <var_node:ListNode[nullable Object]> */
703 var17
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
705 PRINT_ERROR("Runtime error: %s", "Receiver is null");
706 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 116);
709 { /* Inline list#ListNode#prev= (var17,var_node) on <var17:nullable ListNode[nullable Object]> */
710 /* Covariant cast for argument 0 (prev) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
711 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
712 type_struct22
= var17
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
713 cltype20
= type_struct22
->color
;
714 idtype21
= type_struct22
->id
;
715 if(cltype20
>= var_node
->type
->table_size
) {
718 var19
= var_node
->type
->type_table
[cltype20
] == idtype21
;
720 if (unlikely(!var19
)) {
721 var_class_name23
= var_node
== NULL ?
"null" : var_node
->type
->name
;
722 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23
);
723 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
726 if (unlikely(var17
== NULL
)) {
727 PRINT_ERROR("Runtime error: %s", "Receiver is null");
728 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
731 var17
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var_node
; /* _prev on <var17:nullable ListNode[nullable Object]> */
736 self
->attrs
[COLOR_standard__list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
739 /* method list#List#insert for (self: List[nullable Object], nullable Object, Int) */
740 void standard___standard__List___standard__abstract_collection__Sequence__insert(val
* self
, val
* p0
, long p1
) {
741 short int var
/* : Bool */;
744 const struct type
* type_struct
;
745 short int is_nullable
;
746 const char* var_class_name
;
747 val
* var_e
/* var e: nullable Object */;
748 long var_i
/* var i: Int */;
749 val
* var1
/* : nullable ListNode[nullable Object] */;
750 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
751 val
* var2
/* : null */;
752 short int var3
/* : Bool */;
753 short int var4
/* : Bool */;
754 val
* var_other
/* var other: nullable Object */;
755 short int var6
/* : Bool */;
756 short int var8
/* : Bool */;
757 val
* var9
/* : ListNode[nullable Object] */;
758 val
* var_nnode
/* var nnode: ListNode[nullable Object] */;
759 val
* var10
/* : nullable ListNode[nullable Object] */;
760 val
* var12
/* : nullable ListNode[nullable Object] */;
761 val
* var_next
/* var next: nullable ListNode[nullable Object] */;
762 val
* var13
/* : null */;
763 short int var14
/* : Bool */;
764 short int var15
/* : Bool */;
765 short int var17
/* : Bool */;
766 short int var19
/* : Bool */;
767 short int var21
/* : Bool */;
770 const struct type
* type_struct24
;
771 const char* var_class_name25
;
772 short int var27
/* : Bool */;
775 const struct type
* type_struct30
;
776 const char* var_class_name31
;
777 short int var33
/* : Bool */;
780 const struct type
* type_struct36
;
781 const char* var_class_name37
;
782 short int var39
/* : Bool */;
785 const struct type
* type_struct42
;
786 const char* var_class_name43
;
787 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
788 /* <p0:nullable Object> isa E */
789 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
790 cltype
= type_struct
->color
;
791 idtype
= type_struct
->id
;
792 is_nullable
= type_struct
->is_nullable
;
796 if(cltype
>= p0
->type
->table_size
) {
799 var
= p0
->type
->type_table
[cltype
] == idtype
;
802 if (unlikely(!var
)) {
803 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
804 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
805 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 121);
811 var1
= standard___standard__List___get_node(self
, var_i
);
815 if (var_node
== NULL
) {
816 var3
= 1; /* is null */
818 var3
= 0; /* arg is null but recv is not */
821 { /* Inline kernel#Object#== (var_node,var2) on <var_node:nullable ListNode[nullable Object]> */
824 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
825 var8
= var_node
== var_other
;
839 standard___standard__List___standard__abstract_collection__Sequence__push(self
, var_e
); /* Direct call list#List#push on <self:List[nullable Object]>*/
844 var9
= NEW_standard__list__ListNode(self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
]);
846 ((void (*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_standard__abstract_collection__Container__item_61d
]))(var9
, var_e
) /* item= on <var9:ListNode[nullable Object]>*/;
849 ((void (*)(val
* self
))(var9
->class->vft
[COLOR_standard__kernel__Object__init
]))(var9
) /* init on <var9:ListNode[nullable Object]>*/;
853 { /* Inline list#ListNode#next (var_node) on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
854 var12
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
861 if (var_next
== NULL
) {
862 var14
= 1; /* is null */
864 var14
= 0; /* arg is null but recv is not */
867 { /* Inline kernel#Object#== (var_next,var13) on <var_next:nullable ListNode[nullable Object]> */
870 { /* Inline kernel#Object#is_same_instance (var_next,var_other) on <var_next:nullable ListNode[nullable Object](ListNode[nullable Object])> */
871 var19
= var_next
== var_other
;
884 self
->attrs
[COLOR_standard__list__List___tail
].val
= var_nnode
; /* _tail on <self:List[nullable Object]> */
887 { /* Inline list#ListNode#prev= (var_next,var_nnode) on <var_next:nullable ListNode[nullable Object](ListNode[nullable Object])> */
888 /* Covariant cast for argument 0 (prev) <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
889 /* <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
890 type_struct24
= var_next
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
891 cltype22
= type_struct24
->color
;
892 idtype23
= type_struct24
->id
;
893 if(cltype22
>= var_nnode
->type
->table_size
) {
896 var21
= var_nnode
->type
->type_table
[cltype22
] == idtype23
;
898 if (unlikely(!var21
)) {
899 var_class_name25
= var_nnode
== NULL ?
"null" : var_nnode
->type
->name
;
900 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name25
);
901 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
904 var_next
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var_nnode
; /* _prev on <var_next:nullable ListNode[nullable Object](ListNode[nullable Object])> */
910 { /* Inline list#ListNode#prev= (var_nnode,var_node) on <var_nnode:ListNode[nullable Object]> */
911 /* Covariant cast for argument 0 (prev) <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> isa nullable ListNode[E] */
912 /* <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> isa nullable ListNode[E] */
913 type_struct30
= var_nnode
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
914 cltype28
= type_struct30
->color
;
915 idtype29
= type_struct30
->id
;
916 if(cltype28
>= var_node
->type
->table_size
) {
919 var27
= var_node
->type
->type_table
[cltype28
] == idtype29
;
921 if (unlikely(!var27
)) {
922 var_class_name31
= var_node
== NULL ?
"null" : var_node
->type
->name
;
923 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name31
);
924 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
927 var_nnode
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var_node
; /* _prev on <var_nnode:ListNode[nullable Object]> */
932 { /* Inline list#ListNode#next= (var_nnode,var_next) on <var_nnode:ListNode[nullable Object]> */
933 /* Covariant cast for argument 0 (next) <var_next:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
934 /* <var_next:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
935 type_struct36
= var_nnode
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
936 cltype34
= type_struct36
->color
;
937 idtype35
= type_struct36
->id
;
938 if(var_next
== NULL
) {
941 if(cltype34
>= var_next
->type
->table_size
) {
944 var33
= var_next
->type
->type_table
[cltype34
] == idtype35
;
947 if (unlikely(!var33
)) {
948 var_class_name37
= var_next
== NULL ?
"null" : var_next
->type
->name
;
949 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name37
);
950 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
953 var_nnode
->attrs
[COLOR_standard__list__ListNode___next
].val
= var_next
; /* _next on <var_nnode:ListNode[nullable Object]> */
958 { /* Inline list#ListNode#next= (var_node,var_nnode) on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
959 /* Covariant cast for argument 0 (next) <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
960 /* <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
961 type_struct42
= var_node
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
962 cltype40
= type_struct42
->color
;
963 idtype41
= type_struct42
->id
;
964 if(cltype40
>= var_nnode
->type
->table_size
) {
967 var39
= var_nnode
->type
->type_table
[cltype40
] == idtype41
;
969 if (unlikely(!var39
)) {
970 var_class_name43
= var_nnode
== NULL ?
"null" : var_nnode
->type
->name
;
971 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name43
);
972 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
975 var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
= var_nnode
; /* _next on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
981 /* method list#List#pop for (self: List[nullable Object]): nullable Object */
982 val
* standard___standard__List___standard__abstract_collection__Sequence__pop(val
* self
) {
983 val
* var
/* : nullable Object */;
984 val
* var1
/* : nullable ListNode[nullable Object] */;
985 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
986 val
* var2
/* : nullable ListNode[nullable Object] */;
987 val
* var4
/* : nullable ListNode[nullable Object] */;
988 val
* var5
/* : null */;
989 short int var7
/* : Bool */;
992 const char* var_class_name
;
993 val
* var8
/* : nullable ListNode[nullable Object] */;
994 val
* var9
/* : null */;
995 short int var10
/* : Bool */;
996 short int var11
/* : Bool */;
997 val
* var_other
/* var other: nullable Object */;
998 short int var13
/* : Bool */;
999 short int var15
/* : Bool */;
1000 val
* var16
/* : null */;
1001 val
* var17
/* : nullable ListNode[nullable Object] */;
1002 val
* var18
/* : null */;
1003 short int var20
/* : Bool */;
1006 const char* var_class_name23
;
1007 val
* var24
/* : nullable Object */;
1008 val
* var26
/* : nullable Object */;
1009 var1
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
1011 if (var_node
== NULL
) {
1012 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1013 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 162);
1016 { /* Inline list#ListNode#prev (var_node) on <var_node:nullable ListNode[nullable Object]> */
1017 if (unlikely(var_node
== NULL
)) {
1018 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1019 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
1022 var4
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:nullable ListNode[nullable Object]> */
1027 self
->attrs
[COLOR_standard__list__List___tail
].val
= var2
; /* _tail on <self:List[nullable Object]> */
1029 if (var_node
== NULL
) {
1030 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1031 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 163);
1034 { /* Inline list#ListNode#prev= (var_node,var5) on <var_node:nullable ListNode[nullable Object]> */
1035 /* Covariant cast for argument 0 (prev) <var5:null> isa nullable ListNode[E] */
1036 /* <var5:null> isa nullable ListNode[E] */
1037 var7
= 1; /* easy <var5:null> isa nullable ListNode[E]*/
1038 if (unlikely(!var7
)) {
1039 var_class_name
= var5
== NULL ?
"null" : var5
->type
->name
;
1040 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
1041 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
1044 if (unlikely(var_node
== NULL
)) {
1045 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1046 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
1049 var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var5
; /* _prev on <var_node:nullable ListNode[nullable Object]> */
1053 var8
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
1056 var10
= 1; /* is null */
1058 var10
= 0; /* arg is null but recv is not */
1061 { /* Inline kernel#Object#== (var8,var9) on <var8:nullable ListNode[nullable Object]> */
1064 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1065 var15
= var8
== var_other
;
1068 RET_LABEL14
:(void)0;
1073 RET_LABEL12
:(void)0;
1079 self
->attrs
[COLOR_standard__list__List___head
].val
= var16
; /* _head on <self:List[nullable Object]> */
1081 var17
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
1083 if (var17
== NULL
) {
1084 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1085 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 167);
1088 { /* Inline list#ListNode#next= (var17,var18) on <var17:nullable ListNode[nullable Object]> */
1089 /* Covariant cast for argument 0 (next) <var18:null> isa nullable ListNode[E] */
1090 /* <var18:null> isa nullable ListNode[E] */
1091 var20
= 1; /* easy <var18:null> isa nullable ListNode[E]*/
1092 if (unlikely(!var20
)) {
1093 var_class_name23
= var18
== NULL ?
"null" : var18
->type
->name
;
1094 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23
);
1095 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
1098 if (unlikely(var17
== NULL
)) {
1099 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1100 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
1103 var17
->attrs
[COLOR_standard__list__ListNode___next
].val
= var18
; /* _next on <var17:nullable ListNode[nullable Object]> */
1104 RET_LABEL19
:(void)0;
1108 if (var_node
== NULL
) {
1109 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1110 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 169);
1113 { /* Inline abstract_collection#Container#item (var_node) on <var_node:nullable ListNode[nullable Object]> */
1114 if (unlikely(var_node
== NULL
)) {
1115 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1116 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
1119 var26
= var_node
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var_node:nullable ListNode[nullable Object]> */
1121 RET_LABEL25
:(void)0;
1129 /* method list#List#shift for (self: List[nullable Object]): nullable Object */
1130 val
* standard___standard__List___standard__abstract_collection__Sequence__shift(val
* self
) {
1131 val
* var
/* : nullable Object */;
1132 val
* var1
/* : nullable ListNode[nullable Object] */;
1133 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1134 val
* var2
/* : nullable ListNode[nullable Object] */;
1135 val
* var4
/* : nullable ListNode[nullable Object] */;
1136 val
* var5
/* : null */;
1137 short int var7
/* : Bool */;
1140 const char* var_class_name
;
1141 val
* var8
/* : nullable ListNode[nullable Object] */;
1142 val
* var9
/* : null */;
1143 short int var10
/* : Bool */;
1144 short int var11
/* : Bool */;
1145 val
* var_other
/* var other: nullable Object */;
1146 short int var13
/* : Bool */;
1147 short int var15
/* : Bool */;
1148 val
* var16
/* : null */;
1149 val
* var17
/* : nullable ListNode[nullable Object] */;
1150 val
* var18
/* : null */;
1151 short int var20
/* : Bool */;
1154 const char* var_class_name23
;
1155 val
* var24
/* : nullable Object */;
1156 val
* var26
/* : nullable Object */;
1157 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1159 if (var_node
== NULL
) {
1160 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1161 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 176);
1164 { /* Inline list#ListNode#next (var_node) on <var_node:nullable ListNode[nullable Object]> */
1165 if (unlikely(var_node
== NULL
)) {
1166 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1167 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
1170 var4
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:nullable ListNode[nullable Object]> */
1175 self
->attrs
[COLOR_standard__list__List___head
].val
= var2
; /* _head on <self:List[nullable Object]> */
1177 if (var_node
== NULL
) {
1178 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1179 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 177);
1182 { /* Inline list#ListNode#next= (var_node,var5) on <var_node:nullable ListNode[nullable Object]> */
1183 /* Covariant cast for argument 0 (next) <var5:null> isa nullable ListNode[E] */
1184 /* <var5:null> isa nullable ListNode[E] */
1185 var7
= 1; /* easy <var5:null> isa nullable ListNode[E]*/
1186 if (unlikely(!var7
)) {
1187 var_class_name
= var5
== NULL ?
"null" : var5
->type
->name
;
1188 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
1189 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
1192 if (unlikely(var_node
== NULL
)) {
1193 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1194 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
1197 var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
= var5
; /* _next on <var_node:nullable ListNode[nullable Object]> */
1201 var8
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1204 var10
= 1; /* is null */
1206 var10
= 0; /* arg is null but recv is not */
1209 { /* Inline kernel#Object#== (var8,var9) on <var8:nullable ListNode[nullable Object]> */
1212 { /* Inline kernel#Object#is_same_instance (var8,var_other) on <var8:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1213 var15
= var8
== var_other
;
1216 RET_LABEL14
:(void)0;
1221 RET_LABEL12
:(void)0;
1227 self
->attrs
[COLOR_standard__list__List___tail
].val
= var16
; /* _tail on <self:List[nullable Object]> */
1229 var17
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1231 if (var17
== NULL
) {
1232 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1233 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 181);
1236 { /* Inline list#ListNode#prev= (var17,var18) on <var17:nullable ListNode[nullable Object]> */
1237 /* Covariant cast for argument 0 (prev) <var18:null> isa nullable ListNode[E] */
1238 /* <var18:null> isa nullable ListNode[E] */
1239 var20
= 1; /* easy <var18:null> isa nullable ListNode[E]*/
1240 if (unlikely(!var20
)) {
1241 var_class_name23
= var18
== NULL ?
"null" : var18
->type
->name
;
1242 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name23
);
1243 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
1246 if (unlikely(var17
== NULL
)) {
1247 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1248 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
1251 var17
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var18
; /* _prev on <var17:nullable ListNode[nullable Object]> */
1252 RET_LABEL19
:(void)0;
1256 if (var_node
== NULL
) {
1257 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1258 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 183);
1261 { /* Inline abstract_collection#Container#item (var_node) on <var_node:nullable ListNode[nullable Object]> */
1262 if (unlikely(var_node
== NULL
)) {
1263 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1264 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
1267 var26
= var_node
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var_node:nullable ListNode[nullable Object]> */
1269 RET_LABEL25
:(void)0;
1277 /* method list#List#remove for (self: List[nullable Object], nullable Object) */
1278 void standard___standard__List___standard__abstract_collection__RemovableCollection__remove(val
* self
, val
* p0
) {
1279 short int var
/* : Bool */;
1282 const struct type
* type_struct
;
1283 short int is_nullable
;
1284 const char* var_class_name
;
1285 val
* var_e
/* var e: nullable Object */;
1286 val
* var1
/* : nullable ListNode[nullable Object] */;
1287 val
* var2
/* : nullable ListNode[nullable Object] */;
1288 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1289 val
* var3
/* : null */;
1290 short int var4
/* : Bool */;
1291 short int var5
/* : Bool */;
1292 val
* var_other
/* var other: nullable Object */;
1293 short int var7
/* : Bool */;
1294 short int var8
/* : Bool */;
1295 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
1296 /* <p0:nullable Object> isa E */
1297 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
1298 cltype
= type_struct
->color
;
1299 idtype
= type_struct
->id
;
1300 is_nullable
= type_struct
->is_nullable
;
1304 if(cltype
>= p0
->type
->table_size
) {
1307 var
= p0
->type
->type_table
[cltype
] == idtype
;
1310 if (unlikely(!var
)) {
1311 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1312 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1313 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 186);
1317 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1319 var2
= standard___standard__List___search_node_after(self
, var_e
, var1
);
1323 if (var_node
== NULL
) {
1324 var4
= 0; /* is null */
1326 var4
= 1; /* arg is null and recv is not */
1329 { /* Inline kernel#Object#!= (var_node,var3) on <var_node:nullable ListNode[nullable Object]> */
1332 var7
= ((short int (*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_node
, var_other
) /* == on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1343 standard___standard__List___remove_node(self
, var_node
); /* Direct call list#List#remove_node on <self:List[nullable Object]>*/
1349 /* method list#List#remove_at for (self: List[nullable Object], Int) */
1350 void standard___standard__List___standard__abstract_collection__Sequence__remove_at(val
* self
, long p0
) {
1351 long var_i
/* var i: Int */;
1352 val
* var
/* : nullable ListNode[nullable Object] */;
1353 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1354 val
* var1
/* : null */;
1355 short int var2
/* : Bool */;
1356 short int var3
/* : Bool */;
1357 val
* var_other
/* var other: nullable Object */;
1358 short int var5
/* : Bool */;
1359 short int var6
/* : Bool */;
1362 var
= standard___standard__List___get_node(self
, var_i
);
1366 if (var_node
== NULL
) {
1367 var2
= 0; /* is null */
1369 var2
= 1; /* arg is null and recv is not */
1372 { /* Inline kernel#Object#!= (var_node,var1) on <var_node:nullable ListNode[nullable Object]> */
1375 var5
= ((short int (*)(val
* self
, val
* p0
))(var_node
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_node
, var_other
) /* == on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1386 standard___standard__List___remove_node(self
, var_node
); /* Direct call list#List#remove_node on <self:List[nullable Object]>*/
1392 /* method list#List#clear for (self: List[nullable Object]) */
1393 void standard___standard__List___standard__abstract_collection__RemovableCollection__clear(val
* self
) {
1394 val
* var
/* : null */;
1395 val
* var1
/* : null */;
1397 self
->attrs
[COLOR_standard__list__List___head
].val
= var
; /* _head on <self:List[nullable Object]> */
1399 self
->attrs
[COLOR_standard__list__List___tail
].val
= var1
; /* _tail on <self:List[nullable Object]> */
1402 /* method list#List#iterator for (self: List[nullable Object]): ListIterator[nullable Object] */
1403 val
* standard___standard__List___standard__abstract_collection__Collection__iterator(val
* self
) {
1404 val
* var
/* : ListIterator[nullable Object] */;
1405 val
* var1
/* : ListIterator[nullable Object] */;
1406 var1
= NEW_standard__ListIterator(self
->type
->resolution_table
->types
[COLOR_standard__ListIterator__standard__List___35dE
]);
1408 ((void (*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__list__ListIterator__list_61d
]))(var1
, self
) /* list= on <var1:ListIterator[nullable Object]>*/;
1411 ((void (*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
) /* init on <var1:ListIterator[nullable Object]>*/;
1418 /* method list#List#init for (self: List[nullable Object]) */
1419 void standard___standard__List___standard__kernel__Object__init(val
* self
) {
1422 /* method list#List#get_node for (self: List[nullable Object], Int): nullable ListNode[nullable Object] */
1423 val
* standard___standard__List___get_node(val
* self
, long p0
) {
1424 val
* var
/* : nullable ListNode[nullable Object] */;
1425 long var_i
/* var i: Int */;
1426 val
* var1
/* : nullable ListNode[nullable Object] */;
1427 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1428 long var2
/* : Int */;
1429 short int var3
/* : Bool */;
1430 short int var5
/* : Bool */;
1433 const char* var_class_name
;
1434 short int var6
/* : Bool */;
1435 val
* var7
/* : null */;
1436 short int var8
/* : Bool */;
1437 val
* var9
/* : null */;
1438 short int var10
/* : Bool */;
1439 short int var11
/* : Bool */;
1440 val
* var_other
/* var other: nullable Object */;
1441 short int var13
/* : Bool */;
1442 short int var14
/* : Bool */;
1443 short int var_
/* var : Bool */;
1444 long var15
/* : Int */;
1445 short int var16
/* : Bool */;
1446 short int var18
/* : Bool */;
1449 const char* var_class_name21
;
1450 short int var22
/* : Bool */;
1451 val
* var23
/* : nullable ListNode[nullable Object] */;
1452 val
* var25
/* : nullable ListNode[nullable Object] */;
1453 long var26
/* : Int */;
1454 long var27
/* : Int */;
1455 short int var29
/* : Bool */;
1458 const char* var_class_name32
;
1459 long var33
/* : Int */;
1461 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1465 { /* Inline kernel#Int#< (var_i,var2) on <var_i:Int> */
1466 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1467 /* <var2:Int> isa OTHER */
1468 var5
= 1; /* easy <var2:Int> isa OTHER*/
1469 if (unlikely(!var5
)) {
1470 var_class_name
= type_standard__Int
.name
;
1471 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1472 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 410);
1475 var6
= var_i
< var2
;
1489 if (var_n
== NULL
) {
1490 var10
= 0; /* is null */
1492 var10
= 1; /* arg is null and recv is not */
1495 { /* Inline kernel#Object#!= (var_n,var9) on <var_n:nullable ListNode[nullable Object]> */
1498 var13
= ((short int (*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_n
, var_other
) /* == on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1503 RET_LABEL12
:(void)0;
1511 { /* Inline kernel#Int#> (var_i,var15) on <var_i:Int> */
1512 /* Covariant cast for argument 0 (i) <var15:Int> isa OTHER */
1513 /* <var15:Int> isa OTHER */
1514 var18
= 1; /* easy <var15:Int> isa OTHER*/
1515 if (unlikely(!var18
)) {
1516 var_class_name21
= type_standard__Int
.name
;
1517 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name21
);
1518 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 412);
1521 var22
= var_i
> var15
;
1524 RET_LABEL17
:(void)0;
1533 { /* Inline list#ListNode#next (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1534 var25
= var_n
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1536 RET_LABEL24
:(void)0;
1542 { /* Inline kernel#Int#- (var_i,var26) on <var_i:Int> */
1543 /* Covariant cast for argument 0 (i) <var26:Int> isa OTHER */
1544 /* <var26:Int> isa OTHER */
1545 var29
= 1; /* easy <var26:Int> isa OTHER*/
1546 if (unlikely(!var29
)) {
1547 var_class_name32
= type_standard__Int
.name
;
1548 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name32
);
1549 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 416);
1552 var33
= var_i
- var26
;
1555 RET_LABEL28
:(void)0;
1563 BREAK_label
: (void)0;
1569 /* method list#List#search_node_after for (self: List[nullable Object], nullable Object, nullable ListNode[nullable Object]): nullable ListNode[nullable Object] */
1570 val
* standard___standard__List___search_node_after(val
* self
, val
* p0
, val
* p1
) {
1571 val
* var
/* : nullable ListNode[nullable Object] */;
1572 short int var1
/* : Bool */;
1575 const struct type
* type_struct
;
1576 short int is_nullable
;
1577 const char* var_class_name
;
1578 short int var2
/* : Bool */;
1581 const struct type
* type_struct5
;
1582 const char* var_class_name6
;
1583 val
* var_e
/* var e: nullable Object */;
1584 val
* var_after
/* var after: nullable ListNode[nullable Object] */;
1585 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1586 short int var7
/* : Bool */;
1587 val
* var8
/* : null */;
1588 short int var9
/* : Bool */;
1589 short int var10
/* : Bool */;
1590 val
* var_other
/* var other: nullable Object */;
1591 short int var12
/* : Bool */;
1592 short int var13
/* : Bool */;
1593 short int var_
/* var : Bool */;
1594 val
* var14
/* : nullable Object */;
1595 val
* var16
/* : nullable Object */;
1596 short int var17
/* : Bool */;
1597 short int var18
/* : Bool */;
1598 val
* var19
/* : nullable ListNode[nullable Object] */;
1599 val
* var21
/* : nullable ListNode[nullable Object] */;
1600 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
1601 /* <p0:nullable Object> isa E */
1602 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
1603 cltype
= type_struct
->color
;
1604 idtype
= type_struct
->id
;
1605 is_nullable
= type_struct
->is_nullable
;
1609 if(cltype
>= p0
->type
->table_size
) {
1612 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1615 if (unlikely(!var1
)) {
1616 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1617 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1618 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 234);
1621 /* Covariant cast for argument 1 (after) <p1:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1622 /* <p1:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1623 type_struct5
= self
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__List___35dE
];
1624 cltype3
= type_struct5
->color
;
1625 idtype4
= type_struct5
->id
;
1629 if(cltype3
>= p1
->type
->table_size
) {
1632 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
1635 if (unlikely(!var2
)) {
1636 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
1637 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name6
);
1638 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 234);
1646 if (var_n
== NULL
) {
1647 var9
= 0; /* is null */
1649 var9
= 1; /* arg is null and recv is not */
1652 { /* Inline kernel#Object#!= (var_n,var8) on <var_n:nullable ListNode[nullable Object]> */
1655 var12
= ((short int (*)(val
* self
, val
* p0
))(var_n
->class->vft
[COLOR_standard__kernel__Object___61d_61d
]))(var_n
, var_other
) /* == on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1660 RET_LABEL11
:(void)0;
1667 { /* Inline abstract_collection#Container#item (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1668 var16
= var_n
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1670 RET_LABEL15
:(void)0;
1673 if (var14
== NULL
) {
1674 var17
= (var_e
!= NULL
);
1676 var18
= ((short int (*)(val
* self
, val
* p0
))(var14
->class->vft
[COLOR_standard__kernel__Object___33d_61d
]))(var14
, var_e
) /* != on <var14:nullable Object>*/;
1685 { /* Inline list#ListNode#next (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1686 var21
= var_n
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1688 RET_LABEL20
:(void)0;
1696 BREAK_label
: (void)0;
1702 /* method list#List#remove_node for (self: List[nullable Object], ListNode[nullable Object]) */
1703 void standard___standard__List___remove_node(val
* self
, val
* p0
) {
1704 short int var
/* : Bool */;
1707 const struct type
* type_struct
;
1708 const char* var_class_name
;
1709 val
* var_node
/* var node: ListNode[nullable Object] */;
1710 val
* var1
/* : nullable ListNode[nullable Object] */;
1711 val
* var3
/* : nullable ListNode[nullable Object] */;
1712 val
* var4
/* : null */;
1713 short int var5
/* : Bool */;
1714 short int var6
/* : Bool */;
1715 val
* var_other
/* var other: nullable Object */;
1716 short int var8
/* : Bool */;
1717 short int var10
/* : Bool */;
1718 val
* var11
/* : nullable ListNode[nullable Object] */;
1719 val
* var13
/* : nullable ListNode[nullable Object] */;
1720 val
* var14
/* : nullable ListNode[nullable Object] */;
1721 val
* var16
/* : nullable ListNode[nullable Object] */;
1722 val
* var17
/* : null */;
1723 short int var18
/* : Bool */;
1724 short int var19
/* : Bool */;
1725 short int var21
/* : Bool */;
1726 short int var23
/* : Bool */;
1727 val
* var24
/* : null */;
1728 val
* var25
/* : nullable ListNode[nullable Object] */;
1729 val
* var27
/* : nullable ListNode[nullable Object] */;
1730 val
* var28
/* : null */;
1731 short int var30
/* : Bool */;
1734 const char* var_class_name33
;
1735 val
* var34
/* : nullable ListNode[nullable Object] */;
1736 val
* var36
/* : nullable ListNode[nullable Object] */;
1737 val
* var37
/* : null */;
1738 short int var38
/* : Bool */;
1739 short int var39
/* : Bool */;
1740 short int var41
/* : Bool */;
1741 short int var43
/* : Bool */;
1742 val
* var44
/* : nullable ListNode[nullable Object] */;
1743 val
* var46
/* : nullable ListNode[nullable Object] */;
1744 val
* var47
/* : nullable ListNode[nullable Object] */;
1745 val
* var49
/* : nullable ListNode[nullable Object] */;
1746 val
* var50
/* : null */;
1747 short int var52
/* : Bool */;
1750 const char* var_class_name55
;
1751 val
* var56
/* : nullable ListNode[nullable Object] */;
1752 val
* var58
/* : nullable ListNode[nullable Object] */;
1753 val
* var59
/* : nullable ListNode[nullable Object] */;
1754 val
* var61
/* : nullable ListNode[nullable Object] */;
1755 short int var63
/* : Bool */;
1758 const struct type
* type_struct66
;
1759 const char* var_class_name67
;
1760 val
* var68
/* : nullable ListNode[nullable Object] */;
1761 val
* var70
/* : nullable ListNode[nullable Object] */;
1762 val
* var71
/* : nullable ListNode[nullable Object] */;
1763 val
* var73
/* : nullable ListNode[nullable Object] */;
1764 short int var75
/* : Bool */;
1767 const struct type
* type_struct78
;
1768 const char* var_class_name79
;
1769 /* Covariant cast for argument 0 (node) <p0:ListNode[nullable Object]> isa ListNode[E] */
1770 /* <p0:ListNode[nullable Object]> isa ListNode[E] */
1771 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
];
1772 cltype
= type_struct
->color
;
1773 idtype
= type_struct
->id
;
1774 if(cltype
>= p0
->type
->table_size
) {
1777 var
= p0
->type
->type_table
[cltype
] == idtype
;
1779 if (unlikely(!var
)) {
1780 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1781 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ListNode[E]", var_class_name
);
1782 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 242);
1787 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1788 var3
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1795 var5
= 1; /* is null */
1797 var5
= 0; /* arg is null but recv is not */
1800 { /* Inline kernel#Object#== (var1,var4) on <var1:nullable ListNode[nullable Object]> */
1803 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1804 var10
= var1
== var_other
;
1818 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1819 var13
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1821 RET_LABEL12
:(void)0;
1824 self
->attrs
[COLOR_standard__list__List___head
].val
= var11
; /* _head on <self:List[nullable Object]> */
1826 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1827 var16
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1829 RET_LABEL15
:(void)0;
1833 if (var14
== NULL
) {
1834 var18
= 1; /* is null */
1836 var18
= 0; /* arg is null but recv is not */
1839 { /* Inline kernel#Object#== (var14,var17) on <var14:nullable ListNode[nullable Object]> */
1842 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1843 var23
= var14
== var_other
;
1846 RET_LABEL22
:(void)0;
1851 RET_LABEL20
:(void)0;
1857 self
->attrs
[COLOR_standard__list__List___tail
].val
= var24
; /* _tail on <self:List[nullable Object]> */
1860 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1861 var27
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1863 RET_LABEL26
:(void)0;
1867 if (var25
== NULL
) {
1868 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1869 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 250);
1872 { /* Inline list#ListNode#prev= (var25,var28) on <var25:nullable ListNode[nullable Object]> */
1873 /* Covariant cast for argument 0 (prev) <var28:null> isa nullable ListNode[E] */
1874 /* <var28:null> isa nullable ListNode[E] */
1875 var30
= 1; /* easy <var28:null> isa nullable ListNode[E]*/
1876 if (unlikely(!var30
)) {
1877 var_class_name33
= var28
== NULL ?
"null" : var28
->type
->name
;
1878 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name33
);
1879 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
1882 if (unlikely(var25
== NULL
)) {
1883 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1884 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
1887 var25
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var28
; /* _prev on <var25:nullable ListNode[nullable Object]> */
1888 RET_LABEL29
:(void)0;
1894 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1895 var36
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1897 RET_LABEL35
:(void)0;
1901 if (var34
== NULL
) {
1902 var38
= 1; /* is null */
1904 var38
= 0; /* arg is null but recv is not */
1907 { /* Inline kernel#Object#== (var34,var37) on <var34:nullable ListNode[nullable Object]> */
1910 { /* Inline kernel#Object#is_same_instance (var34,var_other) on <var34:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1911 var43
= var34
== var_other
;
1914 RET_LABEL42
:(void)0;
1919 RET_LABEL40
:(void)0;
1925 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1926 var46
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1928 RET_LABEL45
:(void)0;
1931 self
->attrs
[COLOR_standard__list__List___tail
].val
= var44
; /* _tail on <self:List[nullable Object]> */
1933 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1934 var49
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1936 RET_LABEL48
:(void)0;
1940 if (var47
== NULL
) {
1941 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1942 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 254);
1945 { /* Inline list#ListNode#next= (var47,var50) on <var47:nullable ListNode[nullable Object]> */
1946 /* Covariant cast for argument 0 (next) <var50:null> isa nullable ListNode[E] */
1947 /* <var50:null> isa nullable ListNode[E] */
1948 var52
= 1; /* easy <var50:null> isa nullable ListNode[E]*/
1949 if (unlikely(!var52
)) {
1950 var_class_name55
= var50
== NULL ?
"null" : var50
->type
->name
;
1951 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name55
);
1952 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
1955 if (unlikely(var47
== NULL
)) {
1956 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1957 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
1960 var47
->attrs
[COLOR_standard__list__ListNode___next
].val
= var50
; /* _next on <var47:nullable ListNode[nullable Object]> */
1961 RET_LABEL51
:(void)0;
1966 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1967 var58
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1969 RET_LABEL57
:(void)0;
1973 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1974 var61
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1976 RET_LABEL60
:(void)0;
1979 if (var56
== NULL
) {
1980 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1981 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 256);
1984 { /* Inline list#ListNode#next= (var56,var59) on <var56:nullable ListNode[nullable Object]> */
1985 /* Covariant cast for argument 0 (next) <var59:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1986 /* <var59:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1987 type_struct66
= var56
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
1988 cltype64
= type_struct66
->color
;
1989 idtype65
= type_struct66
->id
;
1993 if(cltype64
>= var59
->type
->table_size
) {
1996 var63
= var59
->type
->type_table
[cltype64
] == idtype65
;
1999 if (unlikely(!var63
)) {
2000 var_class_name67
= var59
== NULL ?
"null" : var59
->type
->name
;
2001 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name67
);
2002 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
2005 if (unlikely(var56
== NULL
)) {
2006 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2007 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
2010 var56
->attrs
[COLOR_standard__list__ListNode___next
].val
= var59
; /* _next on <var56:nullable ListNode[nullable Object]> */
2011 RET_LABEL62
:(void)0;
2015 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
2016 var70
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
2018 RET_LABEL69
:(void)0;
2022 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
2023 var73
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
2025 RET_LABEL72
:(void)0;
2028 if (var68
== NULL
) {
2029 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2030 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 257);
2033 { /* Inline list#ListNode#prev= (var68,var71) on <var68:nullable ListNode[nullable Object]> */
2034 /* Covariant cast for argument 0 (prev) <var71:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2035 /* <var71:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2036 type_struct78
= var68
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
2037 cltype76
= type_struct78
->color
;
2038 idtype77
= type_struct78
->id
;
2042 if(cltype76
>= var71
->type
->table_size
) {
2045 var75
= var71
->type
->type_table
[cltype76
] == idtype77
;
2048 if (unlikely(!var75
)) {
2049 var_class_name79
= var71
== NULL ?
"null" : var71
->type
->name
;
2050 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name79
);
2051 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
2054 if (unlikely(var68
== NULL
)) {
2055 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2056 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
2059 var68
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var71
; /* _prev on <var68:nullable ListNode[nullable Object]> */
2060 RET_LABEL74
:(void)0;
2067 /* method list#ListIterator#item for (self: ListIterator[nullable Object]): nullable Object */
2068 val
* standard___standard__ListIterator___standard__abstract_collection__Iterator__item(val
* self
) {
2069 val
* var
/* : nullable Object */;
2070 val
* var1
/* : nullable ListNode[nullable Object] */;
2071 val
* var2
/* : nullable Object */;
2072 val
* var4
/* : nullable Object */;
2073 var1
= self
->attrs
[COLOR_standard__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2075 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2076 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 279);
2079 { /* Inline abstract_collection#Container#item (var1) on <var1:nullable ListNode[nullable Object]> */
2080 if (unlikely(var1
== NULL
)) {
2081 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2082 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 232);
2085 var4
= var1
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var1:nullable ListNode[nullable Object]> */
2095 /* method list#ListIterator#is_ok for (self: ListIterator[nullable Object]): Bool */
2096 short int standard___standard__ListIterator___standard__abstract_collection__Iterator__is_ok(val
* self
) {
2097 short int var
/* : Bool */;
2098 val
* var1
/* : nullable ListNode[nullable Object] */;
2099 val
* var2
/* : null */;
2100 short int var3
/* : Bool */;
2101 short int var4
/* : Bool */;
2102 val
* var_other
/* var other: nullable Object */;
2103 short int var6
/* : Bool */;
2104 short int var8
/* : Bool */;
2105 short int var9
/* : Bool */;
2106 var1
= self
->attrs
[COLOR_standard__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2109 var3
= 1; /* is null */
2111 var3
= 0; /* arg is null but recv is not */
2114 { /* Inline kernel#Object#== (var1,var2) on <var1:nullable ListNode[nullable Object]> */
2117 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2118 var8
= var1
== var_other
;
2136 /* method list#ListIterator#next for (self: ListIterator[nullable Object]) */
2137 void standard___standard__ListIterator___standard__abstract_collection__Iterator__next(val
* self
) {
2138 val
* var
/* : nullable ListNode[nullable Object] */;
2139 val
* var1
/* : nullable ListNode[nullable Object] */;
2140 val
* var3
/* : nullable ListNode[nullable Object] */;
2141 val
* var_
/* var : ListIterator[nullable Object] */;
2142 long var4
/* : Int */;
2143 long var5
/* : Int */;
2144 long var6
/* : Int */;
2145 short int var8
/* : Bool */;
2148 const char* var_class_name
;
2149 long var9
/* : Int */;
2150 var
= self
->attrs
[COLOR_standard__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2152 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2153 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 288);
2156 { /* Inline list#ListNode#next (var) on <var:nullable ListNode[nullable Object]> */
2157 if (unlikely(var
== NULL
)) {
2158 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2159 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
2162 var3
= var
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var:nullable ListNode[nullable Object]> */
2167 self
->attrs
[COLOR_standard__list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
2169 var4
= var_
->attrs
[COLOR_standard__list__ListIterator___index
].l
; /* _index on <var_:ListIterator[nullable Object]> */
2172 { /* Inline kernel#Int#+ (var4,var5) on <var4:Int> */
2173 /* Covariant cast for argument 0 (i) <var5:Int> isa OTHER */
2174 /* <var5:Int> isa OTHER */
2175 var8
= 1; /* easy <var5:Int> isa OTHER*/
2176 if (unlikely(!var8
)) {
2177 var_class_name
= type_standard__Int
.name
;
2178 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2179 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 413);
2188 var_
->attrs
[COLOR_standard__list__ListIterator___index
].l
= var6
; /* _index on <var_:ListIterator[nullable Object]> */
2191 /* method list#ListIterator#init for (self: ListIterator[nullable Object]) */
2192 void standard___standard__ListIterator___standard__kernel__Object__init(val
* self
) {
2193 val
* var
/* : List[nullable Object] */;
2194 val
* var1
/* : nullable ListNode[nullable Object] */;
2195 var
= self
->attrs
[COLOR_standard__list__ListIterator___list
].val
; /* _list on <self:ListIterator[nullable Object]> */
2196 if (unlikely(var
== NULL
)) {
2197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _list");
2198 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 295);
2201 var1
= var
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <var:List[nullable Object]> */
2202 self
->attrs
[COLOR_standard__list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
2205 /* method list#ListIterator#list= for (self: ListIterator[nullable Object], List[nullable Object]) */
2206 void standard___standard__ListIterator___list_61d(val
* self
, val
* p0
) {
2207 short int var
/* : Bool */;
2210 const struct type
* type_struct
;
2211 const char* var_class_name
;
2212 /* Covariant cast for argument 0 (list) <p0:List[nullable Object]> isa List[E] */
2213 /* <p0:List[nullable Object]> isa List[E] */
2214 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List__standard__ListIterator___35dE
];
2215 cltype
= type_struct
->color
;
2216 idtype
= type_struct
->id
;
2217 if(cltype
>= p0
->type
->table_size
) {
2220 var
= p0
->type
->type_table
[cltype
] == idtype
;
2222 if (unlikely(!var
)) {
2223 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2224 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "List[E]", var_class_name
);
2225 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 298);
2228 self
->attrs
[COLOR_standard__list__ListIterator___list
].val
= p0
; /* _list on <self:ListIterator[nullable Object]> */
2231 /* method list#ListIterator#index for (self: ListIterator[nullable Object]): Int */
2232 long standard___standard__ListIterator___standard__abstract_collection__IndexedIterator__index(val
* self
) {
2233 long var
/* : Int */;
2234 long var1
/* : Int */;
2235 var1
= self
->attrs
[COLOR_standard__list__ListIterator___index
].l
; /* _index on <self:ListIterator[nullable Object]> */
2240 /* method list#ListNode#next for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
2241 val
* standard__list___standard__list__ListNode___next(val
* self
) {
2242 val
* var
/* : nullable ListNode[nullable Object] */;
2243 val
* var1
/* : nullable ListNode[nullable Object] */;
2244 var1
= self
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <self:ListNode[nullable Object]> */
2249 /* method list#ListNode#next= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
2250 void standard__list___standard__list__ListNode___next_61d(val
* self
, val
* p0
) {
2251 short int var
/* : Bool */;
2254 const struct type
* type_struct
;
2255 const char* var_class_name
;
2256 /* Covariant cast for argument 0 (next) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2257 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2258 type_struct
= self
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
2259 cltype
= type_struct
->color
;
2260 idtype
= type_struct
->id
;
2264 if(cltype
>= p0
->type
->table_size
) {
2267 var
= p0
->type
->type_table
[cltype
] == idtype
;
2270 if (unlikely(!var
)) {
2271 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2272 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
2273 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 341);
2276 self
->attrs
[COLOR_standard__list__ListNode___next
].val
= p0
; /* _next on <self:ListNode[nullable Object]> */
2279 /* method list#ListNode#prev for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
2280 val
* standard__list___standard__list__ListNode___prev(val
* self
) {
2281 val
* var
/* : nullable ListNode[nullable Object] */;
2282 val
* var1
/* : nullable ListNode[nullable Object] */;
2283 var1
= self
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <self:ListNode[nullable Object]> */
2288 /* method list#ListNode#prev= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
2289 void standard__list___standard__list__ListNode___prev_61d(val
* self
, val
* p0
) {
2290 short int var
/* : Bool */;
2293 const struct type
* type_struct
;
2294 const char* var_class_name
;
2295 /* Covariant cast for argument 0 (prev) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2296 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2297 type_struct
= self
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
2298 cltype
= type_struct
->color
;
2299 idtype
= type_struct
->id
;
2303 if(cltype
>= p0
->type
->table_size
) {
2306 var
= p0
->type
->type_table
[cltype
] == idtype
;
2309 if (unlikely(!var
)) {
2310 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2311 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
2312 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 344);
2315 self
->attrs
[COLOR_standard__list__ListNode___prev
].val
= p0
; /* _prev on <self:ListNode[nullable Object]> */