1 #include "list.sep.0.h"
2 /* method list#List#[] for (self: List[nullable Object], Int): nullable Object */
3 val
* list__List___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 */;
9 var1
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_list__List__get_node
]))(self
, var_index
) /* get_node on <self:List[nullable Object]>*/;
11 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 22);
14 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item
]))(var1
) /* item on <var1:nullable ListNode[nullable Object]>*/;
21 /* method list#List#[] for (self: Object, Int): nullable Object */
22 val
* VIRTUAL_list__List___91d_93d(val
* self
, long p0
) {
23 val
* var
/* : nullable Object */;
24 val
* var1
/* : nullable Object */;
25 var1
= list__List___91d_93d(self
, p0
);
30 /* method list#List#[]= for (self: List[nullable Object], Int, nullable Object) */
31 void list__List___91d_93d_61d(val
* self
, long p0
, val
* p1
) {
32 short int var
/* : Bool */;
35 const struct type
* type_struct
;
36 short int is_nullable
;
37 long var_index
/* var index: Int */;
38 val
* var_item
/* var item: nullable Object */;
39 val
* var1
/* : nullable ListNode[nullable Object] */;
40 /* Covariant cast for argument 1 (item) <p1:nullable Object> isa Sequence#0 */
41 /* <p1:nullable Object> isa Sequence#0 */
42 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Sequence_FT0
];
43 cltype
= type_struct
->color
;
44 idtype
= type_struct
->id
;
45 is_nullable
= type_struct
->is_nullable
;
49 if(cltype
>= p1
->type
->table_size
) {
52 var
= p1
->type
->type_table
[cltype
] == idtype
;
56 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 24);
61 var1
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_list__List__get_node
]))(self
, var_index
) /* get_node on <self:List[nullable Object]>*/;
63 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 24);
66 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item_61d
]))(var1
, var_item
) /* item= on <var1:nullable ListNode[nullable Object]>*/;
70 /* method list#List#[]= for (self: Object, Int, nullable Object) */
71 void VIRTUAL_list__List___91d_93d_61d(val
* self
, long p0
, val
* p1
) {
72 list__List___91d_93d_61d(self
, p0
, p1
);
75 /* method list#List#first for (self: List[nullable Object]): nullable Object */
76 val
* list__List__first(val
* self
) {
77 val
* var
/* : nullable Object */;
78 val
* var1
/* : nullable ListNode[nullable Object] */;
79 val
* var2
/* : nullable Object */;
80 var1
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
82 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 27);
85 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item
]))(var1
) /* item on <var1:nullable ListNode[nullable Object]>*/;
92 /* method list#List#first for (self: Object): nullable Object */
93 val
* VIRTUAL_list__List__first(val
* self
) {
94 val
* var
/* : nullable Object */;
95 val
* var1
/* : nullable Object */;
96 var1
= list__List__first(self
);
101 /* method list#List#first= for (self: List[nullable Object], nullable Object) */
102 void list__List__first_61d(val
* self
, val
* p0
) {
103 short int var
/* : Bool */;
106 const struct type
* type_struct
;
107 short int is_nullable
;
108 val
* var_e
/* var e: nullable Object */;
109 val
* var1
/* : nullable ListNode[nullable Object] */;
110 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa Sequence#0 */
111 /* <p0:nullable Object> isa Sequence#0 */
112 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Sequence_FT0
];
113 cltype
= type_struct
->color
;
114 idtype
= type_struct
->id
;
115 is_nullable
= type_struct
->is_nullable
;
119 if(cltype
>= p0
->type
->table_size
) {
122 var
= p0
->type
->type_table
[cltype
] == idtype
;
126 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 29);
130 var1
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
132 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 30);
135 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item_61d
]))(var1
, var_e
) /* item= on <var1:nullable ListNode[nullable Object]>*/;
139 /* method list#List#first= for (self: Object, nullable Object) */
140 void VIRTUAL_list__List__first_61d(val
* self
, val
* p0
) {
141 list__List__first_61d(self
, p0
);
144 /* method list#List#last for (self: List[nullable Object]): nullable Object */
145 val
* list__List__last(val
* self
) {
146 val
* var
/* : nullable Object */;
147 val
* var1
/* : nullable ListNode[nullable Object] */;
148 val
* var2
/* : nullable Object */;
149 var1
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
151 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 33);
154 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item
]))(var1
) /* item on <var1:nullable ListNode[nullable Object]>*/;
161 /* method list#List#last for (self: Object): nullable Object */
162 val
* VIRTUAL_list__List__last(val
* self
) {
163 val
* var
/* : nullable Object */;
164 val
* var1
/* : nullable Object */;
165 var1
= list__List__last(self
);
170 /* method list#List#last= for (self: List[nullable Object], nullable Object) */
171 void list__List__last_61d(val
* self
, val
* p0
) {
172 short int var
/* : Bool */;
175 const struct type
* type_struct
;
176 short int is_nullable
;
177 val
* var_e
/* var e: nullable Object */;
178 val
* var1
/* : nullable ListNode[nullable Object] */;
179 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa Sequence#0 */
180 /* <p0:nullable Object> isa Sequence#0 */
181 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Sequence_FT0
];
182 cltype
= type_struct
->color
;
183 idtype
= type_struct
->id
;
184 is_nullable
= type_struct
->is_nullable
;
188 if(cltype
>= p0
->type
->table_size
) {
191 var
= p0
->type
->type_table
[cltype
] == idtype
;
195 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 35);
199 var1
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
201 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 36);
204 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item_61d
]))(var1
, var_e
) /* item= on <var1:nullable ListNode[nullable Object]>*/;
208 /* method list#List#last= for (self: Object, nullable Object) */
209 void VIRTUAL_list__List__last_61d(val
* self
, val
* p0
) {
210 list__List__last_61d(self
, p0
);
213 /* method list#List#is_empty for (self: List[nullable Object]): Bool */
214 short int list__List__is_empty(val
* self
) {
215 short int var
/* : Bool */;
216 val
* var1
/* : nullable ListNode[nullable Object] */;
217 val
* var2
/* : null */;
218 short int var3
/* : Bool */;
219 var1
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
222 var3
= 1; /* is null */
224 var3
= 0; /* arg is null but recv is not */
231 /* method list#List#is_empty for (self: Object): Bool */
232 short int VIRTUAL_list__List__is_empty(val
* self
) {
233 short int var
/* : Bool */;
234 short int var1
/* : Bool */;
235 var1
= list__List__is_empty(self
);
240 /* method list#List#length for (self: List[nullable Object]): Int */
241 long list__List__length(val
* self
) {
242 long var
/* : Int */;
243 long var1
/* : Int */;
244 long var_l
/* var l: Int */;
245 val
* var2
/* : nullable ListNode[nullable Object] */;
246 val
* var_t
/* var t: nullable ListNode[nullable Object] */;
247 val
* var3
/* : null */;
248 short int var4
/* : Bool */;
249 long var5
/* : Int */;
250 long var6
/* : Int */;
251 long var8
/* : Int */;
252 val
* var9
/* : nullable ListNode[nullable Object] */;
255 var2
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
260 var4
= 0; /* is null */
262 var4
= 1; /* arg is null and recv is not */
266 { /* Inline kernel#Int#+ (var_l,var5) */
273 var9
= ((val
* (*)(val
*))(var_t
->class->vft
[COLOR_list__ListNode__next
]))(var_t
) /* next on <var_t:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
275 CONTINUE_label
: (void)0;
277 BREAK_label
: (void)0;
283 /* method list#List#length for (self: Object): Int */
284 long VIRTUAL_list__List__length(val
* self
) {
285 long var
/* : Int */;
286 long var1
/* : Int */;
287 var1
= list__List__length(self
);
292 /* method list#List#has for (self: List[nullable Object], nullable Object): Bool */
293 short int list__List__has(val
* self
, val
* p0
) {
294 short int var
/* : Bool */;
295 short int var1
/* : Bool */;
298 const struct type
* type_struct
;
299 short int is_nullable
;
300 val
* var_e
/* var e: nullable Object */;
301 val
* var2
/* : nullable ListNode[nullable Object] */;
302 val
* var3
/* : nullable ListNode[nullable Object] */;
303 val
* var4
/* : null */;
304 short int var5
/* : Bool */;
305 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa Collection#0 */
306 /* <p0:nullable Object> isa Collection#0 */
307 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
308 cltype
= type_struct
->color
;
309 idtype
= type_struct
->id
;
310 is_nullable
= type_struct
->is_nullable
;
314 if(cltype
>= p0
->type
->table_size
) {
317 var1
= p0
->type
->type_table
[cltype
] == idtype
;
321 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 55);
325 var2
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
326 var3
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_list__List__search_node_after
]))(self
, var_e
, var2
) /* search_node_after on <self:List[nullable Object]>*/;
329 var5
= 0; /* is null */
331 var5
= 1; /* arg is null and recv is not */
338 /* method list#List#has for (self: Object, nullable Object): Bool */
339 short int VIRTUAL_list__List__has(val
* self
, val
* p0
) {
340 short int var
/* : Bool */;
341 short int var1
/* : Bool */;
342 var1
= list__List__has(self
, p0
);
347 /* method list#List#has_only for (self: List[nullable Object], nullable Object): Bool */
348 short int list__List__has_only(val
* self
, val
* p0
) {
349 short int var
/* : Bool */;
350 short int var1
/* : Bool */;
353 const struct type
* type_struct
;
354 short int is_nullable
;
355 val
* var_e
/* var e: nullable Object */;
356 val
* var2
/* : nullable ListNode[nullable Object] */;
357 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
358 val
* var3
/* : null */;
359 short int var4
/* : Bool */;
360 val
* var5
/* : nullable Object */;
361 short int var6
/* : Bool */;
362 short int var7
/* : Bool */;
363 val
* var8
/* : nullable ListNode[nullable Object] */;
364 short int var9
/* : Bool */;
365 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa Collection#0 */
366 /* <p0:nullable Object> isa Collection#0 */
367 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
368 cltype
= type_struct
->color
;
369 idtype
= type_struct
->id
;
370 is_nullable
= type_struct
->is_nullable
;
374 if(cltype
>= p0
->type
->table_size
) {
377 var1
= p0
->type
->type_table
[cltype
] == idtype
;
381 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 58);
385 var2
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
389 if (var_node
== NULL
) {
390 var4
= 0; /* is null */
392 var4
= 1; /* arg is null and recv is not */
395 var5
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_abstract_collection__Container__item
]))(var_node
) /* item on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
397 var6
= (var_e
!= NULL
);
399 var6
= ((short int (*)(val
*, val
*))(var5
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var5
, var_e
) /* != on <var5:nullable Object>*/;
407 var8
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
409 CONTINUE_label
: (void)0;
411 BREAK_label
: (void)0;
418 /* method list#List#has_only for (self: Object, nullable Object): Bool */
419 short int VIRTUAL_list__List__has_only(val
* self
, val
* p0
) {
420 short int var
/* : Bool */;
421 short int var1
/* : Bool */;
422 var1
= list__List__has_only(self
, p0
);
427 /* method list#List#count for (self: List[nullable Object], nullable Object): Int */
428 long list__List__count(val
* self
, val
* p0
) {
429 long var
/* : Int */;
430 short int var1
/* : Bool */;
433 const struct type
* type_struct
;
434 short int is_nullable
;
435 val
* var_e
/* var e: nullable Object */;
436 long var2
/* : Int */;
437 long var_nb
/* var nb: Int */;
438 val
* var3
/* : nullable ListNode[nullable Object] */;
439 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
440 val
* var4
/* : null */;
441 short int var5
/* : Bool */;
442 val
* var6
/* : nullable Object */;
443 short int var7
/* : Bool */;
444 long var8
/* : Int */;
445 long var9
/* : Int */;
446 long var11
/* : Int */;
447 val
* var12
/* : nullable ListNode[nullable Object] */;
448 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa Collection#0 */
449 /* <p0:nullable Object> isa Collection#0 */
450 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collection_FT0
];
451 cltype
= type_struct
->color
;
452 idtype
= type_struct
->id
;
453 is_nullable
= type_struct
->is_nullable
;
457 if(cltype
>= p0
->type
->table_size
) {
460 var1
= p0
->type
->type_table
[cltype
] == idtype
;
464 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 68);
470 var3
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
474 if (var_node
== NULL
) {
475 var5
= 0; /* is null */
477 var5
= 1; /* arg is null and recv is not */
480 var6
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_abstract_collection__Container__item
]))(var_node
) /* item on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
482 var7
= (var_e
!= NULL
);
484 var7
= ((short int (*)(val
*, val
*))(var6
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var6
, var_e
) /* != on <var6:nullable Object>*/;
488 { /* Inline kernel#Int#+ (var_nb,var8) */
489 var11
= var_nb
+ var8
;
497 var12
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
499 CONTINUE_label
: (void)0;
501 BREAK_label
: (void)0;
507 /* method list#List#count for (self: Object, nullable Object): Int */
508 long VIRTUAL_list__List__count(val
* self
, val
* p0
) {
509 long var
/* : Int */;
510 long var1
/* : Int */;
511 var1
= list__List__count(self
, p0
);
516 /* method list#List#slice for (self: List[nullable Object], Int, Int): List[nullable Object] */
517 val
* list__List__slice(val
* self
, long p0
, long p1
) {
518 val
* var
/* : List[nullable Object] */;
519 long var_from
/* var from: Int */;
520 long var_to
/* var to: Int */;
521 short int var1
/* : Bool */;
522 long var2
/* : Int */;
523 short int var3
/* : Bool */;
524 short int var5
/* : Bool */;
527 short int var6
/* : Bool */;
528 short int var_
/* var : Bool */;
529 long var7
/* : Int */;
530 short int var8
/* : Bool */;
531 short int var10
/* : Bool */;
534 short int var13
/* : Bool */;
535 short int var14
/* : Bool */;
536 short int var15
/* : Bool */;
537 long var16
/* : Int */;
538 short int var17
/* : Bool */;
539 short int var19
/* : Bool */;
542 short int var22
/* : Bool */;
543 short int var_23
/* var : Bool */;
544 long var24
/* : Int */;
545 short int var25
/* : Bool */;
546 short int var27
/* : Bool */;
549 short int var30
/* : Bool */;
550 short int var_31
/* var : Bool */;
551 short int var32
/* : Bool */;
552 short int var34
/* : Bool */;
555 short int var37
/* : Bool */;
556 val
* var38
/* : List[nullable Object] */;
557 val
* var_list
/* var list: List[nullable Object] */;
558 short int var39
/* : Bool */;
559 short int var41
/* : Bool */;
562 short int var44
/* : Bool */;
563 val
* var45
/* : nullable Object */;
564 long var46
/* : Int */;
565 long var47
/* : Int */;
566 long var49
/* : Int */;
570 { /* Inline kernel#Int#>= (var_from,var2) */
571 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
572 /* <var2:Int> isa OTHER */
573 var5
= 1; /* easy <var2:Int> isa OTHER*/
575 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
578 var6
= var_from
>= var2
;
585 var7
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:List[nullable Object]>*/;
586 { /* Inline kernel#Int#< (var_from,var7) */
587 /* Covariant cast for argument 0 (i) <var7:Int> isa OTHER */
588 /* <var7:Int> isa OTHER */
589 var10
= 1; /* easy <var7:Int> isa OTHER*/
591 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
594 var13
= var_from
< var7
;
604 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/collection/list.nit", 81);
608 { /* Inline kernel#Int#>= (var_to,var16) */
609 /* Covariant cast for argument 0 (i) <var16:Int> isa OTHER */
610 /* <var16:Int> isa OTHER */
611 var19
= 1; /* easy <var16:Int> isa OTHER*/
613 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 258);
616 var22
= var_to
>= var16
;
623 var24
= ((long (*)(val
*))(self
->class->vft
[COLOR_abstract_collection__Collection__length
]))(self
) /* length on <self:List[nullable Object]>*/;
624 { /* Inline kernel#Int#< (var_to,var24) */
625 /* Covariant cast for argument 0 (i) <var24:Int> isa OTHER */
626 /* <var24:Int> isa OTHER */
627 var27
= 1; /* easy <var24:Int> isa OTHER*/
629 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
632 var30
= var_to
< var24
;
643 { /* Inline kernel#Int#<= (var_from,var_to) */
644 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
645 /* <var_to:Int> isa OTHER */
646 var34
= 1; /* easy <var_to:Int> isa OTHER*/
648 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
651 var37
= var_from
<= var_to
;
661 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Assert failed", "lib/standard/collection/list.nit", 82);
664 var38
= NEW_list__List(self
->type
->resolution_table
->types
[COLOR_list__Listlist__List_FT0
]);
665 ((void (*)(val
*))(var38
->class->vft
[COLOR_list__List__init
]))(var38
) /* init on <var38:List[nullable Object]>*/;
666 CHECK_NEW_list__List(var38
);
669 { /* Inline kernel#Int#<= (var_from,var_to) */
670 /* Covariant cast for argument 0 (i) <var_to:Int> isa OTHER */
671 /* <var_to:Int> isa OTHER */
672 var41
= 1; /* easy <var_to:Int> isa OTHER*/
674 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 256);
677 var44
= var_from
<= var_to
;
683 var45
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(self
, var_from
) /* [] on <self:List[nullable Object]>*/;
684 ((void (*)(val
*, val
*))(var_list
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_list
, var45
) /* add on <var_list:List[nullable Object]>*/;
686 { /* Inline kernel#Int#+ (var_from,var46) */
687 var49
= var_from
+ var46
;
693 CONTINUE_label
: (void)0;
695 BREAK_label
: (void)0;
701 /* method list#List#slice for (self: Object, Int, Int): List[nullable Object] */
702 val
* VIRTUAL_list__List__slice(val
* self
, long p0
, long p1
) {
703 val
* var
/* : List[nullable Object] */;
704 val
* var1
/* : List[nullable Object] */;
705 var1
= list__List__slice(self
, p0
, p1
);
710 /* method list#List#push for (self: List[nullable Object], nullable Object) */
711 void list__List__push(val
* self
, val
* p0
) {
712 short int var
/* : Bool */;
715 const struct type
* type_struct
;
716 short int is_nullable
;
717 val
* var_e
/* var e: nullable Object */;
718 val
* var1
/* : ListNode[nullable Object] */;
719 val
* var_node
/* var node: ListNode[nullable Object] */;
720 val
* var2
/* : nullable ListNode[nullable Object] */;
721 val
* var3
/* : null */;
722 short int var4
/* : Bool */;
723 val
* var5
/* : nullable ListNode[nullable Object] */;
724 val
* var6
/* : nullable ListNode[nullable Object] */;
725 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa Sequence#0 */
726 /* <p0:nullable Object> isa Sequence#0 */
727 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Sequence_FT0
];
728 cltype
= type_struct
->color
;
729 idtype
= type_struct
->id
;
730 is_nullable
= type_struct
->is_nullable
;
734 if(cltype
>= p0
->type
->table_size
) {
737 var
= p0
->type
->type_table
[cltype
] == idtype
;
741 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 93);
745 var1
= NEW_list__ListNode(self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__List_FT0
]);
746 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_list__ListNode__init
]))(var1
, var_e
) /* init on <var1:ListNode[nullable Object]>*/;
747 CHECK_NEW_list__ListNode(var1
);
749 var2
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
752 var4
= 1; /* is null */
754 var4
= 0; /* arg is null but recv is not */
757 self
->attrs
[COLOR_list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
759 var5
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
761 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 100);
764 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_list__ListNode__next_61d
]))(var5
, var_node
) /* next= on <var5:nullable ListNode[nullable Object]>*/;
766 var6
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
767 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var_node
, var6
) /* prev= on <var_node:ListNode[nullable Object]>*/;
769 self
->attrs
[COLOR_list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
772 /* method list#List#push for (self: Object, nullable Object) */
773 void VIRTUAL_list__List__push(val
* self
, val
* p0
) {
774 list__List__push(self
, p0
);
777 /* method list#List#unshift for (self: List[nullable Object], nullable Object) */
778 void list__List__unshift(val
* self
, val
* p0
) {
779 short int var
/* : Bool */;
782 const struct type
* type_struct
;
783 short int is_nullable
;
784 val
* var_e
/* var e: nullable Object */;
785 val
* var1
/* : ListNode[nullable Object] */;
786 val
* var_node
/* var node: ListNode[nullable Object] */;
787 val
* var2
/* : nullable ListNode[nullable Object] */;
788 val
* var3
/* : null */;
789 short int var4
/* : Bool */;
790 val
* var5
/* : nullable ListNode[nullable Object] */;
791 val
* var6
/* : nullable ListNode[nullable Object] */;
792 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa Sequence#0 */
793 /* <p0:nullable Object> isa Sequence#0 */
794 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Sequence_FT0
];
795 cltype
= type_struct
->color
;
796 idtype
= type_struct
->id
;
797 is_nullable
= type_struct
->is_nullable
;
801 if(cltype
>= p0
->type
->table_size
) {
804 var
= p0
->type
->type_table
[cltype
] == idtype
;
808 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 106);
812 var1
= NEW_list__ListNode(self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__List_FT0
]);
813 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_list__ListNode__init
]))(var1
, var_e
) /* init on <var1:ListNode[nullable Object]>*/;
814 CHECK_NEW_list__ListNode(var1
);
816 var2
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
819 var4
= 1; /* is null */
821 var4
= 0; /* arg is null but recv is not */
824 self
->attrs
[COLOR_list__List___tail
].val
= var_node
; /* _tail on <self:List[nullable Object]> */
826 var5
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
827 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_list__ListNode__next_61d
]))(var_node
, var5
) /* next= on <var_node:ListNode[nullable Object]>*/;
828 var6
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
830 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 114);
833 ((void (*)(val
*, val
*))(var6
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var6
, var_node
) /* prev= on <var6:nullable ListNode[nullable Object]>*/;
836 self
->attrs
[COLOR_list__List___head
].val
= var_node
; /* _head on <self:List[nullable Object]> */
839 /* method list#List#unshift for (self: Object, nullable Object) */
840 void VIRTUAL_list__List__unshift(val
* self
, val
* p0
) {
841 list__List__unshift(self
, p0
);
844 /* method list#List#link for (self: List[nullable Object], List[nullable Object]) */
845 void list__List__link(val
* self
, val
* p0
) {
846 short int var
/* : Bool */;
849 const struct type
* type_struct
;
850 val
* var_l
/* var l: List[nullable Object] */;
851 val
* var1
/* : nullable ListNode[nullable Object] */;
852 val
* var2
/* : null */;
853 short int var3
/* : Bool */;
854 val
* var4
/* : nullable ListNode[nullable Object] */;
855 val
* var5
/* : nullable ListNode[nullable Object] */;
856 val
* var6
/* : null */;
857 short int var7
/* : Bool */;
858 val
* var8
/* : nullable ListNode[nullable Object] */;
859 val
* var9
/* : nullable ListNode[nullable Object] */;
860 val
* var10
/* : nullable ListNode[nullable Object] */;
861 val
* var11
/* : nullable ListNode[nullable Object] */;
862 val
* var12
/* : nullable ListNode[nullable Object] */;
863 val
* var13
/* : nullable ListNode[nullable Object] */;
864 /* Covariant cast for argument 0 (l) <p0:List[nullable Object]> isa List[List#0] */
865 /* <p0:List[nullable Object]> isa List[List#0] */
866 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__Listlist__List_FT0
];
867 cltype
= type_struct
->color
;
868 idtype
= type_struct
->id
;
869 if(cltype
>= p0
->type
->table_size
) {
872 var
= p0
->type
->type_table
[cltype
] == idtype
;
875 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 119);
879 var1
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
882 var3
= 1; /* is null */
884 var3
= 0; /* arg is null but recv is not */
887 var4
= var_l
->attrs
[COLOR_list__List___head
].val
; /* _head on <var_l:List[nullable Object]> */
888 self
->attrs
[COLOR_list__List___head
].val
= var4
; /* _head on <self:List[nullable Object]> */
890 var5
= var_l
->attrs
[COLOR_list__List___head
].val
; /* _head on <var_l:List[nullable Object]> */
893 var7
= 0; /* is null */
895 var7
= 1; /* arg is null and recv is not */
898 var8
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
899 var9
= var_l
->attrs
[COLOR_list__List___head
].val
; /* _head on <var_l:List[nullable Object]> */
901 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 127);
904 ((void (*)(val
*, val
*))(var8
->class->vft
[COLOR_list__ListNode__next_61d
]))(var8
, var9
) /* next= on <var8:nullable ListNode[nullable Object]>*/;
906 var10
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
908 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 128);
911 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_list__ListNode__next
]))(var10
) /* next on <var10:nullable ListNode[nullable Object]>*/;
913 var12
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
915 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 128);
918 ((void (*)(val
*, val
*))(var11
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var11
, var12
) /* prev= on <var11:nullable ListNode[nullable Object]>*/;
923 var13
= var_l
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <var_l:List[nullable Object]> */
924 self
->attrs
[COLOR_list__List___tail
].val
= var13
; /* _tail on <self:List[nullable Object]> */
925 ((void (*)(val
*))(var_l
->class->vft
[COLOR_abstract_collection__RemovableCollection__clear
]))(var_l
) /* clear on <var_l:List[nullable Object]>*/;
928 /* method list#List#link for (self: Object, List[nullable Object]) */
929 void VIRTUAL_list__List__link(val
* self
, val
* p0
) {
930 list__List__link(self
, p0
);
933 /* method list#List#pop for (self: List[nullable Object]): nullable Object */
934 val
* list__List__pop(val
* self
) {
935 val
* var
/* : nullable Object */;
936 val
* var1
/* : nullable ListNode[nullable Object] */;
937 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
938 val
* var2
/* : nullable ListNode[nullable Object] */;
939 val
* var3
/* : null */;
940 val
* var4
/* : nullable ListNode[nullable Object] */;
941 val
* var5
/* : null */;
942 short int var6
/* : Bool */;
943 val
* var7
/* : null */;
944 val
* var8
/* : nullable ListNode[nullable Object] */;
945 val
* var9
/* : null */;
946 val
* var10
/* : nullable Object */;
947 var1
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
949 if (var_node
== NULL
) {
950 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 140);
953 var2
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev
]))(var_node
) /* prev on <var_node:nullable ListNode[nullable Object]>*/;
955 self
->attrs
[COLOR_list__List___tail
].val
= var2
; /* _tail on <self:List[nullable Object]> */
957 if (var_node
== NULL
) {
958 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 141);
961 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var_node
, var3
) /* prev= on <var_node:nullable ListNode[nullable Object]>*/;
963 var4
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
966 var6
= 1; /* is null */
968 var6
= 0; /* arg is null but recv is not */
972 self
->attrs
[COLOR_list__List___head
].val
= var7
; /* _head on <self:List[nullable Object]> */
974 var8
= self
->attrs
[COLOR_list__List___tail
].val
; /* _tail on <self:List[nullable Object]> */
977 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 145);
980 ((void (*)(val
*, val
*))(var8
->class->vft
[COLOR_list__ListNode__next_61d
]))(var8
, var9
) /* next= on <var8:nullable ListNode[nullable Object]>*/;
983 if (var_node
== NULL
) {
984 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 147);
987 var10
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_abstract_collection__Container__item
]))(var_node
) /* item on <var_node:nullable ListNode[nullable Object]>*/;
994 /* method list#List#pop for (self: Object): nullable Object */
995 val
* VIRTUAL_list__List__pop(val
* self
) {
996 val
* var
/* : nullable Object */;
997 val
* var1
/* : nullable Object */;
998 var1
= list__List__pop(self
);
1003 /* method list#List#shift for (self: List[nullable Object]): nullable Object */
1004 val
* list__List__shift(val
* self
) {
1005 val
* var
/* : nullable Object */;
1006 val
* var1
/* : nullable ListNode[nullable Object] */;
1007 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1008 val
* var2
/* : nullable ListNode[nullable Object] */;
1009 val
* var3
/* : null */;
1010 val
* var4
/* : nullable ListNode[nullable Object] */;
1011 val
* var5
/* : null */;
1012 short int var6
/* : Bool */;
1013 val
* var7
/* : null */;
1014 val
* var8
/* : nullable ListNode[nullable Object] */;
1015 val
* var9
/* : null */;
1016 val
* var10
/* : nullable Object */;
1017 var1
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1019 if (var_node
== NULL
) {
1020 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 154);
1023 var2
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:nullable ListNode[nullable Object]>*/;
1025 self
->attrs
[COLOR_list__List___head
].val
= var2
; /* _head on <self:List[nullable Object]> */
1027 if (var_node
== NULL
) {
1028 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 155);
1031 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_list__ListNode__next_61d
]))(var_node
, var3
) /* next= on <var_node:nullable ListNode[nullable Object]>*/;
1033 var4
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1036 var6
= 1; /* is null */
1038 var6
= 0; /* arg is null but recv is not */
1042 self
->attrs
[COLOR_list__List___tail
].val
= var7
; /* _tail on <self:List[nullable Object]> */
1044 var8
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1047 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 159);
1050 ((void (*)(val
*, val
*))(var8
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var8
, var9
) /* prev= on <var8:nullable ListNode[nullable Object]>*/;
1053 if (var_node
== NULL
) {
1054 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 161);
1057 var10
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_abstract_collection__Container__item
]))(var_node
) /* item on <var_node:nullable ListNode[nullable Object]>*/;
1064 /* method list#List#shift for (self: Object): nullable Object */
1065 val
* VIRTUAL_list__List__shift(val
* self
) {
1066 val
* var
/* : nullable Object */;
1067 val
* var1
/* : nullable Object */;
1068 var1
= list__List__shift(self
);
1073 /* method list#List#remove for (self: List[nullable Object], nullable Object) */
1074 void list__List__remove(val
* self
, val
* p0
) {
1075 short int var
/* : Bool */;
1078 const struct type
* type_struct
;
1079 short int is_nullable
;
1080 val
* var_e
/* var e: nullable Object */;
1081 val
* var1
/* : nullable ListNode[nullable Object] */;
1082 val
* var2
/* : nullable ListNode[nullable Object] */;
1083 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1084 val
* var3
/* : null */;
1085 short int var4
/* : Bool */;
1086 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa RemovableCollection#0 */
1087 /* <p0:nullable Object> isa RemovableCollection#0 */
1088 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__RemovableCollection_FT0
];
1089 cltype
= type_struct
->color
;
1090 idtype
= type_struct
->id
;
1091 is_nullable
= type_struct
->is_nullable
;
1095 if(cltype
>= p0
->type
->table_size
) {
1098 var
= p0
->type
->type_table
[cltype
] == idtype
;
1102 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 164);
1106 var1
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1107 var2
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_list__List__search_node_after
]))(self
, var_e
, var1
) /* search_node_after on <self:List[nullable Object]>*/;
1110 if (var_node
== NULL
) {
1111 var4
= 0; /* is null */
1113 var4
= 1; /* arg is null and recv is not */
1116 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_list__List__remove_node
]))(self
, var_node
) /* remove_node on <self:List[nullable Object]>*/;
1121 /* method list#List#remove for (self: Object, nullable Object) */
1122 void VIRTUAL_list__List__remove(val
* self
, val
* p0
) {
1123 list__List__remove(self
, p0
);
1126 /* method list#List#remove_at for (self: List[nullable Object], Int) */
1127 void list__List__remove_at(val
* self
, long p0
) {
1128 long var_i
/* var i: Int */;
1129 val
* var
/* : nullable ListNode[nullable Object] */;
1130 val
* var_node
/* var node: nullable ListNode[nullable Object] */;
1131 val
* var1
/* : null */;
1132 short int var2
/* : Bool */;
1134 var
= ((val
* (*)(val
*, long))(self
->class->vft
[COLOR_list__List__get_node
]))(self
, var_i
) /* get_node on <self:List[nullable Object]>*/;
1137 if (var_node
== NULL
) {
1138 var2
= 0; /* is null */
1140 var2
= 1; /* arg is null and recv is not */
1143 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_list__List__remove_node
]))(self
, var_node
) /* remove_node on <self:List[nullable Object]>*/;
1148 /* method list#List#remove_at for (self: Object, Int) */
1149 void VIRTUAL_list__List__remove_at(val
* self
, long p0
) {
1150 list__List__remove_at(self
, p0
);
1153 /* method list#List#clear for (self: List[nullable Object]) */
1154 void list__List__clear(val
* self
) {
1155 val
* var
/* : null */;
1156 val
* var1
/* : null */;
1158 self
->attrs
[COLOR_list__List___head
].val
= var
; /* _head on <self:List[nullable Object]> */
1160 self
->attrs
[COLOR_list__List___tail
].val
= var1
; /* _tail on <self:List[nullable Object]> */
1163 /* method list#List#clear for (self: Object) */
1164 void VIRTUAL_list__List__clear(val
* self
) {
1165 list__List__clear(self
);
1168 /* method list#List#iterator for (self: List[nullable Object]): ListIterator[nullable Object] */
1169 val
* list__List__iterator(val
* self
) {
1170 val
* var
/* : ListIterator[nullable Object] */;
1171 val
* var1
/* : ListIterator[nullable Object] */;
1172 var1
= NEW_list__ListIterator(self
->type
->resolution_table
->types
[COLOR_list__ListIteratorlist__List_FT0
]);
1173 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_list__ListIterator__init
]))(var1
, self
) /* init on <var1:ListIterator[nullable Object]>*/;
1174 CHECK_NEW_list__ListIterator(var1
);
1180 /* method list#List#iterator for (self: Object): Iterator[nullable Object] */
1181 val
* VIRTUAL_list__List__iterator(val
* self
) {
1182 val
* var
/* : Iterator[nullable Object] */;
1183 val
* var1
/* : ListIterator[nullable Object] */;
1184 var1
= list__List__iterator(self
);
1189 /* method list#List#init for (self: List[nullable Object]) */
1190 void list__List__init(val
* self
) {
1193 /* method list#List#init for (self: Object) */
1194 void VIRTUAL_list__List__init(val
* self
) {
1195 list__List__init(self
);
1198 /* method list#List#from for (self: List[nullable Object], Collection[nullable Object]) */
1199 void list__List__from(val
* self
, val
* p0
) {
1200 short int var
/* : Bool */;
1203 const struct type
* type_struct
;
1204 val
* var_coll
/* var coll: Collection[nullable Object] */;
1205 /* Covariant cast for argument 0 (coll) <p0:Collection[nullable Object]> isa Collection[List#0] */
1206 /* <p0:Collection[nullable Object]> isa Collection[List#0] */
1207 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_collection__Collectionlist__List_FT0
];
1208 cltype
= type_struct
->color
;
1209 idtype
= type_struct
->id
;
1210 if(cltype
>= p0
->type
->table_size
) {
1213 var
= p0
->type
->type_table
[cltype
] == idtype
;
1216 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 188);
1220 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(self
, var_coll
) /* append on <self:List[nullable Object]>*/;
1223 /* method list#List#from for (self: Object, Collection[nullable Object]) */
1224 void VIRTUAL_list__List__from(val
* self
, val
* p0
) {
1225 list__List__from(self
, p0
);
1228 /* method list#List#get_node for (self: List[nullable Object], Int): nullable ListNode[nullable Object] */
1229 val
* list__List__get_node(val
* self
, long p0
) {
1230 val
* var
/* : nullable ListNode[nullable Object] */;
1231 long var_i
/* var i: Int */;
1232 val
* var1
/* : nullable ListNode[nullable Object] */;
1233 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1234 long var2
/* : Int */;
1235 short int var3
/* : Bool */;
1236 short int var5
/* : Bool */;
1239 short int var6
/* : Bool */;
1240 val
* var7
/* : null */;
1241 short int var8
/* : Bool */;
1242 val
* var9
/* : null */;
1243 short int var10
/* : Bool */;
1244 short int var_
/* var : Bool */;
1245 long var11
/* : Int */;
1246 short int var12
/* : Bool */;
1247 short int var14
/* : Bool */;
1250 short int var17
/* : Bool */;
1251 val
* var18
/* : nullable ListNode[nullable Object] */;
1252 long var19
/* : Int */;
1253 long var20
/* : Int */;
1254 long var22
/* : Int */;
1256 var1
= self
->attrs
[COLOR_list__List___head
].val
; /* _head on <self:List[nullable Object]> */
1259 { /* Inline kernel#Int#< (var_i,var2) */
1260 /* Covariant cast for argument 0 (i) <var2:Int> isa OTHER */
1261 /* <var2:Int> isa OTHER */
1262 var5
= 1; /* easy <var2:Int> isa OTHER*/
1264 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 257);
1267 var6
= var_i
< var2
;
1280 if (var_n
== NULL
) {
1281 var10
= 0; /* is null */
1283 var10
= 1; /* arg is null and recv is not */
1288 { /* Inline kernel#Int#> (var_i,var11) */
1289 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
1290 /* <var11:Int> isa OTHER */
1291 var14
= 1; /* easy <var11:Int> isa OTHER*/
1293 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/kernel.nit", 259);
1296 var17
= var_i
> var11
;
1299 RET_LABEL13
:(void)0;
1306 var18
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_list__ListNode__next
]))(var_n
) /* next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1309 { /* Inline kernel#Int#- (var_i,var19) */
1310 var22
= var_i
- var19
;
1313 RET_LABEL21
:(void)0;
1316 CONTINUE_label
: (void)0;
1318 BREAK_label
: (void)0;
1324 /* method list#List#get_node for (self: Object, Int): nullable ListNode[nullable Object] */
1325 val
* VIRTUAL_list__List__get_node(val
* self
, long p0
) {
1326 val
* var
/* : nullable ListNode[nullable Object] */;
1327 val
* var1
/* : nullable ListNode[nullable Object] */;
1328 var1
= list__List__get_node(self
, p0
);
1333 /* method list#List#search_node_after for (self: List[nullable Object], nullable Object, nullable ListNode[nullable Object]): nullable ListNode[nullable Object] */
1334 val
* list__List__search_node_after(val
* self
, val
* p0
, val
* p1
) {
1335 val
* var
/* : nullable ListNode[nullable Object] */;
1336 short int var1
/* : Bool */;
1339 const struct type
* type_struct
;
1340 short int is_nullable
;
1341 short int var2
/* : Bool */;
1344 const struct type
* type_struct5
;
1345 val
* var_e
/* var e: nullable Object */;
1346 val
* var_after
/* var after: nullable ListNode[nullable Object] */;
1347 val
* var_n
/* var n: nullable ListNode[nullable Object] */;
1348 short int var6
/* : Bool */;
1349 val
* var7
/* : null */;
1350 short int var8
/* : Bool */;
1351 short int var_
/* var : Bool */;
1352 val
* var9
/* : nullable Object */;
1353 short int var10
/* : Bool */;
1354 val
* var11
/* : nullable ListNode[nullable Object] */;
1355 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa List#0 */
1356 /* <p0:nullable Object> isa List#0 */
1357 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__List_FT0
];
1358 cltype
= type_struct
->color
;
1359 idtype
= type_struct
->id
;
1360 is_nullable
= type_struct
->is_nullable
;
1364 if(cltype
>= p0
->type
->table_size
) {
1367 var1
= p0
->type
->type_table
[cltype
] == idtype
;
1371 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 211);
1374 /* Covariant cast for argument 1 (after) <p1:nullable ListNode[nullable Object]> isa nullable ListNode[List#0] */
1375 /* <p1:nullable ListNode[nullable Object]> isa nullable ListNode[List#0] */
1376 type_struct5
= self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__List_FT0
];
1377 cltype3
= type_struct5
->color
;
1378 idtype4
= type_struct5
->id
;
1382 if(cltype3
>= p1
->type
->table_size
) {
1385 var2
= p1
->type
->type_table
[cltype3
] == idtype4
;
1389 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 211);
1397 if (var_n
== NULL
) {
1398 var8
= 0; /* is null */
1400 var8
= 1; /* arg is null and recv is not */
1404 var9
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_abstract_collection__Container__item
]))(var_n
) /* item on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1406 var10
= (var_e
!= NULL
);
1408 var10
= ((short int (*)(val
*, val
*))(var9
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var9
, var_e
) /* != on <var9:nullable Object>*/;
1415 var11
= ((val
* (*)(val
*))(var_n
->class->vft
[COLOR_list__ListNode__next
]))(var_n
) /* next on <var_n:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1417 CONTINUE_label
: (void)0;
1419 BREAK_label
: (void)0;
1425 /* method list#List#search_node_after for (self: Object, nullable Object, nullable ListNode[nullable Object]): nullable ListNode[nullable Object] */
1426 val
* VIRTUAL_list__List__search_node_after(val
* self
, val
* p0
, val
* p1
) {
1427 val
* var
/* : nullable ListNode[nullable Object] */;
1428 val
* var1
/* : nullable ListNode[nullable Object] */;
1429 var1
= list__List__search_node_after(self
, p0
, p1
);
1434 /* method list#List#remove_node for (self: List[nullable Object], ListNode[nullable Object]) */
1435 void list__List__remove_node(val
* self
, val
* p0
) {
1436 short int var
/* : Bool */;
1439 const struct type
* type_struct
;
1440 val
* var_node
/* var node: ListNode[nullable Object] */;
1441 val
* var1
/* : nullable ListNode[nullable Object] */;
1442 val
* var2
/* : null */;
1443 short int var3
/* : Bool */;
1444 val
* var4
/* : nullable ListNode[nullable Object] */;
1445 val
* var5
/* : nullable ListNode[nullable Object] */;
1446 val
* var6
/* : null */;
1447 short int var7
/* : Bool */;
1448 val
* var8
/* : null */;
1449 val
* var9
/* : nullable ListNode[nullable Object] */;
1450 val
* var10
/* : null */;
1451 val
* var11
/* : nullable ListNode[nullable Object] */;
1452 val
* var12
/* : null */;
1453 short int var13
/* : Bool */;
1454 val
* var14
/* : nullable ListNode[nullable Object] */;
1455 val
* var15
/* : nullable ListNode[nullable Object] */;
1456 val
* var16
/* : null */;
1457 val
* var17
/* : nullable ListNode[nullable Object] */;
1458 val
* var18
/* : nullable ListNode[nullable Object] */;
1459 val
* var19
/* : nullable ListNode[nullable Object] */;
1460 val
* var20
/* : nullable ListNode[nullable Object] */;
1461 /* Covariant cast for argument 0 (node) <p0:ListNode[nullable Object]> isa ListNode[List#0] */
1462 /* <p0:ListNode[nullable Object]> isa ListNode[List#0] */
1463 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__List_FT0
];
1464 cltype
= type_struct
->color
;
1465 idtype
= type_struct
->id
;
1466 if(cltype
>= p0
->type
->table_size
) {
1469 var
= p0
->type
->type_table
[cltype
] == idtype
;
1472 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 219);
1476 var1
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev
]))(var_node
) /* prev on <var_node:ListNode[nullable Object]>*/;
1479 var3
= 1; /* is null */
1481 var3
= 0; /* arg is null but recv is not */
1484 var4
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:ListNode[nullable Object]>*/;
1485 self
->attrs
[COLOR_list__List___head
].val
= var4
; /* _head on <self:List[nullable Object]> */
1486 var5
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:ListNode[nullable Object]>*/;
1489 var7
= 1; /* is null */
1491 var7
= 0; /* arg is null but recv is not */
1495 self
->attrs
[COLOR_list__List___tail
].val
= var8
; /* _tail on <self:List[nullable Object]> */
1497 var9
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:ListNode[nullable Object]>*/;
1500 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 227);
1503 ((void (*)(val
*, val
*))(var9
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var9
, var10
) /* prev= on <var9:nullable ListNode[nullable Object]>*/;
1507 var11
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:ListNode[nullable Object]>*/;
1509 if (var11
== NULL
) {
1510 var13
= 1; /* is null */
1512 var13
= 0; /* arg is null but recv is not */
1515 var14
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev
]))(var_node
) /* prev on <var_node:ListNode[nullable Object]>*/;
1516 self
->attrs
[COLOR_list__List___tail
].val
= var14
; /* _tail on <self:List[nullable Object]> */
1517 var15
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev
]))(var_node
) /* prev on <var_node:ListNode[nullable Object]>*/;
1519 if (var15
== NULL
) {
1520 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 231);
1523 ((void (*)(val
*, val
*))(var15
->class->vft
[COLOR_list__ListNode__next_61d
]))(var15
, var16
) /* next= on <var15:nullable ListNode[nullable Object]>*/;
1526 var17
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev
]))(var_node
) /* prev on <var_node:ListNode[nullable Object]>*/;
1527 var18
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:ListNode[nullable Object]>*/;
1528 if (var17
== NULL
) {
1529 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 233);
1532 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_list__ListNode__next_61d
]))(var17
, var18
) /* next= on <var17:nullable ListNode[nullable Object]>*/;
1534 var19
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__next
]))(var_node
) /* next on <var_node:ListNode[nullable Object]>*/;
1535 var20
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev
]))(var_node
) /* prev on <var_node:ListNode[nullable Object]>*/;
1536 if (var19
== NULL
) {
1537 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 234);
1540 ((void (*)(val
*, val
*))(var19
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var19
, var20
) /* prev= on <var19:nullable ListNode[nullable Object]>*/;
1546 /* method list#List#remove_node for (self: Object, ListNode[nullable Object]) */
1547 void VIRTUAL_list__List__remove_node(val
* self
, val
* p0
) {
1548 list__List__remove_node(self
, p0
);
1551 /* method list#List#insert_before for (self: List[nullable Object], nullable Object, ListNode[nullable Object]) */
1552 void list__List__insert_before(val
* self
, val
* p0
, val
* p1
) {
1553 short int var
/* : Bool */;
1556 const struct type
* type_struct
;
1557 short int is_nullable
;
1558 short int var1
/* : Bool */;
1561 const struct type
* type_struct4
;
1562 val
* var_element
/* var element: nullable Object */;
1563 val
* var_node
/* var node: ListNode[nullable Object] */;
1564 val
* var5
/* : ListNode[nullable Object] */;
1565 val
* var_nnode
/* var nnode: ListNode[nullable Object] */;
1566 val
* var6
/* : nullable ListNode[nullable Object] */;
1567 val
* var_prev
/* var prev: nullable ListNode[nullable Object] */;
1568 val
* var7
/* : null */;
1569 short int var8
/* : Bool */;
1570 /* Covariant cast for argument 0 (element) <p0:nullable Object> isa List#0 */
1571 /* <p0:nullable Object> isa List#0 */
1572 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__List_FT0
];
1573 cltype
= type_struct
->color
;
1574 idtype
= type_struct
->id
;
1575 is_nullable
= type_struct
->is_nullable
;
1579 if(cltype
>= p0
->type
->table_size
) {
1582 var
= p0
->type
->type_table
[cltype
] == idtype
;
1586 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 238);
1589 /* Covariant cast for argument 1 (node) <p1:ListNode[nullable Object]> isa ListNode[List#0] */
1590 /* <p1:ListNode[nullable Object]> isa ListNode[List#0] */
1591 type_struct4
= self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__List_FT0
];
1592 cltype2
= type_struct4
->color
;
1593 idtype3
= type_struct4
->id
;
1594 if(cltype2
>= p1
->type
->table_size
) {
1597 var1
= p1
->type
->type_table
[cltype2
] == idtype3
;
1600 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 238);
1605 var5
= NEW_list__ListNode(self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__List_FT0
]);
1606 ((void (*)(val
*, val
*))(var5
->class->vft
[COLOR_list__ListNode__init
]))(var5
, var_element
) /* init on <var5:ListNode[nullable Object]>*/;
1607 CHECK_NEW_list__ListNode(var5
);
1609 var6
= ((val
* (*)(val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev
]))(var_node
) /* prev on <var_node:ListNode[nullable Object]>*/;
1612 if (var_prev
== NULL
) {
1613 var8
= 1; /* is null */
1615 var8
= 0; /* arg is null but recv is not */
1618 self
->attrs
[COLOR_list__List___head
].val
= var_nnode
; /* _head on <self:List[nullable Object]> */
1620 ((void (*)(val
*, val
*))(var_prev
->class->vft
[COLOR_list__ListNode__next_61d
]))(var_prev
, var_nnode
) /* next= on <var_prev:nullable ListNode[nullable Object](ListNode[nullable Object])>*/;
1622 ((void (*)(val
*, val
*))(var_nnode
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var_nnode
, var_prev
) /* prev= on <var_nnode:ListNode[nullable Object]>*/;
1623 ((void (*)(val
*, val
*))(var_nnode
->class->vft
[COLOR_list__ListNode__next_61d
]))(var_nnode
, var_node
) /* next= on <var_nnode:ListNode[nullable Object]>*/;
1624 ((void (*)(val
*, val
*))(var_node
->class->vft
[COLOR_list__ListNode__prev_61d
]))(var_node
, var_nnode
) /* prev= on <var_node:ListNode[nullable Object]>*/;
1627 /* method list#List#insert_before for (self: Object, nullable Object, ListNode[nullable Object]) */
1628 void VIRTUAL_list__List__insert_before(val
* self
, val
* p0
, val
* p1
) {
1629 list__List__insert_before(self
, p0
, p1
);
1632 /* method list#ListIterator#item for (self: ListIterator[nullable Object]): nullable Object */
1633 val
* list__ListIterator__item(val
* self
) {
1634 val
* var
/* : nullable Object */;
1635 val
* var1
/* : nullable ListNode[nullable Object] */;
1636 val
* var2
/* : nullable Object */;
1637 var1
= self
->attrs
[COLOR_list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
1639 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 256);
1642 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item
]))(var1
) /* item on <var1:nullable ListNode[nullable Object]>*/;
1649 /* method list#ListIterator#item for (self: Object): nullable Object */
1650 val
* VIRTUAL_list__ListIterator__item(val
* self
) {
1651 val
* var
/* : nullable Object */;
1652 val
* var1
/* : nullable Object */;
1653 var1
= list__ListIterator__item(self
);
1658 /* method list#ListIterator#item= for (self: ListIterator[nullable Object], nullable Object) */
1659 void list__ListIterator__item_61d(val
* self
, val
* p0
) {
1660 short int var
/* : Bool */;
1663 const struct type
* type_struct
;
1664 short int is_nullable
;
1665 val
* var_e
/* var e: nullable Object */;
1666 val
* var1
/* : nullable ListNode[nullable Object] */;
1667 /* Covariant cast for argument 0 (e) <p0:nullable Object> isa ListIterator#0 */
1668 /* <p0:nullable Object> isa ListIterator#0 */
1669 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__ListIterator_FT0
];
1670 cltype
= type_struct
->color
;
1671 idtype
= type_struct
->id
;
1672 is_nullable
= type_struct
->is_nullable
;
1676 if(cltype
>= p0
->type
->table_size
) {
1679 var
= p0
->type
->type_table
[cltype
] == idtype
;
1683 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 258);
1687 var1
= self
->attrs
[COLOR_list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
1689 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 258);
1692 ((void (*)(val
*, val
*))(var1
->class->vft
[COLOR_abstract_collection__Container__item_61d
]))(var1
, var_e
) /* item= on <var1:nullable ListNode[nullable Object]>*/;
1696 /* method list#ListIterator#item= for (self: Object, nullable Object) */
1697 void VIRTUAL_list__ListIterator__item_61d(val
* self
, val
* p0
) {
1698 list__ListIterator__item_61d(self
, p0
);
1701 /* method list#ListIterator#is_ok for (self: ListIterator[nullable Object]): Bool */
1702 short int list__ListIterator__is_ok(val
* self
) {
1703 short int var
/* : Bool */;
1704 val
* var1
/* : nullable ListNode[nullable Object] */;
1705 val
* var2
/* : null */;
1706 short int var3
/* : Bool */;
1707 short int var4
/* : Bool */;
1708 var1
= self
->attrs
[COLOR_list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
1711 var3
= 1; /* is null */
1713 var3
= 0; /* arg is null but recv is not */
1721 /* method list#ListIterator#is_ok for (self: Object): Bool */
1722 short int VIRTUAL_list__ListIterator__is_ok(val
* self
) {
1723 short int var
/* : Bool */;
1724 short int var1
/* : Bool */;
1725 var1
= list__ListIterator__is_ok(self
);
1730 /* method list#ListIterator#next for (self: ListIterator[nullable Object]) */
1731 void list__ListIterator__next(val
* self
) {
1732 val
* var
/* : nullable ListNode[nullable Object] */;
1733 val
* var1
/* : nullable ListNode[nullable Object] */;
1734 val
* var_
/* var : ListIterator[nullable Object] */;
1735 long var2
/* : Int */;
1736 long var3
/* : Int */;
1737 long var4
/* : Int */;
1738 long var6
/* : Int */;
1739 var
= self
->attrs
[COLOR_list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
1741 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Reciever is null", "lib/standard/collection/list.nit", 264);
1744 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_list__ListNode__next
]))(var
) /* next on <var:nullable ListNode[nullable Object]>*/;
1746 self
->attrs
[COLOR_list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
1748 var2
= var_
->attrs
[COLOR_list__ListIterator___index
].l
; /* _index on <var_:ListIterator[nullable Object]> */
1750 { /* Inline kernel#Int#+ (var2,var3) */
1756 var_
->attrs
[COLOR_list__ListIterator___index
].l
= var4
; /* _index on <var_:ListIterator[nullable Object]> */
1759 /* method list#ListIterator#next for (self: Object) */
1760 void VIRTUAL_list__ListIterator__next(val
* self
) {
1761 list__ListIterator__next(self
);
1764 /* method list#ListIterator#init for (self: ListIterator[nullable Object], List[nullable Object]) */
1765 void list__ListIterator__init(val
* self
, val
* p0
) {
1766 short int var
/* : Bool */;
1769 const struct type
* type_struct
;
1770 val
* var_list
/* var list: List[nullable Object] */;
1771 val
* var1
/* : nullable ListNode[nullable Object] */;
1772 long var2
/* : Int */;
1773 /* Covariant cast for argument 0 (list) <p0:List[nullable Object]> isa List[ListIterator#0] */
1774 /* <p0:List[nullable Object]> isa List[ListIterator#0] */
1775 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__Listlist__ListIterator_FT0
];
1776 cltype
= type_struct
->color
;
1777 idtype
= type_struct
->id
;
1778 if(cltype
>= p0
->type
->table_size
) {
1781 var
= p0
->type
->type_table
[cltype
] == idtype
;
1784 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 268);
1788 self
->attrs
[COLOR_list__ListIterator___list
].val
= var_list
; /* _list on <self:ListIterator[nullable Object]> */
1789 var1
= var_list
->attrs
[COLOR_list__List___head
].val
; /* _head on <var_list:List[nullable Object]> */
1790 self
->attrs
[COLOR_list__ListIterator___node
].val
= var1
; /* _node on <self:ListIterator[nullable Object]> */
1792 self
->attrs
[COLOR_list__ListIterator___index
].l
= var2
; /* _index on <self:ListIterator[nullable Object]> */
1795 /* method list#ListIterator#init for (self: Object, List[nullable Object]) */
1796 void VIRTUAL_list__ListIterator__init(val
* self
, val
* p0
) {
1797 list__ListIterator__init(self
, p0
);
1800 /* method list#ListIterator#index for (self: ListIterator[nullable Object]): Int */
1801 long list__ListIterator__index(val
* self
) {
1802 long var
/* : Int */;
1803 long var1
/* : Int */;
1804 var1
= self
->attrs
[COLOR_list__ListIterator___index
].l
; /* _index on <self:ListIterator[nullable Object]> */
1809 /* method list#ListIterator#index for (self: Object): Int */
1810 long VIRTUAL_list__ListIterator__index(val
* self
) {
1811 long var
/* : Int */;
1812 long var1
/* : Int */;
1813 var1
= list__ListIterator__index(self
);
1818 /* method list#ListIterator#delete for (self: ListIterator[nullable Object]) */
1819 void list__ListIterator__delete(val
* self
) {
1820 val
* var
/* : List[nullable Object] */;
1821 val
* var1
/* : nullable ListNode[nullable Object] */;
1822 var
= self
->attrs
[COLOR_list__ListIterator___list
].val
; /* _list on <self:ListIterator[nullable Object]> */
1824 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _list", "lib/standard/collection/list.nit", 288);
1827 var1
= self
->attrs
[COLOR_list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
1829 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 288);
1832 ((void (*)(val
*, val
*))(var
->class->vft
[COLOR_list__List__remove_node
]))(var
, var1
) /* remove_node on <var:List[nullable Object]>*/;
1835 /* method list#ListIterator#delete for (self: Object) */
1836 void VIRTUAL_list__ListIterator__delete(val
* self
) {
1837 list__ListIterator__delete(self
);
1840 /* method list#ListIterator#insert_before for (self: ListIterator[nullable Object], nullable Object) */
1841 void list__ListIterator__insert_before(val
* self
, val
* p0
) {
1842 short int var
/* : Bool */;
1845 const struct type
* type_struct
;
1846 short int is_nullable
;
1847 val
* var_element
/* var element: nullable Object */;
1848 val
* var1
/* : List[nullable Object] */;
1849 val
* var2
/* : nullable ListNode[nullable Object] */;
1850 /* Covariant cast for argument 0 (element) <p0:nullable Object> isa ListIterator#0 */
1851 /* <p0:nullable Object> isa ListIterator#0 */
1852 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__ListIterator_FT0
];
1853 cltype
= type_struct
->color
;
1854 idtype
= type_struct
->id
;
1855 is_nullable
= type_struct
->is_nullable
;
1859 if(cltype
>= p0
->type
->table_size
) {
1862 var
= p0
->type
->type_table
[cltype
] == idtype
;
1866 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 291);
1870 var1
= self
->attrs
[COLOR_list__ListIterator___list
].val
; /* _list on <self:ListIterator[nullable Object]> */
1872 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Uninitialized attribute _list", "lib/standard/collection/list.nit", 294);
1875 var2
= self
->attrs
[COLOR_list__ListIterator___node
].val
; /* _node on <self:ListIterator[nullable Object]> */
1877 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 294);
1880 ((void (*)(val
*, val
*, val
*))(var1
->class->vft
[COLOR_list__List__insert_before
]))(var1
, var_element
, var2
) /* insert_before on <var1:List[nullable Object]>*/;
1883 /* method list#ListIterator#insert_before for (self: Object, nullable Object) */
1884 void VIRTUAL_list__ListIterator__insert_before(val
* self
, val
* p0
) {
1885 list__ListIterator__insert_before(self
, p0
);
1888 /* method list#ListNode#init for (self: ListNode[nullable Object], nullable Object) */
1889 void list__ListNode__init(val
* self
, val
* p0
) {
1890 short int var
/* : Bool */;
1893 const struct type
* type_struct
;
1894 short int is_nullable
;
1895 val
* var_i
/* var i: nullable Object */;
1896 /* Covariant cast for argument 0 (i) <p0:nullable Object> isa ListNode#0 */
1897 /* <p0:nullable Object> isa ListNode#0 */
1898 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__ListNode_FT0
];
1899 cltype
= type_struct
->color
;
1900 idtype
= type_struct
->id
;
1901 is_nullable
= type_struct
->is_nullable
;
1905 if(cltype
>= p0
->type
->table_size
) {
1908 var
= p0
->type
->type_table
[cltype
] == idtype
;
1912 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 301);
1916 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__Container__init
]))(self
, p0
) /* init on <self:ListNode[nullable Object]>*/;
1917 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_collection__Container__item_61d
]))(self
, var_i
) /* item= on <self:ListNode[nullable Object]>*/;
1920 /* method list#ListNode#init for (self: Object, nullable Object) */
1921 void VIRTUAL_list__ListNode__init(val
* self
, val
* p0
) {
1922 list__ListNode__init(self
, p0
);
1925 /* method list#ListNode#next for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
1926 val
* list__ListNode__next(val
* self
) {
1927 val
* var
/* : nullable ListNode[nullable Object] */;
1928 val
* var1
/* : nullable ListNode[nullable Object] */;
1929 var1
= self
->attrs
[COLOR_list__ListNode___next
].val
; /* _next on <self:ListNode[nullable Object]> */
1934 /* method list#ListNode#next for (self: Object): nullable ListNode[nullable Object] */
1935 val
* VIRTUAL_list__ListNode__next(val
* self
) {
1936 val
* var
/* : nullable ListNode[nullable Object] */;
1937 val
* var1
/* : nullable ListNode[nullable Object] */;
1938 var1
= list__ListNode__next(self
);
1943 /* method list#ListNode#next= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
1944 void list__ListNode__next_61d(val
* self
, val
* p0
) {
1945 short int var
/* : Bool */;
1948 const struct type
* type_struct
;
1949 /* Covariant cast for argument 0 (next) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[ListNode#0] */
1950 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[ListNode#0] */
1951 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__ListNode_FT0
];
1952 cltype
= type_struct
->color
;
1953 idtype
= type_struct
->id
;
1957 if(cltype
>= p0
->type
->table_size
) {
1960 var
= p0
->type
->type_table
[cltype
] == idtype
;
1964 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 306);
1967 self
->attrs
[COLOR_list__ListNode___next
].val
= p0
; /* _next on <self:ListNode[nullable Object]> */
1970 /* method list#ListNode#next= for (self: Object, nullable ListNode[nullable Object]) */
1971 void VIRTUAL_list__ListNode__next_61d(val
* self
, val
* p0
) {
1972 list__ListNode__next_61d(self
, p0
);
1975 /* method list#ListNode#prev for (self: ListNode[nullable Object]): nullable ListNode[nullable Object] */
1976 val
* list__ListNode__prev(val
* self
) {
1977 val
* var
/* : nullable ListNode[nullable Object] */;
1978 val
* var1
/* : nullable ListNode[nullable Object] */;
1979 var1
= self
->attrs
[COLOR_list__ListNode___prev
].val
; /* _prev on <self:ListNode[nullable Object]> */
1984 /* method list#ListNode#prev for (self: Object): nullable ListNode[nullable Object] */
1985 val
* VIRTUAL_list__ListNode__prev(val
* self
) {
1986 val
* var
/* : nullable ListNode[nullable Object] */;
1987 val
* var1
/* : nullable ListNode[nullable Object] */;
1988 var1
= list__ListNode__prev(self
);
1993 /* method list#ListNode#prev= for (self: ListNode[nullable Object], nullable ListNode[nullable Object]) */
1994 void list__ListNode__prev_61d(val
* self
, val
* p0
) {
1995 short int var
/* : Bool */;
1998 const struct type
* type_struct
;
1999 /* Covariant cast for argument 0 (prev) <p0:nullable ListNode[nullable Object]> isa nullable ListNode[ListNode#0] */
2000 /* <p0:nullable ListNode[nullable Object]> isa nullable ListNode[ListNode#0] */
2001 type_struct
= self
->type
->resolution_table
->types
[COLOR_list__ListNodelist__ListNode_FT0
];
2002 cltype
= type_struct
->color
;
2003 idtype
= type_struct
->id
;
2007 if(cltype
>= p0
->type
->table_size
) {
2010 var
= p0
->type
->type_table
[cltype
] == idtype
;
2014 fprintf(stderr
, "Runtime error: %s (%s:%d)\n", "Cast failed", "lib/standard/collection/list.nit", 309);
2017 self
->attrs
[COLOR_list__ListNode___prev
].val
= p0
; /* _prev on <self:ListNode[nullable Object]> */
2020 /* method list#ListNode#prev= for (self: Object, nullable ListNode[nullable Object]) */
2021 void VIRTUAL_list__ListNode__prev_61d(val
* self
, val
* p0
) {
2022 list__ListNode__prev_61d(self
, p0
);