1 #include "separate_compiler.sep.0.h"
2 /* method separate_compiler#SeparateCompilerVisitor#native_array_def for (self: SeparateCompilerVisitor, String, nullable MType, Array[RuntimeVariable]) */
3 void separate_compiler__SeparateCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
4 val
* var_pname
/* var pname: String */;
5 val
* var_ret_type
/* var ret_type: nullable MType */;
6 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
7 val
* var
/* : nullable Object */;
8 val
* var1
/* : MType */;
9 val
* var_elttype
/* var elttype: MType */;
11 val
* var2
/* : String */;
12 char* var3
/* : NativeString */;
13 long var4
/* : Int */;
14 val
* var5
/* : String */;
15 val
* var6
/* : MClass */;
16 val
* var_nclass
/* var nclass: MClass */;
17 val
* var7
/* : Array[Object] */;
18 long var8
/* : Int */;
19 val
* var_
/* var : Array[Object] */;
21 val
* var10
/* : String */;
22 char* var11
/* : NativeString */;
23 long var12
/* : Int */;
24 val
* var13
/* : String */;
25 val
* var14
/* : String */;
26 static val
* varonce15
;
27 val
* var16
/* : String */;
28 char* var17
/* : NativeString */;
29 long var18
/* : Int */;
30 val
* var19
/* : String */;
31 long var20
/* : Int */;
32 val
* var21
/* : nullable Object */;
33 static val
* varonce22
;
34 val
* var23
/* : String */;
35 char* var24
/* : NativeString */;
36 long var25
/* : Int */;
37 val
* var26
/* : String */;
38 val
* var27
/* : String */;
39 val
* var_recv
/* var recv: String */;
40 static val
* varonce28
;
41 val
* var29
/* : String */;
42 char* var30
/* : NativeString */;
43 long var31
/* : Int */;
44 val
* var32
/* : String */;
45 short int var33
/* : Bool */;
46 static val
* varonce34
;
47 val
* var35
/* : String */;
48 char* var36
/* : NativeString */;
49 long var37
/* : Int */;
50 val
* var38
/* : String */;
51 long var39
/* : Int */;
52 val
* var40
/* : nullable Object */;
53 static val
* varonce41
;
54 val
* var42
/* : String */;
55 char* var43
/* : NativeString */;
56 long var44
/* : Int */;
57 val
* var45
/* : String */;
58 val
* var46
/* : Array[Object] */;
59 long var47
/* : Int */;
60 val
* var48
/* : NativeArray[Object] */;
61 val
* var49
/* : String */;
62 val
* var50
/* : RuntimeVariable */;
63 static val
* varonce51
;
64 val
* var52
/* : String */;
65 char* var53
/* : NativeString */;
66 long var54
/* : Int */;
67 val
* var55
/* : String */;
68 short int var56
/* : Bool */;
69 static val
* varonce57
;
70 val
* var58
/* : String */;
71 char* var59
/* : NativeString */;
72 long var60
/* : Int */;
73 val
* var61
/* : String */;
74 long var62
/* : Int */;
75 val
* var63
/* : nullable Object */;
76 static val
* varonce64
;
77 val
* var65
/* : String */;
78 char* var66
/* : NativeString */;
79 long var67
/* : Int */;
80 val
* var68
/* : String */;
81 long var69
/* : Int */;
82 val
* var70
/* : nullable Object */;
83 static val
* varonce71
;
84 val
* var72
/* : String */;
85 char* var73
/* : NativeString */;
86 long var74
/* : Int */;
87 val
* var75
/* : String */;
88 val
* var76
/* : Array[Object] */;
89 long var77
/* : Int */;
90 val
* var78
/* : NativeArray[Object] */;
91 val
* var79
/* : String */;
92 static val
* varonce80
;
93 val
* var81
/* : String */;
94 char* var82
/* : NativeString */;
95 long var83
/* : Int */;
96 val
* var84
/* : String */;
97 short int var85
/* : Bool */;
98 val
* var86
/* : Array[Object] */;
99 long var87
/* : Int */;
100 val
* var_88
/* var : Array[Object] */;
101 static val
* varonce89
;
102 val
* var90
/* : String */;
103 char* var91
/* : NativeString */;
104 long var92
/* : Int */;
105 val
* var93
/* : String */;
106 val
* var94
/* : String */;
107 static val
* varonce95
;
108 val
* var96
/* : String */;
109 char* var97
/* : NativeString */;
110 long var98
/* : Int */;
111 val
* var99
/* : String */;
112 long var100
/* : Int */;
113 val
* var101
/* : nullable Object */;
114 static val
* varonce102
;
115 val
* var103
/* : String */;
116 char* var104
/* : NativeString */;
117 long var105
/* : Int */;
118 val
* var106
/* : String */;
119 val
* var107
/* : String */;
120 val
* var_recv1
/* var recv1: String */;
121 static val
* varonce108
;
122 val
* var109
/* : String */;
123 char* var110
/* : NativeString */;
124 long var111
/* : Int */;
125 val
* var112
/* : String */;
126 static val
* varonce113
;
127 val
* var114
/* : String */;
128 char* var115
/* : NativeString */;
129 long var116
/* : Int */;
130 val
* var117
/* : String */;
131 static val
* varonce118
;
132 val
* var119
/* : String */;
133 char* var120
/* : NativeString */;
134 long var121
/* : Int */;
135 val
* var122
/* : String */;
136 long var123
/* : Int */;
137 val
* var124
/* : nullable Object */;
138 static val
* varonce125
;
139 val
* var126
/* : String */;
140 char* var127
/* : NativeString */;
141 long var128
/* : Int */;
142 val
* var129
/* : String */;
143 val
* var130
/* : String */;
144 static val
* varonce131
;
145 val
* var132
/* : String */;
146 char* var133
/* : NativeString */;
147 long var134
/* : Int */;
148 val
* var135
/* : String */;
149 val
* var136
/* : Array[Object] */;
150 long var137
/* : Int */;
151 val
* var138
/* : NativeArray[Object] */;
152 val
* var139
/* : String */;
156 var
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[RuntimeVariable]>*/;
157 var1
= ((val
* (*)(val
*))(var
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var
) /* mtype on <var:nullable Object(RuntimeVariable)>*/;
162 var3
= "NativeArray";
164 var5
= string__NativeString__to_s_with_length(var3
, var4
);
168 var6
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var2
) /* get_class on <self:SeparateCompilerVisitor>*/;
170 var7
= NEW_array__Array(&type_array__Arraykernel__Object
);
172 ((void (*)(val
*, long))(var7
->class->vft
[COLOR_array__Array__with_capacity
]))(var7
, var8
) /* with_capacity on <var7:Array[Object]>*/;
177 var11
= "((struct instance_";
179 var13
= string__NativeString__to_s_with_length(var11
, var12
);
183 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var10
) /* add on <var_:Array[Object]>*/;
184 var14
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_separate_compiler__MClass__c_instance_name
]))(var_nclass
) /* c_instance_name on <var_nclass:MClass>*/;
185 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var14
) /* add on <var_:Array[Object]>*/;
191 var19
= string__NativeString__to_s_with_length(var17
, var18
);
195 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var16
) /* add on <var_:Array[Object]>*/;
197 var21
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var20
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
198 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var21
) /* add on <var_:Array[Object]>*/;
204 var26
= string__NativeString__to_s_with_length(var24
, var25
);
208 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var23
) /* add on <var_:Array[Object]>*/;
209 var27
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
216 var32
= string__NativeString__to_s_with_length(var30
, var31
);
220 var33
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var29
) /* == on <var_pname:String>*/;
227 var38
= string__NativeString__to_s_with_length(var36
, var37
);
232 var40
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var39
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
238 var45
= string__NativeString__to_s_with_length(var43
, var44
);
242 var46
= NEW_array__Array(&type_array__Arraykernel__Object
);
243 { /* var46 = array_instance Array[Object] */
245 var48
= NEW_array__NativeArray(var47
, &type_array__NativeArraykernel__Object
);
246 ((struct instance_array__NativeArray
*)var48
)->values
[0] = (val
*) var_recv
;
247 ((struct instance_array__NativeArray
*)var48
)->values
[1] = (val
*) var35
;
248 ((struct instance_array__NativeArray
*)var48
)->values
[2] = (val
*) var40
;
249 ((struct instance_array__NativeArray
*)var48
)->values
[3] = (val
*) var42
;
250 ((void (*)(val
*, val
*, long))(var46
->class->vft
[COLOR_array__Array__with_native
]))(var46
, var48
, var47
) /* with_native on <var46:Array[Object]>*/;
252 var49
= ((val
* (*)(val
*))(var46
->class->vft
[COLOR_string__Object__to_s
]))(var46
) /* to_s on <var46:Array[Object]>*/;
253 if (var_ret_type
== NULL
) {
254 fprintf(stderr
, "Runtime error: %s", "Cast failed");
255 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1623);
258 var50
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr
]))(self
, var49
, var_ret_type
) /* new_expr on <self:SeparateCompilerVisitor>*/;
259 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var50
) /* ret on <self:SeparateCompilerVisitor>*/;
267 var55
= string__NativeString__to_s_with_length(var53
, var54
);
271 var56
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var52
) /* == on <var_pname:String>*/;
278 var61
= string__NativeString__to_s_with_length(var59
, var60
);
283 var63
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var62
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
289 var68
= string__NativeString__to_s_with_length(var66
, var67
);
294 var70
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var69
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
300 var75
= string__NativeString__to_s_with_length(var73
, var74
);
304 var76
= NEW_array__Array(&type_array__Arraykernel__Object
);
305 { /* var76 = array_instance Array[Object] */
307 var78
= NEW_array__NativeArray(var77
, &type_array__NativeArraykernel__Object
);
308 ((struct instance_array__NativeArray
*)var78
)->values
[0] = (val
*) var_recv
;
309 ((struct instance_array__NativeArray
*)var78
)->values
[1] = (val
*) var58
;
310 ((struct instance_array__NativeArray
*)var78
)->values
[2] = (val
*) var63
;
311 ((struct instance_array__NativeArray
*)var78
)->values
[3] = (val
*) var65
;
312 ((struct instance_array__NativeArray
*)var78
)->values
[4] = (val
*) var70
;
313 ((struct instance_array__NativeArray
*)var78
)->values
[5] = (val
*) var72
;
314 ((void (*)(val
*, val
*, long))(var76
->class->vft
[COLOR_array__Array__with_native
]))(var76
, var78
, var77
) /* with_native on <var76:Array[Object]>*/;
316 var79
= ((val
* (*)(val
*))(var76
->class->vft
[COLOR_string__Object__to_s
]))(var76
) /* to_s on <var76:Array[Object]>*/;
317 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var79
) /* add on <self:SeparateCompilerVisitor>*/;
325 var84
= string__NativeString__to_s_with_length(var82
, var83
);
329 var85
= ((short int (*)(val
*, val
*))(var_pname
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var_pname
, var81
) /* == on <var_pname:String>*/;
331 var86
= NEW_array__Array(&type_array__Arraykernel__Object
);
333 ((void (*)(val
*, long))(var86
->class->vft
[COLOR_array__Array__with_capacity
]))(var86
, var87
) /* with_capacity on <var86:Array[Object]>*/;
338 var91
= "((struct instance_";
340 var93
= string__NativeString__to_s_with_length(var91
, var92
);
344 ((void (*)(val
*, val
*))(var_88
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_88
, var90
) /* add on <var_88:Array[Object]>*/;
345 var94
= ((val
* (*)(val
*))(var_nclass
->class->vft
[COLOR_separate_compiler__MClass__c_instance_name
]))(var_nclass
) /* c_instance_name on <var_nclass:MClass>*/;
346 ((void (*)(val
*, val
*))(var_88
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_88
, var94
) /* add on <var_88:Array[Object]>*/;
352 var99
= string__NativeString__to_s_with_length(var97
, var98
);
356 ((void (*)(val
*, val
*))(var_88
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_88
, var96
) /* add on <var_88:Array[Object]>*/;
358 var101
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var100
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
359 ((void (*)(val
*, val
*))(var_88
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_88
, var101
) /* add on <var_88:Array[Object]>*/;
363 var104
= ")->values";
365 var106
= string__NativeString__to_s_with_length(var104
, var105
);
369 ((void (*)(val
*, val
*))(var_88
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_88
, var103
) /* add on <var_88:Array[Object]>*/;
370 var107
= ((val
* (*)(val
*))(var_88
->class->vft
[COLOR_string__Object__to_s
]))(var_88
) /* to_s on <var_88:Array[Object]>*/;
377 var112
= string__NativeString__to_s_with_length(var110
, var111
);
386 var117
= string__NativeString__to_s_with_length(var115
, var116
);
395 var122
= string__NativeString__to_s_with_length(var120
, var121
);
400 var124
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var123
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
406 var129
= string__NativeString__to_s_with_length(var127
, var128
);
410 var130
= ((val
* (*)(val
*))(var_elttype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_elttype
) /* ctype on <var_elttype:MType>*/;
416 var135
= string__NativeString__to_s_with_length(var133
, var134
);
420 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
421 { /* var136 = array_instance Array[Object] */
423 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
424 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var109
;
425 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var_recv1
;
426 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var114
;
427 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var_recv
;
428 ((struct instance_array__NativeArray
*)var138
)->values
[4] = (val
*) var119
;
429 ((struct instance_array__NativeArray
*)var138
)->values
[5] = (val
*) var124
;
430 ((struct instance_array__NativeArray
*)var138
)->values
[6] = (val
*) var126
;
431 ((struct instance_array__NativeArray
*)var138
)->values
[7] = (val
*) var130
;
432 ((struct instance_array__NativeArray
*)var138
)->values
[8] = (val
*) var132
;
433 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
435 var139
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
436 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(self
, var139
) /* add on <self:SeparateCompilerVisitor>*/;
444 /* method separate_compiler#SeparateCompilerVisitor#native_array_def for (self: Object, String, nullable MType, Array[RuntimeVariable]) */
445 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__native_array_def(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
446 separate_compiler__SeparateCompilerVisitor__native_array_def(self
, p0
, p1
, p2
);
449 /* method separate_compiler#SeparateCompilerVisitor#calloc_array for (self: SeparateCompilerVisitor, MType, Array[RuntimeVariable]) */
450 void separate_compiler__SeparateCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
451 val
* var_ret_type
/* var ret_type: MType */;
452 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
454 val
* var
/* : String */;
455 char* var1
/* : NativeString */;
456 long var2
/* : Int */;
457 val
* var3
/* : String */;
458 val
* var4
/* : MClass */;
459 val
* var_mclass
/* var mclass: MClass */;
460 val
* var5
/* : MClassType */;
461 val
* var6
/* : Array[MType] */;
462 val
* var7
/* : nullable Object */;
463 short int var8
/* : Bool */;
466 const char* var_class_name
;
467 val
* var_ft
/* var ft: MParameterType */;
468 long var9
/* : Int */;
469 val
* var10
/* : nullable Object */;
470 val
* var11
/* : RuntimeVariable */;
471 val
* var_res
/* var res: RuntimeVariable */;
477 var1
= "ArrayCapable";
479 var3
= string__NativeString__to_s_with_length(var1
, var2
);
483 var4
= ((val
* (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(self
, var
) /* get_class on <self:SeparateCompilerVisitor>*/;
485 var5
= ((val
* (*)(val
*))(var_mclass
->class->vft
[COLOR_model__MClass__mclass_type
]))(var_mclass
) /* mclass_type on <var_mclass:MClass>*/;
486 var6
= ((val
* (*)(val
*))(var5
->class->vft
[COLOR_model__MClassType__arguments
]))(var5
) /* arguments on <var5:MClassType>*/;
487 var7
= ((val
* (*)(val
*))(var6
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var6
) /* first on <var6:Array[MType]>*/;
488 /* <var7:nullable Object(MType)> isa MParameterType */
489 cltype
= type_model__MParameterType
.color
;
490 idtype
= type_model__MParameterType
.id
;
491 if(cltype
>= var7
->type
->table_size
) {
494 var8
= var7
->type
->type_table
[cltype
] == idtype
;
497 var_class_name
= var7
== NULL ?
"null" : var7
->type
->name
;
498 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MParameterType", var_class_name
);
499 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1638);
504 var10
= ((val
* (*)(val
*, long))(var_arguments
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var_arguments
, var9
) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
505 var11
= ((val
* (*)(val
*, val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__SeparateCompilerVisitor__native_array_instance
]))(self
, var_ft
, var10
) /* native_array_instance on <self:SeparateCompilerVisitor>*/;
507 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__ret
]))(self
, var_res
) /* ret on <self:SeparateCompilerVisitor>*/;
510 /* method separate_compiler#SeparateCompilerVisitor#calloc_array for (self: Object, MType, Array[RuntimeVariable]) */
511 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__calloc_array(val
* self
, val
* p0
, val
* p1
) {
512 separate_compiler__SeparateCompilerVisitor__calloc_array(self
, p0
, p1
);
515 /* method separate_compiler#SeparateCompilerVisitor#link_unresolved_type for (self: SeparateCompilerVisitor, MClassDef, MType) */
516 void separate_compiler__SeparateCompilerVisitor__link_unresolved_type(val
* self
, val
* p0
, val
* p1
) {
517 val
* var_mclassdef
/* var mclassdef: MClassDef */;
518 val
* var_mtype
/* var mtype: MType */;
519 short int var
/* : Bool */;
520 val
* var1
/* : AbstractCompiler */;
521 val
* var_compiler
/* var compiler: SeparateCompiler */;
522 val
* var2
/* : Map[MClassDef, Set[MType]] */;
523 val
* var3
/* : nullable Frame */;
524 val
* var4
/* : MPropDef */;
525 val
* var5
/* : MClassDef */;
526 short int var6
/* : Bool */;
527 short int var7
/* : Bool */;
528 val
* var8
/* : Map[MClassDef, Set[MType]] */;
529 val
* var9
/* : nullable Frame */;
530 val
* var10
/* : MPropDef */;
531 val
* var11
/* : MClassDef */;
532 val
* var12
/* : HashSet[MType] */;
533 val
* var13
/* : Map[MClassDef, Set[MType]] */;
534 val
* var14
/* : nullable Frame */;
535 val
* var15
/* : MPropDef */;
536 val
* var16
/* : MClassDef */;
537 val
* var17
/* : nullable Object */;
540 var
= ((short int (*)(val
*))(var_mtype
->class->vft
[COLOR_model__MType__need_anchor
]))(var_mtype
) /* need_anchor on <var_mtype:MType>*/;
542 fprintf(stderr
, "Runtime error: %s", "Assert failed");
543 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1644);
546 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler
]))(self
) /* compiler on <self:SeparateCompilerVisitor>*/;
548 var2
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(var_compiler
) /* live_unresolved_types on <var_compiler:SeparateCompiler>*/;
549 var3
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateCompilerVisitor>*/;
551 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
552 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1646);
555 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var3
) /* mpropdef on <var3:nullable Frame>*/;
557 var5
= ((val
* (*)(val
*))(var4
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var4
) /* mclassdef on <var4:MPropDef>*/;
558 var6
= ((short int (*)(val
*, val
*))(var2
->class->vft
[COLOR_abstract_collection__MapRead__has_key
]))(var2
, var5
) /* has_key on <var2:Map[MClassDef, Set[MType]]>*/;
561 var8
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(var_compiler
) /* live_unresolved_types on <var_compiler:SeparateCompiler>*/;
562 var9
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateCompilerVisitor>*/;
564 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
565 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1647);
568 var10
= ((val
* (*)(val
*))(var9
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var9
) /* mpropdef on <var9:nullable Frame>*/;
570 var11
= ((val
* (*)(val
*))(var10
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var10
) /* mclassdef on <var10:MPropDef>*/;
571 var12
= NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MType
);
572 ((void (*)(val
*))(var12
->class->vft
[COLOR_hash_collection__HashSet__init
]))(var12
) /* init on <var12:HashSet[MType]>*/;
573 ((void (*)(val
*, val
*, val
*))(var8
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var8
, var11
, var12
) /* []= on <var8:Map[MClassDef, Set[MType]]>*/;
576 var13
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_separate_compiler__SeparateCompiler__live_unresolved_types
]))(var_compiler
) /* live_unresolved_types on <var_compiler:SeparateCompiler>*/;
577 var14
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame
]))(self
) /* frame on <self:SeparateCompilerVisitor>*/;
579 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
580 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1649);
583 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_abstract_compiler__Frame__mpropdef
]))(var14
) /* mpropdef on <var14:nullable Frame>*/;
585 var16
= ((val
* (*)(val
*))(var15
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var15
) /* mclassdef on <var15:MPropDef>*/;
586 var17
= ((val
* (*)(val
*, val
*))(var13
->class->vft
[COLOR_abstract_collection__MapRead___91d_93d
]))(var13
, var16
) /* [] on <var13:Map[MClassDef, Set[MType]]>*/;
587 ((void (*)(val
*, val
*))(var17
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var17
, var_mtype
) /* add on <var17:nullable Object(Set[MType])>*/;
590 /* method separate_compiler#SeparateCompilerVisitor#link_unresolved_type for (self: Object, MClassDef, MType) */
591 void VIRTUAL_separate_compiler__SeparateCompilerVisitor__link_unresolved_type(val
* self
, val
* p0
, val
* p1
) {
592 separate_compiler__SeparateCompilerVisitor__link_unresolved_type(self
, p0
, p1
);
595 /* method separate_compiler#MMethodDef#separate_runtime_function for (self: MMethodDef): AbstractRuntimeFunction */
596 val
* separate_compiler__MMethodDef__separate_runtime_function(val
* self
) {
597 val
* var
/* : AbstractRuntimeFunction */;
598 val
* var1
/* : nullable SeparateRuntimeFunction */;
599 val
* var_res
/* var res: nullable SeparateRuntimeFunction */;
600 val
* var2
/* : null */;
601 short int var3
/* : Bool */;
602 val
* var4
/* : SeparateRuntimeFunction */;
603 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__MMethodDef__separate_runtime_function_cache
]))(self
) /* separate_runtime_function_cache on <self:MMethodDef>*/;
606 if (var_res
== NULL
) {
607 var3
= 1; /* is null */
609 var3
= 0; /* arg is null but recv is not */
612 var4
= NEW_separate_compiler__SeparateRuntimeFunction(&type_separate_compiler__SeparateRuntimeFunction
);
613 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__init
]))(var4
, self
) /* init on <var4:SeparateRuntimeFunction>*/;
615 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__MMethodDef__separate_runtime_function_cache_61d
]))(self
, var_res
) /* separate_runtime_function_cache= on <self:MMethodDef>*/;
623 /* method separate_compiler#MMethodDef#separate_runtime_function for (self: Object): AbstractRuntimeFunction */
624 val
* VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function(val
* self
) {
625 val
* var
/* : AbstractRuntimeFunction */;
626 val
* var1
/* : AbstractRuntimeFunction */;
627 var1
= separate_compiler__MMethodDef__separate_runtime_function(self
);
632 /* method separate_compiler#MMethodDef#separate_runtime_function_cache for (self: MMethodDef): nullable SeparateRuntimeFunction */
633 val
* separate_compiler__MMethodDef__separate_runtime_function_cache(val
* self
) {
634 val
* var
/* : nullable SeparateRuntimeFunction */;
635 val
* var1
/* : nullable SeparateRuntimeFunction */;
636 var1
= self
->attrs
[COLOR_separate_compiler__MMethodDef___64dseparate_runtime_function_cache
].val
; /* @separate_runtime_function_cache on <self:MMethodDef> */
641 /* method separate_compiler#MMethodDef#separate_runtime_function_cache for (self: Object): nullable SeparateRuntimeFunction */
642 val
* VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function_cache(val
* self
) {
643 val
* var
/* : nullable SeparateRuntimeFunction */;
644 val
* var1
/* : nullable SeparateRuntimeFunction */;
645 var1
= separate_compiler__MMethodDef__separate_runtime_function_cache(self
);
650 /* method separate_compiler#MMethodDef#separate_runtime_function_cache= for (self: MMethodDef, nullable SeparateRuntimeFunction) */
651 void separate_compiler__MMethodDef__separate_runtime_function_cache_61d(val
* self
, val
* p0
) {
652 self
->attrs
[COLOR_separate_compiler__MMethodDef___64dseparate_runtime_function_cache
].val
= p0
; /* @separate_runtime_function_cache on <self:MMethodDef> */
655 /* method separate_compiler#MMethodDef#separate_runtime_function_cache= for (self: Object, nullable SeparateRuntimeFunction) */
656 void VIRTUAL_separate_compiler__MMethodDef__separate_runtime_function_cache_61d(val
* self
, val
* p0
) {
657 separate_compiler__MMethodDef__separate_runtime_function_cache_61d(self
, p0
);
660 /* method separate_compiler#MMethodDef#virtual_runtime_function for (self: MMethodDef): AbstractRuntimeFunction */
661 val
* separate_compiler__MMethodDef__virtual_runtime_function(val
* self
) {
662 val
* var
/* : AbstractRuntimeFunction */;
663 val
* var1
/* : nullable VirtualRuntimeFunction */;
664 val
* var_res
/* var res: nullable VirtualRuntimeFunction */;
665 val
* var2
/* : null */;
666 short int var3
/* : Bool */;
667 val
* var4
/* : VirtualRuntimeFunction */;
668 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function_cache
]))(self
) /* virtual_runtime_function_cache on <self:MMethodDef>*/;
671 if (var_res
== NULL
) {
672 var3
= 1; /* is null */
674 var3
= 0; /* arg is null but recv is not */
677 var4
= NEW_separate_compiler__VirtualRuntimeFunction(&type_separate_compiler__VirtualRuntimeFunction
);
678 ((void (*)(val
*, val
*))(var4
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__init
]))(var4
, self
) /* init on <var4:VirtualRuntimeFunction>*/;
680 ((void (*)(val
*, val
*))(self
->class->vft
[COLOR_separate_compiler__MMethodDef__virtual_runtime_function_cache_61d
]))(self
, var_res
) /* virtual_runtime_function_cache= on <self:MMethodDef>*/;
688 /* method separate_compiler#MMethodDef#virtual_runtime_function for (self: Object): AbstractRuntimeFunction */
689 val
* VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function(val
* self
) {
690 val
* var
/* : AbstractRuntimeFunction */;
691 val
* var1
/* : AbstractRuntimeFunction */;
692 var1
= separate_compiler__MMethodDef__virtual_runtime_function(self
);
697 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache for (self: MMethodDef): nullable VirtualRuntimeFunction */
698 val
* separate_compiler__MMethodDef__virtual_runtime_function_cache(val
* self
) {
699 val
* var
/* : nullable VirtualRuntimeFunction */;
700 val
* var1
/* : nullable VirtualRuntimeFunction */;
701 var1
= self
->attrs
[COLOR_separate_compiler__MMethodDef___64dvirtual_runtime_function_cache
].val
; /* @virtual_runtime_function_cache on <self:MMethodDef> */
706 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache for (self: Object): nullable VirtualRuntimeFunction */
707 val
* VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function_cache(val
* self
) {
708 val
* var
/* : nullable VirtualRuntimeFunction */;
709 val
* var1
/* : nullable VirtualRuntimeFunction */;
710 var1
= separate_compiler__MMethodDef__virtual_runtime_function_cache(self
);
715 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache= for (self: MMethodDef, nullable VirtualRuntimeFunction) */
716 void separate_compiler__MMethodDef__virtual_runtime_function_cache_61d(val
* self
, val
* p0
) {
717 self
->attrs
[COLOR_separate_compiler__MMethodDef___64dvirtual_runtime_function_cache
].val
= p0
; /* @virtual_runtime_function_cache on <self:MMethodDef> */
720 /* method separate_compiler#MMethodDef#virtual_runtime_function_cache= for (self: Object, nullable VirtualRuntimeFunction) */
721 void VIRTUAL_separate_compiler__MMethodDef__virtual_runtime_function_cache_61d(val
* self
, val
* p0
) {
722 separate_compiler__MMethodDef__virtual_runtime_function_cache_61d(self
, p0
);
725 /* method separate_compiler#SeparateRuntimeFunction#build_c_name for (self: SeparateRuntimeFunction): String */
726 val
* separate_compiler__SeparateRuntimeFunction__build_c_name(val
* self
) {
727 val
* var
/* : String */;
728 val
* var1
/* : Array[Object] */;
729 long var2
/* : Int */;
730 val
* var_
/* var : Array[Object] */;
732 val
* var3
/* : String */;
733 char* var4
/* : NativeString */;
734 long var5
/* : Int */;
735 val
* var6
/* : String */;
736 val
* var7
/* : MMethodDef */;
737 val
* var8
/* : String */;
738 static val
* varonce9
;
739 val
* var10
/* : String */;
740 char* var11
/* : NativeString */;
741 long var12
/* : Int */;
742 val
* var13
/* : String */;
743 val
* var14
/* : String */;
744 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
746 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
753 var6
= string__NativeString__to_s_with_length(var4
, var5
);
757 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
758 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:SeparateRuntimeFunction>*/;
759 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var7
) /* c_name on <var7:MMethodDef>*/;
760 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var8
) /* add on <var_:Array[Object]>*/;
766 var13
= string__NativeString__to_s_with_length(var11
, var12
);
770 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var10
) /* add on <var_:Array[Object]>*/;
771 var14
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
777 /* method separate_compiler#SeparateRuntimeFunction#build_c_name for (self: Object): String */
778 val
* VIRTUAL_separate_compiler__SeparateRuntimeFunction__build_c_name(val
* self
) {
779 val
* var
/* : String */;
780 val
* var1
/* : String */;
781 var1
= separate_compiler__SeparateRuntimeFunction__build_c_name(self
);
786 /* method separate_compiler#SeparateRuntimeFunction#to_s for (self: SeparateRuntimeFunction): String */
787 val
* separate_compiler__SeparateRuntimeFunction__to_s(val
* self
) {
788 val
* var
/* : String */;
789 val
* var1
/* : MMethodDef */;
790 val
* var2
/* : String */;
791 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:SeparateRuntimeFunction>*/;
792 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__Object__to_s
]))(var1
) /* to_s on <var1:MMethodDef>*/;
798 /* method separate_compiler#SeparateRuntimeFunction#to_s for (self: Object): String */
799 val
* VIRTUAL_separate_compiler__SeparateRuntimeFunction__to_s(val
* self
) {
800 val
* var
/* : String */;
801 val
* var1
/* : String */;
802 var1
= separate_compiler__SeparateRuntimeFunction__to_s(self
);
807 /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: SeparateRuntimeFunction, AbstractCompiler) */
808 void separate_compiler__SeparateRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
809 short int var
/* : Bool */;
812 const struct type
* type_struct
;
813 const char* var_class_name
;
814 val
* var_compiler
/* var compiler: AbstractCompiler */;
815 val
* var1
/* : MMethodDef */;
816 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
817 val
* var2
/* : MMethodDef */;
818 val
* var3
/* : MClassDef */;
819 val
* var4
/* : MClassType */;
820 val
* var_recv
/* var recv: MClassType */;
821 val
* var5
/* : AbstractCompilerVisitor */;
822 val
* var_v
/* var v: AbstractCompilerVisitor */;
823 val
* var6
/* : RuntimeVariable */;
825 val
* var7
/* : String */;
826 char* var8
/* : NativeString */;
827 long var9
/* : Int */;
828 val
* var10
/* : String */;
829 val
* var_selfvar
/* var selfvar: RuntimeVariable */;
830 val
* var11
/* : Array[RuntimeVariable] */;
831 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
832 val
* var12
/* : Frame */;
833 val
* var_frame
/* var frame: Frame */;
834 val
* var13
/* : nullable MSignature */;
835 val
* var14
/* : MClassDef */;
836 val
* var15
/* : MClassType */;
837 val
* var16
/* : MClassDef */;
838 val
* var17
/* : MClassType */;
839 val
* var18
/* : MClassDef */;
840 val
* var19
/* : MModule */;
841 short int var20
/* : Bool */;
842 val
* var21
/* : MType */;
843 val
* var_msignature
/* var msignature: MSignature */;
844 val
* var22
/* : Buffer */;
845 val
* var_sig
/* var sig: Buffer */;
846 val
* var23
/* : Buffer */;
847 val
* var_comment
/* var comment: Buffer */;
848 val
* var24
/* : nullable MType */;
849 val
* var_ret
/* var ret: nullable MType */;
850 val
* var25
/* : null */;
851 short int var26
/* : Bool */;
852 val
* var27
/* : String */;
853 static val
* varonce28
;
854 val
* var29
/* : String */;
855 char* var30
/* : NativeString */;
856 long var31
/* : Int */;
857 val
* var32
/* : String */;
858 val
* var33
/* : Array[Object] */;
859 long var34
/* : Int */;
860 val
* var35
/* : NativeArray[Object] */;
861 val
* var36
/* : String */;
862 val
* var37
/* : MProperty */;
863 short int var38
/* : Bool */;
864 val
* var39
/* : String */;
865 static val
* varonce40
;
866 val
* var41
/* : String */;
867 char* var42
/* : NativeString */;
868 long var43
/* : Int */;
869 val
* var44
/* : String */;
870 val
* var45
/* : Array[Object] */;
871 long var46
/* : Int */;
872 val
* var47
/* : NativeArray[Object] */;
873 val
* var48
/* : String */;
874 static val
* varonce49
;
875 val
* var50
/* : String */;
876 char* var51
/* : NativeString */;
877 long var52
/* : Int */;
878 val
* var53
/* : String */;
879 val
* var54
/* : String */;
880 static val
* varonce55
;
881 val
* var56
/* : String */;
882 char* var57
/* : NativeString */;
883 long var58
/* : Int */;
884 val
* var59
/* : String */;
885 val
* var60
/* : MType */;
886 val
* var61
/* : String */;
887 static val
* varonce62
;
888 val
* var63
/* : String */;
889 char* var64
/* : NativeString */;
890 long var65
/* : Int */;
891 val
* var66
/* : String */;
892 val
* var67
/* : Array[Object] */;
893 long var68
/* : Int */;
894 val
* var69
/* : NativeArray[Object] */;
895 val
* var70
/* : String */;
896 static val
* varonce71
;
897 val
* var72
/* : String */;
898 char* var73
/* : NativeString */;
899 long var74
/* : Int */;
900 val
* var75
/* : String */;
901 static val
* varonce76
;
902 val
* var77
/* : String */;
903 char* var78
/* : NativeString */;
904 long var79
/* : Int */;
905 val
* var80
/* : String */;
906 val
* var81
/* : MType */;
907 val
* var82
/* : Array[Object] */;
908 long var83
/* : Int */;
909 val
* var84
/* : NativeArray[Object] */;
910 val
* var85
/* : String */;
911 val
* var86
/* : Range[Int] */;
912 long var87
/* : Int */;
913 long var88
/* : Int */;
914 val
* var89
/* : Discrete */;
915 val
* var90
/* : Discrete */;
916 val
* var91
/* : Iterator[nullable Object] */;
917 short int var92
/* : Bool */;
918 val
* var93
/* : nullable Object */;
919 long var_i
/* var i: Int */;
920 long var94
/* : Int */;
921 val
* var95
/* : Array[MParameter] */;
922 val
* var96
/* : nullable Object */;
923 val
* var97
/* : MType */;
924 val
* var_mtype
/* var mtype: MType */;
925 long var98
/* : Int */;
926 short int var99
/* : Bool */;
927 short int var101
/* : Bool */;
928 static val
* varonce102
;
929 val
* var103
/* : String */;
930 char* var104
/* : NativeString */;
931 long var105
/* : Int */;
932 val
* var106
/* : String */;
933 val
* var107
/* : MClass */;
934 val
* var108
/* : Array[MType] */;
935 long var109
/* : Int */;
936 val
* var110
/* : NativeArray[MType] */;
937 val
* var111
/* : MClassType */;
938 static val
* varonce112
;
939 val
* var113
/* : String */;
940 char* var114
/* : NativeString */;
941 long var115
/* : Int */;
942 val
* var116
/* : String */;
943 val
* var117
/* : Array[Object] */;
944 long var118
/* : Int */;
945 val
* var119
/* : NativeArray[Object] */;
946 val
* var120
/* : String */;
947 static val
* varonce121
;
948 val
* var122
/* : String */;
949 char* var123
/* : NativeString */;
950 long var124
/* : Int */;
951 val
* var125
/* : String */;
952 val
* var126
/* : String */;
953 static val
* varonce127
;
954 val
* var128
/* : String */;
955 char* var129
/* : NativeString */;
956 long var130
/* : Int */;
957 val
* var131
/* : String */;
958 val
* var132
/* : Array[Object] */;
959 long var133
/* : Int */;
960 val
* var134
/* : NativeArray[Object] */;
961 val
* var135
/* : Object */;
962 val
* var136
/* : String */;
963 val
* var137
/* : RuntimeVariable */;
964 val
* var138
/* : Array[Object] */;
965 long var139
/* : Int */;
966 val
* var_
/* var : Array[Object] */;
967 static val
* varonce140
;
968 val
* var141
/* : String */;
969 char* var142
/* : NativeString */;
970 long var143
/* : Int */;
971 val
* var144
/* : String */;
972 val
* var145
/* : nullable Object */;
973 static val
* varonce146
;
974 val
* var147
/* : String */;
975 char* var148
/* : NativeString */;
976 long var149
/* : Int */;
977 val
* var150
/* : String */;
978 val
* var151
/* : String */;
979 val
* var_argvar
/* var argvar: RuntimeVariable */;
980 static val
* varonce152
;
981 val
* var153
/* : String */;
982 char* var154
/* : NativeString */;
983 long var155
/* : Int */;
984 val
* var156
/* : String */;
985 static val
* varonce157
;
986 val
* var158
/* : String */;
987 char* var159
/* : NativeString */;
988 long var160
/* : Int */;
989 val
* var161
/* : String */;
990 val
* var162
/* : null */;
991 short int var163
/* : Bool */;
992 static val
* varonce164
;
993 val
* var165
/* : String */;
994 char* var166
/* : NativeString */;
995 long var167
/* : Int */;
996 val
* var168
/* : String */;
997 val
* var169
/* : Array[Object] */;
998 long var170
/* : Int */;
999 val
* var171
/* : NativeArray[Object] */;
1000 val
* var172
/* : String */;
1001 val
* var173
/* : String */;
1002 static val
* varonce174
;
1003 val
* var175
/* : String */;
1004 char* var176
/* : NativeString */;
1005 long var177
/* : Int */;
1006 val
* var178
/* : String */;
1007 val
* var179
/* : Array[Object] */;
1008 long var180
/* : Int */;
1009 val
* var181
/* : NativeArray[Object] */;
1010 val
* var182
/* : String */;
1011 static val
* varonce183
;
1012 val
* var184
/* : String */;
1013 char* var185
/* : NativeString */;
1014 long var186
/* : Int */;
1015 val
* var187
/* : String */;
1016 static val
* varonce188
;
1017 val
* var189
/* : String */;
1018 char* var190
/* : NativeString */;
1019 long var191
/* : Int */;
1020 val
* var192
/* : String */;
1021 static val
* varonce193
;
1022 val
* var194
/* : String */;
1023 char* var195
/* : NativeString */;
1024 long var196
/* : Int */;
1025 val
* var197
/* : String */;
1026 val
* var198
/* : Array[Object] */;
1027 long var199
/* : Int */;
1028 val
* var200
/* : NativeArray[Object] */;
1029 val
* var201
/* : String */;
1030 static val
* varonce202
;
1031 val
* var203
/* : String */;
1032 char* var204
/* : NativeString */;
1033 long var205
/* : Int */;
1034 val
* var206
/* : String */;
1035 val
* var207
/* : Array[Object] */;
1036 long var208
/* : Int */;
1037 val
* var209
/* : NativeArray[Object] */;
1038 val
* var210
/* : String */;
1039 val
* var211
/* : null */;
1040 short int var212
/* : Bool */;
1041 val
* var213
/* : RuntimeVariable */;
1042 static val
* varonce214
;
1043 val
* var215
/* : String */;
1044 char* var216
/* : NativeString */;
1045 long var217
/* : Int */;
1046 val
* var218
/* : String */;
1047 val
* var219
/* : String */;
1048 val
* var220
/* : nullable Object */;
1049 val
* var221
/* : MType */;
1050 short int var222
/* : Bool */;
1051 val
* var223
/* : nullable RuntimeVariable */;
1052 val
* var224
/* : nullable String */;
1053 static val
* varonce225
;
1054 val
* var226
/* : String */;
1055 char* var227
/* : NativeString */;
1056 long var228
/* : Int */;
1057 val
* var229
/* : String */;
1058 val
* var230
/* : Array[Object] */;
1059 long var231
/* : Int */;
1060 val
* var232
/* : NativeArray[Object] */;
1061 val
* var233
/* : String */;
1062 val
* var234
/* : null */;
1063 short int var235
/* : Bool */;
1064 static val
* varonce236
;
1065 val
* var237
/* : String */;
1066 char* var238
/* : NativeString */;
1067 long var239
/* : Int */;
1068 val
* var240
/* : String */;
1069 val
* var241
/* : nullable RuntimeVariable */;
1070 static val
* varonce242
;
1071 val
* var243
/* : String */;
1072 char* var244
/* : NativeString */;
1073 long var245
/* : Int */;
1074 val
* var246
/* : String */;
1075 val
* var247
/* : Array[Object] */;
1076 long var248
/* : Int */;
1077 val
* var249
/* : NativeArray[Object] */;
1078 val
* var250
/* : String */;
1079 static val
* varonce251
;
1080 val
* var252
/* : String */;
1081 char* var253
/* : NativeString */;
1082 long var254
/* : Int */;
1083 val
* var255
/* : String */;
1084 val
* var256
/* : String */;
1085 static val
* varonce257
;
1086 val
* var258
/* : String */;
1087 char* var259
/* : NativeString */;
1088 long var260
/* : Int */;
1089 val
* var261
/* : String */;
1090 long var262
/* : Int */;
1091 short int var263
/* : Bool */;
1092 short int var264
/* : Bool */;
1093 val
* var265
/* : HashMap[String, String] */;
1094 val
* var266
/* : String */;
1095 val
* var267
/* : MClassDef */;
1096 val
* var268
/* : MModule */;
1097 val
* var269
/* : String */;
1098 static val
* varonce270
;
1099 val
* var271
/* : String */;
1100 char* var272
/* : NativeString */;
1101 long var273
/* : Int */;
1102 val
* var274
/* : String */;
1103 val
* var275
/* : MClassDef */;
1104 val
* var276
/* : MClass */;
1105 val
* var277
/* : String */;
1106 static val
* varonce278
;
1107 val
* var279
/* : String */;
1108 char* var280
/* : NativeString */;
1109 long var281
/* : Int */;
1110 val
* var282
/* : String */;
1111 val
* var283
/* : MProperty */;
1112 val
* var284
/* : String */;
1113 static val
* varonce285
;
1114 val
* var286
/* : String */;
1115 char* var287
/* : NativeString */;
1116 long var288
/* : Int */;
1117 val
* var289
/* : String */;
1118 val
* var290
/* : Location */;
1119 val
* var291
/* : nullable SourceFile */;
1120 val
* var292
/* : String */;
1121 static val
* varonce293
;
1122 val
* var294
/* : String */;
1123 char* var295
/* : NativeString */;
1124 long var296
/* : Int */;
1125 val
* var297
/* : String */;
1126 val
* var298
/* : Location */;
1127 long var299
/* : Int */;
1128 static val
* varonce300
;
1129 val
* var301
/* : String */;
1130 char* var302
/* : NativeString */;
1131 long var303
/* : Int */;
1132 val
* var304
/* : String */;
1133 val
* var305
/* : Array[Object] */;
1134 long var306
/* : Int */;
1135 val
* var307
/* : NativeArray[Object] */;
1136 val
* var308
/* : Object */;
1137 val
* var309
/* : String */;
1138 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
1139 /* <p0:AbstractCompiler> isa COMPILER */
1140 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER
];
1141 cltype
= type_struct
->color
;
1142 idtype
= type_struct
->id
;
1143 if(cltype
>= p0
->type
->table_size
) {
1146 var
= p0
->type
->type_table
[cltype
] == idtype
;
1149 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
1150 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name
);
1151 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1685);
1155 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:SeparateRuntimeFunction>*/;
1156 var_mmethoddef
= var1
;
1157 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:SeparateRuntimeFunction>*/;
1158 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var2
) /* mclassdef on <var2:MMethodDef>*/;
1159 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var3
) /* bound_mtype on <var3:MClassDef>*/;
1161 var5
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var_compiler
) /* new_visitor on <var_compiler:AbstractCompiler>*/;
1163 var6
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
1169 var10
= string__NativeString__to_s_with_length(var8
, var9
);
1173 ((void (*)(val
*, val
*, val
*, val
*))(var6
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var6
, var7
, var_recv
, var_recv
) /* init on <var6:RuntimeVariable>*/;
1175 var11
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
1176 ((void (*)(val
*))(var11
->class->vft
[COLOR_array__Array__init
]))(var11
) /* init on <var11:Array[RuntimeVariable]>*/;
1177 var_arguments
= var11
;
1178 var12
= NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame
);
1179 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var12
->class->vft
[COLOR_abstract_compiler__Frame__init
]))(var12
, var_v
, var_mmethoddef
, var_recv
, var_arguments
) /* init on <var12:Frame>*/;
1181 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d
]))(var_v
, var_frame
) /* frame= on <var_v:AbstractCompilerVisitor>*/;
1182 var13
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var_mmethoddef
) /* msignature on <var_mmethoddef:MMethodDef>*/;
1183 var14
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
1184 var15
= ((val
* (*)(val
*))(var14
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var14
) /* bound_mtype on <var14:MClassDef>*/;
1185 var16
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
1186 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var16
) /* bound_mtype on <var16:MClassDef>*/;
1187 var18
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
1188 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var18
) /* mmodule on <var18:MClassDef>*/;
1190 if (var13
== NULL
) {
1191 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1192 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1696);
1195 var21
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var13
->class->vft
[COLOR_model__MType__resolve_for
]))(var13
, var15
, var17
, var19
, var20
) /* resolve_for on <var13:nullable MSignature>*/;
1197 var_msignature
= var21
;
1198 var22
= NEW_string__Buffer(&type_string__Buffer
);
1199 ((void (*)(val
*))(var22
->class->vft
[COLOR_string__Buffer__init
]))(var22
) /* init on <var22:Buffer>*/;
1201 var23
= NEW_string__Buffer(&type_string__Buffer
);
1202 ((void (*)(val
*))(var23
->class->vft
[COLOR_string__Buffer__init
]))(var23
) /* init on <var23:Buffer>*/;
1203 var_comment
= var23
;
1204 var24
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
1207 if (var_ret
== NULL
) {
1208 var26
= 0; /* is null */
1210 var26
= 1; /* arg is null and recv is not */
1213 var27
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ret
) /* ctype on <var_ret:nullable MType(MType)>*/;
1219 var32
= string__NativeString__to_s_with_length(var30
, var31
);
1223 var33
= NEW_array__Array(&type_array__Arraykernel__Object
);
1224 { /* var33 = array_instance Array[Object] */
1226 var35
= NEW_array__NativeArray(var34
, &type_array__NativeArraykernel__Object
);
1227 ((struct instance_array__NativeArray
*)var35
)->values
[0] = (val
*) var27
;
1228 ((struct instance_array__NativeArray
*)var35
)->values
[1] = (val
*) var29
;
1229 ((void (*)(val
*, val
*, long))(var33
->class->vft
[COLOR_array__Array__with_native
]))(var33
, var35
, var34
) /* with_native on <var33:Array[Object]>*/;
1231 var36
= ((val
* (*)(val
*))(var33
->class->vft
[COLOR_string__Object__to_s
]))(var33
) /* to_s on <var33:Array[Object]>*/;
1232 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var36
) /* append on <var_sig:Buffer>*/;
1234 var37
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mmethoddef
) /* mproperty on <var_mmethoddef:MMethodDef>*/;
1235 var38
= ((short int (*)(val
*))(var37
->class->vft
[COLOR_model__MMethod__is_new
]))(var37
) /* is_new on <var37:MProperty(MMethod)>*/;
1238 var39
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ret
) /* ctype on <var_ret:nullable MType(MClassType)>*/;
1244 var44
= string__NativeString__to_s_with_length(var42
, var43
);
1248 var45
= NEW_array__Array(&type_array__Arraykernel__Object
);
1249 { /* var45 = array_instance Array[Object] */
1251 var47
= NEW_array__NativeArray(var46
, &type_array__NativeArraykernel__Object
);
1252 ((struct instance_array__NativeArray
*)var47
)->values
[0] = (val
*) var39
;
1253 ((struct instance_array__NativeArray
*)var47
)->values
[1] = (val
*) var41
;
1254 ((void (*)(val
*, val
*, long))(var45
->class->vft
[COLOR_array__Array__with_native
]))(var45
, var47
, var46
) /* with_native on <var45:Array[Object]>*/;
1256 var48
= ((val
* (*)(val
*))(var45
->class->vft
[COLOR_string__Object__to_s
]))(var45
) /* to_s on <var45:Array[Object]>*/;
1257 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var48
) /* append on <var_sig:Buffer>*/;
1264 var53
= string__NativeString__to_s_with_length(var51
, var52
);
1268 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var50
) /* append on <var_sig:Buffer>*/;
1271 var54
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:SeparateRuntimeFunction>*/;
1272 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var54
) /* append on <var_sig:Buffer>*/;
1278 var59
= string__NativeString__to_s_with_length(var57
, var58
);
1282 var60
= ((val
* (*)(val
*))(var_selfvar
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_selfvar
) /* mtype on <var_selfvar:RuntimeVariable>*/;
1283 var61
= ((val
* (*)(val
*))(var60
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var60
) /* ctype on <var60:MType>*/;
1289 var66
= string__NativeString__to_s_with_length(var64
, var65
);
1293 var67
= NEW_array__Array(&type_array__Arraykernel__Object
);
1294 { /* var67 = array_instance Array[Object] */
1296 var69
= NEW_array__NativeArray(var68
, &type_array__NativeArraykernel__Object
);
1297 ((struct instance_array__NativeArray
*)var69
)->values
[0] = (val
*) var56
;
1298 ((struct instance_array__NativeArray
*)var69
)->values
[1] = (val
*) var61
;
1299 ((struct instance_array__NativeArray
*)var69
)->values
[2] = (val
*) var63
;
1300 ((struct instance_array__NativeArray
*)var69
)->values
[3] = (val
*) var_selfvar
;
1301 ((void (*)(val
*, val
*, long))(var67
->class->vft
[COLOR_array__Array__with_native
]))(var67
, var69
, var68
) /* with_native on <var67:Array[Object]>*/;
1303 var70
= ((val
* (*)(val
*))(var67
->class->vft
[COLOR_string__Object__to_s
]))(var67
) /* to_s on <var67:Array[Object]>*/;
1304 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var70
) /* append on <var_sig:Buffer>*/;
1310 var75
= string__NativeString__to_s_with_length(var73
, var74
);
1319 var80
= string__NativeString__to_s_with_length(var78
, var79
);
1323 var81
= ((val
* (*)(val
*))(var_selfvar
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_selfvar
) /* mtype on <var_selfvar:RuntimeVariable>*/;
1324 var82
= NEW_array__Array(&type_array__Arraykernel__Object
);
1325 { /* var82 = array_instance Array[Object] */
1327 var84
= NEW_array__NativeArray(var83
, &type_array__NativeArraykernel__Object
);
1328 ((struct instance_array__NativeArray
*)var84
)->values
[0] = (val
*) var72
;
1329 ((struct instance_array__NativeArray
*)var84
)->values
[1] = (val
*) var_selfvar
;
1330 ((struct instance_array__NativeArray
*)var84
)->values
[2] = (val
*) var77
;
1331 ((struct instance_array__NativeArray
*)var84
)->values
[3] = (val
*) var81
;
1332 ((void (*)(val
*, val
*, long))(var82
->class->vft
[COLOR_array__Array__with_native
]))(var82
, var84
, var83
) /* with_native on <var82:Array[Object]>*/;
1334 var85
= ((val
* (*)(val
*))(var82
->class->vft
[COLOR_string__Object__to_s
]))(var82
) /* to_s on <var82:Array[Object]>*/;
1335 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var85
) /* append on <var_comment:Buffer>*/;
1336 ((void (*)(val
*, val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments
, var_selfvar
) /* add on <var_arguments:Array[RuntimeVariable]>*/;
1337 var86
= NEW_range__Range(&type_range__Rangekernel__Int
);
1339 var88
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
1340 var89
= BOX_kernel__Int(var87
); /* autobox from Int to Discrete */
1341 var90
= BOX_kernel__Int(var88
); /* autobox from Int to Discrete */
1342 ((void (*)(val
*, val
*, val
*))(var86
->class->vft
[COLOR_range__Range__without_last
]))(var86
, var89
, var90
) /* without_last on <var86:Range[Int]>*/;
1343 var91
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var86
) /* iterator on <var86:Range[Int]>*/;
1345 var92
= ((short int (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var91
) /* is_ok on <var91:Iterator[nullable Object]>*/;
1347 var93
= ((val
* (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var91
) /* item on <var91:Iterator[nullable Object]>*/;
1348 var94
= ((struct instance_kernel__Int
*)var93
)->value
; /* autounbox from nullable Object to Int */;
1350 var95
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
1351 var96
= ((val
* (*)(val
*, long))(var95
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var95
, var_i
) /* [] on <var95:Array[MParameter]>*/;
1352 var97
= ((val
* (*)(val
*))(var96
->class->vft
[COLOR_model__MParameter__mtype
]))(var96
) /* mtype on <var96:nullable Object(MParameter)>*/;
1354 var98
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
1355 { /* Inline kernel#Int#== (var_i,var98) */
1356 var101
= var_i
== var98
;
1359 RET_LABEL100
:(void)0;
1363 var103
= varonce102
;
1367 var106
= string__NativeString__to_s_with_length(var104
, var105
);
1369 varonce102
= var103
;
1371 var107
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(var_v
, var103
) /* get_class on <var_v:AbstractCompilerVisitor>*/;
1372 var108
= NEW_array__Array(&type_array__Arraymodel__MType
);
1373 { /* var108 = array_instance Array[MType] */
1375 var110
= NEW_array__NativeArray(var109
, &type_array__NativeArraymodel__MType
);
1376 ((struct instance_array__NativeArray
*)var110
)->values
[0] = (val
*) var_mtype
;
1377 ((void (*)(val
*, val
*, long))(var108
->class->vft
[COLOR_array__Array__with_native
]))(var108
, var110
, var109
) /* with_native on <var108:Array[MType]>*/;
1379 var111
= ((val
* (*)(val
*, val
*))(var107
->class->vft
[COLOR_model__MClass__get_mtype
]))(var107
, var108
) /* get_mtype on <var107:MClass>*/;
1384 var113
= varonce112
;
1388 var116
= string__NativeString__to_s_with_length(var114
, var115
);
1390 varonce112
= var113
;
1392 var117
= NEW_array__Array(&type_array__Arraykernel__Object
);
1393 { /* var117 = array_instance Array[Object] */
1395 var119
= NEW_array__NativeArray(var118
, &type_array__NativeArraykernel__Object
);
1396 ((struct instance_array__NativeArray
*)var119
)->values
[0] = (val
*) var113
;
1397 ((struct instance_array__NativeArray
*)var119
)->values
[1] = (val
*) var_mtype
;
1398 ((void (*)(val
*, val
*, long))(var117
->class->vft
[COLOR_array__Array__with_native
]))(var117
, var119
, var118
) /* with_native on <var117:Array[Object]>*/;
1400 var120
= ((val
* (*)(val
*))(var117
->class->vft
[COLOR_string__Object__to_s
]))(var117
) /* to_s on <var117:Array[Object]>*/;
1401 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var120
) /* append on <var_comment:Buffer>*/;
1403 var122
= varonce121
;
1407 var125
= string__NativeString__to_s_with_length(var123
, var124
);
1409 varonce121
= var122
;
1411 var126
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
1413 var128
= varonce127
;
1417 var131
= string__NativeString__to_s_with_length(var129
, var130
);
1419 varonce127
= var128
;
1421 var132
= NEW_array__Array(&type_array__Arraykernel__Object
);
1422 { /* var132 = array_instance Array[Object] */
1424 var134
= NEW_array__NativeArray(var133
, &type_array__NativeArraykernel__Object
);
1425 ((struct instance_array__NativeArray
*)var134
)->values
[0] = (val
*) var122
;
1426 ((struct instance_array__NativeArray
*)var134
)->values
[1] = (val
*) var126
;
1427 ((struct instance_array__NativeArray
*)var134
)->values
[2] = (val
*) var128
;
1428 var135
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
1429 ((struct instance_array__NativeArray
*)var134
)->values
[3] = (val
*) var135
;
1430 ((void (*)(val
*, val
*, long))(var132
->class->vft
[COLOR_array__Array__with_native
]))(var132
, var134
, var133
) /* with_native on <var132:Array[Object]>*/;
1432 var136
= ((val
* (*)(val
*))(var132
->class->vft
[COLOR_string__Object__to_s
]))(var132
) /* to_s on <var132:Array[Object]>*/;
1433 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var136
) /* append on <var_sig:Buffer>*/;
1434 var137
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
1435 var138
= NEW_array__Array(&type_array__Arraykernel__Object
);
1437 ((void (*)(val
*, long))(var138
->class->vft
[COLOR_array__Array__with_capacity
]))(var138
, var139
) /* with_capacity on <var138:Array[Object]>*/;
1440 var141
= varonce140
;
1444 var144
= string__NativeString__to_s_with_length(var142
, var143
);
1446 varonce140
= var141
;
1448 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var141
) /* add on <var_:Array[Object]>*/;
1449 var145
= BOX_kernel__Int(var_i
); /* autobox from Int to nullable Object */
1450 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var145
) /* add on <var_:Array[Object]>*/;
1452 var147
= varonce146
;
1456 var150
= string__NativeString__to_s_with_length(var148
, var149
);
1458 varonce146
= var147
;
1460 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var147
) /* add on <var_:Array[Object]>*/;
1461 var151
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
1462 ((void (*)(val
*, val
*, val
*, val
*))(var137
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var137
, var151
, var_mtype
, var_mtype
) /* init on <var137:RuntimeVariable>*/;
1463 var_argvar
= var137
;
1464 ((void (*)(val
*, val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments
, var_argvar
) /* add on <var_arguments:Array[RuntimeVariable]>*/;
1465 CONTINUE_label
: (void)0;
1466 ((void (*)(val
*))(var91
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var91
) /* next on <var91:Iterator[nullable Object]>*/;
1468 BREAK_label
: (void)0;
1470 var153
= varonce152
;
1474 var156
= string__NativeString__to_s_with_length(var154
, var155
);
1476 varonce152
= var153
;
1478 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var153
) /* append on <var_sig:Buffer>*/;
1480 var158
= varonce157
;
1484 var161
= string__NativeString__to_s_with_length(var159
, var160
);
1486 varonce157
= var158
;
1488 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var158
) /* append on <var_comment:Buffer>*/;
1490 if (var_ret
== NULL
) {
1491 var163
= 0; /* is null */
1493 var163
= 1; /* arg is null and recv is not */
1497 var165
= varonce164
;
1501 var168
= string__NativeString__to_s_with_length(var166
, var167
);
1503 varonce164
= var165
;
1505 var169
= NEW_array__Array(&type_array__Arraykernel__Object
);
1506 { /* var169 = array_instance Array[Object] */
1508 var171
= NEW_array__NativeArray(var170
, &type_array__NativeArraykernel__Object
);
1509 ((struct instance_array__NativeArray
*)var171
)->values
[0] = (val
*) var165
;
1510 ((struct instance_array__NativeArray
*)var171
)->values
[1] = (val
*) var_ret
;
1511 ((void (*)(val
*, val
*, long))(var169
->class->vft
[COLOR_array__Array__with_native
]))(var169
, var171
, var170
) /* with_native on <var169:Array[Object]>*/;
1513 var172
= ((val
* (*)(val
*))(var169
->class->vft
[COLOR_string__Object__to_s
]))(var169
) /* to_s on <var169:Array[Object]>*/;
1514 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var172
) /* append on <var_comment:Buffer>*/;
1517 var173
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:SeparateRuntimeFunction>*/;
1519 var175
= varonce174
;
1523 var178
= string__NativeString__to_s_with_length(var176
, var177
);
1525 varonce174
= var175
;
1527 var179
= NEW_array__Array(&type_array__Arraykernel__Object
);
1528 { /* var179 = array_instance Array[Object] */
1530 var181
= NEW_array__NativeArray(var180
, &type_array__NativeArraykernel__Object
);
1531 ((struct instance_array__NativeArray
*)var181
)->values
[0] = (val
*) var_sig
;
1532 ((struct instance_array__NativeArray
*)var181
)->values
[1] = (val
*) var175
;
1533 ((void (*)(val
*, val
*, long))(var179
->class->vft
[COLOR_array__Array__with_native
]))(var179
, var181
, var180
) /* with_native on <var179:Array[Object]>*/;
1535 var182
= ((val
* (*)(val
*))(var179
->class->vft
[COLOR_string__Object__to_s
]))(var179
) /* to_s on <var179:Array[Object]>*/;
1536 ((void (*)(val
*, val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(var_compiler
, var173
, var182
) /* provide_declaration on <var_compiler:AbstractCompiler>*/;
1538 var184
= varonce183
;
1540 var185
= "/* method ";
1542 var187
= string__NativeString__to_s_with_length(var185
, var186
);
1544 varonce183
= var184
;
1547 var189
= varonce188
;
1551 var192
= string__NativeString__to_s_with_length(var190
, var191
);
1553 varonce188
= var189
;
1556 var194
= varonce193
;
1560 var197
= string__NativeString__to_s_with_length(var195
, var196
);
1562 varonce193
= var194
;
1564 var198
= NEW_array__Array(&type_array__Arraykernel__Object
);
1565 { /* var198 = array_instance Array[Object] */
1567 var200
= NEW_array__NativeArray(var199
, &type_array__NativeArraykernel__Object
);
1568 ((struct instance_array__NativeArray
*)var200
)->values
[0] = (val
*) var184
;
1569 ((struct instance_array__NativeArray
*)var200
)->values
[1] = (val
*) self
;
1570 ((struct instance_array__NativeArray
*)var200
)->values
[2] = (val
*) var189
;
1571 ((struct instance_array__NativeArray
*)var200
)->values
[3] = (val
*) var_comment
;
1572 ((struct instance_array__NativeArray
*)var200
)->values
[4] = (val
*) var194
;
1573 ((void (*)(val
*, val
*, long))(var198
->class->vft
[COLOR_array__Array__with_native
]))(var198
, var200
, var199
) /* with_native on <var198:Array[Object]>*/;
1575 var201
= ((val
* (*)(val
*))(var198
->class->vft
[COLOR_string__Object__to_s
]))(var198
) /* to_s on <var198:Array[Object]>*/;
1576 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var201
) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
1578 var203
= varonce202
;
1582 var206
= string__NativeString__to_s_with_length(var204
, var205
);
1584 varonce202
= var203
;
1586 var207
= NEW_array__Array(&type_array__Arraykernel__Object
);
1587 { /* var207 = array_instance Array[Object] */
1589 var209
= NEW_array__NativeArray(var208
, &type_array__NativeArraykernel__Object
);
1590 ((struct instance_array__NativeArray
*)var209
)->values
[0] = (val
*) var_sig
;
1591 ((struct instance_array__NativeArray
*)var209
)->values
[1] = (val
*) var203
;
1592 ((void (*)(val
*, val
*, long))(var207
->class->vft
[COLOR_array__Array__with_native
]))(var207
, var209
, var208
) /* with_native on <var207:Array[Object]>*/;
1594 var210
= ((val
* (*)(val
*))(var207
->class->vft
[COLOR_string__Object__to_s
]))(var207
) /* to_s on <var207:Array[Object]>*/;
1595 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var210
) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
1597 if (var_ret
== NULL
) {
1598 var212
= 0; /* is null */
1600 var212
= 1; /* arg is null and recv is not */
1603 var213
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_ret
) /* new_var on <var_v:AbstractCompilerVisitor>*/;
1604 ((void (*)(val
*, val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnvar_61d
]))(var_frame
, var213
) /* returnvar= on <var_frame:Frame>*/;
1608 var215
= varonce214
;
1610 var216
= "RET_LABEL";
1612 var218
= string__NativeString__to_s_with_length(var216
, var217
);
1614 varonce214
= var215
;
1616 var219
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(var_v
, var215
) /* get_name on <var_v:AbstractCompilerVisitor>*/;
1617 ((void (*)(val
*, val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnlabel_61d
]))(var_frame
, var219
) /* returnlabel= on <var_frame:Frame>*/;
1618 var220
= ((val
* (*)(val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__Collection__first
]))(var_arguments
) /* first on <var_arguments:Array[RuntimeVariable]>*/;
1619 var221
= ((val
* (*)(val
*))(var220
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var220
) /* mtype on <var220:nullable Object(RuntimeVariable)>*/;
1620 var222
= ((short int (*)(val
*, val
*))(var_recv
->class->vft
[COLOR_kernel__Object___33d_61d
]))(var_recv
, var221
) /* != on <var_recv:MClassType>*/;
1624 var223
= ((val
* (*)(val
*, val
*, val
*))(var_mmethoddef
->class->vft
[COLOR_abstract_compiler__MMethodDef__compile_inside_to_c
]))(var_mmethoddef
, var_v
, var_arguments
) /* compile_inside_to_c on <var_mmethoddef:MMethodDef>*/;
1626 var224
= ((val
* (*)(val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnlabel
]))(var_frame
) /* returnlabel on <var_frame:Frame>*/;
1627 if (var224
== NULL
) {
1628 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1629 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1742);
1633 var226
= varonce225
;
1637 var229
= string__NativeString__to_s_with_length(var227
, var228
);
1639 varonce225
= var226
;
1641 var230
= NEW_array__Array(&type_array__Arraykernel__Object
);
1642 { /* var230 = array_instance Array[Object] */
1644 var232
= NEW_array__NativeArray(var231
, &type_array__NativeArraykernel__Object
);
1645 ((struct instance_array__NativeArray
*)var232
)->values
[0] = (val
*) var224
;
1646 ((struct instance_array__NativeArray
*)var232
)->values
[1] = (val
*) var226
;
1647 ((void (*)(val
*, val
*, long))(var230
->class->vft
[COLOR_array__Array__with_native
]))(var230
, var232
, var231
) /* with_native on <var230:Array[Object]>*/;
1649 var233
= ((val
* (*)(val
*))(var230
->class->vft
[COLOR_string__Object__to_s
]))(var230
) /* to_s on <var230:Array[Object]>*/;
1650 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var233
) /* add on <var_v:AbstractCompilerVisitor>*/;
1652 if (var_ret
== NULL
) {
1653 var235
= 0; /* is null */
1655 var235
= 1; /* arg is null and recv is not */
1659 var237
= varonce236
;
1663 var240
= string__NativeString__to_s_with_length(var238
, var239
);
1665 varonce236
= var237
;
1667 var241
= ((val
* (*)(val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnvar
]))(var_frame
) /* returnvar on <var_frame:Frame>*/;
1668 if (var241
== NULL
) {
1669 fprintf(stderr
, "Runtime error: %s", "Cast failed");
1670 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1744);
1674 var243
= varonce242
;
1678 var246
= string__NativeString__to_s_with_length(var244
, var245
);
1680 varonce242
= var243
;
1682 var247
= NEW_array__Array(&type_array__Arraykernel__Object
);
1683 { /* var247 = array_instance Array[Object] */
1685 var249
= NEW_array__NativeArray(var248
, &type_array__NativeArraykernel__Object
);
1686 ((struct instance_array__NativeArray
*)var249
)->values
[0] = (val
*) var237
;
1687 ((struct instance_array__NativeArray
*)var249
)->values
[1] = (val
*) var241
;
1688 ((struct instance_array__NativeArray
*)var249
)->values
[2] = (val
*) var243
;
1689 ((void (*)(val
*, val
*, long))(var247
->class->vft
[COLOR_array__Array__with_native
]))(var247
, var249
, var248
) /* with_native on <var247:Array[Object]>*/;
1691 var250
= ((val
* (*)(val
*))(var247
->class->vft
[COLOR_string__Object__to_s
]))(var247
) /* to_s on <var247:Array[Object]>*/;
1692 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var250
) /* add on <var_v:AbstractCompilerVisitor>*/;
1696 var252
= varonce251
;
1700 var255
= string__NativeString__to_s_with_length(var253
, var254
);
1702 varonce251
= var252
;
1704 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var252
) /* add on <var_v:AbstractCompilerVisitor>*/;
1705 var256
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:SeparateRuntimeFunction>*/;
1707 var258
= varonce257
;
1711 var261
= string__NativeString__to_s_with_length(var259
, var260
);
1713 varonce257
= var258
;
1716 var263
= ((short int (*)(val
*, val
*, long))(var256
->class->vft
[COLOR_string__AbstractString__has_substring
]))(var256
, var258
, var262
) /* has_substring on <var256:String>*/;
1719 var265
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__names
]))(var_compiler
) /* names on <var_compiler:AbstractCompiler>*/;
1720 var266
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:SeparateRuntimeFunction>*/;
1721 var267
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
1722 var268
= ((val
* (*)(val
*))(var267
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var267
) /* mmodule on <var267:MClassDef>*/;
1723 var269
= ((val
* (*)(val
*))(var268
->class->vft
[COLOR_mmodule__MModule__name
]))(var268
) /* name on <var268:MModule>*/;
1725 var271
= varonce270
;
1729 var274
= string__NativeString__to_s_with_length(var272
, var273
);
1731 varonce270
= var271
;
1733 var275
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
1734 var276
= ((val
* (*)(val
*))(var275
->class->vft
[COLOR_model__MClassDef__mclass
]))(var275
) /* mclass on <var275:MClassDef>*/;
1735 var277
= ((val
* (*)(val
*))(var276
->class->vft
[COLOR_model__MClass__name
]))(var276
) /* name on <var276:MClass>*/;
1737 var279
= varonce278
;
1741 var282
= string__NativeString__to_s_with_length(var280
, var281
);
1743 varonce278
= var279
;
1745 var283
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mmethoddef
) /* mproperty on <var_mmethoddef:MMethodDef>*/;
1746 var284
= ((val
* (*)(val
*))(var283
->class->vft
[COLOR_model__MProperty__name
]))(var283
) /* name on <var283:MProperty(MMethod)>*/;
1748 var286
= varonce285
;
1752 var289
= string__NativeString__to_s_with_length(var287
, var288
);
1754 varonce285
= var286
;
1756 var290
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__location
]))(var_mmethoddef
) /* location on <var_mmethoddef:MMethodDef>*/;
1757 var291
= ((val
* (*)(val
*))(var290
->class->vft
[COLOR_location__Location__file
]))(var290
) /* file on <var290:Location>*/;
1758 if (var291
== NULL
) {
1759 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
1760 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1747);
1763 var292
= ((val
* (*)(val
*))(var291
->class->vft
[COLOR_location__SourceFile__filename
]))(var291
) /* filename on <var291:nullable SourceFile>*/;
1766 var294
= varonce293
;
1770 var297
= string__NativeString__to_s_with_length(var295
, var296
);
1772 varonce293
= var294
;
1774 var298
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__location
]))(var_mmethoddef
) /* location on <var_mmethoddef:MMethodDef>*/;
1775 var299
= ((long (*)(val
*))(var298
->class->vft
[COLOR_location__Location__line_start
]))(var298
) /* line_start on <var298:Location>*/;
1777 var301
= varonce300
;
1781 var304
= string__NativeString__to_s_with_length(var302
, var303
);
1783 varonce300
= var301
;
1785 var305
= NEW_array__Array(&type_array__Arraykernel__Object
);
1786 { /* var305 = array_instance Array[Object] */
1788 var307
= NEW_array__NativeArray(var306
, &type_array__NativeArraykernel__Object
);
1789 ((struct instance_array__NativeArray
*)var307
)->values
[0] = (val
*) var269
;
1790 ((struct instance_array__NativeArray
*)var307
)->values
[1] = (val
*) var271
;
1791 ((struct instance_array__NativeArray
*)var307
)->values
[2] = (val
*) var277
;
1792 ((struct instance_array__NativeArray
*)var307
)->values
[3] = (val
*) var279
;
1793 ((struct instance_array__NativeArray
*)var307
)->values
[4] = (val
*) var284
;
1794 ((struct instance_array__NativeArray
*)var307
)->values
[5] = (val
*) var286
;
1795 ((struct instance_array__NativeArray
*)var307
)->values
[6] = (val
*) var292
;
1796 ((struct instance_array__NativeArray
*)var307
)->values
[7] = (val
*) var294
;
1797 var308
= BOX_kernel__Int(var299
); /* autobox from Int to Object */
1798 ((struct instance_array__NativeArray
*)var307
)->values
[8] = (val
*) var308
;
1799 ((struct instance_array__NativeArray
*)var307
)->values
[9] = (val
*) var301
;
1800 ((void (*)(val
*, val
*, long))(var305
->class->vft
[COLOR_array__Array__with_native
]))(var305
, var307
, var306
) /* with_native on <var305:Array[Object]>*/;
1802 var309
= ((val
* (*)(val
*))(var305
->class->vft
[COLOR_string__Object__to_s
]))(var305
) /* to_s on <var305:Array[Object]>*/;
1803 ((void (*)(val
*, val
*, val
*))(var265
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var265
, var266
, var309
) /* []= on <var265:HashMap[String, String]>*/;
1808 /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */
1809 void VIRTUAL_separate_compiler__SeparateRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
1810 separate_compiler__SeparateRuntimeFunction__compile_to_c(self
, p0
);
1813 /* method separate_compiler#VirtualRuntimeFunction#build_c_name for (self: VirtualRuntimeFunction): String */
1814 val
* separate_compiler__VirtualRuntimeFunction__build_c_name(val
* self
) {
1815 val
* var
/* : String */;
1816 val
* var1
/* : Array[Object] */;
1817 long var2
/* : Int */;
1818 val
* var_
/* var : Array[Object] */;
1819 static val
* varonce
;
1820 val
* var3
/* : String */;
1821 char* var4
/* : NativeString */;
1822 long var5
/* : Int */;
1823 val
* var6
/* : String */;
1824 val
* var7
/* : MMethodDef */;
1825 val
* var8
/* : String */;
1826 static val
* varonce9
;
1827 val
* var10
/* : String */;
1828 char* var11
/* : NativeString */;
1829 long var12
/* : Int */;
1830 val
* var13
/* : String */;
1831 val
* var14
/* : String */;
1832 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
1834 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
1841 var6
= string__NativeString__to_s_with_length(var4
, var5
);
1845 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
1846 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:VirtualRuntimeFunction>*/;
1847 var8
= ((val
* (*)(val
*))(var7
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(var7
) /* c_name on <var7:MMethodDef>*/;
1848 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var8
) /* add on <var_:Array[Object]>*/;
1854 var13
= string__NativeString__to_s_with_length(var11
, var12
);
1858 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var10
) /* add on <var_:Array[Object]>*/;
1859 var14
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
1865 /* method separate_compiler#VirtualRuntimeFunction#build_c_name for (self: Object): String */
1866 val
* VIRTUAL_separate_compiler__VirtualRuntimeFunction__build_c_name(val
* self
) {
1867 val
* var
/* : String */;
1868 val
* var1
/* : String */;
1869 var1
= separate_compiler__VirtualRuntimeFunction__build_c_name(self
);
1874 /* method separate_compiler#VirtualRuntimeFunction#to_s for (self: VirtualRuntimeFunction): String */
1875 val
* separate_compiler__VirtualRuntimeFunction__to_s(val
* self
) {
1876 val
* var
/* : String */;
1877 val
* var1
/* : MMethodDef */;
1878 val
* var2
/* : String */;
1879 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:VirtualRuntimeFunction>*/;
1880 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_string__Object__to_s
]))(var1
) /* to_s on <var1:MMethodDef>*/;
1886 /* method separate_compiler#VirtualRuntimeFunction#to_s for (self: Object): String */
1887 val
* VIRTUAL_separate_compiler__VirtualRuntimeFunction__to_s(val
* self
) {
1888 val
* var
/* : String */;
1889 val
* var1
/* : String */;
1890 var1
= separate_compiler__VirtualRuntimeFunction__to_s(self
);
1895 /* method separate_compiler#VirtualRuntimeFunction#compile_to_c for (self: VirtualRuntimeFunction, AbstractCompiler) */
1896 void separate_compiler__VirtualRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
1897 short int var
/* : Bool */;
1900 const struct type
* type_struct
;
1901 const char* var_class_name
;
1902 val
* var_compiler
/* var compiler: AbstractCompiler */;
1903 val
* var1
/* : MMethodDef */;
1904 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
1905 val
* var2
/* : MMethodDef */;
1906 val
* var3
/* : MClassDef */;
1907 val
* var4
/* : MClassType */;
1908 val
* var_recv
/* var recv: MClassType */;
1909 val
* var5
/* : AbstractCompilerVisitor */;
1910 val
* var_v
/* var v: AbstractCompilerVisitor */;
1911 val
* var6
/* : RuntimeVariable */;
1912 static val
* varonce
;
1913 val
* var7
/* : String */;
1914 char* var8
/* : NativeString */;
1915 long var9
/* : Int */;
1916 val
* var10
/* : String */;
1917 val
* var11
/* : MClassType */;
1918 val
* var_selfvar
/* var selfvar: RuntimeVariable */;
1919 val
* var12
/* : Array[RuntimeVariable] */;
1920 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
1921 val
* var13
/* : Frame */;
1922 val
* var_frame
/* var frame: Frame */;
1923 val
* var14
/* : Buffer */;
1924 val
* var_sig
/* var sig: Buffer */;
1925 val
* var15
/* : Buffer */;
1926 val
* var_comment
/* var comment: Buffer */;
1927 val
* var16
/* : MMethodDef */;
1928 val
* var17
/* : MProperty */;
1929 val
* var18
/* : MPropDef */;
1930 val
* var19
/* : MClassDef */;
1931 val
* var_intromclassdef
/* var intromclassdef: MClassDef */;
1932 val
* var20
/* : MProperty */;
1933 val
* var21
/* : MPropDef */;
1934 val
* var22
/* : nullable MSignature */;
1935 val
* var23
/* : MClassType */;
1936 val
* var24
/* : MClassType */;
1937 val
* var25
/* : MModule */;
1938 short int var26
/* : Bool */;
1939 val
* var27
/* : MType */;
1940 val
* var_msignature
/* var msignature: MSignature */;
1941 val
* var28
/* : nullable MType */;
1942 val
* var_ret
/* var ret: nullable MType */;
1943 val
* var29
/* : null */;
1944 short int var30
/* : Bool */;
1945 val
* var31
/* : String */;
1946 static val
* varonce32
;
1947 val
* var33
/* : String */;
1948 char* var34
/* : NativeString */;
1949 long var35
/* : Int */;
1950 val
* var36
/* : String */;
1951 val
* var37
/* : Array[Object] */;
1952 long var38
/* : Int */;
1953 val
* var39
/* : NativeArray[Object] */;
1954 val
* var40
/* : String */;
1955 val
* var41
/* : MProperty */;
1956 short int var42
/* : Bool */;
1957 val
* var43
/* : String */;
1958 static val
* varonce44
;
1959 val
* var45
/* : String */;
1960 char* var46
/* : NativeString */;
1961 long var47
/* : Int */;
1962 val
* var48
/* : String */;
1963 val
* var49
/* : Array[Object] */;
1964 long var50
/* : Int */;
1965 val
* var51
/* : NativeArray[Object] */;
1966 val
* var52
/* : String */;
1967 static val
* varonce53
;
1968 val
* var54
/* : String */;
1969 char* var55
/* : NativeString */;
1970 long var56
/* : Int */;
1971 val
* var57
/* : String */;
1972 val
* var58
/* : String */;
1973 static val
* varonce59
;
1974 val
* var60
/* : String */;
1975 char* var61
/* : NativeString */;
1976 long var62
/* : Int */;
1977 val
* var63
/* : String */;
1978 val
* var64
/* : MType */;
1979 val
* var65
/* : String */;
1980 static val
* varonce66
;
1981 val
* var67
/* : String */;
1982 char* var68
/* : NativeString */;
1983 long var69
/* : Int */;
1984 val
* var70
/* : String */;
1985 val
* var71
/* : Array[Object] */;
1986 long var72
/* : Int */;
1987 val
* var73
/* : NativeArray[Object] */;
1988 val
* var74
/* : String */;
1989 static val
* varonce75
;
1990 val
* var76
/* : String */;
1991 char* var77
/* : NativeString */;
1992 long var78
/* : Int */;
1993 val
* var79
/* : String */;
1994 static val
* varonce80
;
1995 val
* var81
/* : String */;
1996 char* var82
/* : NativeString */;
1997 long var83
/* : Int */;
1998 val
* var84
/* : String */;
1999 val
* var85
/* : MType */;
2000 val
* var86
/* : Array[Object] */;
2001 long var87
/* : Int */;
2002 val
* var88
/* : NativeArray[Object] */;
2003 val
* var89
/* : String */;
2004 val
* var90
/* : Range[Int] */;
2005 long var91
/* : Int */;
2006 long var92
/* : Int */;
2007 val
* var93
/* : Discrete */;
2008 val
* var94
/* : Discrete */;
2009 val
* var95
/* : Iterator[nullable Object] */;
2010 short int var96
/* : Bool */;
2011 val
* var97
/* : nullable Object */;
2012 long var_i
/* var i: Int */;
2013 long var98
/* : Int */;
2014 val
* var99
/* : Array[MParameter] */;
2015 val
* var100
/* : nullable Object */;
2016 val
* var101
/* : MType */;
2017 val
* var_mtype
/* var mtype: MType */;
2018 long var102
/* : Int */;
2019 short int var103
/* : Bool */;
2020 short int var105
/* : Bool */;
2021 static val
* varonce106
;
2022 val
* var107
/* : String */;
2023 char* var108
/* : NativeString */;
2024 long var109
/* : Int */;
2025 val
* var110
/* : String */;
2026 val
* var111
/* : MClass */;
2027 val
* var112
/* : Array[MType] */;
2028 long var113
/* : Int */;
2029 val
* var114
/* : NativeArray[MType] */;
2030 val
* var115
/* : MClassType */;
2031 static val
* varonce116
;
2032 val
* var117
/* : String */;
2033 char* var118
/* : NativeString */;
2034 long var119
/* : Int */;
2035 val
* var120
/* : String */;
2036 val
* var121
/* : Array[Object] */;
2037 long var122
/* : Int */;
2038 val
* var123
/* : NativeArray[Object] */;
2039 val
* var124
/* : String */;
2040 static val
* varonce125
;
2041 val
* var126
/* : String */;
2042 char* var127
/* : NativeString */;
2043 long var128
/* : Int */;
2044 val
* var129
/* : String */;
2045 val
* var130
/* : String */;
2046 static val
* varonce131
;
2047 val
* var132
/* : String */;
2048 char* var133
/* : NativeString */;
2049 long var134
/* : Int */;
2050 val
* var135
/* : String */;
2051 val
* var136
/* : Array[Object] */;
2052 long var137
/* : Int */;
2053 val
* var138
/* : NativeArray[Object] */;
2054 val
* var139
/* : Object */;
2055 val
* var140
/* : String */;
2056 val
* var141
/* : RuntimeVariable */;
2057 val
* var142
/* : Array[Object] */;
2058 long var143
/* : Int */;
2059 val
* var_
/* var : Array[Object] */;
2060 static val
* varonce144
;
2061 val
* var145
/* : String */;
2062 char* var146
/* : NativeString */;
2063 long var147
/* : Int */;
2064 val
* var148
/* : String */;
2065 val
* var149
/* : nullable Object */;
2066 static val
* varonce150
;
2067 val
* var151
/* : String */;
2068 char* var152
/* : NativeString */;
2069 long var153
/* : Int */;
2070 val
* var154
/* : String */;
2071 val
* var155
/* : String */;
2072 val
* var_argvar
/* var argvar: RuntimeVariable */;
2073 static val
* varonce156
;
2074 val
* var157
/* : String */;
2075 char* var158
/* : NativeString */;
2076 long var159
/* : Int */;
2077 val
* var160
/* : String */;
2078 static val
* varonce161
;
2079 val
* var162
/* : String */;
2080 char* var163
/* : NativeString */;
2081 long var164
/* : Int */;
2082 val
* var165
/* : String */;
2083 val
* var166
/* : null */;
2084 short int var167
/* : Bool */;
2085 static val
* varonce168
;
2086 val
* var169
/* : String */;
2087 char* var170
/* : NativeString */;
2088 long var171
/* : Int */;
2089 val
* var172
/* : String */;
2090 val
* var173
/* : Array[Object] */;
2091 long var174
/* : Int */;
2092 val
* var175
/* : NativeArray[Object] */;
2093 val
* var176
/* : String */;
2094 val
* var177
/* : String */;
2095 static val
* varonce178
;
2096 val
* var179
/* : String */;
2097 char* var180
/* : NativeString */;
2098 long var181
/* : Int */;
2099 val
* var182
/* : String */;
2100 val
* var183
/* : Array[Object] */;
2101 long var184
/* : Int */;
2102 val
* var185
/* : NativeArray[Object] */;
2103 val
* var186
/* : String */;
2104 static val
* varonce187
;
2105 val
* var188
/* : String */;
2106 char* var189
/* : NativeString */;
2107 long var190
/* : Int */;
2108 val
* var191
/* : String */;
2109 static val
* varonce192
;
2110 val
* var193
/* : String */;
2111 char* var194
/* : NativeString */;
2112 long var195
/* : Int */;
2113 val
* var196
/* : String */;
2114 static val
* varonce197
;
2115 val
* var198
/* : String */;
2116 char* var199
/* : NativeString */;
2117 long var200
/* : Int */;
2118 val
* var201
/* : String */;
2119 val
* var202
/* : Array[Object] */;
2120 long var203
/* : Int */;
2121 val
* var204
/* : NativeArray[Object] */;
2122 val
* var205
/* : String */;
2123 static val
* varonce206
;
2124 val
* var207
/* : String */;
2125 char* var208
/* : NativeString */;
2126 long var209
/* : Int */;
2127 val
* var210
/* : String */;
2128 val
* var211
/* : Array[Object] */;
2129 long var212
/* : Int */;
2130 val
* var213
/* : NativeArray[Object] */;
2131 val
* var214
/* : String */;
2132 val
* var215
/* : null */;
2133 short int var216
/* : Bool */;
2134 val
* var217
/* : RuntimeVariable */;
2135 static val
* varonce218
;
2136 val
* var219
/* : String */;
2137 char* var220
/* : NativeString */;
2138 long var221
/* : Int */;
2139 val
* var222
/* : String */;
2140 val
* var223
/* : String */;
2141 val
* var224
/* : nullable RuntimeVariable */;
2142 val
* var_subret
/* var subret: nullable RuntimeVariable */;
2143 val
* var225
/* : null */;
2144 short int var226
/* : Bool */;
2145 val
* var227
/* : null */;
2146 short int var228
/* : Bool */;
2147 val
* var229
/* : nullable RuntimeVariable */;
2148 val
* var230
/* : nullable String */;
2149 static val
* varonce231
;
2150 val
* var232
/* : String */;
2151 char* var233
/* : NativeString */;
2152 long var234
/* : Int */;
2153 val
* var235
/* : String */;
2154 val
* var236
/* : Array[Object] */;
2155 long var237
/* : Int */;
2156 val
* var238
/* : NativeArray[Object] */;
2157 val
* var239
/* : String */;
2158 val
* var240
/* : null */;
2159 short int var241
/* : Bool */;
2160 static val
* varonce242
;
2161 val
* var243
/* : String */;
2162 char* var244
/* : NativeString */;
2163 long var245
/* : Int */;
2164 val
* var246
/* : String */;
2165 val
* var247
/* : nullable RuntimeVariable */;
2166 static val
* varonce248
;
2167 val
* var249
/* : String */;
2168 char* var250
/* : NativeString */;
2169 long var251
/* : Int */;
2170 val
* var252
/* : String */;
2171 val
* var253
/* : Array[Object] */;
2172 long var254
/* : Int */;
2173 val
* var255
/* : NativeArray[Object] */;
2174 val
* var256
/* : String */;
2175 static val
* varonce257
;
2176 val
* var258
/* : String */;
2177 char* var259
/* : NativeString */;
2178 long var260
/* : Int */;
2179 val
* var261
/* : String */;
2180 val
* var262
/* : String */;
2181 static val
* varonce263
;
2182 val
* var264
/* : String */;
2183 char* var265
/* : NativeString */;
2184 long var266
/* : Int */;
2185 val
* var267
/* : String */;
2186 long var268
/* : Int */;
2187 short int var269
/* : Bool */;
2188 short int var270
/* : Bool */;
2189 val
* var271
/* : HashMap[String, String] */;
2190 val
* var272
/* : String */;
2191 val
* var273
/* : MClassDef */;
2192 val
* var274
/* : MModule */;
2193 val
* var275
/* : String */;
2194 static val
* varonce276
;
2195 val
* var277
/* : String */;
2196 char* var278
/* : NativeString */;
2197 long var279
/* : Int */;
2198 val
* var280
/* : String */;
2199 val
* var281
/* : MClassDef */;
2200 val
* var282
/* : MClass */;
2201 val
* var283
/* : String */;
2202 static val
* varonce284
;
2203 val
* var285
/* : String */;
2204 char* var286
/* : NativeString */;
2205 long var287
/* : Int */;
2206 val
* var288
/* : String */;
2207 val
* var289
/* : MProperty */;
2208 val
* var290
/* : String */;
2209 static val
* varonce291
;
2210 val
* var292
/* : String */;
2211 char* var293
/* : NativeString */;
2212 long var294
/* : Int */;
2213 val
* var295
/* : String */;
2214 val
* var296
/* : Location */;
2215 val
* var297
/* : nullable SourceFile */;
2216 val
* var298
/* : String */;
2217 static val
* varonce299
;
2218 val
* var300
/* : String */;
2219 char* var301
/* : NativeString */;
2220 long var302
/* : Int */;
2221 val
* var303
/* : String */;
2222 val
* var304
/* : Location */;
2223 long var305
/* : Int */;
2224 static val
* varonce306
;
2225 val
* var307
/* : String */;
2226 char* var308
/* : NativeString */;
2227 long var309
/* : Int */;
2228 val
* var310
/* : String */;
2229 val
* var311
/* : Array[Object] */;
2230 long var312
/* : Int */;
2231 val
* var313
/* : NativeArray[Object] */;
2232 val
* var314
/* : Object */;
2233 val
* var315
/* : String */;
2234 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
2235 /* <p0:AbstractCompiler> isa COMPILER */
2236 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER
];
2237 cltype
= type_struct
->color
;
2238 idtype
= type_struct
->id
;
2239 if(cltype
>= p0
->type
->table_size
) {
2242 var
= p0
->type
->type_table
[cltype
] == idtype
;
2245 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2246 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name
);
2247 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1760);
2251 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:VirtualRuntimeFunction>*/;
2252 var_mmethoddef
= var1
;
2253 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:VirtualRuntimeFunction>*/;
2254 var3
= ((val
* (*)(val
*))(var2
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var2
) /* mclassdef on <var2:MMethodDef>*/;
2255 var4
= ((val
* (*)(val
*))(var3
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var3
) /* bound_mtype on <var3:MClassDef>*/;
2257 var5
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__new_visitor
]))(var_compiler
) /* new_visitor on <var_compiler:AbstractCompiler>*/;
2259 var6
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
2265 var10
= string__NativeString__to_s_with_length(var8
, var9
);
2269 var11
= ((val
* (*)(val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__object_type
]))(var_v
) /* object_type on <var_v:AbstractCompilerVisitor>*/;
2270 ((void (*)(val
*, val
*, val
*, val
*))(var6
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var6
, var7
, var11
, var_recv
) /* init on <var6:RuntimeVariable>*/;
2272 var12
= NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable
);
2273 ((void (*)(val
*))(var12
->class->vft
[COLOR_array__Array__init
]))(var12
) /* init on <var12:Array[RuntimeVariable]>*/;
2274 var_arguments
= var12
;
2275 var13
= NEW_abstract_compiler__Frame(&type_abstract_compiler__Frame
);
2276 ((void (*)(val
*, val
*, val
*, val
*, val
*))(var13
->class->vft
[COLOR_abstract_compiler__Frame__init
]))(var13
, var_v
, var_mmethoddef
, var_recv
, var_arguments
) /* init on <var13:Frame>*/;
2278 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__frame_61d
]))(var_v
, var_frame
) /* frame= on <var_v:AbstractCompilerVisitor>*/;
2279 var14
= NEW_string__Buffer(&type_string__Buffer
);
2280 ((void (*)(val
*))(var14
->class->vft
[COLOR_string__Buffer__init
]))(var14
) /* init on <var14:Buffer>*/;
2282 var15
= NEW_string__Buffer(&type_string__Buffer
);
2283 ((void (*)(val
*))(var15
->class->vft
[COLOR_string__Buffer__init
]))(var15
) /* init on <var15:Buffer>*/;
2284 var_comment
= var15
;
2285 var16
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__mmethoddef
]))(self
) /* mmethoddef on <self:VirtualRuntimeFunction>*/;
2286 var17
= ((val
* (*)(val
*))(var16
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var16
) /* mproperty on <var16:MMethodDef>*/;
2287 var18
= ((val
* (*)(val
*))(var17
->class->vft
[COLOR_model__MProperty__intro
]))(var17
) /* intro on <var17:MProperty(MMethod)>*/;
2288 var19
= ((val
* (*)(val
*))(var18
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var18
) /* mclassdef on <var18:MPropDef(MMethodDef)>*/;
2289 var_intromclassdef
= var19
;
2290 var20
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mmethoddef
) /* mproperty on <var_mmethoddef:MMethodDef>*/;
2291 var21
= ((val
* (*)(val
*))(var20
->class->vft
[COLOR_model__MProperty__intro
]))(var20
) /* intro on <var20:MProperty(MMethod)>*/;
2292 var22
= ((val
* (*)(val
*))(var21
->class->vft
[COLOR_model__MMethodDef__msignature
]))(var21
) /* msignature on <var21:MPropDef(MMethodDef)>*/;
2293 var23
= ((val
* (*)(val
*))(var_intromclassdef
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_intromclassdef
) /* bound_mtype on <var_intromclassdef:MClassDef>*/;
2294 var24
= ((val
* (*)(val
*))(var_intromclassdef
->class->vft
[COLOR_model__MClassDef__bound_mtype
]))(var_intromclassdef
) /* bound_mtype on <var_intromclassdef:MClassDef>*/;
2295 var25
= ((val
* (*)(val
*))(var_intromclassdef
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var_intromclassdef
) /* mmodule on <var_intromclassdef:MClassDef>*/;
2297 if (var22
== NULL
) {
2298 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2299 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1776);
2302 var27
= ((val
* (*)(val
*, val
*, val
*, val
*, short int))(var22
->class->vft
[COLOR_model__MType__resolve_for
]))(var22
, var23
, var24
, var25
, var26
) /* resolve_for on <var22:nullable MSignature>*/;
2304 var_msignature
= var27
;
2305 var28
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__return_mtype
]))(var_msignature
) /* return_mtype on <var_msignature:MSignature>*/;
2308 if (var_ret
== NULL
) {
2309 var30
= 0; /* is null */
2311 var30
= 1; /* arg is null and recv is not */
2314 var31
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ret
) /* ctype on <var_ret:nullable MType(MType)>*/;
2320 var36
= string__NativeString__to_s_with_length(var34
, var35
);
2324 var37
= NEW_array__Array(&type_array__Arraykernel__Object
);
2325 { /* var37 = array_instance Array[Object] */
2327 var39
= NEW_array__NativeArray(var38
, &type_array__NativeArraykernel__Object
);
2328 ((struct instance_array__NativeArray
*)var39
)->values
[0] = (val
*) var31
;
2329 ((struct instance_array__NativeArray
*)var39
)->values
[1] = (val
*) var33
;
2330 ((void (*)(val
*, val
*, long))(var37
->class->vft
[COLOR_array__Array__with_native
]))(var37
, var39
, var38
) /* with_native on <var37:Array[Object]>*/;
2332 var40
= ((val
* (*)(val
*))(var37
->class->vft
[COLOR_string__Object__to_s
]))(var37
) /* to_s on <var37:Array[Object]>*/;
2333 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var40
) /* append on <var_sig:Buffer>*/;
2335 var41
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mmethoddef
) /* mproperty on <var_mmethoddef:MMethodDef>*/;
2336 var42
= ((short int (*)(val
*))(var41
->class->vft
[COLOR_model__MMethod__is_new
]))(var41
) /* is_new on <var41:MProperty(MMethod)>*/;
2339 var43
= ((val
* (*)(val
*))(var_ret
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_ret
) /* ctype on <var_ret:nullable MType(MClassType)>*/;
2345 var48
= string__NativeString__to_s_with_length(var46
, var47
);
2349 var49
= NEW_array__Array(&type_array__Arraykernel__Object
);
2350 { /* var49 = array_instance Array[Object] */
2352 var51
= NEW_array__NativeArray(var50
, &type_array__NativeArraykernel__Object
);
2353 ((struct instance_array__NativeArray
*)var51
)->values
[0] = (val
*) var43
;
2354 ((struct instance_array__NativeArray
*)var51
)->values
[1] = (val
*) var45
;
2355 ((void (*)(val
*, val
*, long))(var49
->class->vft
[COLOR_array__Array__with_native
]))(var49
, var51
, var50
) /* with_native on <var49:Array[Object]>*/;
2357 var52
= ((val
* (*)(val
*))(var49
->class->vft
[COLOR_string__Object__to_s
]))(var49
) /* to_s on <var49:Array[Object]>*/;
2358 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var52
) /* append on <var_sig:Buffer>*/;
2365 var57
= string__NativeString__to_s_with_length(var55
, var56
);
2369 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var54
) /* append on <var_sig:Buffer>*/;
2372 var58
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:VirtualRuntimeFunction>*/;
2373 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var58
) /* append on <var_sig:Buffer>*/;
2379 var63
= string__NativeString__to_s_with_length(var61
, var62
);
2383 var64
= ((val
* (*)(val
*))(var_selfvar
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_selfvar
) /* mtype on <var_selfvar:RuntimeVariable>*/;
2384 var65
= ((val
* (*)(val
*))(var64
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var64
) /* ctype on <var64:MType>*/;
2390 var70
= string__NativeString__to_s_with_length(var68
, var69
);
2394 var71
= NEW_array__Array(&type_array__Arraykernel__Object
);
2395 { /* var71 = array_instance Array[Object] */
2397 var73
= NEW_array__NativeArray(var72
, &type_array__NativeArraykernel__Object
);
2398 ((struct instance_array__NativeArray
*)var73
)->values
[0] = (val
*) var60
;
2399 ((struct instance_array__NativeArray
*)var73
)->values
[1] = (val
*) var65
;
2400 ((struct instance_array__NativeArray
*)var73
)->values
[2] = (val
*) var67
;
2401 ((struct instance_array__NativeArray
*)var73
)->values
[3] = (val
*) var_selfvar
;
2402 ((void (*)(val
*, val
*, long))(var71
->class->vft
[COLOR_array__Array__with_native
]))(var71
, var73
, var72
) /* with_native on <var71:Array[Object]>*/;
2404 var74
= ((val
* (*)(val
*))(var71
->class->vft
[COLOR_string__Object__to_s
]))(var71
) /* to_s on <var71:Array[Object]>*/;
2405 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var74
) /* append on <var_sig:Buffer>*/;
2411 var79
= string__NativeString__to_s_with_length(var77
, var78
);
2420 var84
= string__NativeString__to_s_with_length(var82
, var83
);
2424 var85
= ((val
* (*)(val
*))(var_selfvar
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__mtype
]))(var_selfvar
) /* mtype on <var_selfvar:RuntimeVariable>*/;
2425 var86
= NEW_array__Array(&type_array__Arraykernel__Object
);
2426 { /* var86 = array_instance Array[Object] */
2428 var88
= NEW_array__NativeArray(var87
, &type_array__NativeArraykernel__Object
);
2429 ((struct instance_array__NativeArray
*)var88
)->values
[0] = (val
*) var76
;
2430 ((struct instance_array__NativeArray
*)var88
)->values
[1] = (val
*) var_selfvar
;
2431 ((struct instance_array__NativeArray
*)var88
)->values
[2] = (val
*) var81
;
2432 ((struct instance_array__NativeArray
*)var88
)->values
[3] = (val
*) var85
;
2433 ((void (*)(val
*, val
*, long))(var86
->class->vft
[COLOR_array__Array__with_native
]))(var86
, var88
, var87
) /* with_native on <var86:Array[Object]>*/;
2435 var89
= ((val
* (*)(val
*))(var86
->class->vft
[COLOR_string__Object__to_s
]))(var86
) /* to_s on <var86:Array[Object]>*/;
2436 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var89
) /* append on <var_comment:Buffer>*/;
2437 ((void (*)(val
*, val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments
, var_selfvar
) /* add on <var_arguments:Array[RuntimeVariable]>*/;
2438 var90
= NEW_range__Range(&type_range__Rangekernel__Int
);
2440 var92
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__arity
]))(var_msignature
) /* arity on <var_msignature:MSignature>*/;
2441 var93
= BOX_kernel__Int(var91
); /* autobox from Int to Discrete */
2442 var94
= BOX_kernel__Int(var92
); /* autobox from Int to Discrete */
2443 ((void (*)(val
*, val
*, val
*))(var90
->class->vft
[COLOR_range__Range__without_last
]))(var90
, var93
, var94
) /* without_last on <var90:Range[Int]>*/;
2444 var95
= ((val
* (*)(val
*))(var90
->class->vft
[COLOR_abstract_collection__Collection__iterator
]))(var90
) /* iterator on <var90:Range[Int]>*/;
2446 var96
= ((short int (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__is_ok
]))(var95
) /* is_ok on <var95:Iterator[nullable Object]>*/;
2448 var97
= ((val
* (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__item
]))(var95
) /* item on <var95:Iterator[nullable Object]>*/;
2449 var98
= ((struct instance_kernel__Int
*)var97
)->value
; /* autounbox from nullable Object to Int */;
2451 var99
= ((val
* (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__mparameters
]))(var_msignature
) /* mparameters on <var_msignature:MSignature>*/;
2452 var100
= ((val
* (*)(val
*, long))(var99
->class->vft
[COLOR_abstract_collection__SequenceRead___91d_93d
]))(var99
, var_i
) /* [] on <var99:Array[MParameter]>*/;
2453 var101
= ((val
* (*)(val
*))(var100
->class->vft
[COLOR_model__MParameter__mtype
]))(var100
) /* mtype on <var100:nullable Object(MParameter)>*/;
2455 var102
= ((long (*)(val
*))(var_msignature
->class->vft
[COLOR_model__MSignature__vararg_rank
]))(var_msignature
) /* vararg_rank on <var_msignature:MSignature>*/;
2456 { /* Inline kernel#Int#== (var_i,var102) */
2457 var105
= var_i
== var102
;
2460 RET_LABEL104
:(void)0;
2464 var107
= varonce106
;
2468 var110
= string__NativeString__to_s_with_length(var108
, var109
);
2470 varonce106
= var107
;
2472 var111
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class
]))(var_v
, var107
) /* get_class on <var_v:AbstractCompilerVisitor>*/;
2473 var112
= NEW_array__Array(&type_array__Arraymodel__MType
);
2474 { /* var112 = array_instance Array[MType] */
2476 var114
= NEW_array__NativeArray(var113
, &type_array__NativeArraymodel__MType
);
2477 ((struct instance_array__NativeArray
*)var114
)->values
[0] = (val
*) var_mtype
;
2478 ((void (*)(val
*, val
*, long))(var112
->class->vft
[COLOR_array__Array__with_native
]))(var112
, var114
, var113
) /* with_native on <var112:Array[MType]>*/;
2480 var115
= ((val
* (*)(val
*, val
*))(var111
->class->vft
[COLOR_model__MClass__get_mtype
]))(var111
, var112
) /* get_mtype on <var111:MClass>*/;
2485 var117
= varonce116
;
2489 var120
= string__NativeString__to_s_with_length(var118
, var119
);
2491 varonce116
= var117
;
2493 var121
= NEW_array__Array(&type_array__Arraykernel__Object
);
2494 { /* var121 = array_instance Array[Object] */
2496 var123
= NEW_array__NativeArray(var122
, &type_array__NativeArraykernel__Object
);
2497 ((struct instance_array__NativeArray
*)var123
)->values
[0] = (val
*) var117
;
2498 ((struct instance_array__NativeArray
*)var123
)->values
[1] = (val
*) var_mtype
;
2499 ((void (*)(val
*, val
*, long))(var121
->class->vft
[COLOR_array__Array__with_native
]))(var121
, var123
, var122
) /* with_native on <var121:Array[Object]>*/;
2501 var124
= ((val
* (*)(val
*))(var121
->class->vft
[COLOR_string__Object__to_s
]))(var121
) /* to_s on <var121:Array[Object]>*/;
2502 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var124
) /* append on <var_comment:Buffer>*/;
2504 var126
= varonce125
;
2508 var129
= string__NativeString__to_s_with_length(var127
, var128
);
2510 varonce125
= var126
;
2512 var130
= ((val
* (*)(val
*))(var_mtype
->class->vft
[COLOR_abstract_compiler__MType__ctype
]))(var_mtype
) /* ctype on <var_mtype:MType>*/;
2514 var132
= varonce131
;
2518 var135
= string__NativeString__to_s_with_length(var133
, var134
);
2520 varonce131
= var132
;
2522 var136
= NEW_array__Array(&type_array__Arraykernel__Object
);
2523 { /* var136 = array_instance Array[Object] */
2525 var138
= NEW_array__NativeArray(var137
, &type_array__NativeArraykernel__Object
);
2526 ((struct instance_array__NativeArray
*)var138
)->values
[0] = (val
*) var126
;
2527 ((struct instance_array__NativeArray
*)var138
)->values
[1] = (val
*) var130
;
2528 ((struct instance_array__NativeArray
*)var138
)->values
[2] = (val
*) var132
;
2529 var139
= BOX_kernel__Int(var_i
); /* autobox from Int to Object */
2530 ((struct instance_array__NativeArray
*)var138
)->values
[3] = (val
*) var139
;
2531 ((void (*)(val
*, val
*, long))(var136
->class->vft
[COLOR_array__Array__with_native
]))(var136
, var138
, var137
) /* with_native on <var136:Array[Object]>*/;
2533 var140
= ((val
* (*)(val
*))(var136
->class->vft
[COLOR_string__Object__to_s
]))(var136
) /* to_s on <var136:Array[Object]>*/;
2534 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var140
) /* append on <var_sig:Buffer>*/;
2535 var141
= NEW_abstract_compiler__RuntimeVariable(&type_abstract_compiler__RuntimeVariable
);
2536 var142
= NEW_array__Array(&type_array__Arraykernel__Object
);
2538 ((void (*)(val
*, long))(var142
->class->vft
[COLOR_array__Array__with_capacity
]))(var142
, var143
) /* with_capacity on <var142:Array[Object]>*/;
2541 var145
= varonce144
;
2545 var148
= string__NativeString__to_s_with_length(var146
, var147
);
2547 varonce144
= var145
;
2549 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var145
) /* add on <var_:Array[Object]>*/;
2550 var149
= BOX_kernel__Int(var_i
); /* autobox from Int to nullable Object */
2551 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var149
) /* add on <var_:Array[Object]>*/;
2553 var151
= varonce150
;
2557 var154
= string__NativeString__to_s_with_length(var152
, var153
);
2559 varonce150
= var151
;
2561 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var151
) /* add on <var_:Array[Object]>*/;
2562 var155
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
2563 ((void (*)(val
*, val
*, val
*, val
*))(var141
->class->vft
[COLOR_abstract_compiler__RuntimeVariable__init
]))(var141
, var155
, var_mtype
, var_mtype
) /* init on <var141:RuntimeVariable>*/;
2564 var_argvar
= var141
;
2565 ((void (*)(val
*, val
*))(var_arguments
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_arguments
, var_argvar
) /* add on <var_arguments:Array[RuntimeVariable]>*/;
2566 CONTINUE_label
: (void)0;
2567 ((void (*)(val
*))(var95
->class->vft
[COLOR_abstract_collection__Iterator__next
]))(var95
) /* next on <var95:Iterator[nullable Object]>*/;
2569 BREAK_label
: (void)0;
2571 var157
= varonce156
;
2575 var160
= string__NativeString__to_s_with_length(var158
, var159
);
2577 varonce156
= var157
;
2579 ((void (*)(val
*, val
*))(var_sig
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_sig
, var157
) /* append on <var_sig:Buffer>*/;
2581 var162
= varonce161
;
2585 var165
= string__NativeString__to_s_with_length(var163
, var164
);
2587 varonce161
= var162
;
2589 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var162
) /* append on <var_comment:Buffer>*/;
2591 if (var_ret
== NULL
) {
2592 var167
= 0; /* is null */
2594 var167
= 1; /* arg is null and recv is not */
2598 var169
= varonce168
;
2602 var172
= string__NativeString__to_s_with_length(var170
, var171
);
2604 varonce168
= var169
;
2606 var173
= NEW_array__Array(&type_array__Arraykernel__Object
);
2607 { /* var173 = array_instance Array[Object] */
2609 var175
= NEW_array__NativeArray(var174
, &type_array__NativeArraykernel__Object
);
2610 ((struct instance_array__NativeArray
*)var175
)->values
[0] = (val
*) var169
;
2611 ((struct instance_array__NativeArray
*)var175
)->values
[1] = (val
*) var_ret
;
2612 ((void (*)(val
*, val
*, long))(var173
->class->vft
[COLOR_array__Array__with_native
]))(var173
, var175
, var174
) /* with_native on <var173:Array[Object]>*/;
2614 var176
= ((val
* (*)(val
*))(var173
->class->vft
[COLOR_string__Object__to_s
]))(var173
) /* to_s on <var173:Array[Object]>*/;
2615 ((void (*)(val
*, val
*))(var_comment
->class->vft
[COLOR_abstract_collection__Sequence__append
]))(var_comment
, var176
) /* append on <var_comment:Buffer>*/;
2618 var177
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:VirtualRuntimeFunction>*/;
2620 var179
= varonce178
;
2624 var182
= string__NativeString__to_s_with_length(var180
, var181
);
2626 varonce178
= var179
;
2628 var183
= NEW_array__Array(&type_array__Arraykernel__Object
);
2629 { /* var183 = array_instance Array[Object] */
2631 var185
= NEW_array__NativeArray(var184
, &type_array__NativeArraykernel__Object
);
2632 ((struct instance_array__NativeArray
*)var185
)->values
[0] = (val
*) var_sig
;
2633 ((struct instance_array__NativeArray
*)var185
)->values
[1] = (val
*) var179
;
2634 ((void (*)(val
*, val
*, long))(var183
->class->vft
[COLOR_array__Array__with_native
]))(var183
, var185
, var184
) /* with_native on <var183:Array[Object]>*/;
2636 var186
= ((val
* (*)(val
*))(var183
->class->vft
[COLOR_string__Object__to_s
]))(var183
) /* to_s on <var183:Array[Object]>*/;
2637 ((void (*)(val
*, val
*, val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__provide_declaration
]))(var_compiler
, var177
, var186
) /* provide_declaration on <var_compiler:AbstractCompiler>*/;
2639 var188
= varonce187
;
2641 var189
= "/* method ";
2643 var191
= string__NativeString__to_s_with_length(var189
, var190
);
2645 varonce187
= var188
;
2648 var193
= varonce192
;
2652 var196
= string__NativeString__to_s_with_length(var194
, var195
);
2654 varonce192
= var193
;
2657 var198
= varonce197
;
2661 var201
= string__NativeString__to_s_with_length(var199
, var200
);
2663 varonce197
= var198
;
2665 var202
= NEW_array__Array(&type_array__Arraykernel__Object
);
2666 { /* var202 = array_instance Array[Object] */
2668 var204
= NEW_array__NativeArray(var203
, &type_array__NativeArraykernel__Object
);
2669 ((struct instance_array__NativeArray
*)var204
)->values
[0] = (val
*) var188
;
2670 ((struct instance_array__NativeArray
*)var204
)->values
[1] = (val
*) self
;
2671 ((struct instance_array__NativeArray
*)var204
)->values
[2] = (val
*) var193
;
2672 ((struct instance_array__NativeArray
*)var204
)->values
[3] = (val
*) var_comment
;
2673 ((struct instance_array__NativeArray
*)var204
)->values
[4] = (val
*) var198
;
2674 ((void (*)(val
*, val
*, long))(var202
->class->vft
[COLOR_array__Array__with_native
]))(var202
, var204
, var203
) /* with_native on <var202:Array[Object]>*/;
2676 var205
= ((val
* (*)(val
*))(var202
->class->vft
[COLOR_string__Object__to_s
]))(var202
) /* to_s on <var202:Array[Object]>*/;
2677 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var205
) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
2679 var207
= varonce206
;
2683 var210
= string__NativeString__to_s_with_length(var208
, var209
);
2685 varonce206
= var207
;
2687 var211
= NEW_array__Array(&type_array__Arraykernel__Object
);
2688 { /* var211 = array_instance Array[Object] */
2690 var213
= NEW_array__NativeArray(var212
, &type_array__NativeArraykernel__Object
);
2691 ((struct instance_array__NativeArray
*)var213
)->values
[0] = (val
*) var_sig
;
2692 ((struct instance_array__NativeArray
*)var213
)->values
[1] = (val
*) var207
;
2693 ((void (*)(val
*, val
*, long))(var211
->class->vft
[COLOR_array__Array__with_native
]))(var211
, var213
, var212
) /* with_native on <var211:Array[Object]>*/;
2695 var214
= ((val
* (*)(val
*))(var211
->class->vft
[COLOR_string__Object__to_s
]))(var211
) /* to_s on <var211:Array[Object]>*/;
2696 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl
]))(var_v
, var214
) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
2698 if (var_ret
== NULL
) {
2699 var216
= 0; /* is null */
2701 var216
= 1; /* arg is null and recv is not */
2704 var217
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var
]))(var_v
, var_ret
) /* new_var on <var_v:AbstractCompilerVisitor>*/;
2705 ((void (*)(val
*, val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnvar_61d
]))(var_frame
, var217
) /* returnvar= on <var_frame:Frame>*/;
2709 var219
= varonce218
;
2711 var220
= "RET_LABEL";
2713 var222
= string__NativeString__to_s_with_length(var220
, var221
);
2715 varonce218
= var219
;
2717 var223
= ((val
* (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name
]))(var_v
, var219
) /* get_name on <var_v:AbstractCompilerVisitor>*/;
2718 ((void (*)(val
*, val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnlabel_61d
]))(var_frame
, var223
) /* returnlabel= on <var_frame:Frame>*/;
2719 var224
= ((val
* (*)(val
*, val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__call
]))(var_v
, var_mmethoddef
, var_recv
, var_arguments
) /* call on <var_v:AbstractCompilerVisitor>*/;
2720 var_subret
= var224
;
2722 if (var_ret
== NULL
) {
2723 var226
= 0; /* is null */
2725 var226
= 1; /* arg is null and recv is not */
2729 if (var_subret
== NULL
) {
2730 var228
= 0; /* is null */
2732 var228
= 1; /* arg is null and recv is not */
2735 fprintf(stderr
, "Runtime error: %s", "Assert failed");
2736 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1816);
2739 var229
= ((val
* (*)(val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnvar
]))(var_frame
) /* returnvar on <var_frame:Frame>*/;
2740 if (var229
== NULL
) {
2741 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2742 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1817);
2745 ((void (*)(val
*, val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__assign
]))(var_v
, var229
, var_subret
) /* assign on <var_v:AbstractCompilerVisitor>*/;
2748 var230
= ((val
* (*)(val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnlabel
]))(var_frame
) /* returnlabel on <var_frame:Frame>*/;
2749 if (var230
== NULL
) {
2750 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2751 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1820);
2755 var232
= varonce231
;
2759 var235
= string__NativeString__to_s_with_length(var233
, var234
);
2761 varonce231
= var232
;
2763 var236
= NEW_array__Array(&type_array__Arraykernel__Object
);
2764 { /* var236 = array_instance Array[Object] */
2766 var238
= NEW_array__NativeArray(var237
, &type_array__NativeArraykernel__Object
);
2767 ((struct instance_array__NativeArray
*)var238
)->values
[0] = (val
*) var230
;
2768 ((struct instance_array__NativeArray
*)var238
)->values
[1] = (val
*) var232
;
2769 ((void (*)(val
*, val
*, long))(var236
->class->vft
[COLOR_array__Array__with_native
]))(var236
, var238
, var237
) /* with_native on <var236:Array[Object]>*/;
2771 var239
= ((val
* (*)(val
*))(var236
->class->vft
[COLOR_string__Object__to_s
]))(var236
) /* to_s on <var236:Array[Object]>*/;
2772 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var239
) /* add on <var_v:AbstractCompilerVisitor>*/;
2774 if (var_ret
== NULL
) {
2775 var241
= 0; /* is null */
2777 var241
= 1; /* arg is null and recv is not */
2781 var243
= varonce242
;
2785 var246
= string__NativeString__to_s_with_length(var244
, var245
);
2787 varonce242
= var243
;
2789 var247
= ((val
* (*)(val
*))(var_frame
->class->vft
[COLOR_abstract_compiler__Frame__returnvar
]))(var_frame
) /* returnvar on <var_frame:Frame>*/;
2790 if (var247
== NULL
) {
2791 fprintf(stderr
, "Runtime error: %s", "Cast failed");
2792 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1822);
2796 var249
= varonce248
;
2800 var252
= string__NativeString__to_s_with_length(var250
, var251
);
2802 varonce248
= var249
;
2804 var253
= NEW_array__Array(&type_array__Arraykernel__Object
);
2805 { /* var253 = array_instance Array[Object] */
2807 var255
= NEW_array__NativeArray(var254
, &type_array__NativeArraykernel__Object
);
2808 ((struct instance_array__NativeArray
*)var255
)->values
[0] = (val
*) var243
;
2809 ((struct instance_array__NativeArray
*)var255
)->values
[1] = (val
*) var247
;
2810 ((struct instance_array__NativeArray
*)var255
)->values
[2] = (val
*) var249
;
2811 ((void (*)(val
*, val
*, long))(var253
->class->vft
[COLOR_array__Array__with_native
]))(var253
, var255
, var254
) /* with_native on <var253:Array[Object]>*/;
2813 var256
= ((val
* (*)(val
*))(var253
->class->vft
[COLOR_string__Object__to_s
]))(var253
) /* to_s on <var253:Array[Object]>*/;
2814 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var256
) /* add on <var_v:AbstractCompilerVisitor>*/;
2818 var258
= varonce257
;
2822 var261
= string__NativeString__to_s_with_length(var259
, var260
);
2824 varonce257
= var258
;
2826 ((void (*)(val
*, val
*))(var_v
->class->vft
[COLOR_abstract_compiler__AbstractCompilerVisitor__add
]))(var_v
, var258
) /* add on <var_v:AbstractCompilerVisitor>*/;
2827 var262
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:VirtualRuntimeFunction>*/;
2829 var264
= varonce263
;
2833 var267
= string__NativeString__to_s_with_length(var265
, var266
);
2835 varonce263
= var264
;
2838 var269
= ((short int (*)(val
*, val
*, long))(var262
->class->vft
[COLOR_string__AbstractString__has_substring
]))(var262
, var264
, var268
) /* has_substring on <var262:String>*/;
2841 var271
= ((val
* (*)(val
*))(var_compiler
->class->vft
[COLOR_abstract_compiler__AbstractCompiler__names
]))(var_compiler
) /* names on <var_compiler:AbstractCompiler>*/;
2842 var272
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name
]))(self
) /* c_name on <self:VirtualRuntimeFunction>*/;
2843 var273
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
2844 var274
= ((val
* (*)(val
*))(var273
->class->vft
[COLOR_model__MClassDef__mmodule
]))(var273
) /* mmodule on <var273:MClassDef>*/;
2845 var275
= ((val
* (*)(val
*))(var274
->class->vft
[COLOR_mmodule__MModule__name
]))(var274
) /* name on <var274:MModule>*/;
2847 var277
= varonce276
;
2851 var280
= string__NativeString__to_s_with_length(var278
, var279
);
2853 varonce276
= var277
;
2855 var281
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mclassdef
]))(var_mmethoddef
) /* mclassdef on <var_mmethoddef:MMethodDef>*/;
2856 var282
= ((val
* (*)(val
*))(var281
->class->vft
[COLOR_model__MClassDef__mclass
]))(var281
) /* mclass on <var281:MClassDef>*/;
2857 var283
= ((val
* (*)(val
*))(var282
->class->vft
[COLOR_model__MClass__name
]))(var282
) /* name on <var282:MClass>*/;
2859 var285
= varonce284
;
2863 var288
= string__NativeString__to_s_with_length(var286
, var287
);
2865 varonce284
= var285
;
2867 var289
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__mproperty
]))(var_mmethoddef
) /* mproperty on <var_mmethoddef:MMethodDef>*/;
2868 var290
= ((val
* (*)(val
*))(var289
->class->vft
[COLOR_model__MProperty__name
]))(var289
) /* name on <var289:MProperty(MMethod)>*/;
2870 var292
= varonce291
;
2874 var295
= string__NativeString__to_s_with_length(var293
, var294
);
2876 varonce291
= var292
;
2878 var296
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__location
]))(var_mmethoddef
) /* location on <var_mmethoddef:MMethodDef>*/;
2879 var297
= ((val
* (*)(val
*))(var296
->class->vft
[COLOR_location__Location__file
]))(var296
) /* file on <var296:Location>*/;
2880 if (var297
== NULL
) {
2881 fprintf(stderr
, "Runtime error: %s", "Receiver is null");
2882 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1825);
2885 var298
= ((val
* (*)(val
*))(var297
->class->vft
[COLOR_location__SourceFile__filename
]))(var297
) /* filename on <var297:nullable SourceFile>*/;
2888 var300
= varonce299
;
2892 var303
= string__NativeString__to_s_with_length(var301
, var302
);
2894 varonce299
= var300
;
2896 var304
= ((val
* (*)(val
*))(var_mmethoddef
->class->vft
[COLOR_model__MPropDef__location
]))(var_mmethoddef
) /* location on <var_mmethoddef:MMethodDef>*/;
2897 var305
= ((long (*)(val
*))(var304
->class->vft
[COLOR_location__Location__line_start
]))(var304
) /* line_start on <var304:Location>*/;
2899 var307
= varonce306
;
2903 var310
= string__NativeString__to_s_with_length(var308
, var309
);
2905 varonce306
= var307
;
2907 var311
= NEW_array__Array(&type_array__Arraykernel__Object
);
2908 { /* var311 = array_instance Array[Object] */
2910 var313
= NEW_array__NativeArray(var312
, &type_array__NativeArraykernel__Object
);
2911 ((struct instance_array__NativeArray
*)var313
)->values
[0] = (val
*) var275
;
2912 ((struct instance_array__NativeArray
*)var313
)->values
[1] = (val
*) var277
;
2913 ((struct instance_array__NativeArray
*)var313
)->values
[2] = (val
*) var283
;
2914 ((struct instance_array__NativeArray
*)var313
)->values
[3] = (val
*) var285
;
2915 ((struct instance_array__NativeArray
*)var313
)->values
[4] = (val
*) var290
;
2916 ((struct instance_array__NativeArray
*)var313
)->values
[5] = (val
*) var292
;
2917 ((struct instance_array__NativeArray
*)var313
)->values
[6] = (val
*) var298
;
2918 ((struct instance_array__NativeArray
*)var313
)->values
[7] = (val
*) var300
;
2919 var314
= BOX_kernel__Int(var305
); /* autobox from Int to Object */
2920 ((struct instance_array__NativeArray
*)var313
)->values
[8] = (val
*) var314
;
2921 ((struct instance_array__NativeArray
*)var313
)->values
[9] = (val
*) var307
;
2922 ((void (*)(val
*, val
*, long))(var311
->class->vft
[COLOR_array__Array__with_native
]))(var311
, var313
, var312
) /* with_native on <var311:Array[Object]>*/;
2924 var315
= ((val
* (*)(val
*))(var311
->class->vft
[COLOR_string__Object__to_s
]))(var311
) /* to_s on <var311:Array[Object]>*/;
2925 ((void (*)(val
*, val
*, val
*))(var271
->class->vft
[COLOR_abstract_collection__Map___91d_93d_61d
]))(var271
, var272
, var315
) /* []= on <var271:HashMap[String, String]>*/;
2930 /* method separate_compiler#VirtualRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */
2931 void VIRTUAL_separate_compiler__VirtualRuntimeFunction__compile_to_c(val
* self
, val
* p0
) {
2932 separate_compiler__VirtualRuntimeFunction__compile_to_c(self
, p0
);
2935 /* method separate_compiler#VirtualRuntimeFunction#call for (self: VirtualRuntimeFunction, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
2936 val
* separate_compiler__VirtualRuntimeFunction__call(val
* self
, val
* p0
, val
* p1
) {
2937 val
* var
/* : nullable RuntimeVariable */;
2938 short int var1
/* : Bool */;
2941 const struct type
* type_struct
;
2942 const char* var_class_name
;
2943 val
* var_v
/* var v: AbstractCompilerVisitor */;
2944 val
* var_arguments
/* var arguments: Array[RuntimeVariable] */;
2945 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
2946 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2947 type_struct
= self
->type
->resolution_table
->types
[COLOR_abstract_compiler__AbstractRuntimeFunction_VTVISITOR
];
2948 cltype
= type_struct
->color
;
2949 idtype
= type_struct
->id
;
2950 if(cltype
>= p0
->type
->table_size
) {
2953 var1
= p0
->type
->type_table
[cltype
] == idtype
;
2956 var_class_name
= p0
== NULL ?
"null" : p0
->type
->name
;
2957 fprintf(stderr
, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name
);
2958 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1828);
2963 fprintf(stderr
, "Runtime error: %s", "Aborted");
2964 fprintf(stderr
, " (%s:%d)\n", "src/separate_compiler.nit", 1829);
2969 /* method separate_compiler#VirtualRuntimeFunction#call for (self: Object, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
2970 val
* VIRTUAL_separate_compiler__VirtualRuntimeFunction__call(val
* self
, val
* p0
, val
* p1
) {
2971 val
* var
/* : nullable RuntimeVariable */;
2972 val
* var1
/* : nullable RuntimeVariable */;
2973 var1
= separate_compiler__VirtualRuntimeFunction__call(self
, p0
, p1
);
2978 /* method separate_compiler#MType#const_color for (self: MType): String */
2979 val
* separate_compiler__MType__const_color(val
* self
) {
2980 val
* var
/* : String */;
2981 val
* var1
/* : Array[Object] */;
2982 long var2
/* : Int */;
2983 val
* var_
/* var : Array[Object] */;
2984 static val
* varonce
;
2985 val
* var3
/* : String */;
2986 char* var4
/* : NativeString */;
2987 long var5
/* : Int */;
2988 val
* var6
/* : String */;
2989 val
* var7
/* : String */;
2990 static val
* varonce8
;
2991 val
* var9
/* : String */;
2992 char* var10
/* : NativeString */;
2993 long var11
/* : Int */;
2994 val
* var12
/* : String */;
2995 val
* var13
/* : String */;
2996 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
2998 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
3005 var6
= string__NativeString__to_s_with_length(var4
, var5
);
3009 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
3010 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(self
) /* c_name on <self:MType>*/;
3011 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var7
) /* add on <var_:Array[Object]>*/;
3017 var12
= string__NativeString__to_s_with_length(var10
, var11
);
3021 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
3022 var13
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
3028 /* method separate_compiler#MType#const_color for (self: Object): String */
3029 val
* VIRTUAL_separate_compiler__MType__const_color(val
* self
) {
3030 val
* var
/* : String */;
3031 val
* var1
/* : String */;
3032 var1
= separate_compiler__MType__const_color(self
);
3037 /* method separate_compiler#MType#c_instance_name for (self: MType): String */
3038 val
* separate_compiler__MType__c_instance_name(val
* self
) {
3039 val
* var
/* : String */;
3040 val
* var1
/* : String */;
3041 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MType__c_name
]))(self
) /* c_name on <self:MType>*/;
3047 /* method separate_compiler#MType#c_instance_name for (self: Object): String */
3048 val
* VIRTUAL_separate_compiler__MType__c_instance_name(val
* self
) {
3049 val
* var
/* : String */;
3050 val
* var1
/* : String */;
3051 var1
= separate_compiler__MType__c_instance_name(self
);
3056 /* method separate_compiler#MClassType#c_instance_name for (self: MClassType): String */
3057 val
* separate_compiler__MClassType__c_instance_name(val
* self
) {
3058 val
* var
/* : String */;
3059 val
* var1
/* : MClass */;
3060 val
* var2
/* : String */;
3061 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClassType__mclass
]))(self
) /* mclass on <self:MClassType>*/;
3062 var2
= ((val
* (*)(val
*))(var1
->class->vft
[COLOR_separate_compiler__MClass__c_instance_name
]))(var1
) /* c_instance_name on <var1:MClass>*/;
3068 /* method separate_compiler#MClassType#c_instance_name for (self: Object): String */
3069 val
* VIRTUAL_separate_compiler__MClassType__c_instance_name(val
* self
) {
3070 val
* var
/* : String */;
3071 val
* var1
/* : String */;
3072 var1
= separate_compiler__MClassType__c_instance_name(self
);
3077 /* method separate_compiler#MClass#c_instance_name for (self: MClass): String */
3078 val
* separate_compiler__MClass__c_instance_name(val
* self
) {
3079 val
* var
/* : String */;
3080 val
* var1
/* : MClassKind */;
3081 val
* var2
/* : MClassKind */;
3082 short int var3
/* : Bool */;
3083 static val
* varonce
;
3084 val
* var4
/* : String */;
3085 char* var5
/* : NativeString */;
3086 long var6
/* : Int */;
3087 val
* var7
/* : String */;
3088 val
* var8
/* : String */;
3089 var1
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__MClass__kind
]))(self
) /* kind on <self:MClass>*/;
3090 var2
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_model__Object__extern_kind
]))(self
) /* extern_kind on <self:MClass>*/;
3091 var3
= ((short int (*)(val
*, val
*))(var1
->class->vft
[COLOR_kernel__Object___61d_61d
]))(var1
, var2
) /* == on <var1:MClassKind>*/;
3096 var5
= "kernel__Pointer";
3098 var7
= string__NativeString__to_s_with_length(var5
, var6
);
3105 var8
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MClass__c_name
]))(self
) /* c_name on <self:MClass>*/;
3112 /* method separate_compiler#MClass#c_instance_name for (self: Object): String */
3113 val
* VIRTUAL_separate_compiler__MClass__c_instance_name(val
* self
) {
3114 val
* var
/* : String */;
3115 val
* var1
/* : String */;
3116 var1
= separate_compiler__MClass__c_instance_name(self
);
3121 /* method separate_compiler#MProperty#const_color for (self: MProperty): String */
3122 val
* separate_compiler__MProperty__const_color(val
* self
) {
3123 val
* var
/* : String */;
3124 val
* var1
/* : Array[Object] */;
3125 long var2
/* : Int */;
3126 val
* var_
/* var : Array[Object] */;
3127 static val
* varonce
;
3128 val
* var3
/* : String */;
3129 char* var4
/* : NativeString */;
3130 long var5
/* : Int */;
3131 val
* var6
/* : String */;
3132 val
* var7
/* : String */;
3133 static val
* varonce8
;
3134 val
* var9
/* : String */;
3135 char* var10
/* : NativeString */;
3136 long var11
/* : Int */;
3137 val
* var12
/* : String */;
3138 val
* var13
/* : String */;
3139 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
3141 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
3148 var6
= string__NativeString__to_s_with_length(var4
, var5
);
3152 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
3153 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MProperty__c_name
]))(self
) /* c_name on <self:MProperty>*/;
3154 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var7
) /* add on <var_:Array[Object]>*/;
3160 var12
= string__NativeString__to_s_with_length(var10
, var11
);
3164 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
3165 var13
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
3171 /* method separate_compiler#MProperty#const_color for (self: Object): String */
3172 val
* VIRTUAL_separate_compiler__MProperty__const_color(val
* self
) {
3173 val
* var
/* : String */;
3174 val
* var1
/* : String */;
3175 var1
= separate_compiler__MProperty__const_color(self
);
3180 /* method separate_compiler#MPropDef#const_color for (self: MPropDef): String */
3181 val
* separate_compiler__MPropDef__const_color(val
* self
) {
3182 val
* var
/* : String */;
3183 val
* var1
/* : Array[Object] */;
3184 long var2
/* : Int */;
3185 val
* var_
/* var : Array[Object] */;
3186 static val
* varonce
;
3187 val
* var3
/* : String */;
3188 char* var4
/* : NativeString */;
3189 long var5
/* : Int */;
3190 val
* var6
/* : String */;
3191 val
* var7
/* : String */;
3192 static val
* varonce8
;
3193 val
* var9
/* : String */;
3194 char* var10
/* : NativeString */;
3195 long var11
/* : Int */;
3196 val
* var12
/* : String */;
3197 val
* var13
/* : String */;
3198 var1
= NEW_array__Array(&type_array__Arraykernel__Object
);
3200 ((void (*)(val
*, long))(var1
->class->vft
[COLOR_array__Array__with_capacity
]))(var1
, var2
) /* with_capacity on <var1:Array[Object]>*/;
3207 var6
= string__NativeString__to_s_with_length(var4
, var5
);
3211 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var3
) /* add on <var_:Array[Object]>*/;
3212 var7
= ((val
* (*)(val
*))(self
->class->vft
[COLOR_abstract_compiler__MPropDef__c_name
]))(self
) /* c_name on <self:MPropDef>*/;
3213 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var7
) /* add on <var_:Array[Object]>*/;
3219 var12
= string__NativeString__to_s_with_length(var10
, var11
);
3223 ((void (*)(val
*, val
*))(var_
->class->vft
[COLOR_abstract_collection__SimpleCollection__add
]))(var_
, var9
) /* add on <var_:Array[Object]>*/;
3224 var13
= ((val
* (*)(val
*))(var_
->class->vft
[COLOR_string__Object__to_s
]))(var_
) /* to_s on <var_:Array[Object]>*/;
3230 /* method separate_compiler#MPropDef#const_color for (self: Object): String */
3231 val
* VIRTUAL_separate_compiler__MPropDef__const_color(val
* self
) {
3232 val
* var
/* : String */;
3233 val
* var1
/* : String */;
3234 var1
= separate_compiler__MPropDef__const_color(self
);