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
, 309);
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
>= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->table_size
) {
63 var
= (((long)p1
&3)?type_info
[((long)p1
&3)]:p1
->type
)->type_table
[cltype
] == idtype
;
67 var_class_name
= p1
== NULL ?
"null" : (((long)p1
&3)?type_info
[((long)p1
&3)]: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
>= (((long)var_item
&3)?type_info
[((long)var_item
&3)]:var_item
->type
)->table_size
) {
95 var3
= (((long)var_item
&3)?type_info
[((long)var_item
&3)]:var_item
->type
)->type_table
[cltype4
] == idtype5
;
98 if (unlikely(!var3
)) {
99 var_class_name8
= var_item
== NULL ?
"null" : (((long)var_item
&3)?type_info
[((long)var_item
&3)]: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
, 309);
104 if (unlikely(var1
== NULL
)) {
105 PRINT_ERROR("Runtime error: %s", "Receiver is null");
106 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 309);
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
, 309);
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
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
171 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
174 if (unlikely(!var
)) {
175 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]: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
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
200 var3
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype4
] == idtype5
;
203 if (unlikely(!var3
)) {
204 var_class_name8
= var_e
== NULL ?
"null" : (((long)var_e
&3)?type_info
[((long)var_e
&3)]: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
, 309);
209 if (unlikely(var1
== NULL
)) {
210 PRINT_ERROR("Runtime error: %s", "Receiver is null");
211 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 309);
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
, 309);
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 short int var2
/* : Bool */;
253 short int var3
/* : Bool */;
254 val
* var_other
/* var other: nullable Object */;
255 short int var5
/* : Bool */;
256 short int var7
/* : Bool */;
257 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
259 var2
= 1; /* is null */
261 var2
= 0; /* arg is null but recv is not */
264 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable ListNode[nullable Object]> */
265 var_other
= ((val
*)NULL
);
267 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
268 var7
= var1
== var_other
;
285 /* method list#List#length for (self: List[nullable Object]): Int */
286 long standard___standard__List___standard__abstract_collection__Collection__length(val
* self
) {
287 long var
/* : Int */;
288 long var_l
/* var l: Int */;
289 val
* var1
/* : nullable ListNode[nullable Object] */;
290 val
* var_t
/* var t: nullable ListNode[nullable Object] */;
291 short int var2
/* : Bool */;
292 short int var3
/* : Bool */;
293 val
* var_other
/* var other: nullable Object */;
294 short int var5
/* : Bool */;
295 short int var6
/* : Bool */;
296 long var7
/* : Int */;
297 short int var9
/* : Bool */;
300 const char* var_class_name
;
301 long var10
/* : Int */;
302 val
* var11
/* : nullable ListNode[nullable Object] */;
303 val
* var13
/* : nullable ListNode[nullable Object] */;
305 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
309 var2
= 0; /* is null */
311 var2
= 1; /* arg is null and recv is not */
314 { /* Inline kernel#Object#!= (var_t,((val*)NULL)) on <var_t:nullable ListNode[nullable Object]> */
315 var_other
= ((val
*)NULL
);
317 var5
= ((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])>*/
328 { /* Inline kernel#Int#+ (var_l,1l) on <var_l:Int> */
329 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
330 /* <1l:Int> isa OTHER */
331 var9
= 1; /* easy <1l:Int> isa OTHER*/
332 if (unlikely(!var9
)) {
333 var_class_name
= type_standard__Int
.name
;
334 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
335 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
346 { /* Inline list#ListNode#next (var_t) on <var_t:nullable ListNode[nullable Object](ListNode[nullable Object])> */
347 var13
= var_t
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_t:nullable ListNode[nullable Object](ListNode[nullable Object])> */
357 BREAK_label
: (void)0;
363 /* method list#List#has for (self: List[nullable Object], nullable Object): Bool */
364 short int standard___standard__List___standard__abstract_collection__Collection__has(val
* self
, val
* p0
) {
365 short int var
/* : Bool */;
366 val
* var_e
/* var e: nullable Object */;
367 short int var1
/* : Bool */;
370 const struct type
* type_struct
;
371 short int is_nullable
;
372 const char* var_class_name
;
373 val
* var2
/* : nullable ListNode[nullable Object] */;
374 val
* var3
/* : nullable ListNode[nullable Object] */;
375 short int var4
/* : Bool */;
376 short int var5
/* : Bool */;
377 val
* var_other
/* var other: nullable Object */;
378 short int var7
/* : Bool */;
379 short int var8
/* : Bool */;
381 /* <var_e:nullable Object> isa E */
382 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
383 cltype
= type_struct
->color
;
384 idtype
= type_struct
->id
;
385 is_nullable
= type_struct
->is_nullable
;
389 if(cltype
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
392 var1
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype
] == idtype
;
395 if (unlikely(!var1
)) {
396 var_class_name
= var_e
== NULL ?
"null" : (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->name
;
397 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
398 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 58);
401 var2
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
403 var3
= standard___standard__List___search_node_after(self
, var_e
, var2
);
406 var4
= 0; /* is null */
408 var4
= 1; /* arg is null and recv is not */
411 { /* Inline kernel#Object#!= (var3,((val*)NULL)) on <var3:nullable ListNode[nullable Object]> */
412 var_other
= ((val
*)NULL
);
414 var7
= ((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])>*/
428 /* method list#List#push for (self: List[nullable Object], nullable Object) */
429 void standard___standard__List___standard__abstract_collection__Sequence__push(val
* self
, val
* p0
) {
430 short int var
/* : Bool */;
433 const struct type
* type_struct
;
434 short int is_nullable
;
435 const char* var_class_name
;
436 val
* var_e
/* var e: nullable Object */;
437 val
* var1
/* : ListNode[nullable Object] */;
438 val
* var_node
/* var node: ListNode[nullable Object] */;
439 val
* var2
/* : nullable ListNode[nullable Object] */;
440 short int var3
/* : Bool */;
441 short int var4
/* : Bool */;
442 val
* var_other
/* var other: nullable Object */;
443 short int var6
/* : Bool */;
444 short int var8
/* : Bool */;
445 val
* var9
/* : nullable ListNode[nullable Object] */;
446 short int var11
/* : Bool */;
449 const struct type
* type_struct14
;
450 const char* var_class_name15
;
451 val
* var16
/* : nullable ListNode[nullable Object] */;
452 short int var18
/* : Bool */;
455 const struct type
* type_struct21
;
456 const char* var_class_name22
;
457 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
458 /* <p0:nullable Object> isa E */
459 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
460 cltype
= type_struct
->color
;
461 idtype
= type_struct
->id
;
462 is_nullable
= type_struct
->is_nullable
;
466 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
469 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
472 if (unlikely(!var
)) {
473 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
474 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
475 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 95);
479 var1
= NEW_standard__list__ListNode(self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
]);
481 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__abstract_collection__Container__item_61d
]))(var1
, var_e
); /* item= on <var1:ListNode[nullable Object]>*/
484 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
); /* init on <var1:ListNode[nullable Object]>*/
487 var2
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
489 var3
= 1; /* is null */
491 var3
= 0; /* arg is null but recv is not */
494 { /* Inline kernel#Object#== (var2,((val*)NULL)) on <var2:nullable ListNode[nullable Object]> */
495 var_other
= ((val
*)NULL
);
497 { /* Inline kernel#Object#is_same_instance (var2,var_other) on <var2:nullable ListNode[nullable Object](ListNode[nullable Object])> */
498 var8
= var2
== var_other
;
511 self
->attrs
[COLOR_standard__list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
513 var9
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
515 PRINT_ERROR("Runtime error: %s", "Receiver is null");
516 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 102);
519 { /* Inline list#ListNode#next= (var9,var_node) on <var9:nullable ListNode[nullable Object]> */
520 /* Covariant cast for argument 0 (next) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
521 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
522 type_struct14
= var9
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
523 cltype12
= type_struct14
->color
;
524 idtype13
= type_struct14
->id
;
525 if(cltype12
>= var_node
->type
->table_size
) {
528 var11
= var_node
->type
->type_table
[cltype12
] == idtype13
;
530 if (unlikely(!var11
)) {
531 var_class_name15
= var_node
== NULL ?
"null" : var_node
->type
->name
;
532 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name15
);
533 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
536 if (unlikely(var9
== NULL
)) {
537 PRINT_ERROR("Runtime error: %s", "Receiver is null");
538 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
541 var9
->attrs
[COLOR_standard__list__ListNode___next
].val
= var_node
; /* _next on <var9:nullable ListNode[nullable Object]> */
545 var16
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
547 { /* Inline list#ListNode#prev= (var_node,var16) on <var_node:ListNode[nullable Object]> */
548 /* Covariant cast for argument 0 (prev) <var16:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
549 /* <var16:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
550 type_struct21
= var_node
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
551 cltype19
= type_struct21
->color
;
552 idtype20
= type_struct21
->id
;
556 if(cltype19
>= var16
->type
->table_size
) {
559 var18
= var16
->type
->type_table
[cltype19
] == idtype20
;
562 if (unlikely(!var18
)) {
563 var_class_name22
= var16
== NULL ?
"null" : var16
->type
->name
;
564 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name22
);
565 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
568 var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var16
; /* _prev on <var_node:ListNode[nullable Object]> */
573 self
->attrs
[COLOR_standard__list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
576 /* method list#List#unshift for (self: List[nullable Object], nullable Object) */
577 void standard___standard__List___standard__abstract_collection__Sequence__unshift(val
* self
, val
* p0
) {
578 short int var
/* : Bool */;
581 const struct type
* type_struct
;
582 short int is_nullable
;
583 const char* var_class_name
;
584 val
* var_e
/* var e: nullable Object */;
585 val
* var1
/* : ListNode[nullable Object] */;
586 val
* var_node
/* var node: ListNode[nullable Object] */;
587 val
* var2
/* : nullable ListNode[nullable Object] */;
588 short int var3
/* : Bool */;
589 short int var4
/* : Bool */;
590 val
* var_other
/* var other: nullable Object */;
591 short int var6
/* : Bool */;
592 short int var8
/* : Bool */;
593 val
* var9
/* : nullable ListNode[nullable Object] */;
594 short int var11
/* : Bool */;
597 const struct type
* type_struct14
;
598 const char* var_class_name15
;
599 val
* var16
/* : nullable ListNode[nullable Object] */;
600 short int var18
/* : Bool */;
603 const struct type
* type_struct21
;
604 const char* var_class_name22
;
605 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
606 /* <p0:nullable Object> isa E */
607 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
608 cltype
= type_struct
->color
;
609 idtype
= type_struct
->id
;
610 is_nullable
= type_struct
->is_nullable
;
614 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
617 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
620 if (unlikely(!var
)) {
621 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
622 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
623 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 108);
627 var1
= NEW_standard__list__ListNode(self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
]);
629 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__abstract_collection__Container__item_61d
]))(var1
, var_e
); /* item= on <var1:ListNode[nullable Object]>*/
632 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
); /* init on <var1:ListNode[nullable Object]>*/
635 var2
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
637 var3
= 1; /* is null */
639 var3
= 0; /* arg is null but recv is not */
642 { /* Inline kernel#Object#== (var2,((val*)NULL)) on <var2:nullable ListNode[nullable Object]> */
643 var_other
= ((val
*)NULL
);
645 { /* Inline kernel#Object#is_same_instance (var2,var_other) on <var2:nullable ListNode[nullable Object](ListNode[nullable Object])> */
646 var8
= var2
== var_other
;
659 self
->attrs
[COLOR_standard__list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
661 var9
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
663 { /* Inline list#ListNode#next= (var_node,var9) on <var_node:ListNode[nullable Object]> */
664 /* Covariant cast for argument 0 (next) <var9:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
665 /* <var9:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
666 type_struct14
= var_node
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
667 cltype12
= type_struct14
->color
;
668 idtype13
= type_struct14
->id
;
672 if(cltype12
>= var9
->type
->table_size
) {
675 var11
= var9
->type
->type_table
[cltype12
] == idtype13
;
678 if (unlikely(!var11
)) {
679 var_class_name15
= var9
== NULL ?
"null" : var9
->type
->name
;
680 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name15
);
681 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
684 var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
= var9
; /* _next on <var_node:ListNode[nullable Object]> */
688 var16
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
690 PRINT_ERROR("Runtime error: %s", "Receiver is null");
691 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 116);
694 { /* Inline list#ListNode#prev= (var16,var_node) on <var16:nullable ListNode[nullable Object]> */
695 /* Covariant cast for argument 0 (prev) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
696 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
697 type_struct21
= var16
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
698 cltype19
= type_struct21
->color
;
699 idtype20
= type_struct21
->id
;
700 if(cltype19
>= var_node
->type
->table_size
) {
703 var18
= var_node
->type
->type_table
[cltype19
] == idtype20
;
705 if (unlikely(!var18
)) {
706 var_class_name22
= var_node
== NULL ?
"null" : var_node
->type
->name
;
707 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name22
);
708 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
711 if (unlikely(var16
== NULL
)) {
712 PRINT_ERROR("Runtime error: %s", "Receiver is null");
713 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
716 var16
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var_node
; /* _prev on <var16:nullable ListNode[nullable Object]> */
721 self
->attrs
[COLOR_standard__list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
724 /* method list#List#insert for (self: List[nullable Object], nullable Object, Int) */
725 void standard___standard__List___standard__abstract_collection__Sequence__insert(val
* self
, val
* p0
, long p1
) {
726 short int var
/* : Bool */;
729 const struct type
* type_struct
;
730 short int is_nullable
;
731 const char* var_class_name
;
732 val
* var_e
/* var e: nullable Object */;
733 long var_i
/* var i: Int */;
734 val
* var1
/* : nullable ListNode[nullable Object] */;
735 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
736 short int var2
/* : Bool */;
737 short int var3
/* : Bool */;
738 val
* var_other
/* var other: nullable Object */;
739 short int var5
/* : Bool */;
740 short int var7
/* : Bool */;
741 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
742 /* <p0:nullable Object> isa E */
743 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
744 cltype
= type_struct
->color
;
745 idtype
= type_struct
->id
;
746 is_nullable
= type_struct
->is_nullable
;
750 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
753 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
756 if (unlikely(!var
)) {
757 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
758 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
759 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 121);
765 var1
= standard___standard__List___get_node(self
, var_i
);
768 if (var_node
== NULL
) {
769 var2
= 1; /* is null */
771 var2
= 0; /* arg is null but recv is not */
774 { /* Inline kernel#Object#== (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
775 var_other
= ((val
*)NULL
);
777 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])> */
778 var7
= var_node
== var_other
;
792 standard___standard__List___standard__abstract_collection__Sequence__push(self
, var_e
); /* Direct call list#List#push on <self:List[nullable Object]>*/
798 standard___standard__List___insert_before(self
, var_e
, var_node
); /* Direct call list#List#insert_before on <self:List[nullable Object]>*/
802 /* method list#List#pop for (self: List[nullable Object]): nullable Object */
803 val
* standard___standard__List___standard__abstract_collection__Sequence__pop(val
* self
) {
804 val
* var
/* : nullable Object */;
805 val
* var1
/* : nullable ListNode[nullable Object] */;
806 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
807 val
* var2
/* : nullable ListNode[nullable Object] */;
808 val
* var4
/* : nullable ListNode[nullable Object] */;
809 short int var6
/* : Bool */;
812 const char* var_class_name
;
813 val
* var7
/* : nullable ListNode[nullable Object] */;
814 short int var8
/* : Bool */;
815 short int var9
/* : Bool */;
816 val
* var_other
/* var other: nullable Object */;
817 short int var11
/* : Bool */;
818 short int var13
/* : Bool */;
819 val
* var14
/* : nullable ListNode[nullable Object] */;
820 short int var16
/* : Bool */;
823 const char* var_class_name19
;
824 val
* var20
/* : nullable Object */;
825 val
* var22
/* : nullable Object */;
826 var1
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
828 if (var_node
== NULL
) {
829 PRINT_ERROR("Runtime error: %s", "Receiver is null");
830 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 153);
833 { /* Inline list#ListNode#prev (var_node) on <var_node:nullable ListNode[nullable Object]> */
834 if (unlikely(var_node
== NULL
)) {
835 PRINT_ERROR("Runtime error: %s", "Receiver is null");
836 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
839 var4
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:nullable ListNode[nullable Object]> */
844 self
->attrs
[COLOR_standard__list__List___tail
].val
= var2
; /* _tail on <self:List[nullable Object]> */
845 if (var_node
== NULL
) {
846 PRINT_ERROR("Runtime error: %s", "Receiver is null");
847 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 154);
850 { /* Inline list#ListNode#prev= (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
851 /* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */
852 /* <((val*)NULL):null> isa nullable ListNode[E] */
853 var6
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
854 if (unlikely(!var6
)) {
855 var_class_name
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
856 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
857 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
860 if (unlikely(var_node
== NULL
)) {
861 PRINT_ERROR("Runtime error: %s", "Receiver is null");
862 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
865 var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
= ((val
*)NULL
); /* _prev on <var_node:nullable ListNode[nullable Object]> */
869 var7
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
871 var8
= 1; /* is null */
873 var8
= 0; /* arg is null but recv is not */
876 { /* Inline kernel#Object#== (var7,((val*)NULL)) on <var7:nullable ListNode[nullable Object]> */
877 var_other
= ((val
*)NULL
);
879 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable ListNode[nullable Object](ListNode[nullable Object])> */
880 var13
= var7
== var_other
;
893 self
->attrs
[COLOR_standard__list__List___head
].val
= ((val
*)NULL
); /* _head on <self:List[nullable Object]> */
895 var14
= self
->attrs
[COLOR_standard__list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
897 PRINT_ERROR("Runtime error: %s", "Receiver is null");
898 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 158);
901 { /* Inline list#ListNode#next= (var14,((val*)NULL)) on <var14:nullable ListNode[nullable Object]> */
902 /* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */
903 /* <((val*)NULL):null> isa nullable ListNode[E] */
904 var16
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
905 if (unlikely(!var16
)) {
906 var_class_name19
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
907 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name19
);
908 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
911 if (unlikely(var14
== NULL
)) {
912 PRINT_ERROR("Runtime error: %s", "Receiver is null");
913 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
916 var14
->attrs
[COLOR_standard__list__ListNode___next
].val
= ((val
*)NULL
); /* _next on <var14:nullable ListNode[nullable Object]> */
921 if (var_node
== NULL
) {
922 PRINT_ERROR("Runtime error: %s", "Receiver is null");
923 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 160);
926 { /* Inline abstract_collection#Container#item (var_node) on <var_node:nullable ListNode[nullable Object]> */
927 if (unlikely(var_node
== NULL
)) {
928 PRINT_ERROR("Runtime error: %s", "Receiver is null");
929 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 309);
932 var22
= var_node
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var_node:nullable ListNode[nullable Object]> */
942 /* method list#List#shift for (self: List[nullable Object]): nullable Object */
943 val
* standard___standard__List___standard__abstract_collection__Sequence__shift(val
* self
) {
944 val
* var
/* : nullable Object */;
945 val
* var1
/* : nullable ListNode[nullable Object] */;
946 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
947 val
* var2
/* : nullable ListNode[nullable Object] */;
948 val
* var4
/* : nullable ListNode[nullable Object] */;
949 short int var6
/* : Bool */;
952 const char* var_class_name
;
953 val
* var7
/* : nullable ListNode[nullable Object] */;
954 short int var8
/* : Bool */;
955 short int var9
/* : Bool */;
956 val
* var_other
/* var other: nullable Object */;
957 short int var11
/* : Bool */;
958 short int var13
/* : Bool */;
959 val
* var14
/* : nullable ListNode[nullable Object] */;
960 short int var16
/* : Bool */;
963 const char* var_class_name19
;
964 val
* var20
/* : nullable Object */;
965 val
* var22
/* : nullable Object */;
966 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
968 if (var_node
== NULL
) {
969 PRINT_ERROR("Runtime error: %s", "Receiver is null");
970 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 167);
973 { /* Inline list#ListNode#next (var_node) on <var_node:nullable ListNode[nullable Object]> */
974 if (unlikely(var_node
== NULL
)) {
975 PRINT_ERROR("Runtime error: %s", "Receiver is null");
976 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
979 var4
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:nullable ListNode[nullable Object]> */
984 self
->attrs
[COLOR_standard__list__List___head
].val
= var2
; /* _head on <self:List[nullable Object]> */
985 if (var_node
== NULL
) {
986 PRINT_ERROR("Runtime error: %s", "Receiver is null");
987 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 168);
990 { /* Inline list#ListNode#next= (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
991 /* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */
992 /* <((val*)NULL):null> isa nullable ListNode[E] */
993 var6
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
994 if (unlikely(!var6
)) {
995 var_class_name
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
996 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
997 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
1000 if (unlikely(var_node
== NULL
)) {
1001 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1002 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
1005 var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
= ((val
*)NULL
); /* _next on <var_node:nullable ListNode[nullable Object]> */
1009 var7
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1011 var8
= 1; /* is null */
1013 var8
= 0; /* arg is null but recv is not */
1016 { /* Inline kernel#Object#== (var7,((val*)NULL)) on <var7:nullable ListNode[nullable Object]> */
1017 var_other
= ((val
*)NULL
);
1019 { /* Inline kernel#Object#is_same_instance (var7,var_other) on <var7:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1020 var13
= var7
== var_other
;
1023 RET_LABEL12
:(void)0;
1028 RET_LABEL10
:(void)0;
1033 self
->attrs
[COLOR_standard__list__List___tail
].val
= ((val
*)NULL
); /* _tail on <self:List[nullable Object]> */
1035 var14
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1036 if (var14
== NULL
) {
1037 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1038 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 172);
1041 { /* Inline list#ListNode#prev= (var14,((val*)NULL)) on <var14:nullable ListNode[nullable Object]> */
1042 /* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */
1043 /* <((val*)NULL):null> isa nullable ListNode[E] */
1044 var16
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
1045 if (unlikely(!var16
)) {
1046 var_class_name19
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
1047 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name19
);
1048 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
1051 if (unlikely(var14
== NULL
)) {
1052 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1053 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
1056 var14
->attrs
[COLOR_standard__list__ListNode___prev
].val
= ((val
*)NULL
); /* _prev on <var14:nullable ListNode[nullable Object]> */
1057 RET_LABEL15
:(void)0;
1061 if (var_node
== NULL
) {
1062 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1063 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 174);
1066 { /* Inline abstract_collection#Container#item (var_node) on <var_node:nullable ListNode[nullable Object]> */
1067 if (unlikely(var_node
== NULL
)) {
1068 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1069 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 309);
1072 var22
= var_node
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var_node:nullable ListNode[nullable Object]> */
1074 RET_LABEL21
:(void)0;
1082 /* method list#List#remove for (self: List[nullable Object], nullable Object) */
1083 void standard___standard__List___standard__abstract_collection__RemovableCollection__remove(val
* self
, val
* p0
) {
1084 val
* var_e
/* var e: nullable Object */;
1085 short int var
/* : Bool */;
1088 const struct type
* type_struct
;
1089 short int is_nullable
;
1090 const char* var_class_name
;
1091 val
* var1
/* : nullable ListNode[nullable Object] */;
1092 val
* var2
/* : nullable ListNode[nullable Object] */;
1093 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1094 short int var3
/* : Bool */;
1095 short int var4
/* : Bool */;
1096 val
* var_other
/* var other: nullable Object */;
1097 short int var6
/* : Bool */;
1098 short int var7
/* : Bool */;
1100 /* <var_e:nullable Object> isa E */
1101 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
1102 cltype
= type_struct
->color
;
1103 idtype
= type_struct
->id
;
1104 is_nullable
= type_struct
->is_nullable
;
1108 if(cltype
>= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->table_size
) {
1111 var
= (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->type_table
[cltype
] == idtype
;
1114 if (unlikely(!var
)) {
1115 var_class_name
= var_e
== NULL ?
"null" : (((long)var_e
&3)?type_info
[((long)var_e
&3)]:var_e
->type
)->name
;
1116 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1117 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 179);
1120 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1122 var2
= standard___standard__List___search_node_after(self
, var_e
, var1
);
1125 if (var_node
== NULL
) {
1126 var3
= 0; /* is null */
1128 var3
= 1; /* arg is null and recv is not */
1131 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
1132 var_other
= ((val
*)NULL
);
1134 var6
= ((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])>*/
1145 standard___standard__List___remove_node(self
, var_node
); /* Direct call list#List#remove_node on <self:List[nullable Object]>*/
1151 /* method list#List#remove_at for (self: List[nullable Object], Int) */
1152 void standard___standard__List___standard__abstract_collection__Sequence__remove_at(val
* self
, long p0
) {
1153 long var_i
/* var i: Int */;
1154 val
* var
/* : nullable ListNode[nullable Object] */;
1155 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1156 short int var1
/* : Bool */;
1157 short int var2
/* : Bool */;
1158 val
* var_other
/* var other: nullable Object */;
1159 short int var4
/* : Bool */;
1160 short int var5
/* : Bool */;
1163 var
= standard___standard__List___get_node(self
, var_i
);
1166 if (var_node
== NULL
) {
1167 var1
= 0; /* is null */
1169 var1
= 1; /* arg is null and recv is not */
1172 { /* Inline kernel#Object#!= (var_node,((val*)NULL)) on <var_node:nullable ListNode[nullable Object]> */
1173 var_other
= ((val
*)NULL
);
1175 var4
= ((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])>*/
1186 standard___standard__List___remove_node(self
, var_node
); /* Direct call list#List#remove_node on <self:List[nullable Object]>*/
1192 /* method list#List#clear for (self: List[nullable Object]) */
1193 void standard___standard__List___standard__abstract_collection__RemovableCollection__clear(val
* self
) {
1194 self
->attrs
[COLOR_standard__list__List___head
].val
= ((val
*)NULL
); /* _head on <self:List[nullable Object]> */
1195 self
->attrs
[COLOR_standard__list__List___tail
].val
= ((val
*)NULL
); /* _tail on <self:List[nullable Object]> */
1198 /* method list#List#iterator for (self: List[nullable Object]): ListIterator[nullable Object] */
1199 val
* standard___standard__List___standard__abstract_collection__Collection__iterator(val
* self
) {
1200 val
* var
/* : ListIterator[nullable Object] */;
1201 val
* var1
/* : ListIterator[nullable Object] */;
1202 var1
= NEW_standard__ListIterator(self
->type
->resolution_table
->types
[COLOR_standard__ListIterator__standard__List___35dE
]);
1204 ((void(*)(val
* self
, val
* p0
))(var1
->class->vft
[COLOR_standard__list__ListIterator__list_61d
]))(var1
, self
); /* list= on <var1:ListIterator[nullable Object]>*/
1207 ((void(*)(val
* self
))(var1
->class->vft
[COLOR_standard__kernel__Object__init
]))(var1
); /* init on <var1:ListIterator[nullable Object]>*/
1214 /* method list#List#init for (self: List[nullable Object]) */
1215 void standard___standard__List___standard__kernel__Object__init(val
* self
) {
1218 /* method list#List#get_node for (self: List[nullable Object], Int): nullable ListNode[nullable Object] */
1219 val
* standard___standard__List___get_node(val
* self
, long p0
) {
1220 val
* var
/* : nullable ListNode[nullable Object] */;
1221 long var_i
/* var i: Int */;
1222 val
* var1
/* : nullable ListNode[nullable Object] */;
1223 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1224 short int var2
/* : Bool */;
1225 short int var4
/* : Bool */;
1228 const char* var_class_name
;
1229 short int var5
/* : Bool */;
1230 short int var6
/* : Bool */;
1231 short int var7
/* : Bool */;
1232 short int var8
/* : Bool */;
1233 val
* var_other
/* var other: nullable Object */;
1234 short int var10
/* : Bool */;
1235 short int var11
/* : Bool */;
1236 short int var_
/* var : Bool */;
1237 short int var12
/* : Bool */;
1238 short int var14
/* : Bool */;
1241 const char* var_class_name17
;
1242 short int var18
/* : Bool */;
1243 val
* var19
/* : nullable ListNode[nullable Object] */;
1244 val
* var21
/* : nullable ListNode[nullable Object] */;
1245 long var22
/* : Int */;
1246 short int var24
/* : Bool */;
1249 const char* var_class_name27
;
1250 long var28
/* : Int */;
1252 var1
= self
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1255 { /* Inline kernel#Int#< (var_i,0l) on <var_i:Int> */
1256 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1257 /* <0l:Int> isa OTHER */
1258 var4
= 1; /* easy <0l:Int> isa OTHER*/
1259 if (unlikely(!var4
)) {
1260 var_class_name
= type_standard__Int
.name
;
1261 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
1262 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 534);
1277 if (var_n
== NULL
) {
1278 var7
= 0; /* is null */
1280 var7
= 1; /* arg is null and recv is not */
1283 { /* Inline kernel#Object#!= (var_n,((val*)NULL)) on <var_n:nullable ListNode[nullable Object]> */
1284 var_other
= ((val
*)NULL
);
1286 var10
= ((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])>*/
1298 { /* Inline kernel#Int#> (var_i,0l) on <var_i:Int> */
1299 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
1300 /* <0l:Int> isa OTHER */
1301 var14
= 1; /* easy <0l:Int> isa OTHER*/
1302 if (unlikely(!var14
)) {
1303 var_class_name17
= type_standard__Int
.name
;
1304 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
1305 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 536);
1311 RET_LABEL13
:(void)0;
1320 { /* Inline list#ListNode#next (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1321 var21
= var_n
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1323 RET_LABEL20
:(void)0;
1328 { /* Inline kernel#Int#- (var_i,1l) on <var_i:Int> */
1329 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
1330 /* <1l:Int> isa OTHER */
1331 var24
= 1; /* easy <1l:Int> isa OTHER*/
1332 if (unlikely(!var24
)) {
1333 var_class_name27
= type_standard__Int
.name
;
1334 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27
);
1335 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 540);
1341 RET_LABEL23
:(void)0;
1349 BREAK_label
: (void)0;
1355 /* method list#List#search_node_after for (self: List[nullable Object], nullable Object, nullable ListNode[nullable Object]): nullable ListNode[nullable Object] */
1356 val
* standard___standard__List___search_node_after(val
* self
, val
* p0
, val
* p1
) {
1357 val
* var
/* : nullable ListNode[nullable Object] */;
1358 short int var1
/* : Bool */;
1361 const struct type
* type_struct
;
1362 short int is_nullable
;
1363 const char* var_class_name
;
1364 short int var2
/* : Bool */;
1367 const struct type
* type_struct5
;
1368 const char* var_class_name6
;
1369 val
* var_e
/* var e: nullable Object */;
1370 val
* var_after
/* var after: nullable ListNode[nullable Object] */;
1371 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1372 short int var7
/* : Bool */;
1373 short int var8
/* : Bool */;
1374 short int var9
/* : Bool */;
1375 val
* var_other
/* var other: nullable Object */;
1376 short int var11
/* : Bool */;
1377 short int var12
/* : Bool */;
1378 short int var_
/* var : Bool */;
1379 val
* var13
/* : nullable Object */;
1380 val
* var15
/* : nullable Object */;
1381 short int var16
/* : Bool */;
1382 short int var17
/* : Bool */;
1383 val
* var18
/* : nullable ListNode[nullable Object] */;
1384 val
* var20
/* : nullable ListNode[nullable Object] */;
1385 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa E */
1386 /* <p0:nullable Object> isa E */
1387 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
1388 cltype
= type_struct
->color
;
1389 idtype
= type_struct
->id
;
1390 is_nullable
= type_struct
->is_nullable
;
1394 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
1397 var1
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1400 if (unlikely(!var1
)) {
1401 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1402 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1403 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 225);
1406 /* Covariant cast for argument 1 (after) <p1:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1407 /* <p1:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1408 type_struct5
= self
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__List___35dE
];
1409 cltype3
= type_struct5
->color
;
1410 idtype4
= type_struct5
->id
;
1414 if(cltype3
>= p1
->type
->table_size
) {
1417 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
1420 if (unlikely(!var2
)) {
1421 var_class_name6
= p1
== NULL ?
"null" : p1
->type
->name
;
1422 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name6
);
1423 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 225);
1430 if (var_n
== NULL
) {
1431 var8
= 0; /* is null */
1433 var8
= 1; /* arg is null and recv is not */
1436 { /* Inline kernel#Object#!= (var_n,((val*)NULL)) on <var_n:nullable ListNode[nullable Object]> */
1437 var_other
= ((val
*)NULL
);
1439 var11
= ((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])>*/
1444 RET_LABEL10
:(void)0;
1451 { /* Inline abstract_collection#Container#item (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1452 var15
= var_n
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1454 RET_LABEL14
:(void)0;
1457 if (var13
== NULL
) {
1458 var16
= (var_e
!= NULL
);
1460 var17
= ((short int(*)(val
* self
, val
* p0
))((((long)var13
&3)?class_info
[((long)var13
&3)]:var13
->class)->vft
[COLOR_standard__kernel__Object___33d_61d
]))(var13
, var_e
); /* != on <var13:nullable Object>*/
1469 { /* Inline list#ListNode#next (var_n) on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1470 var20
= var_n
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1472 RET_LABEL19
:(void)0;
1480 BREAK_label
: (void)0;
1486 /* method list#List#remove_node for (self: List[nullable Object], ListNode[nullable Object]) */
1487 void standard___standard__List___remove_node(val
* self
, val
* p0
) {
1488 short int var
/* : Bool */;
1491 const struct type
* type_struct
;
1492 const char* var_class_name
;
1493 val
* var_node
/* var node: ListNode[nullable Object] */;
1494 val
* var1
/* : nullable ListNode[nullable Object] */;
1495 val
* var3
/* : nullable ListNode[nullable Object] */;
1496 short int var4
/* : Bool */;
1497 short int var5
/* : Bool */;
1498 val
* var_other
/* var other: nullable Object */;
1499 short int var7
/* : Bool */;
1500 short int var9
/* : Bool */;
1501 val
* var10
/* : nullable ListNode[nullable Object] */;
1502 val
* var12
/* : nullable ListNode[nullable Object] */;
1503 val
* var13
/* : nullable ListNode[nullable Object] */;
1504 val
* var15
/* : nullable ListNode[nullable Object] */;
1505 short int var16
/* : Bool */;
1506 short int var17
/* : Bool */;
1507 short int var19
/* : Bool */;
1508 short int var21
/* : Bool */;
1509 val
* var22
/* : nullable ListNode[nullable Object] */;
1510 val
* var24
/* : nullable ListNode[nullable Object] */;
1511 short int var26
/* : Bool */;
1514 const char* var_class_name29
;
1515 val
* var30
/* : nullable ListNode[nullable Object] */;
1516 val
* var32
/* : nullable ListNode[nullable Object] */;
1517 short int var33
/* : Bool */;
1518 short int var34
/* : Bool */;
1519 short int var36
/* : Bool */;
1520 short int var38
/* : Bool */;
1521 val
* var39
/* : nullable ListNode[nullable Object] */;
1522 val
* var41
/* : nullable ListNode[nullable Object] */;
1523 val
* var42
/* : nullable ListNode[nullable Object] */;
1524 val
* var44
/* : nullable ListNode[nullable Object] */;
1525 short int var46
/* : Bool */;
1528 const char* var_class_name49
;
1529 val
* var50
/* : nullable ListNode[nullable Object] */;
1530 val
* var52
/* : nullable ListNode[nullable Object] */;
1531 val
* var53
/* : nullable ListNode[nullable Object] */;
1532 val
* var55
/* : nullable ListNode[nullable Object] */;
1533 short int var57
/* : Bool */;
1536 const struct type
* type_struct60
;
1537 const char* var_class_name61
;
1538 val
* var62
/* : nullable ListNode[nullable Object] */;
1539 val
* var64
/* : nullable ListNode[nullable Object] */;
1540 val
* var65
/* : nullable ListNode[nullable Object] */;
1541 val
* var67
/* : nullable ListNode[nullable Object] */;
1542 short int var69
/* : Bool */;
1545 const struct type
* type_struct72
;
1546 const char* var_class_name73
;
1547 /* Covariant cast for argument 0 (node) <p0:ListNode[nullable Object]> isa ListNode[E] */
1548 /* <p0:ListNode[nullable Object]> isa ListNode[E] */
1549 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
];
1550 cltype
= type_struct
->color
;
1551 idtype
= type_struct
->id
;
1552 if(cltype
>= p0
->type
->table_size
) {
1555 var
= p0
->type
->type_table
[cltype
] == idtype
;
1557 if (unlikely(!var
)) {
1558 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1559 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ListNode[E]", var_class_name
);
1560 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 233);
1565 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1566 var3
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1572 var4
= 1; /* is null */
1574 var4
= 0; /* arg is null but recv is not */
1577 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable ListNode[nullable Object]> */
1578 var_other
= ((val
*)NULL
);
1580 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1581 var9
= var1
== var_other
;
1595 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1596 var12
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1598 RET_LABEL11
:(void)0;
1601 self
->attrs
[COLOR_standard__list__List___head
].val
= var10
; /* _head on <self:List[nullable Object]> */
1603 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1604 var15
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1606 RET_LABEL14
:(void)0;
1609 if (var13
== NULL
) {
1610 var16
= 1; /* is null */
1612 var16
= 0; /* arg is null but recv is not */
1615 { /* Inline kernel#Object#== (var13,((val*)NULL)) on <var13:nullable ListNode[nullable Object]> */
1616 var_other
= ((val
*)NULL
);
1618 { /* Inline kernel#Object#is_same_instance (var13,var_other) on <var13:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1619 var21
= var13
== var_other
;
1622 RET_LABEL20
:(void)0;
1627 RET_LABEL18
:(void)0;
1632 self
->attrs
[COLOR_standard__list__List___tail
].val
= ((val
*)NULL
); /* _tail on <self:List[nullable Object]> */
1635 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1636 var24
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1638 RET_LABEL23
:(void)0;
1641 if (var22
== NULL
) {
1642 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1643 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 241);
1646 { /* Inline list#ListNode#prev= (var22,((val*)NULL)) on <var22:nullable ListNode[nullable Object]> */
1647 /* Covariant cast for argument 0 (prev) <((val*)NULL):null> isa nullable ListNode[E] */
1648 /* <((val*)NULL):null> isa nullable ListNode[E] */
1649 var26
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
1650 if (unlikely(!var26
)) {
1651 var_class_name29
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
1652 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name29
);
1653 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
1656 if (unlikely(var22
== NULL
)) {
1657 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1658 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
1661 var22
->attrs
[COLOR_standard__list__ListNode___prev
].val
= ((val
*)NULL
); /* _prev on <var22:nullable ListNode[nullable Object]> */
1662 RET_LABEL25
:(void)0;
1668 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1669 var32
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1671 RET_LABEL31
:(void)0;
1674 if (var30
== NULL
) {
1675 var33
= 1; /* is null */
1677 var33
= 0; /* arg is null but recv is not */
1680 { /* Inline kernel#Object#== (var30,((val*)NULL)) on <var30:nullable ListNode[nullable Object]> */
1681 var_other
= ((val
*)NULL
);
1683 { /* Inline kernel#Object#is_same_instance (var30,var_other) on <var30:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1684 var38
= var30
== var_other
;
1687 RET_LABEL37
:(void)0;
1692 RET_LABEL35
:(void)0;
1698 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1699 var41
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1701 RET_LABEL40
:(void)0;
1704 self
->attrs
[COLOR_standard__list__List___tail
].val
= var39
; /* _tail on <self:List[nullable Object]> */
1706 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1707 var44
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1709 RET_LABEL43
:(void)0;
1712 if (var42
== NULL
) {
1713 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1714 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 245);
1717 { /* Inline list#ListNode#next= (var42,((val*)NULL)) on <var42:nullable ListNode[nullable Object]> */
1718 /* Covariant cast for argument 0 (next) <((val*)NULL):null> isa nullable ListNode[E] */
1719 /* <((val*)NULL):null> isa nullable ListNode[E] */
1720 var46
= 1; /* easy <((val*)NULL):null> isa nullable ListNode[E]*/
1721 if (unlikely(!var46
)) {
1722 var_class_name49
= ((val
*)NULL
) == NULL ?
"null" : ((val
*)NULL
)->type
->name
;
1723 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name49
);
1724 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
1727 if (unlikely(var42
== NULL
)) {
1728 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1729 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
1732 var42
->attrs
[COLOR_standard__list__ListNode___next
].val
= ((val
*)NULL
); /* _next on <var42:nullable ListNode[nullable Object]> */
1733 RET_LABEL45
:(void)0;
1738 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1739 var52
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1741 RET_LABEL51
:(void)0;
1745 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1746 var55
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1748 RET_LABEL54
:(void)0;
1751 if (var50
== NULL
) {
1752 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1753 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 247);
1756 { /* Inline list#ListNode#next= (var50,var53) on <var50:nullable ListNode[nullable Object]> */
1757 /* Covariant cast for argument 0 (next) <var53:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1758 /* <var53:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1759 type_struct60
= var50
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
1760 cltype58
= type_struct60
->color
;
1761 idtype59
= type_struct60
->id
;
1765 if(cltype58
>= var53
->type
->table_size
) {
1768 var57
= var53
->type
->type_table
[cltype58
] == idtype59
;
1771 if (unlikely(!var57
)) {
1772 var_class_name61
= var53
== NULL ?
"null" : var53
->type
->name
;
1773 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name61
);
1774 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
1777 if (unlikely(var50
== NULL
)) {
1778 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1779 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
1782 var50
->attrs
[COLOR_standard__list__ListNode___next
].val
= var53
; /* _next on <var50:nullable ListNode[nullable Object]> */
1783 RET_LABEL56
:(void)0;
1787 { /* Inline list#ListNode#next (var_node) on <var_node:ListNode[nullable Object]> */
1788 var64
= var_node
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var_node:ListNode[nullable Object]> */
1790 RET_LABEL63
:(void)0;
1794 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1795 var67
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1797 RET_LABEL66
:(void)0;
1800 if (var62
== NULL
) {
1801 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1802 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 248);
1805 { /* Inline list#ListNode#prev= (var62,var65) on <var62:nullable ListNode[nullable Object]> */
1806 /* Covariant cast for argument 0 (prev) <var65:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1807 /* <var65:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1808 type_struct72
= var62
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
1809 cltype70
= type_struct72
->color
;
1810 idtype71
= type_struct72
->id
;
1814 if(cltype70
>= var65
->type
->table_size
) {
1817 var69
= var65
->type
->type_table
[cltype70
] == idtype71
;
1820 if (unlikely(!var69
)) {
1821 var_class_name73
= var65
== NULL ?
"null" : var65
->type
->name
;
1822 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name73
);
1823 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
1826 if (unlikely(var62
== NULL
)) {
1827 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1828 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
1831 var62
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var65
; /* _prev on <var62:nullable ListNode[nullable Object]> */
1832 RET_LABEL68
:(void)0;
1839 /* method list#List#insert_before for (self: List[nullable Object], nullable Object, ListNode[nullable Object]) */
1840 void standard___standard__List___insert_before(val
* self
, val
* p0
, val
* p1
) {
1841 short int var
/* : Bool */;
1844 const struct type
* type_struct
;
1845 short int is_nullable
;
1846 const char* var_class_name
;
1847 short int var1
/* : Bool */;
1850 const struct type
* type_struct4
;
1851 const char* var_class_name5
;
1852 val
* var_element
/* var element: nullable Object */;
1853 val
* var_node
/* var node: ListNode[nullable Object] */;
1854 val
* var6
/* : ListNode[nullable Object] */;
1855 val
* var_nnode
/* var nnode: ListNode[nullable Object] */;
1856 val
* var7
/* : nullable ListNode[nullable Object] */;
1857 val
* var9
/* : nullable ListNode[nullable Object] */;
1858 val
* var_prev
/* var prev: nullable ListNode[nullable Object] */;
1859 short int var10
/* : Bool */;
1860 short int var11
/* : Bool */;
1861 val
* var_other
/* var other: nullable Object */;
1862 short int var13
/* : Bool */;
1863 short int var15
/* : Bool */;
1864 short int var17
/* : Bool */;
1867 const struct type
* type_struct20
;
1868 const char* var_class_name21
;
1869 short int var23
/* : Bool */;
1872 const struct type
* type_struct26
;
1873 const char* var_class_name27
;
1874 short int var29
/* : Bool */;
1877 const struct type
* type_struct32
;
1878 const char* var_class_name33
;
1879 short int var35
/* : Bool */;
1882 const struct type
* type_struct38
;
1883 const char* var_class_name39
;
1884 /* Covariant cast for argument 0 (element) <p0:nullable Object> isa E */
1885 /* <p0:nullable Object> isa E */
1886 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List___35dE
];
1887 cltype
= type_struct
->color
;
1888 idtype
= type_struct
->id
;
1889 is_nullable
= type_struct
->is_nullable
;
1893 if(cltype
>= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->table_size
) {
1896 var
= (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->type_table
[cltype
] == idtype
;
1899 if (unlikely(!var
)) {
1900 var_class_name
= p0
== NULL ?
"null" : (((long)p0
&3)?type_info
[((long)p0
&3)]:p0
->type
)->name
;
1901 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "E", var_class_name
);
1902 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 252);
1905 /* Covariant cast for argument 1 (node) <p1:ListNode[nullable Object]> isa ListNode[E] */
1906 /* <p1:ListNode[nullable Object]> isa ListNode[E] */
1907 type_struct4
= self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
];
1908 cltype2
= type_struct4
->color
;
1909 idtype3
= type_struct4
->id
;
1910 if(cltype2
>= p1
->type
->table_size
) {
1913 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
1915 if (unlikely(!var1
)) {
1916 var_class_name5
= p1
== NULL ?
"null" : p1
->type
->name
;
1917 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "ListNode[E]", var_class_name5
);
1918 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 252);
1923 var6
= NEW_standard__list__ListNode(self
->type
->resolution_table
->types
[COLOR_standard__list__ListNode__standard__List___35dE
]);
1925 ((void(*)(val
* self
, val
* p0
))(var6
->class->vft
[COLOR_standard__abstract_collection__Container__item_61d
]))(var6
, var_element
); /* item= on <var6:ListNode[nullable Object]>*/
1928 ((void(*)(val
* self
))(var6
->class->vft
[COLOR_standard__kernel__Object__init
]))(var6
); /* init on <var6:ListNode[nullable Object]>*/
1932 { /* Inline list#ListNode#prev (var_node) on <var_node:ListNode[nullable Object]> */
1933 var9
= var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <var_node:ListNode[nullable Object]> */
1939 if (var_prev
== NULL
) {
1940 var10
= 1; /* is null */
1942 var10
= 0; /* arg is null but recv is not */
1945 { /* Inline kernel#Object#== (var_prev,((val*)NULL)) on <var_prev:nullable ListNode[nullable Object]> */
1946 var_other
= ((val
*)NULL
);
1948 { /* Inline kernel#Object#is_same_instance (var_prev,var_other) on <var_prev:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1949 var15
= var_prev
== var_other
;
1952 RET_LABEL14
:(void)0;
1957 RET_LABEL12
:(void)0;
1962 self
->attrs
[COLOR_standard__list__List___head
].val
= var_nnode
; /* _head on <self:List[nullable Object]> */
1965 { /* Inline list#ListNode#next= (var_prev,var_nnode) on <var_prev:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1966 /* Covariant cast for argument 0 (next) <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
1967 /* <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
1968 type_struct20
= var_prev
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
1969 cltype18
= type_struct20
->color
;
1970 idtype19
= type_struct20
->id
;
1971 if(cltype18
>= var_nnode
->type
->table_size
) {
1974 var17
= var_nnode
->type
->type_table
[cltype18
] == idtype19
;
1976 if (unlikely(!var17
)) {
1977 var_class_name21
= var_nnode
== NULL ?
"null" : var_nnode
->type
->name
;
1978 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name21
);
1979 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
1982 var_prev
->attrs
[COLOR_standard__list__ListNode___next
].val
= var_nnode
; /* _next on <var_prev:nullable ListNode[nullable Object](ListNode[nullable Object])> */
1983 RET_LABEL16
:(void)0;
1988 { /* Inline list#ListNode#prev= (var_nnode,var_prev) on <var_nnode:ListNode[nullable Object]> */
1989 /* Covariant cast for argument 0 (prev) <var_prev:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1990 /* <var_prev:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
1991 type_struct26
= var_nnode
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
1992 cltype24
= type_struct26
->color
;
1993 idtype25
= type_struct26
->id
;
1994 if(var_prev
== NULL
) {
1997 if(cltype24
>= var_prev
->type
->table_size
) {
2000 var23
= var_prev
->type
->type_table
[cltype24
] == idtype25
;
2003 if (unlikely(!var23
)) {
2004 var_class_name27
= var_prev
== NULL ?
"null" : var_prev
->type
->name
;
2005 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name27
);
2006 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
2009 var_nnode
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var_prev
; /* _prev on <var_nnode:ListNode[nullable Object]> */
2010 RET_LABEL22
:(void)0;
2014 { /* Inline list#ListNode#next= (var_nnode,var_node) on <var_nnode:ListNode[nullable Object]> */
2015 /* Covariant cast for argument 0 (next) <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
2016 /* <var_node:ListNode[nullable Object]> isa nullable ListNode[E] */
2017 type_struct32
= var_nnode
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
2018 cltype30
= type_struct32
->color
;
2019 idtype31
= type_struct32
->id
;
2020 if(cltype30
>= var_node
->type
->table_size
) {
2023 var29
= var_node
->type
->type_table
[cltype30
] == idtype31
;
2025 if (unlikely(!var29
)) {
2026 var_class_name33
= var_node
== NULL ?
"null" : var_node
->type
->name
;
2027 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name33
);
2028 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
2031 var_nnode
->attrs
[COLOR_standard__list__ListNode___next
].val
= var_node
; /* _next on <var_nnode:ListNode[nullable Object]> */
2032 RET_LABEL28
:(void)0;
2036 { /* Inline list#ListNode#prev= (var_node,var_nnode) on <var_node:ListNode[nullable Object]> */
2037 /* Covariant cast for argument 0 (prev) <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
2038 /* <var_nnode:ListNode[nullable Object]> isa nullable ListNode[E] */
2039 type_struct38
= var_node
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
2040 cltype36
= type_struct38
->color
;
2041 idtype37
= type_struct38
->id
;
2042 if(cltype36
>= var_nnode
->type
->table_size
) {
2045 var35
= var_nnode
->type
->type_table
[cltype36
] == idtype37
;
2047 if (unlikely(!var35
)) {
2048 var_class_name39
= var_nnode
== NULL ?
"null" : var_nnode
->type
->name
;
2049 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name39
);
2050 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
2053 var_node
->attrs
[COLOR_standard__list__ListNode___prev
].val
= var_nnode
; /* _prev on <var_node:ListNode[nullable Object]> */
2054 RET_LABEL34
:(void)0;
2059 /* method list#ListIterator#item for (self: ListIterator[nullable Object]): nullable Object */
2060 val
* standard___standard__ListIterator___standard__abstract_collection__Iterator__item(val
* self
) {
2061 val
* var
/* : nullable Object */;
2062 val
* var1
/* : nullable ListNode[nullable Object] */;
2063 val
* var2
/* : nullable Object */;
2064 val
* var4
/* : nullable Object */;
2065 var1
= self
->attrs
[COLOR_standard__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2067 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2068 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 270);
2071 { /* Inline abstract_collection#Container#item (var1) on <var1:nullable ListNode[nullable Object]> */
2072 if (unlikely(var1
== NULL
)) {
2073 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2074 PRINT_ERROR(" (%s:%d)\n", FILE_standard__abstract_collection
, 309);
2077 var4
= var1
->attrs
[COLOR_standard__abstract_collection__Container___item
].val
; /* _item on <var1:nullable ListNode[nullable Object]> */
2087 /* method list#ListIterator#is_ok for (self: ListIterator[nullable Object]): Bool */
2088 short int standard___standard__ListIterator___standard__abstract_collection__Iterator__is_ok(val
* self
) {
2089 short int var
/* : Bool */;
2090 val
* var1
/* : nullable ListNode[nullable Object] */;
2091 short int var2
/* : Bool */;
2092 short int var3
/* : Bool */;
2093 val
* var_other
/* var other: nullable Object */;
2094 short int var5
/* : Bool */;
2095 short int var7
/* : Bool */;
2096 short int var8
/* : Bool */;
2097 var1
= self
->attrs
[COLOR_standard__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2099 var2
= 1; /* is null */
2101 var2
= 0; /* arg is null but recv is not */
2104 { /* Inline kernel#Object#== (var1,((val*)NULL)) on <var1:nullable ListNode[nullable Object]> */
2105 var_other
= ((val
*)NULL
);
2107 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable ListNode[nullable Object](ListNode[nullable Object])> */
2108 var7
= var1
== var_other
;
2126 /* method list#ListIterator#next for (self: ListIterator[nullable Object]) */
2127 void standard___standard__ListIterator___standard__abstract_collection__Iterator__next(val
* self
) {
2128 val
* var
/* : nullable ListNode[nullable Object] */;
2129 val
* var1
/* : nullable ListNode[nullable Object] */;
2130 val
* var3
/* : nullable ListNode[nullable Object] */;
2131 val
* var_
/* var : ListIterator[nullable Object] */;
2132 long var4
/* : Int */;
2133 long var5
/* : Int */;
2134 short int var7
/* : Bool */;
2137 const char* var_class_name
;
2138 long var8
/* : Int */;
2139 var
= self
->attrs
[COLOR_standard__list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
2141 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2142 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 279);
2145 { /* Inline list#ListNode#next (var) on <var:nullable ListNode[nullable Object]> */
2146 if (unlikely(var
== NULL
)) {
2147 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2148 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
2151 var3
= var
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <var:nullable ListNode[nullable Object]> */
2156 self
->attrs
[COLOR_standard__list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
2158 var4
= var_
->attrs
[COLOR_standard__list__ListIterator___index
].l
; /* _index on <var_:ListIterator[nullable Object]> */
2160 { /* Inline kernel#Int#+ (var4,1l) on <var4:Int> */
2161 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2162 /* <1l:Int> isa OTHER */
2163 var7
= 1; /* easy <1l:Int> isa OTHER*/
2164 if (unlikely(!var7
)) {
2165 var_class_name
= type_standard__Int
.name
;
2166 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
2167 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel
, 537);
2176 var_
->attrs
[COLOR_standard__list__ListIterator___index
].l
= var5
; /* _index on <var_:ListIterator[nullable Object]> */
2179 /* method list#ListIterator#init for (self: ListIterator[nullable Object]) */
2180 void standard___standard__ListIterator___standard__kernel__Object__init(val
* self
) {
2181 val
* var
/* : List[nullable Object] */;
2182 val
* var1
/* : nullable ListNode[nullable Object] */;
2183 var
= self
->attrs
[COLOR_standard__list__ListIterator___list
].val
; /* _list on <self:ListIterator[nullable Object]> */
2184 if (unlikely(var
== NULL
)) {
2185 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _list");
2186 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 286);
2189 var1
= var
->attrs
[COLOR_standard__list__List___head
].val
; /* _head on <var:List[nullable Object]> */
2190 self
->attrs
[COLOR_standard__list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
2193 /* method list#ListIterator#list= for (self: ListIterator[nullable Object], List[nullable Object]) */
2194 void standard___standard__ListIterator___list_61d(val
* self
, val
* p0
) {
2195 short int var
/* : Bool */;
2198 const struct type
* type_struct
;
2199 const char* var_class_name
;
2200 /* Covariant cast for argument 0 (list) <p0:List[nullable Object]> isa List[E] */
2201 /* <p0:List[nullable Object]> isa List[E] */
2202 type_struct
= self
->type
->resolution_table
->types
[COLOR_standard__List__standard__ListIterator___35dE
];
2203 cltype
= type_struct
->color
;
2204 idtype
= type_struct
->id
;
2205 if(cltype
>= p0
->type
->table_size
) {
2208 var
= p0
->type
->type_table
[cltype
] == idtype
;
2210 if (unlikely(!var
)) {
2211 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2212 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "List[E]", var_class_name
);
2213 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 289);
2216 self
->attrs
[COLOR_standard__list__ListIterator___list
].val
= p0
; /* _list on <self:ListIterator[nullable Object]> */
2219 /* method list#ListIterator#index for (self: ListIterator[nullable Object]): Int */
2220 long standard___standard__ListIterator___standard__abstract_collection__IndexedIterator__index(val
* self
) {
2221 long var
/* : Int */;
2222 long var1
/* : Int */;
2223 var1
= self
->attrs
[COLOR_standard__list__ListIterator___index
].l
; /* _index on <self:ListIterator[nullable Object]> */
2228 /* method list#ListNode#next for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
2229 val
* standard__list___standard__list__ListNode___next(val
* self
) {
2230 val
* var
/* : nullable ListNode[nullable Object] */;
2231 val
* var1
/* : nullable ListNode[nullable Object] */;
2232 var1
= self
->attrs
[COLOR_standard__list__ListNode___next
].val
; /* _next on <self:ListNode[nullable Object]> */
2237 /* method list#ListNode#next= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
2238 void standard__list___standard__list__ListNode___next_61d(val
* self
, val
* p0
) {
2239 short int var
/* : Bool */;
2242 const struct type
* type_struct
;
2243 const char* var_class_name
;
2244 /* Covariant cast for argument 0 (next) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2245 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2246 type_struct
= self
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
2247 cltype
= type_struct
->color
;
2248 idtype
= type_struct
->id
;
2252 if(cltype
>= p0
->type
->table_size
) {
2255 var
= p0
->type
->type_table
[cltype
] == idtype
;
2258 if (unlikely(!var
)) {
2259 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2260 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
2261 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 332);
2264 self
->attrs
[COLOR_standard__list__ListNode___next
].val
= p0
; /* _next on <self:ListNode[nullable Object]> */
2267 /* method list#ListNode#prev for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
2268 val
* standard__list___standard__list__ListNode___prev(val
* self
) {
2269 val
* var
/* : nullable ListNode[nullable Object] */;
2270 val
* var1
/* : nullable ListNode[nullable Object] */;
2271 var1
= self
->attrs
[COLOR_standard__list__ListNode___prev
].val
; /* _prev on <self:ListNode[nullable Object]> */
2276 /* method list#ListNode#prev= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
2277 void standard__list___standard__list__ListNode___prev_61d(val
* self
, val
* p0
) {
2278 short int var
/* : Bool */;
2281 const struct type
* type_struct
;
2282 const char* var_class_name
;
2283 /* Covariant cast for argument 0 (prev) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2284 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[E] */
2285 type_struct
= self
->type
->resolution_table
->types
[COLOR_nullable__standard__list__ListNode__standard__list__ListNode___35dE
];
2286 cltype
= type_struct
->color
;
2287 idtype
= type_struct
->id
;
2291 if(cltype
>= p0
->type
->table_size
) {
2294 var
= p0
->type
->type_table
[cltype
] == idtype
;
2297 if (unlikely(!var
)) {
2298 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2299 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable ListNode[E]", var_class_name
);
2300 PRINT_ERROR(" (%s:%d)\n", FILE_standard__list
, 335);
2303 self
->attrs
[COLOR_standard__list__ListNode___prev
].val
= p0
; /* _prev on <self:ListNode[nullable Object]> */