1 #include "separate_compiler.sep.0.h"
2 /* method separate_compiler#SeparateCompilerVisitor#class_name_string for (self: SeparateCompilerVisitor, RuntimeVariable): String */
3 val
* separate_compiler__SeparateCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
4 val
* var
/* : String */;
5 val
* var_value
/* var value: RuntimeVariable */;
7 val
* var1
/* : String */;
8 char* var2
/* : NativeString */;
10 val
* var4
/* : FlatString */;
11 val
* var5
/* : String */;
12 val
* var_res
/* var res: String */;
14 val
* var7
/* : String */;
15 char* var8
/* : NativeString */;
16 long var9
/* : Int */;
17 val
* var10
/* : FlatString */;
18 static val
* varonce11
;
19 val
* var12
/* : String */;
20 char* var13
/* : NativeString */;
21 long var14
/* : Int */;
22 val
* var15
/* : FlatString */;
23 val
* var16
/* : Array[Object] */;
24 long var17
/* : Int */;
25 val
* var18
/* : NativeArray[Object] */;
26 val
* var19
/* : String */;
27 val
* var20
/* : MType */;
28 val
* var22
/* : MType */;
29 val
* var23
/* : String */;
30 static val
* varonce24
;
31 val
* var25
/* : String */;
32 char* var26
/* : NativeString */;
33 long var27
/* : Int */;
34 val
* var28
/* : FlatString */;
35 short int var29
/* : Bool */;
36 short int var30
/* : Bool */;
37 static val
* varonce31
;
38 val
* var32
/* : String */;
39 char* var33
/* : NativeString */;
40 long var34
/* : Int */;
41 val
* var35
/* : FlatString */;
42 static val
* varonce36
;
43 val
* var37
/* : String */;
44 char* var38
/* : NativeString */;
45 long var39
/* : Int */;
46 val
* var40
/* : FlatString */;
47 static val
* varonce41
;
48 val
* var42
/* : String */;
49 char* var43
/* : NativeString */;
50 long var44
/* : Int */;
51 val
* var45
/* : FlatString */;
52 val
* var46
/* : Array[Object] */;
53 long var47
/* : Int */;
54 val
* var48
/* : NativeArray[Object] */;
55 val
* var49
/* : String */;
56 short int var50
/* : Bool */;
57 val
* var51
/* : MType */;
58 val
* var53
/* : MType */;
59 short int var54
/* : Bool */;
62 short int var_
/* var : Bool */;
63 val
* var55
/* : MType */;
64 val
* var57
/* : MType */;
65 short int var58
/* : Bool */;
68 const char* var_class_name
;
69 val
* var61
/* : MClass */;
70 val
* var63
/* : MClass */;
71 val
* var64
/* : MClassKind */;
72 val
* var66
/* : MClassKind */;
73 val
* var67
/* : MClassKind */;
74 short int var68
/* : Bool */;
75 short int var69
/* : Bool */;
76 val
* var_other
/* var other: nullable Object */;
77 short int var71
/* : Bool */;
78 short int var73
/* : Bool */;
79 static val
* varonce74
;
80 val
* var75
/* : String */;
81 char* var76
/* : NativeString */;
82 long var77
/* : Int */;
83 val
* var78
/* : FlatString */;
84 val
* var79
/* : MType */;
85 val
* var81
/* : MType */;
86 short int var82
/* : Bool */;
89 const char* var_class_name85
;
90 val
* var86
/* : MClass */;
91 val
* var88
/* : MClass */;
92 static val
* varonce89
;
93 val
* var90
/* : String */;
94 char* var91
/* : NativeString */;
95 long var92
/* : Int */;
96 val
* var93
/* : FlatString */;
97 val
* var94
/* : Array[Object] */;
98 long var95
/* : Int */;
99 val
* var96
/* : NativeArray[Object] */;
100 val
* var97
/* : String */;
101 static val
* varonce98
;
102 val
* var99
/* : String */;
103 char* var100
/* : NativeString */;
104 long var101
/* : Int */;
105 val
* var102
/* : FlatString */;
106 val
* var103
/* : MType */;
107 val
* var105
/* : MType */;
108 val
* var106
/* : String */;
109 val
* var107
/* : Array[Object] */;
110 long var108
/* : Int */;
111 val
* var109
/* : NativeArray[Object] */;
112 val
* var110
/* : String */;
113 static val
* varonce111
;
114 val
* var112
/* : String */;
115 char* var113
/* : NativeString */;
116 long var114
/* : Int */;
117 val
* var115
/* : FlatString */;
118 val
* var116
/* : MType */;
119 val
* var118
/* : MType */;
120 val
* var119
/* : String */;
121 static val
* varonce120
;
122 val
* var121
/* : String */;
123 char* var122
/* : NativeString */;
124 long var123
/* : Int */;
125 val
* var124
/* : FlatString */;
126 val
* var125
/* : Array[Object] */;
127 long var126
/* : Int */;
128 val
* var127
/* : NativeArray[Object] */;
129 val
* var128
/* : String */;
134 var2
= "var_class_name";
136 var4
= string__NativeString__to_s_with_length(var2
, var3
);
141 var5
= abstract_compiler__AbstractCompilerVisitor__get_name(self
, var1
);
147 var8
= "const char* ";
149 var10
= string__NativeString__to_s_with_length(var8
, var9
);
158 var15
= string__NativeString__to_s_with_length(var13
, var14
);
162 var16
= NEW_array__Array(&type_array__Arraykernel__Object
);
163 { /* var16 = array_instance Array[Object] */
165 var18
= NEW_array__NativeArray(var17
, &type_array__NativeArraykernel__Object
);
166 ((struct instance_array__NativeArray
*)var18
)->values
[0] = (val
*) var7
;
167 ((struct instance_array__NativeArray
*)var18
)->values
[1] = (val
*) var_res
;
168 ((struct instance_array__NativeArray
*)var18
)->values
[2] = (val
*) var12
;
170 ((void (*)(val
*, val
*, long))(var16
->class->vft
[COLOR_array__Array__with_native
]))(var16
, var18
, var17
) /* with_native on <var16:Array[Object]>*/;
174 var19
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_string__Object__to_s
]))(var16
) /* to_s on <var16:Array[Object]>*/;
177 abstract_compiler__AbstractCompilerVisitor__add_decl(self
, var19
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:SeparateCompilerVisitor>*/
180 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
181 var22
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
182 if (unlikely(var22
== NULL
)) {
183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
184 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
192 var23
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var20
) /* ctype on <var20:MType>*/;
199 var28
= string__NativeString__to_s_with_length(var26
, var27
);
204 var30
= string__FlatString___61d_61d(var23
, var25
);
213 var35
= string__NativeString__to_s_with_length(var33
, var34
);
220 var38
= " == NULL ? \"null\" : ";
222 var40
= string__NativeString__to_s_with_length(var38
, var39
);
229 var43
= "->type->name;";
231 var45
= string__NativeString__to_s_with_length(var43
, var44
);
235 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
236 { /* var46 = array_instance Array[Object] */
238 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
239 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var_res
;
240 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var32
;
241 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var_value
;
242 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var37
;
243 ((struct instance_array__NativeArray
*)var48
)->values
[4] = (val
*) var_value
;
244 ((struct instance_array__NativeArray
*)var48
)->values
[5] = (val
*) var42
;
246 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
250 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
253 abstract_compiler__AbstractCompilerVisitor__add(self
, var49
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
257 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
258 var53
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
259 if (unlikely(var53
== NULL
)) {
260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
261 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
268 /* <var51:MType> isa MClassType */
269 cltype
= type_model__MClassType
.color
;
270 idtype
= type_model__MClassType
.id
;
271 if(cltype
>= var51
->type
->table_size
) {
274 var54
= var51
->type
->type_table
[cltype
] == idtype
;
279 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
280 var57
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
281 if (unlikely(var57
== NULL
)) {
282 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
283 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
290 /* <var55:MType> isa MClassType */
291 cltype59
= type_model__MClassType
.color
;
292 idtype60
= type_model__MClassType
.id
;
293 if(cltype59
>= var55
->type
->table_size
) {
296 var58
= var55
->type
->type_table
[cltype59
] == idtype60
;
298 if (unlikely(!var58
)) {
299 var_class_name
= var55
== NULL ?
"null" : var55
->type
->name
;
300 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
301 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1481);
305 { /* Inline model#MClassType#mclass (var55) on <var55:MType(MClassType)> */
306 var63
= var55
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var55:MType(MClassType)> */
307 if (unlikely(var63
== NULL
)) {
308 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
309 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
317 { /* Inline model#MClass#kind (var61) on <var61:MClass> */
318 var66
= var61
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var61:MClass> */
319 if (unlikely(var66
== NULL
)) {
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
321 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
329 var67
= model__Object__extern_kind(self
);
332 { /* Inline kernel#Object#== (var64,var67) on <var64:MClassKind> */
335 { /* Inline kernel#Object#is_same_instance (var64,var_other) on <var64:MClassKind> */
336 var73
= var64
== var_other
;
358 var78
= string__NativeString__to_s_with_length(var76
, var77
);
363 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
364 var81
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
365 if (unlikely(var81
== NULL
)) {
366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
367 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
374 /* <var79:MType> isa MClassType */
375 cltype83
= type_model__MClassType
.color
;
376 idtype84
= type_model__MClassType
.id
;
377 if(cltype83
>= var79
->type
->table_size
) {
380 var82
= var79
->type
->type_table
[cltype83
] == idtype84
;
382 if (unlikely(!var82
)) {
383 var_class_name85
= var79
== NULL ?
"null" : var79
->type
->name
;
384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name85
);
385 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1482);
389 { /* Inline model#MClassType#mclass (var79) on <var79:MType(MClassType)> */
390 var88
= var79
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var79:MType(MClassType)> */
391 if (unlikely(var88
== NULL
)) {
392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
393 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
405 var93
= string__NativeString__to_s_with_length(var91
, var92
);
409 var94
= NEW_array__Array(&type_array__Arraykernel__Object
);
410 { /* var94 = array_instance Array[Object] */
412 var96
= NEW_array__NativeArray(var95
, &type_array__NativeArraykernel__Object
);
413 ((struct instance_array__NativeArray
*)var96
)->values
[0] = (val
*) var_res
;
414 ((struct instance_array__NativeArray
*)var96
)->values
[1] = (val
*) var75
;
415 ((struct instance_array__NativeArray
*)var96
)->values
[2] = (val
*) var86
;
416 ((struct instance_array__NativeArray
*)var96
)->values
[3] = (val
*) var90
;
418 ((void (*)(val
*, val
*, long))(var94
->class->vft
[COLOR_array__Array__with_native
]))(var94
, var96
, var95
) /* with_native on <var94:Array[Object]>*/;
422 var97
= ((val
* (*)(val
*))(var94
->class->vft
[COLOR_string__Object__to_s
]))(var94
) /* to_s on <var94:Array[Object]>*/;
425 abstract_compiler__AbstractCompilerVisitor__add(self
, var97
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
433 var102
= string__NativeString__to_s_with_length(var100
, var101
);
438 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
439 var105
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
440 if (unlikely(var105
== NULL
)) {
441 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
442 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
446 RET_LABEL104
:(void)0;
450 var106
= ((val
* (*)(val
*))(var103
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var103
) /* c_name on <var103:MType>*/;
452 var107
= NEW_array__Array(&type_array__Arraykernel__Object
);
453 { /* var107 = array_instance Array[Object] */
455 var109
= NEW_array__NativeArray(var108
, &type_array__NativeArraykernel__Object
);
456 ((struct instance_array__NativeArray
*)var109
)->values
[0] = (val
*) var99
;
457 ((struct instance_array__NativeArray
*)var109
)->values
[1] = (val
*) var106
;
459 ((void (*)(val
*, val
*, long))(var107
->class->vft
[COLOR_array__Array__with_native
]))(var107
, var109
, var108
) /* with_native on <var107:Array[Object]>*/;
463 var110
= ((val
* (*)(val
*))(var107
->class->vft
[COLOR_string__Object__to_s
]))(var107
) /* to_s on <var107:Array[Object]>*/;
466 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var110
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
473 var115
= string__NativeString__to_s_with_length(var113
, var114
);
478 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value) on <var_value:RuntimeVariable> */
479 var118
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value:RuntimeVariable> */
480 if (unlikely(var118
== NULL
)) {
481 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
482 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
486 RET_LABEL117
:(void)0;
490 var119
= ((val
* (*)(val
*))(var116
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var116
) /* c_name on <var116:MType>*/;
497 var124
= string__NativeString__to_s_with_length(var122
, var123
);
501 var125
= NEW_array__Array(&type_array__Arraykernel__Object
);
502 { /* var125 = array_instance Array[Object] */
504 var127
= NEW_array__NativeArray(var126
, &type_array__NativeArraykernel__Object
);
505 ((struct instance_array__NativeArray
*)var127
)->values
[0] = (val
*) var_res
;
506 ((struct instance_array__NativeArray
*)var127
)->values
[1] = (val
*) var112
;
507 ((struct instance_array__NativeArray
*)var127
)->values
[2] = (val
*) var119
;
508 ((struct instance_array__NativeArray
*)var127
)->values
[3] = (val
*) var121
;
510 ((void (*)(val
*, val
*, long))(var125
->class->vft
[COLOR_array__Array__with_native
]))(var125
, var127
, var126
) /* with_native on <var125:Array[Object]>*/;
514 var128
= ((val
* (*)(val
*))(var125
->class->vft
[COLOR_string__Object__to_s
]))(var125
) /* to_s on <var125:Array[Object]>*/;
517 abstract_compiler__AbstractCompilerVisitor__add(self
, var128
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
526 /* method separate_compiler#SeparateCompilerVisitor#class_name_string for (self: Object, RuntimeVariable): String */
527 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__class_name_string(val
* self
, val
* p0
) {
528 val
* var
/* : String */;
529 val
* var1
/* : String */;
530 var1
= separate_compiler__SeparateCompilerVisitor__class_name_string(self
, p0
);
535 /* method separate_compiler#SeparateCompilerVisitor#equal_test for (self: SeparateCompilerVisitor, RuntimeVariable, RuntimeVariable): RuntimeVariable */
536 val
* separate_compiler__SeparateCompilerVisitor__equal_test(val
* self
, val
* p0
, val
* p1
) {
537 val
* var
/* : RuntimeVariable */;
538 val
* var_value1
/* var value1: RuntimeVariable */;
539 val
* var_value2
/* var value2: RuntimeVariable */;
540 val
* var1
/* : MClassType */;
541 val
* var2
/* : RuntimeVariable */;
542 val
* var_res
/* var res: RuntimeVariable */;
543 short int var3
/* : Bool */;
544 val
* var4
/* : MType */;
545 val
* var6
/* : MType */;
546 val
* var7
/* : String */;
548 val
* var8
/* : String */;
549 char* var9
/* : NativeString */;
550 long var10
/* : Int */;
551 val
* var11
/* : FlatString */;
552 short int var12
/* : Bool */;
553 short int var13
/* : Bool */;
554 val
* var_other
/* var other: nullable Object */;
555 short int var15
/* : Bool */;
556 short int var16
/* : Bool */;
557 short int var17
/* : Bool */;
558 short int var_
/* var : Bool */;
559 val
* var18
/* : MType */;
560 val
* var20
/* : MType */;
561 val
* var21
/* : String */;
562 static val
* varonce22
;
563 val
* var23
/* : String */;
564 char* var24
/* : NativeString */;
565 long var25
/* : Int */;
566 val
* var26
/* : FlatString */;
567 short int var27
/* : Bool */;
568 short int var28
/* : Bool */;
569 val
* var_tmp
/* var tmp: RuntimeVariable */;
570 val
* var29
/* : MType */;
571 val
* var31
/* : MType */;
572 val
* var32
/* : String */;
573 static val
* varonce33
;
574 val
* var34
/* : String */;
575 char* var35
/* : NativeString */;
576 long var36
/* : Int */;
577 val
* var37
/* : FlatString */;
578 short int var38
/* : Bool */;
579 short int var39
/* : Bool */;
580 short int var41
/* : Bool */;
581 short int var42
/* : Bool */;
582 short int var43
/* : Bool */;
583 val
* var44
/* : MType */;
584 val
* var46
/* : MType */;
585 val
* var47
/* : MType */;
586 val
* var49
/* : MType */;
587 short int var50
/* : Bool */;
588 short int var51
/* : Bool */;
589 val
* var_other53
/* var other: nullable Object */;
590 short int var54
/* : Bool */;
591 short int var56
/* : Bool */;
592 static val
* varonce57
;
593 val
* var58
/* : String */;
594 char* var59
/* : NativeString */;
595 long var60
/* : Int */;
596 val
* var61
/* : FlatString */;
597 static val
* varonce62
;
598 val
* var63
/* : String */;
599 char* var64
/* : NativeString */;
600 long var65
/* : Int */;
601 val
* var66
/* : FlatString */;
602 static val
* varonce67
;
603 val
* var68
/* : String */;
604 char* var69
/* : NativeString */;
605 long var70
/* : Int */;
606 val
* var71
/* : FlatString */;
607 val
* var72
/* : Array[Object] */;
608 long var73
/* : Int */;
609 val
* var74
/* : NativeArray[Object] */;
610 val
* var75
/* : String */;
611 val
* var76
/* : MType */;
612 val
* var78
/* : MType */;
613 val
* var79
/* : String */;
614 static val
* varonce80
;
615 val
* var81
/* : String */;
616 char* var82
/* : NativeString */;
617 long var83
/* : Int */;
618 val
* var84
/* : FlatString */;
619 short int var85
/* : Bool */;
620 short int var86
/* : Bool */;
621 short int var88
/* : Bool */;
622 short int var89
/* : Bool */;
623 short int var90
/* : Bool */;
624 static val
* varonce91
;
625 val
* var92
/* : String */;
626 char* var93
/* : NativeString */;
627 long var94
/* : Int */;
628 val
* var95
/* : FlatString */;
629 val
* var96
/* : MType */;
630 val
* var98
/* : MType */;
631 static val
* varonce99
;
632 val
* var100
/* : String */;
633 char* var101
/* : NativeString */;
634 long var102
/* : Int */;
635 val
* var103
/* : FlatString */;
636 val
* var104
/* : MType */;
637 val
* var106
/* : MType */;
638 static val
* varonce107
;
639 val
* var108
/* : String */;
640 char* var109
/* : NativeString */;
641 long var110
/* : Int */;
642 val
* var111
/* : FlatString */;
643 val
* var112
/* : Array[Object] */;
644 long var113
/* : Int */;
645 val
* var114
/* : NativeArray[Object] */;
646 val
* var115
/* : String */;
647 val
* var116
/* : MType */;
648 val
* var118
/* : MType */;
649 short int var119
/* : Bool */;
652 const char* var_class_name
;
653 val
* var_mtype1
/* var mtype1: MClassType */;
654 static val
* varonce120
;
655 val
* var121
/* : String */;
656 char* var122
/* : NativeString */;
657 long var123
/* : Int */;
658 val
* var124
/* : FlatString */;
659 val
* var125
/* : String */;
660 val
* var126
/* : Array[Object] */;
661 long var127
/* : Int */;
662 val
* var128
/* : NativeArray[Object] */;
663 val
* var129
/* : String */;
664 static val
* varonce130
;
665 val
* var131
/* : String */;
666 char* var132
/* : NativeString */;
667 long var133
/* : Int */;
668 val
* var134
/* : FlatString */;
669 static val
* varonce135
;
670 val
* var136
/* : String */;
671 char* var137
/* : NativeString */;
672 long var138
/* : Int */;
673 val
* var139
/* : FlatString */;
674 static val
* varonce140
;
675 val
* var141
/* : String */;
676 char* var142
/* : NativeString */;
677 long var143
/* : Int */;
678 val
* var144
/* : FlatString */;
679 val
* var145
/* : String */;
680 static val
* varonce146
;
681 val
* var147
/* : String */;
682 char* var148
/* : NativeString */;
683 long var149
/* : Int */;
684 val
* var150
/* : FlatString */;
685 val
* var151
/* : Array[Object] */;
686 long var152
/* : Int */;
687 val
* var153
/* : NativeArray[Object] */;
688 val
* var154
/* : String */;
689 static val
* varonce155
;
690 val
* var156
/* : String */;
691 char* var157
/* : NativeString */;
692 long var158
/* : Int */;
693 val
* var159
/* : FlatString */;
694 static val
* varonce160
;
695 val
* var161
/* : String */;
696 char* var162
/* : NativeString */;
697 long var163
/* : Int */;
698 val
* var164
/* : FlatString */;
699 val
* var165
/* : Array[Object] */;
700 long var166
/* : Int */;
701 val
* var167
/* : NativeArray[Object] */;
702 val
* var168
/* : String */;
703 static val
* varonce169
;
704 val
* var170
/* : String */;
705 char* var171
/* : NativeString */;
706 long var172
/* : Int */;
707 val
* var173
/* : FlatString */;
708 val
* var174
/* : MType */;
709 val
* var176
/* : MType */;
710 val
* var177
/* : RuntimeVariable */;
711 static val
* varonce178
;
712 val
* var179
/* : String */;
713 char* var180
/* : NativeString */;
714 long var181
/* : Int */;
715 val
* var182
/* : FlatString */;
716 static val
* varonce183
;
717 val
* var184
/* : String */;
718 char* var185
/* : NativeString */;
719 long var186
/* : Int */;
720 val
* var187
/* : FlatString */;
721 val
* var188
/* : Array[Object] */;
722 long var189
/* : Int */;
723 val
* var190
/* : NativeArray[Object] */;
724 val
* var191
/* : String */;
725 static val
* varonce192
;
726 val
* var193
/* : String */;
727 char* var194
/* : NativeString */;
728 long var195
/* : Int */;
729 val
* var196
/* : FlatString */;
730 short int var197
/* : Bool */;
731 short int var_maybe_null
/* var maybe_null: Bool */;
732 val
* var198
/* : Array[String] */;
733 val
* var_test
/* var test: Array[String] */;
734 val
* var199
/* : MType */;
735 val
* var201
/* : MType */;
736 val
* var_t1
/* var t1: MType */;
737 short int var202
/* : Bool */;
740 static val
* varonce205
;
741 val
* var206
/* : String */;
742 char* var207
/* : NativeString */;
743 long var208
/* : Int */;
744 val
* var209
/* : FlatString */;
745 val
* var210
/* : Array[Object] */;
746 long var211
/* : Int */;
747 val
* var212
/* : NativeArray[Object] */;
748 val
* var213
/* : String */;
749 val
* var214
/* : MType */;
750 val
* var216
/* : MType */;
751 short int var217
/* : Bool */;
752 val
* var218
/* : MType */;
753 val
* var220
/* : MType */;
754 val
* var_t2
/* var t2: MType */;
755 short int var221
/* : Bool */;
758 static val
* varonce224
;
759 val
* var225
/* : String */;
760 char* var226
/* : NativeString */;
761 long var227
/* : Int */;
762 val
* var228
/* : FlatString */;
763 val
* var229
/* : Array[Object] */;
764 long var230
/* : Int */;
765 val
* var231
/* : NativeArray[Object] */;
766 val
* var232
/* : String */;
767 val
* var233
/* : MType */;
768 val
* var235
/* : MType */;
769 short int var236
/* : Bool */;
770 short int var237
/* : Bool */;
771 short int var_incompatible
/* var incompatible: Bool */;
772 val
* var238
/* : String */;
773 static val
* varonce239
;
774 val
* var240
/* : String */;
775 char* var241
/* : NativeString */;
776 long var242
/* : Int */;
777 val
* var243
/* : FlatString */;
778 short int var244
/* : Bool */;
779 short int var245
/* : Bool */;
780 short int var247
/* : Bool */;
781 short int var248
/* : Bool */;
782 short int var249
/* : Bool */;
783 val
* var_primitive
/* var primitive: nullable Object */;
784 short int var250
/* : Bool */;
785 short int var251
/* : Bool */;
786 short int var253
/* : Bool */;
787 short int var255
/* : Bool */;
788 val
* var256
/* : String */;
789 static val
* varonce257
;
790 val
* var258
/* : String */;
791 char* var259
/* : NativeString */;
792 long var260
/* : Int */;
793 val
* var261
/* : FlatString */;
794 short int var262
/* : Bool */;
795 short int var263
/* : Bool */;
796 short int var265
/* : Bool */;
797 short int var266
/* : Bool */;
798 short int var267
/* : Bool */;
799 short int var268
/* : Bool */;
800 short int var269
/* : Bool */;
801 static val
* varonce270
;
802 val
* var271
/* : String */;
803 char* var272
/* : NativeString */;
804 long var273
/* : Int */;
805 val
* var274
/* : FlatString */;
806 static val
* varonce275
;
807 val
* var276
/* : String */;
808 char* var277
/* : NativeString */;
809 long var278
/* : Int */;
810 val
* var279
/* : FlatString */;
811 val
* var280
/* : Array[Object] */;
812 long var281
/* : Int */;
813 val
* var282
/* : NativeArray[Object] */;
814 val
* var283
/* : String */;
815 short int var284
/* : Bool */;
816 val
* var285
/* : String */;
817 static val
* varonce286
;
818 val
* var287
/* : String */;
819 char* var288
/* : NativeString */;
820 long var289
/* : Int */;
821 val
* var290
/* : FlatString */;
822 short int var291
/* : Bool */;
823 short int var292
/* : Bool */;
824 short int var294
/* : Bool */;
825 short int var295
/* : Bool */;
826 short int var296
/* : Bool */;
827 short int var297
/* : Bool */;
828 static val
* varonce298
;
829 val
* var299
/* : String */;
830 char* var300
/* : NativeString */;
831 long var301
/* : Int */;
832 val
* var302
/* : FlatString */;
833 static val
* varonce303
;
834 val
* var304
/* : String */;
835 char* var305
/* : NativeString */;
836 long var306
/* : Int */;
837 val
* var307
/* : FlatString */;
838 val
* var308
/* : Array[Object] */;
839 long var309
/* : Int */;
840 val
* var310
/* : NativeArray[Object] */;
841 val
* var311
/* : String */;
842 short int var312
/* : Bool */;
843 val
* var313
/* : null */;
844 static val
* varonce314
;
845 val
* var315
/* : String */;
846 char* var316
/* : NativeString */;
847 long var317
/* : Int */;
848 val
* var318
/* : FlatString */;
849 static val
* varonce319
;
850 val
* var320
/* : String */;
851 char* var321
/* : NativeString */;
852 long var322
/* : Int */;
853 val
* var323
/* : FlatString */;
854 static val
* varonce324
;
855 val
* var325
/* : String */;
856 char* var326
/* : NativeString */;
857 long var327
/* : Int */;
858 val
* var328
/* : FlatString */;
859 static val
* varonce329
;
860 val
* var330
/* : String */;
861 char* var331
/* : NativeString */;
862 long var332
/* : Int */;
863 val
* var333
/* : FlatString */;
864 static val
* varonce334
;
865 val
* var335
/* : String */;
866 char* var336
/* : NativeString */;
867 long var337
/* : Int */;
868 val
* var338
/* : FlatString */;
869 val
* var339
/* : Array[Object] */;
870 long var340
/* : Int */;
871 val
* var341
/* : NativeArray[Object] */;
872 val
* var342
/* : String */;
873 static val
* varonce343
;
874 val
* var344
/* : String */;
875 char* var345
/* : NativeString */;
876 long var346
/* : Int */;
877 val
* var347
/* : FlatString */;
878 static val
* varonce348
;
879 val
* var349
/* : String */;
880 char* var350
/* : NativeString */;
881 long var351
/* : Int */;
882 val
* var352
/* : FlatString */;
883 static val
* varonce353
;
884 val
* var354
/* : String */;
885 char* var355
/* : NativeString */;
886 long var356
/* : Int */;
887 val
* var357
/* : FlatString */;
888 val
* var358
/* : Array[Object] */;
889 long var359
/* : Int */;
890 val
* var360
/* : NativeArray[Object] */;
891 val
* var361
/* : String */;
892 val
* var362
/* : null */;
893 short int var363
/* : Bool */;
894 short int var364
/* : Bool */;
895 short int var366
/* : Bool */;
896 short int var367
/* : Bool */;
897 short int var368
/* : Bool */;
898 static val
* varonce369
;
899 val
* var370
/* : String */;
900 char* var371
/* : NativeString */;
901 long var372
/* : Int */;
902 val
* var373
/* : FlatString */;
903 val
* var374
/* : String */;
904 static val
* varonce375
;
905 val
* var376
/* : String */;
906 char* var377
/* : NativeString */;
907 long var378
/* : Int */;
908 val
* var379
/* : FlatString */;
909 static val
* varonce380
;
910 val
* var381
/* : String */;
911 char* var382
/* : NativeString */;
912 long var383
/* : Int */;
913 val
* var384
/* : FlatString */;
914 val
* var385
/* : String */;
915 static val
* varonce386
;
916 val
* var387
/* : String */;
917 char* var388
/* : NativeString */;
918 long var389
/* : Int */;
919 val
* var390
/* : FlatString */;
920 static val
* varonce391
;
921 val
* var392
/* : String */;
922 char* var393
/* : NativeString */;
923 long var394
/* : Int */;
924 val
* var395
/* : FlatString */;
925 val
* var396
/* : Array[Object] */;
926 long var397
/* : Int */;
927 val
* var398
/* : NativeArray[Object] */;
928 val
* var399
/* : String */;
929 short int var400
/* : Bool */;
930 short int var401
/* : Bool */;
931 short int var_402
/* var : Bool */;
932 short int var403
/* : Bool */;
933 static val
* varonce404
;
934 val
* var405
/* : String */;
935 char* var406
/* : NativeString */;
936 long var407
/* : Int */;
937 val
* var408
/* : FlatString */;
938 static val
* varonce409
;
939 val
* var410
/* : String */;
940 char* var411
/* : NativeString */;
941 long var412
/* : Int */;
942 val
* var413
/* : FlatString */;
943 val
* var414
/* : Array[Object] */;
944 long var415
/* : Int */;
945 val
* var416
/* : NativeArray[Object] */;
946 val
* var417
/* : String */;
947 val
* var418
/* : Array[String] */;
948 val
* var_s
/* var s: Array[String] */;
949 val
* var419
/* : AbstractCompiler */;
950 val
* var421
/* : AbstractCompiler */;
951 val
* var422
/* : HashMap[MClass, Int] */;
952 val
* var424
/* : HashMap[MClass, Int] */;
953 val
* var425
/* : HashMapIterator[Object, nullable Object] */;
954 short int var426
/* : Bool */;
955 val
* var427
/* : Object */;
956 val
* var_t
/* var t: MClass */;
957 val
* var428
/* : nullable Object */;
958 long var_v
/* var v: Int */;
959 long var429
/* : Int */;
960 static val
* varonce430
;
961 val
* var431
/* : String */;
962 char* var432
/* : NativeString */;
963 long var433
/* : Int */;
964 val
* var434
/* : FlatString */;
965 static val
* varonce435
;
966 val
* var436
/* : String */;
967 char* var437
/* : NativeString */;
968 long var438
/* : Int */;
969 val
* var439
/* : FlatString */;
970 static val
* varonce440
;
971 val
* var441
/* : String */;
972 char* var442
/* : NativeString */;
973 long var443
/* : Int */;
974 val
* var444
/* : FlatString */;
975 val
* var445
/* : String */;
976 static val
* varonce446
;
977 val
* var447
/* : String */;
978 char* var448
/* : NativeString */;
979 long var449
/* : Int */;
980 val
* var450
/* : FlatString */;
981 static val
* varonce451
;
982 val
* var452
/* : String */;
983 char* var453
/* : NativeString */;
984 long var454
/* : Int */;
985 val
* var455
/* : FlatString */;
986 val
* var456
/* : String */;
987 static val
* varonce457
;
988 val
* var458
/* : String */;
989 char* var459
/* : NativeString */;
990 long var460
/* : Int */;
991 val
* var461
/* : FlatString */;
992 static val
* varonce462
;
993 val
* var463
/* : String */;
994 char* var464
/* : NativeString */;
995 long var465
/* : Int */;
996 val
* var466
/* : FlatString */;
997 val
* var467
/* : Array[Object] */;
998 long var468
/* : Int */;
999 val
* var469
/* : NativeArray[Object] */;
1000 val
* var470
/* : Object */;
1001 val
* var471
/* : String */;
1002 static val
* varonce472
;
1003 val
* var473
/* : String */;
1004 char* var474
/* : NativeString */;
1005 long var475
/* : Int */;
1006 val
* var476
/* : FlatString */;
1007 static val
* varonce477
;
1008 val
* var478
/* : String */;
1009 char* var479
/* : NativeString */;
1010 long var480
/* : Int */;
1011 val
* var481
/* : FlatString */;
1012 val
* var482
/* : String */;
1013 static val
* varonce483
;
1014 val
* var484
/* : String */;
1015 char* var485
/* : NativeString */;
1016 long var486
/* : Int */;
1017 val
* var487
/* : FlatString */;
1018 val
* var488
/* : Array[Object] */;
1019 long var489
/* : Int */;
1020 val
* var490
/* : NativeArray[Object] */;
1021 val
* var491
/* : String */;
1022 static val
* varonce492
;
1023 val
* var493
/* : String */;
1024 char* var494
/* : NativeString */;
1025 long var495
/* : Int */;
1026 val
* var496
/* : FlatString */;
1027 static val
* varonce497
;
1028 val
* var498
/* : String */;
1029 char* var499
/* : NativeString */;
1030 long var500
/* : Int */;
1031 val
* var501
/* : FlatString */;
1032 static val
* varonce502
;
1033 val
* var503
/* : String */;
1034 char* var504
/* : NativeString */;
1035 long var505
/* : Int */;
1036 val
* var506
/* : FlatString */;
1037 val
* var507
/* : Array[Object] */;
1038 long var508
/* : Int */;
1039 val
* var509
/* : NativeArray[Object] */;
1040 val
* var510
/* : String */;
1041 static val
* varonce511
;
1042 val
* var512
/* : String */;
1043 char* var513
/* : NativeString */;
1044 long var514
/* : Int */;
1045 val
* var515
/* : FlatString */;
1046 static val
* varonce516
;
1047 val
* var517
/* : String */;
1048 char* var518
/* : NativeString */;
1049 long var519
/* : Int */;
1050 val
* var520
/* : FlatString */;
1051 static val
* varonce521
;
1052 val
* var522
/* : String */;
1053 char* var523
/* : NativeString */;
1054 long var524
/* : Int */;
1055 val
* var525
/* : FlatString */;
1056 static val
* varonce526
;
1057 val
* var527
/* : String */;
1058 char* var528
/* : NativeString */;
1059 long var529
/* : Int */;
1060 val
* var530
/* : FlatString */;
1061 val
* var531
/* : String */;
1062 static val
* varonce532
;
1063 val
* var533
/* : String */;
1064 char* var534
/* : NativeString */;
1065 long var535
/* : Int */;
1066 val
* var536
/* : FlatString */;
1067 val
* var537
/* : Array[Object] */;
1068 long var538
/* : Int */;
1069 val
* var539
/* : NativeArray[Object] */;
1070 val
* var540
/* : String */;
1074 var1
= abstract_compiler__AbstractCompilerVisitor__bool_type(self
);
1077 var2
= abstract_compiler__AbstractCompilerVisitor__new_var(self
, var1
);
1081 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
1082 var6
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
1083 if (unlikely(var6
== NULL
)) {
1084 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1085 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1093 var7
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var4
) /* ctype on <var4:MType>*/;
1100 var11
= string__NativeString__to_s_with_length(var9
, var10
);
1105 { /* Inline kernel#Object#!= (var7,var8) on <var7:String> */
1108 var16
= ((short int (*)(val
*, val
*))(var7
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var7
, var_other
) /* == on <var7:String>*/;
1114 RET_LABEL14
:(void)0;
1121 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
1122 var20
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
1123 if (unlikely(var20
== NULL
)) {
1124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1125 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1129 RET_LABEL19
:(void)0;
1133 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var18
) /* ctype on <var18:MType>*/;
1140 var26
= string__NativeString__to_s_with_length(var24
, var25
);
1145 var28
= string__FlatString___61d_61d(var21
, var23
);
1153 var_tmp
= var_value1
;
1154 var_value1
= var_value2
;
1155 var_value2
= var_tmp
;
1159 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
1160 var31
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
1161 if (unlikely(var31
== NULL
)) {
1162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1163 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1167 RET_LABEL30
:(void)0;
1171 var32
= ((val
* (*)(val
*))(var29
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var29
) /* ctype on <var29:MType>*/;
1178 var37
= string__NativeString__to_s_with_length(var35
, var36
);
1183 { /* Inline kernel#Object#!= (var32,var34) on <var32:String> */
1186 var42
= ((short int (*)(val
*, val
*))(var32
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var32
, var_other
) /* == on <var32:String>*/;
1192 RET_LABEL40
:(void)0;
1198 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
1199 var46
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
1200 if (unlikely(var46
== NULL
)) {
1201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1202 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1206 RET_LABEL45
:(void)0;
1210 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
1211 var49
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
1212 if (unlikely(var49
== NULL
)) {
1213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1214 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1218 RET_LABEL48
:(void)0;
1222 { /* Inline kernel#Object#== (var44,var47) on <var44:MType> */
1223 var_other53
= var47
;
1225 { /* Inline kernel#Object#is_same_instance (var44,var_other53) on <var44:MType> */
1226 var56
= var44
== var_other53
;
1229 RET_LABEL55
:(void)0;
1234 RET_LABEL52
:(void)0;
1244 var61
= string__NativeString__to_s_with_length(var59
, var60
);
1253 var66
= string__NativeString__to_s_with_length(var64
, var65
);
1262 var71
= string__NativeString__to_s_with_length(var69
, var70
);
1266 var72
= NEW_array__Array(&type_array__Arraykernel__Object
);
1267 { /* var72 = array_instance Array[Object] */
1269 var74
= NEW_array__NativeArray(var73
, &type_array__NativeArraykernel__Object
);
1270 ((struct instance_array__NativeArray
*)var74
)->values
[0] = (val
*) var_res
;
1271 ((struct instance_array__NativeArray
*)var74
)->values
[1] = (val
*) var58
;
1272 ((struct instance_array__NativeArray
*)var74
)->values
[2] = (val
*) var_value1
;
1273 ((struct instance_array__NativeArray
*)var74
)->values
[3] = (val
*) var63
;
1274 ((struct instance_array__NativeArray
*)var74
)->values
[4] = (val
*) var_value2
;
1275 ((struct instance_array__NativeArray
*)var74
)->values
[5] = (val
*) var68
;
1277 ((void (*)(val
*, val
*, long))(var72
->class->vft
[COLOR_array__Array__with_native
]))(var72
, var74
, var73
) /* with_native on <var72:Array[Object]>*/;
1281 var75
= ((val
* (*)(val
*))(var72
->class->vft
[COLOR_string__Object__to_s
]))(var72
) /* to_s on <var72:Array[Object]>*/;
1284 abstract_compiler__AbstractCompilerVisitor__add(self
, var75
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1288 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
1289 var78
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
1290 if (unlikely(var78
== NULL
)) {
1291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1292 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1296 RET_LABEL77
:(void)0;
1300 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var76
) /* ctype on <var76:MType>*/;
1307 var84
= string__NativeString__to_s_with_length(var82
, var83
);
1312 { /* Inline kernel#Object#!= (var79,var81) on <var79:String> */
1315 var89
= ((short int (*)(val
*, val
*))(var79
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var79
, var_other
) /* == on <var79:String>*/;
1321 RET_LABEL87
:(void)0;
1329 var93
= " = 0; /* incompatible types ";
1331 var95
= string__NativeString__to_s_with_length(var93
, var94
);
1336 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
1337 var98
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
1338 if (unlikely(var98
== NULL
)) {
1339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1340 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1344 RET_LABEL97
:(void)0;
1352 var103
= string__NativeString__to_s_with_length(var101
, var102
);
1357 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value2) on <var_value2:RuntimeVariable> */
1358 var106
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value2:RuntimeVariable> */
1359 if (unlikely(var106
== NULL
)) {
1360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1361 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1365 RET_LABEL105
:(void)0;
1369 var108
= varonce107
;
1373 var111
= string__NativeString__to_s_with_length(var109
, var110
);
1375 varonce107
= var108
;
1377 var112
= NEW_array__Array(&type_array__Arraykernel__Object
);
1378 { /* var112 = array_instance Array[Object] */
1380 var114
= NEW_array__NativeArray(var113
, &type_array__NativeArraykernel__Object
);
1381 ((struct instance_array__NativeArray
*)var114
)->values
[0] = (val
*) var_res
;
1382 ((struct instance_array__NativeArray
*)var114
)->values
[1] = (val
*) var92
;
1383 ((struct instance_array__NativeArray
*)var114
)->values
[2] = (val
*) var96
;
1384 ((struct instance_array__NativeArray
*)var114
)->values
[3] = (val
*) var100
;
1385 ((struct instance_array__NativeArray
*)var114
)->values
[4] = (val
*) var104
;
1386 ((struct instance_array__NativeArray
*)var114
)->values
[5] = (val
*) var108
;
1388 ((void (*)(val
*, val
*, long))(var112
->class->vft
[COLOR_array__Array__with_native
]))(var112
, var114
, var113
) /* with_native on <var112:Array[Object]>*/;
1392 var115
= ((val
* (*)(val
*))(var112
->class->vft
[COLOR_string__Object__to_s
]))(var112
) /* to_s on <var112:Array[Object]>*/;
1395 abstract_compiler__AbstractCompilerVisitor__add(self
, var115
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1399 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
1400 var118
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
1401 if (unlikely(var118
== NULL
)) {
1402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1403 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1407 RET_LABEL117
:(void)0;
1410 /* <var116:MType> isa MClassType */
1411 cltype
= type_model__MClassType
.color
;
1412 idtype
= type_model__MClassType
.id
;
1413 if(cltype
>= var116
->type
->table_size
) {
1416 var119
= var116
->type
->type_table
[cltype
] == idtype
;
1418 if (unlikely(!var119
)) {
1419 var_class_name
= var116
== NULL ?
"null" : var116
->type
->name
;
1420 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name
);
1421 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1504);
1424 var_mtype1
= var116
;
1426 var121
= varonce120
;
1430 var124
= string__NativeString__to_s_with_length(var122
, var123
);
1432 varonce120
= var121
;
1435 var125
= ((val
* (*)(val
*))(var_mtype1
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype1
) /* c_name on <var_mtype1:MClassType>*/;
1437 var126
= NEW_array__Array(&type_array__Arraykernel__Object
);
1438 { /* var126 = array_instance Array[Object] */
1440 var128
= NEW_array__NativeArray(var127
, &type_array__NativeArraykernel__Object
);
1441 ((struct instance_array__NativeArray
*)var128
)->values
[0] = (val
*) var121
;
1442 ((struct instance_array__NativeArray
*)var128
)->values
[1] = (val
*) var125
;
1444 ((void (*)(val
*, val
*, long))(var126
->class->vft
[COLOR_array__Array__with_native
]))(var126
, var128
, var127
) /* with_native on <var126:Array[Object]>*/;
1448 var129
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_string__Object__to_s
]))(var126
) /* to_s on <var126:Array[Object]>*/;
1451 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var129
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
1454 var131
= varonce130
;
1458 var134
= string__NativeString__to_s_with_length(var132
, var133
);
1460 varonce130
= var131
;
1463 var136
= varonce135
;
1465 var137
= " != NULL) && (";
1467 var139
= string__NativeString__to_s_with_length(var137
, var138
);
1469 varonce135
= var136
;
1472 var141
= varonce140
;
1474 var142
= "->class == &class_";
1476 var144
= string__NativeString__to_s_with_length(var142
, var143
);
1478 varonce140
= var141
;
1481 var145
= ((val
* (*)(val
*))(var_mtype1
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(var_mtype1
) /* c_name on <var_mtype1:MClassType>*/;
1484 var147
= varonce146
;
1488 var150
= string__NativeString__to_s_with_length(var148
, var149
);
1490 varonce146
= var147
;
1492 var151
= NEW_array__Array(&type_array__Arraykernel__Object
);
1493 { /* var151 = array_instance Array[Object] */
1495 var153
= NEW_array__NativeArray(var152
, &type_array__NativeArraykernel__Object
);
1496 ((struct instance_array__NativeArray
*)var153
)->values
[0] = (val
*) var_res
;
1497 ((struct instance_array__NativeArray
*)var153
)->values
[1] = (val
*) var131
;
1498 ((struct instance_array__NativeArray
*)var153
)->values
[2] = (val
*) var_value2
;
1499 ((struct instance_array__NativeArray
*)var153
)->values
[3] = (val
*) var136
;
1500 ((struct instance_array__NativeArray
*)var153
)->values
[4] = (val
*) var_value2
;
1501 ((struct instance_array__NativeArray
*)var153
)->values
[5] = (val
*) var141
;
1502 ((struct instance_array__NativeArray
*)var153
)->values
[6] = (val
*) var145
;
1503 ((struct instance_array__NativeArray
*)var153
)->values
[7] = (val
*) var147
;
1505 ((void (*)(val
*, val
*, long))(var151
->class->vft
[COLOR_array__Array__with_native
]))(var151
, var153
, var152
) /* with_native on <var151:Array[Object]>*/;
1509 var154
= ((val
* (*)(val
*))(var151
->class->vft
[COLOR_string__Object__to_s
]))(var151
) /* to_s on <var151:Array[Object]>*/;
1512 abstract_compiler__AbstractCompilerVisitor__add(self
, var154
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1515 var156
= varonce155
;
1519 var159
= string__NativeString__to_s_with_length(var157
, var158
);
1521 varonce155
= var156
;
1524 var161
= varonce160
;
1528 var164
= string__NativeString__to_s_with_length(var162
, var163
);
1530 varonce160
= var161
;
1532 var165
= NEW_array__Array(&type_array__Arraykernel__Object
);
1533 { /* var165 = array_instance Array[Object] */
1535 var167
= NEW_array__NativeArray(var166
, &type_array__NativeArraykernel__Object
);
1536 ((struct instance_array__NativeArray
*)var167
)->values
[0] = (val
*) var156
;
1537 ((struct instance_array__NativeArray
*)var167
)->values
[1] = (val
*) var_res
;
1538 ((struct instance_array__NativeArray
*)var167
)->values
[2] = (val
*) var161
;
1540 ((void (*)(val
*, val
*, long))(var165
->class->vft
[COLOR_array__Array__with_native
]))(var165
, var167
, var166
) /* with_native on <var165:Array[Object]>*/;
1544 var168
= ((val
* (*)(val
*))(var165
->class->vft
[COLOR_string__Object__to_s
]))(var165
) /* to_s on <var165:Array[Object]>*/;
1547 abstract_compiler__AbstractCompilerVisitor__add(self
, var168
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1550 var170
= varonce169
;
1554 var173
= string__NativeString__to_s_with_length(var171
, var172
);
1556 varonce169
= var170
;
1559 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_value1) on <var_value1:RuntimeVariable> */
1560 var176
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_value1:RuntimeVariable> */
1561 if (unlikely(var176
== NULL
)) {
1562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1563 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
1567 RET_LABEL175
:(void)0;
1571 var177
= separate_compiler__SeparateCompilerVisitor__autobox(self
, var_value2
, var174
);
1574 var179
= varonce178
;
1578 var182
= string__NativeString__to_s_with_length(var180
, var181
);
1580 varonce178
= var179
;
1583 var184
= varonce183
;
1587 var187
= string__NativeString__to_s_with_length(var185
, var186
);
1589 varonce183
= var184
;
1591 var188
= NEW_array__Array(&type_array__Arraykernel__Object
);
1592 { /* var188 = array_instance Array[Object] */
1594 var190
= NEW_array__NativeArray(var189
, &type_array__NativeArraykernel__Object
);
1595 ((struct instance_array__NativeArray
*)var190
)->values
[0] = (val
*) var_res
;
1596 ((struct instance_array__NativeArray
*)var190
)->values
[1] = (val
*) var170
;
1597 ((struct instance_array__NativeArray
*)var190
)->values
[2] = (val
*) var177
;
1598 ((struct instance_array__NativeArray
*)var190
)->values
[3] = (val
*) var179
;
1599 ((struct instance_array__NativeArray
*)var190
)->values
[4] = (val
*) var_value1
;
1600 ((struct instance_array__NativeArray
*)var190
)->values
[5] = (val
*) var184
;
1602 ((void (*)(val
*, val
*, long))(var188
->class->vft
[COLOR_array__Array__with_native
]))(var188
, var190
, var189
) /* with_native on <var188:Array[Object]>*/;
1606 var191
= ((val
* (*)(val
*))(var188
->class->vft
[COLOR_string__Object__to_s
]))(var188
) /* to_s on <var188:Array[Object]>*/;
1609 abstract_compiler__AbstractCompilerVisitor__add(self
, var191
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1612 var193
= varonce192
;
1616 var196
= string__NativeString__to_s_with_length(var194
, var195
);
1618 varonce192
= var193
;
1621 abstract_compiler__AbstractCompilerVisitor__add(self
, var193
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
1630 var_maybe_null
= var197
;
1631 var198
= NEW_array__Array(&type_array__Arraystring__String
);
1633 array__Array__init(var198
); /* Direct call array#Array#init on <var198:Array[String]>*/
1637 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value1) on <var_value1:RuntimeVariable> */
1638 var201
= var_value1
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value1:RuntimeVariable> */
1639 if (unlikely(var201
== NULL
)) {
1640 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1641 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
1645 RET_LABEL200
:(void)0;
1649 /* <var_t1:MType> isa MNullableType */
1650 cltype203
= type_model__MNullableType
.color
;
1651 idtype204
= type_model__MNullableType
.id
;
1652 if(cltype203
>= var_t1
->type
->table_size
) {
1655 var202
= var_t1
->type
->type_table
[cltype203
] == idtype204
;
1659 var206
= varonce205
;
1661 var207
= " != NULL";
1663 var209
= string__NativeString__to_s_with_length(var207
, var208
);
1665 varonce205
= var206
;
1667 var210
= NEW_array__Array(&type_array__Arraykernel__Object
);
1668 { /* var210 = array_instance Array[Object] */
1670 var212
= NEW_array__NativeArray(var211
, &type_array__NativeArraykernel__Object
);
1671 ((struct instance_array__NativeArray
*)var212
)->values
[0] = (val
*) var_value1
;
1672 ((struct instance_array__NativeArray
*)var212
)->values
[1] = (val
*) var206
;
1674 ((void (*)(val
*, val
*, long))(var210
->class->vft
[COLOR_array__Array__with_native
]))(var210
, var212
, var211
) /* with_native on <var210:Array[Object]>*/;
1678 var213
= ((val
* (*)(val
*))(var210
->class->vft
[COLOR_string__Object__to_s
]))(var210
) /* to_s on <var210:Array[Object]>*/;
1681 array__Array__add(var_test
, var213
); /* Direct call array#Array#add on <var_test:Array[String]>*/
1684 { /* Inline model#MNullableType#mtype (var_t1) on <var_t1:MType(MNullableType)> */
1685 var216
= var_t1
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_t1:MType(MNullableType)> */
1686 if (unlikely(var216
== NULL
)) {
1687 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1688 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
1692 RET_LABEL215
:(void)0;
1698 var_maybe_null
= var217
;
1701 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value2) on <var_value2:RuntimeVariable> */
1702 var220
= var_value2
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value2:RuntimeVariable> */
1703 if (unlikely(var220
== NULL
)) {
1704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1705 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
1709 RET_LABEL219
:(void)0;
1713 /* <var_t2:MType> isa MNullableType */
1714 cltype222
= type_model__MNullableType
.color
;
1715 idtype223
= type_model__MNullableType
.id
;
1716 if(cltype222
>= var_t2
->type
->table_size
) {
1719 var221
= var_t2
->type
->type_table
[cltype222
] == idtype223
;
1723 var225
= varonce224
;
1725 var226
= " != NULL";
1727 var228
= string__NativeString__to_s_with_length(var226
, var227
);
1729 varonce224
= var225
;
1731 var229
= NEW_array__Array(&type_array__Arraykernel__Object
);
1732 { /* var229 = array_instance Array[Object] */
1734 var231
= NEW_array__NativeArray(var230
, &type_array__NativeArraykernel__Object
);
1735 ((struct instance_array__NativeArray
*)var231
)->values
[0] = (val
*) var_value2
;
1736 ((struct instance_array__NativeArray
*)var231
)->values
[1] = (val
*) var225
;
1738 ((void (*)(val
*, val
*, long))(var229
->class->vft
[COLOR_array__Array__with_native
]))(var229
, var231
, var230
) /* with_native on <var229:Array[Object]>*/;
1742 var232
= ((val
* (*)(val
*))(var229
->class->vft
[COLOR_string__Object__to_s
]))(var229
) /* to_s on <var229:Array[Object]>*/;
1745 array__Array__add(var_test
, var232
); /* Direct call array#Array#add on <var_test:Array[String]>*/
1748 { /* Inline model#MNullableType#mtype (var_t2) on <var_t2:MType(MNullableType)> */
1749 var235
= var_t2
->attrs
[COLOR_model__MNullableType___mtype
].val
; /* _mtype on <var_t2:MType(MNullableType)> */
1750 if (unlikely(var235
== NULL
)) {
1751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1752 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1375);
1756 RET_LABEL234
:(void)0;
1762 var_maybe_null
= var236
;
1765 var_incompatible
= var237
;
1767 var238
= ((val
* (*)(val
*))(var_t1
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t1
) /* ctype on <var_t1:MType>*/;
1770 var240
= varonce239
;
1774 var243
= string__NativeString__to_s_with_length(var241
, var242
);
1776 varonce239
= var240
;
1779 { /* Inline kernel#Object#!= (var238,var240) on <var238:String> */
1782 var248
= ((short int (*)(val
*, val
*))(var238
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var238
, var_other
) /* == on <var238:String>*/;
1788 RET_LABEL246
:(void)0;
1793 var_primitive
= var_t1
;
1795 { /* Inline kernel#Object#== (var_t1,var_t2) on <var_t1:MType> */
1796 var_other53
= var_t2
;
1798 { /* Inline kernel#Object#is_same_instance (var_t1,var_other53) on <var_t1:MType> */
1799 var255
= var_t1
== var_other53
;
1802 RET_LABEL254
:(void)0;
1807 RET_LABEL252
:(void)0;
1814 var256
= ((val
* (*)(val
*))(var_t2
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t2
) /* ctype on <var_t2:MType>*/;
1817 var258
= varonce257
;
1821 var261
= string__NativeString__to_s_with_length(var259
, var260
);
1823 varonce257
= var258
;
1826 { /* Inline kernel#Object#!= (var256,var258) on <var256:String> */
1829 var266
= ((short int (*)(val
*, val
*))(var256
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var256
, var_other
) /* == on <var256:String>*/;
1835 RET_LABEL264
:(void)0;
1841 var_incompatible
= var268
;
1844 var269
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value2
);
1848 var271
= varonce270
;
1850 var272
= "->class == ";
1852 var274
= string__NativeString__to_s_with_length(var272
, var273
);
1854 varonce270
= var271
;
1857 var276
= varonce275
;
1861 var279
= string__NativeString__to_s_with_length(var277
, var278
);
1863 varonce275
= var276
;
1865 var280
= NEW_array__Array(&type_array__Arraykernel__Object
);
1866 { /* var280 = array_instance Array[Object] */
1868 var282
= NEW_array__NativeArray(var281
, &type_array__NativeArraykernel__Object
);
1869 ((struct instance_array__NativeArray
*)var282
)->values
[0] = (val
*) var_value1
;
1870 ((struct instance_array__NativeArray
*)var282
)->values
[1] = (val
*) var271
;
1871 ((struct instance_array__NativeArray
*)var282
)->values
[2] = (val
*) var_value2
;
1872 ((struct instance_array__NativeArray
*)var282
)->values
[3] = (val
*) var276
;
1874 ((void (*)(val
*, val
*, long))(var280
->class->vft
[COLOR_array__Array__with_native
]))(var280
, var282
, var281
) /* with_native on <var280:Array[Object]>*/;
1878 var283
= ((val
* (*)(val
*))(var280
->class->vft
[COLOR_string__Object__to_s
]))(var280
) /* to_s on <var280:Array[Object]>*/;
1881 array__Array__add(var_test
, var283
); /* Direct call array#Array#add on <var_test:Array[String]>*/
1885 var_incompatible
= var284
;
1891 var285
= ((val
* (*)(val
*))(var_t2
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_t2
) /* ctype on <var_t2:MType>*/;
1894 var287
= varonce286
;
1898 var290
= string__NativeString__to_s_with_length(var288
, var289
);
1900 varonce286
= var287
;
1903 { /* Inline kernel#Object#!= (var285,var287) on <var285:String> */
1906 var295
= ((short int (*)(val
*, val
*))(var285
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var285
, var_other
) /* == on <var285:String>*/;
1912 RET_LABEL293
:(void)0;
1917 var_primitive
= var_t2
;
1919 var297
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value1
);
1923 var299
= varonce298
;
1925 var300
= "->class == ";
1927 var302
= string__NativeString__to_s_with_length(var300
, var301
);
1929 varonce298
= var299
;
1932 var304
= varonce303
;
1936 var307
= string__NativeString__to_s_with_length(var305
, var306
);
1938 varonce303
= var304
;
1940 var308
= NEW_array__Array(&type_array__Arraykernel__Object
);
1941 { /* var308 = array_instance Array[Object] */
1943 var310
= NEW_array__NativeArray(var309
, &type_array__NativeArraykernel__Object
);
1944 ((struct instance_array__NativeArray
*)var310
)->values
[0] = (val
*) var_value1
;
1945 ((struct instance_array__NativeArray
*)var310
)->values
[1] = (val
*) var299
;
1946 ((struct instance_array__NativeArray
*)var310
)->values
[2] = (val
*) var_value2
;
1947 ((struct instance_array__NativeArray
*)var310
)->values
[3] = (val
*) var304
;
1949 ((void (*)(val
*, val
*, long))(var308
->class->vft
[COLOR_array__Array__with_native
]))(var308
, var310
, var309
) /* with_native on <var308:Array[Object]>*/;
1953 var311
= ((val
* (*)(val
*))(var308
->class->vft
[COLOR_string__Object__to_s
]))(var308
) /* to_s on <var308:Array[Object]>*/;
1956 array__Array__add(var_test
, var311
); /* Direct call array#Array#add on <var_test:Array[String]>*/
1960 var_incompatible
= var312
;
1964 var_primitive
= var313
;
1967 if (var_incompatible
){
1968 if (var_maybe_null
){
1970 var315
= varonce314
;
1974 var318
= string__NativeString__to_s_with_length(var316
, var317
);
1976 varonce314
= var315
;
1979 var320
= varonce319
;
1983 var323
= string__NativeString__to_s_with_length(var321
, var322
);
1985 varonce319
= var320
;
1988 var325
= varonce324
;
1990 var326
= "; /* incompatible types ";
1992 var328
= string__NativeString__to_s_with_length(var326
, var327
);
1994 varonce324
= var325
;
1997 var330
= varonce329
;
2001 var333
= string__NativeString__to_s_with_length(var331
, var332
);
2003 varonce329
= var330
;
2006 var335
= varonce334
;
2008 var336
= "; but may be NULL*/";
2010 var338
= string__NativeString__to_s_with_length(var336
, var337
);
2012 varonce334
= var335
;
2014 var339
= NEW_array__Array(&type_array__Arraykernel__Object
);
2015 { /* var339 = array_instance Array[Object] */
2017 var341
= NEW_array__NativeArray(var340
, &type_array__NativeArraykernel__Object
);
2018 ((struct instance_array__NativeArray
*)var341
)->values
[0] = (val
*) var_res
;
2019 ((struct instance_array__NativeArray
*)var341
)->values
[1] = (val
*) var315
;
2020 ((struct instance_array__NativeArray
*)var341
)->values
[2] = (val
*) var_value1
;
2021 ((struct instance_array__NativeArray
*)var341
)->values
[3] = (val
*) var320
;
2022 ((struct instance_array__NativeArray
*)var341
)->values
[4] = (val
*) var_value2
;
2023 ((struct instance_array__NativeArray
*)var341
)->values
[5] = (val
*) var325
;
2024 ((struct instance_array__NativeArray
*)var341
)->values
[6] = (val
*) var_t1
;
2025 ((struct instance_array__NativeArray
*)var341
)->values
[7] = (val
*) var330
;
2026 ((struct instance_array__NativeArray
*)var341
)->values
[8] = (val
*) var_t2
;
2027 ((struct instance_array__NativeArray
*)var341
)->values
[9] = (val
*) var335
;
2029 ((void (*)(val
*, val
*, long))(var339
->class->vft
[COLOR_array__Array__with_native
]))(var339
, var341
, var340
) /* with_native on <var339:Array[Object]>*/;
2033 var342
= ((val
* (*)(val
*))(var339
->class->vft
[COLOR_string__Object__to_s
]))(var339
) /* to_s on <var339:Array[Object]>*/;
2036 abstract_compiler__AbstractCompilerVisitor__add(self
, var342
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2042 var344
= varonce343
;
2044 var345
= " = 0; /* incompatible types ";
2046 var347
= string__NativeString__to_s_with_length(var345
, var346
);
2048 varonce343
= var344
;
2051 var349
= varonce348
;
2055 var352
= string__NativeString__to_s_with_length(var350
, var351
);
2057 varonce348
= var349
;
2060 var354
= varonce353
;
2062 var355
= "; cannot be NULL */";
2064 var357
= string__NativeString__to_s_with_length(var355
, var356
);
2066 varonce353
= var354
;
2068 var358
= NEW_array__Array(&type_array__Arraykernel__Object
);
2069 { /* var358 = array_instance Array[Object] */
2071 var360
= NEW_array__NativeArray(var359
, &type_array__NativeArraykernel__Object
);
2072 ((struct instance_array__NativeArray
*)var360
)->values
[0] = (val
*) var_res
;
2073 ((struct instance_array__NativeArray
*)var360
)->values
[1] = (val
*) var344
;
2074 ((struct instance_array__NativeArray
*)var360
)->values
[2] = (val
*) var_t1
;
2075 ((struct instance_array__NativeArray
*)var360
)->values
[3] = (val
*) var349
;
2076 ((struct instance_array__NativeArray
*)var360
)->values
[4] = (val
*) var_t2
;
2077 ((struct instance_array__NativeArray
*)var360
)->values
[5] = (val
*) var354
;
2079 ((void (*)(val
*, val
*, long))(var358
->class->vft
[COLOR_array__Array__with_native
]))(var358
, var360
, var359
) /* with_native on <var358:Array[Object]>*/;
2083 var361
= ((val
* (*)(val
*))(var358
->class->vft
[COLOR_string__Object__to_s
]))(var358
) /* to_s on <var358:Array[Object]>*/;
2086 abstract_compiler__AbstractCompilerVisitor__add(self
, var361
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2094 if (var_primitive
== NULL
) {
2095 var363
= 0; /* is null */
2097 var363
= 1; /* arg is null and recv is not */
2100 { /* Inline kernel#Object#!= (var_primitive,var362) on <var_primitive:nullable Object(nullable MType)> */
2103 var367
= ((short int (*)(val
*, val
*))(var_primitive
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_primitive
, var_other
) /* == on <var_primitive:nullable MType(MType)>*/;
2109 RET_LABEL365
:(void)0;
2115 var370
= varonce369
;
2117 var371
= "((struct instance_";
2119 var373
= string__NativeString__to_s_with_length(var371
, var372
);
2121 varonce369
= var370
;
2124 var374
= ((val
* (*)(val
*))(var_primitive
->class->vft
[COLOR_separate_compiler__MType__c_instance_name
]))(var_primitive
) /* c_instance_name on <var_primitive:nullable Object(MType)>*/;
2127 var376
= varonce375
;
2131 var379
= string__NativeString__to_s_with_length(var377
, var378
);
2133 varonce375
= var376
;
2136 var381
= varonce380
;
2138 var382
= ")->value == ((struct instance_";
2140 var384
= string__NativeString__to_s_with_length(var382
, var383
);
2142 varonce380
= var381
;
2145 var385
= ((val
* (*)(val
*))(var_primitive
->class->vft
[COLOR_separate_compiler__MType__c_instance_name
]))(var_primitive
) /* c_instance_name on <var_primitive:nullable Object(MType)>*/;
2148 var387
= varonce386
;
2152 var390
= string__NativeString__to_s_with_length(var388
, var389
);
2154 varonce386
= var387
;
2157 var392
= varonce391
;
2159 var393
= ")->value";
2161 var395
= string__NativeString__to_s_with_length(var393
, var394
);
2163 varonce391
= var392
;
2165 var396
= NEW_array__Array(&type_array__Arraykernel__Object
);
2166 { /* var396 = array_instance Array[Object] */
2168 var398
= NEW_array__NativeArray(var397
, &type_array__NativeArraykernel__Object
);
2169 ((struct instance_array__NativeArray
*)var398
)->values
[0] = (val
*) var370
;
2170 ((struct instance_array__NativeArray
*)var398
)->values
[1] = (val
*) var374
;
2171 ((struct instance_array__NativeArray
*)var398
)->values
[2] = (val
*) var376
;
2172 ((struct instance_array__NativeArray
*)var398
)->values
[3] = (val
*) var_value1
;
2173 ((struct instance_array__NativeArray
*)var398
)->values
[4] = (val
*) var381
;
2174 ((struct instance_array__NativeArray
*)var398
)->values
[5] = (val
*) var385
;
2175 ((struct instance_array__NativeArray
*)var398
)->values
[6] = (val
*) var387
;
2176 ((struct instance_array__NativeArray
*)var398
)->values
[7] = (val
*) var_value2
;
2177 ((struct instance_array__NativeArray
*)var398
)->values
[8] = (val
*) var392
;
2179 ((void (*)(val
*, val
*, long))(var396
->class->vft
[COLOR_array__Array__with_native
]))(var396
, var398
, var397
) /* with_native on <var396:Array[Object]>*/;
2183 var399
= ((val
* (*)(val
*))(var396
->class->vft
[COLOR_string__Object__to_s
]))(var396
) /* to_s on <var396:Array[Object]>*/;
2186 array__Array__add(var_test
, var399
); /* Direct call array#Array#add on <var_test:Array[String]>*/
2190 var401
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value1
);
2195 var403
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, var_value2
);
2203 var405
= varonce404
;
2205 var406
= "->class == ";
2207 var408
= string__NativeString__to_s_with_length(var406
, var407
);
2209 varonce404
= var405
;
2212 var410
= varonce409
;
2216 var413
= string__NativeString__to_s_with_length(var411
, var412
);
2218 varonce409
= var410
;
2220 var414
= NEW_array__Array(&type_array__Arraykernel__Object
);
2221 { /* var414 = array_instance Array[Object] */
2223 var416
= NEW_array__NativeArray(var415
, &type_array__NativeArraykernel__Object
);
2224 ((struct instance_array__NativeArray
*)var416
)->values
[0] = (val
*) var_value1
;
2225 ((struct instance_array__NativeArray
*)var416
)->values
[1] = (val
*) var405
;
2226 ((struct instance_array__NativeArray
*)var416
)->values
[2] = (val
*) var_value2
;
2227 ((struct instance_array__NativeArray
*)var416
)->values
[3] = (val
*) var410
;
2229 ((void (*)(val
*, val
*, long))(var414
->class->vft
[COLOR_array__Array__with_native
]))(var414
, var416
, var415
) /* with_native on <var414:Array[Object]>*/;
2233 var417
= ((val
* (*)(val
*))(var414
->class->vft
[COLOR_string__Object__to_s
]))(var414
) /* to_s on <var414:Array[Object]>*/;
2236 array__Array__add(var_test
, var417
); /* Direct call array#Array#add on <var_test:Array[String]>*/
2238 var418
= NEW_array__Array(&type_array__Arraystring__String
);
2240 array__Array__init(var418
); /* Direct call array#Array#init on <var418:Array[String]>*/
2244 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
2245 var421
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
2246 if (unlikely(var421
== NULL
)) {
2247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2248 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
2252 RET_LABEL420
:(void)0;
2256 { /* Inline separate_compiler#SeparateCompiler#box_kinds (var419) on <var419:AbstractCompiler(SeparateCompiler)> */
2257 var424
= var419
->attrs
[COLOR_separate_compiler__SeparateCompiler___box_kinds
].val
; /* _box_kinds on <var419:AbstractCompiler(SeparateCompiler)> */
2258 if (unlikely(var424
== NULL
)) {
2259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
2260 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 211);
2264 RET_LABEL423
:(void)0;
2268 var425
= hash_collection__HashMap__iterator(var422
);
2272 var426
= hash_collection__HashMapIterator__is_ok(var425
);
2276 var427
= hash_collection__HashMapIterator__key(var425
);
2280 var428
= hash_collection__HashMapIterator__item(var425
);
2282 var429
= ((struct instance_kernel__Int
*)var428
)->value
; /* autounbox from nullable Object to Int */;
2285 var431
= varonce430
;
2289 var434
= string__NativeString__to_s_with_length(var432
, var433
);
2291 varonce430
= var431
;
2294 var436
= varonce435
;
2296 var437
= "->class->box_kind == ";
2298 var439
= string__NativeString__to_s_with_length(var437
, var438
);
2300 varonce435
= var436
;
2303 var441
= varonce440
;
2305 var442
= " && ((struct instance_";
2307 var444
= string__NativeString__to_s_with_length(var442
, var443
);
2309 varonce440
= var441
;
2312 var445
= separate_compiler__MClass__c_instance_name(var_t
);
2315 var447
= varonce446
;
2319 var450
= string__NativeString__to_s_with_length(var448
, var449
);
2321 varonce446
= var447
;
2324 var452
= varonce451
;
2326 var453
= ")->value == ((struct instance_";
2328 var455
= string__NativeString__to_s_with_length(var453
, var454
);
2330 varonce451
= var452
;
2333 var456
= separate_compiler__MClass__c_instance_name(var_t
);
2336 var458
= varonce457
;
2340 var461
= string__NativeString__to_s_with_length(var459
, var460
);
2342 varonce457
= var458
;
2345 var463
= varonce462
;
2347 var464
= ")->value)";
2349 var466
= string__NativeString__to_s_with_length(var464
, var465
);
2351 varonce462
= var463
;
2353 var467
= NEW_array__Array(&type_array__Arraykernel__Object
);
2354 { /* var467 = array_instance Array[Object] */
2356 var469
= NEW_array__NativeArray(var468
, &type_array__NativeArraykernel__Object
);
2357 ((struct instance_array__NativeArray
*)var469
)->values
[0] = (val
*) var431
;
2358 ((struct instance_array__NativeArray
*)var469
)->values
[1] = (val
*) var_value1
;
2359 ((struct instance_array__NativeArray
*)var469
)->values
[2] = (val
*) var436
;
2360 var470
= BOX_kernel__Int(var_v
); /* autobox from Int to Object */
2361 ((struct instance_array__NativeArray
*)var469
)->values
[3] = (val
*) var470
;
2362 ((struct instance_array__NativeArray
*)var469
)->values
[4] = (val
*) var441
;
2363 ((struct instance_array__NativeArray
*)var469
)->values
[5] = (val
*) var445
;
2364 ((struct instance_array__NativeArray
*)var469
)->values
[6] = (val
*) var447
;
2365 ((struct instance_array__NativeArray
*)var469
)->values
[7] = (val
*) var_value1
;
2366 ((struct instance_array__NativeArray
*)var469
)->values
[8] = (val
*) var452
;
2367 ((struct instance_array__NativeArray
*)var469
)->values
[9] = (val
*) var456
;
2368 ((struct instance_array__NativeArray
*)var469
)->values
[10] = (val
*) var458
;
2369 ((struct instance_array__NativeArray
*)var469
)->values
[11] = (val
*) var_value2
;
2370 ((struct instance_array__NativeArray
*)var469
)->values
[12] = (val
*) var463
;
2372 ((void (*)(val
*, val
*, long))(var467
->class->vft
[COLOR_array__Array__with_native
]))(var467
, var469
, var468
) /* with_native on <var467:Array[Object]>*/;
2376 var471
= ((val
* (*)(val
*))(var467
->class->vft
[COLOR_string__Object__to_s
]))(var467
) /* to_s on <var467:Array[Object]>*/;
2379 array__Array__add(var_s
, var471
); /* Direct call array#Array#add on <var_s:Array[String]>*/
2381 CONTINUE_label
: (void)0;
2383 hash_collection__HashMapIterator__next(var425
); /* Direct call hash_collection#HashMapIterator#next on <var425:HashMapIterator[Object, nullable Object]>*/
2386 BREAK_label
: (void)0;
2388 var473
= varonce472
;
2392 var476
= string__NativeString__to_s_with_length(var474
, var475
);
2394 varonce472
= var473
;
2397 var478
= varonce477
;
2401 var481
= string__NativeString__to_s_with_length(var479
, var480
);
2403 varonce477
= var478
;
2406 var482
= string__Collection__join(var_s
, var478
);
2409 var484
= varonce483
;
2413 var487
= string__NativeString__to_s_with_length(var485
, var486
);
2415 varonce483
= var484
;
2417 var488
= NEW_array__Array(&type_array__Arraykernel__Object
);
2418 { /* var488 = array_instance Array[Object] */
2420 var490
= NEW_array__NativeArray(var489
, &type_array__NativeArraykernel__Object
);
2421 ((struct instance_array__NativeArray
*)var490
)->values
[0] = (val
*) var473
;
2422 ((struct instance_array__NativeArray
*)var490
)->values
[1] = (val
*) var482
;
2423 ((struct instance_array__NativeArray
*)var490
)->values
[2] = (val
*) var484
;
2425 ((void (*)(val
*, val
*, long))(var488
->class->vft
[COLOR_array__Array__with_native
]))(var488
, var490
, var489
) /* with_native on <var488:Array[Object]>*/;
2429 var491
= ((val
* (*)(val
*))(var488
->class->vft
[COLOR_string__Object__to_s
]))(var488
) /* to_s on <var488:Array[Object]>*/;
2432 array__Array__add(var_test
, var491
); /* Direct call array#Array#add on <var_test:Array[String]>*/
2436 var493
= varonce492
;
2440 var496
= string__NativeString__to_s_with_length(var494
, var495
);
2442 varonce492
= var493
;
2445 var498
= varonce497
;
2449 var501
= string__NativeString__to_s_with_length(var499
, var500
);
2451 varonce497
= var498
;
2454 var503
= varonce502
;
2458 var506
= string__NativeString__to_s_with_length(var504
, var505
);
2460 varonce502
= var503
;
2462 var507
= NEW_array__Array(&type_array__Arraykernel__Object
);
2463 { /* var507 = array_instance Array[Object] */
2465 var509
= NEW_array__NativeArray(var508
, &type_array__NativeArraykernel__Object
);
2466 ((struct instance_array__NativeArray
*)var509
)->values
[0] = (val
*) var_res
;
2467 ((struct instance_array__NativeArray
*)var509
)->values
[1] = (val
*) var493
;
2468 ((struct instance_array__NativeArray
*)var509
)->values
[2] = (val
*) var_value1
;
2469 ((struct instance_array__NativeArray
*)var509
)->values
[3] = (val
*) var498
;
2470 ((struct instance_array__NativeArray
*)var509
)->values
[4] = (val
*) var_value2
;
2471 ((struct instance_array__NativeArray
*)var509
)->values
[5] = (val
*) var503
;
2473 ((void (*)(val
*, val
*, long))(var507
->class->vft
[COLOR_array__Array__with_native
]))(var507
, var509
, var508
) /* with_native on <var507:Array[Object]>*/;
2477 var510
= ((val
* (*)(val
*))(var507
->class->vft
[COLOR_string__Object__to_s
]))(var507
) /* to_s on <var507:Array[Object]>*/;
2480 abstract_compiler__AbstractCompilerVisitor__add(self
, var510
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2487 var512
= varonce511
;
2491 var515
= string__NativeString__to_s_with_length(var513
, var514
);
2493 varonce511
= var512
;
2496 var517
= varonce516
;
2500 var520
= string__NativeString__to_s_with_length(var518
, var519
);
2502 varonce516
= var517
;
2505 var522
= varonce521
;
2509 var525
= string__NativeString__to_s_with_length(var523
, var524
);
2511 varonce521
= var522
;
2514 var527
= varonce526
;
2518 var530
= string__NativeString__to_s_with_length(var528
, var529
);
2520 varonce526
= var527
;
2523 var531
= string__Collection__join(var_test
, var527
);
2526 var533
= varonce532
;
2530 var536
= string__NativeString__to_s_with_length(var534
, var535
);
2532 varonce532
= var533
;
2534 var537
= NEW_array__Array(&type_array__Arraykernel__Object
);
2535 { /* var537 = array_instance Array[Object] */
2537 var539
= NEW_array__NativeArray(var538
, &type_array__NativeArraykernel__Object
);
2538 ((struct instance_array__NativeArray
*)var539
)->values
[0] = (val
*) var_res
;
2539 ((struct instance_array__NativeArray
*)var539
)->values
[1] = (val
*) var512
;
2540 ((struct instance_array__NativeArray
*)var539
)->values
[2] = (val
*) var_value1
;
2541 ((struct instance_array__NativeArray
*)var539
)->values
[3] = (val
*) var517
;
2542 ((struct instance_array__NativeArray
*)var539
)->values
[4] = (val
*) var_value2
;
2543 ((struct instance_array__NativeArray
*)var539
)->values
[5] = (val
*) var522
;
2544 ((struct instance_array__NativeArray
*)var539
)->values
[6] = (val
*) var531
;
2545 ((struct instance_array__NativeArray
*)var539
)->values
[7] = (val
*) var533
;
2547 ((void (*)(val
*, val
*, long))(var537
->class->vft
[COLOR_array__Array__with_native
]))(var537
, var539
, var538
) /* with_native on <var537:Array[Object]>*/;
2551 var540
= ((val
* (*)(val
*))(var537
->class->vft
[COLOR_string__Object__to_s
]))(var537
) /* to_s on <var537:Array[Object]>*/;
2554 abstract_compiler__AbstractCompilerVisitor__add(self
, var540
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
2561 /* method separate_compiler#SeparateCompilerVisitor#equal_test for (self: Object, RuntimeVariable, RuntimeVariable): RuntimeVariable */
2562 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__equal_test(val
* self
, val
* p0
, val
* p1
) {
2563 val
* var
/* : RuntimeVariable */;
2564 val
* var1
/* : RuntimeVariable */;
2565 var1
= separate_compiler__SeparateCompilerVisitor__equal_test(self
, p0
, p1
);
2570 /* method separate_compiler#SeparateCompilerVisitor#can_be_primitive for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */
2571 short int separate_compiler__SeparateCompilerVisitor__can_be_primitive(val
* self
, val
* p0
) {
2572 short int var
/* : Bool */;
2573 val
* var_value
/* var value: RuntimeVariable */;
2574 val
* var1
/* : MType */;
2575 val
* var3
/* : MType */;
2576 val
* var4
/* : MType */;
2577 val
* var_t
/* var t: MType */;
2578 short int var5
/* : Bool */;
2581 short int var6
/* : Bool */;
2582 short int var7
/* : Bool */;
2583 val
* var8
/* : MClass */;
2584 val
* var10
/* : MClass */;
2585 val
* var11
/* : MClassKind */;
2586 val
* var13
/* : MClassKind */;
2587 val
* var_k
/* var k: MClassKind */;
2588 short int var14
/* : Bool */;
2589 val
* var15
/* : MClassKind */;
2590 short int var16
/* : Bool */;
2591 short int var17
/* : Bool */;
2592 val
* var_other
/* var other: nullable Object */;
2593 short int var19
/* : Bool */;
2594 short int var21
/* : Bool */;
2595 short int var_
/* var : Bool */;
2596 val
* var22
/* : String */;
2597 static val
* varonce
;
2598 val
* var23
/* : String */;
2599 char* var24
/* : NativeString */;
2600 long var25
/* : Int */;
2601 val
* var26
/* : FlatString */;
2602 short int var27
/* : Bool */;
2603 short int var28
/* : Bool */;
2604 val
* var_other30
/* var other: nullable Object */;
2605 short int var31
/* : Bool */;
2606 short int var32
/* : Bool */;
2607 short int var33
/* : Bool */;
2610 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
2611 var3
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value:RuntimeVariable> */
2612 if (unlikely(var3
== NULL
)) {
2613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
2614 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
2622 var4
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_model__MType__as_notnullable
]))(var1
) /* as_notnullable on <var1:MType>*/;
2625 /* <var_t:MType> isa MClassType */
2626 cltype
= type_model__MClassType
.color
;
2627 idtype
= type_model__MClassType
.id
;
2628 if(cltype
>= var_t
->type
->table_size
) {
2631 var5
= var_t
->type
->type_table
[cltype
] == idtype
;
2641 { /* Inline model#MClassType#mclass (var_t) on <var_t:MType(MClassType)> */
2642 var10
= var_t
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_t:MType(MClassType)> */
2643 if (unlikely(var10
== NULL
)) {
2644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2645 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
2653 { /* Inline model#MClass#kind (var8) on <var8:MClass> */
2654 var13
= var8
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <var8:MClass> */
2655 if (unlikely(var13
== NULL
)) {
2656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
2657 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
2661 RET_LABEL12
:(void)0;
2666 var15
= model__Object__interface_kind(self
);
2669 { /* Inline kernel#Object#== (var_k,var15) on <var_k:MClassKind> */
2672 { /* Inline kernel#Object#is_same_instance (var_k,var_other) on <var_k:MClassKind> */
2673 var21
= var_k
== var_other
;
2676 RET_LABEL20
:(void)0;
2681 RET_LABEL18
:(void)0;
2690 var22
= abstract_compiler__MClassType__ctype(var_t
);
2697 var26
= string__NativeString__to_s_with_length(var24
, var25
);
2702 { /* Inline kernel#Object#!= (var22,var23) on <var22:String> */
2703 var_other30
= var23
;
2705 var32
= ((short int (*)(val
*, val
*))(var22
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var22
, var_other30
) /* == on <var22:String>*/;
2711 RET_LABEL29
:(void)0;
2722 /* method separate_compiler#SeparateCompilerVisitor#can_be_primitive for (self: Object, RuntimeVariable): Bool */
2723 short int VIRTUAL_separate_compiler__SeparateCompilerVisitor__can_be_primitive(val
* self
, val
* p0
) {
2724 short int var
/* : Bool */;
2725 short int var1
/* : Bool */;
2726 var1
= separate_compiler__SeparateCompilerVisitor__can_be_primitive(self
, p0
);
2731 /* method separate_compiler#SeparateCompilerVisitor#maybe_null for (self: SeparateCompilerVisitor, RuntimeVariable): Bool */
2732 short int separate_compiler__SeparateCompilerVisitor__maybe_null(val
* self
, val
* p0
) {
2733 short int var
/* : Bool */;
2734 val
* var_value
/* var value: RuntimeVariable */;
2735 val
* var1
/* : MType */;
2736 val
* var3
/* : MType */;
2737 val
* var_t
/* var t: MType */;
2738 short int var4
/* : Bool */;
2739 short int var5
/* : Bool */;
2742 short int var_
/* var : Bool */;
2743 short int var6
/* : Bool */;
2748 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
2749 var3
= var_value
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mcasttype
].val
; /* _mcasttype on <var_value:RuntimeVariable> */
2750 if (unlikely(var3
== NULL
)) {
2751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
2752 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1487);
2760 /* <var_t:MType> isa MNullableType */
2761 cltype
= type_model__MNullableType
.color
;
2762 idtype
= type_model__MNullableType
.id
;
2763 if(cltype
>= var_t
->type
->table_size
) {
2766 var5
= var_t
->type
->type_table
[cltype
] == idtype
;
2772 /* <var_t:MType> isa MNullType */
2773 cltype7
= type_model__MNullType
.color
;
2774 idtype8
= type_model__MNullType
.id
;
2775 if(cltype7
>= var_t
->type
->table_size
) {
2778 var6
= var_t
->type
->type_table
[cltype7
] == idtype8
;
2787 /* method separate_compiler#SeparateCompilerVisitor#maybe_null for (self: Object, RuntimeVariable): Bool */
2788 short int VIRTUAL_separate_compiler__SeparateCompilerVisitor__maybe_null(val
* self
, val
* p0
) {
2789 short int var
/* : Bool */;
2790 short int var1
/* : Bool */;
2791 var1
= separate_compiler__SeparateCompilerVisitor__maybe_null(self
, p0
);
2796 /* method separate_compiler#SeparateCompilerVisitor#array_instance for (self: SeparateCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */
2797 val
* separate_compiler__SeparateCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
2798 val
* var
/* : RuntimeVariable */;
2799 val
* var_array
/* var array: Array[RuntimeVariable] */;
2800 val
* var_elttype
/* var elttype: MType */;
2801 static val
* varonce
;
2802 val
* var1
/* : String */;
2803 char* var2
/* : NativeString */;
2804 long var3
/* : Int */;
2805 val
* var4
/* : FlatString */;
2806 val
* var5
/* : MClass */;
2807 val
* var_nclass
/* var nclass: MClass */;
2808 static val
* varonce6
;
2809 val
* var7
/* : String */;
2810 char* var8
/* : NativeString */;
2811 long var9
/* : Int */;
2812 val
* var10
/* : FlatString */;
2813 val
* var11
/* : MClass */;
2814 val
* var_arrayclass
/* var arrayclass: MClass */;
2815 val
* var12
/* : Array[MType] */;
2816 long var13
/* : Int */;
2817 val
* var_
/* var : Array[MType] */;
2818 val
* var14
/* : MClassType */;
2819 val
* var_arraytype
/* var arraytype: MClassType */;
2820 val
* var15
/* : RuntimeVariable */;
2821 val
* var_res
/* var res: RuntimeVariable */;
2822 static val
* varonce16
;
2823 val
* var17
/* : String */;
2824 char* var18
/* : NativeString */;
2825 long var19
/* : Int */;
2826 val
* var20
/* : FlatString */;
2827 static val
* varonce21
;
2828 val
* var22
/* : String */;
2829 char* var23
/* : NativeString */;
2830 long var24
/* : Int */;
2831 val
* var25
/* : FlatString */;
2832 static val
* varonce26
;
2833 val
* var27
/* : String */;
2834 char* var28
/* : NativeString */;
2835 long var29
/* : Int */;
2836 val
* var30
/* : FlatString */;
2837 val
* var31
/* : Array[Object] */;
2838 long var32
/* : Int */;
2839 val
* var33
/* : NativeArray[Object] */;
2840 val
* var34
/* : String */;
2841 long var35
/* : Int */;
2842 val
* var36
/* : RuntimeVariable */;
2843 val
* var_length
/* var length: RuntimeVariable */;
2844 val
* var37
/* : RuntimeVariable */;
2845 val
* var_nat
/* var nat: RuntimeVariable */;
2846 val
* var38
/* : Range[Int] */;
2847 long var39
/* : Int */;
2848 long var40
/* : Int */;
2849 val
* var41
/* : Discrete */;
2850 val
* var42
/* : Discrete */;
2851 val
* var43
/* : Iterator[Discrete] */;
2852 short int var44
/* : Bool */;
2853 val
* var45
/* : nullable Object */;
2854 long var_i
/* var i: Int */;
2855 long var46
/* : Int */;
2856 val
* var47
/* : nullable Object */;
2857 val
* var48
/* : MClassType */;
2858 val
* var49
/* : RuntimeVariable */;
2859 val
* var_r
/* var r: RuntimeVariable */;
2860 static val
* varonce50
;
2861 val
* var51
/* : String */;
2862 char* var52
/* : NativeString */;
2863 long var53
/* : Int */;
2864 val
* var54
/* : FlatString */;
2865 val
* var55
/* : String */;
2866 static val
* varonce56
;
2867 val
* var57
/* : String */;
2868 char* var58
/* : NativeString */;
2869 long var59
/* : Int */;
2870 val
* var60
/* : FlatString */;
2871 static val
* varonce61
;
2872 val
* var62
/* : String */;
2873 char* var63
/* : NativeString */;
2874 long var64
/* : Int */;
2875 val
* var65
/* : FlatString */;
2876 static val
* varonce66
;
2877 val
* var67
/* : String */;
2878 char* var68
/* : NativeString */;
2879 long var69
/* : Int */;
2880 val
* var70
/* : FlatString */;
2881 static val
* varonce71
;
2882 val
* var72
/* : String */;
2883 char* var73
/* : NativeString */;
2884 long var74
/* : Int */;
2885 val
* var75
/* : FlatString */;
2886 val
* var76
/* : Array[Object] */;
2887 long var77
/* : Int */;
2888 val
* var78
/* : NativeArray[Object] */;
2889 val
* var79
/* : Object */;
2890 val
* var80
/* : String */;
2891 static val
* varonce81
;
2892 val
* var82
/* : String */;
2893 char* var83
/* : NativeString */;
2894 long var84
/* : Int */;
2895 val
* var85
/* : FlatString */;
2896 val
* var86
/* : MClassDef */;
2897 val
* var87
/* : MClassType */;
2898 val
* var89
/* : MClassType */;
2899 val
* var90
/* : MMethod */;
2900 val
* var91
/* : Array[RuntimeVariable] */;
2901 long var92
/* : Int */;
2902 val
* var_93
/* var : Array[RuntimeVariable] */;
2903 val
* var94
/* : nullable RuntimeVariable */;
2904 static val
* varonce95
;
2905 val
* var96
/* : String */;
2906 char* var97
/* : NativeString */;
2907 long var98
/* : Int */;
2908 val
* var99
/* : FlatString */;
2914 var2
= "NativeArray";
2916 var4
= string__NativeString__to_s_with_length(var2
, var3
);
2921 var5
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var1
);
2929 var10
= string__NativeString__to_s_with_length(var8
, var9
);
2934 var11
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var7
);
2936 var_arrayclass
= var11
;
2937 var12
= NEW_array__Array(&type_array__Arraymodel__MType
);
2940 array__Array__with_capacity(var12
, var13
); /* Direct call array#Array#with_capacity on <var12:Array[MType]>*/
2944 array__AbstractArray__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
2947 var14
= model__MClass__get_mtype(var_arrayclass
, var_
);
2949 var_arraytype
= var14
;
2951 var15
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance
]))(self
, var_arraytype
) /* init_instance on <self:SeparateCompilerVisitor>*/;
2959 var20
= string__NativeString__to_s_with_length(var18
, var19
);
2966 var23
= " = array_instance Array[";
2968 var25
= string__NativeString__to_s_with_length(var23
, var24
);
2977 var30
= string__NativeString__to_s_with_length(var28
, var29
);
2981 var31
= NEW_array__Array(&type_array__Arraykernel__Object
);
2982 { /* var31 = array_instance Array[Object] */
2984 var33
= NEW_array__NativeArray(var32
, &type_array__NativeArraykernel__Object
);
2985 ((struct instance_array__NativeArray
*)var33
)->values
[0] = (val
*) var17
;
2986 ((struct instance_array__NativeArray
*)var33
)->values
[1] = (val
*) var_res
;
2987 ((struct instance_array__NativeArray
*)var33
)->values
[2] = (val
*) var22
;
2988 ((struct instance_array__NativeArray
*)var33
)->values
[3] = (val
*) var_elttype
;
2989 ((struct instance_array__NativeArray
*)var33
)->values
[4] = (val
*) var27
;
2991 ((void (*)(val
*, val
*, long))(var31
->class->vft
[COLOR_array__Array__with_native
]))(var31
, var33
, var32
) /* with_native on <var31:Array[Object]>*/;
2995 var34
= ((val
* (*)(val
*))(var31
->class->vft
[COLOR_string__Object__to_s
]))(var31
) /* to_s on <var31:Array[Object]>*/;
2998 abstract_compiler__AbstractCompilerVisitor__add(self
, var34
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
3001 var35
= array__AbstractArrayRead__length(var_array
);
3004 var36
= abstract_compiler__AbstractCompilerVisitor__int_instance(self
, var35
);
3008 var37
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__native_array_instance
]))(self
, var_elttype
, var_length
) /* native_array_instance on <self:SeparateCompilerVisitor>*/;
3011 var38
= NEW_range__Range(&type_range__Rangekernel__Int
);
3014 var40
= array__AbstractArrayRead__length(var_array
);
3017 var41
= BOX_kernel__Int(var39
); /* autobox from Int to Discrete */
3018 var42
= BOX_kernel__Int(var40
); /* autobox from Int to Discrete */
3019 range__Range__without_last(var38
, var41
, var42
); /* Direct call range#Range#without_last on <var38:Range[Int]>*/
3022 var43
= range__Range__iterator(var38
);
3026 var44
= ((short int (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var43
) /* is_ok on <var43:Iterator[Discrete]>*/;
3030 var45
= ((val
* (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var43
) /* item on <var43:Iterator[Discrete]>*/;
3032 var46
= ((struct instance_kernel__Int
*)var45
)->value
; /* autounbox from nullable Object to Int */;
3035 var47
= array__Array___91d_93d(var_array
, var_i
);
3038 var48
= abstract_compiler__AbstractCompilerVisitor__object_type(self
);
3041 var49
= separate_compiler__SeparateCompilerVisitor__autobox(self
, var47
, var48
);
3047 var52
= "((struct instance_";
3049 var54
= string__NativeString__to_s_with_length(var52
, var53
);
3054 var55
= abstract_compiler__MClass__c_name(var_nclass
);
3061 var60
= string__NativeString__to_s_with_length(var58
, var59
);
3068 var63
= ")->values[";
3070 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3077 var68
= "] = (val*) ";
3079 var70
= string__NativeString__to_s_with_length(var68
, var69
);
3088 var75
= string__NativeString__to_s_with_length(var73
, var74
);
3092 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
3093 { /* var76 = array_instance Array[Object] */
3095 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
3096 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var51
;
3097 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var55
;
3098 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var57
;
3099 ((struct instance_array__NativeArray
*)var78
)->values
[3] = (val
*) var_nat
;
3100 ((struct instance_array__NativeArray
*)var78
)->values
[4] = (val
*) var62
;
3101 var79
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
3102 ((struct instance_array__NativeArray
*)var78
)->values
[5] = (val
*) var79
;
3103 ((struct instance_array__NativeArray
*)var78
)->values
[6] = (val
*) var67
;
3104 ((struct instance_array__NativeArray
*)var78
)->values
[7] = (val
*) var_r
;
3105 ((struct instance_array__NativeArray
*)var78
)->values
[8] = (val
*) var72
;
3107 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
3111 var80
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
3114 abstract_compiler__AbstractCompilerVisitor__add(self
, var80
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
3116 CONTINUE_label
: (void)0;
3118 ((void (*)(val
*))(var43
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var43
) /* next on <var43:Iterator[Discrete]>*/;
3121 BREAK_label
: (void)0;
3125 var83
= "with_native";
3127 var85
= string__NativeString__to_s_with_length(var83
, var84
);
3132 var86
= model__MClass__intro(var_arrayclass
);
3135 { /* Inline model#MClassDef#bound_mtype (var86) on <var86:MClassDef> */
3136 var89
= var86
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var86:MClassDef> */
3137 if (unlikely(var89
== NULL
)) {
3138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3139 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
3143 RET_LABEL88
:(void)0;
3147 var90
= abstract_compiler__AbstractCompilerVisitor__get_property(self
, var82
, var87
);
3149 var91
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
3152 array__Array__with_capacity(var91
, var92
); /* Direct call array#Array#with_capacity on <var91:Array[RuntimeVariable]>*/
3156 array__AbstractArray__push(var_93
, var_res
); /* Direct call array#AbstractArray#push on <var_93:Array[RuntimeVariable]>*/
3159 array__AbstractArray__push(var_93
, var_nat
); /* Direct call array#AbstractArray#push on <var_93:Array[RuntimeVariable]>*/
3162 array__AbstractArray__push(var_93
, var_length
); /* Direct call array#AbstractArray#push on <var_93:Array[RuntimeVariable]>*/
3165 var94
= separate_compiler__SeparateCompilerVisitor__send(self
, var90
, var_93
);
3173 var99
= string__NativeString__to_s_with_length(var97
, var98
);
3178 abstract_compiler__AbstractCompilerVisitor__add(self
, var96
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
3185 /* method separate_compiler#SeparateCompilerVisitor#array_instance for (self: Object, Array[RuntimeVariable], MType): RuntimeVariable */
3186 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__array_instance(val
* self
, val
* p0
, val
* p1
) {
3187 val
* var
/* : RuntimeVariable */;
3188 val
* var1
/* : RuntimeVariable */;
3189 var1
= separate_compiler__SeparateCompilerVisitor__array_instance(self
, p0
, p1
);
3194 /* method separate_compiler#SeparateCompilerVisitor#native_array_instance for (self: SeparateCompilerVisitor, MType, RuntimeVariable): RuntimeVariable */
3195 val
* separate_compiler__SeparateCompilerVisitor__native_array_instance(val
* self
, val
* p0
, val
* p1
) {
3196 val
* var
/* : RuntimeVariable */;
3197 val
* var_elttype
/* var elttype: MType */;
3198 val
* var_length
/* var length: RuntimeVariable */;
3199 static val
* varonce
;
3200 val
* var1
/* : String */;
3201 char* var2
/* : NativeString */;
3202 long var3
/* : Int */;
3203 val
* var4
/* : FlatString */;
3204 val
* var5
/* : MClass */;
3205 val
* var6
/* : Array[MType] */;
3206 long var7
/* : Int */;
3207 val
* var_
/* var : Array[MType] */;
3208 val
* var8
/* : MClassType */;
3209 val
* var_mtype
/* var mtype: MClassType */;
3210 static val
* varonce9
;
3211 val
* var10
/* : String */;
3212 char* var11
/* : NativeString */;
3213 long var12
/* : Int */;
3214 val
* var13
/* : FlatString */;
3215 val
* var14
/* : MClass */;
3216 val
* var16
/* : MClass */;
3217 val
* var17
/* : String */;
3218 val
* var18
/* : Array[Object] */;
3219 long var19
/* : Int */;
3220 val
* var20
/* : NativeArray[Object] */;
3221 val
* var21
/* : String */;
3222 short int var22
/* : Bool */;
3225 val
* var23
/* : AbstractCompiler */;
3226 val
* var25
/* : AbstractCompiler */;
3227 val
* var_compiler
/* var compiler: SeparateCompiler */;
3228 short int var26
/* : Bool */;
3229 short int var28
/* : Bool */;
3230 val
* var29
/* : nullable Frame */;
3231 val
* var31
/* : nullable Frame */;
3232 val
* var32
/* : MPropDef */;
3233 val
* var34
/* : MPropDef */;
3234 val
* var35
/* : MClassDef */;
3235 val
* var37
/* : MClassDef */;
3236 val
* var38
/* : nullable Frame */;
3237 val
* var40
/* : nullable Frame */;
3238 val
* var41
/* : Array[RuntimeVariable] */;
3239 val
* var43
/* : Array[RuntimeVariable] */;
3240 val
* var44
/* : nullable Object */;
3241 val
* var_recv
/* var recv: RuntimeVariable */;
3242 val
* var45
/* : String */;
3243 val
* var_recv_type_info
/* var recv_type_info: String */;
3244 val
* var46
/* : String */;
3245 static val
* varonce47
;
3246 val
* var48
/* : String */;
3247 char* var49
/* : NativeString */;
3248 long var50
/* : Int */;
3249 val
* var51
/* : FlatString */;
3250 val
* var52
/* : MClass */;
3251 val
* var54
/* : MClass */;
3252 val
* var55
/* : String */;
3253 static val
* varonce56
;
3254 val
* var57
/* : String */;
3255 char* var58
/* : NativeString */;
3256 long var59
/* : Int */;
3257 val
* var60
/* : FlatString */;
3258 static val
* varonce61
;
3259 val
* var62
/* : String */;
3260 char* var63
/* : NativeString */;
3261 long var64
/* : Int */;
3262 val
* var65
/* : FlatString */;
3263 static val
* varonce66
;
3264 val
* var67
/* : String */;
3265 char* var68
/* : NativeString */;
3266 long var69
/* : Int */;
3267 val
* var70
/* : FlatString */;
3268 val
* var71
/* : String */;
3269 static val
* varonce72
;
3270 val
* var73
/* : String */;
3271 char* var74
/* : NativeString */;
3272 long var75
/* : Int */;
3273 val
* var76
/* : FlatString */;
3274 val
* var77
/* : Array[Object] */;
3275 long var78
/* : Int */;
3276 val
* var79
/* : NativeArray[Object] */;
3277 val
* var80
/* : String */;
3278 val
* var81
/* : RuntimeVariable */;
3279 val
* var82
/* : Set[MType] */;
3280 val
* var84
/* : Set[MType] */;
3281 static val
* varonce85
;
3282 val
* var86
/* : String */;
3283 char* var87
/* : NativeString */;
3284 long var88
/* : Int */;
3285 val
* var89
/* : FlatString */;
3286 val
* var90
/* : String */;
3287 val
* var91
/* : Array[Object] */;
3288 long var92
/* : Int */;
3289 val
* var93
/* : NativeArray[Object] */;
3290 val
* var94
/* : String */;
3291 static val
* varonce95
;
3292 val
* var96
/* : String */;
3293 char* var97
/* : NativeString */;
3294 long var98
/* : Int */;
3295 val
* var99
/* : FlatString */;
3296 val
* var100
/* : MClass */;
3297 val
* var102
/* : MClass */;
3298 val
* var103
/* : String */;
3299 static val
* varonce104
;
3300 val
* var105
/* : String */;
3301 char* var106
/* : NativeString */;
3302 long var107
/* : Int */;
3303 val
* var108
/* : FlatString */;
3304 static val
* varonce109
;
3305 val
* var110
/* : String */;
3306 char* var111
/* : NativeString */;
3307 long var112
/* : Int */;
3308 val
* var113
/* : FlatString */;
3309 val
* var114
/* : String */;
3310 static val
* varonce115
;
3311 val
* var116
/* : String */;
3312 char* var117
/* : NativeString */;
3313 long var118
/* : Int */;
3314 val
* var119
/* : FlatString */;
3315 val
* var120
/* : Array[Object] */;
3316 long var121
/* : Int */;
3317 val
* var122
/* : NativeArray[Object] */;
3318 val
* var123
/* : String */;
3319 val
* var124
/* : RuntimeVariable */;
3325 var2
= "NativeArray";
3327 var4
= string__NativeString__to_s_with_length(var2
, var3
);
3332 var5
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var1
);
3334 var6
= NEW_array__Array(&type_array__Arraymodel__MType
);
3337 array__Array__with_capacity(var6
, var7
); /* Direct call array#Array#with_capacity on <var6:Array[MType]>*/
3341 array__AbstractArray__push(var_
, var_elttype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
3344 var8
= model__MClass__get_mtype(var5
, var_
);
3352 var13
= string__NativeString__to_s_with_length(var11
, var12
);
3357 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
3358 var16
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType> */
3359 if (unlikely(var16
== NULL
)) {
3360 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3361 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3365 RET_LABEL15
:(void)0;
3369 var17
= abstract_compiler__MClass__c_name(var14
);
3371 var18
= NEW_array__Array(&type_array__Arraykernel__Object
);
3372 { /* var18 = array_instance Array[Object] */
3374 var20
= NEW_array__NativeArray(var19
, &type_array__NativeArraykernel__Object
);
3375 ((struct instance_array__NativeArray
*)var20
)->values
[0] = (val
*) var10
;
3376 ((struct instance_array__NativeArray
*)var20
)->values
[1] = (val
*) var17
;
3378 ((void (*)(val
*, val
*, long))(var18
->class->vft
[COLOR_array__Array__with_native
]))(var18
, var20
, var19
) /* with_native on <var18:Array[Object]>*/;
3382 var21
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_string__Object__to_s
]))(var18
) /* to_s on <var18:Array[Object]>*/;
3385 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var21
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
3387 /* <var_mtype:MClassType> isa MGenericType */
3388 cltype
= type_model__MGenericType
.color
;
3389 idtype
= type_model__MGenericType
.id
;
3390 if(cltype
>= var_mtype
->type
->table_size
) {
3393 var22
= var_mtype
->type
->type_table
[cltype
] == idtype
;
3395 if (unlikely(!var22
)) {
3396 PRINT_ERROR("Runtime error: %s", "Assert failed");
3397 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1616);
3401 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
3402 var25
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
3403 if (unlikely(var25
== NULL
)) {
3404 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3405 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
3409 RET_LABEL24
:(void)0;
3412 var_compiler
= var23
;
3414 { /* Inline model#MGenericType#need_anchor (var_mtype) on <var_mtype:MClassType(MGenericType)> */
3415 var28
= var_mtype
->attrs
[COLOR_model__MGenericType___need_anchor
].s
; /* _need_anchor on <var_mtype:MClassType(MGenericType)> */
3417 RET_LABEL27
:(void)0;
3422 separate_compiler__SeparateCompilerVisitor__hardening_live_open_type(self
, var_mtype
); /* Direct call separate_compiler#SeparateCompilerVisitor#hardening_live_open_type on <self:SeparateCompilerVisitor>*/
3425 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
3426 var31
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
3428 RET_LABEL30
:(void)0;
3431 if (var29
== NULL
) {
3432 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3433 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1620);
3436 { /* Inline abstract_compiler#Frame#mpropdef (var29) on <var29:nullable Frame> */
3437 if (unlikely(var29
== NULL
)) {
3438 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3439 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
3442 var34
= var29
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var29:nullable Frame> */
3443 if (unlikely(var34
== NULL
)) {
3444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
3445 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
3449 RET_LABEL33
:(void)0;
3453 { /* Inline model#MPropDef#mclassdef (var32) on <var32:MPropDef> */
3454 var37
= var32
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var32:MPropDef> */
3455 if (unlikely(var37
== NULL
)) {
3456 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3457 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
3461 RET_LABEL36
:(void)0;
3465 separate_compiler__SeparateCompilerVisitor__link_unresolved_type(self
, var35
, var_mtype
); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on <self:SeparateCompilerVisitor>*/
3468 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
3469 var40
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
3471 RET_LABEL39
:(void)0;
3474 if (var38
== NULL
) {
3475 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3476 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1621);
3479 { /* Inline abstract_compiler#Frame#arguments (var38) on <var38:nullable Frame> */
3480 if (unlikely(var38
== NULL
)) {
3481 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3482 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1538);
3485 var43
= var38
->attrs
[COLOR_abstract_compiler__Frame___arguments
].val
; /* _arguments on <var38:nullable Frame> */
3486 if (unlikely(var43
== NULL
)) {
3487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3488 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1538);
3492 RET_LABEL42
:(void)0;
3496 var44
= abstract_collection__SequenceRead__first(var41
);
3500 var45
= separate_compiler__SeparateCompilerVisitor__type_info(self
, var_recv
);
3502 var_recv_type_info
= var45
;
3504 var46
= separate_compiler__MType__const_color(var_mtype
);
3507 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var46
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
3514 var51
= string__NativeString__to_s_with_length(var49
, var50
);
3519 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType(MGenericType)> */
3520 var54
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType(MGenericType)> */
3521 if (unlikely(var54
== NULL
)) {
3522 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3523 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3527 RET_LABEL53
:(void)0;
3531 var55
= abstract_compiler__MClass__c_name(var52
);
3538 var60
= string__NativeString__to_s_with_length(var58
, var59
);
3547 var65
= string__NativeString__to_s_with_length(var63
, var64
);
3554 var68
= "->resolution_table->types[";
3556 var70
= string__NativeString__to_s_with_length(var68
, var69
);
3561 var71
= separate_compiler__MType__const_color(var_mtype
);
3568 var76
= string__NativeString__to_s_with_length(var74
, var75
);
3572 var77
= NEW_array__Array(&type_array__Arraykernel__Object
);
3573 { /* var77 = array_instance Array[Object] */
3575 var79
= NEW_array__NativeArray(var78
, &type_array__NativeArraykernel__Object
);
3576 ((struct instance_array__NativeArray
*)var79
)->values
[0] = (val
*) var48
;
3577 ((struct instance_array__NativeArray
*)var79
)->values
[1] = (val
*) var55
;
3578 ((struct instance_array__NativeArray
*)var79
)->values
[2] = (val
*) var57
;
3579 ((struct instance_array__NativeArray
*)var79
)->values
[3] = (val
*) var_length
;
3580 ((struct instance_array__NativeArray
*)var79
)->values
[4] = (val
*) var62
;
3581 ((struct instance_array__NativeArray
*)var79
)->values
[5] = (val
*) var_recv_type_info
;
3582 ((struct instance_array__NativeArray
*)var79
)->values
[6] = (val
*) var67
;
3583 ((struct instance_array__NativeArray
*)var79
)->values
[7] = (val
*) var71
;
3584 ((struct instance_array__NativeArray
*)var79
)->values
[8] = (val
*) var73
;
3586 ((void (*)(val
*, val
*, long))(var77
->class->vft
[COLOR_array__Array__with_native
]))(var77
, var79
, var78
) /* with_native on <var77:Array[Object]>*/;
3590 var80
= ((val
* (*)(val
*))(var77
->class->vft
[COLOR_string__Object__to_s
]))(var77
) /* to_s on <var77:Array[Object]>*/;
3593 var81
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var80
, var_mtype
);
3600 { /* Inline separate_compiler#SeparateCompiler#undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
3601 var84
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___undead_types
].val
; /* _undead_types on <var_compiler:SeparateCompiler> */
3602 if (unlikely(var84
== NULL
)) {
3603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
3604 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 155);
3608 RET_LABEL83
:(void)0;
3612 ((void (*)(val
*, val
*))(var82
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var82
, var_mtype
) /* add on <var82:Set[MType]>*/;
3619 var89
= string__NativeString__to_s_with_length(var87
, var88
);
3624 var90
= abstract_compiler__MGenericType__c_name(var_mtype
);
3626 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
3627 { /* var91 = array_instance Array[Object] */
3629 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
3630 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var86
;
3631 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var90
;
3633 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
3637 var94
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
3640 abstract_compiler__AbstractCompilerVisitor__require_declaration(self
, var94
); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:SeparateCompilerVisitor>*/
3647 var99
= string__NativeString__to_s_with_length(var97
, var98
);
3652 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType(MGenericType)> */
3653 var102
= var_mtype
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <var_mtype:MClassType(MGenericType)> */
3654 if (unlikely(var102
== NULL
)) {
3655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3656 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
3660 RET_LABEL101
:(void)0;
3664 var103
= abstract_compiler__MClass__c_name(var100
);
3667 var105
= varonce104
;
3671 var108
= string__NativeString__to_s_with_length(var106
, var107
);
3673 varonce104
= var105
;
3676 var110
= varonce109
;
3678 var111
= ", &type_";
3680 var113
= string__NativeString__to_s_with_length(var111
, var112
);
3682 varonce109
= var110
;
3685 var114
= abstract_compiler__MGenericType__c_name(var_mtype
);
3688 var116
= varonce115
;
3692 var119
= string__NativeString__to_s_with_length(var117
, var118
);
3694 varonce115
= var116
;
3696 var120
= NEW_array__Array(&type_array__Arraykernel__Object
);
3697 { /* var120 = array_instance Array[Object] */
3699 var122
= NEW_array__NativeArray(var121
, &type_array__NativeArraykernel__Object
);
3700 ((struct instance_array__NativeArray
*)var122
)->values
[0] = (val
*) var96
;
3701 ((struct instance_array__NativeArray
*)var122
)->values
[1] = (val
*) var103
;
3702 ((struct instance_array__NativeArray
*)var122
)->values
[2] = (val
*) var105
;
3703 ((struct instance_array__NativeArray
*)var122
)->values
[3] = (val
*) var_length
;
3704 ((struct instance_array__NativeArray
*)var122
)->values
[4] = (val
*) var110
;
3705 ((struct instance_array__NativeArray
*)var122
)->values
[5] = (val
*) var114
;
3706 ((struct instance_array__NativeArray
*)var122
)->values
[6] = (val
*) var116
;
3708 ((void (*)(val
*, val
*, long))(var120
->class->vft
[COLOR_array__Array__with_native
]))(var120
, var122
, var121
) /* with_native on <var120:Array[Object]>*/;
3712 var123
= ((val
* (*)(val
*))(var120
->class->vft
[COLOR_string__Object__to_s
]))(var120
) /* to_s on <var120:Array[Object]>*/;
3715 var124
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var123
, var_mtype
);
3722 /* method separate_compiler#SeparateCompilerVisitor#native_array_instance for (self: Object, MType, RuntimeVariable): RuntimeVariable */
3723 val
* VIRTUAL_separate_compiler__SeparateCompilerVisitor__native_array_instance(val
* self
, val
* p0
, val
* p1
) {
3724 val
* var
/* : RuntimeVariable */;
3725 val
* var1
/* : RuntimeVariable */;
3726 var1
= separate_compiler__SeparateCompilerVisitor__native_array_instance(self
, p0
, p1
);
3731 /* method separate_compiler#SeparateCompilerVisitor#native_array_def for (self: SeparateCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */
3732 void separate_compiler__SeparateCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
3733 val
* var_pname
/* var pname: String */;
3734 val
* var_ret_type
/* var ret_type: nullable MType */;
3735 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
3736 val
* var
/* : nullable Object */;
3737 val
* var1
/* : MType */;
3738 val
* var3
/* : MType */;
3739 val
* var_elttype
/* var elttype: MType */;
3740 static val
* varonce
;
3741 val
* var4
/* : String */;
3742 char* var5
/* : NativeString */;
3743 long var6
/* : Int */;
3744 val
* var7
/* : FlatString */;
3745 val
* var8
/* : MClass */;
3746 val
* var_nclass
/* var nclass: MClass */;
3747 static val
* varonce9
;
3748 val
* var10
/* : String */;
3749 char* var11
/* : NativeString */;
3750 long var12
/* : Int */;
3751 val
* var13
/* : FlatString */;
3752 val
* var14
/* : String */;
3753 static val
* varonce15
;
3754 val
* var16
/* : String */;
3755 char* var17
/* : NativeString */;
3756 long var18
/* : Int */;
3757 val
* var19
/* : FlatString */;
3758 long var20
/* : Int */;
3759 val
* var21
/* : nullable Object */;
3760 static val
* varonce22
;
3761 val
* var23
/* : String */;
3762 char* var24
/* : NativeString */;
3763 long var25
/* : Int */;
3764 val
* var26
/* : FlatString */;
3765 val
* var27
/* : Array[Object] */;
3766 long var28
/* : Int */;
3767 val
* var29
/* : NativeArray[Object] */;
3768 val
* var30
/* : String */;
3769 val
* var_recv
/* var recv: String */;
3770 static val
* varonce31
;
3771 val
* var32
/* : String */;
3772 char* var33
/* : NativeString */;
3773 long var34
/* : Int */;
3774 val
* var35
/* : FlatString */;
3775 short int var36
/* : Bool */;
3776 short int var37
/* : Bool */;
3777 static val
* varonce38
;
3778 val
* var39
/* : String */;
3779 char* var40
/* : NativeString */;
3780 long var41
/* : Int */;
3781 val
* var42
/* : FlatString */;
3782 long var43
/* : Int */;
3783 val
* var44
/* : nullable Object */;
3784 static val
* varonce45
;
3785 val
* var46
/* : String */;
3786 char* var47
/* : NativeString */;
3787 long var48
/* : Int */;
3788 val
* var49
/* : FlatString */;
3789 val
* var50
/* : Array[Object] */;
3790 long var51
/* : Int */;
3791 val
* var52
/* : NativeArray[Object] */;
3792 val
* var53
/* : String */;
3793 val
* var54
/* : RuntimeVariable */;
3794 static val
* varonce55
;
3795 val
* var56
/* : String */;
3796 char* var57
/* : NativeString */;
3797 long var58
/* : Int */;
3798 val
* var59
/* : FlatString */;
3799 short int var60
/* : Bool */;
3800 short int var61
/* : Bool */;
3801 static val
* varonce62
;
3802 val
* var63
/* : String */;
3803 char* var64
/* : NativeString */;
3804 long var65
/* : Int */;
3805 val
* var66
/* : FlatString */;
3806 long var67
/* : Int */;
3807 val
* var68
/* : nullable Object */;
3808 static val
* varonce69
;
3809 val
* var70
/* : String */;
3810 char* var71
/* : NativeString */;
3811 long var72
/* : Int */;
3812 val
* var73
/* : FlatString */;
3813 long var74
/* : Int */;
3814 val
* var75
/* : nullable Object */;
3815 static val
* varonce76
;
3816 val
* var77
/* : String */;
3817 char* var78
/* : NativeString */;
3818 long var79
/* : Int */;
3819 val
* var80
/* : FlatString */;
3820 val
* var81
/* : Array[Object] */;
3821 long var82
/* : Int */;
3822 val
* var83
/* : NativeArray[Object] */;
3823 val
* var84
/* : String */;
3824 static val
* varonce85
;
3825 val
* var86
/* : String */;
3826 char* var87
/* : NativeString */;
3827 long var88
/* : Int */;
3828 val
* var89
/* : FlatString */;
3829 short int var90
/* : Bool */;
3830 short int var91
/* : Bool */;
3831 static val
* varonce92
;
3832 val
* var93
/* : String */;
3833 char* var94
/* : NativeString */;
3834 long var95
/* : Int */;
3835 val
* var96
/* : FlatString */;
3836 val
* var97
/* : String */;
3837 static val
* varonce98
;
3838 val
* var99
/* : String */;
3839 char* var100
/* : NativeString */;
3840 long var101
/* : Int */;
3841 val
* var102
/* : FlatString */;
3842 long var103
/* : Int */;
3843 val
* var104
/* : nullable Object */;
3844 static val
* varonce105
;
3845 val
* var106
/* : String */;
3846 char* var107
/* : NativeString */;
3847 long var108
/* : Int */;
3848 val
* var109
/* : FlatString */;
3849 val
* var110
/* : Array[Object] */;
3850 long var111
/* : Int */;
3851 val
* var112
/* : NativeArray[Object] */;
3852 val
* var113
/* : String */;
3853 val
* var114
/* : RuntimeVariable */;
3854 static val
* varonce115
;
3855 val
* var116
/* : String */;
3856 char* var117
/* : NativeString */;
3857 long var118
/* : Int */;
3858 val
* var119
/* : FlatString */;
3859 short int var120
/* : Bool */;
3860 short int var121
/* : Bool */;
3861 static val
* varonce122
;
3862 val
* var123
/* : String */;
3863 char* var124
/* : NativeString */;
3864 long var125
/* : Int */;
3865 val
* var126
/* : FlatString */;
3866 val
* var127
/* : String */;
3867 static val
* varonce128
;
3868 val
* var129
/* : String */;
3869 char* var130
/* : NativeString */;
3870 long var131
/* : Int */;
3871 val
* var132
/* : FlatString */;
3872 long var133
/* : Int */;
3873 val
* var134
/* : nullable Object */;
3874 static val
* varonce135
;
3875 val
* var136
/* : String */;
3876 char* var137
/* : NativeString */;
3877 long var138
/* : Int */;
3878 val
* var139
/* : FlatString */;
3879 val
* var140
/* : Array[Object] */;
3880 long var141
/* : Int */;
3881 val
* var142
/* : NativeArray[Object] */;
3882 val
* var143
/* : String */;
3883 val
* var_recv1
/* var recv1: String */;
3884 static val
* varonce144
;
3885 val
* var145
/* : String */;
3886 char* var146
/* : NativeString */;
3887 long var147
/* : Int */;
3888 val
* var148
/* : FlatString */;
3889 static val
* varonce149
;
3890 val
* var150
/* : String */;
3891 char* var151
/* : NativeString */;
3892 long var152
/* : Int */;
3893 val
* var153
/* : FlatString */;
3894 static val
* varonce154
;
3895 val
* var155
/* : String */;
3896 char* var156
/* : NativeString */;
3897 long var157
/* : Int */;
3898 val
* var158
/* : FlatString */;
3899 long var159
/* : Int */;
3900 val
* var160
/* : nullable Object */;
3901 static val
* varonce161
;
3902 val
* var162
/* : String */;
3903 char* var163
/* : NativeString */;
3904 long var164
/* : Int */;
3905 val
* var165
/* : FlatString */;
3906 val
* var166
/* : String */;
3907 static val
* varonce167
;
3908 val
* var168
/* : String */;
3909 char* var169
/* : NativeString */;
3910 long var170
/* : Int */;
3911 val
* var171
/* : FlatString */;
3912 val
* var172
/* : Array[Object] */;
3913 long var173
/* : Int */;
3914 val
* var174
/* : NativeArray[Object] */;
3915 val
* var175
/* : String */;
3920 var
= abstract_collection__SequenceRead__first(var_arguments
);
3923 { /* Inline abstract_compiler#RuntimeVariable#mtype (var) on <var:nullable Object(RuntimeVariable)> */
3924 var3
= var
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var:nullable Object(RuntimeVariable)> */
3925 if (unlikely(var3
== NULL
)) {
3926 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3927 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
3938 var5
= "NativeArray";
3940 var7
= string__NativeString__to_s_with_length(var5
, var6
);
3945 var8
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var4
);
3951 var11
= "((struct instance_";
3953 var13
= string__NativeString__to_s_with_length(var11
, var12
);
3958 var14
= separate_compiler__MClass__c_instance_name(var_nclass
);
3965 var19
= string__NativeString__to_s_with_length(var17
, var18
);
3971 var21
= array__Array___91d_93d(var_arguments
, var20
);
3976 var24
= ")->values";
3978 var26
= string__NativeString__to_s_with_length(var24
, var25
);
3982 var27
= NEW_array__Array(&type_array__Arraykernel__Object
);
3983 { /* var27 = array_instance Array[Object] */
3985 var29
= NEW_array__NativeArray(var28
, &type_array__NativeArraykernel__Object
);
3986 ((struct instance_array__NativeArray
*)var29
)->values
[0] = (val
*) var10
;
3987 ((struct instance_array__NativeArray
*)var29
)->values
[1] = (val
*) var14
;
3988 ((struct instance_array__NativeArray
*)var29
)->values
[2] = (val
*) var16
;
3989 ((struct instance_array__NativeArray
*)var29
)->values
[3] = (val
*) var21
;
3990 ((struct instance_array__NativeArray
*)var29
)->values
[4] = (val
*) var23
;
3992 ((void (*)(val
*, val
*, long))(var27
->class->vft
[COLOR_array__Array__with_native
]))(var27
, var29
, var28
) /* with_native on <var27:Array[Object]>*/;
3996 var30
= ((val
* (*)(val
*))(var27
->class->vft
[COLOR_string__Object__to_s
]))(var27
) /* to_s on <var27:Array[Object]>*/;
4004 var35
= string__NativeString__to_s_with_length(var33
, var34
);
4009 var37
= string__FlatString___61d_61d(var_pname
, var32
);
4018 var42
= string__NativeString__to_s_with_length(var40
, var41
);
4024 var44
= array__Array___91d_93d(var_arguments
, var43
);
4031 var49
= string__NativeString__to_s_with_length(var47
, var48
);
4035 var50
= NEW_array__Array(&type_array__Arraykernel__Object
);
4036 { /* var50 = array_instance Array[Object] */
4038 var52
= NEW_array__NativeArray(var51
, &type_array__NativeArraykernel__Object
);
4039 ((struct instance_array__NativeArray
*)var52
)->values
[0] = (val
*) var_recv
;
4040 ((struct instance_array__NativeArray
*)var52
)->values
[1] = (val
*) var39
;
4041 ((struct instance_array__NativeArray
*)var52
)->values
[2] = (val
*) var44
;
4042 ((struct instance_array__NativeArray
*)var52
)->values
[3] = (val
*) var46
;
4044 ((void (*)(val
*, val
*, long))(var50
->class->vft
[COLOR_array__Array__with_native
]))(var50
, var52
, var51
) /* with_native on <var50:Array[Object]>*/;
4048 var53
= ((val
* (*)(val
*))(var50
->class->vft
[COLOR_string__Object__to_s
]))(var50
) /* to_s on <var50:Array[Object]>*/;
4050 if (unlikely(var_ret_type
== NULL
)) {
4051 PRINT_ERROR("Runtime error: %s", "Cast failed");
4052 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1637);
4056 var54
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var53
, var_ret_type
);
4059 abstract_compiler__AbstractCompilerVisitor__ret(self
, var54
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateCompilerVisitor>*/
4068 var59
= string__NativeString__to_s_with_length(var57
, var58
);
4073 var61
= string__FlatString___61d_61d(var_pname
, var56
);
4082 var66
= string__NativeString__to_s_with_length(var64
, var65
);
4088 var68
= array__Array___91d_93d(var_arguments
, var67
);
4095 var73
= string__NativeString__to_s_with_length(var71
, var72
);
4101 var75
= array__Array___91d_93d(var_arguments
, var74
);
4108 var80
= string__NativeString__to_s_with_length(var78
, var79
);
4112 var81
= NEW_array__Array(&type_array__Arraykernel__Object
);
4113 { /* var81 = array_instance Array[Object] */
4115 var83
= NEW_array__NativeArray(var82
, &type_array__NativeArraykernel__Object
);
4116 ((struct instance_array__NativeArray
*)var83
)->values
[0] = (val
*) var_recv
;
4117 ((struct instance_array__NativeArray
*)var83
)->values
[1] = (val
*) var63
;
4118 ((struct instance_array__NativeArray
*)var83
)->values
[2] = (val
*) var68
;
4119 ((struct instance_array__NativeArray
*)var83
)->values
[3] = (val
*) var70
;
4120 ((struct instance_array__NativeArray
*)var83
)->values
[4] = (val
*) var75
;
4121 ((struct instance_array__NativeArray
*)var83
)->values
[5] = (val
*) var77
;
4123 ((void (*)(val
*, val
*, long))(var81
->class->vft
[COLOR_array__Array__with_native
]))(var81
, var83
, var82
) /* with_native on <var81:Array[Object]>*/;
4127 var84
= ((val
* (*)(val
*))(var81
->class->vft
[COLOR_string__Object__to_s
]))(var81
) /* to_s on <var81:Array[Object]>*/;
4130 abstract_compiler__AbstractCompilerVisitor__add(self
, var84
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4139 var89
= string__NativeString__to_s_with_length(var87
, var88
);
4144 var91
= string__FlatString___61d_61d(var_pname
, var86
);
4151 var94
= "((struct instance_";
4153 var96
= string__NativeString__to_s_with_length(var94
, var95
);
4158 var97
= separate_compiler__MClass__c_instance_name(var_nclass
);
4165 var102
= string__NativeString__to_s_with_length(var100
, var101
);
4171 var104
= array__Array___91d_93d(var_arguments
, var103
);
4174 var106
= varonce105
;
4176 var107
= ")->length";
4178 var109
= string__NativeString__to_s_with_length(var107
, var108
);
4180 varonce105
= var106
;
4182 var110
= NEW_array__Array(&type_array__Arraykernel__Object
);
4183 { /* var110 = array_instance Array[Object] */
4185 var112
= NEW_array__NativeArray(var111
, &type_array__NativeArraykernel__Object
);
4186 ((struct instance_array__NativeArray
*)var112
)->values
[0] = (val
*) var93
;
4187 ((struct instance_array__NativeArray
*)var112
)->values
[1] = (val
*) var97
;
4188 ((struct instance_array__NativeArray
*)var112
)->values
[2] = (val
*) var99
;
4189 ((struct instance_array__NativeArray
*)var112
)->values
[3] = (val
*) var104
;
4190 ((struct instance_array__NativeArray
*)var112
)->values
[4] = (val
*) var106
;
4192 ((void (*)(val
*, val
*, long))(var110
->class->vft
[COLOR_array__Array__with_native
]))(var110
, var112
, var111
) /* with_native on <var110:Array[Object]>*/;
4196 var113
= ((val
* (*)(val
*))(var110
->class->vft
[COLOR_string__Object__to_s
]))(var110
) /* to_s on <var110:Array[Object]>*/;
4198 if (unlikely(var_ret_type
== NULL
)) {
4199 PRINT_ERROR("Runtime error: %s", "Cast failed");
4200 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1643);
4204 var114
= abstract_compiler__AbstractCompilerVisitor__new_expr(self
, var113
, var_ret_type
);
4207 abstract_compiler__AbstractCompilerVisitor__ret(self
, var114
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateCompilerVisitor>*/
4212 var116
= varonce115
;
4216 var119
= string__NativeString__to_s_with_length(var117
, var118
);
4218 varonce115
= var116
;
4221 var121
= string__FlatString___61d_61d(var_pname
, var116
);
4226 var123
= varonce122
;
4228 var124
= "((struct instance_";
4230 var126
= string__NativeString__to_s_with_length(var124
, var125
);
4232 varonce122
= var123
;
4235 var127
= separate_compiler__MClass__c_instance_name(var_nclass
);
4238 var129
= varonce128
;
4242 var132
= string__NativeString__to_s_with_length(var130
, var131
);
4244 varonce128
= var129
;
4248 var134
= array__Array___91d_93d(var_arguments
, var133
);
4251 var136
= varonce135
;
4253 var137
= ")->values";
4255 var139
= string__NativeString__to_s_with_length(var137
, var138
);
4257 varonce135
= var136
;
4259 var140
= NEW_array__Array(&type_array__Arraykernel__Object
);
4260 { /* var140 = array_instance Array[Object] */
4262 var142
= NEW_array__NativeArray(var141
, &type_array__NativeArraykernel__Object
);
4263 ((struct instance_array__NativeArray
*)var142
)->values
[0] = (val
*) var123
;
4264 ((struct instance_array__NativeArray
*)var142
)->values
[1] = (val
*) var127
;
4265 ((struct instance_array__NativeArray
*)var142
)->values
[2] = (val
*) var129
;
4266 ((struct instance_array__NativeArray
*)var142
)->values
[3] = (val
*) var134
;
4267 ((struct instance_array__NativeArray
*)var142
)->values
[4] = (val
*) var136
;
4269 ((void (*)(val
*, val
*, long))(var140
->class->vft
[COLOR_array__Array__with_native
]))(var140
, var142
, var141
) /* with_native on <var140:Array[Object]>*/;
4273 var143
= ((val
* (*)(val
*))(var140
->class->vft
[COLOR_string__Object__to_s
]))(var140
) /* to_s on <var140:Array[Object]>*/;
4277 var145
= varonce144
;
4281 var148
= string__NativeString__to_s_with_length(var146
, var147
);
4283 varonce144
= var145
;
4286 var150
= varonce149
;
4290 var153
= string__NativeString__to_s_with_length(var151
, var152
);
4292 varonce149
= var150
;
4295 var155
= varonce154
;
4299 var158
= string__NativeString__to_s_with_length(var156
, var157
);
4301 varonce154
= var155
;
4305 var160
= array__Array___91d_93d(var_arguments
, var159
);
4308 var162
= varonce161
;
4310 var163
= "*sizeof(";
4312 var165
= string__NativeString__to_s_with_length(var163
, var164
);
4314 varonce161
= var162
;
4317 var166
= ((val
* (*)(val
*))(var_elttype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_elttype
) /* ctype on <var_elttype:MType>*/;
4320 var168
= varonce167
;
4324 var171
= string__NativeString__to_s_with_length(var169
, var170
);
4326 varonce167
= var168
;
4328 var172
= NEW_array__Array(&type_array__Arraykernel__Object
);
4329 { /* var172 = array_instance Array[Object] */
4331 var174
= NEW_array__NativeArray(var173
, &type_array__NativeArraykernel__Object
);
4332 ((struct instance_array__NativeArray
*)var174
)->values
[0] = (val
*) var145
;
4333 ((struct instance_array__NativeArray
*)var174
)->values
[1] = (val
*) var_recv1
;
4334 ((struct instance_array__NativeArray
*)var174
)->values
[2] = (val
*) var150
;
4335 ((struct instance_array__NativeArray
*)var174
)->values
[3] = (val
*) var_recv
;
4336 ((struct instance_array__NativeArray
*)var174
)->values
[4] = (val
*) var155
;
4337 ((struct instance_array__NativeArray
*)var174
)->values
[5] = (val
*) var160
;
4338 ((struct instance_array__NativeArray
*)var174
)->values
[6] = (val
*) var162
;
4339 ((struct instance_array__NativeArray
*)var174
)->values
[7] = (val
*) var166
;
4340 ((struct instance_array__NativeArray
*)var174
)->values
[8] = (val
*) var168
;
4342 ((void (*)(val
*, val
*, long))(var172
->class->vft
[COLOR_array__Array__with_native
]))(var172
, var174
, var173
) /* with_native on <var172:Array[Object]>*/;
4346 var175
= ((val
* (*)(val
*))(var172
->class->vft
[COLOR_string__Object__to_s
]))(var172
) /* to_s on <var172:Array[Object]>*/;
4349 abstract_compiler__AbstractCompilerVisitor__add(self
, var175
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:SeparateCompilerVisitor>*/
4359 /* method separate_compiler#SeparateCompilerVisitor#native_array_def for (self: Object, String, nullable MType, Array[RuntimeVariable]) */
4360 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4361 separate_compiler__SeparateCompilerVisitor__native_array_def(self
, p0
, p1
, p2
); /* Direct call separate_compiler#SeparateCompilerVisitor#native_array_def on <self:Object(SeparateCompilerVisitor)>*/
4364 /* method separate_compiler#SeparateCompilerVisitor#calloc_array for (self: SeparateCompilerVisitor, MType, Array[RuntimeVariable]) */
4365 void separate_compiler__SeparateCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
4366 val
* var_ret_type
/* var ret_type: MType */;
4367 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
4368 static val
* varonce
;
4369 val
* var
/* : String */;
4370 char* var1
/* : NativeString */;
4371 long var2
/* : Int */;
4372 val
* var3
/* : FlatString */;
4373 val
* var4
/* : MClass */;
4374 val
* var_mclass
/* var mclass: MClass */;
4375 val
* var5
/* : MClassType */;
4376 val
* var7
/* : MClassType */;
4377 val
* var8
/* : Array[MType] */;
4378 val
* var10
/* : Array[MType] */;
4379 val
* var11
/* : nullable Object */;
4380 short int var12
/* : Bool */;
4383 const char* var_class_name
;
4384 val
* var_ft
/* var ft: MParameterType */;
4385 long var13
/* : Int */;
4386 val
* var14
/* : nullable Object */;
4387 val
* var15
/* : RuntimeVariable */;
4388 val
* var_res
/* var res: RuntimeVariable */;
4394 var1
= "ArrayCapable";
4396 var3
= string__NativeString__to_s_with_length(var1
, var2
);
4401 var4
= abstract_compiler__AbstractCompilerVisitor__get_class(self
, var
);
4405 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
4406 var7
= var_mclass
->attrs
[COLOR_model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
4407 if (unlikely(var7
== NULL
)) {
4408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4409 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 417);
4417 { /* Inline model#MClassType#arguments (var5) on <var5:MClassType> */
4418 var10
= var5
->attrs
[COLOR_model__MClassType___arguments
].val
; /* _arguments on <var5:MClassType> */
4419 if (unlikely(var10
== NULL
)) {
4420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
4421 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 979);
4429 var11
= abstract_collection__SequenceRead__first(var8
);
4431 /* <var11:nullable Object(MType)> isa MParameterType */
4432 cltype
= type_model__MParameterType
.color
;
4433 idtype
= type_model__MParameterType
.id
;
4434 if(cltype
>= var11
->type
->table_size
) {
4437 var12
= var11
->type
->type_table
[cltype
] == idtype
;
4439 if (unlikely(!var12
)) {
4440 var_class_name
= var11
== NULL ?
"null" : var11
->type
->name
;
4441 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MParameterType", var_class_name
);
4442 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1655);
4448 var14
= array__Array___91d_93d(var_arguments
, var13
);
4451 var15
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__native_array_instance
]))(self
, var_ft
, var14
) /* native_array_instance on <self:SeparateCompilerVisitor>*/;
4455 abstract_compiler__AbstractCompilerVisitor__ret(self
, var_res
); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <self:SeparateCompilerVisitor>*/
4459 /* method separate_compiler#SeparateCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
4460 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
4461 separate_compiler__SeparateCompilerVisitor__calloc_array(self
, p0
, p1
); /* Direct call separate_compiler#SeparateCompilerVisitor#calloc_array on <self:Object(SeparateCompilerVisitor)>*/
4464 /* method separate_compiler#SeparateCompilerVisitor#link_unresolved_type for (self: SeparateCompilerVisitor, MClassDef, MType) */
4465 void separate_compiler__SeparateCompilerVisitor__link_unresolved_type(val
* self
, val
* p0
, val
* p1
) {
4466 val
* var_mclassdef
/* var mclassdef: MClassDef */;
4467 val
* var_mtype
/* var mtype: MType */;
4468 short int var
/* : Bool */;
4469 val
* var1
/* : AbstractCompiler */;
4470 val
* var3
/* : AbstractCompiler */;
4471 val
* var_compiler
/* var compiler: SeparateCompiler */;
4472 val
* var4
/* : Map[MClassDef, Set[MType]] */;
4473 val
* var6
/* : Map[MClassDef, Set[MType]] */;
4474 val
* var7
/* : nullable Frame */;
4475 val
* var9
/* : nullable Frame */;
4476 val
* var10
/* : MPropDef */;
4477 val
* var12
/* : MPropDef */;
4478 val
* var13
/* : MClassDef */;
4479 val
* var15
/* : MClassDef */;
4480 short int var16
/* : Bool */;
4481 short int var17
/* : Bool */;
4482 val
* var18
/* : Map[MClassDef, Set[MType]] */;
4483 val
* var20
/* : Map[MClassDef, Set[MType]] */;
4484 val
* var21
/* : nullable Frame */;
4485 val
* var23
/* : nullable Frame */;
4486 val
* var24
/* : MPropDef */;
4487 val
* var26
/* : MPropDef */;
4488 val
* var27
/* : MClassDef */;
4489 val
* var29
/* : MClassDef */;
4490 val
* var30
/* : HashSet[MType] */;
4491 val
* var31
/* : Map[MClassDef, Set[MType]] */;
4492 val
* var33
/* : Map[MClassDef, Set[MType]] */;
4493 val
* var34
/* : nullable Frame */;
4494 val
* var36
/* : nullable Frame */;
4495 val
* var37
/* : MPropDef */;
4496 val
* var39
/* : MPropDef */;
4497 val
* var40
/* : MClassDef */;
4498 val
* var42
/* : MClassDef */;
4499 val
* var43
/* : nullable Object */;
4503 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
4505 if (unlikely(!var
)) {
4506 PRINT_ERROR("Runtime error: %s", "Assert failed");
4507 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1661);
4511 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:SeparateCompilerVisitor> */
4512 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___compiler
].val
; /* _compiler on <self:SeparateCompilerVisitor> */
4513 if (unlikely(var3
== NULL
)) {
4514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4515 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 984);
4522 var_compiler
= var1
;
4524 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
4525 var6
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
4526 if (unlikely(var6
== NULL
)) {
4527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
4528 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156);
4536 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
4537 var9
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
4543 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4544 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1663);
4547 { /* Inline abstract_compiler#Frame#mpropdef (var7) on <var7:nullable Frame> */
4548 if (unlikely(var7
== NULL
)) {
4549 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4550 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
4553 var12
= var7
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var7:nullable Frame> */
4554 if (unlikely(var12
== NULL
)) {
4555 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
4556 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
4560 RET_LABEL11
:(void)0;
4564 { /* Inline model#MPropDef#mclassdef (var10) on <var10:MPropDef> */
4565 var15
= var10
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var10:MPropDef> */
4566 if (unlikely(var15
== NULL
)) {
4567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4568 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
4572 RET_LABEL14
:(void)0;
4576 var16
= abstract_collection__MapRead__has_key(var4
, var13
);
4581 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
4582 var20
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
4583 if (unlikely(var20
== NULL
)) {
4584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
4585 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156);
4589 RET_LABEL19
:(void)0;
4593 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
4594 var23
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
4596 RET_LABEL22
:(void)0;
4599 if (var21
== NULL
) {
4600 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4601 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1664);
4604 { /* Inline abstract_compiler#Frame#mpropdef (var21) on <var21:nullable Frame> */
4605 if (unlikely(var21
== NULL
)) {
4606 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4607 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
4610 var26
= var21
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var21:nullable Frame> */
4611 if (unlikely(var26
== NULL
)) {
4612 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
4613 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
4617 RET_LABEL25
:(void)0;
4621 { /* Inline model#MPropDef#mclassdef (var24) on <var24:MPropDef> */
4622 var29
= var24
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var24:MPropDef> */
4623 if (unlikely(var29
== NULL
)) {
4624 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4625 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
4629 RET_LABEL28
:(void)0;
4632 var30
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
4634 hash_collection__HashSet__init(var30
); /* Direct call hash_collection#HashSet#init on <var30:HashSet[MType]>*/
4637 ((void (*)(val
*, val
*, val
*))(var18
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var18
, var27
, var30
) /* []= on <var18:Map[MClassDef, Set[MType]]>*/;
4642 { /* Inline separate_compiler#SeparateCompiler#live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
4643 var33
= var_compiler
->attrs
[COLOR_separate_compiler__SeparateCompiler___live_unresolved_types
].val
; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
4644 if (unlikely(var33
== NULL
)) {
4645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
4646 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 156);
4650 RET_LABEL32
:(void)0;
4654 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:SeparateCompilerVisitor> */
4655 var36
= self
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
; /* _frame on <self:SeparateCompilerVisitor> */
4657 RET_LABEL35
:(void)0;
4660 if (var34
== NULL
) {
4661 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4662 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1666);
4665 { /* Inline abstract_compiler#Frame#mpropdef (var34) on <var34:nullable Frame> */
4666 if (unlikely(var34
== NULL
)) {
4667 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4668 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
4671 var39
= var34
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
; /* _mpropdef on <var34:nullable Frame> */
4672 if (unlikely(var39
== NULL
)) {
4673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
4674 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1531);
4678 RET_LABEL38
:(void)0;
4682 { /* Inline model#MPropDef#mclassdef (var37) on <var37:MPropDef> */
4683 var42
= var37
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var37:MPropDef> */
4684 if (unlikely(var42
== NULL
)) {
4685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4686 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
4690 RET_LABEL41
:(void)0;
4694 var43
= ((val
* (*)(val
*, val
*))(var31
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var31
, var40
) /* [] on <var31:Map[MClassDef, Set[MType]]>*/;
4697 ((void (*)(val
*, val
*))(var43
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var43
, var_mtype
) /* add on <var43:nullable Object(Set[MType])>*/;
4701 /* method separate_compiler#SeparateCompilerVisitor#link_unresolved_type for (self: Object, MClassDef, MType) */
4702 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__link_unresolved_type(val
* self
, val
* p0
, val
* p1
) {
4703 separate_compiler__SeparateCompilerVisitor__link_unresolved_type(self
, p0
, p1
); /* Direct call separate_compiler#SeparateCompilerVisitor#link_unresolved_type on <self:Object(SeparateCompilerVisitor)>*/
4706 /* method separate_compiler#MMethodDef#separate_runtime_function for (self: MMethodDef): AbstractRuntimeFunction */
4707 val
* separate_compiler__MMethodDef__separate_runtime_function(val
* self
) {
4708 val
* var
/* : AbstractRuntimeFunction */;
4709 val
* var1
/* : nullable SeparateRuntimeFunction */;
4710 val
* var3
/* : nullable SeparateRuntimeFunction */;
4711 val
* var_res
/* var res: nullable SeparateRuntimeFunction */;
4712 val
* var4
/* : null */;
4713 short int var5
/* : Bool */;
4714 short int var6
/* : Bool */;
4715 val
* var_other
/* var other: nullable Object */;
4716 short int var8
/* : Bool */;
4717 short int var10
/* : Bool */;
4718 val
* var11
/* : SeparateRuntimeFunction */;
4720 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache (self) on <self:MMethodDef> */
4721 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
; /* _separate_runtime_function_cache on <self:MMethodDef> */
4728 if (var_res
== NULL
) {
4729 var5
= 1; /* is null */
4731 var5
= 0; /* arg is null but recv is not */
4734 { /* Inline kernel#Object#== (var_res,var4) on <var_res:nullable SeparateRuntimeFunction> */
4737 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
4738 var10
= var_res
== var_other
;
4751 var11
= NEW_separate_compiler__SeparateRuntimeFunction(&type_separate_compiler__SeparateRuntimeFunction
);
4753 { /* Inline abstract_compiler#AbstractRuntimeFunction#init (var11,self) on <var11:SeparateRuntimeFunction> */
4754 var11
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
= self
; /* _mmethoddef on <var11:SeparateRuntimeFunction> */
4755 RET_LABEL12
:(void)0;
4760 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
4761 self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
= var_res
; /* _separate_runtime_function_cache on <self:MMethodDef> */
4762 RET_LABEL13
:(void)0;
4772 /* method separate_compiler#MMethodDef#separate_runtime_function for (self: Object): AbstractRuntimeFunction */
4773 val
* VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function(val
* self
) {
4774 val
* var
/* : AbstractRuntimeFunction */;
4775 val
* var1
/* : AbstractRuntimeFunction */;
4776 var1
= separate_compiler__MMethodDef__separate_runtime_function(self
);
4781 /* method separate_compiler#MMethodDef#separate_runtime_function_cache for (self: MMethodDef): nullable SeparateRuntimeFunction */
4782 val
* separate_compiler__MMethodDef__separate_runtime_function_cache(val
* self
) {
4783 val
* var
/* : nullable SeparateRuntimeFunction */;
4784 val
* var1
/* : nullable SeparateRuntimeFunction */;
4785 var1
= self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
; /* _separate_runtime_function_cache on <self:MMethodDef> */
4790 /* method separate_compiler#MMethodDef#separate_runtime_function_cache for (self: Object): nullable SeparateRuntimeFunction */
4791 val
* VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function_cache(val
* self
) {
4792 val
* var
/* : nullable SeparateRuntimeFunction */;
4793 val
* var1
/* : nullable SeparateRuntimeFunction */;
4794 val
* var3
/* : nullable SeparateRuntimeFunction */;
4795 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache (self) on <self:Object(MMethodDef)> */
4796 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
; /* _separate_runtime_function_cache on <self:Object(MMethodDef)> */
4804 /* method separate_compiler#MMethodDef#separate_runtime_function_cache= for (self: MMethodDef, nullable SeparateRuntimeFunction) */
4805 void separate_compiler__MMethodDef__separate_runtime_function_cache_61d(val
* self
, val
* p0
) {
4806 self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
= p0
; /* _separate_runtime_function_cache on <self:MMethodDef> */
4809 /* method separate_compiler#MMethodDef#separate_runtime_function_cache= for (self: Object, nullable SeparateRuntimeFunction) */
4810 void VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function_cache_61d(val
* self
, val
* p0
) {
4811 { /* Inline separate_compiler#MMethodDef#separate_runtime_function_cache= (self,p0) on <self:Object(MMethodDef)> */
4812 self
->attrs
[COLOR_separate_compiler__MMethodDef___separate_runtime_function_cache
].val
= p0
; /* _separate_runtime_function_cache on <self:Object(MMethodDef)> */
4817 /* method separate_compiler#MMethodDef#virtual_runtime_function for (self: MMethodDef): AbstractRuntimeFunction */
4818 val
* separate_compiler__MMethodDef__virtual_runtime_function(val
* self
) {
4819 val
* var
/* : AbstractRuntimeFunction */;
4820 val
* var1
/* : nullable VirtualRuntimeFunction */;
4821 val
* var3
/* : nullable VirtualRuntimeFunction */;
4822 val
* var_res
/* var res: nullable VirtualRuntimeFunction */;
4823 val
* var4
/* : null */;
4824 short int var5
/* : Bool */;
4825 short int var6
/* : Bool */;
4826 val
* var_other
/* var other: nullable Object */;
4827 short int var8
/* : Bool */;
4828 short int var10
/* : Bool */;
4829 val
* var11
/* : VirtualRuntimeFunction */;
4831 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache (self) on <self:MMethodDef> */
4832 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
4839 if (var_res
== NULL
) {
4840 var5
= 1; /* is null */
4842 var5
= 0; /* arg is null but recv is not */
4845 { /* Inline kernel#Object#== (var_res,var4) on <var_res:nullable VirtualRuntimeFunction> */
4848 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable VirtualRuntimeFunction(VirtualRuntimeFunction)> */
4849 var10
= var_res
== var_other
;
4862 var11
= NEW_separate_compiler__VirtualRuntimeFunction(&type_separate_compiler__VirtualRuntimeFunction
);
4864 { /* Inline abstract_compiler#AbstractRuntimeFunction#init (var11,self) on <var11:VirtualRuntimeFunction> */
4865 var11
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
= self
; /* _mmethoddef on <var11:VirtualRuntimeFunction> */
4866 RET_LABEL12
:(void)0;
4871 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
4872 self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
= var_res
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
4873 RET_LABEL13
:(void)0;
4883 /* method separate_compiler#MMethodDef#virtual_runtime_function for (self: Object): AbstractRuntimeFunction */
4884 val
* VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function(val
* self
) {
4885 val
* var
/* : AbstractRuntimeFunction */;
4886 val
* var1
/* : AbstractRuntimeFunction */;
4887 var1
= separate_compiler__MMethodDef__virtual_runtime_function(self
);
4892 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache for (self: MMethodDef): nullable VirtualRuntimeFunction */
4893 val
* separate_compiler__MMethodDef__virtual_runtime_function_cache(val
* self
) {
4894 val
* var
/* : nullable VirtualRuntimeFunction */;
4895 val
* var1
/* : nullable VirtualRuntimeFunction */;
4896 var1
= self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
4901 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache for (self: Object): nullable VirtualRuntimeFunction */
4902 val
* VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function_cache(val
* self
) {
4903 val
* var
/* : nullable VirtualRuntimeFunction */;
4904 val
* var1
/* : nullable VirtualRuntimeFunction */;
4905 val
* var3
/* : nullable VirtualRuntimeFunction */;
4906 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache (self) on <self:Object(MMethodDef)> */
4907 var3
= self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
; /* _virtual_runtime_function_cache on <self:Object(MMethodDef)> */
4915 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache= for (self: MMethodDef, nullable VirtualRuntimeFunction) */
4916 void separate_compiler__MMethodDef__virtual_runtime_function_cache_61d(val
* self
, val
* p0
) {
4917 self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
= p0
; /* _virtual_runtime_function_cache on <self:MMethodDef> */
4920 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache= for (self: Object, nullable VirtualRuntimeFunction) */
4921 void VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function_cache_61d(val
* self
, val
* p0
) {
4922 { /* Inline separate_compiler#MMethodDef#virtual_runtime_function_cache= (self,p0) on <self:Object(MMethodDef)> */
4923 self
->attrs
[COLOR_separate_compiler__MMethodDef___virtual_runtime_function_cache
].val
= p0
; /* _virtual_runtime_function_cache on <self:Object(MMethodDef)> */
4928 /* method separate_compiler#SeparateRuntimeFunction#build_c_name for (self: SeparateRuntimeFunction): String */
4929 val
* separate_compiler__SeparateRuntimeFunction__build_c_name(val
* self
) {
4930 val
* var
/* : String */;
4931 val
* var1
/* : MMethodDef */;
4932 val
* var3
/* : MMethodDef */;
4933 val
* var4
/* : String */;
4934 val
* var5
/* : Array[Object] */;
4935 long var6
/* : Int */;
4936 val
* var7
/* : NativeArray[Object] */;
4937 val
* var8
/* : String */;
4939 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
4940 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
4941 if (unlikely(var3
== NULL
)) {
4942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
4943 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
4951 var4
= abstract_compiler__MPropDef__c_name(var1
);
4953 var5
= NEW_array__Array(&type_array__Arraykernel__Object
);
4954 { /* var5 = array_instance Array[Object] */
4956 var7
= NEW_array__NativeArray(var6
, &type_array__NativeArraykernel__Object
);
4957 ((struct instance_array__NativeArray
*)var7
)->values
[0] = (val
*) var4
;
4959 ((void (*)(val
*, val
*, long))(var5
->class->vft
[COLOR_array__Array__with_native
]))(var5
, var7
, var6
) /* with_native on <var5:Array[Object]>*/;
4963 var8
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_string__Object__to_s
]))(var5
) /* to_s on <var5:Array[Object]>*/;
4970 /* method separate_compiler#SeparateRuntimeFunction#build_c_name for (self: Object): String */
4971 val
* VIRTUAL_separate_compiler__SeparateRuntimeFunction__build_c_name(val
* self
) {
4972 val
* var
/* : String */;
4973 val
* var1
/* : String */;
4974 var1
= separate_compiler__SeparateRuntimeFunction__build_c_name(self
);
4979 /* method separate_compiler#SeparateRuntimeFunction#to_s for (self: SeparateRuntimeFunction): String */
4980 val
* separate_compiler__SeparateRuntimeFunction__to_s(val
* self
) {
4981 val
* var
/* : String */;
4982 val
* var1
/* : MMethodDef */;
4983 val
* var3
/* : MMethodDef */;
4984 val
* var4
/* : String */;
4985 val
* var6
/* : String */;
4987 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
4988 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
4989 if (unlikely(var3
== NULL
)) {
4990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
4991 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
4999 { /* Inline model#MPropDef#to_s (var1) on <var1:MMethodDef> */
5000 var6
= var1
->attrs
[COLOR_model__MPropDef___to_s
].val
; /* _to_s on <var1:MMethodDef> */
5001 if (unlikely(var6
== NULL
)) {
5002 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
5003 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1900);
5015 /* method separate_compiler#SeparateRuntimeFunction#to_s for (self: Object): String */
5016 val
* VIRTUAL_separate_compiler__SeparateRuntimeFunction__to_s(val
* self
) {
5017 val
* var
/* : String */;
5018 val
* var1
/* : String */;
5019 var1
= separate_compiler__SeparateRuntimeFunction__to_s(self
);
5024 /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: SeparateRuntimeFunction, AbstractCompiler) */
5025 void separate_compiler__SeparateRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
5026 short int var
/* : Bool */;
5029 const struct type
* type_struct
;
5030 const char* var_class_name
;
5031 val
* var_compiler
/* var compiler: AbstractCompiler */;
5032 val
* var1
/* : MMethodDef */;
5033 val
* var3
/* : MMethodDef */;
5034 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
5035 val
* var4
/* : MMethodDef */;
5036 val
* var6
/* : MMethodDef */;
5037 val
* var7
/* : MClassDef */;
5038 val
* var9
/* : MClassDef */;
5039 val
* var10
/* : MClassType */;
5040 val
* var12
/* : MClassType */;
5041 val
* var_recv
/* var recv: MClassType */;
5042 val
* var13
/* : AbstractCompilerVisitor */;
5043 val
* var_v
/* var v: AbstractCompilerVisitor */;
5044 val
* var14
/* : RuntimeVariable */;
5045 static val
* varonce
;
5046 val
* var15
/* : String */;
5047 char* var16
/* : NativeString */;
5048 long var17
/* : Int */;
5049 val
* var18
/* : FlatString */;
5050 val
* var_selfvar
/* var selfvar: RuntimeVariable */;
5051 val
* var19
/* : Array[RuntimeVariable] */;
5052 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
5053 val
* var20
/* : Frame */;
5054 short int var22
/* : Bool */;
5057 const struct type
* type_struct25
;
5058 const char* var_class_name26
;
5059 val
* var_frame
/* var frame: Frame */;
5060 val
* var28
/* : nullable MSignature */;
5061 val
* var30
/* : nullable MSignature */;
5062 val
* var31
/* : MClassDef */;
5063 val
* var33
/* : MClassDef */;
5064 val
* var34
/* : MClassType */;
5065 val
* var36
/* : MClassType */;
5066 val
* var37
/* : MClassDef */;
5067 val
* var39
/* : MClassDef */;
5068 val
* var40
/* : MClassType */;
5069 val
* var42
/* : MClassType */;
5070 val
* var43
/* : MClassDef */;
5071 val
* var45
/* : MClassDef */;
5072 val
* var46
/* : MModule */;
5073 val
* var48
/* : MModule */;
5074 short int var49
/* : Bool */;
5075 val
* var50
/* : MSignature */;
5076 val
* var_msignature
/* var msignature: MSignature */;
5077 val
* var51
/* : FlatBuffer */;
5078 val
* var_sig
/* var sig: FlatBuffer */;
5079 val
* var52
/* : FlatBuffer */;
5080 val
* var_comment
/* var comment: FlatBuffer */;
5081 val
* var53
/* : nullable MType */;
5082 val
* var55
/* : nullable MType */;
5083 val
* var_ret
/* var ret: nullable MType */;
5084 val
* var56
/* : null */;
5085 short int var57
/* : Bool */;
5086 short int var58
/* : Bool */;
5087 val
* var_other
/* var other: nullable Object */;
5088 short int var60
/* : Bool */;
5089 short int var61
/* : Bool */;
5090 short int var62
/* : Bool */;
5091 val
* var63
/* : String */;
5092 static val
* varonce64
;
5093 val
* var65
/* : String */;
5094 char* var66
/* : NativeString */;
5095 long var67
/* : Int */;
5096 val
* var68
/* : FlatString */;
5097 val
* var69
/* : Array[Object] */;
5098 long var70
/* : Int */;
5099 val
* var71
/* : NativeArray[Object] */;
5100 val
* var72
/* : String */;
5101 val
* var73
/* : MProperty */;
5102 val
* var75
/* : MProperty */;
5103 short int var76
/* : Bool */;
5104 short int var78
/* : Bool */;
5105 val
* var79
/* : String */;
5106 static val
* varonce80
;
5107 val
* var81
/* : String */;
5108 char* var82
/* : NativeString */;
5109 long var83
/* : Int */;
5110 val
* var84
/* : FlatString */;
5111 val
* var85
/* : Array[Object] */;
5112 long var86
/* : Int */;
5113 val
* var87
/* : NativeArray[Object] */;
5114 val
* var88
/* : String */;
5115 static val
* varonce89
;
5116 val
* var90
/* : String */;
5117 char* var91
/* : NativeString */;
5118 long var92
/* : Int */;
5119 val
* var93
/* : FlatString */;
5120 val
* var94
/* : String */;
5121 static val
* varonce95
;
5122 val
* var96
/* : String */;
5123 char* var97
/* : NativeString */;
5124 long var98
/* : Int */;
5125 val
* var99
/* : FlatString */;
5126 val
* var100
/* : MType */;
5127 val
* var102
/* : MType */;
5128 val
* var103
/* : String */;
5129 static val
* varonce104
;
5130 val
* var105
/* : String */;
5131 char* var106
/* : NativeString */;
5132 long var107
/* : Int */;
5133 val
* var108
/* : FlatString */;
5134 val
* var109
/* : Array[Object] */;
5135 long var110
/* : Int */;
5136 val
* var111
/* : NativeArray[Object] */;
5137 val
* var112
/* : String */;
5138 static val
* varonce113
;
5139 val
* var114
/* : String */;
5140 char* var115
/* : NativeString */;
5141 long var116
/* : Int */;
5142 val
* var117
/* : FlatString */;
5143 static val
* varonce118
;
5144 val
* var119
/* : String */;
5145 char* var120
/* : NativeString */;
5146 long var121
/* : Int */;
5147 val
* var122
/* : FlatString */;
5148 val
* var123
/* : MType */;
5149 val
* var125
/* : MType */;
5150 val
* var126
/* : Array[Object] */;
5151 long var127
/* : Int */;
5152 val
* var128
/* : NativeArray[Object] */;
5153 val
* var129
/* : String */;
5154 val
* var130
/* : Range[Int] */;
5155 long var131
/* : Int */;
5156 long var132
/* : Int */;
5157 val
* var133
/* : Discrete */;
5158 val
* var134
/* : Discrete */;
5159 val
* var135
/* : Iterator[Discrete] */;
5160 short int var136
/* : Bool */;
5161 val
* var137
/* : nullable Object */;
5162 long var_i
/* var i: Int */;
5163 long var138
/* : Int */;
5164 val
* var139
/* : Array[MParameter] */;
5165 val
* var141
/* : Array[MParameter] */;
5166 val
* var142
/* : nullable Object */;
5167 val
* var143
/* : MType */;
5168 val
* var145
/* : MType */;
5169 val
* var_mtype
/* var mtype: MType */;
5170 long var146
/* : Int */;
5171 long var148
/* : Int */;
5172 short int var149
/* : Bool */;
5173 short int var150
/* : Bool */;
5174 short int var152
/* : Bool */;
5175 static val
* varonce153
;
5176 val
* var154
/* : String */;
5177 char* var155
/* : NativeString */;
5178 long var156
/* : Int */;
5179 val
* var157
/* : FlatString */;
5180 val
* var158
/* : MClass */;
5181 val
* var159
/* : Array[MType] */;
5182 long var160
/* : Int */;
5183 val
* var_
/* var : Array[MType] */;
5184 val
* var161
/* : MClassType */;
5185 static val
* varonce162
;
5186 val
* var163
/* : String */;
5187 char* var164
/* : NativeString */;
5188 long var165
/* : Int */;
5189 val
* var166
/* : FlatString */;
5190 val
* var167
/* : Array[Object] */;
5191 long var168
/* : Int */;
5192 val
* var169
/* : NativeArray[Object] */;
5193 val
* var170
/* : String */;
5194 static val
* varonce171
;
5195 val
* var172
/* : String */;
5196 char* var173
/* : NativeString */;
5197 long var174
/* : Int */;
5198 val
* var175
/* : FlatString */;
5199 val
* var176
/* : String */;
5200 static val
* varonce177
;
5201 val
* var178
/* : String */;
5202 char* var179
/* : NativeString */;
5203 long var180
/* : Int */;
5204 val
* var181
/* : FlatString */;
5205 val
* var182
/* : Array[Object] */;
5206 long var183
/* : Int */;
5207 val
* var184
/* : NativeArray[Object] */;
5208 val
* var185
/* : Object */;
5209 val
* var186
/* : String */;
5210 val
* var187
/* : RuntimeVariable */;
5211 static val
* varonce188
;
5212 val
* var189
/* : String */;
5213 char* var190
/* : NativeString */;
5214 long var191
/* : Int */;
5215 val
* var192
/* : FlatString */;
5216 val
* var193
/* : Array[Object] */;
5217 long var194
/* : Int */;
5218 val
* var195
/* : NativeArray[Object] */;
5219 val
* var196
/* : Object */;
5220 val
* var197
/* : String */;
5221 val
* var_argvar
/* var argvar: RuntimeVariable */;
5222 static val
* varonce198
;
5223 val
* var199
/* : String */;
5224 char* var200
/* : NativeString */;
5225 long var201
/* : Int */;
5226 val
* var202
/* : FlatString */;
5227 static val
* varonce203
;
5228 val
* var204
/* : String */;
5229 char* var205
/* : NativeString */;
5230 long var206
/* : Int */;
5231 val
* var207
/* : FlatString */;
5232 val
* var208
/* : null */;
5233 short int var209
/* : Bool */;
5234 short int var210
/* : Bool */;
5235 short int var212
/* : Bool */;
5236 short int var213
/* : Bool */;
5237 short int var214
/* : Bool */;
5238 static val
* varonce215
;
5239 val
* var216
/* : String */;
5240 char* var217
/* : NativeString */;
5241 long var218
/* : Int */;
5242 val
* var219
/* : FlatString */;
5243 val
* var220
/* : Array[Object] */;
5244 long var221
/* : Int */;
5245 val
* var222
/* : NativeArray[Object] */;
5246 val
* var223
/* : String */;
5247 val
* var224
/* : String */;
5248 static val
* varonce225
;
5249 val
* var226
/* : String */;
5250 char* var227
/* : NativeString */;
5251 long var228
/* : Int */;
5252 val
* var229
/* : FlatString */;
5253 val
* var230
/* : Array[Object] */;
5254 long var231
/* : Int */;
5255 val
* var232
/* : NativeArray[Object] */;
5256 val
* var233
/* : String */;
5257 static val
* varonce234
;
5258 val
* var235
/* : String */;
5259 char* var236
/* : NativeString */;
5260 long var237
/* : Int */;
5261 val
* var238
/* : FlatString */;
5262 static val
* varonce239
;
5263 val
* var240
/* : String */;
5264 char* var241
/* : NativeString */;
5265 long var242
/* : Int */;
5266 val
* var243
/* : FlatString */;
5267 static val
* varonce244
;
5268 val
* var245
/* : String */;
5269 char* var246
/* : NativeString */;
5270 long var247
/* : Int */;
5271 val
* var248
/* : FlatString */;
5272 val
* var249
/* : Array[Object] */;
5273 long var250
/* : Int */;
5274 val
* var251
/* : NativeArray[Object] */;
5275 val
* var252
/* : String */;
5276 static val
* varonce253
;
5277 val
* var254
/* : String */;
5278 char* var255
/* : NativeString */;
5279 long var256
/* : Int */;
5280 val
* var257
/* : FlatString */;
5281 val
* var258
/* : Array[Object] */;
5282 long var259
/* : Int */;
5283 val
* var260
/* : NativeArray[Object] */;
5284 val
* var261
/* : String */;
5285 val
* var262
/* : null */;
5286 short int var263
/* : Bool */;
5287 short int var264
/* : Bool */;
5288 short int var266
/* : Bool */;
5289 short int var267
/* : Bool */;
5290 short int var268
/* : Bool */;
5291 val
* var269
/* : RuntimeVariable */;
5292 static val
* varonce271
;
5293 val
* var272
/* : String */;
5294 char* var273
/* : NativeString */;
5295 long var274
/* : Int */;
5296 val
* var275
/* : FlatString */;
5297 val
* var276
/* : String */;
5298 val
* var278
/* : nullable Object */;
5299 val
* var279
/* : MType */;
5300 val
* var281
/* : MType */;
5301 short int var282
/* : Bool */;
5302 short int var283
/* : Bool */;
5303 short int var285
/* : Bool */;
5304 short int var286
/* : Bool */;
5305 short int var287
/* : Bool */;
5306 val
* var288
/* : nullable RuntimeVariable */;
5307 val
* var289
/* : nullable String */;
5308 val
* var291
/* : nullable String */;
5309 static val
* varonce292
;
5310 val
* var293
/* : String */;
5311 char* var294
/* : NativeString */;
5312 long var295
/* : Int */;
5313 val
* var296
/* : FlatString */;
5314 val
* var297
/* : Array[Object] */;
5315 long var298
/* : Int */;
5316 val
* var299
/* : NativeArray[Object] */;
5317 val
* var300
/* : String */;
5318 val
* var301
/* : null */;
5319 short int var302
/* : Bool */;
5320 short int var303
/* : Bool */;
5321 short int var305
/* : Bool */;
5322 short int var306
/* : Bool */;
5323 short int var307
/* : Bool */;
5324 static val
* varonce308
;
5325 val
* var309
/* : String */;
5326 char* var310
/* : NativeString */;
5327 long var311
/* : Int */;
5328 val
* var312
/* : FlatString */;
5329 val
* var313
/* : nullable RuntimeVariable */;
5330 val
* var315
/* : nullable RuntimeVariable */;
5331 static val
* varonce316
;
5332 val
* var317
/* : String */;
5333 char* var318
/* : NativeString */;
5334 long var319
/* : Int */;
5335 val
* var320
/* : FlatString */;
5336 val
* var321
/* : Array[Object] */;
5337 long var322
/* : Int */;
5338 val
* var323
/* : NativeArray[Object] */;
5339 val
* var324
/* : String */;
5340 static val
* varonce325
;
5341 val
* var326
/* : String */;
5342 char* var327
/* : NativeString */;
5343 long var328
/* : Int */;
5344 val
* var329
/* : FlatString */;
5345 val
* var330
/* : String */;
5346 static val
* varonce331
;
5347 val
* var332
/* : String */;
5348 char* var333
/* : NativeString */;
5349 long var334
/* : Int */;
5350 val
* var335
/* : FlatString */;
5351 long var336
/* : Int */;
5352 short int var337
/* : Bool */;
5353 short int var338
/* : Bool */;
5354 val
* var339
/* : HashMap[String, String] */;
5355 val
* var341
/* : HashMap[String, String] */;
5356 val
* var342
/* : String */;
5357 val
* var343
/* : MClassDef */;
5358 val
* var345
/* : MClassDef */;
5359 val
* var346
/* : MModule */;
5360 val
* var348
/* : MModule */;
5361 val
* var349
/* : String */;
5362 val
* var351
/* : String */;
5363 static val
* varonce352
;
5364 val
* var353
/* : String */;
5365 char* var354
/* : NativeString */;
5366 long var355
/* : Int */;
5367 val
* var356
/* : FlatString */;
5368 val
* var357
/* : MClassDef */;
5369 val
* var359
/* : MClassDef */;
5370 val
* var360
/* : MClass */;
5371 val
* var362
/* : MClass */;
5372 val
* var363
/* : String */;
5373 val
* var365
/* : String */;
5374 static val
* varonce366
;
5375 val
* var367
/* : String */;
5376 char* var368
/* : NativeString */;
5377 long var369
/* : Int */;
5378 val
* var370
/* : FlatString */;
5379 val
* var371
/* : MProperty */;
5380 val
* var373
/* : MProperty */;
5381 val
* var374
/* : String */;
5382 val
* var376
/* : String */;
5383 static val
* varonce377
;
5384 val
* var378
/* : String */;
5385 char* var379
/* : NativeString */;
5386 long var380
/* : Int */;
5387 val
* var381
/* : FlatString */;
5388 val
* var382
/* : Location */;
5389 val
* var384
/* : Location */;
5390 val
* var385
/* : nullable SourceFile */;
5391 val
* var387
/* : nullable SourceFile */;
5392 val
* var388
/* : String */;
5393 val
* var390
/* : String */;
5394 static val
* varonce391
;
5395 val
* var392
/* : String */;
5396 char* var393
/* : NativeString */;
5397 long var394
/* : Int */;
5398 val
* var395
/* : FlatString */;
5399 val
* var396
/* : Location */;
5400 val
* var398
/* : Location */;
5401 long var399
/* : Int */;
5402 long var401
/* : Int */;
5403 static val
* varonce402
;
5404 val
* var403
/* : String */;
5405 char* var404
/* : NativeString */;
5406 long var405
/* : Int */;
5407 val
* var406
/* : FlatString */;
5408 val
* var407
/* : Array[Object] */;
5409 long var408
/* : Int */;
5410 val
* var409
/* : NativeArray[Object] */;
5411 val
* var410
/* : Object */;
5412 val
* var411
/* : String */;
5413 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
5414 /* <p0:AbstractCompiler> isa COMPILER */
5415 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER
];
5416 cltype
= type_struct
->color
;
5417 idtype
= type_struct
->id
;
5418 if(cltype
>= p0
->type
->table_size
) {
5421 var
= p0
->type
->type_table
[cltype
] == idtype
;
5423 if (unlikely(!var
)) {
5424 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
5425 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name
);
5426 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1702);
5431 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
5432 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
5433 if (unlikely(var3
== NULL
)) {
5434 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
5435 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
5442 var_mmethoddef
= var1
;
5444 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
5445 var6
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:SeparateRuntimeFunction> */
5446 if (unlikely(var6
== NULL
)) {
5447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
5448 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
5456 { /* Inline model#MPropDef#mclassdef (var4) on <var4:MMethodDef> */
5457 var9
= var4
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var4:MMethodDef> */
5458 if (unlikely(var9
== NULL
)) {
5459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5460 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5468 { /* Inline model#MClassDef#bound_mtype (var7) on <var7:MClassDef> */
5469 var12
= var7
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var7:MClassDef> */
5470 if (unlikely(var12
== NULL
)) {
5471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5472 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
5476 RET_LABEL11
:(void)0;
5481 var13
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var_compiler
) /* new_visitor on <var_compiler:AbstractCompiler>*/;
5484 var14
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
5490 var18
= string__NativeString__to_s_with_length(var16
, var17
);
5495 abstract_compiler__RuntimeVariable__init(var14
, var15
, var_recv
, var_recv
); /* Direct call abstract_compiler#RuntimeVariable#init on <var14:RuntimeVariable>*/
5497 var_selfvar
= var14
;
5498 var19
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
5500 array__Array__init(var19
); /* Direct call array#Array#init on <var19:Array[RuntimeVariable]>*/
5502 var_arguments
= var19
;
5503 var20
= NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame
);
5505 { /* Inline abstract_compiler#Frame#init (var20,var_v,var_mmethoddef,var_recv,var_arguments) on <var20:Frame> */
5506 /* Covariant cast for argument 0 (visitor) <var_v:AbstractCompilerVisitor> isa VISITOR */
5507 /* <var_v:AbstractCompilerVisitor> isa VISITOR */
5508 type_struct25
= var20
->type
->resolution_table
->types
[COLOR_abstract_compiler__Frame_VTVISITOR
];
5509 cltype23
= type_struct25
->color
;
5510 idtype24
= type_struct25
->id
;
5511 if(cltype23
>= var_v
->type
->table_size
) {
5514 var22
= var_v
->type
->type_table
[cltype23
] == idtype24
;
5516 if (unlikely(!var22
)) {
5517 var_class_name26
= var_v
== NULL ?
"null" : var_v
->type
->name
;
5518 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name26
);
5519 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1523);
5522 var20
->attrs
[COLOR_abstract_compiler__Frame___visitor
].val
= var_v
; /* _visitor on <var20:Frame> */
5523 var20
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
= var_mmethoddef
; /* _mpropdef on <var20:Frame> */
5524 var20
->attrs
[COLOR_abstract_compiler__Frame___receiver
].val
= var_recv
; /* _receiver on <var20:Frame> */
5525 var20
->attrs
[COLOR_abstract_compiler__Frame___arguments
].val
= var_arguments
; /* _arguments on <var20:Frame> */
5526 RET_LABEL21
:(void)0;
5531 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
5532 var_v
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
= var_frame
; /* _frame on <var_v:AbstractCompilerVisitor> */
5533 RET_LABEL27
:(void)0;
5537 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
5538 var30
= var_mmethoddef
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
5540 RET_LABEL29
:(void)0;
5544 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
5545 var33
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
5546 if (unlikely(var33
== NULL
)) {
5547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5548 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5552 RET_LABEL32
:(void)0;
5556 { /* Inline model#MClassDef#bound_mtype (var31) on <var31:MClassDef> */
5557 var36
= var31
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var31:MClassDef> */
5558 if (unlikely(var36
== NULL
)) {
5559 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5560 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
5564 RET_LABEL35
:(void)0;
5568 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
5569 var39
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
5570 if (unlikely(var39
== NULL
)) {
5571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5572 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5576 RET_LABEL38
:(void)0;
5580 { /* Inline model#MClassDef#bound_mtype (var37) on <var37:MClassDef> */
5581 var42
= var37
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var37:MClassDef> */
5582 if (unlikely(var42
== NULL
)) {
5583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5584 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
5588 RET_LABEL41
:(void)0;
5592 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
5593 var45
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
5594 if (unlikely(var45
== NULL
)) {
5595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5596 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
5600 RET_LABEL44
:(void)0;
5604 { /* Inline model#MClassDef#mmodule (var43) on <var43:MClassDef> */
5605 var48
= var43
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var43:MClassDef> */
5606 if (unlikely(var48
== NULL
)) {
5607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5608 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
5612 RET_LABEL47
:(void)0;
5616 if (var28
== NULL
) {
5617 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5618 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1713);
5621 var50
= model__MSignature__resolve_for(var28
, var34
, var40
, var46
, var49
);
5623 var_msignature
= var50
;
5624 var51
= NEW_string__FlatBuffer(&type_string__FlatBuffer
);
5626 string__FlatBuffer__init(var51
); /* Direct call string#FlatBuffer#init on <var51:FlatBuffer>*/
5629 var52
= NEW_string__FlatBuffer(&type_string__FlatBuffer
);
5631 string__FlatBuffer__init(var52
); /* Direct call string#FlatBuffer#init on <var52:FlatBuffer>*/
5633 var_comment
= var52
;
5635 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
5636 var55
= var_msignature
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
5638 RET_LABEL54
:(void)0;
5643 if (var_ret
== NULL
) {
5644 var57
= 0; /* is null */
5646 var57
= 1; /* arg is null and recv is not */
5649 { /* Inline kernel#Object#!= (var_ret,var56) on <var_ret:nullable MType> */
5652 var61
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
5658 RET_LABEL59
:(void)0;
5664 var63
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ret
) /* ctype on <var_ret:nullable MType(MType)>*/;
5671 var68
= string__NativeString__to_s_with_length(var66
, var67
);
5675 var69
= NEW_array__Array(&type_array__Arraykernel__Object
);
5676 { /* var69 = array_instance Array[Object] */
5678 var71
= NEW_array__NativeArray(var70
, &type_array__NativeArraykernel__Object
);
5679 ((struct instance_array__NativeArray
*)var71
)->values
[0] = (val
*) var63
;
5680 ((struct instance_array__NativeArray
*)var71
)->values
[1] = (val
*) var65
;
5682 ((void (*)(val
*, val
*, long))(var69
->class->vft
[COLOR_array__Array__with_native
]))(var69
, var71
, var70
) /* with_native on <var69:Array[Object]>*/;
5686 var72
= ((val
* (*)(val
*))(var69
->class->vft
[COLOR_string__Object__to_s
]))(var69
) /* to_s on <var69:Array[Object]>*/;
5689 string__FlatBuffer__append(var_sig
, var72
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
5693 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
5694 var75
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
5695 if (unlikely(var75
== NULL
)) {
5696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5697 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
5701 RET_LABEL74
:(void)0;
5705 { /* Inline model#MMethod#is_new (var73) on <var73:MProperty(MMethod)> */
5706 var78
= var73
->attrs
[COLOR_model__MMethod___is_new
].s
; /* _is_new on <var73:MProperty(MMethod)> */
5708 RET_LABEL77
:(void)0;
5714 var79
= abstract_compiler__MClassType__ctype(var_ret
);
5721 var84
= string__NativeString__to_s_with_length(var82
, var83
);
5725 var85
= NEW_array__Array(&type_array__Arraykernel__Object
);
5726 { /* var85 = array_instance Array[Object] */
5728 var87
= NEW_array__NativeArray(var86
, &type_array__NativeArraykernel__Object
);
5729 ((struct instance_array__NativeArray
*)var87
)->values
[0] = (val
*) var79
;
5730 ((struct instance_array__NativeArray
*)var87
)->values
[1] = (val
*) var81
;
5732 ((void (*)(val
*, val
*, long))(var85
->class->vft
[COLOR_array__Array__with_native
]))(var85
, var87
, var86
) /* with_native on <var85:Array[Object]>*/;
5736 var88
= ((val
* (*)(val
*))(var85
->class->vft
[COLOR_string__Object__to_s
]))(var85
) /* to_s on <var85:Array[Object]>*/;
5739 string__FlatBuffer__append(var_sig
, var88
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
5747 var93
= string__NativeString__to_s_with_length(var91
, var92
);
5752 string__FlatBuffer__append(var_sig
, var90
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
5757 var94
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
5760 string__FlatBuffer__append(var_sig
, var94
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
5767 var99
= string__NativeString__to_s_with_length(var97
, var98
);
5772 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
5773 var102
= var_selfvar
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_selfvar:RuntimeVariable> */
5774 if (unlikely(var102
== NULL
)) {
5775 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5776 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
5780 RET_LABEL101
:(void)0;
5784 var103
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var100
) /* ctype on <var100:MType>*/;
5787 var105
= varonce104
;
5791 var108
= string__NativeString__to_s_with_length(var106
, var107
);
5793 varonce104
= var105
;
5795 var109
= NEW_array__Array(&type_array__Arraykernel__Object
);
5796 { /* var109 = array_instance Array[Object] */
5798 var111
= NEW_array__NativeArray(var110
, &type_array__NativeArraykernel__Object
);
5799 ((struct instance_array__NativeArray
*)var111
)->values
[0] = (val
*) var96
;
5800 ((struct instance_array__NativeArray
*)var111
)->values
[1] = (val
*) var103
;
5801 ((struct instance_array__NativeArray
*)var111
)->values
[2] = (val
*) var105
;
5802 ((struct instance_array__NativeArray
*)var111
)->values
[3] = (val
*) var_selfvar
;
5804 ((void (*)(val
*, val
*, long))(var109
->class->vft
[COLOR_array__Array__with_native
]))(var109
, var111
, var110
) /* with_native on <var109:Array[Object]>*/;
5808 var112
= ((val
* (*)(val
*))(var109
->class->vft
[COLOR_string__Object__to_s
]))(var109
) /* to_s on <var109:Array[Object]>*/;
5811 string__FlatBuffer__append(var_sig
, var112
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
5814 var114
= varonce113
;
5818 var117
= string__NativeString__to_s_with_length(var115
, var116
);
5820 varonce113
= var114
;
5823 var119
= varonce118
;
5827 var122
= string__NativeString__to_s_with_length(var120
, var121
);
5829 varonce118
= var119
;
5832 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
5833 var125
= var_selfvar
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_selfvar:RuntimeVariable> */
5834 if (unlikely(var125
== NULL
)) {
5835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5836 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
5840 RET_LABEL124
:(void)0;
5843 var126
= NEW_array__Array(&type_array__Arraykernel__Object
);
5844 { /* var126 = array_instance Array[Object] */
5846 var128
= NEW_array__NativeArray(var127
, &type_array__NativeArraykernel__Object
);
5847 ((struct instance_array__NativeArray
*)var128
)->values
[0] = (val
*) var114
;
5848 ((struct instance_array__NativeArray
*)var128
)->values
[1] = (val
*) var_selfvar
;
5849 ((struct instance_array__NativeArray
*)var128
)->values
[2] = (val
*) var119
;
5850 ((struct instance_array__NativeArray
*)var128
)->values
[3] = (val
*) var123
;
5852 ((void (*)(val
*, val
*, long))(var126
->class->vft
[COLOR_array__Array__with_native
]))(var126
, var128
, var127
) /* with_native on <var126:Array[Object]>*/;
5856 var129
= ((val
* (*)(val
*))(var126
->class->vft
[COLOR_string__Object__to_s
]))(var126
) /* to_s on <var126:Array[Object]>*/;
5859 string__FlatBuffer__append(var_comment
, var129
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
5862 array__Array__add(var_arguments
, var_selfvar
); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
5864 var130
= NEW_range__Range(&type_range__Rangekernel__Int
);
5867 var132
= model__MSignature__arity(var_msignature
);
5870 var133
= BOX_kernel__Int(var131
); /* autobox from Int to Discrete */
5871 var134
= BOX_kernel__Int(var132
); /* autobox from Int to Discrete */
5872 range__Range__without_last(var130
, var133
, var134
); /* Direct call range#Range#without_last on <var130:Range[Int]>*/
5875 var135
= range__Range__iterator(var130
);
5879 var136
= ((short int (*)(val
*))(var135
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var135
) /* is_ok on <var135:Iterator[Discrete]>*/;
5883 var137
= ((val
* (*)(val
*))(var135
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var135
) /* item on <var135:Iterator[Discrete]>*/;
5885 var138
= ((struct instance_kernel__Int
*)var137
)->value
; /* autounbox from nullable Object to Int */;
5888 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
5889 var141
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
5890 if (unlikely(var141
== NULL
)) {
5891 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5892 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
5896 RET_LABEL140
:(void)0;
5900 var142
= array__Array___91d_93d(var139
, var_i
);
5903 { /* Inline model#MParameter#mtype (var142) on <var142:nullable Object(MParameter)> */
5904 var145
= var142
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var142:nullable Object(MParameter)> */
5905 if (unlikely(var145
== NULL
)) {
5906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5907 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
5911 RET_LABEL144
:(void)0;
5916 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
5917 var148
= var_msignature
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
5919 RET_LABEL147
:(void)0;
5923 { /* Inline kernel#Int#== (var_i,var146) on <var_i:Int> */
5924 var152
= var_i
== var146
;
5927 RET_LABEL151
:(void)0;
5933 var154
= varonce153
;
5937 var157
= string__NativeString__to_s_with_length(var155
, var156
);
5939 varonce153
= var154
;
5942 var158
= abstract_compiler__AbstractCompilerVisitor__get_class(var_v
, var154
);
5944 var159
= NEW_array__Array(&type_array__Arraymodel__MType
);
5947 array__Array__with_capacity(var159
, var160
); /* Direct call array#Array#with_capacity on <var159:Array[MType]>*/
5951 array__AbstractArray__push(var_
, var_mtype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
5954 var161
= model__MClass__get_mtype(var158
, var_
);
5960 var163
= varonce162
;
5964 var166
= string__NativeString__to_s_with_length(var164
, var165
);
5966 varonce162
= var163
;
5968 var167
= NEW_array__Array(&type_array__Arraykernel__Object
);
5969 { /* var167 = array_instance Array[Object] */
5971 var169
= NEW_array__NativeArray(var168
, &type_array__NativeArraykernel__Object
);
5972 ((struct instance_array__NativeArray
*)var169
)->values
[0] = (val
*) var163
;
5973 ((struct instance_array__NativeArray
*)var169
)->values
[1] = (val
*) var_mtype
;
5975 ((void (*)(val
*, val
*, long))(var167
->class->vft
[COLOR_array__Array__with_native
]))(var167
, var169
, var168
) /* with_native on <var167:Array[Object]>*/;
5979 var170
= ((val
* (*)(val
*))(var167
->class->vft
[COLOR_string__Object__to_s
]))(var167
) /* to_s on <var167:Array[Object]>*/;
5982 string__FlatBuffer__append(var_comment
, var170
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
5985 var172
= varonce171
;
5989 var175
= string__NativeString__to_s_with_length(var173
, var174
);
5991 varonce171
= var172
;
5994 var176
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
5997 var178
= varonce177
;
6001 var181
= string__NativeString__to_s_with_length(var179
, var180
);
6003 varonce177
= var178
;
6005 var182
= NEW_array__Array(&type_array__Arraykernel__Object
);
6006 { /* var182 = array_instance Array[Object] */
6008 var184
= NEW_array__NativeArray(var183
, &type_array__NativeArraykernel__Object
);
6009 ((struct instance_array__NativeArray
*)var184
)->values
[0] = (val
*) var172
;
6010 ((struct instance_array__NativeArray
*)var184
)->values
[1] = (val
*) var176
;
6011 ((struct instance_array__NativeArray
*)var184
)->values
[2] = (val
*) var178
;
6012 var185
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
6013 ((struct instance_array__NativeArray
*)var184
)->values
[3] = (val
*) var185
;
6015 ((void (*)(val
*, val
*, long))(var182
->class->vft
[COLOR_array__Array__with_native
]))(var182
, var184
, var183
) /* with_native on <var182:Array[Object]>*/;
6019 var186
= ((val
* (*)(val
*))(var182
->class->vft
[COLOR_string__Object__to_s
]))(var182
) /* to_s on <var182:Array[Object]>*/;
6022 string__FlatBuffer__append(var_sig
, var186
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
6024 var187
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
6026 var189
= varonce188
;
6030 var192
= string__NativeString__to_s_with_length(var190
, var191
);
6032 varonce188
= var189
;
6034 var193
= NEW_array__Array(&type_array__Arraykernel__Object
);
6035 { /* var193 = array_instance Array[Object] */
6037 var195
= NEW_array__NativeArray(var194
, &type_array__NativeArraykernel__Object
);
6038 ((struct instance_array__NativeArray
*)var195
)->values
[0] = (val
*) var189
;
6039 var196
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
6040 ((struct instance_array__NativeArray
*)var195
)->values
[1] = (val
*) var196
;
6042 ((void (*)(val
*, val
*, long))(var193
->class->vft
[COLOR_array__Array__with_native
]))(var193
, var195
, var194
) /* with_native on <var193:Array[Object]>*/;
6046 var197
= ((val
* (*)(val
*))(var193
->class->vft
[COLOR_string__Object__to_s
]))(var193
) /* to_s on <var193:Array[Object]>*/;
6049 abstract_compiler__RuntimeVariable__init(var187
, var197
, var_mtype
, var_mtype
); /* Direct call abstract_compiler#RuntimeVariable#init on <var187:RuntimeVariable>*/
6051 var_argvar
= var187
;
6053 array__Array__add(var_arguments
, var_argvar
); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
6055 CONTINUE_label
: (void)0;
6057 ((void (*)(val
*))(var135
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var135
) /* next on <var135:Iterator[Discrete]>*/;
6060 BREAK_label
: (void)0;
6062 var199
= varonce198
;
6066 var202
= string__NativeString__to_s_with_length(var200
, var201
);
6068 varonce198
= var199
;
6071 string__FlatBuffer__append(var_sig
, var199
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
6074 var204
= varonce203
;
6078 var207
= string__NativeString__to_s_with_length(var205
, var206
);
6080 varonce203
= var204
;
6083 string__FlatBuffer__append(var_comment
, var204
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
6086 if (var_ret
== NULL
) {
6087 var209
= 0; /* is null */
6089 var209
= 1; /* arg is null and recv is not */
6092 { /* Inline kernel#Object#!= (var_ret,var208) on <var_ret:nullable MType> */
6095 var213
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
6101 RET_LABEL211
:(void)0;
6107 var216
= varonce215
;
6111 var219
= string__NativeString__to_s_with_length(var217
, var218
);
6113 varonce215
= var216
;
6115 var220
= NEW_array__Array(&type_array__Arraykernel__Object
);
6116 { /* var220 = array_instance Array[Object] */
6118 var222
= NEW_array__NativeArray(var221
, &type_array__NativeArraykernel__Object
);
6119 ((struct instance_array__NativeArray
*)var222
)->values
[0] = (val
*) var216
;
6120 ((struct instance_array__NativeArray
*)var222
)->values
[1] = (val
*) var_ret
;
6122 ((void (*)(val
*, val
*, long))(var220
->class->vft
[COLOR_array__Array__with_native
]))(var220
, var222
, var221
) /* with_native on <var220:Array[Object]>*/;
6126 var223
= ((val
* (*)(val
*))(var220
->class->vft
[COLOR_string__Object__to_s
]))(var220
) /* to_s on <var220:Array[Object]>*/;
6129 string__FlatBuffer__append(var_comment
, var223
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
6134 var224
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
6137 var226
= varonce225
;
6141 var229
= string__NativeString__to_s_with_length(var227
, var228
);
6143 varonce225
= var226
;
6145 var230
= NEW_array__Array(&type_array__Arraykernel__Object
);
6146 { /* var230 = array_instance Array[Object] */
6148 var232
= NEW_array__NativeArray(var231
, &type_array__NativeArraykernel__Object
);
6149 ((struct instance_array__NativeArray
*)var232
)->values
[0] = (val
*) var_sig
;
6150 ((struct instance_array__NativeArray
*)var232
)->values
[1] = (val
*) var226
;
6152 ((void (*)(val
*, val
*, long))(var230
->class->vft
[COLOR_array__Array__with_native
]))(var230
, var232
, var231
) /* with_native on <var230:Array[Object]>*/;
6156 var233
= ((val
* (*)(val
*))(var230
->class->vft
[COLOR_string__Object__to_s
]))(var230
) /* to_s on <var230:Array[Object]>*/;
6159 abstract_compiler__AbstractCompiler__provide_declaration(var_compiler
, var224
, var233
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <var_compiler:AbstractCompiler>*/
6162 var235
= varonce234
;
6164 var236
= "/* method ";
6166 var238
= string__NativeString__to_s_with_length(var236
, var237
);
6168 varonce234
= var235
;
6171 var240
= varonce239
;
6175 var243
= string__NativeString__to_s_with_length(var241
, var242
);
6177 varonce239
= var240
;
6180 var245
= varonce244
;
6184 var248
= string__NativeString__to_s_with_length(var246
, var247
);
6186 varonce244
= var245
;
6188 var249
= NEW_array__Array(&type_array__Arraykernel__Object
);
6189 { /* var249 = array_instance Array[Object] */
6191 var251
= NEW_array__NativeArray(var250
, &type_array__NativeArraykernel__Object
);
6192 ((struct instance_array__NativeArray
*)var251
)->values
[0] = (val
*) var235
;
6193 ((struct instance_array__NativeArray
*)var251
)->values
[1] = (val
*) self
;
6194 ((struct instance_array__NativeArray
*)var251
)->values
[2] = (val
*) var240
;
6195 ((struct instance_array__NativeArray
*)var251
)->values
[3] = (val
*) var_comment
;
6196 ((struct instance_array__NativeArray
*)var251
)->values
[4] = (val
*) var245
;
6198 ((void (*)(val
*, val
*, long))(var249
->class->vft
[COLOR_array__Array__with_native
]))(var249
, var251
, var250
) /* with_native on <var249:Array[Object]>*/;
6202 var252
= ((val
* (*)(val
*))(var249
->class->vft
[COLOR_string__Object__to_s
]))(var249
) /* to_s on <var249:Array[Object]>*/;
6205 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var252
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
6208 var254
= varonce253
;
6212 var257
= string__NativeString__to_s_with_length(var255
, var256
);
6214 varonce253
= var254
;
6216 var258
= NEW_array__Array(&type_array__Arraykernel__Object
);
6217 { /* var258 = array_instance Array[Object] */
6219 var260
= NEW_array__NativeArray(var259
, &type_array__NativeArraykernel__Object
);
6220 ((struct instance_array__NativeArray
*)var260
)->values
[0] = (val
*) var_sig
;
6221 ((struct instance_array__NativeArray
*)var260
)->values
[1] = (val
*) var254
;
6223 ((void (*)(val
*, val
*, long))(var258
->class->vft
[COLOR_array__Array__with_native
]))(var258
, var260
, var259
) /* with_native on <var258:Array[Object]>*/;
6227 var261
= ((val
* (*)(val
*))(var258
->class->vft
[COLOR_string__Object__to_s
]))(var258
) /* to_s on <var258:Array[Object]>*/;
6230 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var261
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
6233 if (var_ret
== NULL
) {
6234 var263
= 0; /* is null */
6236 var263
= 1; /* arg is null and recv is not */
6239 { /* Inline kernel#Object#!= (var_ret,var262) on <var_ret:nullable MType> */
6242 var267
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
6248 RET_LABEL265
:(void)0;
6254 var269
= abstract_compiler__AbstractCompilerVisitor__new_var(var_v
, var_ret
);
6257 { /* Inline abstract_compiler#Frame#returnvar= (var_frame,var269) on <var_frame:Frame> */
6258 var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnvar
].val
= var269
; /* _returnvar on <var_frame:Frame> */
6259 RET_LABEL270
:(void)0;
6265 var272
= varonce271
;
6267 var273
= "RET_LABEL";
6269 var275
= string__NativeString__to_s_with_length(var273
, var274
);
6271 varonce271
= var272
;
6274 var276
= abstract_compiler__AbstractCompilerVisitor__get_name(var_v
, var272
);
6277 { /* Inline abstract_compiler#Frame#returnlabel= (var_frame,var276) on <var_frame:Frame> */
6278 var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnlabel
].val
= var276
; /* _returnlabel on <var_frame:Frame> */
6279 RET_LABEL277
:(void)0;
6283 var278
= abstract_collection__SequenceRead__first(var_arguments
);
6286 { /* Inline abstract_compiler#RuntimeVariable#mtype (var278) on <var278:nullable Object(RuntimeVariable)> */
6287 var281
= var278
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var278:nullable Object(RuntimeVariable)> */
6288 if (unlikely(var281
== NULL
)) {
6289 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6290 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
6294 RET_LABEL280
:(void)0;
6298 { /* Inline kernel#Object#!= (var_recv,var279) on <var_recv:MClassType> */
6301 var286
= ((short int (*)(val
*, val
*))(var_recv
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_recv
, var_other
) /* == on <var_recv:MClassType>*/;
6307 RET_LABEL284
:(void)0;
6315 var288
= abstract_compiler__MMethodDef__compile_inside_to_c(var_mmethoddef
, var_v
, var_arguments
);
6319 { /* Inline abstract_compiler#Frame#returnlabel (var_frame) on <var_frame:Frame> */
6320 var291
= var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnlabel
].val
; /* _returnlabel on <var_frame:Frame> */
6322 RET_LABEL290
:(void)0;
6325 if (unlikely(var289
== NULL
)) {
6326 PRINT_ERROR("Runtime error: %s", "Cast failed");
6327 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1759);
6331 var293
= varonce292
;
6335 var296
= string__NativeString__to_s_with_length(var294
, var295
);
6337 varonce292
= var293
;
6339 var297
= NEW_array__Array(&type_array__Arraykernel__Object
);
6340 { /* var297 = array_instance Array[Object] */
6342 var299
= NEW_array__NativeArray(var298
, &type_array__NativeArraykernel__Object
);
6343 ((struct instance_array__NativeArray
*)var299
)->values
[0] = (val
*) var289
;
6344 ((struct instance_array__NativeArray
*)var299
)->values
[1] = (val
*) var293
;
6346 ((void (*)(val
*, val
*, long))(var297
->class->vft
[COLOR_array__Array__with_native
]))(var297
, var299
, var298
) /* with_native on <var297:Array[Object]>*/;
6350 var300
= ((val
* (*)(val
*))(var297
->class->vft
[COLOR_string__Object__to_s
]))(var297
) /* to_s on <var297:Array[Object]>*/;
6353 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var300
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
6356 if (var_ret
== NULL
) {
6357 var302
= 0; /* is null */
6359 var302
= 1; /* arg is null and recv is not */
6362 { /* Inline kernel#Object#!= (var_ret,var301) on <var_ret:nullable MType> */
6365 var306
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
6371 RET_LABEL304
:(void)0;
6377 var309
= varonce308
;
6381 var312
= string__NativeString__to_s_with_length(var310
, var311
);
6383 varonce308
= var309
;
6386 { /* Inline abstract_compiler#Frame#returnvar (var_frame) on <var_frame:Frame> */
6387 var315
= var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnvar
].val
; /* _returnvar on <var_frame:Frame> */
6389 RET_LABEL314
:(void)0;
6392 if (unlikely(var313
== NULL
)) {
6393 PRINT_ERROR("Runtime error: %s", "Cast failed");
6394 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1761);
6398 var317
= varonce316
;
6402 var320
= string__NativeString__to_s_with_length(var318
, var319
);
6404 varonce316
= var317
;
6406 var321
= NEW_array__Array(&type_array__Arraykernel__Object
);
6407 { /* var321 = array_instance Array[Object] */
6409 var323
= NEW_array__NativeArray(var322
, &type_array__NativeArraykernel__Object
);
6410 ((struct instance_array__NativeArray
*)var323
)->values
[0] = (val
*) var309
;
6411 ((struct instance_array__NativeArray
*)var323
)->values
[1] = (val
*) var313
;
6412 ((struct instance_array__NativeArray
*)var323
)->values
[2] = (val
*) var317
;
6414 ((void (*)(val
*, val
*, long))(var321
->class->vft
[COLOR_array__Array__with_native
]))(var321
, var323
, var322
) /* with_native on <var321:Array[Object]>*/;
6418 var324
= ((val
* (*)(val
*))(var321
->class->vft
[COLOR_string__Object__to_s
]))(var321
) /* to_s on <var321:Array[Object]>*/;
6421 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var324
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
6426 var326
= varonce325
;
6430 var329
= string__NativeString__to_s_with_length(var327
, var328
);
6432 varonce325
= var326
;
6435 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var326
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
6438 var330
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
6441 var332
= varonce331
;
6445 var335
= string__NativeString__to_s_with_length(var333
, var334
);
6447 varonce331
= var332
;
6451 var337
= string__Text__has_substring(var330
, var332
, var336
);
6456 { /* Inline abstract_compiler#AbstractCompiler#names (var_compiler) on <var_compiler:AbstractCompiler> */
6457 var341
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <var_compiler:AbstractCompiler> */
6458 if (unlikely(var341
== NULL
)) {
6459 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
6460 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
6464 RET_LABEL340
:(void)0;
6468 var342
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
6471 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6472 var345
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
6473 if (unlikely(var345
== NULL
)) {
6474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6475 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
6479 RET_LABEL344
:(void)0;
6483 { /* Inline model#MClassDef#mmodule (var343) on <var343:MClassDef> */
6484 var348
= var343
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var343:MClassDef> */
6485 if (unlikely(var348
== NULL
)) {
6486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6487 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
6491 RET_LABEL347
:(void)0;
6495 { /* Inline mmodule#MModule#name (var346) on <var346:MModule> */
6496 var351
= var346
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var346:MModule> */
6497 if (unlikely(var351
== NULL
)) {
6498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6499 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86);
6503 RET_LABEL350
:(void)0;
6507 var353
= varonce352
;
6511 var356
= string__NativeString__to_s_with_length(var354
, var355
);
6513 varonce352
= var353
;
6516 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6517 var359
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
6518 if (unlikely(var359
== NULL
)) {
6519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6520 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
6524 RET_LABEL358
:(void)0;
6528 { /* Inline model#MClassDef#mclass (var357) on <var357:MClassDef> */
6529 var362
= var357
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var357:MClassDef> */
6530 if (unlikely(var362
== NULL
)) {
6531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6532 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
6536 RET_LABEL361
:(void)0;
6540 { /* Inline model#MClass#name (var360) on <var360:MClass> */
6541 var365
= var360
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var360:MClass> */
6542 if (unlikely(var365
== NULL
)) {
6543 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6544 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
6548 RET_LABEL364
:(void)0;
6552 var367
= varonce366
;
6556 var370
= string__NativeString__to_s_with_length(var368
, var369
);
6558 varonce366
= var367
;
6561 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6562 var373
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
6563 if (unlikely(var373
== NULL
)) {
6564 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6565 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
6569 RET_LABEL372
:(void)0;
6573 { /* Inline model#MProperty#name (var371) on <var371:MProperty(MMethod)> */
6574 var376
= var371
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var371:MProperty(MMethod)> */
6575 if (unlikely(var376
== NULL
)) {
6576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6577 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
6581 RET_LABEL375
:(void)0;
6585 var378
= varonce377
;
6589 var381
= string__NativeString__to_s_with_length(var379
, var380
);
6591 varonce377
= var378
;
6594 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6595 var384
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___location
].val
; /* _location on <var_mmethoddef:MMethodDef> */
6596 if (unlikely(var384
== NULL
)) {
6597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
6598 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1876);
6602 RET_LABEL383
:(void)0;
6606 { /* Inline location#Location#file (var382) on <var382:Location> */
6607 var387
= var382
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var382:Location> */
6609 RET_LABEL386
:(void)0;
6612 if (var385
== NULL
) {
6613 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6614 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1764);
6617 { /* Inline location#SourceFile#filename (var385) on <var385:nullable SourceFile> */
6618 if (unlikely(var385
== NULL
)) {
6619 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6620 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
6623 var390
= var385
->attrs
[COLOR_location__SourceFile___filename
].val
; /* _filename on <var385:nullable SourceFile> */
6624 if (unlikely(var390
== NULL
)) {
6625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
6626 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
6630 RET_LABEL389
:(void)0;
6634 var392
= varonce391
;
6638 var395
= string__NativeString__to_s_with_length(var393
, var394
);
6640 varonce391
= var392
;
6643 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
6644 var398
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___location
].val
; /* _location on <var_mmethoddef:MMethodDef> */
6645 if (unlikely(var398
== NULL
)) {
6646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
6647 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1876);
6651 RET_LABEL397
:(void)0;
6655 { /* Inline location#Location#line_start (var396) on <var396:Location> */
6656 var401
= var396
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var396:Location> */
6658 RET_LABEL400
:(void)0;
6662 var403
= varonce402
;
6666 var406
= string__NativeString__to_s_with_length(var404
, var405
);
6668 varonce402
= var403
;
6670 var407
= NEW_array__Array(&type_array__Arraykernel__Object
);
6671 { /* var407 = array_instance Array[Object] */
6673 var409
= NEW_array__NativeArray(var408
, &type_array__NativeArraykernel__Object
);
6674 ((struct instance_array__NativeArray
*)var409
)->values
[0] = (val
*) var349
;
6675 ((struct instance_array__NativeArray
*)var409
)->values
[1] = (val
*) var353
;
6676 ((struct instance_array__NativeArray
*)var409
)->values
[2] = (val
*) var363
;
6677 ((struct instance_array__NativeArray
*)var409
)->values
[3] = (val
*) var367
;
6678 ((struct instance_array__NativeArray
*)var409
)->values
[4] = (val
*) var374
;
6679 ((struct instance_array__NativeArray
*)var409
)->values
[5] = (val
*) var378
;
6680 ((struct instance_array__NativeArray
*)var409
)->values
[6] = (val
*) var388
;
6681 ((struct instance_array__NativeArray
*)var409
)->values
[7] = (val
*) var392
;
6682 var410
= BOX_kernel__Int(var399
); /* autobox from Int to Object */
6683 ((struct instance_array__NativeArray
*)var409
)->values
[8] = (val
*) var410
;
6684 ((struct instance_array__NativeArray
*)var409
)->values
[9] = (val
*) var403
;
6686 ((void (*)(val
*, val
*, long))(var407
->class->vft
[COLOR_array__Array__with_native
]))(var407
, var409
, var408
) /* with_native on <var407:Array[Object]>*/;
6690 var411
= ((val
* (*)(val
*))(var407
->class->vft
[COLOR_string__Object__to_s
]))(var407
) /* to_s on <var407:Array[Object]>*/;
6693 hash_collection__HashMap___91d_93d_61d(var339
, var342
, var411
); /* Direct call hash_collection#HashMap#[]= on <var339:HashMap[String, String]>*/
6699 /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */
6700 void VIRTUAL_separate_compiler__SeparateRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
6701 separate_compiler__SeparateRuntimeFunction__compile_to_c(self
, p0
); /* Direct call separate_compiler#SeparateRuntimeFunction#compile_to_c on <self:Object(SeparateRuntimeFunction)>*/
6704 /* method separate_compiler#VirtualRuntimeFunction#build_c_name for (self: VirtualRuntimeFunction): String */
6705 val
* separate_compiler__VirtualRuntimeFunction__build_c_name(val
* self
) {
6706 val
* var
/* : String */;
6707 static val
* varonce
;
6708 val
* var1
/* : String */;
6709 char* var2
/* : NativeString */;
6710 long var3
/* : Int */;
6711 val
* var4
/* : FlatString */;
6712 val
* var5
/* : MMethodDef */;
6713 val
* var7
/* : MMethodDef */;
6714 val
* var8
/* : String */;
6715 val
* var9
/* : Array[Object] */;
6716 long var10
/* : Int */;
6717 val
* var11
/* : NativeArray[Object] */;
6718 val
* var12
/* : String */;
6724 var4
= string__NativeString__to_s_with_length(var2
, var3
);
6729 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:VirtualRuntimeFunction> */
6730 var7
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:VirtualRuntimeFunction> */
6731 if (unlikely(var7
== NULL
)) {
6732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
6733 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
6741 var8
= abstract_compiler__MPropDef__c_name(var5
);
6743 var9
= NEW_array__Array(&type_array__Arraykernel__Object
);
6744 { /* var9 = array_instance Array[Object] */
6746 var11
= NEW_array__NativeArray(var10
, &type_array__NativeArraykernel__Object
);
6747 ((struct instance_array__NativeArray
*)var11
)->values
[0] = (val
*) var1
;
6748 ((struct instance_array__NativeArray
*)var11
)->values
[1] = (val
*) var8
;
6750 ((void (*)(val
*, val
*, long))(var9
->class->vft
[COLOR_array__Array__with_native
]))(var9
, var11
, var10
) /* with_native on <var9:Array[Object]>*/;
6754 var12
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_string__Object__to_s
]))(var9
) /* to_s on <var9:Array[Object]>*/;
6761 /* method separate_compiler#VirtualRuntimeFunction#build_c_name for (self: Object): String */
6762 val
* VIRTUAL_separate_compiler__VirtualRuntimeFunction__build_c_name(val
* self
) {
6763 val
* var
/* : String */;
6764 val
* var1
/* : String */;
6765 var1
= separate_compiler__VirtualRuntimeFunction__build_c_name(self
);
6770 /* method separate_compiler#VirtualRuntimeFunction#to_s for (self: VirtualRuntimeFunction): String */
6771 val
* separate_compiler__VirtualRuntimeFunction__to_s(val
* self
) {
6772 val
* var
/* : String */;
6773 val
* var1
/* : MMethodDef */;
6774 val
* var3
/* : MMethodDef */;
6775 val
* var4
/* : String */;
6776 val
* var6
/* : String */;
6778 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:VirtualRuntimeFunction> */
6779 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:VirtualRuntimeFunction> */
6780 if (unlikely(var3
== NULL
)) {
6781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
6782 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
6790 { /* Inline model#MPropDef#to_s (var1) on <var1:MMethodDef> */
6791 var6
= var1
->attrs
[COLOR_model__MPropDef___to_s
].val
; /* _to_s on <var1:MMethodDef> */
6792 if (unlikely(var6
== NULL
)) {
6793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
6794 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1900);
6806 /* method separate_compiler#VirtualRuntimeFunction#to_s for (self: Object): String */
6807 val
* VIRTUAL_separate_compiler__VirtualRuntimeFunction__to_s(val
* self
) {
6808 val
* var
/* : String */;
6809 val
* var1
/* : String */;
6810 var1
= separate_compiler__VirtualRuntimeFunction__to_s(self
);
6815 /* method separate_compiler#VirtualRuntimeFunction#compile_to_c for (self: VirtualRuntimeFunction, AbstractCompiler) */
6816 void separate_compiler__VirtualRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
6817 short int var
/* : Bool */;
6820 const struct type
* type_struct
;
6821 const char* var_class_name
;
6822 val
* var_compiler
/* var compiler: AbstractCompiler */;
6823 val
* var1
/* : MMethodDef */;
6824 val
* var3
/* : MMethodDef */;
6825 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
6826 val
* var4
/* : MMethodDef */;
6827 val
* var6
/* : MMethodDef */;
6828 val
* var7
/* : MClassDef */;
6829 val
* var9
/* : MClassDef */;
6830 val
* var10
/* : MClassType */;
6831 val
* var12
/* : MClassType */;
6832 val
* var_recv
/* var recv: MClassType */;
6833 val
* var13
/* : AbstractCompilerVisitor */;
6834 val
* var_v
/* var v: AbstractCompilerVisitor */;
6835 val
* var14
/* : RuntimeVariable */;
6836 static val
* varonce
;
6837 val
* var15
/* : String */;
6838 char* var16
/* : NativeString */;
6839 long var17
/* : Int */;
6840 val
* var18
/* : FlatString */;
6841 val
* var19
/* : MClassType */;
6842 val
* var_selfvar
/* var selfvar: RuntimeVariable */;
6843 val
* var20
/* : Array[RuntimeVariable] */;
6844 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
6845 val
* var21
/* : Frame */;
6846 short int var23
/* : Bool */;
6849 const struct type
* type_struct26
;
6850 const char* var_class_name27
;
6851 val
* var_frame
/* var frame: Frame */;
6852 val
* var29
/* : FlatBuffer */;
6853 val
* var_sig
/* var sig: FlatBuffer */;
6854 val
* var30
/* : FlatBuffer */;
6855 val
* var_comment
/* var comment: FlatBuffer */;
6856 val
* var31
/* : MMethodDef */;
6857 val
* var33
/* : MMethodDef */;
6858 val
* var34
/* : MProperty */;
6859 val
* var36
/* : MProperty */;
6860 val
* var37
/* : MPropDef */;
6861 val
* var38
/* : MClassDef */;
6862 val
* var40
/* : MClassDef */;
6863 val
* var_intromclassdef
/* var intromclassdef: MClassDef */;
6864 val
* var41
/* : MProperty */;
6865 val
* var43
/* : MProperty */;
6866 val
* var44
/* : MPropDef */;
6867 val
* var45
/* : nullable MSignature */;
6868 val
* var47
/* : nullable MSignature */;
6869 val
* var48
/* : MClassType */;
6870 val
* var50
/* : MClassType */;
6871 val
* var51
/* : MClassType */;
6872 val
* var53
/* : MClassType */;
6873 val
* var54
/* : MModule */;
6874 val
* var56
/* : MModule */;
6875 short int var57
/* : Bool */;
6876 val
* var58
/* : MSignature */;
6877 val
* var_msignature
/* var msignature: MSignature */;
6878 val
* var59
/* : nullable MType */;
6879 val
* var61
/* : nullable MType */;
6880 val
* var_ret
/* var ret: nullable MType */;
6881 val
* var62
/* : null */;
6882 short int var63
/* : Bool */;
6883 short int var64
/* : Bool */;
6884 val
* var_other
/* var other: nullable Object */;
6885 short int var66
/* : Bool */;
6886 short int var67
/* : Bool */;
6887 short int var68
/* : Bool */;
6888 val
* var69
/* : String */;
6889 static val
* varonce70
;
6890 val
* var71
/* : String */;
6891 char* var72
/* : NativeString */;
6892 long var73
/* : Int */;
6893 val
* var74
/* : FlatString */;
6894 val
* var75
/* : Array[Object] */;
6895 long var76
/* : Int */;
6896 val
* var77
/* : NativeArray[Object] */;
6897 val
* var78
/* : String */;
6898 val
* var79
/* : MProperty */;
6899 val
* var81
/* : MProperty */;
6900 short int var82
/* : Bool */;
6901 short int var84
/* : Bool */;
6902 val
* var85
/* : String */;
6903 static val
* varonce86
;
6904 val
* var87
/* : String */;
6905 char* var88
/* : NativeString */;
6906 long var89
/* : Int */;
6907 val
* var90
/* : FlatString */;
6908 val
* var91
/* : Array[Object] */;
6909 long var92
/* : Int */;
6910 val
* var93
/* : NativeArray[Object] */;
6911 val
* var94
/* : String */;
6912 static val
* varonce95
;
6913 val
* var96
/* : String */;
6914 char* var97
/* : NativeString */;
6915 long var98
/* : Int */;
6916 val
* var99
/* : FlatString */;
6917 val
* var100
/* : String */;
6918 static val
* varonce101
;
6919 val
* var102
/* : String */;
6920 char* var103
/* : NativeString */;
6921 long var104
/* : Int */;
6922 val
* var105
/* : FlatString */;
6923 val
* var106
/* : MType */;
6924 val
* var108
/* : MType */;
6925 val
* var109
/* : String */;
6926 static val
* varonce110
;
6927 val
* var111
/* : String */;
6928 char* var112
/* : NativeString */;
6929 long var113
/* : Int */;
6930 val
* var114
/* : FlatString */;
6931 val
* var115
/* : Array[Object] */;
6932 long var116
/* : Int */;
6933 val
* var117
/* : NativeArray[Object] */;
6934 val
* var118
/* : String */;
6935 static val
* varonce119
;
6936 val
* var120
/* : String */;
6937 char* var121
/* : NativeString */;
6938 long var122
/* : Int */;
6939 val
* var123
/* : FlatString */;
6940 static val
* varonce124
;
6941 val
* var125
/* : String */;
6942 char* var126
/* : NativeString */;
6943 long var127
/* : Int */;
6944 val
* var128
/* : FlatString */;
6945 val
* var129
/* : MType */;
6946 val
* var131
/* : MType */;
6947 val
* var132
/* : Array[Object] */;
6948 long var133
/* : Int */;
6949 val
* var134
/* : NativeArray[Object] */;
6950 val
* var135
/* : String */;
6951 val
* var136
/* : Range[Int] */;
6952 long var137
/* : Int */;
6953 long var138
/* : Int */;
6954 val
* var139
/* : Discrete */;
6955 val
* var140
/* : Discrete */;
6956 val
* var141
/* : Iterator[Discrete] */;
6957 short int var142
/* : Bool */;
6958 val
* var143
/* : nullable Object */;
6959 long var_i
/* var i: Int */;
6960 long var144
/* : Int */;
6961 val
* var145
/* : Array[MParameter] */;
6962 val
* var147
/* : Array[MParameter] */;
6963 val
* var148
/* : nullable Object */;
6964 val
* var149
/* : MType */;
6965 val
* var151
/* : MType */;
6966 val
* var_mtype
/* var mtype: MType */;
6967 long var152
/* : Int */;
6968 long var154
/* : Int */;
6969 short int var155
/* : Bool */;
6970 short int var156
/* : Bool */;
6971 short int var158
/* : Bool */;
6972 static val
* varonce159
;
6973 val
* var160
/* : String */;
6974 char* var161
/* : NativeString */;
6975 long var162
/* : Int */;
6976 val
* var163
/* : FlatString */;
6977 val
* var164
/* : MClass */;
6978 val
* var165
/* : Array[MType] */;
6979 long var166
/* : Int */;
6980 val
* var_
/* var : Array[MType] */;
6981 val
* var167
/* : MClassType */;
6982 static val
* varonce168
;
6983 val
* var169
/* : String */;
6984 char* var170
/* : NativeString */;
6985 long var171
/* : Int */;
6986 val
* var172
/* : FlatString */;
6987 val
* var173
/* : Array[Object] */;
6988 long var174
/* : Int */;
6989 val
* var175
/* : NativeArray[Object] */;
6990 val
* var176
/* : String */;
6991 static val
* varonce177
;
6992 val
* var178
/* : String */;
6993 char* var179
/* : NativeString */;
6994 long var180
/* : Int */;
6995 val
* var181
/* : FlatString */;
6996 val
* var182
/* : String */;
6997 static val
* varonce183
;
6998 val
* var184
/* : String */;
6999 char* var185
/* : NativeString */;
7000 long var186
/* : Int */;
7001 val
* var187
/* : FlatString */;
7002 val
* var188
/* : Array[Object] */;
7003 long var189
/* : Int */;
7004 val
* var190
/* : NativeArray[Object] */;
7005 val
* var191
/* : Object */;
7006 val
* var192
/* : String */;
7007 val
* var193
/* : RuntimeVariable */;
7008 static val
* varonce194
;
7009 val
* var195
/* : String */;
7010 char* var196
/* : NativeString */;
7011 long var197
/* : Int */;
7012 val
* var198
/* : FlatString */;
7013 val
* var199
/* : Array[Object] */;
7014 long var200
/* : Int */;
7015 val
* var201
/* : NativeArray[Object] */;
7016 val
* var202
/* : Object */;
7017 val
* var203
/* : String */;
7018 val
* var_argvar
/* var argvar: RuntimeVariable */;
7019 static val
* varonce204
;
7020 val
* var205
/* : String */;
7021 char* var206
/* : NativeString */;
7022 long var207
/* : Int */;
7023 val
* var208
/* : FlatString */;
7024 static val
* varonce209
;
7025 val
* var210
/* : String */;
7026 char* var211
/* : NativeString */;
7027 long var212
/* : Int */;
7028 val
* var213
/* : FlatString */;
7029 val
* var214
/* : null */;
7030 short int var215
/* : Bool */;
7031 short int var216
/* : Bool */;
7032 short int var218
/* : Bool */;
7033 short int var219
/* : Bool */;
7034 short int var220
/* : Bool */;
7035 static val
* varonce221
;
7036 val
* var222
/* : String */;
7037 char* var223
/* : NativeString */;
7038 long var224
/* : Int */;
7039 val
* var225
/* : FlatString */;
7040 val
* var226
/* : Array[Object] */;
7041 long var227
/* : Int */;
7042 val
* var228
/* : NativeArray[Object] */;
7043 val
* var229
/* : String */;
7044 val
* var230
/* : String */;
7045 static val
* varonce231
;
7046 val
* var232
/* : String */;
7047 char* var233
/* : NativeString */;
7048 long var234
/* : Int */;
7049 val
* var235
/* : FlatString */;
7050 val
* var236
/* : Array[Object] */;
7051 long var237
/* : Int */;
7052 val
* var238
/* : NativeArray[Object] */;
7053 val
* var239
/* : String */;
7054 static val
* varonce240
;
7055 val
* var241
/* : String */;
7056 char* var242
/* : NativeString */;
7057 long var243
/* : Int */;
7058 val
* var244
/* : FlatString */;
7059 static val
* varonce245
;
7060 val
* var246
/* : String */;
7061 char* var247
/* : NativeString */;
7062 long var248
/* : Int */;
7063 val
* var249
/* : FlatString */;
7064 static val
* varonce250
;
7065 val
* var251
/* : String */;
7066 char* var252
/* : NativeString */;
7067 long var253
/* : Int */;
7068 val
* var254
/* : FlatString */;
7069 val
* var255
/* : Array[Object] */;
7070 long var256
/* : Int */;
7071 val
* var257
/* : NativeArray[Object] */;
7072 val
* var258
/* : String */;
7073 static val
* varonce259
;
7074 val
* var260
/* : String */;
7075 char* var261
/* : NativeString */;
7076 long var262
/* : Int */;
7077 val
* var263
/* : FlatString */;
7078 val
* var264
/* : Array[Object] */;
7079 long var265
/* : Int */;
7080 val
* var266
/* : NativeArray[Object] */;
7081 val
* var267
/* : String */;
7082 val
* var268
/* : null */;
7083 short int var269
/* : Bool */;
7084 short int var270
/* : Bool */;
7085 short int var272
/* : Bool */;
7086 short int var273
/* : Bool */;
7087 short int var274
/* : Bool */;
7088 val
* var275
/* : RuntimeVariable */;
7089 static val
* varonce277
;
7090 val
* var278
/* : String */;
7091 char* var279
/* : NativeString */;
7092 long var280
/* : Int */;
7093 val
* var281
/* : FlatString */;
7094 val
* var282
/* : String */;
7095 val
* var284
/* : nullable RuntimeVariable */;
7096 val
* var_subret
/* var subret: nullable RuntimeVariable */;
7097 val
* var285
/* : null */;
7098 short int var286
/* : Bool */;
7099 short int var287
/* : Bool */;
7100 short int var289
/* : Bool */;
7101 short int var290
/* : Bool */;
7102 short int var291
/* : Bool */;
7103 val
* var292
/* : null */;
7104 short int var293
/* : Bool */;
7105 short int var294
/* : Bool */;
7106 short int var296
/* : Bool */;
7107 short int var297
/* : Bool */;
7108 short int var298
/* : Bool */;
7109 val
* var299
/* : nullable RuntimeVariable */;
7110 val
* var301
/* : nullable RuntimeVariable */;
7111 val
* var302
/* : nullable String */;
7112 val
* var304
/* : nullable String */;
7113 static val
* varonce305
;
7114 val
* var306
/* : String */;
7115 char* var307
/* : NativeString */;
7116 long var308
/* : Int */;
7117 val
* var309
/* : FlatString */;
7118 val
* var310
/* : Array[Object] */;
7119 long var311
/* : Int */;
7120 val
* var312
/* : NativeArray[Object] */;
7121 val
* var313
/* : String */;
7122 val
* var314
/* : null */;
7123 short int var315
/* : Bool */;
7124 short int var316
/* : Bool */;
7125 short int var318
/* : Bool */;
7126 short int var319
/* : Bool */;
7127 short int var320
/* : Bool */;
7128 static val
* varonce321
;
7129 val
* var322
/* : String */;
7130 char* var323
/* : NativeString */;
7131 long var324
/* : Int */;
7132 val
* var325
/* : FlatString */;
7133 val
* var326
/* : nullable RuntimeVariable */;
7134 val
* var328
/* : nullable RuntimeVariable */;
7135 static val
* varonce329
;
7136 val
* var330
/* : String */;
7137 char* var331
/* : NativeString */;
7138 long var332
/* : Int */;
7139 val
* var333
/* : FlatString */;
7140 val
* var334
/* : Array[Object] */;
7141 long var335
/* : Int */;
7142 val
* var336
/* : NativeArray[Object] */;
7143 val
* var337
/* : String */;
7144 static val
* varonce338
;
7145 val
* var339
/* : String */;
7146 char* var340
/* : NativeString */;
7147 long var341
/* : Int */;
7148 val
* var342
/* : FlatString */;
7149 val
* var343
/* : String */;
7150 static val
* varonce344
;
7151 val
* var345
/* : String */;
7152 char* var346
/* : NativeString */;
7153 long var347
/* : Int */;
7154 val
* var348
/* : FlatString */;
7155 long var349
/* : Int */;
7156 short int var350
/* : Bool */;
7157 short int var351
/* : Bool */;
7158 val
* var352
/* : HashMap[String, String] */;
7159 val
* var354
/* : HashMap[String, String] */;
7160 val
* var355
/* : String */;
7161 val
* var356
/* : MClassDef */;
7162 val
* var358
/* : MClassDef */;
7163 val
* var359
/* : MModule */;
7164 val
* var361
/* : MModule */;
7165 val
* var362
/* : String */;
7166 val
* var364
/* : String */;
7167 static val
* varonce365
;
7168 val
* var366
/* : String */;
7169 char* var367
/* : NativeString */;
7170 long var368
/* : Int */;
7171 val
* var369
/* : FlatString */;
7172 val
* var370
/* : MClassDef */;
7173 val
* var372
/* : MClassDef */;
7174 val
* var373
/* : MClass */;
7175 val
* var375
/* : MClass */;
7176 val
* var376
/* : String */;
7177 val
* var378
/* : String */;
7178 static val
* varonce379
;
7179 val
* var380
/* : String */;
7180 char* var381
/* : NativeString */;
7181 long var382
/* : Int */;
7182 val
* var383
/* : FlatString */;
7183 val
* var384
/* : MProperty */;
7184 val
* var386
/* : MProperty */;
7185 val
* var387
/* : String */;
7186 val
* var389
/* : String */;
7187 static val
* varonce390
;
7188 val
* var391
/* : String */;
7189 char* var392
/* : NativeString */;
7190 long var393
/* : Int */;
7191 val
* var394
/* : FlatString */;
7192 val
* var395
/* : Location */;
7193 val
* var397
/* : Location */;
7194 val
* var398
/* : nullable SourceFile */;
7195 val
* var400
/* : nullable SourceFile */;
7196 val
* var401
/* : String */;
7197 val
* var403
/* : String */;
7198 static val
* varonce404
;
7199 val
* var405
/* : String */;
7200 char* var406
/* : NativeString */;
7201 long var407
/* : Int */;
7202 val
* var408
/* : FlatString */;
7203 val
* var409
/* : Location */;
7204 val
* var411
/* : Location */;
7205 long var412
/* : Int */;
7206 long var414
/* : Int */;
7207 static val
* varonce415
;
7208 val
* var416
/* : String */;
7209 char* var417
/* : NativeString */;
7210 long var418
/* : Int */;
7211 val
* var419
/* : FlatString */;
7212 val
* var420
/* : Array[Object] */;
7213 long var421
/* : Int */;
7214 val
* var422
/* : NativeArray[Object] */;
7215 val
* var423
/* : Object */;
7216 val
* var424
/* : String */;
7217 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
7218 /* <p0:AbstractCompiler> isa COMPILER */
7219 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER
];
7220 cltype
= type_struct
->color
;
7221 idtype
= type_struct
->id
;
7222 if(cltype
>= p0
->type
->table_size
) {
7225 var
= p0
->type
->type_table
[cltype
] == idtype
;
7227 if (unlikely(!var
)) {
7228 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
7229 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name
);
7230 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1777);
7235 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:VirtualRuntimeFunction> */
7236 var3
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:VirtualRuntimeFunction> */
7237 if (unlikely(var3
== NULL
)) {
7238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
7239 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
7246 var_mmethoddef
= var1
;
7248 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:VirtualRuntimeFunction> */
7249 var6
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:VirtualRuntimeFunction> */
7250 if (unlikely(var6
== NULL
)) {
7251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
7252 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
7260 { /* Inline model#MPropDef#mclassdef (var4) on <var4:MMethodDef> */
7261 var9
= var4
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var4:MMethodDef> */
7262 if (unlikely(var9
== NULL
)) {
7263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7264 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
7272 { /* Inline model#MClassDef#bound_mtype (var7) on <var7:MClassDef> */
7273 var12
= var7
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var7:MClassDef> */
7274 if (unlikely(var12
== NULL
)) {
7275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7276 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
7280 RET_LABEL11
:(void)0;
7285 var13
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var_compiler
) /* new_visitor on <var_compiler:AbstractCompiler>*/;
7288 var14
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
7294 var18
= string__NativeString__to_s_with_length(var16
, var17
);
7299 var19
= abstract_compiler__AbstractCompilerVisitor__object_type(var_v
);
7302 abstract_compiler__RuntimeVariable__init(var14
, var15
, var19
, var_recv
); /* Direct call abstract_compiler#RuntimeVariable#init on <var14:RuntimeVariable>*/
7304 var_selfvar
= var14
;
7305 var20
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
7307 array__Array__init(var20
); /* Direct call array#Array#init on <var20:Array[RuntimeVariable]>*/
7309 var_arguments
= var20
;
7310 var21
= NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame
);
7312 { /* Inline abstract_compiler#Frame#init (var21,var_v,var_mmethoddef,var_recv,var_arguments) on <var21:Frame> */
7313 /* Covariant cast for argument 0 (visitor) <var_v:AbstractCompilerVisitor> isa VISITOR */
7314 /* <var_v:AbstractCompilerVisitor> isa VISITOR */
7315 type_struct26
= var21
->type
->resolution_table
->types
[COLOR_abstract_compiler__Frame_VTVISITOR
];
7316 cltype24
= type_struct26
->color
;
7317 idtype25
= type_struct26
->id
;
7318 if(cltype24
>= var_v
->type
->table_size
) {
7321 var23
= var_v
->type
->type_table
[cltype24
] == idtype25
;
7323 if (unlikely(!var23
)) {
7324 var_class_name27
= var_v
== NULL ?
"null" : var_v
->type
->name
;
7325 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name27
);
7326 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1523);
7329 var21
->attrs
[COLOR_abstract_compiler__Frame___visitor
].val
= var_v
; /* _visitor on <var21:Frame> */
7330 var21
->attrs
[COLOR_abstract_compiler__Frame___mpropdef
].val
= var_mmethoddef
; /* _mpropdef on <var21:Frame> */
7331 var21
->attrs
[COLOR_abstract_compiler__Frame___receiver
].val
= var_recv
; /* _receiver on <var21:Frame> */
7332 var21
->attrs
[COLOR_abstract_compiler__Frame___arguments
].val
= var_arguments
; /* _arguments on <var21:Frame> */
7333 RET_LABEL22
:(void)0;
7338 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
7339 var_v
->attrs
[COLOR_abstract_compiler__AbstractCompilerVisitor___frame
].val
= var_frame
; /* _frame on <var_v:AbstractCompilerVisitor> */
7340 RET_LABEL28
:(void)0;
7343 var29
= NEW_string__FlatBuffer(&type_string__FlatBuffer
);
7345 string__FlatBuffer__init(var29
); /* Direct call string#FlatBuffer#init on <var29:FlatBuffer>*/
7348 var30
= NEW_string__FlatBuffer(&type_string__FlatBuffer
);
7350 string__FlatBuffer__init(var30
); /* Direct call string#FlatBuffer#init on <var30:FlatBuffer>*/
7352 var_comment
= var30
;
7354 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:VirtualRuntimeFunction> */
7355 var33
= self
->attrs
[COLOR_abstract_compiler__AbstractRuntimeFunction___mmethoddef
].val
; /* _mmethoddef on <self:VirtualRuntimeFunction> */
7356 if (unlikely(var33
== NULL
)) {
7357 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
7358 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1448);
7362 RET_LABEL32
:(void)0;
7366 { /* Inline model#MPropDef#mproperty (var31) on <var31:MMethodDef> */
7367 var36
= var31
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var31:MMethodDef> */
7368 if (unlikely(var36
== NULL
)) {
7369 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7370 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
7374 RET_LABEL35
:(void)0;
7378 var37
= model__MProperty__intro(var34
);
7381 { /* Inline model#MPropDef#mclassdef (var37) on <var37:MPropDef(MMethodDef)> */
7382 var40
= var37
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var37:MPropDef(MMethodDef)> */
7383 if (unlikely(var40
== NULL
)) {
7384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
7385 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
7389 RET_LABEL39
:(void)0;
7392 var_intromclassdef
= var38
;
7394 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
7395 var43
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
7396 if (unlikely(var43
== NULL
)) {
7397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7398 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
7402 RET_LABEL42
:(void)0;
7406 var44
= model__MProperty__intro(var41
);
7409 { /* Inline model#MMethodDef#msignature (var44) on <var44:MPropDef(MMethodDef)> */
7410 var47
= var44
->attrs
[COLOR_model__MMethodDef___msignature
].val
; /* _msignature on <var44:MPropDef(MMethodDef)> */
7412 RET_LABEL46
:(void)0;
7416 { /* Inline model#MClassDef#bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
7417 var50
= var_intromclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_intromclassdef:MClassDef> */
7418 if (unlikely(var50
== NULL
)) {
7419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7420 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
7424 RET_LABEL49
:(void)0;
7428 { /* Inline model#MClassDef#bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
7429 var53
= var_intromclassdef
->attrs
[COLOR_model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_intromclassdef:MClassDef> */
7430 if (unlikely(var53
== NULL
)) {
7431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
7432 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 477);
7436 RET_LABEL52
:(void)0;
7440 { /* Inline model#MClassDef#mmodule (var_intromclassdef) on <var_intromclassdef:MClassDef> */
7441 var56
= var_intromclassdef
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var_intromclassdef:MClassDef> */
7442 if (unlikely(var56
== NULL
)) {
7443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7444 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
7448 RET_LABEL55
:(void)0;
7452 if (var45
== NULL
) {
7453 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7454 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1793);
7457 var58
= model__MSignature__resolve_for(var45
, var48
, var51
, var54
, var57
);
7459 var_msignature
= var58
;
7461 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:MSignature> */
7462 var61
= var_msignature
->attrs
[COLOR_model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:MSignature> */
7464 RET_LABEL60
:(void)0;
7469 if (var_ret
== NULL
) {
7470 var63
= 0; /* is null */
7472 var63
= 1; /* arg is null and recv is not */
7475 { /* Inline kernel#Object#!= (var_ret,var62) on <var_ret:nullable MType> */
7478 var67
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
7484 RET_LABEL65
:(void)0;
7490 var69
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ret
) /* ctype on <var_ret:nullable MType(MType)>*/;
7497 var74
= string__NativeString__to_s_with_length(var72
, var73
);
7501 var75
= NEW_array__Array(&type_array__Arraykernel__Object
);
7502 { /* var75 = array_instance Array[Object] */
7504 var77
= NEW_array__NativeArray(var76
, &type_array__NativeArraykernel__Object
);
7505 ((struct instance_array__NativeArray
*)var77
)->values
[0] = (val
*) var69
;
7506 ((struct instance_array__NativeArray
*)var77
)->values
[1] = (val
*) var71
;
7508 ((void (*)(val
*, val
*, long))(var75
->class->vft
[COLOR_array__Array__with_native
]))(var75
, var77
, var76
) /* with_native on <var75:Array[Object]>*/;
7512 var78
= ((val
* (*)(val
*))(var75
->class->vft
[COLOR_string__Object__to_s
]))(var75
) /* to_s on <var75:Array[Object]>*/;
7515 string__FlatBuffer__append(var_sig
, var78
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
7519 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
7520 var81
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
7521 if (unlikely(var81
== NULL
)) {
7522 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7523 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
7527 RET_LABEL80
:(void)0;
7531 { /* Inline model#MMethod#is_new (var79) on <var79:MProperty(MMethod)> */
7532 var84
= var79
->attrs
[COLOR_model__MMethod___is_new
].s
; /* _is_new on <var79:MProperty(MMethod)> */
7534 RET_LABEL83
:(void)0;
7540 var85
= abstract_compiler__MClassType__ctype(var_ret
);
7547 var90
= string__NativeString__to_s_with_length(var88
, var89
);
7551 var91
= NEW_array__Array(&type_array__Arraykernel__Object
);
7552 { /* var91 = array_instance Array[Object] */
7554 var93
= NEW_array__NativeArray(var92
, &type_array__NativeArraykernel__Object
);
7555 ((struct instance_array__NativeArray
*)var93
)->values
[0] = (val
*) var85
;
7556 ((struct instance_array__NativeArray
*)var93
)->values
[1] = (val
*) var87
;
7558 ((void (*)(val
*, val
*, long))(var91
->class->vft
[COLOR_array__Array__with_native
]))(var91
, var93
, var92
) /* with_native on <var91:Array[Object]>*/;
7562 var94
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_string__Object__to_s
]))(var91
) /* to_s on <var91:Array[Object]>*/;
7565 string__FlatBuffer__append(var_sig
, var94
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
7573 var99
= string__NativeString__to_s_with_length(var97
, var98
);
7578 string__FlatBuffer__append(var_sig
, var96
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
7583 var100
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
7586 string__FlatBuffer__append(var_sig
, var100
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
7589 var102
= varonce101
;
7593 var105
= string__NativeString__to_s_with_length(var103
, var104
);
7595 varonce101
= var102
;
7598 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
7599 var108
= var_selfvar
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_selfvar:RuntimeVariable> */
7600 if (unlikely(var108
== NULL
)) {
7601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7602 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7606 RET_LABEL107
:(void)0;
7610 var109
= ((val
* (*)(val
*))(var106
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var106
) /* ctype on <var106:MType>*/;
7613 var111
= varonce110
;
7617 var114
= string__NativeString__to_s_with_length(var112
, var113
);
7619 varonce110
= var111
;
7621 var115
= NEW_array__Array(&type_array__Arraykernel__Object
);
7622 { /* var115 = array_instance Array[Object] */
7624 var117
= NEW_array__NativeArray(var116
, &type_array__NativeArraykernel__Object
);
7625 ((struct instance_array__NativeArray
*)var117
)->values
[0] = (val
*) var102
;
7626 ((struct instance_array__NativeArray
*)var117
)->values
[1] = (val
*) var109
;
7627 ((struct instance_array__NativeArray
*)var117
)->values
[2] = (val
*) var111
;
7628 ((struct instance_array__NativeArray
*)var117
)->values
[3] = (val
*) var_selfvar
;
7630 ((void (*)(val
*, val
*, long))(var115
->class->vft
[COLOR_array__Array__with_native
]))(var115
, var117
, var116
) /* with_native on <var115:Array[Object]>*/;
7634 var118
= ((val
* (*)(val
*))(var115
->class->vft
[COLOR_string__Object__to_s
]))(var115
) /* to_s on <var115:Array[Object]>*/;
7637 string__FlatBuffer__append(var_sig
, var118
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
7640 var120
= varonce119
;
7644 var123
= string__NativeString__to_s_with_length(var121
, var122
);
7646 varonce119
= var120
;
7649 var125
= varonce124
;
7653 var128
= string__NativeString__to_s_with_length(var126
, var127
);
7655 varonce124
= var125
;
7658 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
7659 var131
= var_selfvar
->attrs
[COLOR_abstract_compiler__RuntimeVariable___mtype
].val
; /* _mtype on <var_selfvar:RuntimeVariable> */
7660 if (unlikely(var131
== NULL
)) {
7661 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7662 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 1484);
7666 RET_LABEL130
:(void)0;
7669 var132
= NEW_array__Array(&type_array__Arraykernel__Object
);
7670 { /* var132 = array_instance Array[Object] */
7672 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArraykernel__Object
);
7673 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var120
;
7674 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var_selfvar
;
7675 ((struct instance_array__NativeArray
*)var134
)->values
[2] = (val
*) var125
;
7676 ((struct instance_array__NativeArray
*)var134
)->values
[3] = (val
*) var129
;
7678 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[Object]>*/;
7682 var135
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_string__Object__to_s
]))(var132
) /* to_s on <var132:Array[Object]>*/;
7685 string__FlatBuffer__append(var_comment
, var135
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
7688 array__Array__add(var_arguments
, var_selfvar
); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
7690 var136
= NEW_range__Range(&type_range__Rangekernel__Int
);
7693 var138
= model__MSignature__arity(var_msignature
);
7696 var139
= BOX_kernel__Int(var137
); /* autobox from Int to Discrete */
7697 var140
= BOX_kernel__Int(var138
); /* autobox from Int to Discrete */
7698 range__Range__without_last(var136
, var139
, var140
); /* Direct call range#Range#without_last on <var136:Range[Int]>*/
7701 var141
= range__Range__iterator(var136
);
7705 var142
= ((short int (*)(val
*))(var141
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var141
) /* is_ok on <var141:Iterator[Discrete]>*/;
7709 var143
= ((val
* (*)(val
*))(var141
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var141
) /* item on <var141:Iterator[Discrete]>*/;
7711 var144
= ((struct instance_kernel__Int
*)var143
)->value
; /* autounbox from nullable Object to Int */;
7714 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
7715 var147
= var_msignature
->attrs
[COLOR_model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
7716 if (unlikely(var147
== NULL
)) {
7717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
7718 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1452);
7722 RET_LABEL146
:(void)0;
7726 var148
= array__Array___91d_93d(var145
, var_i
);
7729 { /* Inline model#MParameter#mtype (var148) on <var148:nullable Object(MParameter)> */
7730 var151
= var148
->attrs
[COLOR_model__MParameter___mtype
].val
; /* _mtype on <var148:nullable Object(MParameter)> */
7731 if (unlikely(var151
== NULL
)) {
7732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7733 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1552);
7737 RET_LABEL150
:(void)0;
7742 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
7743 var154
= var_msignature
->attrs
[COLOR_model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
7745 RET_LABEL153
:(void)0;
7749 { /* Inline kernel#Int#== (var_i,var152) on <var_i:Int> */
7750 var158
= var_i
== var152
;
7753 RET_LABEL157
:(void)0;
7759 var160
= varonce159
;
7763 var163
= string__NativeString__to_s_with_length(var161
, var162
);
7765 varonce159
= var160
;
7768 var164
= abstract_compiler__AbstractCompilerVisitor__get_class(var_v
, var160
);
7770 var165
= NEW_array__Array(&type_array__Arraymodel__MType
);
7773 array__Array__with_capacity(var165
, var166
); /* Direct call array#Array#with_capacity on <var165:Array[MType]>*/
7777 array__AbstractArray__push(var_
, var_mtype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
7780 var167
= model__MClass__get_mtype(var164
, var_
);
7786 var169
= varonce168
;
7790 var172
= string__NativeString__to_s_with_length(var170
, var171
);
7792 varonce168
= var169
;
7794 var173
= NEW_array__Array(&type_array__Arraykernel__Object
);
7795 { /* var173 = array_instance Array[Object] */
7797 var175
= NEW_array__NativeArray(var174
, &type_array__NativeArraykernel__Object
);
7798 ((struct instance_array__NativeArray
*)var175
)->values
[0] = (val
*) var169
;
7799 ((struct instance_array__NativeArray
*)var175
)->values
[1] = (val
*) var_mtype
;
7801 ((void (*)(val
*, val
*, long))(var173
->class->vft
[COLOR_array__Array__with_native
]))(var173
, var175
, var174
) /* with_native on <var173:Array[Object]>*/;
7805 var176
= ((val
* (*)(val
*))(var173
->class->vft
[COLOR_string__Object__to_s
]))(var173
) /* to_s on <var173:Array[Object]>*/;
7808 string__FlatBuffer__append(var_comment
, var176
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
7811 var178
= varonce177
;
7815 var181
= string__NativeString__to_s_with_length(var179
, var180
);
7817 varonce177
= var178
;
7820 var182
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
7823 var184
= varonce183
;
7827 var187
= string__NativeString__to_s_with_length(var185
, var186
);
7829 varonce183
= var184
;
7831 var188
= NEW_array__Array(&type_array__Arraykernel__Object
);
7832 { /* var188 = array_instance Array[Object] */
7834 var190
= NEW_array__NativeArray(var189
, &type_array__NativeArraykernel__Object
);
7835 ((struct instance_array__NativeArray
*)var190
)->values
[0] = (val
*) var178
;
7836 ((struct instance_array__NativeArray
*)var190
)->values
[1] = (val
*) var182
;
7837 ((struct instance_array__NativeArray
*)var190
)->values
[2] = (val
*) var184
;
7838 var191
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
7839 ((struct instance_array__NativeArray
*)var190
)->values
[3] = (val
*) var191
;
7841 ((void (*)(val
*, val
*, long))(var188
->class->vft
[COLOR_array__Array__with_native
]))(var188
, var190
, var189
) /* with_native on <var188:Array[Object]>*/;
7845 var192
= ((val
* (*)(val
*))(var188
->class->vft
[COLOR_string__Object__to_s
]))(var188
) /* to_s on <var188:Array[Object]>*/;
7848 string__FlatBuffer__append(var_sig
, var192
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
7850 var193
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
7852 var195
= varonce194
;
7856 var198
= string__NativeString__to_s_with_length(var196
, var197
);
7858 varonce194
= var195
;
7860 var199
= NEW_array__Array(&type_array__Arraykernel__Object
);
7861 { /* var199 = array_instance Array[Object] */
7863 var201
= NEW_array__NativeArray(var200
, &type_array__NativeArraykernel__Object
);
7864 ((struct instance_array__NativeArray
*)var201
)->values
[0] = (val
*) var195
;
7865 var202
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
7866 ((struct instance_array__NativeArray
*)var201
)->values
[1] = (val
*) var202
;
7868 ((void (*)(val
*, val
*, long))(var199
->class->vft
[COLOR_array__Array__with_native
]))(var199
, var201
, var200
) /* with_native on <var199:Array[Object]>*/;
7872 var203
= ((val
* (*)(val
*))(var199
->class->vft
[COLOR_string__Object__to_s
]))(var199
) /* to_s on <var199:Array[Object]>*/;
7875 abstract_compiler__RuntimeVariable__init(var193
, var203
, var_mtype
, var_mtype
); /* Direct call abstract_compiler#RuntimeVariable#init on <var193:RuntimeVariable>*/
7877 var_argvar
= var193
;
7879 array__Array__add(var_arguments
, var_argvar
); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
7881 CONTINUE_label
: (void)0;
7883 ((void (*)(val
*))(var141
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var141
) /* next on <var141:Iterator[Discrete]>*/;
7886 BREAK_label
: (void)0;
7888 var205
= varonce204
;
7892 var208
= string__NativeString__to_s_with_length(var206
, var207
);
7894 varonce204
= var205
;
7897 string__FlatBuffer__append(var_sig
, var205
); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
7900 var210
= varonce209
;
7904 var213
= string__NativeString__to_s_with_length(var211
, var212
);
7906 varonce209
= var210
;
7909 string__FlatBuffer__append(var_comment
, var210
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
7912 if (var_ret
== NULL
) {
7913 var215
= 0; /* is null */
7915 var215
= 1; /* arg is null and recv is not */
7918 { /* Inline kernel#Object#!= (var_ret,var214) on <var_ret:nullable MType> */
7921 var219
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
7927 RET_LABEL217
:(void)0;
7933 var222
= varonce221
;
7937 var225
= string__NativeString__to_s_with_length(var223
, var224
);
7939 varonce221
= var222
;
7941 var226
= NEW_array__Array(&type_array__Arraykernel__Object
);
7942 { /* var226 = array_instance Array[Object] */
7944 var228
= NEW_array__NativeArray(var227
, &type_array__NativeArraykernel__Object
);
7945 ((struct instance_array__NativeArray
*)var228
)->values
[0] = (val
*) var222
;
7946 ((struct instance_array__NativeArray
*)var228
)->values
[1] = (val
*) var_ret
;
7948 ((void (*)(val
*, val
*, long))(var226
->class->vft
[COLOR_array__Array__with_native
]))(var226
, var228
, var227
) /* with_native on <var226:Array[Object]>*/;
7952 var229
= ((val
* (*)(val
*))(var226
->class->vft
[COLOR_string__Object__to_s
]))(var226
) /* to_s on <var226:Array[Object]>*/;
7955 string__FlatBuffer__append(var_comment
, var229
); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
7960 var230
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
7963 var232
= varonce231
;
7967 var235
= string__NativeString__to_s_with_length(var233
, var234
);
7969 varonce231
= var232
;
7971 var236
= NEW_array__Array(&type_array__Arraykernel__Object
);
7972 { /* var236 = array_instance Array[Object] */
7974 var238
= NEW_array__NativeArray(var237
, &type_array__NativeArraykernel__Object
);
7975 ((struct instance_array__NativeArray
*)var238
)->values
[0] = (val
*) var_sig
;
7976 ((struct instance_array__NativeArray
*)var238
)->values
[1] = (val
*) var232
;
7978 ((void (*)(val
*, val
*, long))(var236
->class->vft
[COLOR_array__Array__with_native
]))(var236
, var238
, var237
) /* with_native on <var236:Array[Object]>*/;
7982 var239
= ((val
* (*)(val
*))(var236
->class->vft
[COLOR_string__Object__to_s
]))(var236
) /* to_s on <var236:Array[Object]>*/;
7985 abstract_compiler__AbstractCompiler__provide_declaration(var_compiler
, var230
, var239
); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <var_compiler:AbstractCompiler>*/
7988 var241
= varonce240
;
7990 var242
= "/* method ";
7992 var244
= string__NativeString__to_s_with_length(var242
, var243
);
7994 varonce240
= var241
;
7997 var246
= varonce245
;
8001 var249
= string__NativeString__to_s_with_length(var247
, var248
);
8003 varonce245
= var246
;
8006 var251
= varonce250
;
8010 var254
= string__NativeString__to_s_with_length(var252
, var253
);
8012 varonce250
= var251
;
8014 var255
= NEW_array__Array(&type_array__Arraykernel__Object
);
8015 { /* var255 = array_instance Array[Object] */
8017 var257
= NEW_array__NativeArray(var256
, &type_array__NativeArraykernel__Object
);
8018 ((struct instance_array__NativeArray
*)var257
)->values
[0] = (val
*) var241
;
8019 ((struct instance_array__NativeArray
*)var257
)->values
[1] = (val
*) self
;
8020 ((struct instance_array__NativeArray
*)var257
)->values
[2] = (val
*) var246
;
8021 ((struct instance_array__NativeArray
*)var257
)->values
[3] = (val
*) var_comment
;
8022 ((struct instance_array__NativeArray
*)var257
)->values
[4] = (val
*) var251
;
8024 ((void (*)(val
*, val
*, long))(var255
->class->vft
[COLOR_array__Array__with_native
]))(var255
, var257
, var256
) /* with_native on <var255:Array[Object]>*/;
8028 var258
= ((val
* (*)(val
*))(var255
->class->vft
[COLOR_string__Object__to_s
]))(var255
) /* to_s on <var255:Array[Object]>*/;
8031 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var258
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
8034 var260
= varonce259
;
8038 var263
= string__NativeString__to_s_with_length(var261
, var262
);
8040 varonce259
= var260
;
8042 var264
= NEW_array__Array(&type_array__Arraykernel__Object
);
8043 { /* var264 = array_instance Array[Object] */
8045 var266
= NEW_array__NativeArray(var265
, &type_array__NativeArraykernel__Object
);
8046 ((struct instance_array__NativeArray
*)var266
)->values
[0] = (val
*) var_sig
;
8047 ((struct instance_array__NativeArray
*)var266
)->values
[1] = (val
*) var260
;
8049 ((void (*)(val
*, val
*, long))(var264
->class->vft
[COLOR_array__Array__with_native
]))(var264
, var266
, var265
) /* with_native on <var264:Array[Object]>*/;
8053 var267
= ((val
* (*)(val
*))(var264
->class->vft
[COLOR_string__Object__to_s
]))(var264
) /* to_s on <var264:Array[Object]>*/;
8056 abstract_compiler__AbstractCompilerVisitor__add_decl(var_v
, var267
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
8059 if (var_ret
== NULL
) {
8060 var269
= 0; /* is null */
8062 var269
= 1; /* arg is null and recv is not */
8065 { /* Inline kernel#Object#!= (var_ret,var268) on <var_ret:nullable MType> */
8068 var273
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
8074 RET_LABEL271
:(void)0;
8080 var275
= abstract_compiler__AbstractCompilerVisitor__new_var(var_v
, var_ret
);
8083 { /* Inline abstract_compiler#Frame#returnvar= (var_frame,var275) on <var_frame:Frame> */
8084 var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnvar
].val
= var275
; /* _returnvar on <var_frame:Frame> */
8085 RET_LABEL276
:(void)0;
8091 var278
= varonce277
;
8093 var279
= "RET_LABEL";
8095 var281
= string__NativeString__to_s_with_length(var279
, var280
);
8097 varonce277
= var278
;
8100 var282
= abstract_compiler__AbstractCompilerVisitor__get_name(var_v
, var278
);
8103 { /* Inline abstract_compiler#Frame#returnlabel= (var_frame,var282) on <var_frame:Frame> */
8104 var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnlabel
].val
= var282
; /* _returnlabel on <var_frame:Frame> */
8105 RET_LABEL283
:(void)0;
8109 var284
= separate_compiler__SeparateCompilerVisitor__call(var_v
, var_mmethoddef
, var_recv
, var_arguments
);
8111 var_subret
= var284
;
8113 if (var_ret
== NULL
) {
8114 var286
= 0; /* is null */
8116 var286
= 1; /* arg is null and recv is not */
8119 { /* Inline kernel#Object#!= (var_ret,var285) on <var_ret:nullable MType> */
8122 var290
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
8128 RET_LABEL288
:(void)0;
8134 if (var_subret
== NULL
) {
8135 var293
= 0; /* is null */
8137 var293
= 1; /* arg is null and recv is not */
8140 { /* Inline kernel#Object#!= (var_subret,var292) on <var_subret:nullable RuntimeVariable> */
8143 var297
= ((short int (*)(val
*, val
*))(var_subret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_subret
, var_other
) /* == on <var_subret:nullable RuntimeVariable(RuntimeVariable)>*/;
8149 RET_LABEL295
:(void)0;
8153 if (unlikely(!var293
)) {
8154 PRINT_ERROR("Runtime error: %s", "Assert failed");
8155 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1833);
8159 { /* Inline abstract_compiler#Frame#returnvar (var_frame) on <var_frame:Frame> */
8160 var301
= var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnvar
].val
; /* _returnvar on <var_frame:Frame> */
8162 RET_LABEL300
:(void)0;
8165 if (unlikely(var299
== NULL
)) {
8166 PRINT_ERROR("Runtime error: %s", "Cast failed");
8167 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1834);
8171 abstract_compiler__AbstractCompilerVisitor__assign(var_v
, var299
, var_subret
); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
8176 { /* Inline abstract_compiler#Frame#returnlabel (var_frame) on <var_frame:Frame> */
8177 var304
= var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnlabel
].val
; /* _returnlabel on <var_frame:Frame> */
8179 RET_LABEL303
:(void)0;
8182 if (unlikely(var302
== NULL
)) {
8183 PRINT_ERROR("Runtime error: %s", "Cast failed");
8184 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1837);
8188 var306
= varonce305
;
8192 var309
= string__NativeString__to_s_with_length(var307
, var308
);
8194 varonce305
= var306
;
8196 var310
= NEW_array__Array(&type_array__Arraykernel__Object
);
8197 { /* var310 = array_instance Array[Object] */
8199 var312
= NEW_array__NativeArray(var311
, &type_array__NativeArraykernel__Object
);
8200 ((struct instance_array__NativeArray
*)var312
)->values
[0] = (val
*) var302
;
8201 ((struct instance_array__NativeArray
*)var312
)->values
[1] = (val
*) var306
;
8203 ((void (*)(val
*, val
*, long))(var310
->class->vft
[COLOR_array__Array__with_native
]))(var310
, var312
, var311
) /* with_native on <var310:Array[Object]>*/;
8207 var313
= ((val
* (*)(val
*))(var310
->class->vft
[COLOR_string__Object__to_s
]))(var310
) /* to_s on <var310:Array[Object]>*/;
8210 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var313
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8213 if (var_ret
== NULL
) {
8214 var315
= 0; /* is null */
8216 var315
= 1; /* arg is null and recv is not */
8219 { /* Inline kernel#Object#!= (var_ret,var314) on <var_ret:nullable MType> */
8222 var319
= ((short int (*)(val
*, val
*))(var_ret
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_ret
, var_other
) /* == on <var_ret:nullable MType(MType)>*/;
8228 RET_LABEL317
:(void)0;
8234 var322
= varonce321
;
8238 var325
= string__NativeString__to_s_with_length(var323
, var324
);
8240 varonce321
= var322
;
8243 { /* Inline abstract_compiler#Frame#returnvar (var_frame) on <var_frame:Frame> */
8244 var328
= var_frame
->attrs
[COLOR_abstract_compiler__Frame___returnvar
].val
; /* _returnvar on <var_frame:Frame> */
8246 RET_LABEL327
:(void)0;
8249 if (unlikely(var326
== NULL
)) {
8250 PRINT_ERROR("Runtime error: %s", "Cast failed");
8251 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1839);
8255 var330
= varonce329
;
8259 var333
= string__NativeString__to_s_with_length(var331
, var332
);
8261 varonce329
= var330
;
8263 var334
= NEW_array__Array(&type_array__Arraykernel__Object
);
8264 { /* var334 = array_instance Array[Object] */
8266 var336
= NEW_array__NativeArray(var335
, &type_array__NativeArraykernel__Object
);
8267 ((struct instance_array__NativeArray
*)var336
)->values
[0] = (val
*) var322
;
8268 ((struct instance_array__NativeArray
*)var336
)->values
[1] = (val
*) var326
;
8269 ((struct instance_array__NativeArray
*)var336
)->values
[2] = (val
*) var330
;
8271 ((void (*)(val
*, val
*, long))(var334
->class->vft
[COLOR_array__Array__with_native
]))(var334
, var336
, var335
) /* with_native on <var334:Array[Object]>*/;
8275 var337
= ((val
* (*)(val
*))(var334
->class->vft
[COLOR_string__Object__to_s
]))(var334
) /* to_s on <var334:Array[Object]>*/;
8278 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var337
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8283 var339
= varonce338
;
8287 var342
= string__NativeString__to_s_with_length(var340
, var341
);
8289 varonce338
= var339
;
8292 abstract_compiler__AbstractCompilerVisitor__add(var_v
, var339
); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8295 var343
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
8298 var345
= varonce344
;
8302 var348
= string__NativeString__to_s_with_length(var346
, var347
);
8304 varonce344
= var345
;
8308 var350
= string__Text__has_substring(var343
, var345
, var349
);
8313 { /* Inline abstract_compiler#AbstractCompiler#names (var_compiler) on <var_compiler:AbstractCompiler> */
8314 var354
= var_compiler
->attrs
[COLOR_abstract_compiler__AbstractCompiler___names
].val
; /* _names on <var_compiler:AbstractCompiler> */
8315 if (unlikely(var354
== NULL
)) {
8316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
8317 PRINT_ERROR(" (%s:%d)\n", "src/abstract_compiler.nit", 433);
8321 RET_LABEL353
:(void)0;
8325 var355
= abstract_compiler__AbstractRuntimeFunction__c_name(self
);
8328 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8329 var358
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
8330 if (unlikely(var358
== NULL
)) {
8331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8332 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
8336 RET_LABEL357
:(void)0;
8340 { /* Inline model#MClassDef#mmodule (var356) on <var356:MClassDef> */
8341 var361
= var356
->attrs
[COLOR_model__MClassDef___mmodule
].val
; /* _mmodule on <var356:MClassDef> */
8342 if (unlikely(var361
== NULL
)) {
8343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8344 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 471);
8348 RET_LABEL360
:(void)0;
8352 { /* Inline mmodule#MModule#name (var359) on <var359:MModule> */
8353 var364
= var359
->attrs
[COLOR_mmodule__MModule___name
].val
; /* _name on <var359:MModule> */
8354 if (unlikely(var364
== NULL
)) {
8355 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8356 PRINT_ERROR(" (%s:%d)\n", "src/model/mmodule.nit", 86);
8360 RET_LABEL363
:(void)0;
8364 var366
= varonce365
;
8368 var369
= string__NativeString__to_s_with_length(var367
, var368
);
8370 varonce365
= var366
;
8373 { /* Inline model#MPropDef#mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8374 var372
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mmethoddef:MMethodDef> */
8375 if (unlikely(var372
== NULL
)) {
8376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8377 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1879);
8381 RET_LABEL371
:(void)0;
8385 { /* Inline model#MClassDef#mclass (var370) on <var370:MClassDef> */
8386 var375
= var370
->attrs
[COLOR_model__MClassDef___mclass
].val
; /* _mclass on <var370:MClassDef> */
8387 if (unlikely(var375
== NULL
)) {
8388 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8389 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 474);
8393 RET_LABEL374
:(void)0;
8397 { /* Inline model#MClass#name (var373) on <var373:MClass> */
8398 var378
= var373
->attrs
[COLOR_model__MClass___name
].val
; /* _name on <var373:MClass> */
8399 if (unlikely(var378
== NULL
)) {
8400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8401 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 340);
8405 RET_LABEL377
:(void)0;
8409 var380
= varonce379
;
8413 var383
= string__NativeString__to_s_with_length(var381
, var382
);
8415 varonce379
= var380
;
8418 { /* Inline model#MPropDef#mproperty (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8419 var386
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___mproperty
].val
; /* _mproperty on <var_mmethoddef:MMethodDef> */
8420 if (unlikely(var386
== NULL
)) {
8421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
8422 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1882);
8426 RET_LABEL385
:(void)0;
8430 { /* Inline model#MProperty#name (var384) on <var384:MProperty(MMethod)> */
8431 var389
= var384
->attrs
[COLOR_model__MProperty___name
].val
; /* _name on <var384:MProperty(MMethod)> */
8432 if (unlikely(var389
== NULL
)) {
8433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8434 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1607);
8438 RET_LABEL388
:(void)0;
8442 var391
= varonce390
;
8446 var394
= string__NativeString__to_s_with_length(var392
, var393
);
8448 varonce390
= var391
;
8451 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8452 var397
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___location
].val
; /* _location on <var_mmethoddef:MMethodDef> */
8453 if (unlikely(var397
== NULL
)) {
8454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
8455 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1876);
8459 RET_LABEL396
:(void)0;
8463 { /* Inline location#Location#file (var395) on <var395:Location> */
8464 var400
= var395
->attrs
[COLOR_location__Location___file
].val
; /* _file on <var395:Location> */
8466 RET_LABEL399
:(void)0;
8469 if (var398
== NULL
) {
8470 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8471 PRINT_ERROR(" (%s:%d)\n", "src/separate_compiler.nit", 1842);
8474 { /* Inline location#SourceFile#filename (var398) on <var398:nullable SourceFile> */
8475 if (unlikely(var398
== NULL
)) {
8476 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8477 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
8480 var403
= var398
->attrs
[COLOR_location__SourceFile___filename
].val
; /* _filename on <var398:nullable SourceFile> */
8481 if (unlikely(var403
== NULL
)) {
8482 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
8483 PRINT_ERROR(" (%s:%d)\n", "src/location.nit", 22);
8487 RET_LABEL402
:(void)0;
8491 var405
= varonce404
;
8495 var408
= string__NativeString__to_s_with_length(var406
, var407
);
8497 varonce404
= var405
;
8500 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8501 var411
= var_mmethoddef
->attrs
[COLOR_model__MPropDef___location
].val
; /* _location on <var_mmethoddef:MMethodDef> */
8502 if (unlikely(var411
== NULL
)) {
8503 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
8504 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 1876);
8508 RET_LABEL410
:(void)0;
8512 { /* Inline location#Location#line_start (var409) on <var409:Location> */
8513 var414
= var409
->attrs
[COLOR_location__Location___line_start
].l
; /* _line_start on <var409:Location> */
8515 RET_LABEL413
:(void)0;
8519 var416
= varonce415
;
8523 var419
= string__NativeString__to_s_with_length(var417
, var418
);
8525 varonce415
= var416
;
8527 var420
= NEW_array__Array(&type_array__Arraykernel__Object
);
8528 { /* var420 = array_instance Array[Object] */
8530 var422
= NEW_array__NativeArray(var421
, &type_array__NativeArraykernel__Object
);
8531 ((struct instance_array__NativeArray
*)var422
)->values
[0] = (val
*) var362
;
8532 ((struct instance_array__NativeArray
*)var422
)->values
[1] = (val
*) var366
;
8533 ((struct instance_array__NativeArray
*)var422
)->values
[2] = (val
*) var376
;
8534 ((struct instance_array__NativeArray
*)var422
)->values
[3] = (val
*) var380
;
8535 ((struct instance_array__NativeArray
*)var422
)->values
[4] = (val
*) var387
;
8536 ((struct instance_array__NativeArray
*)var422
)->values
[5] = (val
*) var391
;
8537 ((struct instance_array__NativeArray
*)var422
)->values
[6] = (val
*) var401
;
8538 ((struct instance_array__NativeArray
*)var422
)->values
[7] = (val
*) var405
;
8539 var423
= BOX_kernel__Int(var412
); /* autobox from Int to Object */
8540 ((struct instance_array__NativeArray
*)var422
)->values
[8] = (val
*) var423
;
8541 ((struct instance_array__NativeArray
*)var422
)->values
[9] = (val
*) var416
;
8543 ((void (*)(val
*, val
*, long))(var420
->class->vft
[COLOR_array__Array__with_native
]))(var420
, var422
, var421
) /* with_native on <var420:Array[Object]>*/;
8547 var424
= ((val
* (*)(val
*))(var420
->class->vft
[COLOR_string__Object__to_s
]))(var420
) /* to_s on <var420:Array[Object]>*/;
8550 hash_collection__HashMap___91d_93d_61d(var352
, var355
, var424
); /* Direct call hash_collection#HashMap#[]= on <var352:HashMap[String, String]>*/
8556 /* method separate_compiler#VirtualRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */
8557 void VIRTUAL_separate_compiler__VirtualRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
8558 separate_compiler__VirtualRuntimeFunction__compile_to_c(self
, p0
); /* Direct call separate_compiler#VirtualRuntimeFunction#compile_to_c on <self:Object(VirtualRuntimeFunction)>*/
8561 /* method separate_compiler#MType#const_color for (self: MType): String */
8562 val
* separate_compiler__MType__const_color(val
* self
) {
8563 val
* var
/* : String */;
8564 static val
* varonce
;
8565 val
* var1
/* : String */;
8566 char* var2
/* : NativeString */;
8567 long var3
/* : Int */;
8568 val
* var4
/* : FlatString */;
8569 val
* var5
/* : String */;
8570 val
* var6
/* : Array[Object] */;
8571 long var7
/* : Int */;
8572 val
* var8
/* : NativeArray[Object] */;
8573 val
* var9
/* : String */;
8579 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8584 var5
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(self
) /* c_name on <self:MType>*/;
8586 var6
= NEW_array__Array(&type_array__Arraykernel__Object
);
8587 { /* var6 = array_instance Array[Object] */
8589 var8
= NEW_array__NativeArray(var7
, &type_array__NativeArraykernel__Object
);
8590 ((struct instance_array__NativeArray
*)var8
)->values
[0] = (val
*) var1
;
8591 ((struct instance_array__NativeArray
*)var8
)->values
[1] = (val
*) var5
;
8593 ((void (*)(val
*, val
*, long))(var6
->class->vft
[COLOR_array__Array__with_native
]))(var6
, var8
, var7
) /* with_native on <var6:Array[Object]>*/;
8597 var9
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_string__Object__to_s
]))(var6
) /* to_s on <var6:Array[Object]>*/;
8604 /* method separate_compiler#MType#const_color for (self: Object): String */
8605 val
* VIRTUAL_separate_compiler__MType__const_color(val
* self
) {
8606 val
* var
/* : String */;
8607 val
* var1
/* : String */;
8608 var1
= separate_compiler__MType__const_color(self
);
8613 /* method separate_compiler#MType#c_instance_name for (self: MType): String */
8614 val
* separate_compiler__MType__c_instance_name(val
* self
) {
8615 val
* var
/* : String */;
8616 val
* var1
/* : String */;
8618 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(self
) /* c_name on <self:MType>*/;
8625 /* method separate_compiler#MType#c_instance_name for (self: Object): String */
8626 val
* VIRTUAL_separate_compiler__MType__c_instance_name(val
* self
) {
8627 val
* var
/* : String */;
8628 val
* var1
/* : String */;
8629 var1
= separate_compiler__MType__c_instance_name(self
);
8634 /* method separate_compiler#MClassType#c_instance_name for (self: MClassType): String */
8635 val
* separate_compiler__MClassType__c_instance_name(val
* self
) {
8636 val
* var
/* : String */;
8637 val
* var1
/* : MClass */;
8638 val
* var3
/* : MClass */;
8639 val
* var4
/* : String */;
8641 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
8642 var3
= self
->attrs
[COLOR_model__MClassType___mclass
].val
; /* _mclass on <self:MClassType> */
8643 if (unlikely(var3
== NULL
)) {
8644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8645 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 969);
8653 var4
= separate_compiler__MClass__c_instance_name(var1
);
8660 /* method separate_compiler#MClassType#c_instance_name for (self: Object): String */
8661 val
* VIRTUAL_separate_compiler__MClassType__c_instance_name(val
* self
) {
8662 val
* var
/* : String */;
8663 val
* var1
/* : String */;
8664 var1
= separate_compiler__MClassType__c_instance_name(self
);
8669 /* method separate_compiler#MClass#c_instance_name for (self: MClass): String */
8670 val
* separate_compiler__MClass__c_instance_name(val
* self
) {
8671 val
* var
/* : String */;
8672 val
* var1
/* : MClassKind */;
8673 val
* var3
/* : MClassKind */;
8674 val
* var4
/* : MClassKind */;
8675 short int var5
/* : Bool */;
8676 short int var6
/* : Bool */;
8677 val
* var_other
/* var other: nullable Object */;
8678 short int var8
/* : Bool */;
8679 short int var10
/* : Bool */;
8680 static val
* varonce
;
8681 val
* var11
/* : String */;
8682 char* var12
/* : NativeString */;
8683 long var13
/* : Int */;
8684 val
* var14
/* : FlatString */;
8685 val
* var15
/* : String */;
8687 { /* Inline model#MClass#kind (self) on <self:MClass> */
8688 var3
= self
->attrs
[COLOR_model__MClass___kind
].val
; /* _kind on <self:MClass> */
8689 if (unlikely(var3
== NULL
)) {
8690 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
8691 PRINT_ERROR(" (%s:%d)\n", "src/model/model.nit", 355);
8699 var4
= model__Object__extern_kind(self
);
8702 { /* Inline kernel#Object#== (var1,var4) on <var1:MClassKind> */
8705 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:MClassKind> */
8706 var10
= var1
== var_other
;
8722 var12
= "kernel__Pointer";
8724 var14
= string__NativeString__to_s_with_length(var12
, var13
);
8732 var15
= abstract_compiler__MClass__c_name(self
);
8740 /* method separate_compiler#MClass#c_instance_name for (self: Object): String */
8741 val
* VIRTUAL_separate_compiler__MClass__c_instance_name(val
* self
) {
8742 val
* var
/* : String */;
8743 val
* var1
/* : String */;
8744 var1
= separate_compiler__MClass__c_instance_name(self
);
8749 /* method separate_compiler#MProperty#const_color for (self: MProperty): String */
8750 val
* separate_compiler__MProperty__const_color(val
* self
) {
8751 val
* var
/* : String */;
8752 static val
* varonce
;
8753 val
* var1
/* : String */;
8754 char* var2
/* : NativeString */;
8755 long var3
/* : Int */;
8756 val
* var4
/* : FlatString */;
8757 val
* var5
/* : String */;
8758 val
* var6
/* : Array[Object] */;
8759 long var7
/* : Int */;
8760 val
* var8
/* : NativeArray[Object] */;
8761 val
* var9
/* : String */;
8767 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8772 var5
= abstract_compiler__MProperty__c_name(self
);
8774 var6
= NEW_array__Array(&type_array__Arraykernel__Object
);
8775 { /* var6 = array_instance Array[Object] */
8777 var8
= NEW_array__NativeArray(var7
, &type_array__NativeArraykernel__Object
);
8778 ((struct instance_array__NativeArray
*)var8
)->values
[0] = (val
*) var1
;
8779 ((struct instance_array__NativeArray
*)var8
)->values
[1] = (val
*) var5
;
8781 ((void (*)(val
*, val
*, long))(var6
->class->vft
[COLOR_array__Array__with_native
]))(var6
, var8
, var7
) /* with_native on <var6:Array[Object]>*/;
8785 var9
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_string__Object__to_s
]))(var6
) /* to_s on <var6:Array[Object]>*/;
8792 /* method separate_compiler#MProperty#const_color for (self: Object): String */
8793 val
* VIRTUAL_separate_compiler__MProperty__const_color(val
* self
) {
8794 val
* var
/* : String */;
8795 val
* var1
/* : String */;
8796 var1
= separate_compiler__MProperty__const_color(self
);
8801 /* method separate_compiler#MPropDef#const_color for (self: MPropDef): String */
8802 val
* separate_compiler__MPropDef__const_color(val
* self
) {
8803 val
* var
/* : String */;
8804 static val
* varonce
;
8805 val
* var1
/* : String */;
8806 char* var2
/* : NativeString */;
8807 long var3
/* : Int */;
8808 val
* var4
/* : FlatString */;
8809 val
* var5
/* : String */;
8810 val
* var6
/* : Array[Object] */;
8811 long var7
/* : Int */;
8812 val
* var8
/* : NativeArray[Object] */;
8813 val
* var9
/* : String */;
8819 var4
= string__NativeString__to_s_with_length(var2
, var3
);
8824 var5
= abstract_compiler__MPropDef__c_name(self
);
8826 var6
= NEW_array__Array(&type_array__Arraykernel__Object
);
8827 { /* var6 = array_instance Array[Object] */
8829 var8
= NEW_array__NativeArray(var7
, &type_array__NativeArraykernel__Object
);
8830 ((struct instance_array__NativeArray
*)var8
)->values
[0] = (val
*) var1
;
8831 ((struct instance_array__NativeArray
*)var8
)->values
[1] = (val
*) var5
;
8833 ((void (*)(val
*, val
*, long))(var6
->class->vft
[COLOR_array__Array__with_native
]))(var6
, var8
, var7
) /* with_native on <var6:Array[Object]>*/;
8837 var9
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_string__Object__to_s
]))(var6
) /* to_s on <var6:Array[Object]>*/;
8844 /* method separate_compiler#MPropDef#const_color for (self: Object): String */
8845 val
* VIRTUAL_separate_compiler__MPropDef__const_color(val
* self
) {
8846 val
* var
/* : String */;
8847 val
* var1
/* : String */;
8848 var1
= separate_compiler__MPropDef__const_color(self
);