Merge branch 'super_init_call'
[nit.git] / c_src / abstract_compiler.sep.2.c
1 #include "abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AbstractCompilerVisitor#string_instance for (self: AbstractCompilerVisitor, String): RuntimeVariable */
3 val* abstract_compiler__AbstractCompilerVisitor__string_instance(val* self, val* p0) {
4 val* var /* : RuntimeVariable */;
5 val* var_string /* var string: String */;
6 static val* varonce;
7 val* var1 /* : String */;
8 char* var2 /* : NativeString */;
9 long var3 /* : Int */;
10 val* var4 /* : String */;
11 val* var5 /* : MClass */;
12 val* var6 /* : MClassType */;
13 val* var_mtype /* var mtype: MClassType */;
14 static val* varonce7;
15 val* var8 /* : String */;
16 char* var9 /* : NativeString */;
17 long var10 /* : Int */;
18 val* var11 /* : String */;
19 val* var12 /* : String */;
20 val* var_name /* var name: String */;
21 static val* varonce13;
22 val* var14 /* : String */;
23 char* var15 /* : NativeString */;
24 long var16 /* : Int */;
25 val* var17 /* : String */;
26 val* var18 /* : String */;
27 static val* varonce19;
28 val* var20 /* : String */;
29 char* var21 /* : NativeString */;
30 long var22 /* : Int */;
31 val* var23 /* : String */;
32 static val* varonce24;
33 val* var25 /* : String */;
34 char* var26 /* : NativeString */;
35 long var27 /* : Int */;
36 val* var28 /* : String */;
37 val* var29 /* : Array[Object] */;
38 long var30 /* : Int */;
39 val* var31 /* : NativeArray[Object] */;
40 val* var32 /* : String */;
41 val* var33 /* : RuntimeVariable */;
42 val* var_res /* var res: RuntimeVariable */;
43 static val* varonce34;
44 val* var35 /* : String */;
45 char* var36 /* : NativeString */;
46 long var37 /* : Int */;
47 val* var38 /* : String */;
48 static val* varonce39;
49 val* var40 /* : String */;
50 char* var41 /* : NativeString */;
51 long var42 /* : Int */;
52 val* var43 /* : String */;
53 val* var44 /* : Array[Object] */;
54 long var45 /* : Int */;
55 val* var46 /* : NativeArray[Object] */;
56 val* var47 /* : String */;
57 static val* varonce48;
58 val* var49 /* : String */;
59 char* var50 /* : NativeString */;
60 long var51 /* : Int */;
61 val* var52 /* : String */;
62 static val* varonce53;
63 val* var54 /* : String */;
64 char* var55 /* : NativeString */;
65 long var56 /* : Int */;
66 val* var57 /* : String */;
67 val* var58 /* : Array[Object] */;
68 long var59 /* : Int */;
69 val* var60 /* : NativeArray[Object] */;
70 val* var61 /* : String */;
71 static val* varonce62;
72 val* var63 /* : String */;
73 char* var64 /* : NativeString */;
74 long var65 /* : Int */;
75 val* var66 /* : String */;
76 static val* varonce67;
77 val* var68 /* : String */;
78 char* var69 /* : NativeString */;
79 long var70 /* : Int */;
80 val* var71 /* : String */;
81 val* var72 /* : MClass */;
82 val* var73 /* : MClassType */;
83 val* var_native_mtype /* var native_mtype: MClassType */;
84 val* var74 /* : RuntimeVariable */;
85 val* var_nat /* var nat: RuntimeVariable */;
86 static val* varonce75;
87 val* var76 /* : String */;
88 char* var77 /* : NativeString */;
89 long var78 /* : Int */;
90 val* var79 /* : String */;
91 val* var80 /* : String */;
92 static val* varonce81;
93 val* var82 /* : String */;
94 char* var83 /* : NativeString */;
95 long var84 /* : Int */;
96 val* var85 /* : String */;
97 val* var86 /* : Array[Object] */;
98 long var87 /* : Int */;
99 val* var88 /* : NativeArray[Object] */;
100 val* var89 /* : String */;
101 long var90 /* : Int */;
102 val* var91 /* : RuntimeVariable */;
103 val* var_length /* var length: RuntimeVariable */;
104 static val* varonce92;
105 val* var93 /* : String */;
106 char* var94 /* : NativeString */;
107 long var95 /* : Int */;
108 val* var96 /* : String */;
109 static val* varonce97;
110 val* var98 /* : String */;
111 char* var99 /* : NativeString */;
112 long var100 /* : Int */;
113 val* var101 /* : String */;
114 val* var102 /* : MMethod */;
115 val* var103 /* : Array[RuntimeVariable] */;
116 long var104 /* : Int */;
117 val* var105 /* : NativeArray[RuntimeVariable] */;
118 val* var106 /* : nullable RuntimeVariable */;
119 static val* varonce107;
120 val* var108 /* : String */;
121 char* var109 /* : NativeString */;
122 long var110 /* : Int */;
123 val* var111 /* : String */;
124 val* var112 /* : Array[Object] */;
125 long var113 /* : Int */;
126 val* var114 /* : NativeArray[Object] */;
127 val* var115 /* : String */;
128 static val* varonce116;
129 val* var117 /* : String */;
130 char* var118 /* : NativeString */;
131 long var119 /* : Int */;
132 val* var120 /* : String */;
133 static val* varonce121;
134 val* var122 /* : String */;
135 char* var123 /* : NativeString */;
136 long var124 /* : Int */;
137 val* var125 /* : String */;
138 val* var126 /* : Array[Object] */;
139 long var127 /* : Int */;
140 val* var128 /* : NativeArray[Object] */;
141 val* var129 /* : String */;
142 static val* varonce130;
143 val* var131 /* : String */;
144 char* var132 /* : NativeString */;
145 long var133 /* : Int */;
146 val* var134 /* : String */;
147 var_string = p0;
148 if (varonce) {
149 var1 = varonce;
150 } else {
151 var2 = "String";
152 var3 = 6;
153 var4 = string__NativeString__to_s_with_length(var2, var3);
154 var1 = var4;
155 varonce = var1;
156 }
157 var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class]))(self, var1) /* get_class on <self:AbstractCompilerVisitor>*/;
158 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MClass__mclass_type]))(var5) /* mclass_type on <var5:MClass>*/;
159 var_mtype = var6;
160 if (varonce7) {
161 var8 = varonce7;
162 } else {
163 var9 = "varonce";
164 var10 = 7;
165 var11 = string__NativeString__to_s_with_length(var9, var10);
166 var8 = var11;
167 varonce7 = var8;
168 }
169 var12 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name]))(self, var8) /* get_name on <self:AbstractCompilerVisitor>*/;
170 var_name = var12;
171 if (varonce13) {
172 var14 = varonce13;
173 } else {
174 var15 = "static ";
175 var16 = 7;
176 var17 = string__NativeString__to_s_with_length(var15, var16);
177 var14 = var17;
178 varonce13 = var14;
179 }
180 var18 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MClassType>*/;
181 if (varonce19) {
182 var20 = varonce19;
183 } else {
184 var21 = " ";
185 var22 = 1;
186 var23 = string__NativeString__to_s_with_length(var21, var22);
187 var20 = var23;
188 varonce19 = var20;
189 }
190 if (varonce24) {
191 var25 = varonce24;
192 } else {
193 var26 = ";";
194 var27 = 1;
195 var28 = string__NativeString__to_s_with_length(var26, var27);
196 var25 = var28;
197 varonce24 = var25;
198 }
199 var29 = NEW_array__Array(&type_array__Arraykernel__Object);
200 { /* var29 = array_instance Array[Object] */
201 var30 = 5;
202 var31 = NEW_array__NativeArray(var30, &type_array__NativeArraykernel__Object);
203 ((struct instance_array__NativeArray*)var31)->values[0] = (val*) var14;
204 ((struct instance_array__NativeArray*)var31)->values[1] = (val*) var18;
205 ((struct instance_array__NativeArray*)var31)->values[2] = (val*) var20;
206 ((struct instance_array__NativeArray*)var31)->values[3] = (val*) var_name;
207 ((struct instance_array__NativeArray*)var31)->values[4] = (val*) var25;
208 ((void (*)(val*, val*, long))(var29->class->vft[COLOR_array__Array__with_native]))(var29, var31, var30) /* with_native on <var29:Array[Object]>*/;
209 }
210 var32 = ((val* (*)(val*))(var29->class->vft[COLOR_string__Object__to_s]))(var29) /* to_s on <var29:Array[Object]>*/;
211 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(self, var32) /* add_decl on <self:AbstractCompilerVisitor>*/;
212 var33 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(self, var_mtype) /* new_var on <self:AbstractCompilerVisitor>*/;
213 var_res = var33;
214 if (varonce34) {
215 var35 = varonce34;
216 } else {
217 var36 = "if (";
218 var37 = 4;
219 var38 = string__NativeString__to_s_with_length(var36, var37);
220 var35 = var38;
221 varonce34 = var35;
222 }
223 if (varonce39) {
224 var40 = varonce39;
225 } else {
226 var41 = ") {";
227 var42 = 3;
228 var43 = string__NativeString__to_s_with_length(var41, var42);
229 var40 = var43;
230 varonce39 = var40;
231 }
232 var44 = NEW_array__Array(&type_array__Arraykernel__Object);
233 { /* var44 = array_instance Array[Object] */
234 var45 = 3;
235 var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object);
236 ((struct instance_array__NativeArray*)var46)->values[0] = (val*) var35;
237 ((struct instance_array__NativeArray*)var46)->values[1] = (val*) var_name;
238 ((struct instance_array__NativeArray*)var46)->values[2] = (val*) var40;
239 ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[Object]>*/;
240 }
241 var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on <var44:Array[Object]>*/;
242 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var47) /* add on <self:AbstractCompilerVisitor>*/;
243 if (varonce48) {
244 var49 = varonce48;
245 } else {
246 var50 = " = ";
247 var51 = 3;
248 var52 = string__NativeString__to_s_with_length(var50, var51);
249 var49 = var52;
250 varonce48 = var49;
251 }
252 if (varonce53) {
253 var54 = varonce53;
254 } else {
255 var55 = ";";
256 var56 = 1;
257 var57 = string__NativeString__to_s_with_length(var55, var56);
258 var54 = var57;
259 varonce53 = var54;
260 }
261 var58 = NEW_array__Array(&type_array__Arraykernel__Object);
262 { /* var58 = array_instance Array[Object] */
263 var59 = 4;
264 var60 = NEW_array__NativeArray(var59, &type_array__NativeArraykernel__Object);
265 ((struct instance_array__NativeArray*)var60)->values[0] = (val*) var_res;
266 ((struct instance_array__NativeArray*)var60)->values[1] = (val*) var49;
267 ((struct instance_array__NativeArray*)var60)->values[2] = (val*) var_name;
268 ((struct instance_array__NativeArray*)var60)->values[3] = (val*) var54;
269 ((void (*)(val*, val*, long))(var58->class->vft[COLOR_array__Array__with_native]))(var58, var60, var59) /* with_native on <var58:Array[Object]>*/;
270 }
271 var61 = ((val* (*)(val*))(var58->class->vft[COLOR_string__Object__to_s]))(var58) /* to_s on <var58:Array[Object]>*/;
272 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var61) /* add on <self:AbstractCompilerVisitor>*/;
273 if (varonce62) {
274 var63 = varonce62;
275 } else {
276 var64 = "} else {";
277 var65 = 8;
278 var66 = string__NativeString__to_s_with_length(var64, var65);
279 var63 = var66;
280 varonce62 = var63;
281 }
282 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var63) /* add on <self:AbstractCompilerVisitor>*/;
283 if (varonce67) {
284 var68 = varonce67;
285 } else {
286 var69 = "NativeString";
287 var70 = 12;
288 var71 = string__NativeString__to_s_with_length(var69, var70);
289 var68 = var71;
290 varonce67 = var68;
291 }
292 var72 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_class]))(self, var68) /* get_class on <self:AbstractCompilerVisitor>*/;
293 var73 = ((val* (*)(val*))(var72->class->vft[COLOR_model__MClass__mclass_type]))(var72) /* mclass_type on <var72:MClass>*/;
294 var_native_mtype = var73;
295 var74 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(self, var_native_mtype) /* new_var on <self:AbstractCompilerVisitor>*/;
296 var_nat = var74;
297 if (varonce75) {
298 var76 = varonce75;
299 } else {
300 var77 = " = \"";
301 var78 = 4;
302 var79 = string__NativeString__to_s_with_length(var77, var78);
303 var76 = var79;
304 varonce75 = var76;
305 }
306 var80 = ((val* (*)(val*))(var_string->class->vft[COLOR_string__AbstractString__escape_to_c]))(var_string) /* escape_to_c on <var_string:String>*/;
307 if (varonce81) {
308 var82 = varonce81;
309 } else {
310 var83 = "\";";
311 var84 = 2;
312 var85 = string__NativeString__to_s_with_length(var83, var84);
313 var82 = var85;
314 varonce81 = var82;
315 }
316 var86 = NEW_array__Array(&type_array__Arraykernel__Object);
317 { /* var86 = array_instance Array[Object] */
318 var87 = 4;
319 var88 = NEW_array__NativeArray(var87, &type_array__NativeArraykernel__Object);
320 ((struct instance_array__NativeArray*)var88)->values[0] = (val*) var_nat;
321 ((struct instance_array__NativeArray*)var88)->values[1] = (val*) var76;
322 ((struct instance_array__NativeArray*)var88)->values[2] = (val*) var80;
323 ((struct instance_array__NativeArray*)var88)->values[3] = (val*) var82;
324 ((void (*)(val*, val*, long))(var86->class->vft[COLOR_array__Array__with_native]))(var86, var88, var87) /* with_native on <var86:Array[Object]>*/;
325 }
326 var89 = ((val* (*)(val*))(var86->class->vft[COLOR_string__Object__to_s]))(var86) /* to_s on <var86:Array[Object]>*/;
327 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var89) /* add on <self:AbstractCompilerVisitor>*/;
328 var90 = ((long (*)(val*))(var_string->class->vft[COLOR_abstract_collection__Collection__length]))(var_string) /* length on <var_string:String>*/;
329 var91 = ((val* (*)(val*, long))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__int_instance]))(self, var90) /* int_instance on <self:AbstractCompilerVisitor>*/;
330 var_length = var91;
331 if (varonce92) {
332 var93 = varonce92;
333 } else {
334 var94 = " = ";
335 var95 = 3;
336 var96 = string__NativeString__to_s_with_length(var94, var95);
337 var93 = var96;
338 varonce92 = var93;
339 }
340 if (varonce97) {
341 var98 = varonce97;
342 } else {
343 var99 = "to_s_with_length";
344 var100 = 16;
345 var101 = string__NativeString__to_s_with_length(var99, var100);
346 var98 = var101;
347 varonce97 = var98;
348 }
349 var102 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_property]))(self, var98, var_native_mtype) /* get_property on <self:AbstractCompilerVisitor>*/;
350 var103 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
351 { /* var103 = array_instance Array[RuntimeVariable] */
352 var104 = 2;
353 var105 = NEW_array__NativeArray(var104, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
354 ((struct instance_array__NativeArray*)var105)->values[0] = (val*) var_nat;
355 ((struct instance_array__NativeArray*)var105)->values[1] = (val*) var_length;
356 ((void (*)(val*, val*, long))(var103->class->vft[COLOR_array__Array__with_native]))(var103, var105, var104) /* with_native on <var103:Array[RuntimeVariable]>*/;
357 }
358 var106 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(self, var102, var103) /* send on <self:AbstractCompilerVisitor>*/;
359 if (var106 == NULL) {
360 fprintf(stderr, "Runtime error: %s", "Cast failed");
361 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 937);
362 show_backtrace(1);
363 }
364 if (varonce107) {
365 var108 = varonce107;
366 } else {
367 var109 = ";";
368 var110 = 1;
369 var111 = string__NativeString__to_s_with_length(var109, var110);
370 var108 = var111;
371 varonce107 = var108;
372 }
373 var112 = NEW_array__Array(&type_array__Arraykernel__Object);
374 { /* var112 = array_instance Array[Object] */
375 var113 = 4;
376 var114 = NEW_array__NativeArray(var113, &type_array__NativeArraykernel__Object);
377 ((struct instance_array__NativeArray*)var114)->values[0] = (val*) var_res;
378 ((struct instance_array__NativeArray*)var114)->values[1] = (val*) var93;
379 ((struct instance_array__NativeArray*)var114)->values[2] = (val*) var106;
380 ((struct instance_array__NativeArray*)var114)->values[3] = (val*) var108;
381 ((void (*)(val*, val*, long))(var112->class->vft[COLOR_array__Array__with_native]))(var112, var114, var113) /* with_native on <var112:Array[Object]>*/;
382 }
383 var115 = ((val* (*)(val*))(var112->class->vft[COLOR_string__Object__to_s]))(var112) /* to_s on <var112:Array[Object]>*/;
384 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var115) /* add on <self:AbstractCompilerVisitor>*/;
385 if (varonce116) {
386 var117 = varonce116;
387 } else {
388 var118 = " = ";
389 var119 = 3;
390 var120 = string__NativeString__to_s_with_length(var118, var119);
391 var117 = var120;
392 varonce116 = var117;
393 }
394 if (varonce121) {
395 var122 = varonce121;
396 } else {
397 var123 = ";";
398 var124 = 1;
399 var125 = string__NativeString__to_s_with_length(var123, var124);
400 var122 = var125;
401 varonce121 = var122;
402 }
403 var126 = NEW_array__Array(&type_array__Arraykernel__Object);
404 { /* var126 = array_instance Array[Object] */
405 var127 = 4;
406 var128 = NEW_array__NativeArray(var127, &type_array__NativeArraykernel__Object);
407 ((struct instance_array__NativeArray*)var128)->values[0] = (val*) var_name;
408 ((struct instance_array__NativeArray*)var128)->values[1] = (val*) var117;
409 ((struct instance_array__NativeArray*)var128)->values[2] = (val*) var_res;
410 ((struct instance_array__NativeArray*)var128)->values[3] = (val*) var122;
411 ((void (*)(val*, val*, long))(var126->class->vft[COLOR_array__Array__with_native]))(var126, var128, var127) /* with_native on <var126:Array[Object]>*/;
412 }
413 var129 = ((val* (*)(val*))(var126->class->vft[COLOR_string__Object__to_s]))(var126) /* to_s on <var126:Array[Object]>*/;
414 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var129) /* add on <self:AbstractCompilerVisitor>*/;
415 if (varonce130) {
416 var131 = varonce130;
417 } else {
418 var132 = "}";
419 var133 = 1;
420 var134 = string__NativeString__to_s_with_length(var132, var133);
421 var131 = var134;
422 varonce130 = var131;
423 }
424 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var131) /* add on <self:AbstractCompilerVisitor>*/;
425 var = var_res;
426 goto RET_LABEL;
427 RET_LABEL:;
428 return var;
429 }
430 /* method abstract_compiler#AbstractCompilerVisitor#string_instance for (self: Object, String): RuntimeVariable */
431 val* VIRTUAL_abstract_compiler__AbstractCompilerVisitor__string_instance(val* self, val* p0) {
432 val* var /* : RuntimeVariable */;
433 val* var1 /* : RuntimeVariable */;
434 var1 = abstract_compiler__AbstractCompilerVisitor__string_instance(self, p0);
435 var = var1;
436 RET_LABEL:;
437 return var;
438 }
439 /* method abstract_compiler#AbstractCompilerVisitor#array_instance for (self: AbstractCompilerVisitor, Array[RuntimeVariable], MType): RuntimeVariable */
440 val* abstract_compiler__AbstractCompilerVisitor__array_instance(val* self, val* p0, val* p1) {
441 val* var /* : RuntimeVariable */;
442 const char* var_class_name;
443 var_class_name = self == NULL ? "null" : self->type->name;
444 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "array_instance", var_class_name);
445 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 943);
446 show_backtrace(1);
447 RET_LABEL:;
448 return var;
449 }
450 /* method abstract_compiler#AbstractCompilerVisitor#array_instance for (self: Object, Array[RuntimeVariable], MType): RuntimeVariable */
451 val* VIRTUAL_abstract_compiler__AbstractCompilerVisitor__array_instance(val* self, val* p0, val* p1) {
452 val* var /* : RuntimeVariable */;
453 val* var1 /* : RuntimeVariable */;
454 var1 = abstract_compiler__AbstractCompilerVisitor__array_instance(self, p0, p1);
455 var = var1;
456 RET_LABEL:;
457 return var;
458 }
459 /* method abstract_compiler#AbstractCompilerVisitor#vararg_instance for (self: AbstractCompilerVisitor, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
460 val* abstract_compiler__AbstractCompilerVisitor__vararg_instance(val* self, val* p0, val* p1, val* p2, val* p3) {
461 val* var /* : RuntimeVariable */;
462 const char* var_class_name;
463 var_class_name = self == NULL ? "null" : self->type->name;
464 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "vararg_instance", var_class_name);
465 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 946);
466 show_backtrace(1);
467 RET_LABEL:;
468 return var;
469 }
470 /* method abstract_compiler#AbstractCompilerVisitor#vararg_instance for (self: Object, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
471 val* VIRTUAL_abstract_compiler__AbstractCompilerVisitor__vararg_instance(val* self, val* p0, val* p1, val* p2, val* p3) {
472 val* var /* : RuntimeVariable */;
473 val* var1 /* : RuntimeVariable */;
474 var1 = abstract_compiler__AbstractCompilerVisitor__vararg_instance(self, p0, p1, p2, p3);
475 var = var1;
476 RET_LABEL:;
477 return var;
478 }
479 /* method abstract_compiler#AbstractCompilerVisitor#add for (self: AbstractCompilerVisitor, String) */
480 void abstract_compiler__AbstractCompilerVisitor__add(val* self, val* p0) {
481 val* var_s /* var s: String */;
482 val* var /* : CodeWriter */;
483 val* var1 /* : List[String] */;
484 var_s = p0;
485 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__writer]))(self) /* writer on <self:AbstractCompilerVisitor>*/;
486 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_compiler__CodeWriter__lines]))(var) /* lines on <var:CodeWriter>*/;
487 ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var1, var_s) /* add on <var1:List[String]>*/;
488 RET_LABEL:;
489 }
490 /* method abstract_compiler#AbstractCompilerVisitor#add for (self: Object, String) */
491 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add(val* self, val* p0) {
492 abstract_compiler__AbstractCompilerVisitor__add(self, p0);
493 RET_LABEL:;
494 }
495 /* method abstract_compiler#AbstractCompilerVisitor#add_decl for (self: AbstractCompilerVisitor, String) */
496 void abstract_compiler__AbstractCompilerVisitor__add_decl(val* self, val* p0) {
497 val* var_s /* var s: String */;
498 val* var /* : CodeWriter */;
499 val* var1 /* : List[String] */;
500 var_s = p0;
501 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__writer]))(self) /* writer on <self:AbstractCompilerVisitor>*/;
502 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_compiler__CodeWriter__decl_lines]))(var) /* decl_lines on <var:CodeWriter>*/;
503 ((void (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var1, var_s) /* add on <var1:List[String]>*/;
504 RET_LABEL:;
505 }
506 /* method abstract_compiler#AbstractCompilerVisitor#add_decl for (self: Object, String) */
507 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_decl(val* self, val* p0) {
508 abstract_compiler__AbstractCompilerVisitor__add_decl(self, p0);
509 RET_LABEL:;
510 }
511 /* method abstract_compiler#AbstractCompilerVisitor#require_declaration for (self: AbstractCompilerVisitor, String) */
512 void abstract_compiler__AbstractCompilerVisitor__require_declaration(val* self, val* p0) {
513 val* var_key /* var key: String */;
514 val* var /* : CodeWriter */;
515 val* var1 /* : CodeFile */;
516 val* var2 /* : HashSet[String] */;
517 var_key = p0;
518 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__writer]))(self) /* writer on <self:AbstractCompilerVisitor>*/;
519 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_compiler__CodeWriter__file]))(var) /* file on <var:CodeWriter>*/;
520 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_compiler__CodeFile__required_declarations]))(var1) /* required_declarations on <var1:CodeFile>*/;
521 ((void (*)(val*, val*))(var2->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var2, var_key) /* add on <var2:HashSet[String]>*/;
522 RET_LABEL:;
523 }
524 /* method abstract_compiler#AbstractCompilerVisitor#require_declaration for (self: Object, String) */
525 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__require_declaration(val* self, val* p0) {
526 abstract_compiler__AbstractCompilerVisitor__require_declaration(self, p0);
527 RET_LABEL:;
528 }
529 /* method abstract_compiler#AbstractCompilerVisitor#declare_once for (self: AbstractCompilerVisitor, String) */
530 void abstract_compiler__AbstractCompilerVisitor__declare_once(val* self, val* p0) {
531 val* var_s /* var s: String */;
532 val* var /* : AbstractCompiler */;
533 var_s = p0;
534 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on <self:AbstractCompilerVisitor>*/;
535 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_abstract_compiler__AbstractCompiler__provide_declaration]))(var, var_s, var_s) /* provide_declaration on <var:AbstractCompiler>*/;
536 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__require_declaration]))(self, var_s) /* require_declaration on <self:AbstractCompilerVisitor>*/;
537 RET_LABEL:;
538 }
539 /* method abstract_compiler#AbstractCompilerVisitor#declare_once for (self: Object, String) */
540 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__declare_once(val* self, val* p0) {
541 abstract_compiler__AbstractCompilerVisitor__declare_once(self, p0);
542 RET_LABEL:;
543 }
544 /* method abstract_compiler#AbstractCompilerVisitor#add_extern for (self: AbstractCompilerVisitor, String) */
545 void abstract_compiler__AbstractCompilerVisitor__add_extern(val* self, val* p0) {
546 val* var_file /* var file: String */;
547 static val* varonce;
548 val* var /* : String */;
549 char* var1 /* : NativeString */;
550 long var2 /* : Int */;
551 val* var3 /* : String */;
552 val* var4 /* : String */;
553 static val* varonce5;
554 val* var6 /* : String */;
555 char* var7 /* : NativeString */;
556 long var8 /* : Int */;
557 val* var9 /* : String */;
558 val* var10 /* : String */;
559 val* var_tryfile /* var tryfile: String */;
560 short int var11 /* : Bool */;
561 static val* varonce12;
562 val* var13 /* : String */;
563 char* var14 /* : NativeString */;
564 long var15 /* : Int */;
565 val* var16 /* : String */;
566 static val* varonce17;
567 val* var18 /* : String */;
568 char* var19 /* : NativeString */;
569 long var20 /* : Int */;
570 val* var21 /* : String */;
571 val* var22 /* : String */;
572 static val* varonce23;
573 val* var24 /* : String */;
574 char* var25 /* : NativeString */;
575 long var26 /* : Int */;
576 val* var27 /* : String */;
577 val* var28 /* : Array[Object] */;
578 long var29 /* : Int */;
579 val* var30 /* : NativeArray[Object] */;
580 val* var31 /* : String */;
581 static val* varonce32;
582 val* var33 /* : String */;
583 char* var34 /* : NativeString */;
584 long var35 /* : Int */;
585 val* var36 /* : String */;
586 val* var37 /* : String */;
587 short int var38 /* : Bool */;
588 static val* varonce39;
589 val* var40 /* : String */;
590 char* var41 /* : NativeString */;
591 long var42 /* : Int */;
592 val* var43 /* : String */;
593 static val* varonce44;
594 val* var45 /* : String */;
595 char* var46 /* : NativeString */;
596 long var47 /* : Int */;
597 val* var48 /* : String */;
598 val* var49 /* : String */;
599 static val* varonce50;
600 val* var51 /* : String */;
601 char* var52 /* : NativeString */;
602 long var53 /* : Int */;
603 val* var54 /* : String */;
604 val* var55 /* : Array[Object] */;
605 long var56 /* : Int */;
606 val* var57 /* : NativeArray[Object] */;
607 val* var58 /* : String */;
608 val* var59 /* : AbstractCompiler */;
609 val* var60 /* : ArraySet[String] */;
610 short int var61 /* : Bool */;
611 val* var62 /* : AbstractCompiler */;
612 val* var63 /* : ArraySet[String] */;
613 static val* varonce64;
614 val* var65 /* : String */;
615 char* var66 /* : NativeString */;
616 long var67 /* : Int */;
617 val* var68 /* : String */;
618 val* var69 /* : String */;
619 short int var70 /* : Bool */;
620 short int var71 /* : Bool */;
621 static val* varonce72;
622 val* var73 /* : String */;
623 char* var74 /* : NativeString */;
624 long var75 /* : Int */;
625 val* var76 /* : String */;
626 val* var77 /* : String */;
627 short int var78 /* : Bool */;
628 short int var79 /* : Bool */;
629 val* var80 /* : ExternCFile */;
630 static val* varonce81;
631 val* var82 /* : String */;
632 char* var83 /* : NativeString */;
633 long var84 /* : Int */;
634 val* var85 /* : String */;
635 val* var_f /* var f: ExternCFile */;
636 val* var86 /* : AbstractCompiler */;
637 val* var87 /* : Array[ExternCFile] */;
638 var_file = p0;
639 if (varonce) {
640 var = varonce;
641 } else {
642 var1 = ".nit";
643 var2 = 4;
644 var3 = string__NativeString__to_s_with_length(var1, var2);
645 var = var3;
646 varonce = var;
647 }
648 var4 = ((val* (*)(val*, val*))(var_file->class->vft[COLOR_file__String__strip_extension]))(var_file, var) /* strip_extension on <var_file:String>*/;
649 var_file = var4;
650 if (varonce5) {
651 var6 = varonce5;
652 } else {
653 var7 = ".nit.h";
654 var8 = 6;
655 var9 = string__NativeString__to_s_with_length(var7, var8);
656 var6 = var9;
657 varonce5 = var6;
658 }
659 var10 = ((val* (*)(val*, val*))(var_file->class->vft[COLOR_string__String___43d]))(var_file, var6) /* + on <var_file:String>*/;
660 var_tryfile = var10;
661 var11 = ((short int (*)(val*))(var_tryfile->class->vft[COLOR_file__String__file_exists]))(var_tryfile) /* file_exists on <var_tryfile:String>*/;
662 if (var11){
663 if (varonce12) {
664 var13 = varonce12;
665 } else {
666 var14 = "#include \"";
667 var15 = 10;
668 var16 = string__NativeString__to_s_with_length(var14, var15);
669 var13 = var16;
670 varonce12 = var13;
671 }
672 if (varonce17) {
673 var18 = varonce17;
674 } else {
675 var19 = "..";
676 var20 = 2;
677 var21 = string__NativeString__to_s_with_length(var19, var20);
678 var18 = var21;
679 varonce17 = var18;
680 }
681 var22 = ((val* (*)(val*, val*))(var18->class->vft[COLOR_file__String__join_path]))(var18, var_tryfile) /* join_path on <var18:String>*/;
682 if (varonce23) {
683 var24 = varonce23;
684 } else {
685 var25 = "\"";
686 var26 = 1;
687 var27 = string__NativeString__to_s_with_length(var25, var26);
688 var24 = var27;
689 varonce23 = var24;
690 }
691 var28 = NEW_array__Array(&type_array__Arraykernel__Object);
692 { /* var28 = array_instance Array[Object] */
693 var29 = 3;
694 var30 = NEW_array__NativeArray(var29, &type_array__NativeArraykernel__Object);
695 ((struct instance_array__NativeArray*)var30)->values[0] = (val*) var13;
696 ((struct instance_array__NativeArray*)var30)->values[1] = (val*) var22;
697 ((struct instance_array__NativeArray*)var30)->values[2] = (val*) var24;
698 ((void (*)(val*, val*, long))(var28->class->vft[COLOR_array__Array__with_native]))(var28, var30, var29) /* with_native on <var28:Array[Object]>*/;
699 }
700 var31 = ((val* (*)(val*))(var28->class->vft[COLOR_string__Object__to_s]))(var28) /* to_s on <var28:Array[Object]>*/;
701 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__declare_once]))(self, var31) /* declare_once on <self:AbstractCompilerVisitor>*/;
702 } else {
703 }
704 if (varonce32) {
705 var33 = varonce32;
706 } else {
707 var34 = "_nit.h";
708 var35 = 6;
709 var36 = string__NativeString__to_s_with_length(var34, var35);
710 var33 = var36;
711 varonce32 = var33;
712 }
713 var37 = ((val* (*)(val*, val*))(var_file->class->vft[COLOR_string__String___43d]))(var_file, var33) /* + on <var_file:String>*/;
714 var_tryfile = var37;
715 var38 = ((short int (*)(val*))(var_tryfile->class->vft[COLOR_file__String__file_exists]))(var_tryfile) /* file_exists on <var_tryfile:String>*/;
716 if (var38){
717 if (varonce39) {
718 var40 = varonce39;
719 } else {
720 var41 = "#include \"";
721 var42 = 10;
722 var43 = string__NativeString__to_s_with_length(var41, var42);
723 var40 = var43;
724 varonce39 = var40;
725 }
726 if (varonce44) {
727 var45 = varonce44;
728 } else {
729 var46 = "..";
730 var47 = 2;
731 var48 = string__NativeString__to_s_with_length(var46, var47);
732 var45 = var48;
733 varonce44 = var45;
734 }
735 var49 = ((val* (*)(val*, val*))(var45->class->vft[COLOR_file__String__join_path]))(var45, var_tryfile) /* join_path on <var45:String>*/;
736 if (varonce50) {
737 var51 = varonce50;
738 } else {
739 var52 = "\"";
740 var53 = 1;
741 var54 = string__NativeString__to_s_with_length(var52, var53);
742 var51 = var54;
743 varonce50 = var51;
744 }
745 var55 = NEW_array__Array(&type_array__Arraykernel__Object);
746 { /* var55 = array_instance Array[Object] */
747 var56 = 3;
748 var57 = NEW_array__NativeArray(var56, &type_array__NativeArraykernel__Object);
749 ((struct instance_array__NativeArray*)var57)->values[0] = (val*) var40;
750 ((struct instance_array__NativeArray*)var57)->values[1] = (val*) var49;
751 ((struct instance_array__NativeArray*)var57)->values[2] = (val*) var51;
752 ((void (*)(val*, val*, long))(var55->class->vft[COLOR_array__Array__with_native]))(var55, var57, var56) /* with_native on <var55:Array[Object]>*/;
753 }
754 var58 = ((val* (*)(val*))(var55->class->vft[COLOR_string__Object__to_s]))(var55) /* to_s on <var55:Array[Object]>*/;
755 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__declare_once]))(self, var58) /* declare_once on <self:AbstractCompilerVisitor>*/;
756 } else {
757 }
758 var59 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on <self:AbstractCompilerVisitor>*/;
759 var60 = ((val* (*)(val*))(var59->class->vft[COLOR_abstract_compiler__AbstractCompiler__seen_extern]))(var59) /* seen_extern on <var59:AbstractCompiler>*/;
760 var61 = ((short int (*)(val*, val*))(var60->class->vft[COLOR_abstract_collection__Collection__has]))(var60, var_file) /* has on <var60:ArraySet[String]>*/;
761 if (var61){
762 goto RET_LABEL;
763 } else {
764 }
765 var62 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on <self:AbstractCompilerVisitor>*/;
766 var63 = ((val* (*)(val*))(var62->class->vft[COLOR_abstract_compiler__AbstractCompiler__seen_extern]))(var62) /* seen_extern on <var62:AbstractCompiler>*/;
767 ((void (*)(val*, val*))(var63->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var63, var_file) /* add on <var63:ArraySet[String]>*/;
768 if (varonce64) {
769 var65 = varonce64;
770 } else {
771 var66 = ".nit.c";
772 var67 = 6;
773 var68 = string__NativeString__to_s_with_length(var66, var67);
774 var65 = var68;
775 varonce64 = var65;
776 }
777 var69 = ((val* (*)(val*, val*))(var_file->class->vft[COLOR_string__String___43d]))(var_file, var65) /* + on <var_file:String>*/;
778 var_tryfile = var69;
779 var70 = ((short int (*)(val*))(var_tryfile->class->vft[COLOR_file__String__file_exists]))(var_tryfile) /* file_exists on <var_tryfile:String>*/;
780 var71 = !var70;
781 if (var71){
782 if (varonce72) {
783 var73 = varonce72;
784 } else {
785 var74 = "_nit.c";
786 var75 = 6;
787 var76 = string__NativeString__to_s_with_length(var74, var75);
788 var73 = var76;
789 varonce72 = var73;
790 }
791 var77 = ((val* (*)(val*, val*))(var_file->class->vft[COLOR_string__String___43d]))(var_file, var73) /* + on <var_file:String>*/;
792 var_tryfile = var77;
793 var78 = ((short int (*)(val*))(var_tryfile->class->vft[COLOR_file__String__file_exists]))(var_tryfile) /* file_exists on <var_tryfile:String>*/;
794 var79 = !var78;
795 if (var79){
796 goto RET_LABEL;
797 } else {
798 }
799 } else {
800 }
801 var80 = NEW_abstract_compiler__ExternCFile(&type_abstract_compiler__ExternCFile);
802 if (varonce81) {
803 var82 = varonce81;
804 } else {
805 var83 = "";
806 var84 = 0;
807 var85 = string__NativeString__to_s_with_length(var83, var84);
808 var82 = var85;
809 varonce81 = var82;
810 }
811 ((void (*)(val*, val*, val*))(var80->class->vft[COLOR_abstract_compiler__ExternCFile__init]))(var80, var_tryfile, var82) /* init on <var80:ExternCFile>*/;
812 var_f = var80;
813 var86 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on <self:AbstractCompilerVisitor>*/;
814 var87 = ((val* (*)(val*))(var86->class->vft[COLOR_abstract_compiler__AbstractCompiler__extern_bodies]))(var86) /* extern_bodies on <var86:AbstractCompiler>*/;
815 ((void (*)(val*, val*))(var87->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var87, var_f) /* add on <var87:Array[ExternCFile]>*/;
816 RET_LABEL:;
817 }
818 /* method abstract_compiler#AbstractCompilerVisitor#add_extern for (self: Object, String) */
819 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_extern(val* self, val* p0) {
820 abstract_compiler__AbstractCompilerVisitor__add_extern(self, p0);
821 RET_LABEL:;
822 }
823 /* method abstract_compiler#AbstractCompilerVisitor#new_expr for (self: AbstractCompilerVisitor, String, MType): RuntimeVariable */
824 val* abstract_compiler__AbstractCompilerVisitor__new_expr(val* self, val* p0, val* p1) {
825 val* var /* : RuntimeVariable */;
826 val* var_cexpr /* var cexpr: String */;
827 val* var_mtype /* var mtype: MType */;
828 val* var1 /* : RuntimeVariable */;
829 val* var_res /* var res: RuntimeVariable */;
830 static val* varonce;
831 val* var2 /* : String */;
832 char* var3 /* : NativeString */;
833 long var4 /* : Int */;
834 val* var5 /* : String */;
835 static val* varonce6;
836 val* var7 /* : String */;
837 char* var8 /* : NativeString */;
838 long var9 /* : Int */;
839 val* var10 /* : String */;
840 val* var11 /* : Array[Object] */;
841 long var12 /* : Int */;
842 val* var13 /* : NativeArray[Object] */;
843 val* var14 /* : String */;
844 var_cexpr = p0;
845 var_mtype = p1;
846 var1 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(self, var_mtype) /* new_var on <self:AbstractCompilerVisitor>*/;
847 var_res = var1;
848 if (varonce) {
849 var2 = varonce;
850 } else {
851 var3 = " = ";
852 var4 = 3;
853 var5 = string__NativeString__to_s_with_length(var3, var4);
854 var2 = var5;
855 varonce = var2;
856 }
857 if (varonce6) {
858 var7 = varonce6;
859 } else {
860 var8 = ";";
861 var9 = 1;
862 var10 = string__NativeString__to_s_with_length(var8, var9);
863 var7 = var10;
864 varonce6 = var7;
865 }
866 var11 = NEW_array__Array(&type_array__Arraykernel__Object);
867 { /* var11 = array_instance Array[Object] */
868 var12 = 4;
869 var13 = NEW_array__NativeArray(var12, &type_array__NativeArraykernel__Object);
870 ((struct instance_array__NativeArray*)var13)->values[0] = (val*) var_res;
871 ((struct instance_array__NativeArray*)var13)->values[1] = (val*) var2;
872 ((struct instance_array__NativeArray*)var13)->values[2] = (val*) var_cexpr;
873 ((struct instance_array__NativeArray*)var13)->values[3] = (val*) var7;
874 ((void (*)(val*, val*, long))(var11->class->vft[COLOR_array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
875 }
876 var14 = ((val* (*)(val*))(var11->class->vft[COLOR_string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
877 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var14) /* add on <self:AbstractCompilerVisitor>*/;
878 var = var_res;
879 goto RET_LABEL;
880 RET_LABEL:;
881 return var;
882 }
883 /* method abstract_compiler#AbstractCompilerVisitor#new_expr for (self: Object, String, MType): RuntimeVariable */
884 val* VIRTUAL_abstract_compiler__AbstractCompilerVisitor__new_expr(val* self, val* p0, val* p1) {
885 val* var /* : RuntimeVariable */;
886 val* var1 /* : RuntimeVariable */;
887 var1 = abstract_compiler__AbstractCompilerVisitor__new_expr(self, p0, p1);
888 var = var1;
889 RET_LABEL:;
890 return var;
891 }
892 /* method abstract_compiler#AbstractCompilerVisitor#add_abort for (self: AbstractCompilerVisitor, String) */
893 void abstract_compiler__AbstractCompilerVisitor__add_abort(val* self, val* p0) {
894 val* var_message /* var message: String */;
895 static val* varonce;
896 val* var /* : String */;
897 char* var1 /* : NativeString */;
898 long var2 /* : Int */;
899 val* var3 /* : String */;
900 val* var4 /* : String */;
901 static val* varonce5;
902 val* var6 /* : String */;
903 char* var7 /* : NativeString */;
904 long var8 /* : Int */;
905 val* var9 /* : String */;
906 val* var10 /* : Array[Object] */;
907 long var11 /* : Int */;
908 val* var12 /* : NativeArray[Object] */;
909 val* var13 /* : String */;
910 var_message = p0;
911 if (varonce) {
912 var = varonce;
913 } else {
914 var1 = "fprintf(stderr, \"Runtime error: %s\", \"";
915 var2 = 38;
916 var3 = string__NativeString__to_s_with_length(var1, var2);
917 var = var3;
918 varonce = var;
919 }
920 var4 = ((val* (*)(val*))(var_message->class->vft[COLOR_string__AbstractString__escape_to_c]))(var_message) /* escape_to_c on <var_message:String>*/;
921 if (varonce5) {
922 var6 = varonce5;
923 } else {
924 var7 = "\");";
925 var8 = 3;
926 var9 = string__NativeString__to_s_with_length(var7, var8);
927 var6 = var9;
928 varonce5 = var6;
929 }
930 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
931 { /* var10 = array_instance Array[Object] */
932 var11 = 3;
933 var12 = NEW_array__NativeArray(var11, &type_array__NativeArraykernel__Object);
934 ((struct instance_array__NativeArray*)var12)->values[0] = (val*) var;
935 ((struct instance_array__NativeArray*)var12)->values[1] = (val*) var4;
936 ((struct instance_array__NativeArray*)var12)->values[2] = (val*) var6;
937 ((void (*)(val*, val*, long))(var10->class->vft[COLOR_array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
938 }
939 var13 = ((val* (*)(val*))(var10->class->vft[COLOR_string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
940 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var13) /* add on <self:AbstractCompilerVisitor>*/;
941 ((void (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_raw_abort]))(self) /* add_raw_abort on <self:AbstractCompilerVisitor>*/;
942 RET_LABEL:;
943 }
944 /* method abstract_compiler#AbstractCompilerVisitor#add_abort for (self: Object, String) */
945 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_abort(val* self, val* p0) {
946 abstract_compiler__AbstractCompilerVisitor__add_abort(self, p0);
947 RET_LABEL:;
948 }
949 /* method abstract_compiler#AbstractCompilerVisitor#add_raw_abort for (self: AbstractCompilerVisitor) */
950 void abstract_compiler__AbstractCompilerVisitor__add_raw_abort(val* self) {
951 short int var /* : Bool */;
952 val* var1 /* : nullable ANode */;
953 val* var2 /* : null */;
954 short int var3 /* : Bool */;
955 short int var_ /* var : Bool */;
956 val* var4 /* : nullable ANode */;
957 val* var5 /* : Location */;
958 val* var6 /* : nullable SourceFile */;
959 val* var7 /* : null */;
960 short int var8 /* : Bool */;
961 static val* varonce;
962 val* var9 /* : String */;
963 char* var10 /* : NativeString */;
964 long var11 /* : Int */;
965 val* var12 /* : String */;
966 val* var13 /* : nullable ANode */;
967 val* var14 /* : Location */;
968 val* var15 /* : nullable SourceFile */;
969 val* var16 /* : String */;
970 val* var17 /* : String */;
971 static val* varonce18;
972 val* var19 /* : String */;
973 char* var20 /* : NativeString */;
974 long var21 /* : Int */;
975 val* var22 /* : String */;
976 val* var23 /* : nullable ANode */;
977 val* var24 /* : Location */;
978 long var25 /* : Int */;
979 static val* varonce26;
980 val* var27 /* : String */;
981 char* var28 /* : NativeString */;
982 long var29 /* : Int */;
983 val* var30 /* : String */;
984 val* var31 /* : Array[Object] */;
985 long var32 /* : Int */;
986 val* var33 /* : NativeArray[Object] */;
987 val* var34 /* : Object */;
988 val* var35 /* : String */;
989 static val* varonce36;
990 val* var37 /* : String */;
991 char* var38 /* : NativeString */;
992 long var39 /* : Int */;
993 val* var40 /* : String */;
994 static val* varonce41;
995 val* var42 /* : String */;
996 char* var43 /* : NativeString */;
997 long var44 /* : Int */;
998 val* var45 /* : String */;
999 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
1000 var2 = NULL;
1001 if (var1 == NULL) {
1002 var3 = 0; /* is null */
1003 } else {
1004 var3 = 1; /* arg is null and recv is not */
1005 }
1006 var_ = var3;
1007 if (var3){
1008 var4 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
1009 if (var4 == NULL) {
1010 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1011 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1015);
1012 show_backtrace(1);
1013 } else {
1014 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_parser_nodes__ANode__location]))(var4) /* location on <var4:nullable ANode>*/;
1015 }
1016 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_location__Location__file]))(var5) /* file on <var5:Location>*/;
1017 var7 = NULL;
1018 if (var6 == NULL) {
1019 var8 = 0; /* is null */
1020 } else {
1021 var8 = 1; /* arg is null and recv is not */
1022 }
1023 var = var8;
1024 } else {
1025 var = var_;
1026 }
1027 if (var){
1028 if (varonce) {
1029 var9 = varonce;
1030 } else {
1031 var10 = "fprintf(stderr, \" (%s:%d)\\n\", \"";
1032 var11 = 31;
1033 var12 = string__NativeString__to_s_with_length(var10, var11);
1034 var9 = var12;
1035 varonce = var9;
1036 }
1037 var13 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
1038 if (var13 == NULL) {
1039 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1040 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1016);
1041 show_backtrace(1);
1042 } else {
1043 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_parser_nodes__ANode__location]))(var13) /* location on <var13:nullable ANode>*/;
1044 }
1045 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_location__Location__file]))(var14) /* file on <var14:Location>*/;
1046 if (var15 == NULL) {
1047 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1048 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1016);
1049 show_backtrace(1);
1050 } else {
1051 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_location__SourceFile__filename]))(var15) /* filename on <var15:nullable SourceFile>*/;
1052 }
1053 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_string__AbstractString__escape_to_c]))(var16) /* escape_to_c on <var16:String>*/;
1054 if (varonce18) {
1055 var19 = varonce18;
1056 } else {
1057 var20 = "\", ";
1058 var21 = 3;
1059 var22 = string__NativeString__to_s_with_length(var20, var21);
1060 var19 = var22;
1061 varonce18 = var19;
1062 }
1063 var23 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
1064 if (var23 == NULL) {
1065 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1066 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1016);
1067 show_backtrace(1);
1068 } else {
1069 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_parser_nodes__ANode__location]))(var23) /* location on <var23:nullable ANode>*/;
1070 }
1071 var25 = ((long (*)(val*))(var24->class->vft[COLOR_location__Location__line_start]))(var24) /* line_start on <var24:Location>*/;
1072 if (varonce26) {
1073 var27 = varonce26;
1074 } else {
1075 var28 = ");";
1076 var29 = 2;
1077 var30 = string__NativeString__to_s_with_length(var28, var29);
1078 var27 = var30;
1079 varonce26 = var27;
1080 }
1081 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
1082 { /* var31 = array_instance Array[Object] */
1083 var32 = 5;
1084 var33 = NEW_array__NativeArray(var32, &type_array__NativeArraykernel__Object);
1085 ((struct instance_array__NativeArray*)var33)->values[0] = (val*) var9;
1086 ((struct instance_array__NativeArray*)var33)->values[1] = (val*) var17;
1087 ((struct instance_array__NativeArray*)var33)->values[2] = (val*) var19;
1088 var34 = BOX_kernel__Int(var25); /* autobox from Int to Object */
1089 ((struct instance_array__NativeArray*)var33)->values[3] = (val*) var34;
1090 ((struct instance_array__NativeArray*)var33)->values[4] = (val*) var27;
1091 ((void (*)(val*, val*, long))(var31->class->vft[COLOR_array__Array__with_native]))(var31, var33, var32) /* with_native on <var31:Array[Object]>*/;
1092 }
1093 var35 = ((val* (*)(val*))(var31->class->vft[COLOR_string__Object__to_s]))(var31) /* to_s on <var31:Array[Object]>*/;
1094 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var35) /* add on <self:AbstractCompilerVisitor>*/;
1095 } else {
1096 if (varonce36) {
1097 var37 = varonce36;
1098 } else {
1099 var38 = "fprintf(stderr, \"\\n\");";
1100 var39 = 22;
1101 var40 = string__NativeString__to_s_with_length(var38, var39);
1102 var37 = var40;
1103 varonce36 = var37;
1104 }
1105 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var37) /* add on <self:AbstractCompilerVisitor>*/;
1106 }
1107 if (varonce41) {
1108 var42 = varonce41;
1109 } else {
1110 var43 = "show_backtrace(1);";
1111 var44 = 18;
1112 var45 = string__NativeString__to_s_with_length(var43, var44);
1113 var42 = var45;
1114 varonce41 = var42;
1115 }
1116 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var42) /* add on <self:AbstractCompilerVisitor>*/;
1117 RET_LABEL:;
1118 }
1119 /* method abstract_compiler#AbstractCompilerVisitor#add_raw_abort for (self: Object) */
1120 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_raw_abort(val* self) {
1121 abstract_compiler__AbstractCompilerVisitor__add_raw_abort(self);
1122 RET_LABEL:;
1123 }
1124 /* method abstract_compiler#AbstractCompilerVisitor#add_cast for (self: AbstractCompilerVisitor, RuntimeVariable, MType, String) */
1125 void abstract_compiler__AbstractCompilerVisitor__add_cast(val* self, val* p0, val* p1, val* p2) {
1126 val* var_value /* var value: RuntimeVariable */;
1127 val* var_mtype /* var mtype: MType */;
1128 val* var_tag /* var tag: String */;
1129 val* var /* : RuntimeVariable */;
1130 val* var_res /* var res: RuntimeVariable */;
1131 static val* varonce;
1132 val* var1 /* : String */;
1133 char* var2 /* : NativeString */;
1134 long var3 /* : Int */;
1135 val* var4 /* : String */;
1136 static val* varonce5;
1137 val* var6 /* : String */;
1138 char* var7 /* : NativeString */;
1139 long var8 /* : Int */;
1140 val* var9 /* : String */;
1141 val* var10 /* : Array[Object] */;
1142 long var11 /* : Int */;
1143 val* var12 /* : NativeArray[Object] */;
1144 val* var13 /* : String */;
1145 val* var14 /* : String */;
1146 val* var_cn /* var cn: String */;
1147 static val* varonce15;
1148 val* var16 /* : String */;
1149 char* var17 /* : NativeString */;
1150 long var18 /* : Int */;
1151 val* var19 /* : String */;
1152 val* var20 /* : String */;
1153 val* var21 /* : String */;
1154 static val* varonce22;
1155 val* var23 /* : String */;
1156 char* var24 /* : NativeString */;
1157 long var25 /* : Int */;
1158 val* var26 /* : String */;
1159 static val* varonce27;
1160 val* var28 /* : String */;
1161 char* var29 /* : NativeString */;
1162 long var30 /* : Int */;
1163 val* var31 /* : String */;
1164 val* var32 /* : Array[Object] */;
1165 long var33 /* : Int */;
1166 val* var34 /* : NativeArray[Object] */;
1167 val* var35 /* : String */;
1168 static val* varonce36;
1169 val* var37 /* : String */;
1170 char* var38 /* : NativeString */;
1171 long var39 /* : Int */;
1172 val* var40 /* : String */;
1173 var_value = p0;
1174 var_mtype = p1;
1175 var_tag = p2;
1176 var = ((val* (*)(val*, val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__type_test]))(self, var_value, var_mtype, var_tag) /* type_test on <self:AbstractCompilerVisitor>*/;
1177 var_res = var;
1178 if (varonce) {
1179 var1 = varonce;
1180 } else {
1181 var2 = "if (!";
1182 var3 = 5;
1183 var4 = string__NativeString__to_s_with_length(var2, var3);
1184 var1 = var4;
1185 varonce = var1;
1186 }
1187 if (varonce5) {
1188 var6 = varonce5;
1189 } else {
1190 var7 = ") {";
1191 var8 = 3;
1192 var9 = string__NativeString__to_s_with_length(var7, var8);
1193 var6 = var9;
1194 varonce5 = var6;
1195 }
1196 var10 = NEW_array__Array(&type_array__Arraykernel__Object);
1197 { /* var10 = array_instance Array[Object] */
1198 var11 = 3;
1199 var12 = NEW_array__NativeArray(var11, &type_array__NativeArraykernel__Object);
1200 ((struct instance_array__NativeArray*)var12)->values[0] = (val*) var1;
1201 ((struct instance_array__NativeArray*)var12)->values[1] = (val*) var_res;
1202 ((struct instance_array__NativeArray*)var12)->values[2] = (val*) var6;
1203 ((void (*)(val*, val*, long))(var10->class->vft[COLOR_array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
1204 }
1205 var13 = ((val* (*)(val*))(var10->class->vft[COLOR_string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
1206 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var13) /* add on <self:AbstractCompilerVisitor>*/;
1207 var14 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(self, var_value) /* class_name_string on <self:AbstractCompilerVisitor>*/;
1208 var_cn = var14;
1209 if (varonce15) {
1210 var16 = varonce15;
1211 } else {
1212 var17 = "fprintf(stderr, \"Runtime error: Cast failed. Expected `%s`, got `%s`\", \"";
1213 var18 = 72;
1214 var19 = string__NativeString__to_s_with_length(var17, var18);
1215 var16 = var19;
1216 varonce15 = var16;
1217 }
1218 var20 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_string__Object__to_s]))(var_mtype) /* to_s on <var_mtype:MType>*/;
1219 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_string__AbstractString__escape_to_c]))(var20) /* escape_to_c on <var20:String>*/;
1220 if (varonce22) {
1221 var23 = varonce22;
1222 } else {
1223 var24 = "\", ";
1224 var25 = 3;
1225 var26 = string__NativeString__to_s_with_length(var24, var25);
1226 var23 = var26;
1227 varonce22 = var23;
1228 }
1229 if (varonce27) {
1230 var28 = varonce27;
1231 } else {
1232 var29 = ");";
1233 var30 = 2;
1234 var31 = string__NativeString__to_s_with_length(var29, var30);
1235 var28 = var31;
1236 varonce27 = var28;
1237 }
1238 var32 = NEW_array__Array(&type_array__Arraykernel__Object);
1239 { /* var32 = array_instance Array[Object] */
1240 var33 = 5;
1241 var34 = NEW_array__NativeArray(var33, &type_array__NativeArraykernel__Object);
1242 ((struct instance_array__NativeArray*)var34)->values[0] = (val*) var16;
1243 ((struct instance_array__NativeArray*)var34)->values[1] = (val*) var21;
1244 ((struct instance_array__NativeArray*)var34)->values[2] = (val*) var23;
1245 ((struct instance_array__NativeArray*)var34)->values[3] = (val*) var_cn;
1246 ((struct instance_array__NativeArray*)var34)->values[4] = (val*) var28;
1247 ((void (*)(val*, val*, long))(var32->class->vft[COLOR_array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
1248 }
1249 var35 = ((val* (*)(val*))(var32->class->vft[COLOR_string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
1250 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var35) /* add on <self:AbstractCompilerVisitor>*/;
1251 ((void (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_raw_abort]))(self) /* add_raw_abort on <self:AbstractCompilerVisitor>*/;
1252 if (varonce36) {
1253 var37 = varonce36;
1254 } else {
1255 var38 = "}";
1256 var39 = 1;
1257 var40 = string__NativeString__to_s_with_length(var38, var39);
1258 var37 = var40;
1259 varonce36 = var37;
1260 }
1261 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var37) /* add on <self:AbstractCompilerVisitor>*/;
1262 RET_LABEL:;
1263 }
1264 /* method abstract_compiler#AbstractCompilerVisitor#add_cast for (self: Object, RuntimeVariable, MType, String) */
1265 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__add_cast(val* self, val* p0, val* p1, val* p2) {
1266 abstract_compiler__AbstractCompilerVisitor__add_cast(self, p0, p1, p2);
1267 RET_LABEL:;
1268 }
1269 /* method abstract_compiler#AbstractCompilerVisitor#ret for (self: AbstractCompilerVisitor, RuntimeVariable) */
1270 void abstract_compiler__AbstractCompilerVisitor__ret(val* self, val* p0) {
1271 val* var_s /* var s: RuntimeVariable */;
1272 val* var /* : nullable Frame */;
1273 val* var1 /* : nullable RuntimeVariable */;
1274 static val* varonce;
1275 val* var2 /* : String */;
1276 char* var3 /* : NativeString */;
1277 long var4 /* : Int */;
1278 val* var5 /* : String */;
1279 val* var6 /* : nullable Frame */;
1280 val* var7 /* : nullable String */;
1281 static val* varonce8;
1282 val* var9 /* : String */;
1283 char* var10 /* : NativeString */;
1284 long var11 /* : Int */;
1285 val* var12 /* : String */;
1286 val* var13 /* : Array[Object] */;
1287 long var14 /* : Int */;
1288 val* var15 /* : NativeArray[Object] */;
1289 val* var16 /* : String */;
1290 var_s = p0;
1291 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(self) /* frame on <self:AbstractCompilerVisitor>*/;
1292 if (var == NULL) {
1293 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1294 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1037);
1295 show_backtrace(1);
1296 } else {
1297 var1 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_compiler__Frame__returnvar]))(var) /* returnvar on <var:nullable Frame>*/;
1298 }
1299 if (var1 == NULL) {
1300 fprintf(stderr, "Runtime error: %s", "Cast failed");
1301 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1037);
1302 show_backtrace(1);
1303 }
1304 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(self, var1, var_s) /* assign on <self:AbstractCompilerVisitor>*/;
1305 if (varonce) {
1306 var2 = varonce;
1307 } else {
1308 var3 = "goto ";
1309 var4 = 5;
1310 var5 = string__NativeString__to_s_with_length(var3, var4);
1311 var2 = var5;
1312 varonce = var2;
1313 }
1314 var6 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(self) /* frame on <self:AbstractCompilerVisitor>*/;
1315 if (var6 == NULL) {
1316 fprintf(stderr, "Runtime error: %s", "Reciever is null");
1317 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1038);
1318 show_backtrace(1);
1319 } else {
1320 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_compiler__Frame__returnlabel]))(var6) /* returnlabel on <var6:nullable Frame>*/;
1321 }
1322 if (var7 == NULL) {
1323 fprintf(stderr, "Runtime error: %s", "Cast failed");
1324 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1038);
1325 show_backtrace(1);
1326 }
1327 if (varonce8) {
1328 var9 = varonce8;
1329 } else {
1330 var10 = ";";
1331 var11 = 1;
1332 var12 = string__NativeString__to_s_with_length(var10, var11);
1333 var9 = var12;
1334 varonce8 = var9;
1335 }
1336 var13 = NEW_array__Array(&type_array__Arraykernel__Object);
1337 { /* var13 = array_instance Array[Object] */
1338 var14 = 3;
1339 var15 = NEW_array__NativeArray(var14, &type_array__NativeArraykernel__Object);
1340 ((struct instance_array__NativeArray*)var15)->values[0] = (val*) var2;
1341 ((struct instance_array__NativeArray*)var15)->values[1] = (val*) var7;
1342 ((struct instance_array__NativeArray*)var15)->values[2] = (val*) var9;
1343 ((void (*)(val*, val*, long))(var13->class->vft[COLOR_array__Array__with_native]))(var13, var15, var14) /* with_native on <var13:Array[Object]>*/;
1344 }
1345 var16 = ((val* (*)(val*))(var13->class->vft[COLOR_string__Object__to_s]))(var13) /* to_s on <var13:Array[Object]>*/;
1346 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var16) /* add on <self:AbstractCompilerVisitor>*/;
1347 RET_LABEL:;
1348 }
1349 /* method abstract_compiler#AbstractCompilerVisitor#ret for (self: Object, RuntimeVariable) */
1350 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__ret(val* self, val* p0) {
1351 abstract_compiler__AbstractCompilerVisitor__ret(self, p0);
1352 RET_LABEL:;
1353 }
1354 /* method abstract_compiler#AbstractCompilerVisitor#stmt for (self: AbstractCompilerVisitor, nullable AExpr) */
1355 void abstract_compiler__AbstractCompilerVisitor__stmt(val* self, val* p0) {
1356 val* var_nexpr /* var nexpr: nullable AExpr */;
1357 val* var /* : null */;
1358 short int var1 /* : Bool */;
1359 val* var2 /* : nullable ANode */;
1360 val* var_old /* var old: nullable ANode */;
1361 var_nexpr = p0;
1362 var = NULL;
1363 if (var_nexpr == NULL) {
1364 var1 = 1; /* is null */
1365 } else {
1366 var1 = 0; /* arg is null but recv is not */
1367 }
1368 if (var1){
1369 goto RET_LABEL;
1370 } else {
1371 }
1372 var2 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
1373 var_old = var2;
1374 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(self, var_nexpr) /* current_node= on <self:AbstractCompilerVisitor>*/;
1375 ((void (*)(val*, val*))(var_nexpr->class->vft[COLOR_abstract_compiler__AExpr__stmt]))(var_nexpr, self) /* stmt on <var_nexpr:nullable AExpr(AExpr)>*/;
1376 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(self, var_old) /* current_node= on <self:AbstractCompilerVisitor>*/;
1377 RET_LABEL:;
1378 }
1379 /* method abstract_compiler#AbstractCompilerVisitor#stmt for (self: Object, nullable AExpr) */
1380 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__stmt(val* self, val* p0) {
1381 abstract_compiler__AbstractCompilerVisitor__stmt(self, p0);
1382 RET_LABEL:;
1383 }
1384 /* method abstract_compiler#AbstractCompilerVisitor#expr for (self: AbstractCompilerVisitor, AExpr, nullable MType): RuntimeVariable */
1385 val* abstract_compiler__AbstractCompilerVisitor__expr(val* self, val* p0, val* p1) {
1386 val* var /* : RuntimeVariable */;
1387 val* var_nexpr /* var nexpr: AExpr */;
1388 val* var_mtype /* var mtype: nullable MType */;
1389 val* var1 /* : nullable ANode */;
1390 val* var_old /* var old: nullable ANode */;
1391 val* var2 /* : nullable RuntimeVariable */;
1392 val* var_res /* var res: RuntimeVariable */;
1393 val* var3 /* : null */;
1394 short int var4 /* : Bool */;
1395 val* var5 /* : MType */;
1396 val* var6 /* : RuntimeVariable */;
1397 val* var7 /* : nullable MType */;
1398 val* var8 /* : RuntimeVariable */;
1399 val* var9 /* : nullable MType */;
1400 val* var_implicit_cast_to /* var implicit_cast_to: nullable MType */;
1401 short int var10 /* : Bool */;
1402 val* var11 /* : null */;
1403 short int var12 /* : Bool */;
1404 short int var_ /* var : Bool */;
1405 val* var13 /* : AbstractCompiler */;
1406 val* var14 /* : ModelBuilder */;
1407 val* var15 /* : ToolContext */;
1408 val* var16 /* : OptionBool */;
1409 val* var17 /* : nullable Object */;
1410 short int var18 /* : Bool */;
1411 short int var19 /* : Bool */;
1412 static val* varonce;
1413 val* var20 /* : String */;
1414 char* var21 /* : NativeString */;
1415 long var22 /* : Int */;
1416 val* var23 /* : String */;
1417 val* var24 /* : RuntimeVariable */;
1418 var_nexpr = p0;
1419 var_mtype = p1;
1420 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
1421 var_old = var1;
1422 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(self, var_nexpr) /* current_node= on <self:AbstractCompilerVisitor>*/;
1423 var2 = ((val* (*)(val*, val*))(var_nexpr->class->vft[COLOR_abstract_compiler__AExpr__expr]))(var_nexpr, self) /* expr on <var_nexpr:AExpr>*/;
1424 if (var2 == NULL) {
1425 fprintf(stderr, "Runtime error: %s", "Cast failed");
1426 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1057);
1427 show_backtrace(1);
1428 }
1429 var_res = var2;
1430 var3 = NULL;
1431 if (var_mtype == NULL) {
1432 var4 = 0; /* is null */
1433 } else {
1434 var4 = 1; /* arg is null and recv is not */
1435 }
1436 if (var4){
1437 var5 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__anchor]))(self, var_mtype) /* anchor on <self:AbstractCompilerVisitor>*/;
1438 var_mtype = var5;
1439 var6 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__autobox]))(self, var_res, var_mtype) /* autobox on <self:AbstractCompilerVisitor>*/;
1440 var_res = var6;
1441 } else {
1442 }
1443 var7 = ((val* (*)(val*))(var_nexpr->class->vft[COLOR_typing__AExpr__mtype]))(var_nexpr) /* mtype on <var_nexpr:AExpr>*/;
1444 if (var7 == NULL) {
1445 fprintf(stderr, "Runtime error: %s", "Cast failed");
1446 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1062);
1447 show_backtrace(1);
1448 }
1449 var8 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt]))(self, var_res, var7) /* autoadapt on <self:AbstractCompilerVisitor>*/;
1450 var_res = var8;
1451 var9 = ((val* (*)(val*))(var_nexpr->class->vft[COLOR_typing__AExpr__implicit_cast_to]))(var_nexpr) /* implicit_cast_to on <var_nexpr:AExpr>*/;
1452 var_implicit_cast_to = var9;
1453 var11 = NULL;
1454 if (var_implicit_cast_to == NULL) {
1455 var12 = 0; /* is null */
1456 } else {
1457 var12 = 1; /* arg is null and recv is not */
1458 }
1459 var_ = var12;
1460 if (var12){
1461 var13 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(self) /* compiler on <self:AbstractCompilerVisitor>*/;
1462 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var13) /* modelbuilder on <var13:AbstractCompiler>*/;
1463 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var14) /* toolcontext on <var14:ModelBuilder>*/;
1464 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_check_autocast]))(var15) /* opt_no_check_autocast on <var15:ToolContext>*/;
1465 var17 = ((val* (*)(val*))(var16->class->vft[COLOR_opts__Option__value]))(var16) /* value on <var16:OptionBool>*/;
1466 var18 = ((struct instance_kernel__Bool*)var17)->value; /* autounbox from nullable Object to Bool */;
1467 var19 = !var18;
1468 var10 = var19;
1469 } else {
1470 var10 = var_;
1471 }
1472 if (var10){
1473 if (varonce) {
1474 var20 = varonce;
1475 } else {
1476 var21 = "auto";
1477 var22 = 4;
1478 var23 = string__NativeString__to_s_with_length(var21, var22);
1479 var20 = var23;
1480 varonce = var20;
1481 }
1482 ((void (*)(val*, val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_cast]))(self, var_res, var_implicit_cast_to, var20) /* add_cast on <self:AbstractCompilerVisitor>*/;
1483 var24 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__autoadapt]))(self, var_res, var_implicit_cast_to) /* autoadapt on <self:AbstractCompilerVisitor>*/;
1484 var_res = var24;
1485 } else {
1486 }
1487 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(self, var_old) /* current_node= on <self:AbstractCompilerVisitor>*/;
1488 var = var_res;
1489 goto RET_LABEL;
1490 RET_LABEL:;
1491 return var;
1492 }
1493 /* method abstract_compiler#AbstractCompilerVisitor#expr for (self: Object, AExpr, nullable MType): RuntimeVariable */
1494 val* VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr(val* self, val* p0, val* p1) {
1495 val* var /* : RuntimeVariable */;
1496 val* var1 /* : RuntimeVariable */;
1497 var1 = abstract_compiler__AbstractCompilerVisitor__expr(self, p0, p1);
1498 var = var1;
1499 RET_LABEL:;
1500 return var;
1501 }
1502 /* method abstract_compiler#AbstractCompilerVisitor#expr_bool for (self: AbstractCompilerVisitor, AExpr): RuntimeVariable */
1503 val* abstract_compiler__AbstractCompilerVisitor__expr_bool(val* self, val* p0) {
1504 val* var /* : RuntimeVariable */;
1505 val* var_nexpr /* var nexpr: AExpr */;
1506 val* var1 /* : MClassType */;
1507 val* var2 /* : RuntimeVariable */;
1508 var_nexpr = p0;
1509 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__bool_type]))(self) /* bool_type on <self:AbstractCompilerVisitor>*/;
1510 var2 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(self, var_nexpr, var1) /* expr on <self:AbstractCompilerVisitor>*/;
1511 var = var2;
1512 goto RET_LABEL;
1513 RET_LABEL:;
1514 return var;
1515 }
1516 /* method abstract_compiler#AbstractCompilerVisitor#expr_bool for (self: Object, AExpr): RuntimeVariable */
1517 val* VIRTUAL_abstract_compiler__AbstractCompilerVisitor__expr_bool(val* self, val* p0) {
1518 val* var /* : RuntimeVariable */;
1519 val* var1 /* : RuntimeVariable */;
1520 var1 = abstract_compiler__AbstractCompilerVisitor__expr_bool(self, p0);
1521 var = var1;
1522 RET_LABEL:;
1523 return var;
1524 }
1525 /* method abstract_compiler#AbstractCompilerVisitor#debug for (self: AbstractCompilerVisitor, String) */
1526 void abstract_compiler__AbstractCompilerVisitor__debug(val* self, val* p0) {
1527 val* var_message /* var message: String */;
1528 val* var /* : nullable ANode */;
1529 val* var_node /* var node: nullable ANode */;
1530 val* var1 /* : null */;
1531 short int var2 /* : Bool */;
1532 static val* varonce;
1533 val* var3 /* : String */;
1534 char* var4 /* : NativeString */;
1535 long var5 /* : Int */;
1536 val* var6 /* : String */;
1537 val* var7 /* : Array[Object] */;
1538 long var8 /* : Int */;
1539 val* var9 /* : NativeArray[Object] */;
1540 val* var10 /* : String */;
1541 static val* varonce11;
1542 val* var12 /* : String */;
1543 char* var13 /* : NativeString */;
1544 long var14 /* : Int */;
1545 val* var15 /* : String */;
1546 static val* varonce16;
1547 val* var17 /* : String */;
1548 char* var18 /* : NativeString */;
1549 long var19 /* : Int */;
1550 val* var20 /* : String */;
1551 val* var21 /* : Array[Object] */;
1552 long var22 /* : Int */;
1553 val* var23 /* : NativeArray[Object] */;
1554 val* var24 /* : String */;
1555 var_message = p0;
1556 var = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(self) /* current_node on <self:AbstractCompilerVisitor>*/;
1557 var_node = var;
1558 var1 = NULL;
1559 if (var_node == NULL) {
1560 var2 = 1; /* is null */
1561 } else {
1562 var2 = 0; /* arg is null but recv is not */
1563 }
1564 if (var2){
1565 if (varonce) {
1566 var3 = varonce;
1567 } else {
1568 var4 = "?: ";
1569 var5 = 3;
1570 var6 = string__NativeString__to_s_with_length(var4, var5);
1571 var3 = var6;
1572 varonce = var3;
1573 }
1574 var7 = NEW_array__Array(&type_array__Arraykernel__Object);
1575 { /* var7 = array_instance Array[Object] */
1576 var8 = 2;
1577 var9 = NEW_array__NativeArray(var8, &type_array__NativeArraykernel__Object);
1578 ((struct instance_array__NativeArray*)var9)->values[0] = (val*) var3;
1579 ((struct instance_array__NativeArray*)var9)->values[1] = (val*) var_message;
1580 ((void (*)(val*, val*, long))(var7->class->vft[COLOR_array__Array__with_native]))(var7, var9, var8) /* with_native on <var7:Array[Object]>*/;
1581 }
1582 var10 = ((val* (*)(val*))(var7->class->vft[COLOR_string__Object__to_s]))(var7) /* to_s on <var7:Array[Object]>*/;
1583 ((void (*)(val*, val*))(self->class->vft[COLOR_file__Object__print]))(self, var10) /* print on <self:AbstractCompilerVisitor>*/;
1584 } else {
1585 ((void (*)(val*, val*))(var_node->class->vft[COLOR_parser_nodes__ANode__debug]))(var_node, var_message) /* debug on <var_node:nullable ANode(ANode)>*/;
1586 }
1587 if (varonce11) {
1588 var12 = varonce11;
1589 } else {
1590 var13 = "/* DEBUG: ";
1591 var14 = 10;
1592 var15 = string__NativeString__to_s_with_length(var13, var14);
1593 var12 = var15;
1594 varonce11 = var12;
1595 }
1596 if (varonce16) {
1597 var17 = varonce16;
1598 } else {
1599 var18 = " */";
1600 var19 = 3;
1601 var20 = string__NativeString__to_s_with_length(var18, var19);
1602 var17 = var20;
1603 varonce16 = var17;
1604 }
1605 var21 = NEW_array__Array(&type_array__Arraykernel__Object);
1606 { /* var21 = array_instance Array[Object] */
1607 var22 = 3;
1608 var23 = NEW_array__NativeArray(var22, &type_array__NativeArraykernel__Object);
1609 ((struct instance_array__NativeArray*)var23)->values[0] = (val*) var12;
1610 ((struct instance_array__NativeArray*)var23)->values[1] = (val*) var_message;
1611 ((struct instance_array__NativeArray*)var23)->values[2] = (val*) var17;
1612 ((void (*)(val*, val*, long))(var21->class->vft[COLOR_array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[Object]>*/;
1613 }
1614 var24 = ((val* (*)(val*))(var21->class->vft[COLOR_string__Object__to_s]))(var21) /* to_s on <var21:Array[Object]>*/;
1615 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(self, var24) /* add on <self:AbstractCompilerVisitor>*/;
1616 RET_LABEL:;
1617 }
1618 /* method abstract_compiler#AbstractCompilerVisitor#debug for (self: Object, String) */
1619 void VIRTUAL_abstract_compiler__AbstractCompilerVisitor__debug(val* self, val* p0) {
1620 abstract_compiler__AbstractCompilerVisitor__debug(self, p0);
1621 RET_LABEL:;
1622 }
1623 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef for (self: AbstractRuntimeFunction): MMethodDef */
1624 val* abstract_compiler__AbstractRuntimeFunction__mmethoddef(val* self) {
1625 val* var /* : MMethodDef */;
1626 val* var1 /* : MMethodDef */;
1627 var1 = self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val; /* @mmethoddef on <self:AbstractRuntimeFunction> */
1628 if (var1 == NULL) {
1629 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mmethoddef");
1630 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1095);
1631 show_backtrace(1);
1632 }
1633 var = var1;
1634 RET_LABEL:;
1635 return var;
1636 }
1637 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef for (self: Object): MMethodDef */
1638 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef(val* self) {
1639 val* var /* : MMethodDef */;
1640 val* var1 /* : MMethodDef */;
1641 var1 = abstract_compiler__AbstractRuntimeFunction__mmethoddef(self);
1642 var = var1;
1643 RET_LABEL:;
1644 return var;
1645 }
1646 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef= for (self: AbstractRuntimeFunction, MMethodDef) */
1647 void abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d(val* self, val* p0) {
1648 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val = p0; /* @mmethoddef on <self:AbstractRuntimeFunction> */
1649 RET_LABEL:;
1650 }
1651 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef= for (self: Object, MMethodDef) */
1652 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d(val* self, val* p0) {
1653 abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d(self, p0);
1654 RET_LABEL:;
1655 }
1656 /* method abstract_compiler#AbstractRuntimeFunction#c_name for (self: AbstractRuntimeFunction): String */
1657 val* abstract_compiler__AbstractRuntimeFunction__c_name(val* self) {
1658 val* var /* : String */;
1659 val* var1 /* : nullable String */;
1660 val* var_res /* var res: nullable String */;
1661 val* var2 /* : null */;
1662 short int var3 /* : Bool */;
1663 val* var4 /* : String */;
1664 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name_cache]))(self) /* c_name_cache on <self:AbstractRuntimeFunction>*/;
1665 var_res = var1;
1666 var2 = NULL;
1667 if (var_res == NULL) {
1668 var3 = 0; /* is null */
1669 } else {
1670 var3 = 1; /* arg is null and recv is not */
1671 }
1672 if (var3){
1673 var = var_res;
1674 goto RET_LABEL;
1675 } else {
1676 }
1677 var4 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__build_c_name]))(self) /* build_c_name on <self:AbstractRuntimeFunction>*/;
1678 var_res = var4;
1679 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:AbstractRuntimeFunction>*/;
1680 var = var_res;
1681 goto RET_LABEL;
1682 RET_LABEL:;
1683 return var;
1684 }
1685 /* method abstract_compiler#AbstractRuntimeFunction#c_name for (self: Object): String */
1686 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name(val* self) {
1687 val* var /* : String */;
1688 val* var1 /* : String */;
1689 var1 = abstract_compiler__AbstractRuntimeFunction__c_name(self);
1690 var = var1;
1691 RET_LABEL:;
1692 return var;
1693 }
1694 /* method abstract_compiler#AbstractRuntimeFunction#build_c_name for (self: AbstractRuntimeFunction): String */
1695 val* abstract_compiler__AbstractRuntimeFunction__build_c_name(val* self) {
1696 val* var /* : String */;
1697 const char* var_class_name;
1698 var_class_name = self == NULL ? "null" : self->type->name;
1699 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "build_c_name", var_class_name);
1700 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1109);
1701 show_backtrace(1);
1702 RET_LABEL:;
1703 return var;
1704 }
1705 /* method abstract_compiler#AbstractRuntimeFunction#build_c_name for (self: Object): String */
1706 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__build_c_name(val* self) {
1707 val* var /* : String */;
1708 val* var1 /* : String */;
1709 var1 = abstract_compiler__AbstractRuntimeFunction__build_c_name(self);
1710 var = var1;
1711 RET_LABEL:;
1712 return var;
1713 }
1714 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache for (self: AbstractRuntimeFunction): nullable String */
1715 val* abstract_compiler__AbstractRuntimeFunction__c_name_cache(val* self) {
1716 val* var /* : nullable String */;
1717 val* var1 /* : nullable String */;
1718 var1 = self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dc_name_cache].val; /* @c_name_cache on <self:AbstractRuntimeFunction> */
1719 var = var1;
1720 RET_LABEL:;
1721 return var;
1722 }
1723 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache for (self: Object): nullable String */
1724 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name_cache(val* self) {
1725 val* var /* : nullable String */;
1726 val* var1 /* : nullable String */;
1727 var1 = abstract_compiler__AbstractRuntimeFunction__c_name_cache(self);
1728 var = var1;
1729 RET_LABEL:;
1730 return var;
1731 }
1732 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache= for (self: AbstractRuntimeFunction, nullable String) */
1733 void abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d(val* self, val* p0) {
1734 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dc_name_cache].val = p0; /* @c_name_cache on <self:AbstractRuntimeFunction> */
1735 RET_LABEL:;
1736 }
1737 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache= for (self: Object, nullable String) */
1738 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d(val* self, val* p0) {
1739 abstract_compiler__AbstractRuntimeFunction__c_name_cache_61d(self, p0);
1740 RET_LABEL:;
1741 }
1742 /* method abstract_compiler#AbstractRuntimeFunction#call for (self: AbstractRuntimeFunction, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
1743 val* abstract_compiler__AbstractRuntimeFunction__call(val* self, val* p0, val* p1) {
1744 val* var /* : nullable RuntimeVariable */;
1745 short int var1 /* : Bool */;
1746 int cltype;
1747 int idtype;
1748 const struct type* type_struct;
1749 const char* var_class_name;
1750 const char* var_class_name2;
1751 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
1752 /* <p0:AbstractCompilerVisitor> isa VISITOR */
1753 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__AbstractRuntimeFunction_VTVISITOR];
1754 cltype = type_struct->color;
1755 idtype = type_struct->id;
1756 if(cltype >= p0->type->table_size) {
1757 var1 = 0;
1758 } else {
1759 var1 = p0->type->type_table[cltype] == idtype;
1760 }
1761 if (!var1) {
1762 var_class_name = p0 == NULL ? "null" : p0->type->name;
1763 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
1764 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1114);
1765 show_backtrace(1);
1766 }
1767 var_class_name2 = self == NULL ? "null" : self->type->name;
1768 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "call", var_class_name2);
1769 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1114);
1770 show_backtrace(1);
1771 RET_LABEL:;
1772 return var;
1773 }
1774 /* method abstract_compiler#AbstractRuntimeFunction#call for (self: Object, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
1775 val* VIRTUAL_abstract_compiler__AbstractRuntimeFunction__call(val* self, val* p0, val* p1) {
1776 val* var /* : nullable RuntimeVariable */;
1777 val* var1 /* : nullable RuntimeVariable */;
1778 var1 = abstract_compiler__AbstractRuntimeFunction__call(self, p0, p1);
1779 var = var1;
1780 RET_LABEL:;
1781 return var;
1782 }
1783 /* method abstract_compiler#AbstractRuntimeFunction#compile_to_c for (self: AbstractRuntimeFunction, AbstractCompiler) */
1784 void abstract_compiler__AbstractRuntimeFunction__compile_to_c(val* self, val* p0) {
1785 short int var /* : Bool */;
1786 int cltype;
1787 int idtype;
1788 const struct type* type_struct;
1789 const char* var_class_name;
1790 const char* var_class_name1;
1791 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
1792 /* <p0:AbstractCompiler> isa COMPILER */
1793 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__AbstractRuntimeFunction_VTCOMPILER];
1794 cltype = type_struct->color;
1795 idtype = type_struct->id;
1796 if(cltype >= p0->type->table_size) {
1797 var = 0;
1798 } else {
1799 var = p0->type->type_table[cltype] == idtype;
1800 }
1801 if (!var) {
1802 var_class_name = p0 == NULL ? "null" : p0->type->name;
1803 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name);
1804 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1118);
1805 show_backtrace(1);
1806 }
1807 var_class_name1 = self == NULL ? "null" : self->type->name;
1808 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "compile_to_c", var_class_name1);
1809 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1118);
1810 show_backtrace(1);
1811 RET_LABEL:;
1812 }
1813 /* method abstract_compiler#AbstractRuntimeFunction#compile_to_c for (self: Object, AbstractCompiler) */
1814 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__compile_to_c(val* self, val* p0) {
1815 abstract_compiler__AbstractRuntimeFunction__compile_to_c(self, p0);
1816 RET_LABEL:;
1817 }
1818 /* method abstract_compiler#AbstractRuntimeFunction#init for (self: AbstractRuntimeFunction, MMethodDef) */
1819 void abstract_compiler__AbstractRuntimeFunction__init(val* self, val* p0) {
1820 self->attrs[COLOR_abstract_compiler__AbstractRuntimeFunction___64dmmethoddef].val = p0; /* @mmethoddef on <self:AbstractRuntimeFunction> */
1821 RET_LABEL:;
1822 }
1823 /* method abstract_compiler#AbstractRuntimeFunction#init for (self: Object, MMethodDef) */
1824 void VIRTUAL_abstract_compiler__AbstractRuntimeFunction__init(val* self, val* p0) {
1825 abstract_compiler__AbstractRuntimeFunction__init(self, p0);
1826 RET_LABEL:;
1827 }
1828 /* method abstract_compiler#RuntimeVariable#name for (self: RuntimeVariable): String */
1829 val* abstract_compiler__RuntimeVariable__name(val* self) {
1830 val* var /* : String */;
1831 val* var1 /* : String */;
1832 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dname].val; /* @name on <self:RuntimeVariable> */
1833 if (var1 == NULL) {
1834 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @name");
1835 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1128);
1836 show_backtrace(1);
1837 }
1838 var = var1;
1839 RET_LABEL:;
1840 return var;
1841 }
1842 /* method abstract_compiler#RuntimeVariable#name for (self: Object): String */
1843 val* VIRTUAL_abstract_compiler__RuntimeVariable__name(val* self) {
1844 val* var /* : String */;
1845 val* var1 /* : String */;
1846 var1 = abstract_compiler__RuntimeVariable__name(self);
1847 var = var1;
1848 RET_LABEL:;
1849 return var;
1850 }
1851 /* method abstract_compiler#RuntimeVariable#name= for (self: RuntimeVariable, String) */
1852 void abstract_compiler__RuntimeVariable__name_61d(val* self, val* p0) {
1853 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dname].val = p0; /* @name on <self:RuntimeVariable> */
1854 RET_LABEL:;
1855 }
1856 /* method abstract_compiler#RuntimeVariable#name= for (self: Object, String) */
1857 void VIRTUAL_abstract_compiler__RuntimeVariable__name_61d(val* self, val* p0) {
1858 abstract_compiler__RuntimeVariable__name_61d(self, p0);
1859 RET_LABEL:;
1860 }
1861 /* method abstract_compiler#RuntimeVariable#mtype for (self: RuntimeVariable): MType */
1862 val* abstract_compiler__RuntimeVariable__mtype(val* self) {
1863 val* var /* : MType */;
1864 val* var1 /* : MType */;
1865 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmtype].val; /* @mtype on <self:RuntimeVariable> */
1866 if (var1 == NULL) {
1867 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mtype");
1868 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1131);
1869 show_backtrace(1);
1870 }
1871 var = var1;
1872 RET_LABEL:;
1873 return var;
1874 }
1875 /* method abstract_compiler#RuntimeVariable#mtype for (self: Object): MType */
1876 val* VIRTUAL_abstract_compiler__RuntimeVariable__mtype(val* self) {
1877 val* var /* : MType */;
1878 val* var1 /* : MType */;
1879 var1 = abstract_compiler__RuntimeVariable__mtype(self);
1880 var = var1;
1881 RET_LABEL:;
1882 return var;
1883 }
1884 /* method abstract_compiler#RuntimeVariable#mtype= for (self: RuntimeVariable, MType) */
1885 void abstract_compiler__RuntimeVariable__mtype_61d(val* self, val* p0) {
1886 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmtype].val = p0; /* @mtype on <self:RuntimeVariable> */
1887 RET_LABEL:;
1888 }
1889 /* method abstract_compiler#RuntimeVariable#mtype= for (self: Object, MType) */
1890 void VIRTUAL_abstract_compiler__RuntimeVariable__mtype_61d(val* self, val* p0) {
1891 abstract_compiler__RuntimeVariable__mtype_61d(self, p0);
1892 RET_LABEL:;
1893 }
1894 /* method abstract_compiler#RuntimeVariable#mcasttype for (self: RuntimeVariable): MType */
1895 val* abstract_compiler__RuntimeVariable__mcasttype(val* self) {
1896 val* var /* : MType */;
1897 val* var1 /* : MType */;
1898 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmcasttype].val; /* @mcasttype on <self:RuntimeVariable> */
1899 if (var1 == NULL) {
1900 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mcasttype");
1901 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1134);
1902 show_backtrace(1);
1903 }
1904 var = var1;
1905 RET_LABEL:;
1906 return var;
1907 }
1908 /* method abstract_compiler#RuntimeVariable#mcasttype for (self: Object): MType */
1909 val* VIRTUAL_abstract_compiler__RuntimeVariable__mcasttype(val* self) {
1910 val* var /* : MType */;
1911 val* var1 /* : MType */;
1912 var1 = abstract_compiler__RuntimeVariable__mcasttype(self);
1913 var = var1;
1914 RET_LABEL:;
1915 return var;
1916 }
1917 /* method abstract_compiler#RuntimeVariable#mcasttype= for (self: RuntimeVariable, MType) */
1918 void abstract_compiler__RuntimeVariable__mcasttype_61d(val* self, val* p0) {
1919 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dmcasttype].val = p0; /* @mcasttype on <self:RuntimeVariable> */
1920 RET_LABEL:;
1921 }
1922 /* method abstract_compiler#RuntimeVariable#mcasttype= for (self: Object, MType) */
1923 void VIRTUAL_abstract_compiler__RuntimeVariable__mcasttype_61d(val* self, val* p0) {
1924 abstract_compiler__RuntimeVariable__mcasttype_61d(self, p0);
1925 RET_LABEL:;
1926 }
1927 /* method abstract_compiler#RuntimeVariable#is_exact for (self: RuntimeVariable): Bool */
1928 short int abstract_compiler__RuntimeVariable__is_exact(val* self) {
1929 short int var /* : Bool */;
1930 short int var1 /* : Bool */;
1931 var1 = self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dis_exact].s; /* @is_exact on <self:RuntimeVariable> */
1932 var = var1;
1933 RET_LABEL:;
1934 return var;
1935 }
1936 /* method abstract_compiler#RuntimeVariable#is_exact for (self: Object): Bool */
1937 short int VIRTUAL_abstract_compiler__RuntimeVariable__is_exact(val* self) {
1938 short int var /* : Bool */;
1939 short int var1 /* : Bool */;
1940 var1 = abstract_compiler__RuntimeVariable__is_exact(self);
1941 var = var1;
1942 RET_LABEL:;
1943 return var;
1944 }
1945 /* method abstract_compiler#RuntimeVariable#is_exact= for (self: RuntimeVariable, Bool) */
1946 void abstract_compiler__RuntimeVariable__is_exact_61d(val* self, short int p0) {
1947 self->attrs[COLOR_abstract_compiler__RuntimeVariable___64dis_exact].s = p0; /* @is_exact on <self:RuntimeVariable> */
1948 RET_LABEL:;
1949 }
1950 /* method abstract_compiler#RuntimeVariable#is_exact= for (self: Object, Bool) */
1951 void VIRTUAL_abstract_compiler__RuntimeVariable__is_exact_61d(val* self, short int p0) {
1952 abstract_compiler__RuntimeVariable__is_exact_61d(self, p0);
1953 RET_LABEL:;
1954 }
1955 /* method abstract_compiler#RuntimeVariable#init for (self: RuntimeVariable, String, MType, MType) */
1956 void abstract_compiler__RuntimeVariable__init(val* self, val* p0, val* p1, val* p2) {
1957 val* var_name /* var name: String */;
1958 val* var_mtype /* var mtype: MType */;
1959 val* var_mcasttype /* var mcasttype: MType */;
1960 short int var /* : Bool */;
1961 short int var1 /* : Bool */;
1962 short int var2 /* : Bool */;
1963 short int var3 /* : Bool */;
1964 var_name = p0;
1965 var_mtype = p1;
1966 var_mcasttype = p2;
1967 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__name_61d]))(self, var_name) /* name= on <self:RuntimeVariable>*/;
1968 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype_61d]))(self, var_mtype) /* mtype= on <self:RuntimeVariable>*/;
1969 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mcasttype_61d]))(self, var_mcasttype) /* mcasttype= on <self:RuntimeVariable>*/;
1970 var = ((short int (*)(val*))(var_mtype->class->vft[COLOR_model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
1971 var1 = !var;
1972 if (!var1) {
1973 fprintf(stderr, "Runtime error: %s", "Assert failed");
1974 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1146);
1975 show_backtrace(1);
1976 }
1977 var2 = ((short int (*)(val*))(var_mcasttype->class->vft[COLOR_model__MType__need_anchor]))(var_mcasttype) /* need_anchor on <var_mcasttype:MType>*/;
1978 var3 = !var2;
1979 if (!var3) {
1980 fprintf(stderr, "Runtime error: %s", "Assert failed");
1981 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1147);
1982 show_backtrace(1);
1983 }
1984 RET_LABEL:;
1985 }
1986 /* method abstract_compiler#RuntimeVariable#init for (self: Object, String, MType, MType) */
1987 void VIRTUAL_abstract_compiler__RuntimeVariable__init(val* self, val* p0, val* p1, val* p2) {
1988 abstract_compiler__RuntimeVariable__init(self, p0, p1, p2);
1989 RET_LABEL:;
1990 }
1991 /* method abstract_compiler#RuntimeVariable#to_s for (self: RuntimeVariable): String */
1992 val* abstract_compiler__RuntimeVariable__to_s(val* self) {
1993 val* var /* : String */;
1994 val* var1 /* : String */;
1995 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__name]))(self) /* name on <self:RuntimeVariable>*/;
1996 var = var1;
1997 goto RET_LABEL;
1998 RET_LABEL:;
1999 return var;
2000 }
2001 /* method abstract_compiler#RuntimeVariable#to_s for (self: Object): String */
2002 val* VIRTUAL_abstract_compiler__RuntimeVariable__to_s(val* self) {
2003 val* var /* : String */;
2004 val* var1 /* : String */;
2005 var1 = abstract_compiler__RuntimeVariable__to_s(self);
2006 var = var1;
2007 RET_LABEL:;
2008 return var;
2009 }
2010 /* method abstract_compiler#RuntimeVariable#inspect for (self: RuntimeVariable): String */
2011 val* abstract_compiler__RuntimeVariable__inspect(val* self) {
2012 val* var /* : String */;
2013 short int var1 /* : Bool */;
2014 static val* varonce;
2015 val* var2 /* : String */;
2016 char* var3 /* : NativeString */;
2017 long var4 /* : Int */;
2018 val* var5 /* : String */;
2019 val* var_exact_str /* var exact_str: nullable Object */;
2020 static val* varonce6;
2021 val* var7 /* : String */;
2022 char* var8 /* : NativeString */;
2023 long var9 /* : Int */;
2024 val* var10 /* : String */;
2025 val* var11 /* : MType */;
2026 val* var12 /* : MType */;
2027 short int var13 /* : Bool */;
2028 val* var14 /* : MType */;
2029 val* var15 /* : Array[Object] */;
2030 long var16 /* : Int */;
2031 val* var17 /* : NativeArray[Object] */;
2032 val* var18 /* : String */;
2033 val* var_type_str /* var type_str: nullable Object */;
2034 val* var19 /* : MType */;
2035 static val* varonce20;
2036 val* var21 /* : String */;
2037 char* var22 /* : NativeString */;
2038 long var23 /* : Int */;
2039 val* var24 /* : String */;
2040 val* var25 /* : MType */;
2041 static val* varonce26;
2042 val* var27 /* : String */;
2043 char* var28 /* : NativeString */;
2044 long var29 /* : Int */;
2045 val* var30 /* : String */;
2046 val* var31 /* : Array[Object] */;
2047 long var32 /* : Int */;
2048 val* var33 /* : NativeArray[Object] */;
2049 val* var34 /* : String */;
2050 val* var35 /* : Array[Object] */;
2051 long var36 /* : Int */;
2052 val* var_ /* var : Array[Object] */;
2053 static val* varonce37;
2054 val* var38 /* : String */;
2055 char* var39 /* : NativeString */;
2056 long var40 /* : Int */;
2057 val* var41 /* : String */;
2058 val* var42 /* : String */;
2059 static val* varonce43;
2060 val* var44 /* : String */;
2061 char* var45 /* : NativeString */;
2062 long var46 /* : Int */;
2063 val* var47 /* : String */;
2064 static val* varonce48;
2065 val* var49 /* : String */;
2066 char* var50 /* : NativeString */;
2067 long var51 /* : Int */;
2068 val* var52 /* : String */;
2069 val* var53 /* : String */;
2070 var1 = ((short int (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__is_exact]))(self) /* is_exact on <self:RuntimeVariable>*/;
2071 if (var1){
2072 if (varonce) {
2073 var2 = varonce;
2074 } else {
2075 var3 = " exact";
2076 var4 = 6;
2077 var5 = string__NativeString__to_s_with_length(var3, var4);
2078 var2 = var5;
2079 varonce = var2;
2080 }
2081 var_exact_str = var2;
2082 } else {
2083 if (varonce6) {
2084 var7 = varonce6;
2085 } else {
2086 var8 = "";
2087 var9 = 0;
2088 var10 = string__NativeString__to_s_with_length(var8, var9);
2089 var7 = var10;
2090 varonce6 = var7;
2091 }
2092 var_exact_str = var7;
2093 }
2094 var11 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(self) /* mtype on <self:RuntimeVariable>*/;
2095 var12 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mcasttype]))(self) /* mcasttype on <self:RuntimeVariable>*/;
2096 var13 = ((short int (*)(val*, val*))(var11->class->vft[COLOR_kernel__Object___61d_61d]))(var11, var12) /* == on <var11:MType>*/;
2097 if (var13){
2098 var14 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(self) /* mtype on <self:RuntimeVariable>*/;
2099 var15 = NEW_array__Array(&type_array__Arraykernel__Object);
2100 { /* var15 = array_instance Array[Object] */
2101 var16 = 2;
2102 var17 = NEW_array__NativeArray(var16, &type_array__NativeArraykernel__Object);
2103 ((struct instance_array__NativeArray*)var17)->values[0] = (val*) var14;
2104 ((struct instance_array__NativeArray*)var17)->values[1] = (val*) var_exact_str;
2105 ((void (*)(val*, val*, long))(var15->class->vft[COLOR_array__Array__with_native]))(var15, var17, var16) /* with_native on <var15:Array[Object]>*/;
2106 }
2107 var18 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on <var15:Array[Object]>*/;
2108 var_type_str = var18;
2109 } else {
2110 var19 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(self) /* mtype on <self:RuntimeVariable>*/;
2111 if (varonce20) {
2112 var21 = varonce20;
2113 } else {
2114 var22 = "(";
2115 var23 = 1;
2116 var24 = string__NativeString__to_s_with_length(var22, var23);
2117 var21 = var24;
2118 varonce20 = var21;
2119 }
2120 var25 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__mcasttype]))(self) /* mcasttype on <self:RuntimeVariable>*/;
2121 if (varonce26) {
2122 var27 = varonce26;
2123 } else {
2124 var28 = ")";
2125 var29 = 1;
2126 var30 = string__NativeString__to_s_with_length(var28, var29);
2127 var27 = var30;
2128 varonce26 = var27;
2129 }
2130 var31 = NEW_array__Array(&type_array__Arraykernel__Object);
2131 { /* var31 = array_instance Array[Object] */
2132 var32 = 5;
2133 var33 = NEW_array__NativeArray(var32, &type_array__NativeArraykernel__Object);
2134 ((struct instance_array__NativeArray*)var33)->values[0] = (val*) var19;
2135 ((struct instance_array__NativeArray*)var33)->values[1] = (val*) var21;
2136 ((struct instance_array__NativeArray*)var33)->values[2] = (val*) var25;
2137 ((struct instance_array__NativeArray*)var33)->values[3] = (val*) var_exact_str;
2138 ((struct instance_array__NativeArray*)var33)->values[4] = (val*) var27;
2139 ((void (*)(val*, val*, long))(var31->class->vft[COLOR_array__Array__with_native]))(var31, var33, var32) /* with_native on <var31:Array[Object]>*/;
2140 }
2141 var34 = ((val* (*)(val*))(var31->class->vft[COLOR_string__Object__to_s]))(var31) /* to_s on <var31:Array[Object]>*/;
2142 var_type_str = var34;
2143 }
2144 var35 = NEW_array__Array(&type_array__Arraykernel__Object);
2145 var36 = 5;
2146 ((void (*)(val*, long))(var35->class->vft[COLOR_array__Array__with_capacity]))(var35, var36) /* with_capacity on <var35:Array[Object]>*/;
2147 var_ = var35;
2148 if (varonce37) {
2149 var38 = varonce37;
2150 } else {
2151 var39 = "<";
2152 var40 = 1;
2153 var41 = string__NativeString__to_s_with_length(var39, var40);
2154 var38 = var41;
2155 varonce37 = var38;
2156 }
2157 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var38) /* add on <var_:Array[Object]>*/;
2158 var42 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__RuntimeVariable__name]))(self) /* name on <self:RuntimeVariable>*/;
2159 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var42) /* add on <var_:Array[Object]>*/;
2160 if (varonce43) {
2161 var44 = varonce43;
2162 } else {
2163 var45 = ":";
2164 var46 = 1;
2165 var47 = string__NativeString__to_s_with_length(var45, var46);
2166 var44 = var47;
2167 varonce43 = var44;
2168 }
2169 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var44) /* add on <var_:Array[Object]>*/;
2170 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_type_str) /* add on <var_:Array[Object]>*/;
2171 if (varonce48) {
2172 var49 = varonce48;
2173 } else {
2174 var50 = ">";
2175 var51 = 1;
2176 var52 = string__NativeString__to_s_with_length(var50, var51);
2177 var49 = var52;
2178 varonce48 = var49;
2179 }
2180 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var49) /* add on <var_:Array[Object]>*/;
2181 var53 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2182 var = var53;
2183 goto RET_LABEL;
2184 RET_LABEL:;
2185 return var;
2186 }
2187 /* method abstract_compiler#RuntimeVariable#inspect for (self: Object): String */
2188 val* VIRTUAL_abstract_compiler__RuntimeVariable__inspect(val* self) {
2189 val* var /* : String */;
2190 val* var1 /* : String */;
2191 var1 = abstract_compiler__RuntimeVariable__inspect(self);
2192 var = var1;
2193 RET_LABEL:;
2194 return var;
2195 }
2196 /* method abstract_compiler#Frame#visitor for (self: Frame): AbstractCompilerVisitor */
2197 val* abstract_compiler__Frame__visitor(val* self) {
2198 val* var /* : AbstractCompilerVisitor */;
2199 val* var1 /* : AbstractCompilerVisitor */;
2200 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dvisitor].val; /* @visitor on <self:Frame> */
2201 if (var1 == NULL) {
2202 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @visitor");
2203 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1175);
2204 show_backtrace(1);
2205 }
2206 var = var1;
2207 RET_LABEL:;
2208 return var;
2209 }
2210 /* method abstract_compiler#Frame#visitor for (self: Object): AbstractCompilerVisitor */
2211 val* VIRTUAL_abstract_compiler__Frame__visitor(val* self) {
2212 val* var /* : AbstractCompilerVisitor */;
2213 val* var1 /* : AbstractCompilerVisitor */;
2214 var1 = abstract_compiler__Frame__visitor(self);
2215 var = var1;
2216 RET_LABEL:;
2217 return var;
2218 }
2219 /* method abstract_compiler#Frame#visitor= for (self: Frame, AbstractCompilerVisitor) */
2220 void abstract_compiler__Frame__visitor_61d(val* self, val* p0) {
2221 short int var /* : Bool */;
2222 int cltype;
2223 int idtype;
2224 const struct type* type_struct;
2225 const char* var_class_name;
2226 /* Covariant cast for argument 0 (visitor) <p0:AbstractCompilerVisitor> isa VISITOR */
2227 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2228 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__Frame_VTVISITOR];
2229 cltype = type_struct->color;
2230 idtype = type_struct->id;
2231 if(cltype >= p0->type->table_size) {
2232 var = 0;
2233 } else {
2234 var = p0->type->type_table[cltype] == idtype;
2235 }
2236 if (!var) {
2237 var_class_name = p0 == NULL ? "null" : p0->type->name;
2238 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
2239 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1175);
2240 show_backtrace(1);
2241 }
2242 self->attrs[COLOR_abstract_compiler__Frame___64dvisitor].val = p0; /* @visitor on <self:Frame> */
2243 RET_LABEL:;
2244 }
2245 /* method abstract_compiler#Frame#visitor= for (self: Object, AbstractCompilerVisitor) */
2246 void VIRTUAL_abstract_compiler__Frame__visitor_61d(val* self, val* p0) {
2247 abstract_compiler__Frame__visitor_61d(self, p0);
2248 RET_LABEL:;
2249 }
2250 /* method abstract_compiler#Frame#mpropdef for (self: Frame): MPropDef */
2251 val* abstract_compiler__Frame__mpropdef(val* self) {
2252 val* var /* : MPropDef */;
2253 val* var1 /* : MPropDef */;
2254 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dmpropdef].val; /* @mpropdef on <self:Frame> */
2255 if (var1 == NULL) {
2256 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @mpropdef");
2257 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1178);
2258 show_backtrace(1);
2259 }
2260 var = var1;
2261 RET_LABEL:;
2262 return var;
2263 }
2264 /* method abstract_compiler#Frame#mpropdef for (self: Object): MPropDef */
2265 val* VIRTUAL_abstract_compiler__Frame__mpropdef(val* self) {
2266 val* var /* : MPropDef */;
2267 val* var1 /* : MPropDef */;
2268 var1 = abstract_compiler__Frame__mpropdef(self);
2269 var = var1;
2270 RET_LABEL:;
2271 return var;
2272 }
2273 /* method abstract_compiler#Frame#mpropdef= for (self: Frame, MPropDef) */
2274 void abstract_compiler__Frame__mpropdef_61d(val* self, val* p0) {
2275 self->attrs[COLOR_abstract_compiler__Frame___64dmpropdef].val = p0; /* @mpropdef on <self:Frame> */
2276 RET_LABEL:;
2277 }
2278 /* method abstract_compiler#Frame#mpropdef= for (self: Object, MPropDef) */
2279 void VIRTUAL_abstract_compiler__Frame__mpropdef_61d(val* self, val* p0) {
2280 abstract_compiler__Frame__mpropdef_61d(self, p0);
2281 RET_LABEL:;
2282 }
2283 /* method abstract_compiler#Frame#receiver for (self: Frame): MClassType */
2284 val* abstract_compiler__Frame__receiver(val* self) {
2285 val* var /* : MClassType */;
2286 val* var1 /* : MClassType */;
2287 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dreceiver].val; /* @receiver on <self:Frame> */
2288 if (var1 == NULL) {
2289 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @receiver");
2290 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1182);
2291 show_backtrace(1);
2292 }
2293 var = var1;
2294 RET_LABEL:;
2295 return var;
2296 }
2297 /* method abstract_compiler#Frame#receiver for (self: Object): MClassType */
2298 val* VIRTUAL_abstract_compiler__Frame__receiver(val* self) {
2299 val* var /* : MClassType */;
2300 val* var1 /* : MClassType */;
2301 var1 = abstract_compiler__Frame__receiver(self);
2302 var = var1;
2303 RET_LABEL:;
2304 return var;
2305 }
2306 /* method abstract_compiler#Frame#receiver= for (self: Frame, MClassType) */
2307 void abstract_compiler__Frame__receiver_61d(val* self, val* p0) {
2308 self->attrs[COLOR_abstract_compiler__Frame___64dreceiver].val = p0; /* @receiver on <self:Frame> */
2309 RET_LABEL:;
2310 }
2311 /* method abstract_compiler#Frame#receiver= for (self: Object, MClassType) */
2312 void VIRTUAL_abstract_compiler__Frame__receiver_61d(val* self, val* p0) {
2313 abstract_compiler__Frame__receiver_61d(self, p0);
2314 RET_LABEL:;
2315 }
2316 /* method abstract_compiler#Frame#arguments for (self: Frame): Array[RuntimeVariable] */
2317 val* abstract_compiler__Frame__arguments(val* self) {
2318 val* var /* : Array[RuntimeVariable] */;
2319 val* var1 /* : Array[RuntimeVariable] */;
2320 var1 = self->attrs[COLOR_abstract_compiler__Frame___64darguments].val; /* @arguments on <self:Frame> */
2321 if (var1 == NULL) {
2322 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @arguments");
2323 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1185);
2324 show_backtrace(1);
2325 }
2326 var = var1;
2327 RET_LABEL:;
2328 return var;
2329 }
2330 /* method abstract_compiler#Frame#arguments for (self: Object): Array[RuntimeVariable] */
2331 val* VIRTUAL_abstract_compiler__Frame__arguments(val* self) {
2332 val* var /* : Array[RuntimeVariable] */;
2333 val* var1 /* : Array[RuntimeVariable] */;
2334 var1 = abstract_compiler__Frame__arguments(self);
2335 var = var1;
2336 RET_LABEL:;
2337 return var;
2338 }
2339 /* method abstract_compiler#Frame#arguments= for (self: Frame, Array[RuntimeVariable]) */
2340 void abstract_compiler__Frame__arguments_61d(val* self, val* p0) {
2341 self->attrs[COLOR_abstract_compiler__Frame___64darguments].val = p0; /* @arguments on <self:Frame> */
2342 RET_LABEL:;
2343 }
2344 /* method abstract_compiler#Frame#arguments= for (self: Object, Array[RuntimeVariable]) */
2345 void VIRTUAL_abstract_compiler__Frame__arguments_61d(val* self, val* p0) {
2346 abstract_compiler__Frame__arguments_61d(self, p0);
2347 RET_LABEL:;
2348 }
2349 /* method abstract_compiler#Frame#returnvar for (self: Frame): nullable RuntimeVariable */
2350 val* abstract_compiler__Frame__returnvar(val* self) {
2351 val* var /* : nullable RuntimeVariable */;
2352 val* var1 /* : nullable RuntimeVariable */;
2353 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dreturnvar].val; /* @returnvar on <self:Frame> */
2354 var = var1;
2355 RET_LABEL:;
2356 return var;
2357 }
2358 /* method abstract_compiler#Frame#returnvar for (self: Object): nullable RuntimeVariable */
2359 val* VIRTUAL_abstract_compiler__Frame__returnvar(val* self) {
2360 val* var /* : nullable RuntimeVariable */;
2361 val* var1 /* : nullable RuntimeVariable */;
2362 var1 = abstract_compiler__Frame__returnvar(self);
2363 var = var1;
2364 RET_LABEL:;
2365 return var;
2366 }
2367 /* method abstract_compiler#Frame#returnvar= for (self: Frame, nullable RuntimeVariable) */
2368 void abstract_compiler__Frame__returnvar_61d(val* self, val* p0) {
2369 self->attrs[COLOR_abstract_compiler__Frame___64dreturnvar].val = p0; /* @returnvar on <self:Frame> */
2370 RET_LABEL:;
2371 }
2372 /* method abstract_compiler#Frame#returnvar= for (self: Object, nullable RuntimeVariable) */
2373 void VIRTUAL_abstract_compiler__Frame__returnvar_61d(val* self, val* p0) {
2374 abstract_compiler__Frame__returnvar_61d(self, p0);
2375 RET_LABEL:;
2376 }
2377 /* method abstract_compiler#Frame#returnlabel for (self: Frame): nullable String */
2378 val* abstract_compiler__Frame__returnlabel(val* self) {
2379 val* var /* : nullable String */;
2380 val* var1 /* : nullable String */;
2381 var1 = self->attrs[COLOR_abstract_compiler__Frame___64dreturnlabel].val; /* @returnlabel on <self:Frame> */
2382 var = var1;
2383 RET_LABEL:;
2384 return var;
2385 }
2386 /* method abstract_compiler#Frame#returnlabel for (self: Object): nullable String */
2387 val* VIRTUAL_abstract_compiler__Frame__returnlabel(val* self) {
2388 val* var /* : nullable String */;
2389 val* var1 /* : nullable String */;
2390 var1 = abstract_compiler__Frame__returnlabel(self);
2391 var = var1;
2392 RET_LABEL:;
2393 return var;
2394 }
2395 /* method abstract_compiler#Frame#returnlabel= for (self: Frame, nullable String) */
2396 void abstract_compiler__Frame__returnlabel_61d(val* self, val* p0) {
2397 self->attrs[COLOR_abstract_compiler__Frame___64dreturnlabel].val = p0; /* @returnlabel on <self:Frame> */
2398 RET_LABEL:;
2399 }
2400 /* method abstract_compiler#Frame#returnlabel= for (self: Object, nullable String) */
2401 void VIRTUAL_abstract_compiler__Frame__returnlabel_61d(val* self, val* p0) {
2402 abstract_compiler__Frame__returnlabel_61d(self, p0);
2403 RET_LABEL:;
2404 }
2405 /* method abstract_compiler#Frame#init for (self: Frame, AbstractCompilerVisitor, MPropDef, MClassType, Array[RuntimeVariable]) */
2406 void abstract_compiler__Frame__init(val* self, val* p0, val* p1, val* p2, val* p3) {
2407 short int var /* : Bool */;
2408 int cltype;
2409 int idtype;
2410 const struct type* type_struct;
2411 const char* var_class_name;
2412 /* Covariant cast for argument 0 (visitor) <p0:AbstractCompilerVisitor> isa VISITOR */
2413 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2414 type_struct = self->type->resolution_table->types[COLOR_abstract_compiler__Frame_VTVISITOR];
2415 cltype = type_struct->color;
2416 idtype = type_struct->id;
2417 if(cltype >= p0->type->table_size) {
2418 var = 0;
2419 } else {
2420 var = p0->type->type_table[cltype] == idtype;
2421 }
2422 if (!var) {
2423 var_class_name = p0 == NULL ? "null" : p0->type->name;
2424 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
2425 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1170);
2426 show_backtrace(1);
2427 }
2428 self->attrs[COLOR_abstract_compiler__Frame___64dvisitor].val = p0; /* @visitor on <self:Frame> */
2429 self->attrs[COLOR_abstract_compiler__Frame___64dmpropdef].val = p1; /* @mpropdef on <self:Frame> */
2430 self->attrs[COLOR_abstract_compiler__Frame___64dreceiver].val = p2; /* @receiver on <self:Frame> */
2431 self->attrs[COLOR_abstract_compiler__Frame___64darguments].val = p3; /* @arguments on <self:Frame> */
2432 RET_LABEL:;
2433 }
2434 /* method abstract_compiler#Frame#init for (self: Object, AbstractCompilerVisitor, MPropDef, MClassType, Array[RuntimeVariable]) */
2435 void VIRTUAL_abstract_compiler__Frame__init(val* self, val* p0, val* p1, val* p2, val* p3) {
2436 abstract_compiler__Frame__init(self, p0, p1, p2, p3);
2437 RET_LABEL:;
2438 }
2439 /* method abstract_compiler#ExternCFile#filename for (self: ExternCFile): String */
2440 val* abstract_compiler__ExternCFile__filename(val* self) {
2441 val* var /* : String */;
2442 val* var1 /* : String */;
2443 var1 = self->attrs[COLOR_abstract_compiler__ExternCFile___64dfilename].val; /* @filename on <self:ExternCFile> */
2444 if (var1 == NULL) {
2445 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @filename");
2446 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1197);
2447 show_backtrace(1);
2448 }
2449 var = var1;
2450 RET_LABEL:;
2451 return var;
2452 }
2453 /* method abstract_compiler#ExternCFile#filename for (self: Object): String */
2454 val* VIRTUAL_abstract_compiler__ExternCFile__filename(val* self) {
2455 val* var /* : String */;
2456 val* var1 /* : String */;
2457 var1 = abstract_compiler__ExternCFile__filename(self);
2458 var = var1;
2459 RET_LABEL:;
2460 return var;
2461 }
2462 /* method abstract_compiler#ExternCFile#filename= for (self: ExternCFile, String) */
2463 void abstract_compiler__ExternCFile__filename_61d(val* self, val* p0) {
2464 self->attrs[COLOR_abstract_compiler__ExternCFile___64dfilename].val = p0; /* @filename on <self:ExternCFile> */
2465 RET_LABEL:;
2466 }
2467 /* method abstract_compiler#ExternCFile#filename= for (self: Object, String) */
2468 void VIRTUAL_abstract_compiler__ExternCFile__filename_61d(val* self, val* p0) {
2469 abstract_compiler__ExternCFile__filename_61d(self, p0);
2470 RET_LABEL:;
2471 }
2472 /* method abstract_compiler#ExternCFile#cflags for (self: ExternCFile): String */
2473 val* abstract_compiler__ExternCFile__cflags(val* self) {
2474 val* var /* : String */;
2475 val* var1 /* : String */;
2476 var1 = self->attrs[COLOR_abstract_compiler__ExternCFile___64dcflags].val; /* @cflags on <self:ExternCFile> */
2477 if (var1 == NULL) {
2478 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @cflags");
2479 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1199);
2480 show_backtrace(1);
2481 }
2482 var = var1;
2483 RET_LABEL:;
2484 return var;
2485 }
2486 /* method abstract_compiler#ExternCFile#cflags for (self: Object): String */
2487 val* VIRTUAL_abstract_compiler__ExternCFile__cflags(val* self) {
2488 val* var /* : String */;
2489 val* var1 /* : String */;
2490 var1 = abstract_compiler__ExternCFile__cflags(self);
2491 var = var1;
2492 RET_LABEL:;
2493 return var;
2494 }
2495 /* method abstract_compiler#ExternCFile#cflags= for (self: ExternCFile, String) */
2496 void abstract_compiler__ExternCFile__cflags_61d(val* self, val* p0) {
2497 self->attrs[COLOR_abstract_compiler__ExternCFile___64dcflags].val = p0; /* @cflags on <self:ExternCFile> */
2498 RET_LABEL:;
2499 }
2500 /* method abstract_compiler#ExternCFile#cflags= for (self: Object, String) */
2501 void VIRTUAL_abstract_compiler__ExternCFile__cflags_61d(val* self, val* p0) {
2502 abstract_compiler__ExternCFile__cflags_61d(self, p0);
2503 RET_LABEL:;
2504 }
2505 /* method abstract_compiler#ExternCFile#init for (self: ExternCFile, String, String) */
2506 void abstract_compiler__ExternCFile__init(val* self, val* p0, val* p1) {
2507 self->attrs[COLOR_abstract_compiler__ExternCFile___64dfilename].val = p0; /* @filename on <self:ExternCFile> */
2508 self->attrs[COLOR_abstract_compiler__ExternCFile___64dcflags].val = p1; /* @cflags on <self:ExternCFile> */
2509 RET_LABEL:;
2510 }
2511 /* method abstract_compiler#ExternCFile#init for (self: Object, String, String) */
2512 void VIRTUAL_abstract_compiler__ExternCFile__init(val* self, val* p0, val* p1) {
2513 abstract_compiler__ExternCFile__init(self, p0, p1);
2514 RET_LABEL:;
2515 }
2516 /* method abstract_compiler#MType#ctype for (self: MType): String */
2517 val* abstract_compiler__MType__ctype(val* self) {
2518 val* var /* : String */;
2519 static val* varonce;
2520 val* var1 /* : String */;
2521 char* var2 /* : NativeString */;
2522 long var3 /* : Int */;
2523 val* var4 /* : String */;
2524 if (varonce) {
2525 var1 = varonce;
2526 } else {
2527 var2 = "val*";
2528 var3 = 4;
2529 var4 = string__NativeString__to_s_with_length(var2, var3);
2530 var1 = var4;
2531 varonce = var1;
2532 }
2533 var = var1;
2534 goto RET_LABEL;
2535 RET_LABEL:;
2536 return var;
2537 }
2538 /* method abstract_compiler#MType#ctype for (self: Object): String */
2539 val* VIRTUAL_abstract_compiler__MType__ctype(val* self) {
2540 val* var /* : String */;
2541 val* var1 /* : String */;
2542 var1 = abstract_compiler__MType__ctype(self);
2543 var = var1;
2544 RET_LABEL:;
2545 return var;
2546 }
2547 /* method abstract_compiler#MType#ctypename for (self: MType): String */
2548 val* abstract_compiler__MType__ctypename(val* self) {
2549 val* var /* : String */;
2550 static val* varonce;
2551 val* var1 /* : String */;
2552 char* var2 /* : NativeString */;
2553 long var3 /* : Int */;
2554 val* var4 /* : String */;
2555 if (varonce) {
2556 var1 = varonce;
2557 } else {
2558 var2 = "val";
2559 var3 = 3;
2560 var4 = string__NativeString__to_s_with_length(var2, var3);
2561 var1 = var4;
2562 varonce = var1;
2563 }
2564 var = var1;
2565 goto RET_LABEL;
2566 RET_LABEL:;
2567 return var;
2568 }
2569 /* method abstract_compiler#MType#ctypename for (self: Object): String */
2570 val* VIRTUAL_abstract_compiler__MType__ctypename(val* self) {
2571 val* var /* : String */;
2572 val* var1 /* : String */;
2573 var1 = abstract_compiler__MType__ctypename(self);
2574 var = var1;
2575 RET_LABEL:;
2576 return var;
2577 }
2578 /* method abstract_compiler#MType#c_name for (self: MType): String */
2579 val* abstract_compiler__MType__c_name(val* self) {
2580 val* var /* : String */;
2581 const char* var_class_name;
2582 var_class_name = self == NULL ? "null" : self->type->name;
2583 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "c_name", var_class_name);
2584 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1209);
2585 show_backtrace(1);
2586 RET_LABEL:;
2587 return var;
2588 }
2589 /* method abstract_compiler#MType#c_name for (self: Object): String */
2590 val* VIRTUAL_abstract_compiler__MType__c_name(val* self) {
2591 val* var /* : String */;
2592 val* var1 /* : String */;
2593 var1 = abstract_compiler__MType__c_name(self);
2594 var = var1;
2595 RET_LABEL:;
2596 return var;
2597 }
2598 /* method abstract_compiler#MType#c_name_cache for (self: MType): nullable String */
2599 val* abstract_compiler__MType__c_name_cache(val* self) {
2600 val* var /* : nullable String */;
2601 val* var1 /* : nullable String */;
2602 var1 = self->attrs[COLOR_abstract_compiler__MType___64dc_name_cache].val; /* @c_name_cache on <self:MType> */
2603 var = var1;
2604 RET_LABEL:;
2605 return var;
2606 }
2607 /* method abstract_compiler#MType#c_name_cache for (self: Object): nullable String */
2608 val* VIRTUAL_abstract_compiler__MType__c_name_cache(val* self) {
2609 val* var /* : nullable String */;
2610 val* var1 /* : nullable String */;
2611 var1 = abstract_compiler__MType__c_name_cache(self);
2612 var = var1;
2613 RET_LABEL:;
2614 return var;
2615 }
2616 /* method abstract_compiler#MType#c_name_cache= for (self: MType, nullable String) */
2617 void abstract_compiler__MType__c_name_cache_61d(val* self, val* p0) {
2618 self->attrs[COLOR_abstract_compiler__MType___64dc_name_cache].val = p0; /* @c_name_cache on <self:MType> */
2619 RET_LABEL:;
2620 }
2621 /* method abstract_compiler#MType#c_name_cache= for (self: Object, nullable String) */
2622 void VIRTUAL_abstract_compiler__MType__c_name_cache_61d(val* self, val* p0) {
2623 abstract_compiler__MType__c_name_cache_61d(self, p0);
2624 RET_LABEL:;
2625 }
2626 /* method abstract_compiler#MClassType#c_name for (self: MClassType): String */
2627 val* abstract_compiler__MClassType__c_name(val* self) {
2628 val* var /* : String */;
2629 val* var1 /* : nullable String */;
2630 val* var_res /* var res: nullable String */;
2631 val* var2 /* : null */;
2632 short int var3 /* : Bool */;
2633 val* var4 /* : Array[Object] */;
2634 long var5 /* : Int */;
2635 val* var_ /* var : Array[Object] */;
2636 static val* varonce;
2637 val* var6 /* : String */;
2638 char* var7 /* : NativeString */;
2639 long var8 /* : Int */;
2640 val* var9 /* : String */;
2641 val* var10 /* : MClass */;
2642 val* var11 /* : MModule */;
2643 val* var12 /* : String */;
2644 val* var13 /* : String */;
2645 static val* varonce14;
2646 val* var15 /* : String */;
2647 char* var16 /* : NativeString */;
2648 long var17 /* : Int */;
2649 val* var18 /* : String */;
2650 val* var19 /* : MClass */;
2651 val* var20 /* : String */;
2652 val* var21 /* : String */;
2653 static val* varonce22;
2654 val* var23 /* : String */;
2655 char* var24 /* : NativeString */;
2656 long var25 /* : Int */;
2657 val* var26 /* : String */;
2658 val* var27 /* : String */;
2659 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MClassType>*/;
2660 var_res = var1;
2661 var2 = NULL;
2662 if (var_res == NULL) {
2663 var3 = 0; /* is null */
2664 } else {
2665 var3 = 1; /* arg is null and recv is not */
2666 }
2667 if (var3){
2668 var = var_res;
2669 goto RET_LABEL;
2670 } else {
2671 }
2672 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
2673 var5 = 5;
2674 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
2675 var_ = var4;
2676 if (varonce) {
2677 var6 = varonce;
2678 } else {
2679 var7 = "";
2680 var8 = 0;
2681 var9 = string__NativeString__to_s_with_length(var7, var8);
2682 var6 = var9;
2683 varonce = var6;
2684 }
2685 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
2686 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2687 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MClass__intro_mmodule]))(var10) /* intro_mmodule on <var10:MClass>*/;
2688 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_mmodule__MModule__name]))(var11) /* name on <var11:MModule>*/;
2689 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__AbstractString__to_cmangle]))(var12) /* to_cmangle on <var12:String>*/;
2690 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
2691 if (varonce14) {
2692 var15 = varonce14;
2693 } else {
2694 var16 = "__";
2695 var17 = 2;
2696 var18 = string__NativeString__to_s_with_length(var16, var17);
2697 var15 = var18;
2698 varonce14 = var15;
2699 }
2700 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var15) /* add on <var_:Array[Object]>*/;
2701 var19 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2702 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MClass__name]))(var19) /* name on <var19:MClass>*/;
2703 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_string__AbstractString__to_cmangle]))(var20) /* to_cmangle on <var20:String>*/;
2704 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var21) /* add on <var_:Array[Object]>*/;
2705 if (varonce22) {
2706 var23 = varonce22;
2707 } else {
2708 var24 = "";
2709 var25 = 0;
2710 var26 = string__NativeString__to_s_with_length(var24, var25);
2711 var23 = var26;
2712 varonce22 = var23;
2713 }
2714 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var23) /* add on <var_:Array[Object]>*/;
2715 var27 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
2716 var_res = var27;
2717 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MClassType>*/;
2718 var = var_res;
2719 goto RET_LABEL;
2720 RET_LABEL:;
2721 return var;
2722 }
2723 /* method abstract_compiler#MClassType#c_name for (self: Object): String */
2724 val* VIRTUAL_abstract_compiler__MClassType__c_name(val* self) {
2725 val* var /* : String */;
2726 val* var1 /* : String */;
2727 var1 = abstract_compiler__MClassType__c_name(self);
2728 var = var1;
2729 RET_LABEL:;
2730 return var;
2731 }
2732 /* method abstract_compiler#MClassType#ctype for (self: MClassType): String */
2733 val* abstract_compiler__MClassType__ctype(val* self) {
2734 val* var /* : String */;
2735 val* var1 /* : MClass */;
2736 val* var2 /* : String */;
2737 static val* varonce;
2738 val* var3 /* : String */;
2739 char* var4 /* : NativeString */;
2740 long var5 /* : Int */;
2741 val* var6 /* : String */;
2742 short int var7 /* : Bool */;
2743 static val* varonce8;
2744 val* var9 /* : String */;
2745 char* var10 /* : NativeString */;
2746 long var11 /* : Int */;
2747 val* var12 /* : String */;
2748 val* var13 /* : MClass */;
2749 val* var14 /* : String */;
2750 static val* varonce15;
2751 val* var16 /* : String */;
2752 char* var17 /* : NativeString */;
2753 long var18 /* : Int */;
2754 val* var19 /* : String */;
2755 short int var20 /* : Bool */;
2756 static val* varonce21;
2757 val* var22 /* : String */;
2758 char* var23 /* : NativeString */;
2759 long var24 /* : Int */;
2760 val* var25 /* : String */;
2761 val* var26 /* : MClass */;
2762 val* var27 /* : String */;
2763 static val* varonce28;
2764 val* var29 /* : String */;
2765 char* var30 /* : NativeString */;
2766 long var31 /* : Int */;
2767 val* var32 /* : String */;
2768 short int var33 /* : Bool */;
2769 static val* varonce34;
2770 val* var35 /* : String */;
2771 char* var36 /* : NativeString */;
2772 long var37 /* : Int */;
2773 val* var38 /* : String */;
2774 val* var39 /* : MClass */;
2775 val* var40 /* : String */;
2776 static val* varonce41;
2777 val* var42 /* : String */;
2778 char* var43 /* : NativeString */;
2779 long var44 /* : Int */;
2780 val* var45 /* : String */;
2781 short int var46 /* : Bool */;
2782 static val* varonce47;
2783 val* var48 /* : String */;
2784 char* var49 /* : NativeString */;
2785 long var50 /* : Int */;
2786 val* var51 /* : String */;
2787 val* var52 /* : MClass */;
2788 val* var53 /* : String */;
2789 static val* varonce54;
2790 val* var55 /* : String */;
2791 char* var56 /* : NativeString */;
2792 long var57 /* : Int */;
2793 val* var58 /* : String */;
2794 short int var59 /* : Bool */;
2795 static val* varonce60;
2796 val* var61 /* : String */;
2797 char* var62 /* : NativeString */;
2798 long var63 /* : Int */;
2799 val* var64 /* : String */;
2800 val* var65 /* : MClass */;
2801 val* var66 /* : String */;
2802 static val* varonce67;
2803 val* var68 /* : String */;
2804 char* var69 /* : NativeString */;
2805 long var70 /* : Int */;
2806 val* var71 /* : String */;
2807 short int var72 /* : Bool */;
2808 static val* varonce73;
2809 val* var74 /* : String */;
2810 char* var75 /* : NativeString */;
2811 long var76 /* : Int */;
2812 val* var77 /* : String */;
2813 val* var78 /* : MClass */;
2814 val* var79 /* : MClassKind */;
2815 val* var80 /* : MClassKind */;
2816 short int var81 /* : Bool */;
2817 static val* varonce82;
2818 val* var83 /* : String */;
2819 char* var84 /* : NativeString */;
2820 long var85 /* : Int */;
2821 val* var86 /* : String */;
2822 static val* varonce87;
2823 val* var88 /* : String */;
2824 char* var89 /* : NativeString */;
2825 long var90 /* : Int */;
2826 val* var91 /* : String */;
2827 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2828 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__name]))(var1) /* name on <var1:MClass>*/;
2829 if (varonce) {
2830 var3 = varonce;
2831 } else {
2832 var4 = "Int";
2833 var5 = 3;
2834 var6 = string__NativeString__to_s_with_length(var4, var5);
2835 var3 = var6;
2836 varonce = var3;
2837 }
2838 var7 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___61d_61d]))(var2, var3) /* == on <var2:String>*/;
2839 if (var7){
2840 if (varonce8) {
2841 var9 = varonce8;
2842 } else {
2843 var10 = "long";
2844 var11 = 4;
2845 var12 = string__NativeString__to_s_with_length(var10, var11);
2846 var9 = var12;
2847 varonce8 = var9;
2848 }
2849 var = var9;
2850 goto RET_LABEL;
2851 } else {
2852 var13 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2853 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__name]))(var13) /* name on <var13:MClass>*/;
2854 if (varonce15) {
2855 var16 = varonce15;
2856 } else {
2857 var17 = "Bool";
2858 var18 = 4;
2859 var19 = string__NativeString__to_s_with_length(var17, var18);
2860 var16 = var19;
2861 varonce15 = var16;
2862 }
2863 var20 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var16) /* == on <var14:String>*/;
2864 if (var20){
2865 if (varonce21) {
2866 var22 = varonce21;
2867 } else {
2868 var23 = "short int";
2869 var24 = 9;
2870 var25 = string__NativeString__to_s_with_length(var23, var24);
2871 var22 = var25;
2872 varonce21 = var22;
2873 }
2874 var = var22;
2875 goto RET_LABEL;
2876 } else {
2877 var26 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2878 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MClass__name]))(var26) /* name on <var26:MClass>*/;
2879 if (varonce28) {
2880 var29 = varonce28;
2881 } else {
2882 var30 = "Char";
2883 var31 = 4;
2884 var32 = string__NativeString__to_s_with_length(var30, var31);
2885 var29 = var32;
2886 varonce28 = var29;
2887 }
2888 var33 = ((short int (*)(val*, val*))(var27->class->vft[COLOR_kernel__Object___61d_61d]))(var27, var29) /* == on <var27:String>*/;
2889 if (var33){
2890 if (varonce34) {
2891 var35 = varonce34;
2892 } else {
2893 var36 = "char";
2894 var37 = 4;
2895 var38 = string__NativeString__to_s_with_length(var36, var37);
2896 var35 = var38;
2897 varonce34 = var35;
2898 }
2899 var = var35;
2900 goto RET_LABEL;
2901 } else {
2902 var39 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2903 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_model__MClass__name]))(var39) /* name on <var39:MClass>*/;
2904 if (varonce41) {
2905 var42 = varonce41;
2906 } else {
2907 var43 = "Float";
2908 var44 = 5;
2909 var45 = string__NativeString__to_s_with_length(var43, var44);
2910 var42 = var45;
2911 varonce41 = var42;
2912 }
2913 var46 = ((short int (*)(val*, val*))(var40->class->vft[COLOR_kernel__Object___61d_61d]))(var40, var42) /* == on <var40:String>*/;
2914 if (var46){
2915 if (varonce47) {
2916 var48 = varonce47;
2917 } else {
2918 var49 = "double";
2919 var50 = 6;
2920 var51 = string__NativeString__to_s_with_length(var49, var50);
2921 var48 = var51;
2922 varonce47 = var48;
2923 }
2924 var = var48;
2925 goto RET_LABEL;
2926 } else {
2927 var52 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2928 var53 = ((val* (*)(val*))(var52->class->vft[COLOR_model__MClass__name]))(var52) /* name on <var52:MClass>*/;
2929 if (varonce54) {
2930 var55 = varonce54;
2931 } else {
2932 var56 = "NativeString";
2933 var57 = 12;
2934 var58 = string__NativeString__to_s_with_length(var56, var57);
2935 var55 = var58;
2936 varonce54 = var55;
2937 }
2938 var59 = ((short int (*)(val*, val*))(var53->class->vft[COLOR_kernel__Object___61d_61d]))(var53, var55) /* == on <var53:String>*/;
2939 if (var59){
2940 if (varonce60) {
2941 var61 = varonce60;
2942 } else {
2943 var62 = "char*";
2944 var63 = 5;
2945 var64 = string__NativeString__to_s_with_length(var62, var63);
2946 var61 = var64;
2947 varonce60 = var61;
2948 }
2949 var = var61;
2950 goto RET_LABEL;
2951 } else {
2952 var65 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2953 var66 = ((val* (*)(val*))(var65->class->vft[COLOR_model__MClass__name]))(var65) /* name on <var65:MClass>*/;
2954 if (varonce67) {
2955 var68 = varonce67;
2956 } else {
2957 var69 = "NativeArray";
2958 var70 = 11;
2959 var71 = string__NativeString__to_s_with_length(var69, var70);
2960 var68 = var71;
2961 varonce67 = var68;
2962 }
2963 var72 = ((short int (*)(val*, val*))(var66->class->vft[COLOR_kernel__Object___61d_61d]))(var66, var68) /* == on <var66:String>*/;
2964 if (var72){
2965 if (varonce73) {
2966 var74 = varonce73;
2967 } else {
2968 var75 = "val*";
2969 var76 = 4;
2970 var77 = string__NativeString__to_s_with_length(var75, var76);
2971 var74 = var77;
2972 varonce73 = var74;
2973 }
2974 var = var74;
2975 goto RET_LABEL;
2976 } else {
2977 var78 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
2978 var79 = ((val* (*)(val*))(var78->class->vft[COLOR_model__MClass__kind]))(var78) /* kind on <var78:MClass>*/;
2979 var80 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClassType>*/;
2980 var81 = ((short int (*)(val*, val*))(var79->class->vft[COLOR_kernel__Object___61d_61d]))(var79, var80) /* == on <var79:MClassKind>*/;
2981 if (var81){
2982 if (varonce82) {
2983 var83 = varonce82;
2984 } else {
2985 var84 = "void*";
2986 var85 = 5;
2987 var86 = string__NativeString__to_s_with_length(var84, var85);
2988 var83 = var86;
2989 varonce82 = var83;
2990 }
2991 var = var83;
2992 goto RET_LABEL;
2993 } else {
2994 if (varonce87) {
2995 var88 = varonce87;
2996 } else {
2997 var89 = "val*";
2998 var90 = 4;
2999 var91 = string__NativeString__to_s_with_length(var89, var90);
3000 var88 = var91;
3001 varonce87 = var88;
3002 }
3003 var = var88;
3004 goto RET_LABEL;
3005 }
3006 }
3007 }
3008 }
3009 }
3010 }
3011 }
3012 RET_LABEL:;
3013 return var;
3014 }
3015 /* method abstract_compiler#MClassType#ctype for (self: Object): String */
3016 val* VIRTUAL_abstract_compiler__MClassType__ctype(val* self) {
3017 val* var /* : String */;
3018 val* var1 /* : String */;
3019 var1 = abstract_compiler__MClassType__ctype(self);
3020 var = var1;
3021 RET_LABEL:;
3022 return var;
3023 }
3024 /* method abstract_compiler#MClassType#ctypename for (self: MClassType): String */
3025 val* abstract_compiler__MClassType__ctypename(val* self) {
3026 val* var /* : String */;
3027 val* var1 /* : MClass */;
3028 val* var2 /* : String */;
3029 static val* varonce;
3030 val* var3 /* : String */;
3031 char* var4 /* : NativeString */;
3032 long var5 /* : Int */;
3033 val* var6 /* : String */;
3034 short int var7 /* : Bool */;
3035 static val* varonce8;
3036 val* var9 /* : String */;
3037 char* var10 /* : NativeString */;
3038 long var11 /* : Int */;
3039 val* var12 /* : String */;
3040 val* var13 /* : MClass */;
3041 val* var14 /* : String */;
3042 static val* varonce15;
3043 val* var16 /* : String */;
3044 char* var17 /* : NativeString */;
3045 long var18 /* : Int */;
3046 val* var19 /* : String */;
3047 short int var20 /* : Bool */;
3048 static val* varonce21;
3049 val* var22 /* : String */;
3050 char* var23 /* : NativeString */;
3051 long var24 /* : Int */;
3052 val* var25 /* : String */;
3053 val* var26 /* : MClass */;
3054 val* var27 /* : String */;
3055 static val* varonce28;
3056 val* var29 /* : String */;
3057 char* var30 /* : NativeString */;
3058 long var31 /* : Int */;
3059 val* var32 /* : String */;
3060 short int var33 /* : Bool */;
3061 static val* varonce34;
3062 val* var35 /* : String */;
3063 char* var36 /* : NativeString */;
3064 long var37 /* : Int */;
3065 val* var38 /* : String */;
3066 val* var39 /* : MClass */;
3067 val* var40 /* : String */;
3068 static val* varonce41;
3069 val* var42 /* : String */;
3070 char* var43 /* : NativeString */;
3071 long var44 /* : Int */;
3072 val* var45 /* : String */;
3073 short int var46 /* : Bool */;
3074 static val* varonce47;
3075 val* var48 /* : String */;
3076 char* var49 /* : NativeString */;
3077 long var50 /* : Int */;
3078 val* var51 /* : String */;
3079 val* var52 /* : MClass */;
3080 val* var53 /* : String */;
3081 static val* varonce54;
3082 val* var55 /* : String */;
3083 char* var56 /* : NativeString */;
3084 long var57 /* : Int */;
3085 val* var58 /* : String */;
3086 short int var59 /* : Bool */;
3087 static val* varonce60;
3088 val* var61 /* : String */;
3089 char* var62 /* : NativeString */;
3090 long var63 /* : Int */;
3091 val* var64 /* : String */;
3092 val* var65 /* : MClass */;
3093 val* var66 /* : String */;
3094 static val* varonce67;
3095 val* var68 /* : String */;
3096 char* var69 /* : NativeString */;
3097 long var70 /* : Int */;
3098 val* var71 /* : String */;
3099 short int var72 /* : Bool */;
3100 static val* varonce73;
3101 val* var74 /* : String */;
3102 char* var75 /* : NativeString */;
3103 long var76 /* : Int */;
3104 val* var77 /* : String */;
3105 val* var78 /* : MClass */;
3106 val* var79 /* : MClassKind */;
3107 val* var80 /* : MClassKind */;
3108 short int var81 /* : Bool */;
3109 static val* varonce82;
3110 val* var83 /* : String */;
3111 char* var84 /* : NativeString */;
3112 long var85 /* : Int */;
3113 val* var86 /* : String */;
3114 static val* varonce87;
3115 val* var88 /* : String */;
3116 char* var89 /* : NativeString */;
3117 long var90 /* : Int */;
3118 val* var91 /* : String */;
3119 var1 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
3120 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_model__MClass__name]))(var1) /* name on <var1:MClass>*/;
3121 if (varonce) {
3122 var3 = varonce;
3123 } else {
3124 var4 = "Int";
3125 var5 = 3;
3126 var6 = string__NativeString__to_s_with_length(var4, var5);
3127 var3 = var6;
3128 varonce = var3;
3129 }
3130 var7 = ((short int (*)(val*, val*))(var2->class->vft[COLOR_kernel__Object___61d_61d]))(var2, var3) /* == on <var2:String>*/;
3131 if (var7){
3132 if (varonce8) {
3133 var9 = varonce8;
3134 } else {
3135 var10 = "l";
3136 var11 = 1;
3137 var12 = string__NativeString__to_s_with_length(var10, var11);
3138 var9 = var12;
3139 varonce8 = var9;
3140 }
3141 var = var9;
3142 goto RET_LABEL;
3143 } else {
3144 var13 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
3145 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_model__MClass__name]))(var13) /* name on <var13:MClass>*/;
3146 if (varonce15) {
3147 var16 = varonce15;
3148 } else {
3149 var17 = "Bool";
3150 var18 = 4;
3151 var19 = string__NativeString__to_s_with_length(var17, var18);
3152 var16 = var19;
3153 varonce15 = var16;
3154 }
3155 var20 = ((short int (*)(val*, val*))(var14->class->vft[COLOR_kernel__Object___61d_61d]))(var14, var16) /* == on <var14:String>*/;
3156 if (var20){
3157 if (varonce21) {
3158 var22 = varonce21;
3159 } else {
3160 var23 = "s";
3161 var24 = 1;
3162 var25 = string__NativeString__to_s_with_length(var23, var24);
3163 var22 = var25;
3164 varonce21 = var22;
3165 }
3166 var = var22;
3167 goto RET_LABEL;
3168 } else {
3169 var26 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
3170 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MClass__name]))(var26) /* name on <var26:MClass>*/;
3171 if (varonce28) {
3172 var29 = varonce28;
3173 } else {
3174 var30 = "Char";
3175 var31 = 4;
3176 var32 = string__NativeString__to_s_with_length(var30, var31);
3177 var29 = var32;
3178 varonce28 = var29;
3179 }
3180 var33 = ((short int (*)(val*, val*))(var27->class->vft[COLOR_kernel__Object___61d_61d]))(var27, var29) /* == on <var27:String>*/;
3181 if (var33){
3182 if (varonce34) {
3183 var35 = varonce34;
3184 } else {
3185 var36 = "c";
3186 var37 = 1;
3187 var38 = string__NativeString__to_s_with_length(var36, var37);
3188 var35 = var38;
3189 varonce34 = var35;
3190 }
3191 var = var35;
3192 goto RET_LABEL;
3193 } else {
3194 var39 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
3195 var40 = ((val* (*)(val*))(var39->class->vft[COLOR_model__MClass__name]))(var39) /* name on <var39:MClass>*/;
3196 if (varonce41) {
3197 var42 = varonce41;
3198 } else {
3199 var43 = "Float";
3200 var44 = 5;
3201 var45 = string__NativeString__to_s_with_length(var43, var44);
3202 var42 = var45;
3203 varonce41 = var42;
3204 }
3205 var46 = ((short int (*)(val*, val*))(var40->class->vft[COLOR_kernel__Object___61d_61d]))(var40, var42) /* == on <var40:String>*/;
3206 if (var46){
3207 if (varonce47) {
3208 var48 = varonce47;
3209 } else {
3210 var49 = "d";
3211 var50 = 1;
3212 var51 = string__NativeString__to_s_with_length(var49, var50);
3213 var48 = var51;
3214 varonce47 = var48;
3215 }
3216 var = var48;
3217 goto RET_LABEL;
3218 } else {
3219 var52 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
3220 var53 = ((val* (*)(val*))(var52->class->vft[COLOR_model__MClass__name]))(var52) /* name on <var52:MClass>*/;
3221 if (varonce54) {
3222 var55 = varonce54;
3223 } else {
3224 var56 = "NativeString";
3225 var57 = 12;
3226 var58 = string__NativeString__to_s_with_length(var56, var57);
3227 var55 = var58;
3228 varonce54 = var55;
3229 }
3230 var59 = ((short int (*)(val*, val*))(var53->class->vft[COLOR_kernel__Object___61d_61d]))(var53, var55) /* == on <var53:String>*/;
3231 if (var59){
3232 if (varonce60) {
3233 var61 = varonce60;
3234 } else {
3235 var62 = "str";
3236 var63 = 3;
3237 var64 = string__NativeString__to_s_with_length(var62, var63);
3238 var61 = var64;
3239 varonce60 = var61;
3240 }
3241 var = var61;
3242 goto RET_LABEL;
3243 } else {
3244 var65 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
3245 var66 = ((val* (*)(val*))(var65->class->vft[COLOR_model__MClass__name]))(var65) /* name on <var65:MClass>*/;
3246 if (varonce67) {
3247 var68 = varonce67;
3248 } else {
3249 var69 = "NativeArray";
3250 var70 = 11;
3251 var71 = string__NativeString__to_s_with_length(var69, var70);
3252 var68 = var71;
3253 varonce67 = var68;
3254 }
3255 var72 = ((short int (*)(val*, val*))(var66->class->vft[COLOR_kernel__Object___61d_61d]))(var66, var68) /* == on <var66:String>*/;
3256 if (var72){
3257 if (varonce73) {
3258 var74 = varonce73;
3259 } else {
3260 var75 = "val";
3261 var76 = 3;
3262 var77 = string__NativeString__to_s_with_length(var75, var76);
3263 var74 = var77;
3264 varonce73 = var74;
3265 }
3266 var = var74;
3267 goto RET_LABEL;
3268 } else {
3269 var78 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__mclass]))(self) /* mclass on <self:MClassType>*/;
3270 var79 = ((val* (*)(val*))(var78->class->vft[COLOR_model__MClass__kind]))(var78) /* kind on <var78:MClass>*/;
3271 var80 = ((val* (*)(val*))(self->class->vft[COLOR_model__Object__extern_kind]))(self) /* extern_kind on <self:MClassType>*/;
3272 var81 = ((short int (*)(val*, val*))(var79->class->vft[COLOR_kernel__Object___61d_61d]))(var79, var80) /* == on <var79:MClassKind>*/;
3273 if (var81){
3274 if (varonce82) {
3275 var83 = varonce82;
3276 } else {
3277 var84 = "ptr";
3278 var85 = 3;
3279 var86 = string__NativeString__to_s_with_length(var84, var85);
3280 var83 = var86;
3281 varonce82 = var83;
3282 }
3283 var = var83;
3284 goto RET_LABEL;
3285 } else {
3286 if (varonce87) {
3287 var88 = varonce87;
3288 } else {
3289 var89 = "val";
3290 var90 = 3;
3291 var91 = string__NativeString__to_s_with_length(var89, var90);
3292 var88 = var91;
3293 varonce87 = var88;
3294 }
3295 var = var88;
3296 goto RET_LABEL;
3297 }
3298 }
3299 }
3300 }
3301 }
3302 }
3303 }
3304 RET_LABEL:;
3305 return var;
3306 }
3307 /* method abstract_compiler#MClassType#ctypename for (self: Object): String */
3308 val* VIRTUAL_abstract_compiler__MClassType__ctypename(val* self) {
3309 val* var /* : String */;
3310 val* var1 /* : String */;
3311 var1 = abstract_compiler__MClassType__ctypename(self);
3312 var = var1;
3313 RET_LABEL:;
3314 return var;
3315 }
3316 /* method abstract_compiler#MGenericType#c_name for (self: MGenericType): String */
3317 val* abstract_compiler__MGenericType__c_name(val* self) {
3318 val* var /* : String */;
3319 val* var1 /* : nullable String */;
3320 val* var_res /* var res: nullable String */;
3321 val* var2 /* : null */;
3322 short int var3 /* : Bool */;
3323 val* var4 /* : String */;
3324 val* var5 /* : Array[MType] */;
3325 val* var6 /* : Iterator[nullable Object] */;
3326 short int var7 /* : Bool */;
3327 val* var8 /* : nullable Object */;
3328 val* var_t /* var t: MType */;
3329 val* var9 /* : String */;
3330 val* var10 /* : String */;
3331 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MGenericType>*/;
3332 var_res = var1;
3333 var2 = NULL;
3334 if (var_res == NULL) {
3335 var3 = 0; /* is null */
3336 } else {
3337 var3 = 1; /* arg is null and recv is not */
3338 }
3339 if (var3){
3340 var = var_res;
3341 goto RET_LABEL;
3342 } else {
3343 }
3344 var4 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MGenericType__c_name]))(self) /* c_name on <self:MGenericType>*/;
3345 var_res = var4;
3346 var5 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClassType__arguments]))(self) /* arguments on <self:MGenericType>*/;
3347 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:Array[MType]>*/;
3348 for(;;) {
3349 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
3350 if(!var7) break;
3351 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
3352 var_t = var8;
3353 var9 = ((val* (*)(val*))(var_t->class->vft[COLOR_abstract_compiler__MType__c_name]))(var_t) /* c_name on <var_t:MType>*/;
3354 var10 = ((val* (*)(val*, val*))(var_res->class->vft[COLOR_string__String___43d]))(var_res, var9) /* + on <var_res:nullable String(String)>*/;
3355 var_res = var10;
3356 CONTINUE_label: (void)0;
3357 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
3358 }
3359 BREAK_label: (void)0;
3360 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MGenericType>*/;
3361 var = var_res;
3362 goto RET_LABEL;
3363 RET_LABEL:;
3364 return var;
3365 }
3366 /* method abstract_compiler#MGenericType#c_name for (self: Object): String */
3367 val* VIRTUAL_abstract_compiler__MGenericType__c_name(val* self) {
3368 val* var /* : String */;
3369 val* var1 /* : String */;
3370 var1 = abstract_compiler__MGenericType__c_name(self);
3371 var = var1;
3372 RET_LABEL:;
3373 return var;
3374 }
3375 /* method abstract_compiler#MParameterType#c_name for (self: MParameterType): String */
3376 val* abstract_compiler__MParameterType__c_name(val* self) {
3377 val* var /* : String */;
3378 val* var1 /* : nullable String */;
3379 val* var_res /* var res: nullable String */;
3380 val* var2 /* : null */;
3381 short int var3 /* : Bool */;
3382 val* var4 /* : Array[Object] */;
3383 long var5 /* : Int */;
3384 val* var_ /* var : Array[Object] */;
3385 static val* varonce;
3386 val* var6 /* : String */;
3387 char* var7 /* : NativeString */;
3388 long var8 /* : Int */;
3389 val* var9 /* : String */;
3390 val* var10 /* : MClass */;
3391 val* var11 /* : String */;
3392 static val* varonce12;
3393 val* var13 /* : String */;
3394 char* var14 /* : NativeString */;
3395 long var15 /* : Int */;
3396 val* var16 /* : String */;
3397 long var17 /* : Int */;
3398 val* var18 /* : nullable Object */;
3399 static val* varonce19;
3400 val* var20 /* : String */;
3401 char* var21 /* : NativeString */;
3402 long var22 /* : Int */;
3403 val* var23 /* : String */;
3404 val* var24 /* : String */;
3405 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MParameterType>*/;
3406 var_res = var1;
3407 var2 = NULL;
3408 if (var_res == NULL) {
3409 var3 = 0; /* is null */
3410 } else {
3411 var3 = 1; /* arg is null and recv is not */
3412 }
3413 if (var3){
3414 var = var_res;
3415 goto RET_LABEL;
3416 } else {
3417 }
3418 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3419 var5 = 5;
3420 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
3421 var_ = var4;
3422 if (varonce) {
3423 var6 = varonce;
3424 } else {
3425 var7 = "";
3426 var8 = 0;
3427 var9 = string__NativeString__to_s_with_length(var7, var8);
3428 var6 = var9;
3429 varonce = var6;
3430 }
3431 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
3432 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MParameterType__mclass]))(self) /* mclass on <self:MParameterType>*/;
3433 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_compiler__MClass__c_name]))(var10) /* c_name on <var10:MClass>*/;
3434 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
3435 if (varonce12) {
3436 var13 = varonce12;
3437 } else {
3438 var14 = "_FT";
3439 var15 = 3;
3440 var16 = string__NativeString__to_s_with_length(var14, var15);
3441 var13 = var16;
3442 varonce12 = var13;
3443 }
3444 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
3445 var17 = ((long (*)(val*))(self->class->vft[COLOR_model__MParameterType__rank]))(self) /* rank on <self:MParameterType>*/;
3446 var18 = BOX_kernel__Int(var17); /* autobox from Int to nullable Object */
3447 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var18) /* add on <var_:Array[Object]>*/;
3448 if (varonce19) {
3449 var20 = varonce19;
3450 } else {
3451 var21 = "";
3452 var22 = 0;
3453 var23 = string__NativeString__to_s_with_length(var21, var22);
3454 var20 = var23;
3455 varonce19 = var20;
3456 }
3457 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var20) /* add on <var_:Array[Object]>*/;
3458 var24 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
3459 var_res = var24;
3460 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MParameterType>*/;
3461 var = var_res;
3462 goto RET_LABEL;
3463 RET_LABEL:;
3464 return var;
3465 }
3466 /* method abstract_compiler#MParameterType#c_name for (self: Object): String */
3467 val* VIRTUAL_abstract_compiler__MParameterType__c_name(val* self) {
3468 val* var /* : String */;
3469 val* var1 /* : String */;
3470 var1 = abstract_compiler__MParameterType__c_name(self);
3471 var = var1;
3472 RET_LABEL:;
3473 return var;
3474 }
3475 /* method abstract_compiler#MVirtualType#c_name for (self: MVirtualType): String */
3476 val* abstract_compiler__MVirtualType__c_name(val* self) {
3477 val* var /* : String */;
3478 val* var1 /* : nullable String */;
3479 val* var_res /* var res: nullable String */;
3480 val* var2 /* : null */;
3481 short int var3 /* : Bool */;
3482 val* var4 /* : Array[Object] */;
3483 long var5 /* : Int */;
3484 val* var_ /* var : Array[Object] */;
3485 static val* varonce;
3486 val* var6 /* : String */;
3487 char* var7 /* : NativeString */;
3488 long var8 /* : Int */;
3489 val* var9 /* : String */;
3490 val* var10 /* : MProperty */;
3491 val* var11 /* : MPropDef */;
3492 val* var12 /* : MClassDef */;
3493 val* var13 /* : MClass */;
3494 val* var14 /* : String */;
3495 static val* varonce15;
3496 val* var16 /* : String */;
3497 char* var17 /* : NativeString */;
3498 long var18 /* : Int */;
3499 val* var19 /* : String */;
3500 val* var20 /* : MProperty */;
3501 val* var21 /* : String */;
3502 static val* varonce22;
3503 val* var23 /* : String */;
3504 char* var24 /* : NativeString */;
3505 long var25 /* : Int */;
3506 val* var26 /* : String */;
3507 val* var27 /* : String */;
3508 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MVirtualType>*/;
3509 var_res = var1;
3510 var2 = NULL;
3511 if (var_res == NULL) {
3512 var3 = 0; /* is null */
3513 } else {
3514 var3 = 1; /* arg is null and recv is not */
3515 }
3516 if (var3){
3517 var = var_res;
3518 goto RET_LABEL;
3519 } else {
3520 }
3521 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3522 var5 = 5;
3523 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
3524 var_ = var4;
3525 if (varonce) {
3526 var6 = varonce;
3527 } else {
3528 var7 = "";
3529 var8 = 0;
3530 var9 = string__NativeString__to_s_with_length(var7, var8);
3531 var6 = var9;
3532 varonce = var6;
3533 }
3534 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
3535 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on <self:MVirtualType>*/;
3536 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MProperty__intro]))(var10) /* intro on <var10:MProperty>*/;
3537 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mclassdef]))(var11) /* mclassdef on <var11:MPropDef>*/;
3538 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MClassDef__mclass]))(var12) /* mclass on <var12:MClassDef>*/;
3539 var14 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_compiler__MClass__c_name]))(var13) /* c_name on <var13:MClass>*/;
3540 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var14) /* add on <var_:Array[Object]>*/;
3541 if (varonce15) {
3542 var16 = varonce15;
3543 } else {
3544 var17 = "_VT";
3545 var18 = 3;
3546 var19 = string__NativeString__to_s_with_length(var17, var18);
3547 var16 = var19;
3548 varonce15 = var16;
3549 }
3550 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var16) /* add on <var_:Array[Object]>*/;
3551 var20 = ((val* (*)(val*))(self->class->vft[COLOR_model__MVirtualType__mproperty]))(self) /* mproperty on <self:MVirtualType>*/;
3552 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MProperty__name]))(var20) /* name on <var20:MProperty>*/;
3553 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var21) /* add on <var_:Array[Object]>*/;
3554 if (varonce22) {
3555 var23 = varonce22;
3556 } else {
3557 var24 = "";
3558 var25 = 0;
3559 var26 = string__NativeString__to_s_with_length(var24, var25);
3560 var23 = var26;
3561 varonce22 = var23;
3562 }
3563 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var23) /* add on <var_:Array[Object]>*/;
3564 var27 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
3565 var_res = var27;
3566 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MVirtualType>*/;
3567 var = var_res;
3568 goto RET_LABEL;
3569 RET_LABEL:;
3570 return var;
3571 }
3572 /* method abstract_compiler#MVirtualType#c_name for (self: Object): String */
3573 val* VIRTUAL_abstract_compiler__MVirtualType__c_name(val* self) {
3574 val* var /* : String */;
3575 val* var1 /* : String */;
3576 var1 = abstract_compiler__MVirtualType__c_name(self);
3577 var = var1;
3578 RET_LABEL:;
3579 return var;
3580 }
3581 /* method abstract_compiler#MNullableType#c_name for (self: MNullableType): String */
3582 val* abstract_compiler__MNullableType__c_name(val* self) {
3583 val* var /* : String */;
3584 val* var1 /* : nullable String */;
3585 val* var_res /* var res: nullable String */;
3586 val* var2 /* : null */;
3587 short int var3 /* : Bool */;
3588 val* var4 /* : Array[Object] */;
3589 long var5 /* : Int */;
3590 val* var_ /* var : Array[Object] */;
3591 static val* varonce;
3592 val* var6 /* : String */;
3593 char* var7 /* : NativeString */;
3594 long var8 /* : Int */;
3595 val* var9 /* : String */;
3596 val* var10 /* : MType */;
3597 val* var11 /* : String */;
3598 static val* varonce12;
3599 val* var13 /* : String */;
3600 char* var14 /* : NativeString */;
3601 long var15 /* : Int */;
3602 val* var16 /* : String */;
3603 val* var17 /* : String */;
3604 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache]))(self) /* c_name_cache on <self:MNullableType>*/;
3605 var_res = var1;
3606 var2 = NULL;
3607 if (var_res == NULL) {
3608 var3 = 0; /* is null */
3609 } else {
3610 var3 = 1; /* arg is null and recv is not */
3611 }
3612 if (var3){
3613 var = var_res;
3614 goto RET_LABEL;
3615 } else {
3616 }
3617 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3618 var5 = 3;
3619 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
3620 var_ = var4;
3621 if (varonce) {
3622 var6 = varonce;
3623 } else {
3624 var7 = "nullable_";
3625 var8 = 9;
3626 var9 = string__NativeString__to_s_with_length(var7, var8);
3627 var6 = var9;
3628 varonce = var6;
3629 }
3630 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
3631 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MNullableType__mtype]))(self) /* mtype on <self:MNullableType>*/;
3632 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_compiler__MType__c_name]))(var10) /* c_name on <var10:MType>*/;
3633 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
3634 if (varonce12) {
3635 var13 = varonce12;
3636 } else {
3637 var14 = "";
3638 var15 = 0;
3639 var16 = string__NativeString__to_s_with_length(var14, var15);
3640 var13 = var16;
3641 varonce12 = var13;
3642 }
3643 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
3644 var17 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
3645 var_res = var17;
3646 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MType__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MNullableType>*/;
3647 var = var_res;
3648 goto RET_LABEL;
3649 RET_LABEL:;
3650 return var;
3651 }
3652 /* method abstract_compiler#MNullableType#c_name for (self: Object): String */
3653 val* VIRTUAL_abstract_compiler__MNullableType__c_name(val* self) {
3654 val* var /* : String */;
3655 val* var1 /* : String */;
3656 var1 = abstract_compiler__MNullableType__c_name(self);
3657 var = var1;
3658 RET_LABEL:;
3659 return var;
3660 }
3661 /* method abstract_compiler#MClass#c_name for (self: MClass): String */
3662 val* abstract_compiler__MClass__c_name(val* self) {
3663 val* var /* : String */;
3664 val* var1 /* : nullable String */;
3665 val* var_res /* var res: nullable String */;
3666 val* var2 /* : null */;
3667 short int var3 /* : Bool */;
3668 val* var4 /* : Array[Object] */;
3669 long var5 /* : Int */;
3670 val* var_ /* var : Array[Object] */;
3671 static val* varonce;
3672 val* var6 /* : String */;
3673 char* var7 /* : NativeString */;
3674 long var8 /* : Int */;
3675 val* var9 /* : String */;
3676 val* var10 /* : MModule */;
3677 val* var11 /* : String */;
3678 val* var12 /* : String */;
3679 static val* varonce13;
3680 val* var14 /* : String */;
3681 char* var15 /* : NativeString */;
3682 long var16 /* : Int */;
3683 val* var17 /* : String */;
3684 val* var18 /* : String */;
3685 val* var19 /* : String */;
3686 static val* varonce20;
3687 val* var21 /* : String */;
3688 char* var22 /* : NativeString */;
3689 long var23 /* : Int */;
3690 val* var24 /* : String */;
3691 val* var25 /* : String */;
3692 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MClass__c_name_cache]))(self) /* c_name_cache on <self:MClass>*/;
3693 var_res = var1;
3694 var2 = NULL;
3695 if (var_res == NULL) {
3696 var3 = 0; /* is null */
3697 } else {
3698 var3 = 1; /* arg is null and recv is not */
3699 }
3700 if (var3){
3701 var = var_res;
3702 goto RET_LABEL;
3703 } else {
3704 }
3705 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3706 var5 = 5;
3707 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
3708 var_ = var4;
3709 if (varonce) {
3710 var6 = varonce;
3711 } else {
3712 var7 = "";
3713 var8 = 0;
3714 var9 = string__NativeString__to_s_with_length(var7, var8);
3715 var6 = var9;
3716 varonce = var6;
3717 }
3718 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
3719 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__intro_mmodule]))(self) /* intro_mmodule on <self:MClass>*/;
3720 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_mmodule__MModule__name]))(var10) /* name on <var10:MModule>*/;
3721 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_string__AbstractString__to_cmangle]))(var11) /* to_cmangle on <var11:String>*/;
3722 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var12) /* add on <var_:Array[Object]>*/;
3723 if (varonce13) {
3724 var14 = varonce13;
3725 } else {
3726 var15 = "__";
3727 var16 = 2;
3728 var17 = string__NativeString__to_s_with_length(var15, var16);
3729 var14 = var17;
3730 varonce13 = var14;
3731 }
3732 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var14) /* add on <var_:Array[Object]>*/;
3733 var18 = ((val* (*)(val*))(self->class->vft[COLOR_model__MClass__name]))(self) /* name on <self:MClass>*/;
3734 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_string__AbstractString__to_cmangle]))(var18) /* to_cmangle on <var18:String>*/;
3735 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var19) /* add on <var_:Array[Object]>*/;
3736 if (varonce20) {
3737 var21 = varonce20;
3738 } else {
3739 var22 = "";
3740 var23 = 0;
3741 var24 = string__NativeString__to_s_with_length(var22, var23);
3742 var21 = var24;
3743 varonce20 = var21;
3744 }
3745 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var21) /* add on <var_:Array[Object]>*/;
3746 var25 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
3747 var_res = var25;
3748 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MClass__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MClass>*/;
3749 var = var_res;
3750 goto RET_LABEL;
3751 RET_LABEL:;
3752 return var;
3753 }
3754 /* method abstract_compiler#MClass#c_name for (self: Object): String */
3755 val* VIRTUAL_abstract_compiler__MClass__c_name(val* self) {
3756 val* var /* : String */;
3757 val* var1 /* : String */;
3758 var1 = abstract_compiler__MClass__c_name(self);
3759 var = var1;
3760 RET_LABEL:;
3761 return var;
3762 }
3763 /* method abstract_compiler#MClass#c_name_cache for (self: MClass): nullable String */
3764 val* abstract_compiler__MClass__c_name_cache(val* self) {
3765 val* var /* : nullable String */;
3766 val* var1 /* : nullable String */;
3767 var1 = self->attrs[COLOR_abstract_compiler__MClass___64dc_name_cache].val; /* @c_name_cache on <self:MClass> */
3768 var = var1;
3769 RET_LABEL:;
3770 return var;
3771 }
3772 /* method abstract_compiler#MClass#c_name_cache for (self: Object): nullable String */
3773 val* VIRTUAL_abstract_compiler__MClass__c_name_cache(val* self) {
3774 val* var /* : nullable String */;
3775 val* var1 /* : nullable String */;
3776 var1 = abstract_compiler__MClass__c_name_cache(self);
3777 var = var1;
3778 RET_LABEL:;
3779 return var;
3780 }
3781 /* method abstract_compiler#MClass#c_name_cache= for (self: MClass, nullable String) */
3782 void abstract_compiler__MClass__c_name_cache_61d(val* self, val* p0) {
3783 self->attrs[COLOR_abstract_compiler__MClass___64dc_name_cache].val = p0; /* @c_name_cache on <self:MClass> */
3784 RET_LABEL:;
3785 }
3786 /* method abstract_compiler#MClass#c_name_cache= for (self: Object, nullable String) */
3787 void VIRTUAL_abstract_compiler__MClass__c_name_cache_61d(val* self, val* p0) {
3788 abstract_compiler__MClass__c_name_cache_61d(self, p0);
3789 RET_LABEL:;
3790 }
3791 /* method abstract_compiler#MProperty#c_name for (self: MProperty): String */
3792 val* abstract_compiler__MProperty__c_name(val* self) {
3793 val* var /* : String */;
3794 val* var1 /* : nullable String */;
3795 val* var_res /* var res: nullable String */;
3796 val* var2 /* : null */;
3797 short int var3 /* : Bool */;
3798 val* var4 /* : Array[Object] */;
3799 long var5 /* : Int */;
3800 val* var_ /* var : Array[Object] */;
3801 static val* varonce;
3802 val* var6 /* : String */;
3803 char* var7 /* : NativeString */;
3804 long var8 /* : Int */;
3805 val* var9 /* : String */;
3806 val* var10 /* : MPropDef */;
3807 val* var11 /* : String */;
3808 static val* varonce12;
3809 val* var13 /* : String */;
3810 char* var14 /* : NativeString */;
3811 long var15 /* : Int */;
3812 val* var16 /* : String */;
3813 val* var17 /* : String */;
3814 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MProperty__c_name_cache]))(self) /* c_name_cache on <self:MProperty>*/;
3815 var_res = var1;
3816 var2 = NULL;
3817 if (var_res == NULL) {
3818 var3 = 0; /* is null */
3819 } else {
3820 var3 = 1; /* arg is null and recv is not */
3821 }
3822 if (var3){
3823 var = var_res;
3824 goto RET_LABEL;
3825 } else {
3826 }
3827 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3828 var5 = 3;
3829 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
3830 var_ = var4;
3831 if (varonce) {
3832 var6 = varonce;
3833 } else {
3834 var7 = "";
3835 var8 = 0;
3836 var9 = string__NativeString__to_s_with_length(var7, var8);
3837 var6 = var9;
3838 varonce = var6;
3839 }
3840 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
3841 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__intro]))(self) /* intro on <self:MProperty>*/;
3842 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_compiler__MPropDef__c_name]))(var10) /* c_name on <var10:MPropDef>*/;
3843 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var11) /* add on <var_:Array[Object]>*/;
3844 if (varonce12) {
3845 var13 = varonce12;
3846 } else {
3847 var14 = "";
3848 var15 = 0;
3849 var16 = string__NativeString__to_s_with_length(var14, var15);
3850 var13 = var16;
3851 varonce12 = var13;
3852 }
3853 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
3854 var17 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
3855 var_res = var17;
3856 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MProperty__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MProperty>*/;
3857 var = var_res;
3858 goto RET_LABEL;
3859 RET_LABEL:;
3860 return var;
3861 }
3862 /* method abstract_compiler#MProperty#c_name for (self: Object): String */
3863 val* VIRTUAL_abstract_compiler__MProperty__c_name(val* self) {
3864 val* var /* : String */;
3865 val* var1 /* : String */;
3866 var1 = abstract_compiler__MProperty__c_name(self);
3867 var = var1;
3868 RET_LABEL:;
3869 return var;
3870 }
3871 /* method abstract_compiler#MProperty#c_name_cache for (self: MProperty): nullable String */
3872 val* abstract_compiler__MProperty__c_name_cache(val* self) {
3873 val* var /* : nullable String */;
3874 val* var1 /* : nullable String */;
3875 var1 = self->attrs[COLOR_abstract_compiler__MProperty___64dc_name_cache].val; /* @c_name_cache on <self:MProperty> */
3876 var = var1;
3877 RET_LABEL:;
3878 return var;
3879 }
3880 /* method abstract_compiler#MProperty#c_name_cache for (self: Object): nullable String */
3881 val* VIRTUAL_abstract_compiler__MProperty__c_name_cache(val* self) {
3882 val* var /* : nullable String */;
3883 val* var1 /* : nullable String */;
3884 var1 = abstract_compiler__MProperty__c_name_cache(self);
3885 var = var1;
3886 RET_LABEL:;
3887 return var;
3888 }
3889 /* method abstract_compiler#MProperty#c_name_cache= for (self: MProperty, nullable String) */
3890 void abstract_compiler__MProperty__c_name_cache_61d(val* self, val* p0) {
3891 self->attrs[COLOR_abstract_compiler__MProperty___64dc_name_cache].val = p0; /* @c_name_cache on <self:MProperty> */
3892 RET_LABEL:;
3893 }
3894 /* method abstract_compiler#MProperty#c_name_cache= for (self: Object, nullable String) */
3895 void VIRTUAL_abstract_compiler__MProperty__c_name_cache_61d(val* self, val* p0) {
3896 abstract_compiler__MProperty__c_name_cache_61d(self, p0);
3897 RET_LABEL:;
3898 }
3899 /* method abstract_compiler#MPropDef#c_name_cache for (self: MPropDef): nullable String */
3900 val* abstract_compiler__MPropDef__c_name_cache(val* self) {
3901 val* var /* : nullable String */;
3902 val* var1 /* : nullable String */;
3903 var1 = self->attrs[COLOR_abstract_compiler__MPropDef___64dc_name_cache].val; /* @c_name_cache on <self:MPropDef> */
3904 var = var1;
3905 RET_LABEL:;
3906 return var;
3907 }
3908 /* method abstract_compiler#MPropDef#c_name_cache for (self: Object): nullable String */
3909 val* VIRTUAL_abstract_compiler__MPropDef__c_name_cache(val* self) {
3910 val* var /* : nullable String */;
3911 val* var1 /* : nullable String */;
3912 var1 = abstract_compiler__MPropDef__c_name_cache(self);
3913 var = var1;
3914 RET_LABEL:;
3915 return var;
3916 }
3917 /* method abstract_compiler#MPropDef#c_name_cache= for (self: MPropDef, nullable String) */
3918 void abstract_compiler__MPropDef__c_name_cache_61d(val* self, val* p0) {
3919 self->attrs[COLOR_abstract_compiler__MPropDef___64dc_name_cache].val = p0; /* @c_name_cache on <self:MPropDef> */
3920 RET_LABEL:;
3921 }
3922 /* method abstract_compiler#MPropDef#c_name_cache= for (self: Object, nullable String) */
3923 void VIRTUAL_abstract_compiler__MPropDef__c_name_cache_61d(val* self, val* p0) {
3924 abstract_compiler__MPropDef__c_name_cache_61d(self, p0);
3925 RET_LABEL:;
3926 }
3927 /* method abstract_compiler#MPropDef#c_name for (self: MPropDef): String */
3928 val* abstract_compiler__MPropDef__c_name(val* self) {
3929 val* var /* : String */;
3930 val* var1 /* : nullable String */;
3931 val* var_res /* var res: nullable String */;
3932 val* var2 /* : null */;
3933 short int var3 /* : Bool */;
3934 val* var4 /* : Array[Object] */;
3935 long var5 /* : Int */;
3936 val* var_ /* var : Array[Object] */;
3937 static val* varonce;
3938 val* var6 /* : String */;
3939 char* var7 /* : NativeString */;
3940 long var8 /* : Int */;
3941 val* var9 /* : String */;
3942 val* var10 /* : MClassDef */;
3943 val* var11 /* : MModule */;
3944 val* var12 /* : String */;
3945 val* var13 /* : String */;
3946 static val* varonce14;
3947 val* var15 /* : String */;
3948 char* var16 /* : NativeString */;
3949 long var17 /* : Int */;
3950 val* var18 /* : String */;
3951 val* var19 /* : MClassDef */;
3952 val* var20 /* : MClass */;
3953 val* var21 /* : String */;
3954 val* var22 /* : String */;
3955 static val* varonce23;
3956 val* var24 /* : String */;
3957 char* var25 /* : NativeString */;
3958 long var26 /* : Int */;
3959 val* var27 /* : String */;
3960 val* var28 /* : MProperty */;
3961 val* var29 /* : String */;
3962 val* var30 /* : String */;
3963 static val* varonce31;
3964 val* var32 /* : String */;
3965 char* var33 /* : NativeString */;
3966 long var34 /* : Int */;
3967 val* var35 /* : String */;
3968 val* var36 /* : String */;
3969 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MPropDef__c_name_cache]))(self) /* c_name_cache on <self:MPropDef>*/;
3970 var_res = var1;
3971 var2 = NULL;
3972 if (var_res == NULL) {
3973 var3 = 0; /* is null */
3974 } else {
3975 var3 = 1; /* arg is null and recv is not */
3976 }
3977 if (var3){
3978 var = var_res;
3979 goto RET_LABEL;
3980 } else {
3981 }
3982 var4 = NEW_array__Array(&type_array__Arraykernel__Object);
3983 var5 = 7;
3984 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[Object]>*/;
3985 var_ = var4;
3986 if (varonce) {
3987 var6 = varonce;
3988 } else {
3989 var7 = "";
3990 var8 = 0;
3991 var9 = string__NativeString__to_s_with_length(var7, var8);
3992 var6 = var9;
3993 varonce = var6;
3994 }
3995 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var6) /* add on <var_:Array[Object]>*/;
3996 var10 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mclassdef]))(self) /* mclassdef on <self:MPropDef>*/;
3997 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_model__MClassDef__mmodule]))(var10) /* mmodule on <var10:MClassDef>*/;
3998 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_mmodule__MModule__name]))(var11) /* name on <var11:MModule>*/;
3999 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__AbstractString__to_cmangle]))(var12) /* to_cmangle on <var12:String>*/;
4000 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var13) /* add on <var_:Array[Object]>*/;
4001 if (varonce14) {
4002 var15 = varonce14;
4003 } else {
4004 var16 = "__";
4005 var17 = 2;
4006 var18 = string__NativeString__to_s_with_length(var16, var17);
4007 var15 = var18;
4008 varonce14 = var15;
4009 }
4010 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var15) /* add on <var_:Array[Object]>*/;
4011 var19 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mclassdef]))(self) /* mclassdef on <self:MPropDef>*/;
4012 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MClassDef__mclass]))(var19) /* mclass on <var19:MClassDef>*/;
4013 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MClass__name]))(var20) /* name on <var20:MClass>*/;
4014 var22 = ((val* (*)(val*))(var21->class->vft[COLOR_string__AbstractString__to_cmangle]))(var21) /* to_cmangle on <var21:String>*/;
4015 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var22) /* add on <var_:Array[Object]>*/;
4016 if (varonce23) {
4017 var24 = varonce23;
4018 } else {
4019 var25 = "__";
4020 var26 = 2;
4021 var27 = string__NativeString__to_s_with_length(var25, var26);
4022 var24 = var27;
4023 varonce23 = var24;
4024 }
4025 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var24) /* add on <var_:Array[Object]>*/;
4026 var28 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MPropDef>*/;
4027 var29 = ((val* (*)(val*))(var28->class->vft[COLOR_model__MProperty__name]))(var28) /* name on <var28:MProperty>*/;
4028 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_string__AbstractString__to_cmangle]))(var29) /* to_cmangle on <var29:String>*/;
4029 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var30) /* add on <var_:Array[Object]>*/;
4030 if (varonce31) {
4031 var32 = varonce31;
4032 } else {
4033 var33 = "";
4034 var34 = 0;
4035 var35 = string__NativeString__to_s_with_length(var33, var34);
4036 var32 = var35;
4037 varonce31 = var32;
4038 }
4039 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var32) /* add on <var_:Array[Object]>*/;
4040 var36 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
4041 var_res = var36;
4042 ((void (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MPropDef__c_name_cache_61d]))(self, var_res) /* c_name_cache= on <self:MPropDef>*/;
4043 var = var_res;
4044 goto RET_LABEL;
4045 RET_LABEL:;
4046 return var;
4047 }
4048 /* method abstract_compiler#MPropDef#c_name for (self: Object): String */
4049 val* VIRTUAL_abstract_compiler__MPropDef__c_name(val* self) {
4050 val* var /* : String */;
4051 val* var1 /* : String */;
4052 var1 = abstract_compiler__MPropDef__c_name(self);
4053 var = var1;
4054 RET_LABEL:;
4055 return var;
4056 }
4057 /* method abstract_compiler#MMethodDef#can_inline for (self: MMethodDef, AbstractCompilerVisitor): Bool */
4058 short int abstract_compiler__MMethodDef__can_inline(val* self, val* p0) {
4059 short int var /* : Bool */;
4060 short int var1 /* : Bool */;
4061 int cltype;
4062 int idtype;
4063 const struct type* type_struct;
4064 const char* var_class_name;
4065 val* var_v /* var v: AbstractCompilerVisitor */;
4066 val* var2 /* : AbstractCompiler */;
4067 val* var3 /* : ModelBuilder */;
4068 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4069 val* var4 /* : HashMap[MPropDef, APropdef] */;
4070 short int var5 /* : Bool */;
4071 val* var6 /* : HashMap[MPropDef, APropdef] */;
4072 val* var7 /* : nullable Object */;
4073 val* var_npropdef /* var npropdef: APropdef */;
4074 short int var8 /* : Bool */;
4075 val* var9 /* : MProperty */;
4076 val* var10 /* : String */;
4077 static val* varonce;
4078 val* var11 /* : String */;
4079 char* var12 /* : NativeString */;
4080 long var13 /* : Int */;
4081 val* var14 /* : String */;
4082 short int var15 /* : Bool */;
4083 short int var16 /* : Bool */;
4084 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
4085 /* <p0:AbstractCompilerVisitor> isa VISITOR */
4086 type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTVISITOR];
4087 cltype = type_struct->color;
4088 idtype = type_struct->id;
4089 if(cltype >= p0->type->table_size) {
4090 var1 = 0;
4091 } else {
4092 var1 = p0->type->type_table[cltype] == idtype;
4093 }
4094 if (!var1) {
4095 var_class_name = p0 == NULL ? "null" : p0->type->name;
4096 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
4097 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1355);
4098 show_backtrace(1);
4099 }
4100 var_v = p0;
4101 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4102 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var2) /* modelbuilder on <var2:AbstractCompiler>*/;
4103 var_modelbuilder = var3;
4104 var4 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
4105 var5 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var4, self) /* has_key on <var4:HashMap[MPropDef, APropdef]>*/;
4106 if (var5){
4107 var6 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
4108 var7 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var6, self) /* [] on <var6:HashMap[MPropDef, APropdef]>*/;
4109 var_npropdef = var7;
4110 var8 = ((short int (*)(val*))(var_npropdef->class->vft[COLOR_abstract_compiler__APropdef__can_inline]))(var_npropdef) /* can_inline on <var_npropdef:APropdef>*/;
4111 var = var8;
4112 goto RET_LABEL;
4113 } else {
4114 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MMethodDef>*/;
4115 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MProperty__name]))(var9) /* name on <var9:MProperty(MMethod)>*/;
4116 if (varonce) {
4117 var11 = varonce;
4118 } else {
4119 var12 = "init";
4120 var13 = 4;
4121 var14 = string__NativeString__to_s_with_length(var12, var13);
4122 var11 = var14;
4123 varonce = var11;
4124 }
4125 var15 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_kernel__Object___61d_61d]))(var10, var11) /* == on <var10:String>*/;
4126 if (var15){
4127 var16 = 1;
4128 var = var16;
4129 goto RET_LABEL;
4130 } else {
4131 fprintf(stderr, "Runtime error: %s", "Aborted");
4132 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1366);
4133 show_backtrace(1);
4134 }
4135 }
4136 RET_LABEL:;
4137 return var;
4138 }
4139 /* method abstract_compiler#MMethodDef#can_inline for (self: Object, AbstractCompilerVisitor): Bool */
4140 short int VIRTUAL_abstract_compiler__MMethodDef__can_inline(val* self, val* p0) {
4141 short int var /* : Bool */;
4142 short int var1 /* : Bool */;
4143 var1 = abstract_compiler__MMethodDef__can_inline(self, p0);
4144 var = var1;
4145 RET_LABEL:;
4146 return var;
4147 }
4148 /* method abstract_compiler#MMethodDef#compile_inside_to_c for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
4149 val* abstract_compiler__MMethodDef__compile_inside_to_c(val* self, val* p0, val* p1) {
4150 val* var /* : nullable RuntimeVariable */;
4151 short int var1 /* : Bool */;
4152 int cltype;
4153 int idtype;
4154 const struct type* type_struct;
4155 const char* var_class_name;
4156 val* var_v /* var v: AbstractCompilerVisitor */;
4157 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4158 val* var2 /* : AbstractCompiler */;
4159 val* var3 /* : ModelBuilder */;
4160 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4161 val* var4 /* : HashMap[MPropDef, APropdef] */;
4162 short int var5 /* : Bool */;
4163 val* var6 /* : HashMap[MPropDef, APropdef] */;
4164 val* var7 /* : nullable Object */;
4165 val* var_npropdef /* var npropdef: APropdef */;
4166 val* var8 /* : nullable ANode */;
4167 val* var_oldnode /* var oldnode: nullable ANode */;
4168 val* var9 /* : MProperty */;
4169 val* var10 /* : String */;
4170 static val* varonce;
4171 val* var11 /* : String */;
4172 char* var12 /* : NativeString */;
4173 long var13 /* : Int */;
4174 val* var14 /* : String */;
4175 short int var15 /* : Bool */;
4176 val* var16 /* : HashMap[MClassDef, AClassdef] */;
4177 val* var17 /* : MClassDef */;
4178 val* var18 /* : nullable Object */;
4179 val* var_nclassdef /* var nclassdef: AClassdef */;
4180 val* var19 /* : nullable ANode */;
4181 val* var_oldnode20 /* var oldnode: nullable ANode */;
4182 val* var21 /* : null */;
4183 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
4184 /* <p0:AbstractCompilerVisitor> isa VISITOR */
4185 type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTVISITOR];
4186 cltype = type_struct->color;
4187 idtype = type_struct->id;
4188 if(cltype >= p0->type->table_size) {
4189 var1 = 0;
4190 } else {
4191 var1 = p0->type->type_table[cltype] == idtype;
4192 }
4193 if (!var1) {
4194 var_class_name = p0 == NULL ? "null" : p0->type->name;
4195 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
4196 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1370);
4197 show_backtrace(1);
4198 }
4199 var_v = p0;
4200 var_arguments = p1;
4201 var2 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4202 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var2) /* modelbuilder on <var2:AbstractCompiler>*/;
4203 var_modelbuilder = var3;
4204 var4 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
4205 var5 = ((short int (*)(val*, val*))(var4->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var4, self) /* has_key on <var4:HashMap[MPropDef, APropdef]>*/;
4206 if (var5){
4207 var6 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_property__ModelBuilder__mpropdef2npropdef]))(var_modelbuilder) /* mpropdef2npropdef on <var_modelbuilder:ModelBuilder>*/;
4208 var7 = ((val* (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var6, self) /* [] on <var6:HashMap[MPropDef, APropdef]>*/;
4209 var_npropdef = var7;
4210 var8 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
4211 var_oldnode = var8;
4212 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_npropdef) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
4213 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__MMethodDef__compile_parameter_check]))(self, var_v, var_arguments) /* compile_parameter_check on <self:MMethodDef>*/;
4214 ((void (*)(val*, val*, val*, val*))(var_npropdef->class->vft[COLOR_abstract_compiler__APropdef__compile_to_c]))(var_npropdef, var_v, self, var_arguments) /* compile_to_c on <var_npropdef:APropdef>*/;
4215 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
4216 } else {
4217 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MMethodDef>*/;
4218 var10 = ((val* (*)(val*))(var9->class->vft[COLOR_model__MProperty__name]))(var9) /* name on <var9:MProperty(MMethod)>*/;
4219 if (varonce) {
4220 var11 = varonce;
4221 } else {
4222 var12 = "init";
4223 var13 = 4;
4224 var14 = string__NativeString__to_s_with_length(var12, var13);
4225 var11 = var14;
4226 varonce = var11;
4227 }
4228 var15 = ((short int (*)(val*, val*))(var10->class->vft[COLOR_kernel__Object___61d_61d]))(var10, var11) /* == on <var10:String>*/;
4229 if (var15){
4230 var16 = ((val* (*)(val*))(var_modelbuilder->class->vft[COLOR_modelize_class__ModelBuilder__mclassdef2nclassdef]))(var_modelbuilder) /* mclassdef2nclassdef on <var_modelbuilder:ModelBuilder>*/;
4231 var17 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mclassdef]))(self) /* mclassdef on <self:MMethodDef>*/;
4232 var18 = ((val* (*)(val*, val*))(var16->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var16, var17) /* [] on <var16:HashMap[MClassDef, AClassdef]>*/;
4233 var_nclassdef = var18;
4234 var19 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node]))(var_v) /* current_node on <var_v:AbstractCompilerVisitor>*/;
4235 var_oldnode20 = var19;
4236 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_nclassdef) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
4237 ((void (*)(val*, val*, val*))(self->class->vft[COLOR_abstract_compiler__MMethodDef__compile_parameter_check]))(self, var_v, var_arguments) /* compile_parameter_check on <self:MMethodDef>*/;
4238 ((void (*)(val*, val*, val*, val*))(var_nclassdef->class->vft[COLOR_abstract_compiler__AClassdef__compile_to_c]))(var_nclassdef, var_v, self, var_arguments) /* compile_to_c on <var_nclassdef:AClassdef>*/;
4239 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__current_node_61d]))(var_v, var_oldnode20) /* current_node= on <var_v:AbstractCompilerVisitor>*/;
4240 } else {
4241 fprintf(stderr, "Runtime error: %s", "Aborted");
4242 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1389);
4243 show_backtrace(1);
4244 }
4245 }
4246 var21 = NULL;
4247 var = var21;
4248 goto RET_LABEL;
4249 RET_LABEL:;
4250 return var;
4251 }
4252 /* method abstract_compiler#MMethodDef#compile_inside_to_c for (self: Object, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
4253 val* VIRTUAL_abstract_compiler__MMethodDef__compile_inside_to_c(val* self, val* p0, val* p1) {
4254 val* var /* : nullable RuntimeVariable */;
4255 val* var1 /* : nullable RuntimeVariable */;
4256 var1 = abstract_compiler__MMethodDef__compile_inside_to_c(self, p0, p1);
4257 var = var1;
4258 RET_LABEL:;
4259 return var;
4260 }
4261 /* method abstract_compiler#MMethodDef#compile_parameter_check for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]) */
4262 void abstract_compiler__MMethodDef__compile_parameter_check(val* self, val* p0, val* p1) {
4263 short int var /* : Bool */;
4264 int cltype;
4265 int idtype;
4266 const struct type* type_struct;
4267 const char* var_class_name;
4268 val* var_v /* var v: AbstractCompilerVisitor */;
4269 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4270 val* var1 /* : AbstractCompiler */;
4271 val* var2 /* : ModelBuilder */;
4272 val* var3 /* : ToolContext */;
4273 val* var4 /* : OptionBool */;
4274 val* var5 /* : nullable Object */;
4275 short int var6 /* : Bool */;
4276 val* var7 /* : Range[Int] */;
4277 long var8 /* : Int */;
4278 val* var9 /* : nullable MSignature */;
4279 long var10 /* : Int */;
4280 val* var11 /* : Discrete */;
4281 val* var12 /* : Discrete */;
4282 val* var13 /* : Iterator[nullable Object] */;
4283 short int var14 /* : Bool */;
4284 val* var15 /* : nullable Object */;
4285 long var_i /* var i: Int */;
4286 long var16 /* : Int */;
4287 val* var17 /* : nullable MSignature */;
4288 long var18 /* : Int */;
4289 short int var19 /* : Bool */;
4290 short int var21 /* : Bool */;
4291 val* var22 /* : MProperty */;
4292 val* var23 /* : MPropDef */;
4293 val* var24 /* : nullable MSignature */;
4294 val* var25 /* : Array[MParameter] */;
4295 val* var26 /* : nullable Object */;
4296 val* var27 /* : MType */;
4297 val* var_origmtype /* var origmtype: MType */;
4298 short int var28 /* : Bool */;
4299 short int var29 /* : Bool */;
4300 val* var30 /* : nullable MSignature */;
4301 val* var31 /* : Array[MParameter] */;
4302 val* var32 /* : nullable Object */;
4303 val* var33 /* : MType */;
4304 val* var_mtype /* var mtype: MType */;
4305 static val* varonce;
4306 val* var34 /* : String */;
4307 char* var35 /* : NativeString */;
4308 long var36 /* : Int */;
4309 val* var37 /* : String */;
4310 static val* varonce38;
4311 val* var39 /* : String */;
4312 char* var40 /* : NativeString */;
4313 long var41 /* : Int */;
4314 val* var42 /* : String */;
4315 val* var43 /* : nullable MSignature */;
4316 val* var44 /* : Array[MParameter] */;
4317 val* var45 /* : nullable Object */;
4318 val* var46 /* : String */;
4319 static val* varonce47;
4320 val* var48 /* : String */;
4321 char* var49 /* : NativeString */;
4322 long var50 /* : Int */;
4323 val* var51 /* : String */;
4324 long var52 /* : Int */;
4325 long var53 /* : Int */;
4326 long var55 /* : Int */;
4327 val* var56 /* : nullable Object */;
4328 val* var57 /* : String */;
4329 static val* varonce58;
4330 val* var59 /* : String */;
4331 char* var60 /* : NativeString */;
4332 long var61 /* : Int */;
4333 val* var62 /* : String */;
4334 static val* varonce63;
4335 val* var64 /* : String */;
4336 char* var65 /* : NativeString */;
4337 long var66 /* : Int */;
4338 val* var67 /* : String */;
4339 val* var68 /* : Array[Object] */;
4340 long var69 /* : Int */;
4341 val* var70 /* : NativeArray[Object] */;
4342 val* var71 /* : Object */;
4343 val* var72 /* : String */;
4344 long var73 /* : Int */;
4345 long var74 /* : Int */;
4346 long var76 /* : Int */;
4347 val* var77 /* : nullable Object */;
4348 static val* varonce78;
4349 val* var79 /* : String */;
4350 char* var80 /* : NativeString */;
4351 long var81 /* : Int */;
4352 val* var82 /* : String */;
4353 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
4354 /* <p0:AbstractCompilerVisitor> isa VISITOR */
4355 type_struct = self->type->resolution_table->types[COLOR_model__MPropDef_VTVISITOR];
4356 cltype = type_struct->color;
4357 idtype = type_struct->id;
4358 if(cltype >= p0->type->table_size) {
4359 var = 0;
4360 } else {
4361 var = p0->type->type_table[cltype] == idtype;
4362 }
4363 if (!var) {
4364 var_class_name = p0 == NULL ? "null" : p0->type->name;
4365 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
4366 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1394);
4367 show_backtrace(1);
4368 }
4369 var_v = p0;
4370 var_arguments = p1;
4371 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
4372 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var1) /* modelbuilder on <var1:AbstractCompiler>*/;
4373 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var2) /* toolcontext on <var2:ModelBuilder>*/;
4374 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_check_covariance]))(var3) /* opt_no_check_covariance on <var3:ToolContext>*/;
4375 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_opts__Option__value]))(var4) /* value on <var4:OptionBool>*/;
4376 var6 = ((struct instance_kernel__Bool*)var5)->value; /* autounbox from nullable Object to Bool */;
4377 if (var6){
4378 goto RET_LABEL;
4379 } else {
4380 }
4381 var7 = NEW_range__Range(&type_range__Rangekernel__Int);
4382 var8 = 0;
4383 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
4384 if (var9 == NULL) {
4385 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4386 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1399);
4387 show_backtrace(1);
4388 } else {
4389 var10 = ((long (*)(val*))(var9->class->vft[COLOR_model__MSignature__arity]))(var9) /* arity on <var9:nullable MSignature>*/;
4390 }
4391 var11 = BOX_kernel__Int(var8); /* autobox from Int to Discrete */
4392 var12 = BOX_kernel__Int(var10); /* autobox from Int to Discrete */
4393 ((void (*)(val*, val*, val*))(var7->class->vft[COLOR_range__Range__without_last]))(var7, var11, var12) /* without_last on <var7:Range[Int]>*/;
4394 var13 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var7) /* iterator on <var7:Range[Int]>*/;
4395 for(;;) {
4396 var14 = ((short int (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var13) /* is_ok on <var13:Iterator[nullable Object]>*/;
4397 if(!var14) break;
4398 var15 = ((val* (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__item]))(var13) /* item on <var13:Iterator[nullable Object]>*/;
4399 var16 = ((struct instance_kernel__Int*)var15)->value; /* autounbox from nullable Object to Int */;
4400 var_i = var16;
4401 var17 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
4402 if (var17 == NULL) {
4403 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4404 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1401);
4405 show_backtrace(1);
4406 } else {
4407 var18 = ((long (*)(val*))(var17->class->vft[COLOR_model__MSignature__vararg_rank]))(var17) /* vararg_rank on <var17:nullable MSignature>*/;
4408 }
4409 { /* Inline kernel#Int#== (var18,var_i) */
4410 var21 = var18 == var_i;
4411 var19 = var21;
4412 goto RET_LABEL20;
4413 RET_LABEL20:(void)0;
4414 }
4415 if (var19){
4416 goto CONTINUE_label;
4417 } else {
4418 }
4419 var22 = ((val* (*)(val*))(self->class->vft[COLOR_model__MPropDef__mproperty]))(self) /* mproperty on <self:MMethodDef>*/;
4420 var23 = ((val* (*)(val*))(var22->class->vft[COLOR_model__MProperty__intro]))(var22) /* intro on <var22:MProperty(MMethod)>*/;
4421 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_model__MMethodDef__msignature]))(var23) /* msignature on <var23:MPropDef(MMethodDef)>*/;
4422 if (var24 == NULL) {
4423 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4424 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1404);
4425 show_backtrace(1);
4426 } else {
4427 var25 = ((val* (*)(val*))(var24->class->vft[COLOR_model__MSignature__mparameters]))(var24) /* mparameters on <var24:nullable MSignature>*/;
4428 }
4429 var26 = ((val* (*)(val*, long))(var25->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var25, var_i) /* [] on <var25:Array[MParameter]>*/;
4430 var27 = ((val* (*)(val*))(var26->class->vft[COLOR_model__MParameter__mtype]))(var26) /* mtype on <var26:nullable Object(MParameter)>*/;
4431 var_origmtype = var27;
4432 var28 = ((short int (*)(val*))(var_origmtype->class->vft[COLOR_model__MType__need_anchor]))(var_origmtype) /* need_anchor on <var_origmtype:MType>*/;
4433 var29 = !var28;
4434 if (var29){
4435 goto CONTINUE_label;
4436 } else {
4437 }
4438 var30 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
4439 if (var30 == NULL) {
4440 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4441 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1408);
4442 show_backtrace(1);
4443 } else {
4444 var31 = ((val* (*)(val*))(var30->class->vft[COLOR_model__MSignature__mparameters]))(var30) /* mparameters on <var30:nullable MSignature>*/;
4445 }
4446 var32 = ((val* (*)(val*, long))(var31->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var31, var_i) /* [] on <var31:Array[MParameter]>*/;
4447 var33 = ((val* (*)(val*))(var32->class->vft[COLOR_model__MParameter__mtype]))(var32) /* mtype on <var32:nullable Object(MParameter)>*/;
4448 var_mtype = var33;
4449 if (varonce) {
4450 var34 = varonce;
4451 } else {
4452 var35 = "/* Covariant cast for argument ";
4453 var36 = 31;
4454 var37 = string__NativeString__to_s_with_length(var35, var36);
4455 var34 = var37;
4456 varonce = var34;
4457 }
4458 if (varonce38) {
4459 var39 = varonce38;
4460 } else {
4461 var40 = " (";
4462 var41 = 2;
4463 var42 = string__NativeString__to_s_with_length(var40, var41);
4464 var39 = var42;
4465 varonce38 = var39;
4466 }
4467 var43 = ((val* (*)(val*))(self->class->vft[COLOR_model__MMethodDef__msignature]))(self) /* msignature on <self:MMethodDef>*/;
4468 if (var43 == NULL) {
4469 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4470 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1412);
4471 show_backtrace(1);
4472 } else {
4473 var44 = ((val* (*)(val*))(var43->class->vft[COLOR_model__MSignature__mparameters]))(var43) /* mparameters on <var43:nullable MSignature>*/;
4474 }
4475 var45 = ((val* (*)(val*, long))(var44->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var44, var_i) /* [] on <var44:Array[MParameter]>*/;
4476 var46 = ((val* (*)(val*))(var45->class->vft[COLOR_model__MParameter__name]))(var45) /* name on <var45:nullable Object(MParameter)>*/;
4477 if (varonce47) {
4478 var48 = varonce47;
4479 } else {
4480 var49 = ") ";
4481 var50 = 2;
4482 var51 = string__NativeString__to_s_with_length(var49, var50);
4483 var48 = var51;
4484 varonce47 = var48;
4485 }
4486 var52 = 1;
4487 { /* Inline kernel#Int#+ (var_i,var52) */
4488 var55 = var_i + var52;
4489 var53 = var55;
4490 goto RET_LABEL54;
4491 RET_LABEL54:(void)0;
4492 }
4493 var56 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var53) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4494 var57 = ((val* (*)(val*))(var56->class->vft[COLOR_string__Object__inspect]))(var56) /* inspect on <var56:nullable Object(RuntimeVariable)>*/;
4495 if (varonce58) {
4496 var59 = varonce58;
4497 } else {
4498 var60 = " isa ";
4499 var61 = 5;
4500 var62 = string__NativeString__to_s_with_length(var60, var61);
4501 var59 = var62;
4502 varonce58 = var59;
4503 }
4504 if (varonce63) {
4505 var64 = varonce63;
4506 } else {
4507 var65 = " */";
4508 var66 = 3;
4509 var67 = string__NativeString__to_s_with_length(var65, var66);
4510 var64 = var67;
4511 varonce63 = var64;
4512 }
4513 var68 = NEW_array__Array(&type_array__Arraykernel__Object);
4514 { /* var68 = array_instance Array[Object] */
4515 var69 = 9;
4516 var70 = NEW_array__NativeArray(var69, &type_array__NativeArraykernel__Object);
4517 ((struct instance_array__NativeArray*)var70)->values[0] = (val*) var34;
4518 var71 = BOX_kernel__Int(var_i); /* autobox from Int to Object */
4519 ((struct instance_array__NativeArray*)var70)->values[1] = (val*) var71;
4520 ((struct instance_array__NativeArray*)var70)->values[2] = (val*) var39;
4521 ((struct instance_array__NativeArray*)var70)->values[3] = (val*) var46;
4522 ((struct instance_array__NativeArray*)var70)->values[4] = (val*) var48;
4523 ((struct instance_array__NativeArray*)var70)->values[5] = (val*) var57;
4524 ((struct instance_array__NativeArray*)var70)->values[6] = (val*) var59;
4525 ((struct instance_array__NativeArray*)var70)->values[7] = (val*) var_mtype;
4526 ((struct instance_array__NativeArray*)var70)->values[8] = (val*) var64;
4527 ((void (*)(val*, val*, long))(var68->class->vft[COLOR_array__Array__with_native]))(var68, var70, var69) /* with_native on <var68:Array[Object]>*/;
4528 }
4529 var72 = ((val* (*)(val*))(var68->class->vft[COLOR_string__Object__to_s]))(var68) /* to_s on <var68:Array[Object]>*/;
4530 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var72) /* add on <var_v:AbstractCompilerVisitor>*/;
4531 var73 = 1;
4532 { /* Inline kernel#Int#+ (var_i,var73) */
4533 var76 = var_i + var73;
4534 var74 = var76;
4535 goto RET_LABEL75;
4536 RET_LABEL75:(void)0;
4537 }
4538 var77 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var74) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4539 if (varonce78) {
4540 var79 = varonce78;
4541 } else {
4542 var80 = "covariance";
4543 var81 = 10;
4544 var82 = string__NativeString__to_s_with_length(var80, var81);
4545 var79 = var82;
4546 varonce78 = var79;
4547 }
4548 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_cast]))(var_v, var77, var_mtype, var79) /* add_cast on <var_v:AbstractCompilerVisitor>*/;
4549 CONTINUE_label: (void)0;
4550 ((void (*)(val*))(var13->class->vft[COLOR_abstract_collection__Iterator__next]))(var13) /* next on <var13:Iterator[nullable Object]>*/;
4551 }
4552 BREAK_label: (void)0;
4553 RET_LABEL:;
4554 }
4555 /* method abstract_compiler#MMethodDef#compile_parameter_check for (self: Object, AbstractCompilerVisitor, Array[RuntimeVariable]) */
4556 void VIRTUAL_abstract_compiler__MMethodDef__compile_parameter_check(val* self, val* p0, val* p1) {
4557 abstract_compiler__MMethodDef__compile_parameter_check(self, p0, p1);
4558 RET_LABEL:;
4559 }
4560 /* method abstract_compiler#APropdef#compile_to_c for (self: APropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
4561 void abstract_compiler__APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4562 val* var_v /* var v: AbstractCompilerVisitor */;
4563 val* var_mpropdef /* var mpropdef: MMethodDef */;
4564 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4565 static val* varonce;
4566 val* var /* : String */;
4567 char* var1 /* : NativeString */;
4568 long var2 /* : Int */;
4569 val* var3 /* : String */;
4570 val* var4 /* : String */;
4571 static val* varonce5;
4572 val* var6 /* : String */;
4573 char* var7 /* : NativeString */;
4574 long var8 /* : Int */;
4575 val* var9 /* : String */;
4576 static val* varonce10;
4577 val* var11 /* : String */;
4578 char* var12 /* : NativeString */;
4579 long var13 /* : Int */;
4580 val* var14 /* : String */;
4581 val* var15 /* : Location */;
4582 val* var16 /* : String */;
4583 static val* varonce17;
4584 val* var18 /* : String */;
4585 char* var19 /* : NativeString */;
4586 long var20 /* : Int */;
4587 val* var21 /* : String */;
4588 val* var22 /* : Array[Object] */;
4589 long var23 /* : Int */;
4590 val* var24 /* : NativeArray[Object] */;
4591 val* var25 /* : String */;
4592 static val* varonce26;
4593 val* var27 /* : String */;
4594 char* var28 /* : NativeString */;
4595 long var29 /* : Int */;
4596 val* var30 /* : String */;
4597 var_v = p0;
4598 var_mpropdef = p1;
4599 var_arguments = p2;
4600 if (varonce) {
4601 var = varonce;
4602 } else {
4603 var1 = "printf(\"NOT YET IMPLEMENTED ";
4604 var2 = 28;
4605 var3 = string__NativeString__to_s_with_length(var1, var2);
4606 var = var3;
4607 varonce = var;
4608 }
4609 var4 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:APropdef>*/;
4610 if (varonce5) {
4611 var6 = varonce5;
4612 } else {
4613 var7 = " ";
4614 var8 = 1;
4615 var9 = string__NativeString__to_s_with_length(var7, var8);
4616 var6 = var9;
4617 varonce5 = var6;
4618 }
4619 if (varonce10) {
4620 var11 = varonce10;
4621 } else {
4622 var12 = " at ";
4623 var13 = 4;
4624 var14 = string__NativeString__to_s_with_length(var12, var13);
4625 var11 = var14;
4626 varonce10 = var11;
4627 }
4628 var15 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:APropdef>*/;
4629 var16 = ((val* (*)(val*))(var15->class->vft[COLOR_string__Object__to_s]))(var15) /* to_s on <var15:Location>*/;
4630 if (varonce17) {
4631 var18 = varonce17;
4632 } else {
4633 var19 = "\\n\");";
4634 var20 = 5;
4635 var21 = string__NativeString__to_s_with_length(var19, var20);
4636 var18 = var21;
4637 varonce17 = var18;
4638 }
4639 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
4640 { /* var22 = array_instance Array[Object] */
4641 var23 = 7;
4642 var24 = NEW_array__NativeArray(var23, &type_array__NativeArraykernel__Object);
4643 ((struct instance_array__NativeArray*)var24)->values[0] = (val*) var;
4644 ((struct instance_array__NativeArray*)var24)->values[1] = (val*) var4;
4645 ((struct instance_array__NativeArray*)var24)->values[2] = (val*) var6;
4646 ((struct instance_array__NativeArray*)var24)->values[3] = (val*) var_mpropdef;
4647 ((struct instance_array__NativeArray*)var24)->values[4] = (val*) var11;
4648 ((struct instance_array__NativeArray*)var24)->values[5] = (val*) var16;
4649 ((struct instance_array__NativeArray*)var24)->values[6] = (val*) var18;
4650 ((void (*)(val*, val*, long))(var22->class->vft[COLOR_array__Array__with_native]))(var22, var24, var23) /* with_native on <var22:Array[Object]>*/;
4651 }
4652 var25 = ((val* (*)(val*))(var22->class->vft[COLOR_string__Object__to_s]))(var22) /* to_s on <var22:Array[Object]>*/;
4653 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var25) /* add on <var_v:AbstractCompilerVisitor>*/;
4654 if (varonce26) {
4655 var27 = varonce26;
4656 } else {
4657 var28 = "Not yet implemented";
4658 var29 = 19;
4659 var30 = string__NativeString__to_s_with_length(var28, var29);
4660 var27 = var30;
4661 varonce26 = var27;
4662 }
4663 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__debug]))(self, var27) /* debug on <self:APropdef>*/;
4664 RET_LABEL:;
4665 }
4666 /* method abstract_compiler#APropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
4667 void VIRTUAL_abstract_compiler__APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4668 abstract_compiler__APropdef__compile_to_c(self, p0, p1, p2);
4669 RET_LABEL:;
4670 }
4671 /* method abstract_compiler#APropdef#can_inline for (self: APropdef): Bool */
4672 short int abstract_compiler__APropdef__can_inline(val* self) {
4673 short int var /* : Bool */;
4674 short int var1 /* : Bool */;
4675 var1 = 1;
4676 var = var1;
4677 goto RET_LABEL;
4678 RET_LABEL:;
4679 return var;
4680 }
4681 /* method abstract_compiler#APropdef#can_inline for (self: Object): Bool */
4682 short int VIRTUAL_abstract_compiler__APropdef__can_inline(val* self) {
4683 short int var /* : Bool */;
4684 short int var1 /* : Bool */;
4685 var1 = abstract_compiler__APropdef__can_inline(self);
4686 var = var1;
4687 RET_LABEL:;
4688 return var;
4689 }
4690 /* method abstract_compiler#AConcreteMethPropdef#compile_to_c for (self: AConcreteMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
4691 void abstract_compiler__AConcreteMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4692 val* var_v /* var v: AbstractCompilerVisitor */;
4693 val* var_mpropdef /* var mpropdef: MMethodDef */;
4694 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4695 val* var /* : Range[Int] */;
4696 long var1 /* : Int */;
4697 val* var2 /* : nullable MSignature */;
4698 long var3 /* : Int */;
4699 val* var4 /* : Discrete */;
4700 val* var5 /* : Discrete */;
4701 val* var6 /* : Iterator[nullable Object] */;
4702 short int var7 /* : Bool */;
4703 val* var8 /* : nullable Object */;
4704 long var_i /* var i: Int */;
4705 long var9 /* : Int */;
4706 val* var10 /* : nullable ASignature */;
4707 val* var11 /* : ANodes[AParam] */;
4708 val* var12 /* : nullable Object */;
4709 val* var13 /* : nullable Variable */;
4710 val* var_variable /* var variable: Variable */;
4711 val* var14 /* : RuntimeVariable */;
4712 long var15 /* : Int */;
4713 long var16 /* : Int */;
4714 long var18 /* : Int */;
4715 val* var19 /* : nullable Object */;
4716 val* var20 /* : nullable Array[MMethod] */;
4717 val* var_auto_super_inits /* var auto_super_inits: nullable Array[MMethod] */;
4718 val* var21 /* : null */;
4719 short int var22 /* : Bool */;
4720 val* var23 /* : Array[RuntimeVariable] */;
4721 long var24 /* : Int */;
4722 val* var_ /* var : Array[RuntimeVariable] */;
4723 val* var25 /* : nullable Object */;
4724 val* var_selfarg /* var selfarg: Array[RuntimeVariable] */;
4725 val* var26 /* : Iterator[nullable Object] */;
4726 short int var27 /* : Bool */;
4727 val* var28 /* : nullable Object */;
4728 val* var_auto_super_init /* var auto_super_init: MMethod */;
4729 val* var29 /* : MPropDef */;
4730 val* var30 /* : nullable MSignature */;
4731 long var31 /* : Int */;
4732 long var32 /* : Int */;
4733 short int var33 /* : Bool */;
4734 short int var35 /* : Bool */;
4735 val* var36 /* : nullable RuntimeVariable */;
4736 val* var37 /* : nullable RuntimeVariable */;
4737 val* var39 /* : nullable AExpr */;
4738 var_v = p0;
4739 var_mpropdef = p1;
4740 var_arguments = p2;
4741 var = NEW_range__Range(&type_range__Rangekernel__Int);
4742 var1 = 0;
4743 var2 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
4744 if (var2 == NULL) {
4745 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4746 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1433);
4747 show_backtrace(1);
4748 } else {
4749 var3 = ((long (*)(val*))(var2->class->vft[COLOR_model__MSignature__arity]))(var2) /* arity on <var2:nullable MSignature>*/;
4750 }
4751 var4 = BOX_kernel__Int(var1); /* autobox from Int to Discrete */
4752 var5 = BOX_kernel__Int(var3); /* autobox from Int to Discrete */
4753 ((void (*)(val*, val*, val*))(var->class->vft[COLOR_range__Range__without_last]))(var, var4, var5) /* without_last on <var:Range[Int]>*/;
4754 var6 = ((val* (*)(val*))(var->class->vft[COLOR_abstract_collection__Collection__iterator]))(var) /* iterator on <var:Range[Int]>*/;
4755 for(;;) {
4756 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
4757 if(!var7) break;
4758 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
4759 var9 = ((struct instance_kernel__Int*)var8)->value; /* autounbox from nullable Object to Int */;
4760 var_i = var9;
4761 var10 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AMethPropdef__n_signature]))(self) /* n_signature on <self:AConcreteMethPropdef>*/;
4762 if (var10 == NULL) {
4763 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4764 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1434);
4765 show_backtrace(1);
4766 } else {
4767 var11 = ((val* (*)(val*))(var10->class->vft[COLOR_parser_nodes__ASignature__n_params]))(var10) /* n_params on <var10:nullable ASignature>*/;
4768 }
4769 var12 = ((val* (*)(val*, long))(var11->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var11, var_i) /* [] on <var11:ANodes[AParam]>*/;
4770 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_scope__AParam__variable]))(var12) /* variable on <var12:nullable Object(AParam)>*/;
4771 if (var13 == NULL) {
4772 fprintf(stderr, "Runtime error: %s", "Cast failed");
4773 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1434);
4774 show_backtrace(1);
4775 }
4776 var_variable = var13;
4777 var14 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__variable]))(var_v, var_variable) /* variable on <var_v:AbstractCompilerVisitor>*/;
4778 var15 = 1;
4779 { /* Inline kernel#Int#+ (var_i,var15) */
4780 var18 = var_i + var15;
4781 var16 = var18;
4782 goto RET_LABEL17;
4783 RET_LABEL17:(void)0;
4784 }
4785 var19 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var16) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
4786 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__assign]))(var_v, var14, var19) /* assign on <var_v:AbstractCompilerVisitor>*/;
4787 CONTINUE_label: (void)0;
4788 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
4789 }
4790 BREAK_label: (void)0;
4791 var20 = ((val* (*)(val*))(self->class->vft[COLOR_auto_super_init__AConcreteMethPropdef__auto_super_inits]))(self) /* auto_super_inits on <self:AConcreteMethPropdef>*/;
4792 var_auto_super_inits = var20;
4793 var21 = NULL;
4794 if (var_auto_super_inits == NULL) {
4795 var22 = 0; /* is null */
4796 } else {
4797 var22 = 1; /* arg is null and recv is not */
4798 }
4799 if (var22){
4800 var23 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
4801 var24 = 1;
4802 ((void (*)(val*, long))(var23->class->vft[COLOR_array__Array__with_capacity]))(var23, var24) /* with_capacity on <var23:Array[RuntimeVariable]>*/;
4803 var_ = var23;
4804 var25 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
4805 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var25) /* push on <var_:Array[RuntimeVariable]>*/;
4806 var_selfarg = var_;
4807 var26 = ((val* (*)(val*))(var_auto_super_inits->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_auto_super_inits) /* iterator on <var_auto_super_inits:nullable Array[MMethod](Array[MMethod])>*/;
4808 for(;;) {
4809 var27 = ((short int (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var26) /* is_ok on <var26:Iterator[nullable Object]>*/;
4810 if(!var27) break;
4811 var28 = ((val* (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__item]))(var26) /* item on <var26:Iterator[nullable Object]>*/;
4812 var_auto_super_init = var28;
4813 var29 = ((val* (*)(val*))(var_auto_super_init->class->vft[COLOR_model__MProperty__intro]))(var_auto_super_init) /* intro on <var_auto_super_init:MMethod>*/;
4814 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_model__MMethodDef__msignature]))(var29) /* msignature on <var29:MPropDef(MMethodDef)>*/;
4815 if (var30 == NULL) {
4816 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4817 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1442);
4818 show_backtrace(1);
4819 } else {
4820 var31 = ((long (*)(val*))(var30->class->vft[COLOR_model__MSignature__arity]))(var30) /* arity on <var30:nullable MSignature>*/;
4821 }
4822 var32 = 0;
4823 { /* Inline kernel#Int#== (var31,var32) */
4824 var35 = var31 == var32;
4825 var33 = var35;
4826 goto RET_LABEL34;
4827 RET_LABEL34:(void)0;
4828 }
4829 if (var33){
4830 var36 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_auto_super_init, var_selfarg) /* send on <var_v:AbstractCompilerVisitor>*/;
4831 var36;
4832 } else {
4833 var37 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__send]))(var_v, var_auto_super_init, var_arguments) /* send on <var_v:AbstractCompilerVisitor>*/;
4834 var37;
4835 }
4836 CONTINUE_label38: (void)0;
4837 ((void (*)(val*))(var26->class->vft[COLOR_abstract_collection__Iterator__next]))(var26) /* next on <var26:Iterator[nullable Object]>*/;
4838 }
4839 BREAK_label38: (void)0;
4840 } else {
4841 }
4842 var39 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(self) /* n_block on <self:AConcreteMethPropdef>*/;
4843 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__stmt]))(var_v, var39) /* stmt on <var_v:AbstractCompilerVisitor>*/;
4844 RET_LABEL:;
4845 }
4846 /* method abstract_compiler#AConcreteMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
4847 void VIRTUAL_abstract_compiler__AConcreteMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
4848 abstract_compiler__AConcreteMethPropdef__compile_to_c(self, p0, p1, p2);
4849 RET_LABEL:;
4850 }
4851 /* method abstract_compiler#AConcreteMethPropdef#can_inline for (self: AConcreteMethPropdef): Bool */
4852 short int abstract_compiler__AConcreteMethPropdef__can_inline(val* self) {
4853 short int var /* : Bool */;
4854 val* var1 /* : nullable Array[MMethod] */;
4855 val* var2 /* : null */;
4856 short int var3 /* : Bool */;
4857 short int var4 /* : Bool */;
4858 val* var5 /* : nullable AExpr */;
4859 val* var_nblock /* var nblock: nullable AExpr */;
4860 val* var6 /* : null */;
4861 short int var7 /* : Bool */;
4862 short int var8 /* : Bool */;
4863 short int var9 /* : Bool */;
4864 short int var10 /* : Bool */;
4865 val* var11 /* : nullable MPropDef */;
4866 val* var12 /* : MProperty */;
4867 val* var13 /* : String */;
4868 static val* varonce;
4869 val* var14 /* : String */;
4870 char* var15 /* : NativeString */;
4871 long var16 /* : Int */;
4872 val* var17 /* : String */;
4873 short int var18 /* : Bool */;
4874 short int var_ /* var : Bool */;
4875 val* var19 /* : nullable MPropDef */;
4876 val* var20 /* : MProperty */;
4877 val* var21 /* : String */;
4878 static val* varonce22;
4879 val* var23 /* : String */;
4880 char* var24 /* : NativeString */;
4881 long var25 /* : Int */;
4882 val* var26 /* : String */;
4883 short int var27 /* : Bool */;
4884 short int var_28 /* var : Bool */;
4885 val* var29 /* : nullable MPropDef */;
4886 val* var30 /* : MClassDef */;
4887 val* var31 /* : MClass */;
4888 val* var32 /* : String */;
4889 static val* varonce33;
4890 val* var34 /* : String */;
4891 char* var35 /* : NativeString */;
4892 long var36 /* : Int */;
4893 val* var37 /* : String */;
4894 short int var38 /* : Bool */;
4895 short int var39 /* : Bool */;
4896 short int var40 /* : Bool */;
4897 short int var41 /* : Bool */;
4898 int cltype;
4899 int idtype;
4900 short int var_42 /* var : Bool */;
4901 val* var43 /* : ANodes[AExpr] */;
4902 long var44 /* : Int */;
4903 long var45 /* : Int */;
4904 short int var46 /* : Bool */;
4905 short int var48 /* : Bool */;
4906 short int var49 /* : Bool */;
4907 short int var50 /* : Bool */;
4908 var1 = ((val* (*)(val*))(self->class->vft[COLOR_auto_super_init__AConcreteMethPropdef__auto_super_inits]))(self) /* auto_super_inits on <self:AConcreteMethPropdef>*/;
4909 var2 = NULL;
4910 if (var1 == NULL) {
4911 var3 = 0; /* is null */
4912 } else {
4913 var3 = 1; /* arg is null and recv is not */
4914 }
4915 if (var3){
4916 var4 = 0;
4917 var = var4;
4918 goto RET_LABEL;
4919 } else {
4920 }
4921 var5 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AConcreteMethPropdef__n_block]))(self) /* n_block on <self:AConcreteMethPropdef>*/;
4922 var_nblock = var5;
4923 var6 = NULL;
4924 if (var_nblock == NULL) {
4925 var7 = 1; /* is null */
4926 } else {
4927 var7 = 0; /* arg is null but recv is not */
4928 }
4929 if (var7){
4930 var8 = 1;
4931 var = var8;
4932 goto RET_LABEL;
4933 } else {
4934 }
4935 var11 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AConcreteMethPropdef>*/;
4936 if (var11 == NULL) {
4937 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4938 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1457);
4939 show_backtrace(1);
4940 } else {
4941 var12 = ((val* (*)(val*))(var11->class->vft[COLOR_model__MPropDef__mproperty]))(var11) /* mproperty on <var11:nullable MPropDef(nullable MMethodDef)>*/;
4942 }
4943 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_model__MProperty__name]))(var12) /* name on <var12:MProperty(MMethod)>*/;
4944 if (varonce) {
4945 var14 = varonce;
4946 } else {
4947 var15 = "==";
4948 var16 = 2;
4949 var17 = string__NativeString__to_s_with_length(var15, var16);
4950 var14 = var17;
4951 varonce = var14;
4952 }
4953 var18 = ((short int (*)(val*, val*))(var13->class->vft[COLOR_kernel__Object___61d_61d]))(var13, var14) /* == on <var13:String>*/;
4954 var_ = var18;
4955 if (var18){
4956 var10 = var_;
4957 } else {
4958 var19 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AConcreteMethPropdef>*/;
4959 if (var19 == NULL) {
4960 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4961 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1457);
4962 show_backtrace(1);
4963 } else {
4964 var20 = ((val* (*)(val*))(var19->class->vft[COLOR_model__MPropDef__mproperty]))(var19) /* mproperty on <var19:nullable MPropDef(nullable MMethodDef)>*/;
4965 }
4966 var21 = ((val* (*)(val*))(var20->class->vft[COLOR_model__MProperty__name]))(var20) /* name on <var20:MProperty(MMethod)>*/;
4967 if (varonce22) {
4968 var23 = varonce22;
4969 } else {
4970 var24 = "!=";
4971 var25 = 2;
4972 var26 = string__NativeString__to_s_with_length(var24, var25);
4973 var23 = var26;
4974 varonce22 = var23;
4975 }
4976 var27 = ((short int (*)(val*, val*))(var21->class->vft[COLOR_kernel__Object___61d_61d]))(var21, var23) /* == on <var21:String>*/;
4977 var10 = var27;
4978 }
4979 var_28 = var10;
4980 if (var10){
4981 var29 = ((val* (*)(val*))(self->class->vft[COLOR_modelize_property__APropdef__mpropdef]))(self) /* mpropdef on <self:AConcreteMethPropdef>*/;
4982 if (var29 == NULL) {
4983 fprintf(stderr, "Runtime error: %s", "Reciever is null");
4984 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1457);
4985 show_backtrace(1);
4986 } else {
4987 var30 = ((val* (*)(val*))(var29->class->vft[COLOR_model__MPropDef__mclassdef]))(var29) /* mclassdef on <var29:nullable MPropDef(nullable MMethodDef)>*/;
4988 }
4989 var31 = ((val* (*)(val*))(var30->class->vft[COLOR_model__MClassDef__mclass]))(var30) /* mclass on <var30:MClassDef>*/;
4990 var32 = ((val* (*)(val*))(var31->class->vft[COLOR_model__MClass__name]))(var31) /* name on <var31:MClass>*/;
4991 if (varonce33) {
4992 var34 = varonce33;
4993 } else {
4994 var35 = "Object";
4995 var36 = 6;
4996 var37 = string__NativeString__to_s_with_length(var35, var36);
4997 var34 = var37;
4998 varonce33 = var34;
4999 }
5000 var38 = ((short int (*)(val*, val*))(var32->class->vft[COLOR_kernel__Object___61d_61d]))(var32, var34) /* == on <var32:String>*/;
5001 var9 = var38;
5002 } else {
5003 var9 = var_28;
5004 }
5005 if (var9){
5006 var39 = 1;
5007 var = var39;
5008 goto RET_LABEL;
5009 } else {
5010 }
5011 /* <var_nblock:nullable AExpr(AExpr)> isa ABlockExpr */
5012 cltype = type_parser_nodes__ABlockExpr.color;
5013 idtype = type_parser_nodes__ABlockExpr.id;
5014 if(cltype >= var_nblock->type->table_size) {
5015 var41 = 0;
5016 } else {
5017 var41 = var_nblock->type->type_table[cltype] == idtype;
5018 }
5019 var_42 = var41;
5020 if (var41){
5021 var43 = ((val* (*)(val*))(var_nblock->class->vft[COLOR_parser_nodes__ABlockExpr__n_expr]))(var_nblock) /* n_expr on <var_nblock:nullable AExpr(ABlockExpr)>*/;
5022 var44 = ((long (*)(val*))(var43->class->vft[COLOR_abstract_collection__Collection__length]))(var43) /* length on <var43:ANodes[AExpr]>*/;
5023 var45 = 0;
5024 { /* Inline kernel#Int#== (var44,var45) */
5025 var48 = var44 == var45;
5026 var46 = var48;
5027 goto RET_LABEL47;
5028 RET_LABEL47:(void)0;
5029 }
5030 var40 = var46;
5031 } else {
5032 var40 = var_42;
5033 }
5034 if (var40){
5035 var49 = 1;
5036 var = var49;
5037 goto RET_LABEL;
5038 } else {
5039 }
5040 var50 = 0;
5041 var = var50;
5042 goto RET_LABEL;
5043 RET_LABEL:;
5044 return var;
5045 }
5046 /* method abstract_compiler#AConcreteMethPropdef#can_inline for (self: Object): Bool */
5047 short int VIRTUAL_abstract_compiler__AConcreteMethPropdef__can_inline(val* self) {
5048 short int var /* : Bool */;
5049 short int var1 /* : Bool */;
5050 var1 = abstract_compiler__AConcreteMethPropdef__can_inline(self);
5051 var = var1;
5052 RET_LABEL:;
5053 return var;
5054 }
5055 /* method abstract_compiler#AInternMethPropdef#compile_to_c for (self: AInternMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5056 void abstract_compiler__AInternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5057 val* var_v /* var v: AbstractCompilerVisitor */;
5058 val* var_mpropdef /* var mpropdef: MMethodDef */;
5059 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
5060 val* var /* : MProperty */;
5061 val* var1 /* : String */;
5062 val* var_pname /* var pname: String */;
5063 val* var2 /* : MClassDef */;
5064 val* var3 /* : MClass */;
5065 val* var4 /* : String */;
5066 val* var_cname /* var cname: String */;
5067 val* var5 /* : nullable MSignature */;
5068 val* var6 /* : nullable MType */;
5069 val* var_ret /* var ret: nullable MType */;
5070 val* var7 /* : null */;
5071 short int var8 /* : Bool */;
5072 val* var9 /* : nullable Object */;
5073 val* var10 /* : MType */;
5074 short int var11 /* : Bool */;
5075 static val* varonce;
5076 val* var12 /* : String */;
5077 char* var13 /* : NativeString */;
5078 long var14 /* : Int */;
5079 val* var15 /* : String */;
5080 short int var16 /* : Bool */;
5081 short int var_ /* var : Bool */;
5082 static val* varonce17;
5083 val* var18 /* : String */;
5084 char* var19 /* : NativeString */;
5085 long var20 /* : Int */;
5086 val* var21 /* : String */;
5087 short int var22 /* : Bool */;
5088 static val* varonce23;
5089 val* var24 /* : String */;
5090 char* var25 /* : NativeString */;
5091 long var26 /* : Int */;
5092 val* var27 /* : String */;
5093 short int var28 /* : Bool */;
5094 static val* varonce29;
5095 val* var30 /* : String */;
5096 char* var31 /* : NativeString */;
5097 long var32 /* : Int */;
5098 val* var33 /* : String */;
5099 short int var34 /* : Bool */;
5100 static val* varonce35;
5101 val* var36 /* : String */;
5102 char* var37 /* : NativeString */;
5103 long var38 /* : Int */;
5104 val* var39 /* : String */;
5105 val* var40 /* : nullable Object */;
5106 static val* varonce41;
5107 val* var42 /* : String */;
5108 char* var43 /* : NativeString */;
5109 long var44 /* : Int */;
5110 val* var45 /* : String */;
5111 val* var46 /* : Array[Object] */;
5112 long var47 /* : Int */;
5113 val* var48 /* : NativeArray[Object] */;
5114 val* var49 /* : String */;
5115 static val* varonce50;
5116 val* var51 /* : String */;
5117 char* var52 /* : NativeString */;
5118 long var53 /* : Int */;
5119 val* var54 /* : String */;
5120 short int var55 /* : Bool */;
5121 val* var56 /* : nullable Object */;
5122 static val* varonce57;
5123 val* var58 /* : String */;
5124 char* var59 /* : NativeString */;
5125 long var60 /* : Int */;
5126 val* var61 /* : String */;
5127 short int var62 /* : Bool */;
5128 long var63 /* : Int */;
5129 val* var64 /* : nullable Object */;
5130 static val* varonce65;
5131 val* var66 /* : String */;
5132 char* var67 /* : NativeString */;
5133 long var68 /* : Int */;
5134 val* var69 /* : String */;
5135 long var70 /* : Int */;
5136 val* var71 /* : nullable Object */;
5137 val* var72 /* : Array[Object] */;
5138 long var73 /* : Int */;
5139 val* var74 /* : NativeArray[Object] */;
5140 val* var75 /* : String */;
5141 val* var76 /* : RuntimeVariable */;
5142 static val* varonce77;
5143 val* var78 /* : String */;
5144 char* var79 /* : NativeString */;
5145 long var80 /* : Int */;
5146 val* var81 /* : String */;
5147 short int var82 /* : Bool */;
5148 long var83 /* : Int */;
5149 val* var84 /* : nullable Object */;
5150 static val* varonce85;
5151 val* var86 /* : String */;
5152 char* var87 /* : NativeString */;
5153 long var88 /* : Int */;
5154 val* var89 /* : String */;
5155 long var90 /* : Int */;
5156 val* var91 /* : nullable Object */;
5157 val* var92 /* : Array[Object] */;
5158 long var93 /* : Int */;
5159 val* var94 /* : NativeArray[Object] */;
5160 val* var95 /* : String */;
5161 val* var96 /* : RuntimeVariable */;
5162 static val* varonce97;
5163 val* var98 /* : String */;
5164 char* var99 /* : NativeString */;
5165 long var100 /* : Int */;
5166 val* var101 /* : String */;
5167 short int var102 /* : Bool */;
5168 static val* varonce103;
5169 val* var104 /* : String */;
5170 char* var105 /* : NativeString */;
5171 long var106 /* : Int */;
5172 val* var107 /* : String */;
5173 long var108 /* : Int */;
5174 val* var109 /* : nullable Object */;
5175 val* var110 /* : Array[Object] */;
5176 long var111 /* : Int */;
5177 val* var112 /* : NativeArray[Object] */;
5178 val* var113 /* : String */;
5179 val* var114 /* : RuntimeVariable */;
5180 static val* varonce115;
5181 val* var116 /* : String */;
5182 char* var117 /* : NativeString */;
5183 long var118 /* : Int */;
5184 val* var119 /* : String */;
5185 short int var120 /* : Bool */;
5186 long var121 /* : Int */;
5187 val* var122 /* : nullable Object */;
5188 static val* varonce123;
5189 val* var124 /* : String */;
5190 char* var125 /* : NativeString */;
5191 long var126 /* : Int */;
5192 val* var127 /* : String */;
5193 val* var128 /* : Array[Object] */;
5194 long var129 /* : Int */;
5195 val* var130 /* : NativeArray[Object] */;
5196 val* var131 /* : String */;
5197 val* var132 /* : RuntimeVariable */;
5198 static val* varonce133;
5199 val* var134 /* : String */;
5200 char* var135 /* : NativeString */;
5201 long var136 /* : Int */;
5202 val* var137 /* : String */;
5203 short int var138 /* : Bool */;
5204 long var139 /* : Int */;
5205 val* var140 /* : nullable Object */;
5206 static val* varonce141;
5207 val* var142 /* : String */;
5208 char* var143 /* : NativeString */;
5209 long var144 /* : Int */;
5210 val* var145 /* : String */;
5211 val* var146 /* : Array[Object] */;
5212 long var147 /* : Int */;
5213 val* var148 /* : NativeArray[Object] */;
5214 val* var149 /* : String */;
5215 val* var150 /* : RuntimeVariable */;
5216 static val* varonce151;
5217 val* var152 /* : String */;
5218 char* var153 /* : NativeString */;
5219 long var154 /* : Int */;
5220 val* var155 /* : String */;
5221 short int var156 /* : Bool */;
5222 long var157 /* : Int */;
5223 val* var158 /* : nullable Object */;
5224 static val* varonce159;
5225 val* var160 /* : String */;
5226 char* var161 /* : NativeString */;
5227 long var162 /* : Int */;
5228 val* var163 /* : String */;
5229 long var164 /* : Int */;
5230 val* var165 /* : nullable Object */;
5231 val* var166 /* : Array[Object] */;
5232 long var167 /* : Int */;
5233 val* var168 /* : NativeArray[Object] */;
5234 val* var169 /* : String */;
5235 val* var170 /* : RuntimeVariable */;
5236 static val* varonce171;
5237 val* var172 /* : String */;
5238 char* var173 /* : NativeString */;
5239 long var174 /* : Int */;
5240 val* var175 /* : String */;
5241 short int var176 /* : Bool */;
5242 long var177 /* : Int */;
5243 val* var178 /* : nullable Object */;
5244 static val* varonce179;
5245 val* var180 /* : String */;
5246 char* var181 /* : NativeString */;
5247 long var182 /* : Int */;
5248 val* var183 /* : String */;
5249 long var184 /* : Int */;
5250 val* var185 /* : nullable Object */;
5251 val* var186 /* : Array[Object] */;
5252 long var187 /* : Int */;
5253 val* var188 /* : NativeArray[Object] */;
5254 val* var189 /* : String */;
5255 val* var190 /* : RuntimeVariable */;
5256 static val* varonce191;
5257 val* var192 /* : String */;
5258 char* var193 /* : NativeString */;
5259 long var194 /* : Int */;
5260 val* var195 /* : String */;
5261 short int var196 /* : Bool */;
5262 long var197 /* : Int */;
5263 val* var198 /* : nullable Object */;
5264 static val* varonce199;
5265 val* var200 /* : String */;
5266 char* var201 /* : NativeString */;
5267 long var202 /* : Int */;
5268 val* var203 /* : String */;
5269 long var204 /* : Int */;
5270 val* var205 /* : nullable Object */;
5271 val* var206 /* : Array[Object] */;
5272 long var207 /* : Int */;
5273 val* var208 /* : NativeArray[Object] */;
5274 val* var209 /* : String */;
5275 val* var210 /* : RuntimeVariable */;
5276 static val* varonce211;
5277 val* var212 /* : String */;
5278 char* var213 /* : NativeString */;
5279 long var214 /* : Int */;
5280 val* var215 /* : String */;
5281 short int var216 /* : Bool */;
5282 long var217 /* : Int */;
5283 val* var218 /* : nullable Object */;
5284 static val* varonce219;
5285 val* var220 /* : String */;
5286 char* var221 /* : NativeString */;
5287 long var222 /* : Int */;
5288 val* var223 /* : String */;
5289 long var224 /* : Int */;
5290 val* var225 /* : nullable Object */;
5291 val* var226 /* : Array[Object] */;
5292 long var227 /* : Int */;
5293 val* var228 /* : NativeArray[Object] */;
5294 val* var229 /* : String */;
5295 val* var230 /* : RuntimeVariable */;
5296 static val* varonce231;
5297 val* var232 /* : String */;
5298 char* var233 /* : NativeString */;
5299 long var234 /* : Int */;
5300 val* var235 /* : String */;
5301 short int var236 /* : Bool */;
5302 long var237 /* : Int */;
5303 val* var238 /* : nullable Object */;
5304 static val* varonce239;
5305 val* var240 /* : String */;
5306 char* var241 /* : NativeString */;
5307 long var242 /* : Int */;
5308 val* var243 /* : String */;
5309 long var244 /* : Int */;
5310 val* var245 /* : nullable Object */;
5311 val* var246 /* : Array[Object] */;
5312 long var247 /* : Int */;
5313 val* var248 /* : NativeArray[Object] */;
5314 val* var249 /* : String */;
5315 val* var250 /* : RuntimeVariable */;
5316 static val* varonce251;
5317 val* var252 /* : String */;
5318 char* var253 /* : NativeString */;
5319 long var254 /* : Int */;
5320 val* var255 /* : String */;
5321 short int var256 /* : Bool */;
5322 long var257 /* : Int */;
5323 val* var258 /* : nullable Object */;
5324 long var259 /* : Int */;
5325 val* var260 /* : nullable Object */;
5326 val* var261 /* : RuntimeVariable */;
5327 static val* varonce262;
5328 val* var263 /* : String */;
5329 char* var264 /* : NativeString */;
5330 long var265 /* : Int */;
5331 val* var266 /* : String */;
5332 short int var267 /* : Bool */;
5333 long var268 /* : Int */;
5334 val* var269 /* : nullable Object */;
5335 long var270 /* : Int */;
5336 val* var271 /* : nullable Object */;
5337 val* var272 /* : RuntimeVariable */;
5338 val* var_res /* var res: RuntimeVariable */;
5339 static val* varonce273;
5340 val* var274 /* : String */;
5341 char* var275 /* : NativeString */;
5342 long var276 /* : Int */;
5343 val* var277 /* : String */;
5344 val* var278 /* : Array[Object] */;
5345 long var279 /* : Int */;
5346 val* var280 /* : NativeArray[Object] */;
5347 val* var281 /* : String */;
5348 val* var282 /* : RuntimeVariable */;
5349 static val* varonce283;
5350 val* var284 /* : String */;
5351 char* var285 /* : NativeString */;
5352 long var286 /* : Int */;
5353 val* var287 /* : String */;
5354 short int var288 /* : Bool */;
5355 long var289 /* : Int */;
5356 val* var290 /* : nullable Object */;
5357 static val* varonce291;
5358 val* var292 /* : String */;
5359 char* var293 /* : NativeString */;
5360 long var294 /* : Int */;
5361 val* var295 /* : String */;
5362 long var296 /* : Int */;
5363 val* var297 /* : nullable Object */;
5364 val* var298 /* : Array[Object] */;
5365 long var299 /* : Int */;
5366 val* var300 /* : NativeArray[Object] */;
5367 val* var301 /* : String */;
5368 val* var302 /* : RuntimeVariable */;
5369 static val* varonce303;
5370 val* var304 /* : String */;
5371 char* var305 /* : NativeString */;
5372 long var306 /* : Int */;
5373 val* var307 /* : String */;
5374 short int var308 /* : Bool */;
5375 long var309 /* : Int */;
5376 val* var310 /* : nullable Object */;
5377 static val* varonce311;
5378 val* var312 /* : String */;
5379 char* var313 /* : NativeString */;
5380 long var314 /* : Int */;
5381 val* var315 /* : String */;
5382 long var316 /* : Int */;
5383 val* var317 /* : nullable Object */;
5384 val* var318 /* : Array[Object] */;
5385 long var319 /* : Int */;
5386 val* var320 /* : NativeArray[Object] */;
5387 val* var321 /* : String */;
5388 val* var322 /* : RuntimeVariable */;
5389 static val* varonce323;
5390 val* var324 /* : String */;
5391 char* var325 /* : NativeString */;
5392 long var326 /* : Int */;
5393 val* var327 /* : String */;
5394 short int var328 /* : Bool */;
5395 long var329 /* : Int */;
5396 val* var330 /* : nullable Object */;
5397 static val* varonce331;
5398 val* var332 /* : String */;
5399 char* var333 /* : NativeString */;
5400 long var334 /* : Int */;
5401 val* var335 /* : String */;
5402 long var336 /* : Int */;
5403 val* var337 /* : nullable Object */;
5404 val* var338 /* : Array[Object] */;
5405 long var339 /* : Int */;
5406 val* var340 /* : NativeArray[Object] */;
5407 val* var341 /* : String */;
5408 val* var342 /* : RuntimeVariable */;
5409 static val* varonce343;
5410 val* var344 /* : String */;
5411 char* var345 /* : NativeString */;
5412 long var346 /* : Int */;
5413 val* var347 /* : String */;
5414 short int var348 /* : Bool */;
5415 long var349 /* : Int */;
5416 val* var350 /* : nullable Object */;
5417 static val* varonce351;
5418 val* var352 /* : String */;
5419 char* var353 /* : NativeString */;
5420 long var354 /* : Int */;
5421 val* var355 /* : String */;
5422 long var356 /* : Int */;
5423 val* var357 /* : nullable Object */;
5424 val* var358 /* : Array[Object] */;
5425 long var359 /* : Int */;
5426 val* var360 /* : NativeArray[Object] */;
5427 val* var361 /* : String */;
5428 val* var362 /* : RuntimeVariable */;
5429 static val* varonce363;
5430 val* var364 /* : String */;
5431 char* var365 /* : NativeString */;
5432 long var366 /* : Int */;
5433 val* var367 /* : String */;
5434 short int var368 /* : Bool */;
5435 static val* varonce369;
5436 val* var370 /* : String */;
5437 char* var371 /* : NativeString */;
5438 long var372 /* : Int */;
5439 val* var373 /* : String */;
5440 long var374 /* : Int */;
5441 val* var375 /* : nullable Object */;
5442 val* var376 /* : Array[Object] */;
5443 long var377 /* : Int */;
5444 val* var378 /* : NativeArray[Object] */;
5445 val* var379 /* : String */;
5446 val* var380 /* : RuntimeVariable */;
5447 static val* varonce381;
5448 val* var382 /* : String */;
5449 char* var383 /* : NativeString */;
5450 long var384 /* : Int */;
5451 val* var385 /* : String */;
5452 short int var386 /* : Bool */;
5453 long var387 /* : Int */;
5454 val* var388 /* : nullable Object */;
5455 val* var389 /* : Array[Object] */;
5456 long var390 /* : Int */;
5457 val* var391 /* : NativeArray[Object] */;
5458 val* var392 /* : String */;
5459 val* var393 /* : RuntimeVariable */;
5460 static val* varonce394;
5461 val* var395 /* : String */;
5462 char* var396 /* : NativeString */;
5463 long var397 /* : Int */;
5464 val* var398 /* : String */;
5465 short int var399 /* : Bool */;
5466 static val* varonce400;
5467 val* var401 /* : String */;
5468 char* var402 /* : NativeString */;
5469 long var403 /* : Int */;
5470 val* var404 /* : String */;
5471 short int var405 /* : Bool */;
5472 static val* varonce406;
5473 val* var407 /* : String */;
5474 char* var408 /* : NativeString */;
5475 long var409 /* : Int */;
5476 val* var410 /* : String */;
5477 val* var411 /* : nullable Object */;
5478 static val* varonce412;
5479 val* var413 /* : String */;
5480 char* var414 /* : NativeString */;
5481 long var415 /* : Int */;
5482 val* var416 /* : String */;
5483 val* var417 /* : Array[Object] */;
5484 long var418 /* : Int */;
5485 val* var419 /* : NativeArray[Object] */;
5486 val* var420 /* : String */;
5487 static val* varonce421;
5488 val* var422 /* : String */;
5489 char* var423 /* : NativeString */;
5490 long var424 /* : Int */;
5491 val* var425 /* : String */;
5492 short int var426 /* : Bool */;
5493 static val* varonce427;
5494 val* var428 /* : String */;
5495 char* var429 /* : NativeString */;
5496 long var430 /* : Int */;
5497 val* var431 /* : String */;
5498 val* var432 /* : nullable Object */;
5499 val* var433 /* : Array[Object] */;
5500 long var434 /* : Int */;
5501 val* var435 /* : NativeArray[Object] */;
5502 val* var436 /* : String */;
5503 val* var437 /* : RuntimeVariable */;
5504 static val* varonce438;
5505 val* var439 /* : String */;
5506 char* var440 /* : NativeString */;
5507 long var441 /* : Int */;
5508 val* var442 /* : String */;
5509 short int var443 /* : Bool */;
5510 long var444 /* : Int */;
5511 val* var445 /* : nullable Object */;
5512 static val* varonce446;
5513 val* var447 /* : String */;
5514 char* var448 /* : NativeString */;
5515 long var449 /* : Int */;
5516 val* var450 /* : String */;
5517 long var451 /* : Int */;
5518 val* var452 /* : nullable Object */;
5519 val* var453 /* : Array[Object] */;
5520 long var454 /* : Int */;
5521 val* var455 /* : NativeArray[Object] */;
5522 val* var456 /* : String */;
5523 val* var457 /* : RuntimeVariable */;
5524 static val* varonce458;
5525 val* var459 /* : String */;
5526 char* var460 /* : NativeString */;
5527 long var461 /* : Int */;
5528 val* var462 /* : String */;
5529 short int var463 /* : Bool */;
5530 long var464 /* : Int */;
5531 val* var465 /* : nullable Object */;
5532 static val* varonce466;
5533 val* var467 /* : String */;
5534 char* var468 /* : NativeString */;
5535 long var469 /* : Int */;
5536 val* var470 /* : String */;
5537 long var471 /* : Int */;
5538 val* var472 /* : nullable Object */;
5539 val* var473 /* : Array[Object] */;
5540 long var474 /* : Int */;
5541 val* var475 /* : NativeArray[Object] */;
5542 val* var476 /* : String */;
5543 val* var477 /* : RuntimeVariable */;
5544 static val* varonce478;
5545 val* var479 /* : String */;
5546 char* var480 /* : NativeString */;
5547 long var481 /* : Int */;
5548 val* var482 /* : String */;
5549 short int var483 /* : Bool */;
5550 long var484 /* : Int */;
5551 val* var485 /* : nullable Object */;
5552 long var486 /* : Int */;
5553 val* var487 /* : nullable Object */;
5554 val* var488 /* : RuntimeVariable */;
5555 static val* varonce489;
5556 val* var490 /* : String */;
5557 char* var491 /* : NativeString */;
5558 long var492 /* : Int */;
5559 val* var493 /* : String */;
5560 short int var494 /* : Bool */;
5561 long var495 /* : Int */;
5562 val* var496 /* : nullable Object */;
5563 long var497 /* : Int */;
5564 val* var498 /* : nullable Object */;
5565 val* var499 /* : RuntimeVariable */;
5566 val* var_res500 /* var res: RuntimeVariable */;
5567 static val* varonce501;
5568 val* var502 /* : String */;
5569 char* var503 /* : NativeString */;
5570 long var504 /* : Int */;
5571 val* var505 /* : String */;
5572 val* var506 /* : Array[Object] */;
5573 long var507 /* : Int */;
5574 val* var508 /* : NativeArray[Object] */;
5575 val* var509 /* : String */;
5576 val* var510 /* : RuntimeVariable */;
5577 static val* varonce511;
5578 val* var512 /* : String */;
5579 char* var513 /* : NativeString */;
5580 long var514 /* : Int */;
5581 val* var515 /* : String */;
5582 short int var516 /* : Bool */;
5583 long var517 /* : Int */;
5584 val* var518 /* : nullable Object */;
5585 static val* varonce519;
5586 val* var520 /* : String */;
5587 char* var521 /* : NativeString */;
5588 long var522 /* : Int */;
5589 val* var523 /* : String */;
5590 val* var524 /* : Array[Object] */;
5591 long var525 /* : Int */;
5592 val* var526 /* : NativeArray[Object] */;
5593 val* var527 /* : String */;
5594 val* var528 /* : RuntimeVariable */;
5595 static val* varonce529;
5596 val* var530 /* : String */;
5597 char* var531 /* : NativeString */;
5598 long var532 /* : Int */;
5599 val* var533 /* : String */;
5600 short int var534 /* : Bool */;
5601 long var535 /* : Int */;
5602 val* var536 /* : nullable Object */;
5603 static val* varonce537;
5604 val* var538 /* : String */;
5605 char* var539 /* : NativeString */;
5606 long var540 /* : Int */;
5607 val* var541 /* : String */;
5608 val* var542 /* : Array[Object] */;
5609 long var543 /* : Int */;
5610 val* var544 /* : NativeArray[Object] */;
5611 val* var545 /* : String */;
5612 val* var546 /* : RuntimeVariable */;
5613 static val* varonce547;
5614 val* var548 /* : String */;
5615 char* var549 /* : NativeString */;
5616 long var550 /* : Int */;
5617 val* var551 /* : String */;
5618 short int var552 /* : Bool */;
5619 long var553 /* : Int */;
5620 val* var554 /* : nullable Object */;
5621 static val* varonce555;
5622 val* var556 /* : String */;
5623 char* var557 /* : NativeString */;
5624 long var558 /* : Int */;
5625 val* var559 /* : String */;
5626 long var560 /* : Int */;
5627 val* var561 /* : nullable Object */;
5628 val* var562 /* : Array[Object] */;
5629 long var563 /* : Int */;
5630 val* var564 /* : NativeArray[Object] */;
5631 val* var565 /* : String */;
5632 val* var566 /* : RuntimeVariable */;
5633 static val* varonce567;
5634 val* var568 /* : String */;
5635 char* var569 /* : NativeString */;
5636 long var570 /* : Int */;
5637 val* var571 /* : String */;
5638 short int var572 /* : Bool */;
5639 long var573 /* : Int */;
5640 val* var574 /* : nullable Object */;
5641 static val* varonce575;
5642 val* var576 /* : String */;
5643 char* var577 /* : NativeString */;
5644 long var578 /* : Int */;
5645 val* var579 /* : String */;
5646 long var580 /* : Int */;
5647 val* var581 /* : nullable Object */;
5648 val* var582 /* : Array[Object] */;
5649 long var583 /* : Int */;
5650 val* var584 /* : NativeArray[Object] */;
5651 val* var585 /* : String */;
5652 val* var586 /* : RuntimeVariable */;
5653 static val* varonce587;
5654 val* var588 /* : String */;
5655 char* var589 /* : NativeString */;
5656 long var590 /* : Int */;
5657 val* var591 /* : String */;
5658 short int var592 /* : Bool */;
5659 long var593 /* : Int */;
5660 val* var594 /* : nullable Object */;
5661 static val* varonce595;
5662 val* var596 /* : String */;
5663 char* var597 /* : NativeString */;
5664 long var598 /* : Int */;
5665 val* var599 /* : String */;
5666 long var600 /* : Int */;
5667 val* var601 /* : nullable Object */;
5668 val* var602 /* : Array[Object] */;
5669 long var603 /* : Int */;
5670 val* var604 /* : NativeArray[Object] */;
5671 val* var605 /* : String */;
5672 val* var606 /* : RuntimeVariable */;
5673 static val* varonce607;
5674 val* var608 /* : String */;
5675 char* var609 /* : NativeString */;
5676 long var610 /* : Int */;
5677 val* var611 /* : String */;
5678 short int var612 /* : Bool */;
5679 long var613 /* : Int */;
5680 val* var614 /* : nullable Object */;
5681 static val* varonce615;
5682 val* var616 /* : String */;
5683 char* var617 /* : NativeString */;
5684 long var618 /* : Int */;
5685 val* var619 /* : String */;
5686 long var620 /* : Int */;
5687 val* var621 /* : nullable Object */;
5688 val* var622 /* : Array[Object] */;
5689 long var623 /* : Int */;
5690 val* var624 /* : NativeArray[Object] */;
5691 val* var625 /* : String */;
5692 val* var626 /* : RuntimeVariable */;
5693 static val* varonce627;
5694 val* var628 /* : String */;
5695 char* var629 /* : NativeString */;
5696 long var630 /* : Int */;
5697 val* var631 /* : String */;
5698 short int var632 /* : Bool */;
5699 long var633 /* : Int */;
5700 val* var634 /* : nullable Object */;
5701 static val* varonce635;
5702 val* var636 /* : String */;
5703 char* var637 /* : NativeString */;
5704 long var638 /* : Int */;
5705 val* var639 /* : String */;
5706 val* var640 /* : Array[Object] */;
5707 long var641 /* : Int */;
5708 val* var642 /* : NativeArray[Object] */;
5709 val* var643 /* : String */;
5710 val* var644 /* : RuntimeVariable */;
5711 static val* varonce645;
5712 val* var646 /* : String */;
5713 char* var647 /* : NativeString */;
5714 long var648 /* : Int */;
5715 val* var649 /* : String */;
5716 short int var650 /* : Bool */;
5717 static val* varonce651;
5718 val* var652 /* : String */;
5719 char* var653 /* : NativeString */;
5720 long var654 /* : Int */;
5721 val* var655 /* : String */;
5722 long var656 /* : Int */;
5723 val* var657 /* : nullable Object */;
5724 val* var658 /* : Array[Object] */;
5725 long var659 /* : Int */;
5726 val* var660 /* : NativeArray[Object] */;
5727 val* var661 /* : String */;
5728 val* var662 /* : RuntimeVariable */;
5729 static val* varonce663;
5730 val* var664 /* : String */;
5731 char* var665 /* : NativeString */;
5732 long var666 /* : Int */;
5733 val* var667 /* : String */;
5734 short int var668 /* : Bool */;
5735 static val* varonce669;
5736 val* var670 /* : String */;
5737 char* var671 /* : NativeString */;
5738 long var672 /* : Int */;
5739 val* var673 /* : String */;
5740 short int var674 /* : Bool */;
5741 static val* varonce675;
5742 val* var676 /* : String */;
5743 char* var677 /* : NativeString */;
5744 long var678 /* : Int */;
5745 val* var679 /* : String */;
5746 val* var680 /* : nullable Object */;
5747 static val* varonce681;
5748 val* var682 /* : String */;
5749 char* var683 /* : NativeString */;
5750 long var684 /* : Int */;
5751 val* var685 /* : String */;
5752 val* var686 /* : Array[Object] */;
5753 long var687 /* : Int */;
5754 val* var688 /* : NativeArray[Object] */;
5755 val* var689 /* : String */;
5756 static val* varonce690;
5757 val* var691 /* : String */;
5758 char* var692 /* : NativeString */;
5759 long var693 /* : Int */;
5760 val* var694 /* : String */;
5761 short int var695 /* : Bool */;
5762 static val* varonce696;
5763 val* var697 /* : String */;
5764 char* var698 /* : NativeString */;
5765 long var699 /* : Int */;
5766 val* var700 /* : String */;
5767 val* var701 /* : nullable Object */;
5768 val* var702 /* : Array[Object] */;
5769 long var703 /* : Int */;
5770 val* var704 /* : NativeArray[Object] */;
5771 val* var705 /* : String */;
5772 val* var706 /* : RuntimeVariable */;
5773 static val* varonce707;
5774 val* var708 /* : String */;
5775 char* var709 /* : NativeString */;
5776 long var710 /* : Int */;
5777 val* var711 /* : String */;
5778 short int var712 /* : Bool */;
5779 long var713 /* : Int */;
5780 val* var714 /* : nullable Object */;
5781 long var715 /* : Int */;
5782 val* var716 /* : nullable Object */;
5783 val* var717 /* : RuntimeVariable */;
5784 static val* varonce718;
5785 val* var719 /* : String */;
5786 char* var720 /* : NativeString */;
5787 long var721 /* : Int */;
5788 val* var722 /* : String */;
5789 short int var723 /* : Bool */;
5790 long var724 /* : Int */;
5791 val* var725 /* : nullable Object */;
5792 long var726 /* : Int */;
5793 val* var727 /* : nullable Object */;
5794 val* var728 /* : RuntimeVariable */;
5795 val* var_res729 /* var res: RuntimeVariable */;
5796 static val* varonce730;
5797 val* var731 /* : String */;
5798 char* var732 /* : NativeString */;
5799 long var733 /* : Int */;
5800 val* var734 /* : String */;
5801 val* var735 /* : Array[Object] */;
5802 long var736 /* : Int */;
5803 val* var737 /* : NativeArray[Object] */;
5804 val* var738 /* : String */;
5805 val* var739 /* : RuntimeVariable */;
5806 static val* varonce740;
5807 val* var741 /* : String */;
5808 char* var742 /* : NativeString */;
5809 long var743 /* : Int */;
5810 val* var744 /* : String */;
5811 short int var745 /* : Bool */;
5812 static val* varonce746;
5813 val* var747 /* : String */;
5814 char* var748 /* : NativeString */;
5815 long var749 /* : Int */;
5816 val* var750 /* : String */;
5817 short int var751 /* : Bool */;
5818 static val* varonce752;
5819 val* var753 /* : String */;
5820 char* var754 /* : NativeString */;
5821 long var755 /* : Int */;
5822 val* var756 /* : String */;
5823 val* var757 /* : nullable Object */;
5824 static val* varonce758;
5825 val* var759 /* : String */;
5826 char* var760 /* : NativeString */;
5827 long var761 /* : Int */;
5828 val* var762 /* : String */;
5829 val* var763 /* : Array[Object] */;
5830 long var764 /* : Int */;
5831 val* var765 /* : NativeArray[Object] */;
5832 val* var766 /* : String */;
5833 static val* varonce767;
5834 val* var768 /* : String */;
5835 char* var769 /* : NativeString */;
5836 long var770 /* : Int */;
5837 val* var771 /* : String */;
5838 short int var772 /* : Bool */;
5839 static val* varonce773;
5840 val* var774 /* : String */;
5841 char* var775 /* : NativeString */;
5842 long var776 /* : Int */;
5843 val* var777 /* : String */;
5844 val* var778 /* : nullable Object */;
5845 val* var779 /* : Array[Object] */;
5846 long var780 /* : Int */;
5847 val* var781 /* : NativeArray[Object] */;
5848 val* var782 /* : String */;
5849 val* var783 /* : RuntimeVariable */;
5850 static val* varonce784;
5851 val* var785 /* : String */;
5852 char* var786 /* : NativeString */;
5853 long var787 /* : Int */;
5854 val* var788 /* : String */;
5855 short int var789 /* : Bool */;
5856 long var790 /* : Int */;
5857 val* var791 /* : nullable Object */;
5858 static val* varonce792;
5859 val* var793 /* : String */;
5860 char* var794 /* : NativeString */;
5861 long var795 /* : Int */;
5862 val* var796 /* : String */;
5863 long var797 /* : Int */;
5864 val* var798 /* : nullable Object */;
5865 val* var799 /* : Array[Object] */;
5866 long var800 /* : Int */;
5867 val* var801 /* : NativeArray[Object] */;
5868 val* var802 /* : String */;
5869 val* var803 /* : RuntimeVariable */;
5870 static val* varonce804;
5871 val* var805 /* : String */;
5872 char* var806 /* : NativeString */;
5873 long var807 /* : Int */;
5874 val* var808 /* : String */;
5875 short int var809 /* : Bool */;
5876 long var810 /* : Int */;
5877 val* var811 /* : nullable Object */;
5878 static val* varonce812;
5879 val* var813 /* : String */;
5880 char* var814 /* : NativeString */;
5881 long var815 /* : Int */;
5882 val* var816 /* : String */;
5883 long var817 /* : Int */;
5884 val* var818 /* : nullable Object */;
5885 val* var819 /* : Array[Object] */;
5886 long var820 /* : Int */;
5887 val* var821 /* : NativeArray[Object] */;
5888 val* var822 /* : String */;
5889 val* var823 /* : RuntimeVariable */;
5890 static val* varonce824;
5891 val* var825 /* : String */;
5892 char* var826 /* : NativeString */;
5893 long var827 /* : Int */;
5894 val* var828 /* : String */;
5895 short int var829 /* : Bool */;
5896 static val* varonce830;
5897 val* var831 /* : String */;
5898 char* var832 /* : NativeString */;
5899 long var833 /* : Int */;
5900 val* var834 /* : String */;
5901 long var835 /* : Int */;
5902 val* var836 /* : nullable Object */;
5903 val* var837 /* : Array[Object] */;
5904 long var838 /* : Int */;
5905 val* var839 /* : NativeArray[Object] */;
5906 val* var840 /* : String */;
5907 val* var841 /* : RuntimeVariable */;
5908 static val* varonce842;
5909 val* var843 /* : String */;
5910 char* var844 /* : NativeString */;
5911 long var845 /* : Int */;
5912 val* var846 /* : String */;
5913 short int var847 /* : Bool */;
5914 long var848 /* : Int */;
5915 val* var849 /* : nullable Object */;
5916 static val* varonce850;
5917 val* var851 /* : String */;
5918 char* var852 /* : NativeString */;
5919 long var853 /* : Int */;
5920 val* var854 /* : String */;
5921 val* var855 /* : Array[Object] */;
5922 long var856 /* : Int */;
5923 val* var857 /* : NativeArray[Object] */;
5924 val* var858 /* : String */;
5925 val* var859 /* : RuntimeVariable */;
5926 static val* varonce860;
5927 val* var861 /* : String */;
5928 char* var862 /* : NativeString */;
5929 long var863 /* : Int */;
5930 val* var864 /* : String */;
5931 short int var865 /* : Bool */;
5932 long var866 /* : Int */;
5933 val* var867 /* : nullable Object */;
5934 static val* varonce868;
5935 val* var869 /* : String */;
5936 char* var870 /* : NativeString */;
5937 long var871 /* : Int */;
5938 val* var872 /* : String */;
5939 val* var873 /* : Array[Object] */;
5940 long var874 /* : Int */;
5941 val* var875 /* : NativeArray[Object] */;
5942 val* var876 /* : String */;
5943 val* var877 /* : RuntimeVariable */;
5944 static val* varonce878;
5945 val* var879 /* : String */;
5946 char* var880 /* : NativeString */;
5947 long var881 /* : Int */;
5948 val* var882 /* : String */;
5949 short int var883 /* : Bool */;
5950 long var884 /* : Int */;
5951 val* var885 /* : nullable Object */;
5952 static val* varonce886;
5953 val* var887 /* : String */;
5954 char* var888 /* : NativeString */;
5955 long var889 /* : Int */;
5956 val* var890 /* : String */;
5957 long var891 /* : Int */;
5958 val* var892 /* : nullable Object */;
5959 val* var893 /* : Array[Object] */;
5960 long var894 /* : Int */;
5961 val* var895 /* : NativeArray[Object] */;
5962 val* var896 /* : String */;
5963 val* var897 /* : RuntimeVariable */;
5964 static val* varonce898;
5965 val* var899 /* : String */;
5966 char* var900 /* : NativeString */;
5967 long var901 /* : Int */;
5968 val* var902 /* : String */;
5969 short int var903 /* : Bool */;
5970 long var904 /* : Int */;
5971 val* var905 /* : nullable Object */;
5972 static val* varonce906;
5973 val* var907 /* : String */;
5974 char* var908 /* : NativeString */;
5975 long var909 /* : Int */;
5976 val* var910 /* : String */;
5977 long var911 /* : Int */;
5978 val* var912 /* : nullable Object */;
5979 val* var913 /* : Array[Object] */;
5980 long var914 /* : Int */;
5981 val* var915 /* : NativeArray[Object] */;
5982 val* var916 /* : String */;
5983 val* var917 /* : RuntimeVariable */;
5984 static val* varonce918;
5985 val* var919 /* : String */;
5986 char* var920 /* : NativeString */;
5987 long var921 /* : Int */;
5988 val* var922 /* : String */;
5989 short int var923 /* : Bool */;
5990 long var924 /* : Int */;
5991 val* var925 /* : nullable Object */;
5992 long var926 /* : Int */;
5993 val* var927 /* : nullable Object */;
5994 val* var928 /* : RuntimeVariable */;
5995 static val* varonce929;
5996 val* var930 /* : String */;
5997 char* var931 /* : NativeString */;
5998 long var932 /* : Int */;
5999 val* var933 /* : String */;
6000 short int var934 /* : Bool */;
6001 long var935 /* : Int */;
6002 val* var936 /* : nullable Object */;
6003 long var937 /* : Int */;
6004 val* var938 /* : nullable Object */;
6005 val* var939 /* : RuntimeVariable */;
6006 val* var_res940 /* var res: RuntimeVariable */;
6007 static val* varonce941;
6008 val* var942 /* : String */;
6009 char* var943 /* : NativeString */;
6010 long var944 /* : Int */;
6011 val* var945 /* : String */;
6012 val* var946 /* : Array[Object] */;
6013 long var947 /* : Int */;
6014 val* var948 /* : NativeArray[Object] */;
6015 val* var949 /* : String */;
6016 val* var950 /* : RuntimeVariable */;
6017 static val* varonce951;
6018 val* var952 /* : String */;
6019 char* var953 /* : NativeString */;
6020 long var954 /* : Int */;
6021 val* var955 /* : String */;
6022 short int var956 /* : Bool */;
6023 long var957 /* : Int */;
6024 val* var958 /* : nullable Object */;
6025 static val* varonce959;
6026 val* var960 /* : String */;
6027 char* var961 /* : NativeString */;
6028 long var962 /* : Int */;
6029 val* var963 /* : String */;
6030 long var964 /* : Int */;
6031 val* var965 /* : nullable Object */;
6032 val* var966 /* : Array[Object] */;
6033 long var967 /* : Int */;
6034 val* var968 /* : NativeArray[Object] */;
6035 val* var969 /* : String */;
6036 val* var970 /* : RuntimeVariable */;
6037 static val* varonce971;
6038 val* var972 /* : String */;
6039 char* var973 /* : NativeString */;
6040 long var974 /* : Int */;
6041 val* var975 /* : String */;
6042 short int var976 /* : Bool */;
6043 long var977 /* : Int */;
6044 val* var978 /* : nullable Object */;
6045 static val* varonce979;
6046 val* var980 /* : String */;
6047 char* var981 /* : NativeString */;
6048 long var982 /* : Int */;
6049 val* var983 /* : String */;
6050 long var984 /* : Int */;
6051 val* var985 /* : nullable Object */;
6052 val* var986 /* : Array[Object] */;
6053 long var987 /* : Int */;
6054 val* var988 /* : NativeArray[Object] */;
6055 val* var989 /* : String */;
6056 val* var990 /* : RuntimeVariable */;
6057 static val* varonce991;
6058 val* var992 /* : String */;
6059 char* var993 /* : NativeString */;
6060 long var994 /* : Int */;
6061 val* var995 /* : String */;
6062 short int var996 /* : Bool */;
6063 long var997 /* : Int */;
6064 val* var998 /* : nullable Object */;
6065 static val* varonce999;
6066 val* var1000 /* : String */;
6067 char* var1001 /* : NativeString */;
6068 long var1002 /* : Int */;
6069 val* var1003 /* : String */;
6070 long var1004 /* : Int */;
6071 val* var1005 /* : nullable Object */;
6072 val* var1006 /* : Array[Object] */;
6073 long var1007 /* : Int */;
6074 val* var1008 /* : NativeArray[Object] */;
6075 val* var1009 /* : String */;
6076 val* var1010 /* : RuntimeVariable */;
6077 static val* varonce1011;
6078 val* var1012 /* : String */;
6079 char* var1013 /* : NativeString */;
6080 long var1014 /* : Int */;
6081 val* var1015 /* : String */;
6082 short int var1016 /* : Bool */;
6083 long var1017 /* : Int */;
6084 val* var1018 /* : nullable Object */;
6085 static val* varonce1019;
6086 val* var1020 /* : String */;
6087 char* var1021 /* : NativeString */;
6088 long var1022 /* : Int */;
6089 val* var1023 /* : String */;
6090 long var1024 /* : Int */;
6091 val* var1025 /* : nullable Object */;
6092 val* var1026 /* : Array[Object] */;
6093 long var1027 /* : Int */;
6094 val* var1028 /* : NativeArray[Object] */;
6095 val* var1029 /* : String */;
6096 val* var1030 /* : RuntimeVariable */;
6097 static val* varonce1031;
6098 val* var1032 /* : String */;
6099 char* var1033 /* : NativeString */;
6100 long var1034 /* : Int */;
6101 val* var1035 /* : String */;
6102 short int var1036 /* : Bool */;
6103 static val* varonce1037;
6104 val* var1038 /* : String */;
6105 char* var1039 /* : NativeString */;
6106 long var1040 /* : Int */;
6107 val* var1041 /* : String */;
6108 long var1042 /* : Int */;
6109 val* var1043 /* : nullable Object */;
6110 val* var1044 /* : Array[Object] */;
6111 long var1045 /* : Int */;
6112 val* var1046 /* : NativeArray[Object] */;
6113 val* var1047 /* : String */;
6114 val* var1048 /* : RuntimeVariable */;
6115 static val* varonce1049;
6116 val* var1050 /* : String */;
6117 char* var1051 /* : NativeString */;
6118 long var1052 /* : Int */;
6119 val* var1053 /* : String */;
6120 short int var1054 /* : Bool */;
6121 static val* varonce1055;
6122 val* var1056 /* : String */;
6123 char* var1057 /* : NativeString */;
6124 long var1058 /* : Int */;
6125 val* var1059 /* : String */;
6126 short int var1060 /* : Bool */;
6127 long var1061 /* : Int */;
6128 val* var1062 /* : nullable Object */;
6129 static val* varonce1063;
6130 val* var1064 /* : String */;
6131 char* var1065 /* : NativeString */;
6132 long var1066 /* : Int */;
6133 val* var1067 /* : String */;
6134 long var1068 /* : Int */;
6135 val* var1069 /* : nullable Object */;
6136 static val* varonce1070;
6137 val* var1071 /* : String */;
6138 char* var1072 /* : NativeString */;
6139 long var1073 /* : Int */;
6140 val* var1074 /* : String */;
6141 val* var1075 /* : Array[Object] */;
6142 long var1076 /* : Int */;
6143 val* var1077 /* : NativeArray[Object] */;
6144 val* var1078 /* : String */;
6145 val* var1079 /* : RuntimeVariable */;
6146 static val* varonce1080;
6147 val* var1081 /* : String */;
6148 char* var1082 /* : NativeString */;
6149 long var1083 /* : Int */;
6150 val* var1084 /* : String */;
6151 short int var1085 /* : Bool */;
6152 long var1086 /* : Int */;
6153 val* var1087 /* : nullable Object */;
6154 static val* varonce1088;
6155 val* var1089 /* : String */;
6156 char* var1090 /* : NativeString */;
6157 long var1091 /* : Int */;
6158 val* var1092 /* : String */;
6159 long var1093 /* : Int */;
6160 val* var1094 /* : nullable Object */;
6161 static val* varonce1095;
6162 val* var1096 /* : String */;
6163 char* var1097 /* : NativeString */;
6164 long var1098 /* : Int */;
6165 val* var1099 /* : String */;
6166 long var1100 /* : Int */;
6167 val* var1101 /* : nullable Object */;
6168 static val* varonce1102;
6169 val* var1103 /* : String */;
6170 char* var1104 /* : NativeString */;
6171 long var1105 /* : Int */;
6172 val* var1106 /* : String */;
6173 val* var1107 /* : Array[Object] */;
6174 long var1108 /* : Int */;
6175 val* var1109 /* : NativeArray[Object] */;
6176 val* var1110 /* : String */;
6177 static val* varonce1111;
6178 val* var1112 /* : String */;
6179 char* var1113 /* : NativeString */;
6180 long var1114 /* : Int */;
6181 val* var1115 /* : String */;
6182 short int var1116 /* : Bool */;
6183 static val* varonce1117;
6184 val* var1118 /* : String */;
6185 char* var1119 /* : NativeString */;
6186 long var1120 /* : Int */;
6187 val* var1121 /* : String */;
6188 long var1122 /* : Int */;
6189 val* var1123 /* : nullable Object */;
6190 static val* varonce1124;
6191 val* var1125 /* : String */;
6192 char* var1126 /* : NativeString */;
6193 long var1127 /* : Int */;
6194 val* var1128 /* : String */;
6195 long var1129 /* : Int */;
6196 val* var1130 /* : nullable Object */;
6197 static val* varonce1131;
6198 val* var1132 /* : String */;
6199 char* var1133 /* : NativeString */;
6200 long var1134 /* : Int */;
6201 val* var1135 /* : String */;
6202 long var1136 /* : Int */;
6203 val* var1137 /* : nullable Object */;
6204 static val* varonce1138;
6205 val* var1139 /* : String */;
6206 char* var1140 /* : NativeString */;
6207 long var1141 /* : Int */;
6208 val* var1142 /* : String */;
6209 long var1143 /* : Int */;
6210 val* var1144 /* : nullable Object */;
6211 static val* varonce1145;
6212 val* var1146 /* : String */;
6213 char* var1147 /* : NativeString */;
6214 long var1148 /* : Int */;
6215 val* var1149 /* : String */;
6216 long var1150 /* : Int */;
6217 val* var1151 /* : nullable Object */;
6218 static val* varonce1152;
6219 val* var1153 /* : String */;
6220 char* var1154 /* : NativeString */;
6221 long var1155 /* : Int */;
6222 val* var1156 /* : String */;
6223 val* var1157 /* : Array[Object] */;
6224 long var1158 /* : Int */;
6225 val* var1159 /* : NativeArray[Object] */;
6226 val* var1160 /* : String */;
6227 static val* varonce1161;
6228 val* var1162 /* : String */;
6229 char* var1163 /* : NativeString */;
6230 long var1164 /* : Int */;
6231 val* var1165 /* : String */;
6232 short int var1166 /* : Bool */;
6233 static val* varonce1167;
6234 val* var1168 /* : String */;
6235 char* var1169 /* : NativeString */;
6236 long var1170 /* : Int */;
6237 val* var1171 /* : String */;
6238 long var1172 /* : Int */;
6239 val* var1173 /* : nullable Object */;
6240 static val* varonce1174;
6241 val* var1175 /* : String */;
6242 char* var1176 /* : NativeString */;
6243 long var1177 /* : Int */;
6244 val* var1178 /* : String */;
6245 val* var1179 /* : Array[Object] */;
6246 long var1180 /* : Int */;
6247 val* var1181 /* : NativeArray[Object] */;
6248 val* var1182 /* : String */;
6249 val* var1183 /* : RuntimeVariable */;
6250 static val* varonce1184;
6251 val* var1185 /* : String */;
6252 char* var1186 /* : NativeString */;
6253 long var1187 /* : Int */;
6254 val* var1188 /* : String */;
6255 short int var1189 /* : Bool */;
6256 static val* varonce1190;
6257 val* var1191 /* : String */;
6258 char* var1192 /* : NativeString */;
6259 long var1193 /* : Int */;
6260 val* var1194 /* : String */;
6261 short int var1195 /* : Bool */;
6262 static val* varonce1196;
6263 val* var1197 /* : String */;
6264 char* var1198 /* : NativeString */;
6265 long var1199 /* : Int */;
6266 val* var1200 /* : String */;
6267 long var1201 /* : Int */;
6268 val* var1202 /* : nullable Object */;
6269 static val* varonce1203;
6270 val* var1204 /* : String */;
6271 char* var1205 /* : NativeString */;
6272 long var1206 /* : Int */;
6273 val* var1207 /* : String */;
6274 val* var1208 /* : Array[Object] */;
6275 long var1209 /* : Int */;
6276 val* var1210 /* : NativeArray[Object] */;
6277 val* var1211 /* : String */;
6278 static val* varonce1212;
6279 val* var1213 /* : String */;
6280 char* var1214 /* : NativeString */;
6281 long var1215 /* : Int */;
6282 val* var1216 /* : String */;
6283 short int var1217 /* : Bool */;
6284 static val* varonce1218;
6285 val* var1219 /* : String */;
6286 char* var1220 /* : NativeString */;
6287 long var1221 /* : Int */;
6288 val* var1222 /* : String */;
6289 val* var1223 /* : RuntimeVariable */;
6290 static val* varonce1224;
6291 val* var1225 /* : String */;
6292 char* var1226 /* : NativeString */;
6293 long var1227 /* : Int */;
6294 val* var1228 /* : String */;
6295 short int var1229 /* : Bool */;
6296 static val* varonce1230;
6297 val* var1231 /* : String */;
6298 char* var1232 /* : NativeString */;
6299 long var1233 /* : Int */;
6300 val* var1234 /* : String */;
6301 long var1235 /* : Int */;
6302 val* var1236 /* : nullable Object */;
6303 static val* varonce1237;
6304 val* var1238 /* : String */;
6305 char* var1239 /* : NativeString */;
6306 long var1240 /* : Int */;
6307 val* var1241 /* : String */;
6308 val* var1242 /* : Array[Object] */;
6309 long var1243 /* : Int */;
6310 val* var1244 /* : NativeArray[Object] */;
6311 val* var1245 /* : String */;
6312 val* var1246 /* : RuntimeVariable */;
6313 static val* varonce1247;
6314 val* var1248 /* : String */;
6315 char* var1249 /* : NativeString */;
6316 long var1250 /* : Int */;
6317 val* var1251 /* : String */;
6318 short int var1252 /* : Bool */;
6319 static val* varonce1253;
6320 val* var1254 /* : String */;
6321 char* var1255 /* : NativeString */;
6322 long var1256 /* : Int */;
6323 val* var1257 /* : String */;
6324 short int var1258 /* : Bool */;
6325 static val* varonce1259;
6326 val* var1260 /* : String */;
6327 char* var1261 /* : NativeString */;
6328 long var1262 /* : Int */;
6329 val* var1263 /* : String */;
6330 val* var1264 /* : nullable Object */;
6331 val* var1265 /* : Array[Object] */;
6332 long var1266 /* : Int */;
6333 val* var1267 /* : NativeArray[Object] */;
6334 val* var1268 /* : String */;
6335 val* var1269 /* : RuntimeVariable */;
6336 static val* varonce1270;
6337 val* var1271 /* : String */;
6338 char* var1272 /* : NativeString */;
6339 long var1273 /* : Int */;
6340 val* var1274 /* : String */;
6341 short int var1275 /* : Bool */;
6342 long var1276 /* : Int */;
6343 val* var1277 /* : nullable Object */;
6344 long var1278 /* : Int */;
6345 val* var1279 /* : nullable Object */;
6346 val* var1280 /* : RuntimeVariable */;
6347 static val* varonce1281;
6348 val* var1282 /* : String */;
6349 char* var1283 /* : NativeString */;
6350 long var1284 /* : Int */;
6351 val* var1285 /* : String */;
6352 short int var1286 /* : Bool */;
6353 long var1287 /* : Int */;
6354 val* var1288 /* : nullable Object */;
6355 long var1289 /* : Int */;
6356 val* var1290 /* : nullable Object */;
6357 val* var1291 /* : RuntimeVariable */;
6358 static val* varonce1292;
6359 val* var1293 /* : String */;
6360 char* var1294 /* : NativeString */;
6361 long var1295 /* : Int */;
6362 val* var1296 /* : String */;
6363 short int var1297 /* : Bool */;
6364 val* var1298 /* : nullable Object */;
6365 val* var1299 /* : String */;
6366 val* var_nat /* var nat: String */;
6367 static val* varonce1300;
6368 val* var1301 /* : String */;
6369 char* var1302 /* : NativeString */;
6370 long var1303 /* : Int */;
6371 val* var1304 /* : String */;
6372 static val* varonce1305;
6373 val* var1306 /* : String */;
6374 char* var1307 /* : NativeString */;
6375 long var1308 /* : Int */;
6376 val* var1309 /* : String */;
6377 val* var1310 /* : Array[Object] */;
6378 long var1311 /* : Int */;
6379 val* var1312 /* : NativeArray[Object] */;
6380 val* var1313 /* : String */;
6381 static val* varonce1314;
6382 val* var1315 /* : String */;
6383 char* var1316 /* : NativeString */;
6384 long var1317 /* : Int */;
6385 val* var1318 /* : String */;
6386 short int var1319 /* : Bool */;
6387 val* var1320 /* : nullable Object */;
6388 val* var1321 /* : String */;
6389 val* var_nat1322 /* var nat: String */;
6390 static val* varonce1323;
6391 val* var1324 /* : String */;
6392 char* var1325 /* : NativeString */;
6393 long var1326 /* : Int */;
6394 val* var1327 /* : String */;
6395 val* var1328 /* : Array[Object] */;
6396 long var1329 /* : Int */;
6397 val* var1330 /* : NativeArray[Object] */;
6398 val* var1331 /* : String */;
6399 val* var1332 /* : RuntimeVariable */;
6400 static val* varonce1333;
6401 val* var1334 /* : String */;
6402 char* var1335 /* : NativeString */;
6403 long var1336 /* : Int */;
6404 val* var1337 /* : String */;
6405 short int var1338 /* : Bool */;
6406 static val* varonce1339;
6407 val* var1340 /* : String */;
6408 char* var1341 /* : NativeString */;
6409 long var1342 /* : Int */;
6410 val* var1343 /* : String */;
6411 static val* varonce1344;
6412 val* var1345 /* : String */;
6413 char* var1346 /* : NativeString */;
6414 long var1347 /* : Int */;
6415 val* var1348 /* : String */;
6416 short int var1349 /* : Bool */;
6417 static val* varonce1350;
6418 val* var1351 /* : String */;
6419 char* var1352 /* : NativeString */;
6420 long var1353 /* : Int */;
6421 val* var1354 /* : String */;
6422 val* var1355 /* : RuntimeVariable */;
6423 static val* varonce1356;
6424 val* var1357 /* : String */;
6425 char* var1358 /* : NativeString */;
6426 long var1359 /* : Int */;
6427 val* var1360 /* : String */;
6428 short int var1361 /* : Bool */;
6429 static val* varonce1362;
6430 val* var1363 /* : String */;
6431 char* var1364 /* : NativeString */;
6432 long var1365 /* : Int */;
6433 val* var1366 /* : String */;
6434 long var1367 /* : Int */;
6435 val* var1368 /* : nullable Object */;
6436 static val* varonce1369;
6437 val* var1370 /* : String */;
6438 char* var1371 /* : NativeString */;
6439 long var1372 /* : Int */;
6440 val* var1373 /* : String */;
6441 val* var1374 /* : Array[Object] */;
6442 long var1375 /* : Int */;
6443 val* var1376 /* : NativeArray[Object] */;
6444 val* var1377 /* : String */;
6445 val* var1378 /* : RuntimeVariable */;
6446 static val* varonce1379;
6447 val* var1380 /* : String */;
6448 char* var1381 /* : NativeString */;
6449 long var1382 /* : Int */;
6450 val* var1383 /* : String */;
6451 val* var1384 /* : String */;
6452 static val* varonce1385;
6453 val* var1386 /* : String */;
6454 char* var1387 /* : NativeString */;
6455 long var1388 /* : Int */;
6456 val* var1389 /* : String */;
6457 static val* varonce1390;
6458 val* var1391 /* : String */;
6459 char* var1392 /* : NativeString */;
6460 long var1393 /* : Int */;
6461 val* var1394 /* : String */;
6462 val* var1395 /* : Location */;
6463 val* var1396 /* : String */;
6464 static val* varonce1397;
6465 val* var1398 /* : String */;
6466 char* var1399 /* : NativeString */;
6467 long var1400 /* : Int */;
6468 val* var1401 /* : String */;
6469 val* var1402 /* : Array[Object] */;
6470 long var1403 /* : Int */;
6471 val* var1404 /* : NativeArray[Object] */;
6472 val* var1405 /* : String */;
6473 static val* varonce1406;
6474 val* var1407 /* : String */;
6475 char* var1408 /* : NativeString */;
6476 long var1409 /* : Int */;
6477 val* var1410 /* : String */;
6478 val* var1411 /* : Array[Object] */;
6479 long var1412 /* : Int */;
6480 val* var1413 /* : NativeArray[Object] */;
6481 val* var1414 /* : String */;
6482 var_v = p0;
6483 var_mpropdef = p1;
6484 var_arguments = p2;
6485 var = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mproperty]))(var_mpropdef) /* mproperty on <var_mpropdef:MMethodDef>*/;
6486 var1 = ((val* (*)(val*))(var->class->vft[COLOR_model__MProperty__name]))(var) /* name on <var:MProperty(MMethod)>*/;
6487 var_pname = var1;
6488 var2 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MPropDef__mclassdef]))(var_mpropdef) /* mclassdef on <var_mpropdef:MMethodDef>*/;
6489 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_model__MClassDef__mclass]))(var2) /* mclass on <var2:MClassDef>*/;
6490 var4 = ((val* (*)(val*))(var3->class->vft[COLOR_model__MClass__name]))(var3) /* name on <var3:MClass>*/;
6491 var_cname = var4;
6492 var5 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
6493 if (var5 == NULL) {
6494 fprintf(stderr, "Runtime error: %s", "Reciever is null");
6495 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1468);
6496 show_backtrace(1);
6497 } else {
6498 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_model__MSignature__return_mtype]))(var5) /* return_mtype on <var5:nullable MSignature>*/;
6499 }
6500 var_ret = var6;
6501 var7 = NULL;
6502 if (var_ret == NULL) {
6503 var8 = 0; /* is null */
6504 } else {
6505 var8 = 1; /* arg is null and recv is not */
6506 }
6507 if (var8){
6508 var9 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
6509 var10 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for]))(var_v, var_ret, var9) /* resolve_for on <var_v:AbstractCompilerVisitor>*/;
6510 var_ret = var10;
6511 } else {
6512 }
6513 if (varonce) {
6514 var12 = varonce;
6515 } else {
6516 var13 = "==";
6517 var14 = 2;
6518 var15 = string__NativeString__to_s_with_length(var13, var14);
6519 var12 = var15;
6520 varonce = var12;
6521 }
6522 var16 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___33d_61d]))(var_pname, var12) /* != on <var_pname:String>*/;
6523 var_ = var16;
6524 if (var16){
6525 if (varonce17) {
6526 var18 = varonce17;
6527 } else {
6528 var19 = "!=";
6529 var20 = 2;
6530 var21 = string__NativeString__to_s_with_length(var19, var20);
6531 var18 = var21;
6532 varonce17 = var18;
6533 }
6534 var22 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___33d_61d]))(var_pname, var18) /* != on <var_pname:String>*/;
6535 var11 = var22;
6536 } else {
6537 var11 = var_;
6538 }
6539 if (var11){
6540 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
6541 } else {
6542 }
6543 if (varonce23) {
6544 var24 = varonce23;
6545 } else {
6546 var25 = "Int";
6547 var26 = 3;
6548 var27 = string__NativeString__to_s_with_length(var25, var26);
6549 var24 = var27;
6550 varonce23 = var24;
6551 }
6552 var28 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var24) /* == on <var_cname:String>*/;
6553 if (var28){
6554 if (varonce29) {
6555 var30 = varonce29;
6556 } else {
6557 var31 = "output";
6558 var32 = 6;
6559 var33 = string__NativeString__to_s_with_length(var31, var32);
6560 var30 = var33;
6561 varonce29 = var30;
6562 }
6563 var34 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var30) /* == on <var_pname:String>*/;
6564 if (var34){
6565 if (varonce35) {
6566 var36 = varonce35;
6567 } else {
6568 var37 = "printf(\"%ld\\n\", ";
6569 var38 = 16;
6570 var39 = string__NativeString__to_s_with_length(var37, var38);
6571 var36 = var39;
6572 varonce35 = var36;
6573 }
6574 var40 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
6575 if (varonce41) {
6576 var42 = varonce41;
6577 } else {
6578 var43 = ");";
6579 var44 = 2;
6580 var45 = string__NativeString__to_s_with_length(var43, var44);
6581 var42 = var45;
6582 varonce41 = var42;
6583 }
6584 var46 = NEW_array__Array(&type_array__Arraykernel__Object);
6585 { /* var46 = array_instance Array[Object] */
6586 var47 = 3;
6587 var48 = NEW_array__NativeArray(var47, &type_array__NativeArraykernel__Object);
6588 ((struct instance_array__NativeArray*)var48)->values[0] = (val*) var36;
6589 ((struct instance_array__NativeArray*)var48)->values[1] = (val*) var40;
6590 ((struct instance_array__NativeArray*)var48)->values[2] = (val*) var42;
6591 ((void (*)(val*, val*, long))(var46->class->vft[COLOR_array__Array__with_native]))(var46, var48, var47) /* with_native on <var46:Array[Object]>*/;
6592 }
6593 var49 = ((val* (*)(val*))(var46->class->vft[COLOR_string__Object__to_s]))(var46) /* to_s on <var46:Array[Object]>*/;
6594 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var49) /* add on <var_v:AbstractCompilerVisitor>*/;
6595 goto RET_LABEL;
6596 } else {
6597 if (varonce50) {
6598 var51 = varonce50;
6599 } else {
6600 var52 = "object_id";
6601 var53 = 9;
6602 var54 = string__NativeString__to_s_with_length(var52, var53);
6603 var51 = var54;
6604 varonce50 = var51;
6605 }
6606 var55 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var51) /* == on <var_pname:String>*/;
6607 if (var55){
6608 var56 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
6609 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var56) /* ret on <var_v:AbstractCompilerVisitor>*/;
6610 goto RET_LABEL;
6611 } else {
6612 if (varonce57) {
6613 var58 = varonce57;
6614 } else {
6615 var59 = "+";
6616 var60 = 1;
6617 var61 = string__NativeString__to_s_with_length(var59, var60);
6618 var58 = var61;
6619 varonce57 = var58;
6620 }
6621 var62 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var58) /* == on <var_pname:String>*/;
6622 if (var62){
6623 var63 = 0;
6624 var64 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var63) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6625 if (varonce65) {
6626 var66 = varonce65;
6627 } else {
6628 var67 = " + ";
6629 var68 = 3;
6630 var69 = string__NativeString__to_s_with_length(var67, var68);
6631 var66 = var69;
6632 varonce65 = var66;
6633 }
6634 var70 = 1;
6635 var71 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var70) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6636 var72 = NEW_array__Array(&type_array__Arraykernel__Object);
6637 { /* var72 = array_instance Array[Object] */
6638 var73 = 3;
6639 var74 = NEW_array__NativeArray(var73, &type_array__NativeArraykernel__Object);
6640 ((struct instance_array__NativeArray*)var74)->values[0] = (val*) var64;
6641 ((struct instance_array__NativeArray*)var74)->values[1] = (val*) var66;
6642 ((struct instance_array__NativeArray*)var74)->values[2] = (val*) var71;
6643 ((void (*)(val*, val*, long))(var72->class->vft[COLOR_array__Array__with_native]))(var72, var74, var73) /* with_native on <var72:Array[Object]>*/;
6644 }
6645 var75 = ((val* (*)(val*))(var72->class->vft[COLOR_string__Object__to_s]))(var72) /* to_s on <var72:Array[Object]>*/;
6646 if (var_ret == NULL) {
6647 fprintf(stderr, "Runtime error: %s", "Cast failed");
6648 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1483);
6649 show_backtrace(1);
6650 }
6651 var76 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var75, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6652 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var76) /* ret on <var_v:AbstractCompilerVisitor>*/;
6653 goto RET_LABEL;
6654 } else {
6655 if (varonce77) {
6656 var78 = varonce77;
6657 } else {
6658 var79 = "-";
6659 var80 = 1;
6660 var81 = string__NativeString__to_s_with_length(var79, var80);
6661 var78 = var81;
6662 varonce77 = var78;
6663 }
6664 var82 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var78) /* == on <var_pname:String>*/;
6665 if (var82){
6666 var83 = 0;
6667 var84 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var83) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6668 if (varonce85) {
6669 var86 = varonce85;
6670 } else {
6671 var87 = " - ";
6672 var88 = 3;
6673 var89 = string__NativeString__to_s_with_length(var87, var88);
6674 var86 = var89;
6675 varonce85 = var86;
6676 }
6677 var90 = 1;
6678 var91 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var90) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6679 var92 = NEW_array__Array(&type_array__Arraykernel__Object);
6680 { /* var92 = array_instance Array[Object] */
6681 var93 = 3;
6682 var94 = NEW_array__NativeArray(var93, &type_array__NativeArraykernel__Object);
6683 ((struct instance_array__NativeArray*)var94)->values[0] = (val*) var84;
6684 ((struct instance_array__NativeArray*)var94)->values[1] = (val*) var86;
6685 ((struct instance_array__NativeArray*)var94)->values[2] = (val*) var91;
6686 ((void (*)(val*, val*, long))(var92->class->vft[COLOR_array__Array__with_native]))(var92, var94, var93) /* with_native on <var92:Array[Object]>*/;
6687 }
6688 var95 = ((val* (*)(val*))(var92->class->vft[COLOR_string__Object__to_s]))(var92) /* to_s on <var92:Array[Object]>*/;
6689 if (var_ret == NULL) {
6690 fprintf(stderr, "Runtime error: %s", "Cast failed");
6691 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1486);
6692 show_backtrace(1);
6693 }
6694 var96 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var95, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6695 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var96) /* ret on <var_v:AbstractCompilerVisitor>*/;
6696 goto RET_LABEL;
6697 } else {
6698 if (varonce97) {
6699 var98 = varonce97;
6700 } else {
6701 var99 = "unary -";
6702 var100 = 7;
6703 var101 = string__NativeString__to_s_with_length(var99, var100);
6704 var98 = var101;
6705 varonce97 = var98;
6706 }
6707 var102 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var98) /* == on <var_pname:String>*/;
6708 if (var102){
6709 if (varonce103) {
6710 var104 = varonce103;
6711 } else {
6712 var105 = "-";
6713 var106 = 1;
6714 var107 = string__NativeString__to_s_with_length(var105, var106);
6715 var104 = var107;
6716 varonce103 = var104;
6717 }
6718 var108 = 0;
6719 var109 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var108) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6720 var110 = NEW_array__Array(&type_array__Arraykernel__Object);
6721 { /* var110 = array_instance Array[Object] */
6722 var111 = 2;
6723 var112 = NEW_array__NativeArray(var111, &type_array__NativeArraykernel__Object);
6724 ((struct instance_array__NativeArray*)var112)->values[0] = (val*) var104;
6725 ((struct instance_array__NativeArray*)var112)->values[1] = (val*) var109;
6726 ((void (*)(val*, val*, long))(var110->class->vft[COLOR_array__Array__with_native]))(var110, var112, var111) /* with_native on <var110:Array[Object]>*/;
6727 }
6728 var113 = ((val* (*)(val*))(var110->class->vft[COLOR_string__Object__to_s]))(var110) /* to_s on <var110:Array[Object]>*/;
6729 if (var_ret == NULL) {
6730 fprintf(stderr, "Runtime error: %s", "Cast failed");
6731 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1489);
6732 show_backtrace(1);
6733 }
6734 var114 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var113, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6735 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var114) /* ret on <var_v:AbstractCompilerVisitor>*/;
6736 goto RET_LABEL;
6737 } else {
6738 if (varonce115) {
6739 var116 = varonce115;
6740 } else {
6741 var117 = "succ";
6742 var118 = 4;
6743 var119 = string__NativeString__to_s_with_length(var117, var118);
6744 var116 = var119;
6745 varonce115 = var116;
6746 }
6747 var120 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var116) /* == on <var_pname:String>*/;
6748 if (var120){
6749 var121 = 0;
6750 var122 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var121) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6751 if (varonce123) {
6752 var124 = varonce123;
6753 } else {
6754 var125 = "+1";
6755 var126 = 2;
6756 var127 = string__NativeString__to_s_with_length(var125, var126);
6757 var124 = var127;
6758 varonce123 = var124;
6759 }
6760 var128 = NEW_array__Array(&type_array__Arraykernel__Object);
6761 { /* var128 = array_instance Array[Object] */
6762 var129 = 2;
6763 var130 = NEW_array__NativeArray(var129, &type_array__NativeArraykernel__Object);
6764 ((struct instance_array__NativeArray*)var130)->values[0] = (val*) var122;
6765 ((struct instance_array__NativeArray*)var130)->values[1] = (val*) var124;
6766 ((void (*)(val*, val*, long))(var128->class->vft[COLOR_array__Array__with_native]))(var128, var130, var129) /* with_native on <var128:Array[Object]>*/;
6767 }
6768 var131 = ((val* (*)(val*))(var128->class->vft[COLOR_string__Object__to_s]))(var128) /* to_s on <var128:Array[Object]>*/;
6769 if (var_ret == NULL) {
6770 fprintf(stderr, "Runtime error: %s", "Cast failed");
6771 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1492);
6772 show_backtrace(1);
6773 }
6774 var132 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var131, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6775 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var132) /* ret on <var_v:AbstractCompilerVisitor>*/;
6776 goto RET_LABEL;
6777 } else {
6778 if (varonce133) {
6779 var134 = varonce133;
6780 } else {
6781 var135 = "prec";
6782 var136 = 4;
6783 var137 = string__NativeString__to_s_with_length(var135, var136);
6784 var134 = var137;
6785 varonce133 = var134;
6786 }
6787 var138 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var134) /* == on <var_pname:String>*/;
6788 if (var138){
6789 var139 = 0;
6790 var140 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var139) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6791 if (varonce141) {
6792 var142 = varonce141;
6793 } else {
6794 var143 = "-1";
6795 var144 = 2;
6796 var145 = string__NativeString__to_s_with_length(var143, var144);
6797 var142 = var145;
6798 varonce141 = var142;
6799 }
6800 var146 = NEW_array__Array(&type_array__Arraykernel__Object);
6801 { /* var146 = array_instance Array[Object] */
6802 var147 = 2;
6803 var148 = NEW_array__NativeArray(var147, &type_array__NativeArraykernel__Object);
6804 ((struct instance_array__NativeArray*)var148)->values[0] = (val*) var140;
6805 ((struct instance_array__NativeArray*)var148)->values[1] = (val*) var142;
6806 ((void (*)(val*, val*, long))(var146->class->vft[COLOR_array__Array__with_native]))(var146, var148, var147) /* with_native on <var146:Array[Object]>*/;
6807 }
6808 var149 = ((val* (*)(val*))(var146->class->vft[COLOR_string__Object__to_s]))(var146) /* to_s on <var146:Array[Object]>*/;
6809 if (var_ret == NULL) {
6810 fprintf(stderr, "Runtime error: %s", "Cast failed");
6811 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1495);
6812 show_backtrace(1);
6813 }
6814 var150 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var149, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6815 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var150) /* ret on <var_v:AbstractCompilerVisitor>*/;
6816 goto RET_LABEL;
6817 } else {
6818 if (varonce151) {
6819 var152 = varonce151;
6820 } else {
6821 var153 = "*";
6822 var154 = 1;
6823 var155 = string__NativeString__to_s_with_length(var153, var154);
6824 var152 = var155;
6825 varonce151 = var152;
6826 }
6827 var156 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var152) /* == on <var_pname:String>*/;
6828 if (var156){
6829 var157 = 0;
6830 var158 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var157) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6831 if (varonce159) {
6832 var160 = varonce159;
6833 } else {
6834 var161 = " * ";
6835 var162 = 3;
6836 var163 = string__NativeString__to_s_with_length(var161, var162);
6837 var160 = var163;
6838 varonce159 = var160;
6839 }
6840 var164 = 1;
6841 var165 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var164) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6842 var166 = NEW_array__Array(&type_array__Arraykernel__Object);
6843 { /* var166 = array_instance Array[Object] */
6844 var167 = 3;
6845 var168 = NEW_array__NativeArray(var167, &type_array__NativeArraykernel__Object);
6846 ((struct instance_array__NativeArray*)var168)->values[0] = (val*) var158;
6847 ((struct instance_array__NativeArray*)var168)->values[1] = (val*) var160;
6848 ((struct instance_array__NativeArray*)var168)->values[2] = (val*) var165;
6849 ((void (*)(val*, val*, long))(var166->class->vft[COLOR_array__Array__with_native]))(var166, var168, var167) /* with_native on <var166:Array[Object]>*/;
6850 }
6851 var169 = ((val* (*)(val*))(var166->class->vft[COLOR_string__Object__to_s]))(var166) /* to_s on <var166:Array[Object]>*/;
6852 if (var_ret == NULL) {
6853 fprintf(stderr, "Runtime error: %s", "Cast failed");
6854 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1498);
6855 show_backtrace(1);
6856 }
6857 var170 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var169, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6858 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var170) /* ret on <var_v:AbstractCompilerVisitor>*/;
6859 goto RET_LABEL;
6860 } else {
6861 if (varonce171) {
6862 var172 = varonce171;
6863 } else {
6864 var173 = "/";
6865 var174 = 1;
6866 var175 = string__NativeString__to_s_with_length(var173, var174);
6867 var172 = var175;
6868 varonce171 = var172;
6869 }
6870 var176 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var172) /* == on <var_pname:String>*/;
6871 if (var176){
6872 var177 = 0;
6873 var178 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var177) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6874 if (varonce179) {
6875 var180 = varonce179;
6876 } else {
6877 var181 = " / ";
6878 var182 = 3;
6879 var183 = string__NativeString__to_s_with_length(var181, var182);
6880 var180 = var183;
6881 varonce179 = var180;
6882 }
6883 var184 = 1;
6884 var185 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var184) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6885 var186 = NEW_array__Array(&type_array__Arraykernel__Object);
6886 { /* var186 = array_instance Array[Object] */
6887 var187 = 3;
6888 var188 = NEW_array__NativeArray(var187, &type_array__NativeArraykernel__Object);
6889 ((struct instance_array__NativeArray*)var188)->values[0] = (val*) var178;
6890 ((struct instance_array__NativeArray*)var188)->values[1] = (val*) var180;
6891 ((struct instance_array__NativeArray*)var188)->values[2] = (val*) var185;
6892 ((void (*)(val*, val*, long))(var186->class->vft[COLOR_array__Array__with_native]))(var186, var188, var187) /* with_native on <var186:Array[Object]>*/;
6893 }
6894 var189 = ((val* (*)(val*))(var186->class->vft[COLOR_string__Object__to_s]))(var186) /* to_s on <var186:Array[Object]>*/;
6895 if (var_ret == NULL) {
6896 fprintf(stderr, "Runtime error: %s", "Cast failed");
6897 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1501);
6898 show_backtrace(1);
6899 }
6900 var190 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var189, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6901 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var190) /* ret on <var_v:AbstractCompilerVisitor>*/;
6902 goto RET_LABEL;
6903 } else {
6904 if (varonce191) {
6905 var192 = varonce191;
6906 } else {
6907 var193 = "%";
6908 var194 = 1;
6909 var195 = string__NativeString__to_s_with_length(var193, var194);
6910 var192 = var195;
6911 varonce191 = var192;
6912 }
6913 var196 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var192) /* == on <var_pname:String>*/;
6914 if (var196){
6915 var197 = 0;
6916 var198 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var197) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6917 if (varonce199) {
6918 var200 = varonce199;
6919 } else {
6920 var201 = " % ";
6921 var202 = 3;
6922 var203 = string__NativeString__to_s_with_length(var201, var202);
6923 var200 = var203;
6924 varonce199 = var200;
6925 }
6926 var204 = 1;
6927 var205 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var204) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6928 var206 = NEW_array__Array(&type_array__Arraykernel__Object);
6929 { /* var206 = array_instance Array[Object] */
6930 var207 = 3;
6931 var208 = NEW_array__NativeArray(var207, &type_array__NativeArraykernel__Object);
6932 ((struct instance_array__NativeArray*)var208)->values[0] = (val*) var198;
6933 ((struct instance_array__NativeArray*)var208)->values[1] = (val*) var200;
6934 ((struct instance_array__NativeArray*)var208)->values[2] = (val*) var205;
6935 ((void (*)(val*, val*, long))(var206->class->vft[COLOR_array__Array__with_native]))(var206, var208, var207) /* with_native on <var206:Array[Object]>*/;
6936 }
6937 var209 = ((val* (*)(val*))(var206->class->vft[COLOR_string__Object__to_s]))(var206) /* to_s on <var206:Array[Object]>*/;
6938 if (var_ret == NULL) {
6939 fprintf(stderr, "Runtime error: %s", "Cast failed");
6940 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1504);
6941 show_backtrace(1);
6942 }
6943 var210 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var209, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6944 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var210) /* ret on <var_v:AbstractCompilerVisitor>*/;
6945 goto RET_LABEL;
6946 } else {
6947 if (varonce211) {
6948 var212 = varonce211;
6949 } else {
6950 var213 = "lshift";
6951 var214 = 6;
6952 var215 = string__NativeString__to_s_with_length(var213, var214);
6953 var212 = var215;
6954 varonce211 = var212;
6955 }
6956 var216 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var212) /* == on <var_pname:String>*/;
6957 if (var216){
6958 var217 = 0;
6959 var218 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var217) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6960 if (varonce219) {
6961 var220 = varonce219;
6962 } else {
6963 var221 = " << ";
6964 var222 = 4;
6965 var223 = string__NativeString__to_s_with_length(var221, var222);
6966 var220 = var223;
6967 varonce219 = var220;
6968 }
6969 var224 = 1;
6970 var225 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var224) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
6971 var226 = NEW_array__Array(&type_array__Arraykernel__Object);
6972 { /* var226 = array_instance Array[Object] */
6973 var227 = 3;
6974 var228 = NEW_array__NativeArray(var227, &type_array__NativeArraykernel__Object);
6975 ((struct instance_array__NativeArray*)var228)->values[0] = (val*) var218;
6976 ((struct instance_array__NativeArray*)var228)->values[1] = (val*) var220;
6977 ((struct instance_array__NativeArray*)var228)->values[2] = (val*) var225;
6978 ((void (*)(val*, val*, long))(var226->class->vft[COLOR_array__Array__with_native]))(var226, var228, var227) /* with_native on <var226:Array[Object]>*/;
6979 }
6980 var229 = ((val* (*)(val*))(var226->class->vft[COLOR_string__Object__to_s]))(var226) /* to_s on <var226:Array[Object]>*/;
6981 if (var_ret == NULL) {
6982 fprintf(stderr, "Runtime error: %s", "Cast failed");
6983 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1507);
6984 show_backtrace(1);
6985 }
6986 var230 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var229, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
6987 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var230) /* ret on <var_v:AbstractCompilerVisitor>*/;
6988 goto RET_LABEL;
6989 } else {
6990 if (varonce231) {
6991 var232 = varonce231;
6992 } else {
6993 var233 = "rshift";
6994 var234 = 6;
6995 var235 = string__NativeString__to_s_with_length(var233, var234);
6996 var232 = var235;
6997 varonce231 = var232;
6998 }
6999 var236 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var232) /* == on <var_pname:String>*/;
7000 if (var236){
7001 var237 = 0;
7002 var238 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var237) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7003 if (varonce239) {
7004 var240 = varonce239;
7005 } else {
7006 var241 = " >> ";
7007 var242 = 4;
7008 var243 = string__NativeString__to_s_with_length(var241, var242);
7009 var240 = var243;
7010 varonce239 = var240;
7011 }
7012 var244 = 1;
7013 var245 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var244) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7014 var246 = NEW_array__Array(&type_array__Arraykernel__Object);
7015 { /* var246 = array_instance Array[Object] */
7016 var247 = 3;
7017 var248 = NEW_array__NativeArray(var247, &type_array__NativeArraykernel__Object);
7018 ((struct instance_array__NativeArray*)var248)->values[0] = (val*) var238;
7019 ((struct instance_array__NativeArray*)var248)->values[1] = (val*) var240;
7020 ((struct instance_array__NativeArray*)var248)->values[2] = (val*) var245;
7021 ((void (*)(val*, val*, long))(var246->class->vft[COLOR_array__Array__with_native]))(var246, var248, var247) /* with_native on <var246:Array[Object]>*/;
7022 }
7023 var249 = ((val* (*)(val*))(var246->class->vft[COLOR_string__Object__to_s]))(var246) /* to_s on <var246:Array[Object]>*/;
7024 if (var_ret == NULL) {
7025 fprintf(stderr, "Runtime error: %s", "Cast failed");
7026 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1510);
7027 show_backtrace(1);
7028 }
7029 var250 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var249, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7030 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var250) /* ret on <var_v:AbstractCompilerVisitor>*/;
7031 goto RET_LABEL;
7032 } else {
7033 if (varonce251) {
7034 var252 = varonce251;
7035 } else {
7036 var253 = "==";
7037 var254 = 2;
7038 var255 = string__NativeString__to_s_with_length(var253, var254);
7039 var252 = var255;
7040 varonce251 = var252;
7041 }
7042 var256 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var252) /* == on <var_pname:String>*/;
7043 if (var256){
7044 var257 = 0;
7045 var258 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var257) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7046 var259 = 1;
7047 var260 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var259) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7048 var261 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var258, var260) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
7049 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var261) /* ret on <var_v:AbstractCompilerVisitor>*/;
7050 goto RET_LABEL;
7051 } else {
7052 if (varonce262) {
7053 var263 = varonce262;
7054 } else {
7055 var264 = "!=";
7056 var265 = 2;
7057 var266 = string__NativeString__to_s_with_length(var264, var265);
7058 var263 = var266;
7059 varonce262 = var263;
7060 }
7061 var267 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var263) /* == on <var_pname:String>*/;
7062 if (var267){
7063 var268 = 0;
7064 var269 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var268) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7065 var270 = 1;
7066 var271 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var270) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7067 var272 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var269, var271) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
7068 var_res = var272;
7069 if (varonce273) {
7070 var274 = varonce273;
7071 } else {
7072 var275 = "!";
7073 var276 = 1;
7074 var277 = string__NativeString__to_s_with_length(var275, var276);
7075 var274 = var277;
7076 varonce273 = var274;
7077 }
7078 var278 = NEW_array__Array(&type_array__Arraykernel__Object);
7079 { /* var278 = array_instance Array[Object] */
7080 var279 = 2;
7081 var280 = NEW_array__NativeArray(var279, &type_array__NativeArraykernel__Object);
7082 ((struct instance_array__NativeArray*)var280)->values[0] = (val*) var274;
7083 ((struct instance_array__NativeArray*)var280)->values[1] = (val*) var_res;
7084 ((void (*)(val*, val*, long))(var278->class->vft[COLOR_array__Array__with_native]))(var278, var280, var279) /* with_native on <var278:Array[Object]>*/;
7085 }
7086 var281 = ((val* (*)(val*))(var278->class->vft[COLOR_string__Object__to_s]))(var278) /* to_s on <var278:Array[Object]>*/;
7087 if (var_ret == NULL) {
7088 fprintf(stderr, "Runtime error: %s", "Cast failed");
7089 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1517);
7090 show_backtrace(1);
7091 }
7092 var282 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var281, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7093 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var282) /* ret on <var_v:AbstractCompilerVisitor>*/;
7094 goto RET_LABEL;
7095 } else {
7096 if (varonce283) {
7097 var284 = varonce283;
7098 } else {
7099 var285 = "<";
7100 var286 = 1;
7101 var287 = string__NativeString__to_s_with_length(var285, var286);
7102 var284 = var287;
7103 varonce283 = var284;
7104 }
7105 var288 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var284) /* == on <var_pname:String>*/;
7106 if (var288){
7107 var289 = 0;
7108 var290 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var289) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7109 if (varonce291) {
7110 var292 = varonce291;
7111 } else {
7112 var293 = " < ";
7113 var294 = 3;
7114 var295 = string__NativeString__to_s_with_length(var293, var294);
7115 var292 = var295;
7116 varonce291 = var292;
7117 }
7118 var296 = 1;
7119 var297 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var296) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7120 var298 = NEW_array__Array(&type_array__Arraykernel__Object);
7121 { /* var298 = array_instance Array[Object] */
7122 var299 = 3;
7123 var300 = NEW_array__NativeArray(var299, &type_array__NativeArraykernel__Object);
7124 ((struct instance_array__NativeArray*)var300)->values[0] = (val*) var290;
7125 ((struct instance_array__NativeArray*)var300)->values[1] = (val*) var292;
7126 ((struct instance_array__NativeArray*)var300)->values[2] = (val*) var297;
7127 ((void (*)(val*, val*, long))(var298->class->vft[COLOR_array__Array__with_native]))(var298, var300, var299) /* with_native on <var298:Array[Object]>*/;
7128 }
7129 var301 = ((val* (*)(val*))(var298->class->vft[COLOR_string__Object__to_s]))(var298) /* to_s on <var298:Array[Object]>*/;
7130 if (var_ret == NULL) {
7131 fprintf(stderr, "Runtime error: %s", "Cast failed");
7132 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1520);
7133 show_backtrace(1);
7134 }
7135 var302 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var301, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7136 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var302) /* ret on <var_v:AbstractCompilerVisitor>*/;
7137 goto RET_LABEL;
7138 } else {
7139 if (varonce303) {
7140 var304 = varonce303;
7141 } else {
7142 var305 = ">";
7143 var306 = 1;
7144 var307 = string__NativeString__to_s_with_length(var305, var306);
7145 var304 = var307;
7146 varonce303 = var304;
7147 }
7148 var308 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var304) /* == on <var_pname:String>*/;
7149 if (var308){
7150 var309 = 0;
7151 var310 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var309) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7152 if (varonce311) {
7153 var312 = varonce311;
7154 } else {
7155 var313 = " > ";
7156 var314 = 3;
7157 var315 = string__NativeString__to_s_with_length(var313, var314);
7158 var312 = var315;
7159 varonce311 = var312;
7160 }
7161 var316 = 1;
7162 var317 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var316) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7163 var318 = NEW_array__Array(&type_array__Arraykernel__Object);
7164 { /* var318 = array_instance Array[Object] */
7165 var319 = 3;
7166 var320 = NEW_array__NativeArray(var319, &type_array__NativeArraykernel__Object);
7167 ((struct instance_array__NativeArray*)var320)->values[0] = (val*) var310;
7168 ((struct instance_array__NativeArray*)var320)->values[1] = (val*) var312;
7169 ((struct instance_array__NativeArray*)var320)->values[2] = (val*) var317;
7170 ((void (*)(val*, val*, long))(var318->class->vft[COLOR_array__Array__with_native]))(var318, var320, var319) /* with_native on <var318:Array[Object]>*/;
7171 }
7172 var321 = ((val* (*)(val*))(var318->class->vft[COLOR_string__Object__to_s]))(var318) /* to_s on <var318:Array[Object]>*/;
7173 if (var_ret == NULL) {
7174 fprintf(stderr, "Runtime error: %s", "Cast failed");
7175 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1523);
7176 show_backtrace(1);
7177 }
7178 var322 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var321, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7179 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var322) /* ret on <var_v:AbstractCompilerVisitor>*/;
7180 goto RET_LABEL;
7181 } else {
7182 if (varonce323) {
7183 var324 = varonce323;
7184 } else {
7185 var325 = "<=";
7186 var326 = 2;
7187 var327 = string__NativeString__to_s_with_length(var325, var326);
7188 var324 = var327;
7189 varonce323 = var324;
7190 }
7191 var328 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var324) /* == on <var_pname:String>*/;
7192 if (var328){
7193 var329 = 0;
7194 var330 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var329) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7195 if (varonce331) {
7196 var332 = varonce331;
7197 } else {
7198 var333 = " <= ";
7199 var334 = 4;
7200 var335 = string__NativeString__to_s_with_length(var333, var334);
7201 var332 = var335;
7202 varonce331 = var332;
7203 }
7204 var336 = 1;
7205 var337 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var336) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7206 var338 = NEW_array__Array(&type_array__Arraykernel__Object);
7207 { /* var338 = array_instance Array[Object] */
7208 var339 = 3;
7209 var340 = NEW_array__NativeArray(var339, &type_array__NativeArraykernel__Object);
7210 ((struct instance_array__NativeArray*)var340)->values[0] = (val*) var330;
7211 ((struct instance_array__NativeArray*)var340)->values[1] = (val*) var332;
7212 ((struct instance_array__NativeArray*)var340)->values[2] = (val*) var337;
7213 ((void (*)(val*, val*, long))(var338->class->vft[COLOR_array__Array__with_native]))(var338, var340, var339) /* with_native on <var338:Array[Object]>*/;
7214 }
7215 var341 = ((val* (*)(val*))(var338->class->vft[COLOR_string__Object__to_s]))(var338) /* to_s on <var338:Array[Object]>*/;
7216 if (var_ret == NULL) {
7217 fprintf(stderr, "Runtime error: %s", "Cast failed");
7218 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1526);
7219 show_backtrace(1);
7220 }
7221 var342 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var341, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7222 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var342) /* ret on <var_v:AbstractCompilerVisitor>*/;
7223 goto RET_LABEL;
7224 } else {
7225 if (varonce343) {
7226 var344 = varonce343;
7227 } else {
7228 var345 = ">=";
7229 var346 = 2;
7230 var347 = string__NativeString__to_s_with_length(var345, var346);
7231 var344 = var347;
7232 varonce343 = var344;
7233 }
7234 var348 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var344) /* == on <var_pname:String>*/;
7235 if (var348){
7236 var349 = 0;
7237 var350 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var349) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7238 if (varonce351) {
7239 var352 = varonce351;
7240 } else {
7241 var353 = " >= ";
7242 var354 = 4;
7243 var355 = string__NativeString__to_s_with_length(var353, var354);
7244 var352 = var355;
7245 varonce351 = var352;
7246 }
7247 var356 = 1;
7248 var357 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var356) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7249 var358 = NEW_array__Array(&type_array__Arraykernel__Object);
7250 { /* var358 = array_instance Array[Object] */
7251 var359 = 3;
7252 var360 = NEW_array__NativeArray(var359, &type_array__NativeArraykernel__Object);
7253 ((struct instance_array__NativeArray*)var360)->values[0] = (val*) var350;
7254 ((struct instance_array__NativeArray*)var360)->values[1] = (val*) var352;
7255 ((struct instance_array__NativeArray*)var360)->values[2] = (val*) var357;
7256 ((void (*)(val*, val*, long))(var358->class->vft[COLOR_array__Array__with_native]))(var358, var360, var359) /* with_native on <var358:Array[Object]>*/;
7257 }
7258 var361 = ((val* (*)(val*))(var358->class->vft[COLOR_string__Object__to_s]))(var358) /* to_s on <var358:Array[Object]>*/;
7259 if (var_ret == NULL) {
7260 fprintf(stderr, "Runtime error: %s", "Cast failed");
7261 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1529);
7262 show_backtrace(1);
7263 }
7264 var362 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var361, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7265 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var362) /* ret on <var_v:AbstractCompilerVisitor>*/;
7266 goto RET_LABEL;
7267 } else {
7268 if (varonce363) {
7269 var364 = varonce363;
7270 } else {
7271 var365 = "to_f";
7272 var366 = 4;
7273 var367 = string__NativeString__to_s_with_length(var365, var366);
7274 var364 = var367;
7275 varonce363 = var364;
7276 }
7277 var368 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var364) /* == on <var_pname:String>*/;
7278 if (var368){
7279 if (varonce369) {
7280 var370 = varonce369;
7281 } else {
7282 var371 = "(double)";
7283 var372 = 8;
7284 var373 = string__NativeString__to_s_with_length(var371, var372);
7285 var370 = var373;
7286 varonce369 = var370;
7287 }
7288 var374 = 0;
7289 var375 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var374) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7290 var376 = NEW_array__Array(&type_array__Arraykernel__Object);
7291 { /* var376 = array_instance Array[Object] */
7292 var377 = 2;
7293 var378 = NEW_array__NativeArray(var377, &type_array__NativeArraykernel__Object);
7294 ((struct instance_array__NativeArray*)var378)->values[0] = (val*) var370;
7295 ((struct instance_array__NativeArray*)var378)->values[1] = (val*) var375;
7296 ((void (*)(val*, val*, long))(var376->class->vft[COLOR_array__Array__with_native]))(var376, var378, var377) /* with_native on <var376:Array[Object]>*/;
7297 }
7298 var379 = ((val* (*)(val*))(var376->class->vft[COLOR_string__Object__to_s]))(var376) /* to_s on <var376:Array[Object]>*/;
7299 if (var_ret == NULL) {
7300 fprintf(stderr, "Runtime error: %s", "Cast failed");
7301 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1532);
7302 show_backtrace(1);
7303 }
7304 var380 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var379, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7305 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var380) /* ret on <var_v:AbstractCompilerVisitor>*/;
7306 goto RET_LABEL;
7307 } else {
7308 if (varonce381) {
7309 var382 = varonce381;
7310 } else {
7311 var383 = "ascii";
7312 var384 = 5;
7313 var385 = string__NativeString__to_s_with_length(var383, var384);
7314 var382 = var385;
7315 varonce381 = var382;
7316 }
7317 var386 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var382) /* == on <var_pname:String>*/;
7318 if (var386){
7319 var387 = 0;
7320 var388 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var387) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7321 var389 = NEW_array__Array(&type_array__Arraykernel__Object);
7322 { /* var389 = array_instance Array[Object] */
7323 var390 = 1;
7324 var391 = NEW_array__NativeArray(var390, &type_array__NativeArraykernel__Object);
7325 ((struct instance_array__NativeArray*)var391)->values[0] = (val*) var388;
7326 ((void (*)(val*, val*, long))(var389->class->vft[COLOR_array__Array__with_native]))(var389, var391, var390) /* with_native on <var389:Array[Object]>*/;
7327 }
7328 var392 = ((val* (*)(val*))(var389->class->vft[COLOR_string__Object__to_s]))(var389) /* to_s on <var389:Array[Object]>*/;
7329 if (var_ret == NULL) {
7330 fprintf(stderr, "Runtime error: %s", "Cast failed");
7331 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1535);
7332 show_backtrace(1);
7333 }
7334 var393 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var392, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7335 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var393) /* ret on <var_v:AbstractCompilerVisitor>*/;
7336 goto RET_LABEL;
7337 } else {
7338 }
7339 }
7340 }
7341 }
7342 }
7343 }
7344 }
7345 }
7346 }
7347 }
7348 }
7349 }
7350 }
7351 }
7352 }
7353 }
7354 }
7355 }
7356 }
7357 }
7358 } else {
7359 if (varonce394) {
7360 var395 = varonce394;
7361 } else {
7362 var396 = "Char";
7363 var397 = 4;
7364 var398 = string__NativeString__to_s_with_length(var396, var397);
7365 var395 = var398;
7366 varonce394 = var395;
7367 }
7368 var399 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var395) /* == on <var_cname:String>*/;
7369 if (var399){
7370 if (varonce400) {
7371 var401 = varonce400;
7372 } else {
7373 var402 = "output";
7374 var403 = 6;
7375 var404 = string__NativeString__to_s_with_length(var402, var403);
7376 var401 = var404;
7377 varonce400 = var401;
7378 }
7379 var405 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var401) /* == on <var_pname:String>*/;
7380 if (var405){
7381 if (varonce406) {
7382 var407 = varonce406;
7383 } else {
7384 var408 = "printf(\"%c\", ";
7385 var409 = 13;
7386 var410 = string__NativeString__to_s_with_length(var408, var409);
7387 var407 = var410;
7388 varonce406 = var407;
7389 }
7390 var411 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
7391 if (varonce412) {
7392 var413 = varonce412;
7393 } else {
7394 var414 = ");";
7395 var415 = 2;
7396 var416 = string__NativeString__to_s_with_length(var414, var415);
7397 var413 = var416;
7398 varonce412 = var413;
7399 }
7400 var417 = NEW_array__Array(&type_array__Arraykernel__Object);
7401 { /* var417 = array_instance Array[Object] */
7402 var418 = 3;
7403 var419 = NEW_array__NativeArray(var418, &type_array__NativeArraykernel__Object);
7404 ((struct instance_array__NativeArray*)var419)->values[0] = (val*) var407;
7405 ((struct instance_array__NativeArray*)var419)->values[1] = (val*) var411;
7406 ((struct instance_array__NativeArray*)var419)->values[2] = (val*) var413;
7407 ((void (*)(val*, val*, long))(var417->class->vft[COLOR_array__Array__with_native]))(var417, var419, var418) /* with_native on <var417:Array[Object]>*/;
7408 }
7409 var420 = ((val* (*)(val*))(var417->class->vft[COLOR_string__Object__to_s]))(var417) /* to_s on <var417:Array[Object]>*/;
7410 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var420) /* add on <var_v:AbstractCompilerVisitor>*/;
7411 goto RET_LABEL;
7412 } else {
7413 if (varonce421) {
7414 var422 = varonce421;
7415 } else {
7416 var423 = "object_id";
7417 var424 = 9;
7418 var425 = string__NativeString__to_s_with_length(var423, var424);
7419 var422 = var425;
7420 varonce421 = var422;
7421 }
7422 var426 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var422) /* == on <var_pname:String>*/;
7423 if (var426){
7424 if (varonce427) {
7425 var428 = varonce427;
7426 } else {
7427 var429 = "(long)";
7428 var430 = 6;
7429 var431 = string__NativeString__to_s_with_length(var429, var430);
7430 var428 = var431;
7431 varonce427 = var428;
7432 }
7433 var432 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
7434 var433 = NEW_array__Array(&type_array__Arraykernel__Object);
7435 { /* var433 = array_instance Array[Object] */
7436 var434 = 2;
7437 var435 = NEW_array__NativeArray(var434, &type_array__NativeArraykernel__Object);
7438 ((struct instance_array__NativeArray*)var435)->values[0] = (val*) var428;
7439 ((struct instance_array__NativeArray*)var435)->values[1] = (val*) var432;
7440 ((void (*)(val*, val*, long))(var433->class->vft[COLOR_array__Array__with_native]))(var433, var435, var434) /* with_native on <var433:Array[Object]>*/;
7441 }
7442 var436 = ((val* (*)(val*))(var433->class->vft[COLOR_string__Object__to_s]))(var433) /* to_s on <var433:Array[Object]>*/;
7443 if (var_ret == NULL) {
7444 fprintf(stderr, "Runtime error: %s", "Cast failed");
7445 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1543);
7446 show_backtrace(1);
7447 }
7448 var437 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var436, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7449 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var437) /* ret on <var_v:AbstractCompilerVisitor>*/;
7450 goto RET_LABEL;
7451 } else {
7452 if (varonce438) {
7453 var439 = varonce438;
7454 } else {
7455 var440 = "+";
7456 var441 = 1;
7457 var442 = string__NativeString__to_s_with_length(var440, var441);
7458 var439 = var442;
7459 varonce438 = var439;
7460 }
7461 var443 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var439) /* == on <var_pname:String>*/;
7462 if (var443){
7463 var444 = 0;
7464 var445 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var444) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7465 if (varonce446) {
7466 var447 = varonce446;
7467 } else {
7468 var448 = " + ";
7469 var449 = 3;
7470 var450 = string__NativeString__to_s_with_length(var448, var449);
7471 var447 = var450;
7472 varonce446 = var447;
7473 }
7474 var451 = 1;
7475 var452 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var451) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7476 var453 = NEW_array__Array(&type_array__Arraykernel__Object);
7477 { /* var453 = array_instance Array[Object] */
7478 var454 = 3;
7479 var455 = NEW_array__NativeArray(var454, &type_array__NativeArraykernel__Object);
7480 ((struct instance_array__NativeArray*)var455)->values[0] = (val*) var445;
7481 ((struct instance_array__NativeArray*)var455)->values[1] = (val*) var447;
7482 ((struct instance_array__NativeArray*)var455)->values[2] = (val*) var452;
7483 ((void (*)(val*, val*, long))(var453->class->vft[COLOR_array__Array__with_native]))(var453, var455, var454) /* with_native on <var453:Array[Object]>*/;
7484 }
7485 var456 = ((val* (*)(val*))(var453->class->vft[COLOR_string__Object__to_s]))(var453) /* to_s on <var453:Array[Object]>*/;
7486 if (var_ret == NULL) {
7487 fprintf(stderr, "Runtime error: %s", "Cast failed");
7488 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1546);
7489 show_backtrace(1);
7490 }
7491 var457 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var456, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7492 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var457) /* ret on <var_v:AbstractCompilerVisitor>*/;
7493 goto RET_LABEL;
7494 } else {
7495 if (varonce458) {
7496 var459 = varonce458;
7497 } else {
7498 var460 = "-";
7499 var461 = 1;
7500 var462 = string__NativeString__to_s_with_length(var460, var461);
7501 var459 = var462;
7502 varonce458 = var459;
7503 }
7504 var463 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var459) /* == on <var_pname:String>*/;
7505 if (var463){
7506 var464 = 0;
7507 var465 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var464) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7508 if (varonce466) {
7509 var467 = varonce466;
7510 } else {
7511 var468 = " - ";
7512 var469 = 3;
7513 var470 = string__NativeString__to_s_with_length(var468, var469);
7514 var467 = var470;
7515 varonce466 = var467;
7516 }
7517 var471 = 1;
7518 var472 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var471) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7519 var473 = NEW_array__Array(&type_array__Arraykernel__Object);
7520 { /* var473 = array_instance Array[Object] */
7521 var474 = 3;
7522 var475 = NEW_array__NativeArray(var474, &type_array__NativeArraykernel__Object);
7523 ((struct instance_array__NativeArray*)var475)->values[0] = (val*) var465;
7524 ((struct instance_array__NativeArray*)var475)->values[1] = (val*) var467;
7525 ((struct instance_array__NativeArray*)var475)->values[2] = (val*) var472;
7526 ((void (*)(val*, val*, long))(var473->class->vft[COLOR_array__Array__with_native]))(var473, var475, var474) /* with_native on <var473:Array[Object]>*/;
7527 }
7528 var476 = ((val* (*)(val*))(var473->class->vft[COLOR_string__Object__to_s]))(var473) /* to_s on <var473:Array[Object]>*/;
7529 if (var_ret == NULL) {
7530 fprintf(stderr, "Runtime error: %s", "Cast failed");
7531 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1549);
7532 show_backtrace(1);
7533 }
7534 var477 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var476, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7535 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var477) /* ret on <var_v:AbstractCompilerVisitor>*/;
7536 goto RET_LABEL;
7537 } else {
7538 if (varonce478) {
7539 var479 = varonce478;
7540 } else {
7541 var480 = "==";
7542 var481 = 2;
7543 var482 = string__NativeString__to_s_with_length(var480, var481);
7544 var479 = var482;
7545 varonce478 = var479;
7546 }
7547 var483 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var479) /* == on <var_pname:String>*/;
7548 if (var483){
7549 var484 = 0;
7550 var485 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var484) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7551 var486 = 1;
7552 var487 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var486) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7553 var488 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var485, var487) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
7554 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var488) /* ret on <var_v:AbstractCompilerVisitor>*/;
7555 goto RET_LABEL;
7556 } else {
7557 if (varonce489) {
7558 var490 = varonce489;
7559 } else {
7560 var491 = "!=";
7561 var492 = 2;
7562 var493 = string__NativeString__to_s_with_length(var491, var492);
7563 var490 = var493;
7564 varonce489 = var490;
7565 }
7566 var494 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var490) /* == on <var_pname:String>*/;
7567 if (var494){
7568 var495 = 0;
7569 var496 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var495) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7570 var497 = 1;
7571 var498 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var497) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7572 var499 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var496, var498) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
7573 var_res500 = var499;
7574 if (varonce501) {
7575 var502 = varonce501;
7576 } else {
7577 var503 = "!";
7578 var504 = 1;
7579 var505 = string__NativeString__to_s_with_length(var503, var504);
7580 var502 = var505;
7581 varonce501 = var502;
7582 }
7583 var506 = NEW_array__Array(&type_array__Arraykernel__Object);
7584 { /* var506 = array_instance Array[Object] */
7585 var507 = 2;
7586 var508 = NEW_array__NativeArray(var507, &type_array__NativeArraykernel__Object);
7587 ((struct instance_array__NativeArray*)var508)->values[0] = (val*) var502;
7588 ((struct instance_array__NativeArray*)var508)->values[1] = (val*) var_res500;
7589 ((void (*)(val*, val*, long))(var506->class->vft[COLOR_array__Array__with_native]))(var506, var508, var507) /* with_native on <var506:Array[Object]>*/;
7590 }
7591 var509 = ((val* (*)(val*))(var506->class->vft[COLOR_string__Object__to_s]))(var506) /* to_s on <var506:Array[Object]>*/;
7592 if (var_ret == NULL) {
7593 fprintf(stderr, "Runtime error: %s", "Cast failed");
7594 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1556);
7595 show_backtrace(1);
7596 }
7597 var510 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var509, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7598 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var510) /* ret on <var_v:AbstractCompilerVisitor>*/;
7599 goto RET_LABEL;
7600 } else {
7601 if (varonce511) {
7602 var512 = varonce511;
7603 } else {
7604 var513 = "succ";
7605 var514 = 4;
7606 var515 = string__NativeString__to_s_with_length(var513, var514);
7607 var512 = var515;
7608 varonce511 = var512;
7609 }
7610 var516 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var512) /* == on <var_pname:String>*/;
7611 if (var516){
7612 var517 = 0;
7613 var518 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var517) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7614 if (varonce519) {
7615 var520 = varonce519;
7616 } else {
7617 var521 = "+1";
7618 var522 = 2;
7619 var523 = string__NativeString__to_s_with_length(var521, var522);
7620 var520 = var523;
7621 varonce519 = var520;
7622 }
7623 var524 = NEW_array__Array(&type_array__Arraykernel__Object);
7624 { /* var524 = array_instance Array[Object] */
7625 var525 = 2;
7626 var526 = NEW_array__NativeArray(var525, &type_array__NativeArraykernel__Object);
7627 ((struct instance_array__NativeArray*)var526)->values[0] = (val*) var518;
7628 ((struct instance_array__NativeArray*)var526)->values[1] = (val*) var520;
7629 ((void (*)(val*, val*, long))(var524->class->vft[COLOR_array__Array__with_native]))(var524, var526, var525) /* with_native on <var524:Array[Object]>*/;
7630 }
7631 var527 = ((val* (*)(val*))(var524->class->vft[COLOR_string__Object__to_s]))(var524) /* to_s on <var524:Array[Object]>*/;
7632 if (var_ret == NULL) {
7633 fprintf(stderr, "Runtime error: %s", "Cast failed");
7634 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1559);
7635 show_backtrace(1);
7636 }
7637 var528 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var527, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7638 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var528) /* ret on <var_v:AbstractCompilerVisitor>*/;
7639 goto RET_LABEL;
7640 } else {
7641 if (varonce529) {
7642 var530 = varonce529;
7643 } else {
7644 var531 = "prec";
7645 var532 = 4;
7646 var533 = string__NativeString__to_s_with_length(var531, var532);
7647 var530 = var533;
7648 varonce529 = var530;
7649 }
7650 var534 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var530) /* == on <var_pname:String>*/;
7651 if (var534){
7652 var535 = 0;
7653 var536 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var535) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7654 if (varonce537) {
7655 var538 = varonce537;
7656 } else {
7657 var539 = "-1";
7658 var540 = 2;
7659 var541 = string__NativeString__to_s_with_length(var539, var540);
7660 var538 = var541;
7661 varonce537 = var538;
7662 }
7663 var542 = NEW_array__Array(&type_array__Arraykernel__Object);
7664 { /* var542 = array_instance Array[Object] */
7665 var543 = 2;
7666 var544 = NEW_array__NativeArray(var543, &type_array__NativeArraykernel__Object);
7667 ((struct instance_array__NativeArray*)var544)->values[0] = (val*) var536;
7668 ((struct instance_array__NativeArray*)var544)->values[1] = (val*) var538;
7669 ((void (*)(val*, val*, long))(var542->class->vft[COLOR_array__Array__with_native]))(var542, var544, var543) /* with_native on <var542:Array[Object]>*/;
7670 }
7671 var545 = ((val* (*)(val*))(var542->class->vft[COLOR_string__Object__to_s]))(var542) /* to_s on <var542:Array[Object]>*/;
7672 if (var_ret == NULL) {
7673 fprintf(stderr, "Runtime error: %s", "Cast failed");
7674 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1562);
7675 show_backtrace(1);
7676 }
7677 var546 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var545, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7678 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var546) /* ret on <var_v:AbstractCompilerVisitor>*/;
7679 goto RET_LABEL;
7680 } else {
7681 if (varonce547) {
7682 var548 = varonce547;
7683 } else {
7684 var549 = "<";
7685 var550 = 1;
7686 var551 = string__NativeString__to_s_with_length(var549, var550);
7687 var548 = var551;
7688 varonce547 = var548;
7689 }
7690 var552 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var548) /* == on <var_pname:String>*/;
7691 if (var552){
7692 var553 = 0;
7693 var554 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var553) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7694 if (varonce555) {
7695 var556 = varonce555;
7696 } else {
7697 var557 = " < ";
7698 var558 = 3;
7699 var559 = string__NativeString__to_s_with_length(var557, var558);
7700 var556 = var559;
7701 varonce555 = var556;
7702 }
7703 var560 = 1;
7704 var561 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var560) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7705 var562 = NEW_array__Array(&type_array__Arraykernel__Object);
7706 { /* var562 = array_instance Array[Object] */
7707 var563 = 3;
7708 var564 = NEW_array__NativeArray(var563, &type_array__NativeArraykernel__Object);
7709 ((struct instance_array__NativeArray*)var564)->values[0] = (val*) var554;
7710 ((struct instance_array__NativeArray*)var564)->values[1] = (val*) var556;
7711 ((struct instance_array__NativeArray*)var564)->values[2] = (val*) var561;
7712 ((void (*)(val*, val*, long))(var562->class->vft[COLOR_array__Array__with_native]))(var562, var564, var563) /* with_native on <var562:Array[Object]>*/;
7713 }
7714 var565 = ((val* (*)(val*))(var562->class->vft[COLOR_string__Object__to_s]))(var562) /* to_s on <var562:Array[Object]>*/;
7715 if (var_ret == NULL) {
7716 fprintf(stderr, "Runtime error: %s", "Cast failed");
7717 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1565);
7718 show_backtrace(1);
7719 }
7720 var566 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var565, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7721 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var566) /* ret on <var_v:AbstractCompilerVisitor>*/;
7722 goto RET_LABEL;
7723 } else {
7724 if (varonce567) {
7725 var568 = varonce567;
7726 } else {
7727 var569 = ">";
7728 var570 = 1;
7729 var571 = string__NativeString__to_s_with_length(var569, var570);
7730 var568 = var571;
7731 varonce567 = var568;
7732 }
7733 var572 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var568) /* == on <var_pname:String>*/;
7734 if (var572){
7735 var573 = 0;
7736 var574 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var573) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7737 if (varonce575) {
7738 var576 = varonce575;
7739 } else {
7740 var577 = " > ";
7741 var578 = 3;
7742 var579 = string__NativeString__to_s_with_length(var577, var578);
7743 var576 = var579;
7744 varonce575 = var576;
7745 }
7746 var580 = 1;
7747 var581 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var580) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7748 var582 = NEW_array__Array(&type_array__Arraykernel__Object);
7749 { /* var582 = array_instance Array[Object] */
7750 var583 = 3;
7751 var584 = NEW_array__NativeArray(var583, &type_array__NativeArraykernel__Object);
7752 ((struct instance_array__NativeArray*)var584)->values[0] = (val*) var574;
7753 ((struct instance_array__NativeArray*)var584)->values[1] = (val*) var576;
7754 ((struct instance_array__NativeArray*)var584)->values[2] = (val*) var581;
7755 ((void (*)(val*, val*, long))(var582->class->vft[COLOR_array__Array__with_native]))(var582, var584, var583) /* with_native on <var582:Array[Object]>*/;
7756 }
7757 var585 = ((val* (*)(val*))(var582->class->vft[COLOR_string__Object__to_s]))(var582) /* to_s on <var582:Array[Object]>*/;
7758 if (var_ret == NULL) {
7759 fprintf(stderr, "Runtime error: %s", "Cast failed");
7760 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1568);
7761 show_backtrace(1);
7762 }
7763 var586 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var585, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7764 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var586) /* ret on <var_v:AbstractCompilerVisitor>*/;
7765 goto RET_LABEL;
7766 } else {
7767 if (varonce587) {
7768 var588 = varonce587;
7769 } else {
7770 var589 = "<=";
7771 var590 = 2;
7772 var591 = string__NativeString__to_s_with_length(var589, var590);
7773 var588 = var591;
7774 varonce587 = var588;
7775 }
7776 var592 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var588) /* == on <var_pname:String>*/;
7777 if (var592){
7778 var593 = 0;
7779 var594 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var593) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7780 if (varonce595) {
7781 var596 = varonce595;
7782 } else {
7783 var597 = " <= ";
7784 var598 = 4;
7785 var599 = string__NativeString__to_s_with_length(var597, var598);
7786 var596 = var599;
7787 varonce595 = var596;
7788 }
7789 var600 = 1;
7790 var601 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var600) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7791 var602 = NEW_array__Array(&type_array__Arraykernel__Object);
7792 { /* var602 = array_instance Array[Object] */
7793 var603 = 3;
7794 var604 = NEW_array__NativeArray(var603, &type_array__NativeArraykernel__Object);
7795 ((struct instance_array__NativeArray*)var604)->values[0] = (val*) var594;
7796 ((struct instance_array__NativeArray*)var604)->values[1] = (val*) var596;
7797 ((struct instance_array__NativeArray*)var604)->values[2] = (val*) var601;
7798 ((void (*)(val*, val*, long))(var602->class->vft[COLOR_array__Array__with_native]))(var602, var604, var603) /* with_native on <var602:Array[Object]>*/;
7799 }
7800 var605 = ((val* (*)(val*))(var602->class->vft[COLOR_string__Object__to_s]))(var602) /* to_s on <var602:Array[Object]>*/;
7801 if (var_ret == NULL) {
7802 fprintf(stderr, "Runtime error: %s", "Cast failed");
7803 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1571);
7804 show_backtrace(1);
7805 }
7806 var606 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var605, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7807 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var606) /* ret on <var_v:AbstractCompilerVisitor>*/;
7808 goto RET_LABEL;
7809 } else {
7810 if (varonce607) {
7811 var608 = varonce607;
7812 } else {
7813 var609 = ">=";
7814 var610 = 2;
7815 var611 = string__NativeString__to_s_with_length(var609, var610);
7816 var608 = var611;
7817 varonce607 = var608;
7818 }
7819 var612 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var608) /* == on <var_pname:String>*/;
7820 if (var612){
7821 var613 = 0;
7822 var614 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var613) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7823 if (varonce615) {
7824 var616 = varonce615;
7825 } else {
7826 var617 = " >= ";
7827 var618 = 4;
7828 var619 = string__NativeString__to_s_with_length(var617, var618);
7829 var616 = var619;
7830 varonce615 = var616;
7831 }
7832 var620 = 1;
7833 var621 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var620) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7834 var622 = NEW_array__Array(&type_array__Arraykernel__Object);
7835 { /* var622 = array_instance Array[Object] */
7836 var623 = 3;
7837 var624 = NEW_array__NativeArray(var623, &type_array__NativeArraykernel__Object);
7838 ((struct instance_array__NativeArray*)var624)->values[0] = (val*) var614;
7839 ((struct instance_array__NativeArray*)var624)->values[1] = (val*) var616;
7840 ((struct instance_array__NativeArray*)var624)->values[2] = (val*) var621;
7841 ((void (*)(val*, val*, long))(var622->class->vft[COLOR_array__Array__with_native]))(var622, var624, var623) /* with_native on <var622:Array[Object]>*/;
7842 }
7843 var625 = ((val* (*)(val*))(var622->class->vft[COLOR_string__Object__to_s]))(var622) /* to_s on <var622:Array[Object]>*/;
7844 if (var_ret == NULL) {
7845 fprintf(stderr, "Runtime error: %s", "Cast failed");
7846 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1574);
7847 show_backtrace(1);
7848 }
7849 var626 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var625, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7850 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var626) /* ret on <var_v:AbstractCompilerVisitor>*/;
7851 goto RET_LABEL;
7852 } else {
7853 if (varonce627) {
7854 var628 = varonce627;
7855 } else {
7856 var629 = "to_i";
7857 var630 = 4;
7858 var631 = string__NativeString__to_s_with_length(var629, var630);
7859 var628 = var631;
7860 varonce627 = var628;
7861 }
7862 var632 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var628) /* == on <var_pname:String>*/;
7863 if (var632){
7864 var633 = 0;
7865 var634 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var633) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7866 if (varonce635) {
7867 var636 = varonce635;
7868 } else {
7869 var637 = "-\'0\'";
7870 var638 = 4;
7871 var639 = string__NativeString__to_s_with_length(var637, var638);
7872 var636 = var639;
7873 varonce635 = var636;
7874 }
7875 var640 = NEW_array__Array(&type_array__Arraykernel__Object);
7876 { /* var640 = array_instance Array[Object] */
7877 var641 = 2;
7878 var642 = NEW_array__NativeArray(var641, &type_array__NativeArraykernel__Object);
7879 ((struct instance_array__NativeArray*)var642)->values[0] = (val*) var634;
7880 ((struct instance_array__NativeArray*)var642)->values[1] = (val*) var636;
7881 ((void (*)(val*, val*, long))(var640->class->vft[COLOR_array__Array__with_native]))(var640, var642, var641) /* with_native on <var640:Array[Object]>*/;
7882 }
7883 var643 = ((val* (*)(val*))(var640->class->vft[COLOR_string__Object__to_s]))(var640) /* to_s on <var640:Array[Object]>*/;
7884 if (var_ret == NULL) {
7885 fprintf(stderr, "Runtime error: %s", "Cast failed");
7886 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1577);
7887 show_backtrace(1);
7888 }
7889 var644 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var643, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7890 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var644) /* ret on <var_v:AbstractCompilerVisitor>*/;
7891 goto RET_LABEL;
7892 } else {
7893 if (varonce645) {
7894 var646 = varonce645;
7895 } else {
7896 var647 = "ascii";
7897 var648 = 5;
7898 var649 = string__NativeString__to_s_with_length(var647, var648);
7899 var646 = var649;
7900 varonce645 = var646;
7901 }
7902 var650 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var646) /* == on <var_pname:String>*/;
7903 if (var650){
7904 if (varonce651) {
7905 var652 = varonce651;
7906 } else {
7907 var653 = "(unsigned char)";
7908 var654 = 15;
7909 var655 = string__NativeString__to_s_with_length(var653, var654);
7910 var652 = var655;
7911 varonce651 = var652;
7912 }
7913 var656 = 0;
7914 var657 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var656) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
7915 var658 = NEW_array__Array(&type_array__Arraykernel__Object);
7916 { /* var658 = array_instance Array[Object] */
7917 var659 = 2;
7918 var660 = NEW_array__NativeArray(var659, &type_array__NativeArraykernel__Object);
7919 ((struct instance_array__NativeArray*)var660)->values[0] = (val*) var652;
7920 ((struct instance_array__NativeArray*)var660)->values[1] = (val*) var657;
7921 ((void (*)(val*, val*, long))(var658->class->vft[COLOR_array__Array__with_native]))(var658, var660, var659) /* with_native on <var658:Array[Object]>*/;
7922 }
7923 var661 = ((val* (*)(val*))(var658->class->vft[COLOR_string__Object__to_s]))(var658) /* to_s on <var658:Array[Object]>*/;
7924 if (var_ret == NULL) {
7925 fprintf(stderr, "Runtime error: %s", "Cast failed");
7926 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1580);
7927 show_backtrace(1);
7928 }
7929 var662 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var661, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
7930 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var662) /* ret on <var_v:AbstractCompilerVisitor>*/;
7931 goto RET_LABEL;
7932 } else {
7933 }
7934 }
7935 }
7936 }
7937 }
7938 }
7939 }
7940 }
7941 }
7942 }
7943 }
7944 }
7945 }
7946 }
7947 } else {
7948 if (varonce663) {
7949 var664 = varonce663;
7950 } else {
7951 var665 = "Bool";
7952 var666 = 4;
7953 var667 = string__NativeString__to_s_with_length(var665, var666);
7954 var664 = var667;
7955 varonce663 = var664;
7956 }
7957 var668 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var664) /* == on <var_cname:String>*/;
7958 if (var668){
7959 if (varonce669) {
7960 var670 = varonce669;
7961 } else {
7962 var671 = "output";
7963 var672 = 6;
7964 var673 = string__NativeString__to_s_with_length(var671, var672);
7965 var670 = var673;
7966 varonce669 = var670;
7967 }
7968 var674 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var670) /* == on <var_pname:String>*/;
7969 if (var674){
7970 if (varonce675) {
7971 var676 = varonce675;
7972 } else {
7973 var677 = "printf(";
7974 var678 = 7;
7975 var679 = string__NativeString__to_s_with_length(var677, var678);
7976 var676 = var679;
7977 varonce675 = var676;
7978 }
7979 var680 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
7980 if (varonce681) {
7981 var682 = varonce681;
7982 } else {
7983 var683 = "?\"true\\n\":\"false\\n\");";
7984 var684 = 21;
7985 var685 = string__NativeString__to_s_with_length(var683, var684);
7986 var682 = var685;
7987 varonce681 = var682;
7988 }
7989 var686 = NEW_array__Array(&type_array__Arraykernel__Object);
7990 { /* var686 = array_instance Array[Object] */
7991 var687 = 3;
7992 var688 = NEW_array__NativeArray(var687, &type_array__NativeArraykernel__Object);
7993 ((struct instance_array__NativeArray*)var688)->values[0] = (val*) var676;
7994 ((struct instance_array__NativeArray*)var688)->values[1] = (val*) var680;
7995 ((struct instance_array__NativeArray*)var688)->values[2] = (val*) var682;
7996 ((void (*)(val*, val*, long))(var686->class->vft[COLOR_array__Array__with_native]))(var686, var688, var687) /* with_native on <var686:Array[Object]>*/;
7997 }
7998 var689 = ((val* (*)(val*))(var686->class->vft[COLOR_string__Object__to_s]))(var686) /* to_s on <var686:Array[Object]>*/;
7999 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var689) /* add on <var_v:AbstractCompilerVisitor>*/;
8000 goto RET_LABEL;
8001 } else {
8002 if (varonce690) {
8003 var691 = varonce690;
8004 } else {
8005 var692 = "object_id";
8006 var693 = 9;
8007 var694 = string__NativeString__to_s_with_length(var692, var693);
8008 var691 = var694;
8009 varonce690 = var691;
8010 }
8011 var695 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var691) /* == on <var_pname:String>*/;
8012 if (var695){
8013 if (varonce696) {
8014 var697 = varonce696;
8015 } else {
8016 var698 = "(long)";
8017 var699 = 6;
8018 var700 = string__NativeString__to_s_with_length(var698, var699);
8019 var697 = var700;
8020 varonce696 = var697;
8021 }
8022 var701 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
8023 var702 = NEW_array__Array(&type_array__Arraykernel__Object);
8024 { /* var702 = array_instance Array[Object] */
8025 var703 = 2;
8026 var704 = NEW_array__NativeArray(var703, &type_array__NativeArraykernel__Object);
8027 ((struct instance_array__NativeArray*)var704)->values[0] = (val*) var697;
8028 ((struct instance_array__NativeArray*)var704)->values[1] = (val*) var701;
8029 ((void (*)(val*, val*, long))(var702->class->vft[COLOR_array__Array__with_native]))(var702, var704, var703) /* with_native on <var702:Array[Object]>*/;
8030 }
8031 var705 = ((val* (*)(val*))(var702->class->vft[COLOR_string__Object__to_s]))(var702) /* to_s on <var702:Array[Object]>*/;
8032 if (var_ret == NULL) {
8033 fprintf(stderr, "Runtime error: %s", "Cast failed");
8034 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1588);
8035 show_backtrace(1);
8036 }
8037 var706 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var705, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8038 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var706) /* ret on <var_v:AbstractCompilerVisitor>*/;
8039 goto RET_LABEL;
8040 } else {
8041 if (varonce707) {
8042 var708 = varonce707;
8043 } else {
8044 var709 = "==";
8045 var710 = 2;
8046 var711 = string__NativeString__to_s_with_length(var709, var710);
8047 var708 = var711;
8048 varonce707 = var708;
8049 }
8050 var712 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var708) /* == on <var_pname:String>*/;
8051 if (var712){
8052 var713 = 0;
8053 var714 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var713) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8054 var715 = 1;
8055 var716 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var715) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8056 var717 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var714, var716) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
8057 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var717) /* ret on <var_v:AbstractCompilerVisitor>*/;
8058 goto RET_LABEL;
8059 } else {
8060 if (varonce718) {
8061 var719 = varonce718;
8062 } else {
8063 var720 = "!=";
8064 var721 = 2;
8065 var722 = string__NativeString__to_s_with_length(var720, var721);
8066 var719 = var722;
8067 varonce718 = var719;
8068 }
8069 var723 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var719) /* == on <var_pname:String>*/;
8070 if (var723){
8071 var724 = 0;
8072 var725 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var724) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8073 var726 = 1;
8074 var727 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var726) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8075 var728 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var725, var727) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
8076 var_res729 = var728;
8077 if (varonce730) {
8078 var731 = varonce730;
8079 } else {
8080 var732 = "!";
8081 var733 = 1;
8082 var734 = string__NativeString__to_s_with_length(var732, var733);
8083 var731 = var734;
8084 varonce730 = var731;
8085 }
8086 var735 = NEW_array__Array(&type_array__Arraykernel__Object);
8087 { /* var735 = array_instance Array[Object] */
8088 var736 = 2;
8089 var737 = NEW_array__NativeArray(var736, &type_array__NativeArraykernel__Object);
8090 ((struct instance_array__NativeArray*)var737)->values[0] = (val*) var731;
8091 ((struct instance_array__NativeArray*)var737)->values[1] = (val*) var_res729;
8092 ((void (*)(val*, val*, long))(var735->class->vft[COLOR_array__Array__with_native]))(var735, var737, var736) /* with_native on <var735:Array[Object]>*/;
8093 }
8094 var738 = ((val* (*)(val*))(var735->class->vft[COLOR_string__Object__to_s]))(var735) /* to_s on <var735:Array[Object]>*/;
8095 if (var_ret == NULL) {
8096 fprintf(stderr, "Runtime error: %s", "Cast failed");
8097 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1595);
8098 show_backtrace(1);
8099 }
8100 var739 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var738, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8101 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var739) /* ret on <var_v:AbstractCompilerVisitor>*/;
8102 goto RET_LABEL;
8103 } else {
8104 }
8105 }
8106 }
8107 }
8108 } else {
8109 if (varonce740) {
8110 var741 = varonce740;
8111 } else {
8112 var742 = "Float";
8113 var743 = 5;
8114 var744 = string__NativeString__to_s_with_length(var742, var743);
8115 var741 = var744;
8116 varonce740 = var741;
8117 }
8118 var745 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var741) /* == on <var_cname:String>*/;
8119 if (var745){
8120 if (varonce746) {
8121 var747 = varonce746;
8122 } else {
8123 var748 = "output";
8124 var749 = 6;
8125 var750 = string__NativeString__to_s_with_length(var748, var749);
8126 var747 = var750;
8127 varonce746 = var747;
8128 }
8129 var751 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var747) /* == on <var_pname:String>*/;
8130 if (var751){
8131 if (varonce752) {
8132 var753 = varonce752;
8133 } else {
8134 var754 = "printf(\"%f\\n\", ";
8135 var755 = 15;
8136 var756 = string__NativeString__to_s_with_length(var754, var755);
8137 var753 = var756;
8138 varonce752 = var753;
8139 }
8140 var757 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
8141 if (varonce758) {
8142 var759 = varonce758;
8143 } else {
8144 var760 = ");";
8145 var761 = 2;
8146 var762 = string__NativeString__to_s_with_length(var760, var761);
8147 var759 = var762;
8148 varonce758 = var759;
8149 }
8150 var763 = NEW_array__Array(&type_array__Arraykernel__Object);
8151 { /* var763 = array_instance Array[Object] */
8152 var764 = 3;
8153 var765 = NEW_array__NativeArray(var764, &type_array__NativeArraykernel__Object);
8154 ((struct instance_array__NativeArray*)var765)->values[0] = (val*) var753;
8155 ((struct instance_array__NativeArray*)var765)->values[1] = (val*) var757;
8156 ((struct instance_array__NativeArray*)var765)->values[2] = (val*) var759;
8157 ((void (*)(val*, val*, long))(var763->class->vft[COLOR_array__Array__with_native]))(var763, var765, var764) /* with_native on <var763:Array[Object]>*/;
8158 }
8159 var766 = ((val* (*)(val*))(var763->class->vft[COLOR_string__Object__to_s]))(var763) /* to_s on <var763:Array[Object]>*/;
8160 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var766) /* add on <var_v:AbstractCompilerVisitor>*/;
8161 goto RET_LABEL;
8162 } else {
8163 if (varonce767) {
8164 var768 = varonce767;
8165 } else {
8166 var769 = "object_id";
8167 var770 = 9;
8168 var771 = string__NativeString__to_s_with_length(var769, var770);
8169 var768 = var771;
8170 varonce767 = var768;
8171 }
8172 var772 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var768) /* == on <var_pname:String>*/;
8173 if (var772){
8174 if (varonce773) {
8175 var774 = varonce773;
8176 } else {
8177 var775 = "(double)";
8178 var776 = 8;
8179 var777 = string__NativeString__to_s_with_length(var775, var776);
8180 var774 = var777;
8181 varonce773 = var774;
8182 }
8183 var778 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
8184 var779 = NEW_array__Array(&type_array__Arraykernel__Object);
8185 { /* var779 = array_instance Array[Object] */
8186 var780 = 2;
8187 var781 = NEW_array__NativeArray(var780, &type_array__NativeArraykernel__Object);
8188 ((struct instance_array__NativeArray*)var781)->values[0] = (val*) var774;
8189 ((struct instance_array__NativeArray*)var781)->values[1] = (val*) var778;
8190 ((void (*)(val*, val*, long))(var779->class->vft[COLOR_array__Array__with_native]))(var779, var781, var780) /* with_native on <var779:Array[Object]>*/;
8191 }
8192 var782 = ((val* (*)(val*))(var779->class->vft[COLOR_string__Object__to_s]))(var779) /* to_s on <var779:Array[Object]>*/;
8193 if (var_ret == NULL) {
8194 fprintf(stderr, "Runtime error: %s", "Cast failed");
8195 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1603);
8196 show_backtrace(1);
8197 }
8198 var783 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var782, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8199 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var783) /* ret on <var_v:AbstractCompilerVisitor>*/;
8200 goto RET_LABEL;
8201 } else {
8202 if (varonce784) {
8203 var785 = varonce784;
8204 } else {
8205 var786 = "+";
8206 var787 = 1;
8207 var788 = string__NativeString__to_s_with_length(var786, var787);
8208 var785 = var788;
8209 varonce784 = var785;
8210 }
8211 var789 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var785) /* == on <var_pname:String>*/;
8212 if (var789){
8213 var790 = 0;
8214 var791 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var790) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8215 if (varonce792) {
8216 var793 = varonce792;
8217 } else {
8218 var794 = " + ";
8219 var795 = 3;
8220 var796 = string__NativeString__to_s_with_length(var794, var795);
8221 var793 = var796;
8222 varonce792 = var793;
8223 }
8224 var797 = 1;
8225 var798 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var797) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8226 var799 = NEW_array__Array(&type_array__Arraykernel__Object);
8227 { /* var799 = array_instance Array[Object] */
8228 var800 = 3;
8229 var801 = NEW_array__NativeArray(var800, &type_array__NativeArraykernel__Object);
8230 ((struct instance_array__NativeArray*)var801)->values[0] = (val*) var791;
8231 ((struct instance_array__NativeArray*)var801)->values[1] = (val*) var793;
8232 ((struct instance_array__NativeArray*)var801)->values[2] = (val*) var798;
8233 ((void (*)(val*, val*, long))(var799->class->vft[COLOR_array__Array__with_native]))(var799, var801, var800) /* with_native on <var799:Array[Object]>*/;
8234 }
8235 var802 = ((val* (*)(val*))(var799->class->vft[COLOR_string__Object__to_s]))(var799) /* to_s on <var799:Array[Object]>*/;
8236 if (var_ret == NULL) {
8237 fprintf(stderr, "Runtime error: %s", "Cast failed");
8238 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1606);
8239 show_backtrace(1);
8240 }
8241 var803 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var802, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8242 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var803) /* ret on <var_v:AbstractCompilerVisitor>*/;
8243 goto RET_LABEL;
8244 } else {
8245 if (varonce804) {
8246 var805 = varonce804;
8247 } else {
8248 var806 = "-";
8249 var807 = 1;
8250 var808 = string__NativeString__to_s_with_length(var806, var807);
8251 var805 = var808;
8252 varonce804 = var805;
8253 }
8254 var809 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var805) /* == on <var_pname:String>*/;
8255 if (var809){
8256 var810 = 0;
8257 var811 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var810) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8258 if (varonce812) {
8259 var813 = varonce812;
8260 } else {
8261 var814 = " - ";
8262 var815 = 3;
8263 var816 = string__NativeString__to_s_with_length(var814, var815);
8264 var813 = var816;
8265 varonce812 = var813;
8266 }
8267 var817 = 1;
8268 var818 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var817) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8269 var819 = NEW_array__Array(&type_array__Arraykernel__Object);
8270 { /* var819 = array_instance Array[Object] */
8271 var820 = 3;
8272 var821 = NEW_array__NativeArray(var820, &type_array__NativeArraykernel__Object);
8273 ((struct instance_array__NativeArray*)var821)->values[0] = (val*) var811;
8274 ((struct instance_array__NativeArray*)var821)->values[1] = (val*) var813;
8275 ((struct instance_array__NativeArray*)var821)->values[2] = (val*) var818;
8276 ((void (*)(val*, val*, long))(var819->class->vft[COLOR_array__Array__with_native]))(var819, var821, var820) /* with_native on <var819:Array[Object]>*/;
8277 }
8278 var822 = ((val* (*)(val*))(var819->class->vft[COLOR_string__Object__to_s]))(var819) /* to_s on <var819:Array[Object]>*/;
8279 if (var_ret == NULL) {
8280 fprintf(stderr, "Runtime error: %s", "Cast failed");
8281 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1609);
8282 show_backtrace(1);
8283 }
8284 var823 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var822, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8285 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var823) /* ret on <var_v:AbstractCompilerVisitor>*/;
8286 goto RET_LABEL;
8287 } else {
8288 if (varonce824) {
8289 var825 = varonce824;
8290 } else {
8291 var826 = "unary -";
8292 var827 = 7;
8293 var828 = string__NativeString__to_s_with_length(var826, var827);
8294 var825 = var828;
8295 varonce824 = var825;
8296 }
8297 var829 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var825) /* == on <var_pname:String>*/;
8298 if (var829){
8299 if (varonce830) {
8300 var831 = varonce830;
8301 } else {
8302 var832 = "-";
8303 var833 = 1;
8304 var834 = string__NativeString__to_s_with_length(var832, var833);
8305 var831 = var834;
8306 varonce830 = var831;
8307 }
8308 var835 = 0;
8309 var836 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var835) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8310 var837 = NEW_array__Array(&type_array__Arraykernel__Object);
8311 { /* var837 = array_instance Array[Object] */
8312 var838 = 2;
8313 var839 = NEW_array__NativeArray(var838, &type_array__NativeArraykernel__Object);
8314 ((struct instance_array__NativeArray*)var839)->values[0] = (val*) var831;
8315 ((struct instance_array__NativeArray*)var839)->values[1] = (val*) var836;
8316 ((void (*)(val*, val*, long))(var837->class->vft[COLOR_array__Array__with_native]))(var837, var839, var838) /* with_native on <var837:Array[Object]>*/;
8317 }
8318 var840 = ((val* (*)(val*))(var837->class->vft[COLOR_string__Object__to_s]))(var837) /* to_s on <var837:Array[Object]>*/;
8319 if (var_ret == NULL) {
8320 fprintf(stderr, "Runtime error: %s", "Cast failed");
8321 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1612);
8322 show_backtrace(1);
8323 }
8324 var841 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var840, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8325 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var841) /* ret on <var_v:AbstractCompilerVisitor>*/;
8326 goto RET_LABEL;
8327 } else {
8328 if (varonce842) {
8329 var843 = varonce842;
8330 } else {
8331 var844 = "succ";
8332 var845 = 4;
8333 var846 = string__NativeString__to_s_with_length(var844, var845);
8334 var843 = var846;
8335 varonce842 = var843;
8336 }
8337 var847 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var843) /* == on <var_pname:String>*/;
8338 if (var847){
8339 var848 = 0;
8340 var849 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var848) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8341 if (varonce850) {
8342 var851 = varonce850;
8343 } else {
8344 var852 = "+1";
8345 var853 = 2;
8346 var854 = string__NativeString__to_s_with_length(var852, var853);
8347 var851 = var854;
8348 varonce850 = var851;
8349 }
8350 var855 = NEW_array__Array(&type_array__Arraykernel__Object);
8351 { /* var855 = array_instance Array[Object] */
8352 var856 = 2;
8353 var857 = NEW_array__NativeArray(var856, &type_array__NativeArraykernel__Object);
8354 ((struct instance_array__NativeArray*)var857)->values[0] = (val*) var849;
8355 ((struct instance_array__NativeArray*)var857)->values[1] = (val*) var851;
8356 ((void (*)(val*, val*, long))(var855->class->vft[COLOR_array__Array__with_native]))(var855, var857, var856) /* with_native on <var855:Array[Object]>*/;
8357 }
8358 var858 = ((val* (*)(val*))(var855->class->vft[COLOR_string__Object__to_s]))(var855) /* to_s on <var855:Array[Object]>*/;
8359 if (var_ret == NULL) {
8360 fprintf(stderr, "Runtime error: %s", "Cast failed");
8361 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1615);
8362 show_backtrace(1);
8363 }
8364 var859 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var858, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8365 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var859) /* ret on <var_v:AbstractCompilerVisitor>*/;
8366 goto RET_LABEL;
8367 } else {
8368 if (varonce860) {
8369 var861 = varonce860;
8370 } else {
8371 var862 = "prec";
8372 var863 = 4;
8373 var864 = string__NativeString__to_s_with_length(var862, var863);
8374 var861 = var864;
8375 varonce860 = var861;
8376 }
8377 var865 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var861) /* == on <var_pname:String>*/;
8378 if (var865){
8379 var866 = 0;
8380 var867 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var866) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8381 if (varonce868) {
8382 var869 = varonce868;
8383 } else {
8384 var870 = "-1";
8385 var871 = 2;
8386 var872 = string__NativeString__to_s_with_length(var870, var871);
8387 var869 = var872;
8388 varonce868 = var869;
8389 }
8390 var873 = NEW_array__Array(&type_array__Arraykernel__Object);
8391 { /* var873 = array_instance Array[Object] */
8392 var874 = 2;
8393 var875 = NEW_array__NativeArray(var874, &type_array__NativeArraykernel__Object);
8394 ((struct instance_array__NativeArray*)var875)->values[0] = (val*) var867;
8395 ((struct instance_array__NativeArray*)var875)->values[1] = (val*) var869;
8396 ((void (*)(val*, val*, long))(var873->class->vft[COLOR_array__Array__with_native]))(var873, var875, var874) /* with_native on <var873:Array[Object]>*/;
8397 }
8398 var876 = ((val* (*)(val*))(var873->class->vft[COLOR_string__Object__to_s]))(var873) /* to_s on <var873:Array[Object]>*/;
8399 if (var_ret == NULL) {
8400 fprintf(stderr, "Runtime error: %s", "Cast failed");
8401 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1618);
8402 show_backtrace(1);
8403 }
8404 var877 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var876, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8405 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var877) /* ret on <var_v:AbstractCompilerVisitor>*/;
8406 goto RET_LABEL;
8407 } else {
8408 if (varonce878) {
8409 var879 = varonce878;
8410 } else {
8411 var880 = "*";
8412 var881 = 1;
8413 var882 = string__NativeString__to_s_with_length(var880, var881);
8414 var879 = var882;
8415 varonce878 = var879;
8416 }
8417 var883 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var879) /* == on <var_pname:String>*/;
8418 if (var883){
8419 var884 = 0;
8420 var885 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var884) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8421 if (varonce886) {
8422 var887 = varonce886;
8423 } else {
8424 var888 = " * ";
8425 var889 = 3;
8426 var890 = string__NativeString__to_s_with_length(var888, var889);
8427 var887 = var890;
8428 varonce886 = var887;
8429 }
8430 var891 = 1;
8431 var892 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var891) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8432 var893 = NEW_array__Array(&type_array__Arraykernel__Object);
8433 { /* var893 = array_instance Array[Object] */
8434 var894 = 3;
8435 var895 = NEW_array__NativeArray(var894, &type_array__NativeArraykernel__Object);
8436 ((struct instance_array__NativeArray*)var895)->values[0] = (val*) var885;
8437 ((struct instance_array__NativeArray*)var895)->values[1] = (val*) var887;
8438 ((struct instance_array__NativeArray*)var895)->values[2] = (val*) var892;
8439 ((void (*)(val*, val*, long))(var893->class->vft[COLOR_array__Array__with_native]))(var893, var895, var894) /* with_native on <var893:Array[Object]>*/;
8440 }
8441 var896 = ((val* (*)(val*))(var893->class->vft[COLOR_string__Object__to_s]))(var893) /* to_s on <var893:Array[Object]>*/;
8442 if (var_ret == NULL) {
8443 fprintf(stderr, "Runtime error: %s", "Cast failed");
8444 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1621);
8445 show_backtrace(1);
8446 }
8447 var897 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var896, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8448 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var897) /* ret on <var_v:AbstractCompilerVisitor>*/;
8449 goto RET_LABEL;
8450 } else {
8451 if (varonce898) {
8452 var899 = varonce898;
8453 } else {
8454 var900 = "/";
8455 var901 = 1;
8456 var902 = string__NativeString__to_s_with_length(var900, var901);
8457 var899 = var902;
8458 varonce898 = var899;
8459 }
8460 var903 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var899) /* == on <var_pname:String>*/;
8461 if (var903){
8462 var904 = 0;
8463 var905 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var904) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8464 if (varonce906) {
8465 var907 = varonce906;
8466 } else {
8467 var908 = " / ";
8468 var909 = 3;
8469 var910 = string__NativeString__to_s_with_length(var908, var909);
8470 var907 = var910;
8471 varonce906 = var907;
8472 }
8473 var911 = 1;
8474 var912 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var911) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8475 var913 = NEW_array__Array(&type_array__Arraykernel__Object);
8476 { /* var913 = array_instance Array[Object] */
8477 var914 = 3;
8478 var915 = NEW_array__NativeArray(var914, &type_array__NativeArraykernel__Object);
8479 ((struct instance_array__NativeArray*)var915)->values[0] = (val*) var905;
8480 ((struct instance_array__NativeArray*)var915)->values[1] = (val*) var907;
8481 ((struct instance_array__NativeArray*)var915)->values[2] = (val*) var912;
8482 ((void (*)(val*, val*, long))(var913->class->vft[COLOR_array__Array__with_native]))(var913, var915, var914) /* with_native on <var913:Array[Object]>*/;
8483 }
8484 var916 = ((val* (*)(val*))(var913->class->vft[COLOR_string__Object__to_s]))(var913) /* to_s on <var913:Array[Object]>*/;
8485 if (var_ret == NULL) {
8486 fprintf(stderr, "Runtime error: %s", "Cast failed");
8487 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1624);
8488 show_backtrace(1);
8489 }
8490 var917 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var916, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8491 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var917) /* ret on <var_v:AbstractCompilerVisitor>*/;
8492 goto RET_LABEL;
8493 } else {
8494 if (varonce918) {
8495 var919 = varonce918;
8496 } else {
8497 var920 = "==";
8498 var921 = 2;
8499 var922 = string__NativeString__to_s_with_length(var920, var921);
8500 var919 = var922;
8501 varonce918 = var919;
8502 }
8503 var923 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var919) /* == on <var_pname:String>*/;
8504 if (var923){
8505 var924 = 0;
8506 var925 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var924) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8507 var926 = 1;
8508 var927 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var926) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8509 var928 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var925, var927) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
8510 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var928) /* ret on <var_v:AbstractCompilerVisitor>*/;
8511 goto RET_LABEL;
8512 } else {
8513 if (varonce929) {
8514 var930 = varonce929;
8515 } else {
8516 var931 = "!=";
8517 var932 = 2;
8518 var933 = string__NativeString__to_s_with_length(var931, var932);
8519 var930 = var933;
8520 varonce929 = var930;
8521 }
8522 var934 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var930) /* == on <var_pname:String>*/;
8523 if (var934){
8524 var935 = 0;
8525 var936 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var935) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8526 var937 = 1;
8527 var938 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var937) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8528 var939 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var936, var938) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
8529 var_res940 = var939;
8530 if (varonce941) {
8531 var942 = varonce941;
8532 } else {
8533 var943 = "!";
8534 var944 = 1;
8535 var945 = string__NativeString__to_s_with_length(var943, var944);
8536 var942 = var945;
8537 varonce941 = var942;
8538 }
8539 var946 = NEW_array__Array(&type_array__Arraykernel__Object);
8540 { /* var946 = array_instance Array[Object] */
8541 var947 = 2;
8542 var948 = NEW_array__NativeArray(var947, &type_array__NativeArraykernel__Object);
8543 ((struct instance_array__NativeArray*)var948)->values[0] = (val*) var942;
8544 ((struct instance_array__NativeArray*)var948)->values[1] = (val*) var_res940;
8545 ((void (*)(val*, val*, long))(var946->class->vft[COLOR_array__Array__with_native]))(var946, var948, var947) /* with_native on <var946:Array[Object]>*/;
8546 }
8547 var949 = ((val* (*)(val*))(var946->class->vft[COLOR_string__Object__to_s]))(var946) /* to_s on <var946:Array[Object]>*/;
8548 if (var_ret == NULL) {
8549 fprintf(stderr, "Runtime error: %s", "Cast failed");
8550 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1631);
8551 show_backtrace(1);
8552 }
8553 var950 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var949, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8554 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var950) /* ret on <var_v:AbstractCompilerVisitor>*/;
8555 goto RET_LABEL;
8556 } else {
8557 if (varonce951) {
8558 var952 = varonce951;
8559 } else {
8560 var953 = "<";
8561 var954 = 1;
8562 var955 = string__NativeString__to_s_with_length(var953, var954);
8563 var952 = var955;
8564 varonce951 = var952;
8565 }
8566 var956 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var952) /* == on <var_pname:String>*/;
8567 if (var956){
8568 var957 = 0;
8569 var958 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var957) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8570 if (varonce959) {
8571 var960 = varonce959;
8572 } else {
8573 var961 = " < ";
8574 var962 = 3;
8575 var963 = string__NativeString__to_s_with_length(var961, var962);
8576 var960 = var963;
8577 varonce959 = var960;
8578 }
8579 var964 = 1;
8580 var965 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var964) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8581 var966 = NEW_array__Array(&type_array__Arraykernel__Object);
8582 { /* var966 = array_instance Array[Object] */
8583 var967 = 3;
8584 var968 = NEW_array__NativeArray(var967, &type_array__NativeArraykernel__Object);
8585 ((struct instance_array__NativeArray*)var968)->values[0] = (val*) var958;
8586 ((struct instance_array__NativeArray*)var968)->values[1] = (val*) var960;
8587 ((struct instance_array__NativeArray*)var968)->values[2] = (val*) var965;
8588 ((void (*)(val*, val*, long))(var966->class->vft[COLOR_array__Array__with_native]))(var966, var968, var967) /* with_native on <var966:Array[Object]>*/;
8589 }
8590 var969 = ((val* (*)(val*))(var966->class->vft[COLOR_string__Object__to_s]))(var966) /* to_s on <var966:Array[Object]>*/;
8591 if (var_ret == NULL) {
8592 fprintf(stderr, "Runtime error: %s", "Cast failed");
8593 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1634);
8594 show_backtrace(1);
8595 }
8596 var970 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var969, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8597 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var970) /* ret on <var_v:AbstractCompilerVisitor>*/;
8598 goto RET_LABEL;
8599 } else {
8600 if (varonce971) {
8601 var972 = varonce971;
8602 } else {
8603 var973 = ">";
8604 var974 = 1;
8605 var975 = string__NativeString__to_s_with_length(var973, var974);
8606 var972 = var975;
8607 varonce971 = var972;
8608 }
8609 var976 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var972) /* == on <var_pname:String>*/;
8610 if (var976){
8611 var977 = 0;
8612 var978 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var977) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8613 if (varonce979) {
8614 var980 = varonce979;
8615 } else {
8616 var981 = " > ";
8617 var982 = 3;
8618 var983 = string__NativeString__to_s_with_length(var981, var982);
8619 var980 = var983;
8620 varonce979 = var980;
8621 }
8622 var984 = 1;
8623 var985 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var984) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8624 var986 = NEW_array__Array(&type_array__Arraykernel__Object);
8625 { /* var986 = array_instance Array[Object] */
8626 var987 = 3;
8627 var988 = NEW_array__NativeArray(var987, &type_array__NativeArraykernel__Object);
8628 ((struct instance_array__NativeArray*)var988)->values[0] = (val*) var978;
8629 ((struct instance_array__NativeArray*)var988)->values[1] = (val*) var980;
8630 ((struct instance_array__NativeArray*)var988)->values[2] = (val*) var985;
8631 ((void (*)(val*, val*, long))(var986->class->vft[COLOR_array__Array__with_native]))(var986, var988, var987) /* with_native on <var986:Array[Object]>*/;
8632 }
8633 var989 = ((val* (*)(val*))(var986->class->vft[COLOR_string__Object__to_s]))(var986) /* to_s on <var986:Array[Object]>*/;
8634 if (var_ret == NULL) {
8635 fprintf(stderr, "Runtime error: %s", "Cast failed");
8636 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1637);
8637 show_backtrace(1);
8638 }
8639 var990 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var989, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8640 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var990) /* ret on <var_v:AbstractCompilerVisitor>*/;
8641 goto RET_LABEL;
8642 } else {
8643 if (varonce991) {
8644 var992 = varonce991;
8645 } else {
8646 var993 = "<=";
8647 var994 = 2;
8648 var995 = string__NativeString__to_s_with_length(var993, var994);
8649 var992 = var995;
8650 varonce991 = var992;
8651 }
8652 var996 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var992) /* == on <var_pname:String>*/;
8653 if (var996){
8654 var997 = 0;
8655 var998 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var997) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8656 if (varonce999) {
8657 var1000 = varonce999;
8658 } else {
8659 var1001 = " <= ";
8660 var1002 = 4;
8661 var1003 = string__NativeString__to_s_with_length(var1001, var1002);
8662 var1000 = var1003;
8663 varonce999 = var1000;
8664 }
8665 var1004 = 1;
8666 var1005 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1004) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8667 var1006 = NEW_array__Array(&type_array__Arraykernel__Object);
8668 { /* var1006 = array_instance Array[Object] */
8669 var1007 = 3;
8670 var1008 = NEW_array__NativeArray(var1007, &type_array__NativeArraykernel__Object);
8671 ((struct instance_array__NativeArray*)var1008)->values[0] = (val*) var998;
8672 ((struct instance_array__NativeArray*)var1008)->values[1] = (val*) var1000;
8673 ((struct instance_array__NativeArray*)var1008)->values[2] = (val*) var1005;
8674 ((void (*)(val*, val*, long))(var1006->class->vft[COLOR_array__Array__with_native]))(var1006, var1008, var1007) /* with_native on <var1006:Array[Object]>*/;
8675 }
8676 var1009 = ((val* (*)(val*))(var1006->class->vft[COLOR_string__Object__to_s]))(var1006) /* to_s on <var1006:Array[Object]>*/;
8677 if (var_ret == NULL) {
8678 fprintf(stderr, "Runtime error: %s", "Cast failed");
8679 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1640);
8680 show_backtrace(1);
8681 }
8682 var1010 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1009, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8683 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1010) /* ret on <var_v:AbstractCompilerVisitor>*/;
8684 goto RET_LABEL;
8685 } else {
8686 if (varonce1011) {
8687 var1012 = varonce1011;
8688 } else {
8689 var1013 = ">=";
8690 var1014 = 2;
8691 var1015 = string__NativeString__to_s_with_length(var1013, var1014);
8692 var1012 = var1015;
8693 varonce1011 = var1012;
8694 }
8695 var1016 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1012) /* == on <var_pname:String>*/;
8696 if (var1016){
8697 var1017 = 0;
8698 var1018 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1017) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8699 if (varonce1019) {
8700 var1020 = varonce1019;
8701 } else {
8702 var1021 = " >= ";
8703 var1022 = 4;
8704 var1023 = string__NativeString__to_s_with_length(var1021, var1022);
8705 var1020 = var1023;
8706 varonce1019 = var1020;
8707 }
8708 var1024 = 1;
8709 var1025 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1024) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8710 var1026 = NEW_array__Array(&type_array__Arraykernel__Object);
8711 { /* var1026 = array_instance Array[Object] */
8712 var1027 = 3;
8713 var1028 = NEW_array__NativeArray(var1027, &type_array__NativeArraykernel__Object);
8714 ((struct instance_array__NativeArray*)var1028)->values[0] = (val*) var1018;
8715 ((struct instance_array__NativeArray*)var1028)->values[1] = (val*) var1020;
8716 ((struct instance_array__NativeArray*)var1028)->values[2] = (val*) var1025;
8717 ((void (*)(val*, val*, long))(var1026->class->vft[COLOR_array__Array__with_native]))(var1026, var1028, var1027) /* with_native on <var1026:Array[Object]>*/;
8718 }
8719 var1029 = ((val* (*)(val*))(var1026->class->vft[COLOR_string__Object__to_s]))(var1026) /* to_s on <var1026:Array[Object]>*/;
8720 if (var_ret == NULL) {
8721 fprintf(stderr, "Runtime error: %s", "Cast failed");
8722 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1643);
8723 show_backtrace(1);
8724 }
8725 var1030 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1029, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8726 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1030) /* ret on <var_v:AbstractCompilerVisitor>*/;
8727 goto RET_LABEL;
8728 } else {
8729 if (varonce1031) {
8730 var1032 = varonce1031;
8731 } else {
8732 var1033 = "to_i";
8733 var1034 = 4;
8734 var1035 = string__NativeString__to_s_with_length(var1033, var1034);
8735 var1032 = var1035;
8736 varonce1031 = var1032;
8737 }
8738 var1036 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1032) /* == on <var_pname:String>*/;
8739 if (var1036){
8740 if (varonce1037) {
8741 var1038 = varonce1037;
8742 } else {
8743 var1039 = "(long)";
8744 var1040 = 6;
8745 var1041 = string__NativeString__to_s_with_length(var1039, var1040);
8746 var1038 = var1041;
8747 varonce1037 = var1038;
8748 }
8749 var1042 = 0;
8750 var1043 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1042) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8751 var1044 = NEW_array__Array(&type_array__Arraykernel__Object);
8752 { /* var1044 = array_instance Array[Object] */
8753 var1045 = 2;
8754 var1046 = NEW_array__NativeArray(var1045, &type_array__NativeArraykernel__Object);
8755 ((struct instance_array__NativeArray*)var1046)->values[0] = (val*) var1038;
8756 ((struct instance_array__NativeArray*)var1046)->values[1] = (val*) var1043;
8757 ((void (*)(val*, val*, long))(var1044->class->vft[COLOR_array__Array__with_native]))(var1044, var1046, var1045) /* with_native on <var1044:Array[Object]>*/;
8758 }
8759 var1047 = ((val* (*)(val*))(var1044->class->vft[COLOR_string__Object__to_s]))(var1044) /* to_s on <var1044:Array[Object]>*/;
8760 if (var_ret == NULL) {
8761 fprintf(stderr, "Runtime error: %s", "Cast failed");
8762 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1646);
8763 show_backtrace(1);
8764 }
8765 var1048 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1047, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8766 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1048) /* ret on <var_v:AbstractCompilerVisitor>*/;
8767 goto RET_LABEL;
8768 } else {
8769 }
8770 }
8771 }
8772 }
8773 }
8774 }
8775 }
8776 }
8777 }
8778 }
8779 }
8780 }
8781 }
8782 }
8783 }
8784 }
8785 } else {
8786 if (varonce1049) {
8787 var1050 = varonce1049;
8788 } else {
8789 var1051 = "NativeString";
8790 var1052 = 12;
8791 var1053 = string__NativeString__to_s_with_length(var1051, var1052);
8792 var1050 = var1053;
8793 varonce1049 = var1050;
8794 }
8795 var1054 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var1050) /* == on <var_cname:String>*/;
8796 if (var1054){
8797 if (varonce1055) {
8798 var1056 = varonce1055;
8799 } else {
8800 var1057 = "[]";
8801 var1058 = 2;
8802 var1059 = string__NativeString__to_s_with_length(var1057, var1058);
8803 var1056 = var1059;
8804 varonce1055 = var1056;
8805 }
8806 var1060 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1056) /* == on <var_pname:String>*/;
8807 if (var1060){
8808 var1061 = 0;
8809 var1062 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1061) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8810 if (varonce1063) {
8811 var1064 = varonce1063;
8812 } else {
8813 var1065 = "[";
8814 var1066 = 1;
8815 var1067 = string__NativeString__to_s_with_length(var1065, var1066);
8816 var1064 = var1067;
8817 varonce1063 = var1064;
8818 }
8819 var1068 = 1;
8820 var1069 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1068) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8821 if (varonce1070) {
8822 var1071 = varonce1070;
8823 } else {
8824 var1072 = "]";
8825 var1073 = 1;
8826 var1074 = string__NativeString__to_s_with_length(var1072, var1073);
8827 var1071 = var1074;
8828 varonce1070 = var1071;
8829 }
8830 var1075 = NEW_array__Array(&type_array__Arraykernel__Object);
8831 { /* var1075 = array_instance Array[Object] */
8832 var1076 = 4;
8833 var1077 = NEW_array__NativeArray(var1076, &type_array__NativeArraykernel__Object);
8834 ((struct instance_array__NativeArray*)var1077)->values[0] = (val*) var1062;
8835 ((struct instance_array__NativeArray*)var1077)->values[1] = (val*) var1064;
8836 ((struct instance_array__NativeArray*)var1077)->values[2] = (val*) var1069;
8837 ((struct instance_array__NativeArray*)var1077)->values[3] = (val*) var1071;
8838 ((void (*)(val*, val*, long))(var1075->class->vft[COLOR_array__Array__with_native]))(var1075, var1077, var1076) /* with_native on <var1075:Array[Object]>*/;
8839 }
8840 var1078 = ((val* (*)(val*))(var1075->class->vft[COLOR_string__Object__to_s]))(var1075) /* to_s on <var1075:Array[Object]>*/;
8841 if (var_ret == NULL) {
8842 fprintf(stderr, "Runtime error: %s", "Cast failed");
8843 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1651);
8844 show_backtrace(1);
8845 }
8846 var1079 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1078, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
8847 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1079) /* ret on <var_v:AbstractCompilerVisitor>*/;
8848 goto RET_LABEL;
8849 } else {
8850 if (varonce1080) {
8851 var1081 = varonce1080;
8852 } else {
8853 var1082 = "[]=";
8854 var1083 = 3;
8855 var1084 = string__NativeString__to_s_with_length(var1082, var1083);
8856 var1081 = var1084;
8857 varonce1080 = var1081;
8858 }
8859 var1085 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1081) /* == on <var_pname:String>*/;
8860 if (var1085){
8861 var1086 = 0;
8862 var1087 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1086) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8863 if (varonce1088) {
8864 var1089 = varonce1088;
8865 } else {
8866 var1090 = "[";
8867 var1091 = 1;
8868 var1092 = string__NativeString__to_s_with_length(var1090, var1091);
8869 var1089 = var1092;
8870 varonce1088 = var1089;
8871 }
8872 var1093 = 1;
8873 var1094 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1093) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8874 if (varonce1095) {
8875 var1096 = varonce1095;
8876 } else {
8877 var1097 = "]=";
8878 var1098 = 2;
8879 var1099 = string__NativeString__to_s_with_length(var1097, var1098);
8880 var1096 = var1099;
8881 varonce1095 = var1096;
8882 }
8883 var1100 = 2;
8884 var1101 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1100) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8885 if (varonce1102) {
8886 var1103 = varonce1102;
8887 } else {
8888 var1104 = ";";
8889 var1105 = 1;
8890 var1106 = string__NativeString__to_s_with_length(var1104, var1105);
8891 var1103 = var1106;
8892 varonce1102 = var1103;
8893 }
8894 var1107 = NEW_array__Array(&type_array__Arraykernel__Object);
8895 { /* var1107 = array_instance Array[Object] */
8896 var1108 = 6;
8897 var1109 = NEW_array__NativeArray(var1108, &type_array__NativeArraykernel__Object);
8898 ((struct instance_array__NativeArray*)var1109)->values[0] = (val*) var1087;
8899 ((struct instance_array__NativeArray*)var1109)->values[1] = (val*) var1089;
8900 ((struct instance_array__NativeArray*)var1109)->values[2] = (val*) var1094;
8901 ((struct instance_array__NativeArray*)var1109)->values[3] = (val*) var1096;
8902 ((struct instance_array__NativeArray*)var1109)->values[4] = (val*) var1101;
8903 ((struct instance_array__NativeArray*)var1109)->values[5] = (val*) var1103;
8904 ((void (*)(val*, val*, long))(var1107->class->vft[COLOR_array__Array__with_native]))(var1107, var1109, var1108) /* with_native on <var1107:Array[Object]>*/;
8905 }
8906 var1110 = ((val* (*)(val*))(var1107->class->vft[COLOR_string__Object__to_s]))(var1107) /* to_s on <var1107:Array[Object]>*/;
8907 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1110) /* add on <var_v:AbstractCompilerVisitor>*/;
8908 goto RET_LABEL;
8909 } else {
8910 if (varonce1111) {
8911 var1112 = varonce1111;
8912 } else {
8913 var1113 = "copy_to";
8914 var1114 = 7;
8915 var1115 = string__NativeString__to_s_with_length(var1113, var1114);
8916 var1112 = var1115;
8917 varonce1111 = var1112;
8918 }
8919 var1116 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1112) /* == on <var_pname:String>*/;
8920 if (var1116){
8921 if (varonce1117) {
8922 var1118 = varonce1117;
8923 } else {
8924 var1119 = "memcpy(";
8925 var1120 = 7;
8926 var1121 = string__NativeString__to_s_with_length(var1119, var1120);
8927 var1118 = var1121;
8928 varonce1117 = var1118;
8929 }
8930 var1122 = 1;
8931 var1123 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1122) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8932 if (varonce1124) {
8933 var1125 = varonce1124;
8934 } else {
8935 var1126 = "+";
8936 var1127 = 1;
8937 var1128 = string__NativeString__to_s_with_length(var1126, var1127);
8938 var1125 = var1128;
8939 varonce1124 = var1125;
8940 }
8941 var1129 = 4;
8942 var1130 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1129) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8943 if (varonce1131) {
8944 var1132 = varonce1131;
8945 } else {
8946 var1133 = ",";
8947 var1134 = 1;
8948 var1135 = string__NativeString__to_s_with_length(var1133, var1134);
8949 var1132 = var1135;
8950 varonce1131 = var1132;
8951 }
8952 var1136 = 0;
8953 var1137 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1136) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8954 if (varonce1138) {
8955 var1139 = varonce1138;
8956 } else {
8957 var1140 = "+";
8958 var1141 = 1;
8959 var1142 = string__NativeString__to_s_with_length(var1140, var1141);
8960 var1139 = var1142;
8961 varonce1138 = var1139;
8962 }
8963 var1143 = 3;
8964 var1144 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1143) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8965 if (varonce1145) {
8966 var1146 = varonce1145;
8967 } else {
8968 var1147 = ",";
8969 var1148 = 1;
8970 var1149 = string__NativeString__to_s_with_length(var1147, var1148);
8971 var1146 = var1149;
8972 varonce1145 = var1146;
8973 }
8974 var1150 = 2;
8975 var1151 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1150) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
8976 if (varonce1152) {
8977 var1153 = varonce1152;
8978 } else {
8979 var1154 = ");";
8980 var1155 = 2;
8981 var1156 = string__NativeString__to_s_with_length(var1154, var1155);
8982 var1153 = var1156;
8983 varonce1152 = var1153;
8984 }
8985 var1157 = NEW_array__Array(&type_array__Arraykernel__Object);
8986 { /* var1157 = array_instance Array[Object] */
8987 var1158 = 11;
8988 var1159 = NEW_array__NativeArray(var1158, &type_array__NativeArraykernel__Object);
8989 ((struct instance_array__NativeArray*)var1159)->values[0] = (val*) var1118;
8990 ((struct instance_array__NativeArray*)var1159)->values[1] = (val*) var1123;
8991 ((struct instance_array__NativeArray*)var1159)->values[2] = (val*) var1125;
8992 ((struct instance_array__NativeArray*)var1159)->values[3] = (val*) var1130;
8993 ((struct instance_array__NativeArray*)var1159)->values[4] = (val*) var1132;
8994 ((struct instance_array__NativeArray*)var1159)->values[5] = (val*) var1137;
8995 ((struct instance_array__NativeArray*)var1159)->values[6] = (val*) var1139;
8996 ((struct instance_array__NativeArray*)var1159)->values[7] = (val*) var1144;
8997 ((struct instance_array__NativeArray*)var1159)->values[8] = (val*) var1146;
8998 ((struct instance_array__NativeArray*)var1159)->values[9] = (val*) var1151;
8999 ((struct instance_array__NativeArray*)var1159)->values[10] = (val*) var1153;
9000 ((void (*)(val*, val*, long))(var1157->class->vft[COLOR_array__Array__with_native]))(var1157, var1159, var1158) /* with_native on <var1157:Array[Object]>*/;
9001 }
9002 var1160 = ((val* (*)(val*))(var1157->class->vft[COLOR_string__Object__to_s]))(var1157) /* to_s on <var1157:Array[Object]>*/;
9003 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1160) /* add on <var_v:AbstractCompilerVisitor>*/;
9004 goto RET_LABEL;
9005 } else {
9006 if (varonce1161) {
9007 var1162 = varonce1161;
9008 } else {
9009 var1163 = "atoi";
9010 var1164 = 4;
9011 var1165 = string__NativeString__to_s_with_length(var1163, var1164);
9012 var1162 = var1165;
9013 varonce1161 = var1162;
9014 }
9015 var1166 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1162) /* == on <var_pname:String>*/;
9016 if (var1166){
9017 if (varonce1167) {
9018 var1168 = varonce1167;
9019 } else {
9020 var1169 = "atoi(";
9021 var1170 = 5;
9022 var1171 = string__NativeString__to_s_with_length(var1169, var1170);
9023 var1168 = var1171;
9024 varonce1167 = var1168;
9025 }
9026 var1172 = 0;
9027 var1173 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1172) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9028 if (varonce1174) {
9029 var1175 = varonce1174;
9030 } else {
9031 var1176 = ");";
9032 var1177 = 2;
9033 var1178 = string__NativeString__to_s_with_length(var1176, var1177);
9034 var1175 = var1178;
9035 varonce1174 = var1175;
9036 }
9037 var1179 = NEW_array__Array(&type_array__Arraykernel__Object);
9038 { /* var1179 = array_instance Array[Object] */
9039 var1180 = 3;
9040 var1181 = NEW_array__NativeArray(var1180, &type_array__NativeArraykernel__Object);
9041 ((struct instance_array__NativeArray*)var1181)->values[0] = (val*) var1168;
9042 ((struct instance_array__NativeArray*)var1181)->values[1] = (val*) var1173;
9043 ((struct instance_array__NativeArray*)var1181)->values[2] = (val*) var1175;
9044 ((void (*)(val*, val*, long))(var1179->class->vft[COLOR_array__Array__with_native]))(var1179, var1181, var1180) /* with_native on <var1179:Array[Object]>*/;
9045 }
9046 var1182 = ((val* (*)(val*))(var1179->class->vft[COLOR_string__Object__to_s]))(var1179) /* to_s on <var1179:Array[Object]>*/;
9047 if (var_ret == NULL) {
9048 fprintf(stderr, "Runtime error: %s", "Cast failed");
9049 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1660);
9050 show_backtrace(1);
9051 }
9052 var1183 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1182, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9053 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1183) /* ret on <var_v:AbstractCompilerVisitor>*/;
9054 goto RET_LABEL;
9055 } else {
9056 }
9057 }
9058 }
9059 }
9060 } else {
9061 if (varonce1184) {
9062 var1185 = varonce1184;
9063 } else {
9064 var1186 = "NativeArray";
9065 var1187 = 11;
9066 var1188 = string__NativeString__to_s_with_length(var1186, var1187);
9067 var1185 = var1188;
9068 varonce1184 = var1185;
9069 }
9070 var1189 = ((short int (*)(val*, val*))(var_cname->class->vft[COLOR_kernel__Object___61d_61d]))(var_cname, var1185) /* == on <var_cname:String>*/;
9071 if (var1189){
9072 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__native_array_def]))(var_v, var_pname, var_ret, var_arguments) /* native_array_def on <var_v:AbstractCompilerVisitor>*/;
9073 goto RET_LABEL;
9074 } else {
9075 }
9076 }
9077 }
9078 }
9079 }
9080 }
9081 if (varonce1190) {
9082 var1191 = varonce1190;
9083 } else {
9084 var1192 = "exit";
9085 var1193 = 4;
9086 var1194 = string__NativeString__to_s_with_length(var1192, var1193);
9087 var1191 = var1194;
9088 varonce1190 = var1191;
9089 }
9090 var1195 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1191) /* == on <var_pname:String>*/;
9091 if (var1195){
9092 if (varonce1196) {
9093 var1197 = varonce1196;
9094 } else {
9095 var1198 = "exit(";
9096 var1199 = 5;
9097 var1200 = string__NativeString__to_s_with_length(var1198, var1199);
9098 var1197 = var1200;
9099 varonce1196 = var1197;
9100 }
9101 var1201 = 1;
9102 var1202 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1201) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9103 if (varonce1203) {
9104 var1204 = varonce1203;
9105 } else {
9106 var1205 = ");";
9107 var1206 = 2;
9108 var1207 = string__NativeString__to_s_with_length(var1205, var1206);
9109 var1204 = var1207;
9110 varonce1203 = var1204;
9111 }
9112 var1208 = NEW_array__Array(&type_array__Arraykernel__Object);
9113 { /* var1208 = array_instance Array[Object] */
9114 var1209 = 3;
9115 var1210 = NEW_array__NativeArray(var1209, &type_array__NativeArraykernel__Object);
9116 ((struct instance_array__NativeArray*)var1210)->values[0] = (val*) var1197;
9117 ((struct instance_array__NativeArray*)var1210)->values[1] = (val*) var1202;
9118 ((struct instance_array__NativeArray*)var1210)->values[2] = (val*) var1204;
9119 ((void (*)(val*, val*, long))(var1208->class->vft[COLOR_array__Array__with_native]))(var1208, var1210, var1209) /* with_native on <var1208:Array[Object]>*/;
9120 }
9121 var1211 = ((val* (*)(val*))(var1208->class->vft[COLOR_string__Object__to_s]))(var1208) /* to_s on <var1208:Array[Object]>*/;
9122 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1211) /* add on <var_v:AbstractCompilerVisitor>*/;
9123 goto RET_LABEL;
9124 } else {
9125 if (varonce1212) {
9126 var1213 = varonce1212;
9127 } else {
9128 var1214 = "sys";
9129 var1215 = 3;
9130 var1216 = string__NativeString__to_s_with_length(var1214, var1215);
9131 var1213 = var1216;
9132 varonce1212 = var1213;
9133 }
9134 var1217 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1213) /* == on <var_pname:String>*/;
9135 if (var1217){
9136 if (varonce1218) {
9137 var1219 = varonce1218;
9138 } else {
9139 var1220 = "glob_sys";
9140 var1221 = 8;
9141 var1222 = string__NativeString__to_s_with_length(var1220, var1221);
9142 var1219 = var1222;
9143 varonce1218 = var1219;
9144 }
9145 if (var_ret == NULL) {
9146 fprintf(stderr, "Runtime error: %s", "Cast failed");
9147 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1671);
9148 show_backtrace(1);
9149 }
9150 var1223 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1219, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9151 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1223) /* ret on <var_v:AbstractCompilerVisitor>*/;
9152 goto RET_LABEL;
9153 } else {
9154 if (varonce1224) {
9155 var1225 = varonce1224;
9156 } else {
9157 var1226 = "calloc_string";
9158 var1227 = 13;
9159 var1228 = string__NativeString__to_s_with_length(var1226, var1227);
9160 var1225 = var1228;
9161 varonce1224 = var1225;
9162 }
9163 var1229 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1225) /* == on <var_pname:String>*/;
9164 if (var1229){
9165 if (varonce1230) {
9166 var1231 = varonce1230;
9167 } else {
9168 var1232 = "(char*)nit_alloc(";
9169 var1233 = 17;
9170 var1234 = string__NativeString__to_s_with_length(var1232, var1233);
9171 var1231 = var1234;
9172 varonce1230 = var1231;
9173 }
9174 var1235 = 1;
9175 var1236 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1235) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9176 if (varonce1237) {
9177 var1238 = varonce1237;
9178 } else {
9179 var1239 = ")";
9180 var1240 = 1;
9181 var1241 = string__NativeString__to_s_with_length(var1239, var1240);
9182 var1238 = var1241;
9183 varonce1237 = var1238;
9184 }
9185 var1242 = NEW_array__Array(&type_array__Arraykernel__Object);
9186 { /* var1242 = array_instance Array[Object] */
9187 var1243 = 3;
9188 var1244 = NEW_array__NativeArray(var1243, &type_array__NativeArraykernel__Object);
9189 ((struct instance_array__NativeArray*)var1244)->values[0] = (val*) var1231;
9190 ((struct instance_array__NativeArray*)var1244)->values[1] = (val*) var1236;
9191 ((struct instance_array__NativeArray*)var1244)->values[2] = (val*) var1238;
9192 ((void (*)(val*, val*, long))(var1242->class->vft[COLOR_array__Array__with_native]))(var1242, var1244, var1243) /* with_native on <var1242:Array[Object]>*/;
9193 }
9194 var1245 = ((val* (*)(val*))(var1242->class->vft[COLOR_string__Object__to_s]))(var1242) /* to_s on <var1242:Array[Object]>*/;
9195 if (var_ret == NULL) {
9196 fprintf(stderr, "Runtime error: %s", "Cast failed");
9197 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1674);
9198 show_backtrace(1);
9199 }
9200 var1246 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1245, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9201 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1246) /* ret on <var_v:AbstractCompilerVisitor>*/;
9202 goto RET_LABEL;
9203 } else {
9204 if (varonce1247) {
9205 var1248 = varonce1247;
9206 } else {
9207 var1249 = "calloc_array";
9208 var1250 = 12;
9209 var1251 = string__NativeString__to_s_with_length(var1249, var1250);
9210 var1248 = var1251;
9211 varonce1247 = var1248;
9212 }
9213 var1252 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1248) /* == on <var_pname:String>*/;
9214 if (var1252){
9215 if (var_ret == NULL) {
9216 fprintf(stderr, "Runtime error: %s", "Cast failed");
9217 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1677);
9218 show_backtrace(1);
9219 }
9220 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__calloc_array]))(var_v, var_ret, var_arguments) /* calloc_array on <var_v:AbstractCompilerVisitor>*/;
9221 goto RET_LABEL;
9222 } else {
9223 if (varonce1253) {
9224 var1254 = varonce1253;
9225 } else {
9226 var1255 = "object_id";
9227 var1256 = 9;
9228 var1257 = string__NativeString__to_s_with_length(var1255, var1256);
9229 var1254 = var1257;
9230 varonce1253 = var1254;
9231 }
9232 var1258 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1254) /* == on <var_pname:String>*/;
9233 if (var1258){
9234 if (varonce1259) {
9235 var1260 = varonce1259;
9236 } else {
9237 var1261 = "(long)";
9238 var1262 = 6;
9239 var1263 = string__NativeString__to_s_with_length(var1261, var1262);
9240 var1260 = var1263;
9241 varonce1259 = var1260;
9242 }
9243 var1264 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
9244 var1265 = NEW_array__Array(&type_array__Arraykernel__Object);
9245 { /* var1265 = array_instance Array[Object] */
9246 var1266 = 2;
9247 var1267 = NEW_array__NativeArray(var1266, &type_array__NativeArraykernel__Object);
9248 ((struct instance_array__NativeArray*)var1267)->values[0] = (val*) var1260;
9249 ((struct instance_array__NativeArray*)var1267)->values[1] = (val*) var1264;
9250 ((void (*)(val*, val*, long))(var1265->class->vft[COLOR_array__Array__with_native]))(var1265, var1267, var1266) /* with_native on <var1265:Array[Object]>*/;
9251 }
9252 var1268 = ((val* (*)(val*))(var1265->class->vft[COLOR_string__Object__to_s]))(var1265) /* to_s on <var1265:Array[Object]>*/;
9253 if (var_ret == NULL) {
9254 fprintf(stderr, "Runtime error: %s", "Cast failed");
9255 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1680);
9256 show_backtrace(1);
9257 }
9258 var1269 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1268, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9259 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1269) /* ret on <var_v:AbstractCompilerVisitor>*/;
9260 goto RET_LABEL;
9261 } else {
9262 if (varonce1270) {
9263 var1271 = varonce1270;
9264 } else {
9265 var1272 = "is_same_type";
9266 var1273 = 12;
9267 var1274 = string__NativeString__to_s_with_length(var1272, var1273);
9268 var1271 = var1274;
9269 varonce1270 = var1271;
9270 }
9271 var1275 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1271) /* == on <var_pname:String>*/;
9272 if (var1275){
9273 var1276 = 0;
9274 var1277 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1276) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9275 var1278 = 1;
9276 var1279 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1278) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9277 var1280 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__is_same_type_test]))(var_v, var1277, var1279) /* is_same_type_test on <var_v:AbstractCompilerVisitor>*/;
9278 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1280) /* ret on <var_v:AbstractCompilerVisitor>*/;
9279 goto RET_LABEL;
9280 } else {
9281 if (varonce1281) {
9282 var1282 = varonce1281;
9283 } else {
9284 var1283 = "is_same_instance";
9285 var1284 = 16;
9286 var1285 = string__NativeString__to_s_with_length(var1283, var1284);
9287 var1282 = var1285;
9288 varonce1281 = var1282;
9289 }
9290 var1286 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1282) /* == on <var_pname:String>*/;
9291 if (var1286){
9292 var1287 = 0;
9293 var1288 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1287) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9294 var1289 = 1;
9295 var1290 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1289) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9296 var1291 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__equal_test]))(var_v, var1288, var1290) /* equal_test on <var_v:AbstractCompilerVisitor>*/;
9297 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1291) /* ret on <var_v:AbstractCompilerVisitor>*/;
9298 goto RET_LABEL;
9299 } else {
9300 if (varonce1292) {
9301 var1293 = varonce1292;
9302 } else {
9303 var1294 = "output_class_name";
9304 var1295 = 17;
9305 var1296 = string__NativeString__to_s_with_length(var1294, var1295);
9306 var1293 = var1296;
9307 varonce1292 = var1293;
9308 }
9309 var1297 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1293) /* == on <var_pname:String>*/;
9310 if (var1297){
9311 var1298 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
9312 var1299 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1298) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
9313 var_nat = var1299;
9314 if (varonce1300) {
9315 var1301 = varonce1300;
9316 } else {
9317 var1302 = "printf(\"%s\\n\", ";
9318 var1303 = 15;
9319 var1304 = string__NativeString__to_s_with_length(var1302, var1303);
9320 var1301 = var1304;
9321 varonce1300 = var1301;
9322 }
9323 if (varonce1305) {
9324 var1306 = varonce1305;
9325 } else {
9326 var1307 = ");";
9327 var1308 = 2;
9328 var1309 = string__NativeString__to_s_with_length(var1307, var1308);
9329 var1306 = var1309;
9330 varonce1305 = var1306;
9331 }
9332 var1310 = NEW_array__Array(&type_array__Arraykernel__Object);
9333 { /* var1310 = array_instance Array[Object] */
9334 var1311 = 3;
9335 var1312 = NEW_array__NativeArray(var1311, &type_array__NativeArraykernel__Object);
9336 ((struct instance_array__NativeArray*)var1312)->values[0] = (val*) var1301;
9337 ((struct instance_array__NativeArray*)var1312)->values[1] = (val*) var_nat;
9338 ((struct instance_array__NativeArray*)var1312)->values[2] = (val*) var1306;
9339 ((void (*)(val*, val*, long))(var1310->class->vft[COLOR_array__Array__with_native]))(var1310, var1312, var1311) /* with_native on <var1310:Array[Object]>*/;
9340 }
9341 var1313 = ((val* (*)(val*))(var1310->class->vft[COLOR_string__Object__to_s]))(var1310) /* to_s on <var1310:Array[Object]>*/;
9342 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1313) /* add on <var_v:AbstractCompilerVisitor>*/;
9343 goto RET_LABEL;
9344 } else {
9345 if (varonce1314) {
9346 var1315 = varonce1314;
9347 } else {
9348 var1316 = "native_class_name";
9349 var1317 = 17;
9350 var1318 = string__NativeString__to_s_with_length(var1316, var1317);
9351 var1315 = var1318;
9352 varonce1314 = var1315;
9353 }
9354 var1319 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1315) /* == on <var_pname:String>*/;
9355 if (var1319){
9356 var1320 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
9357 var1321 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var1320) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
9358 var_nat1322 = var1321;
9359 if (varonce1323) {
9360 var1324 = varonce1323;
9361 } else {
9362 var1325 = "(char*)";
9363 var1326 = 7;
9364 var1327 = string__NativeString__to_s_with_length(var1325, var1326);
9365 var1324 = var1327;
9366 varonce1323 = var1324;
9367 }
9368 var1328 = NEW_array__Array(&type_array__Arraykernel__Object);
9369 { /* var1328 = array_instance Array[Object] */
9370 var1329 = 2;
9371 var1330 = NEW_array__NativeArray(var1329, &type_array__NativeArraykernel__Object);
9372 ((struct instance_array__NativeArray*)var1330)->values[0] = (val*) var1324;
9373 ((struct instance_array__NativeArray*)var1330)->values[1] = (val*) var_nat1322;
9374 ((void (*)(val*, val*, long))(var1328->class->vft[COLOR_array__Array__with_native]))(var1328, var1330, var1329) /* with_native on <var1328:Array[Object]>*/;
9375 }
9376 var1331 = ((val* (*)(val*))(var1328->class->vft[COLOR_string__Object__to_s]))(var1328) /* to_s on <var1328:Array[Object]>*/;
9377 if (var_ret == NULL) {
9378 fprintf(stderr, "Runtime error: %s", "Cast failed");
9379 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1694);
9380 show_backtrace(1);
9381 }
9382 var1332 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1331, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9383 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1332) /* ret on <var_v:AbstractCompilerVisitor>*/;
9384 goto RET_LABEL;
9385 } else {
9386 if (varonce1333) {
9387 var1334 = varonce1333;
9388 } else {
9389 var1335 = "force_garbage_collection";
9390 var1336 = 24;
9391 var1337 = string__NativeString__to_s_with_length(var1335, var1336);
9392 var1334 = var1337;
9393 varonce1333 = var1334;
9394 }
9395 var1338 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1334) /* == on <var_pname:String>*/;
9396 if (var1338){
9397 if (varonce1339) {
9398 var1340 = varonce1339;
9399 } else {
9400 var1341 = "nit_gcollect();";
9401 var1342 = 15;
9402 var1343 = string__NativeString__to_s_with_length(var1341, var1342);
9403 var1340 = var1343;
9404 varonce1339 = var1340;
9405 }
9406 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1340) /* add on <var_v:AbstractCompilerVisitor>*/;
9407 goto RET_LABEL;
9408 } else {
9409 if (varonce1344) {
9410 var1345 = varonce1344;
9411 } else {
9412 var1346 = "native_argc";
9413 var1347 = 11;
9414 var1348 = string__NativeString__to_s_with_length(var1346, var1347);
9415 var1345 = var1348;
9416 varonce1344 = var1345;
9417 }
9418 var1349 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1345) /* == on <var_pname:String>*/;
9419 if (var1349){
9420 if (varonce1350) {
9421 var1351 = varonce1350;
9422 } else {
9423 var1352 = "glob_argc";
9424 var1353 = 9;
9425 var1354 = string__NativeString__to_s_with_length(var1352, var1353);
9426 var1351 = var1354;
9427 varonce1350 = var1351;
9428 }
9429 if (var_ret == NULL) {
9430 fprintf(stderr, "Runtime error: %s", "Cast failed");
9431 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1700);
9432 show_backtrace(1);
9433 }
9434 var1355 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1351, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9435 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1355) /* ret on <var_v:AbstractCompilerVisitor>*/;
9436 goto RET_LABEL;
9437 } else {
9438 if (varonce1356) {
9439 var1357 = varonce1356;
9440 } else {
9441 var1358 = "native_argv";
9442 var1359 = 11;
9443 var1360 = string__NativeString__to_s_with_length(var1358, var1359);
9444 var1357 = var1360;
9445 varonce1356 = var1357;
9446 }
9447 var1361 = ((short int (*)(val*, val*))(var_pname->class->vft[COLOR_kernel__Object___61d_61d]))(var_pname, var1357) /* == on <var_pname:String>*/;
9448 if (var1361){
9449 if (varonce1362) {
9450 var1363 = varonce1362;
9451 } else {
9452 var1364 = "glob_argv[";
9453 var1365 = 10;
9454 var1366 = string__NativeString__to_s_with_length(var1364, var1365);
9455 var1363 = var1366;
9456 varonce1362 = var1363;
9457 }
9458 var1367 = 1;
9459 var1368 = ((val* (*)(val*, long))(var_arguments->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var_arguments, var1367) /* [] on <var_arguments:Array[RuntimeVariable]>*/;
9460 if (varonce1369) {
9461 var1370 = varonce1369;
9462 } else {
9463 var1371 = "]";
9464 var1372 = 1;
9465 var1373 = string__NativeString__to_s_with_length(var1371, var1372);
9466 var1370 = var1373;
9467 varonce1369 = var1370;
9468 }
9469 var1374 = NEW_array__Array(&type_array__Arraykernel__Object);
9470 { /* var1374 = array_instance Array[Object] */
9471 var1375 = 3;
9472 var1376 = NEW_array__NativeArray(var1375, &type_array__NativeArraykernel__Object);
9473 ((struct instance_array__NativeArray*)var1376)->values[0] = (val*) var1363;
9474 ((struct instance_array__NativeArray*)var1376)->values[1] = (val*) var1368;
9475 ((struct instance_array__NativeArray*)var1376)->values[2] = (val*) var1370;
9476 ((void (*)(val*, val*, long))(var1374->class->vft[COLOR_array__Array__with_native]))(var1374, var1376, var1375) /* with_native on <var1374:Array[Object]>*/;
9477 }
9478 var1377 = ((val* (*)(val*))(var1374->class->vft[COLOR_string__Object__to_s]))(var1374) /* to_s on <var1374:Array[Object]>*/;
9479 if (var_ret == NULL) {
9480 fprintf(stderr, "Runtime error: %s", "Cast failed");
9481 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1703);
9482 show_backtrace(1);
9483 }
9484 var1378 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var1377, var_ret) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
9485 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var1378) /* ret on <var_v:AbstractCompilerVisitor>*/;
9486 goto RET_LABEL;
9487 } else {
9488 }
9489 }
9490 }
9491 }
9492 }
9493 }
9494 }
9495 }
9496 }
9497 }
9498 }
9499 }
9500 if (varonce1379) {
9501 var1380 = varonce1379;
9502 } else {
9503 var1381 = "printf(\"NOT YET IMPLEMENTED ";
9504 var1382 = 28;
9505 var1383 = string__NativeString__to_s_with_length(var1381, var1382);
9506 var1380 = var1383;
9507 varonce1379 = var1380;
9508 }
9509 var1384 = ((val* (*)(val*))(self->class->vft[COLOR_string__Object__class_name]))(self) /* class_name on <self:AInternMethPropdef>*/;
9510 if (varonce1385) {
9511 var1386 = varonce1385;
9512 } else {
9513 var1387 = ":";
9514 var1388 = 1;
9515 var1389 = string__NativeString__to_s_with_length(var1387, var1388);
9516 var1386 = var1389;
9517 varonce1385 = var1386;
9518 }
9519 if (varonce1390) {
9520 var1391 = varonce1390;
9521 } else {
9522 var1392 = " at ";
9523 var1393 = 4;
9524 var1394 = string__NativeString__to_s_with_length(var1392, var1393);
9525 var1391 = var1394;
9526 varonce1390 = var1391;
9527 }
9528 var1395 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AInternMethPropdef>*/;
9529 var1396 = ((val* (*)(val*))(var1395->class->vft[COLOR_string__Object__to_s]))(var1395) /* to_s on <var1395:Location>*/;
9530 if (varonce1397) {
9531 var1398 = varonce1397;
9532 } else {
9533 var1399 = "\\n\");";
9534 var1400 = 5;
9535 var1401 = string__NativeString__to_s_with_length(var1399, var1400);
9536 var1398 = var1401;
9537 varonce1397 = var1398;
9538 }
9539 var1402 = NEW_array__Array(&type_array__Arraykernel__Object);
9540 { /* var1402 = array_instance Array[Object] */
9541 var1403 = 7;
9542 var1404 = NEW_array__NativeArray(var1403, &type_array__NativeArraykernel__Object);
9543 ((struct instance_array__NativeArray*)var1404)->values[0] = (val*) var1380;
9544 ((struct instance_array__NativeArray*)var1404)->values[1] = (val*) var1384;
9545 ((struct instance_array__NativeArray*)var1404)->values[2] = (val*) var1386;
9546 ((struct instance_array__NativeArray*)var1404)->values[3] = (val*) var_mpropdef;
9547 ((struct instance_array__NativeArray*)var1404)->values[4] = (val*) var1391;
9548 ((struct instance_array__NativeArray*)var1404)->values[5] = (val*) var1396;
9549 ((struct instance_array__NativeArray*)var1404)->values[6] = (val*) var1398;
9550 ((void (*)(val*, val*, long))(var1402->class->vft[COLOR_array__Array__with_native]))(var1402, var1404, var1403) /* with_native on <var1402:Array[Object]>*/;
9551 }
9552 var1405 = ((val* (*)(val*))(var1402->class->vft[COLOR_string__Object__to_s]))(var1402) /* to_s on <var1402:Array[Object]>*/;
9553 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var1405) /* add on <var_v:AbstractCompilerVisitor>*/;
9554 if (varonce1406) {
9555 var1407 = varonce1406;
9556 } else {
9557 var1408 = "Not implemented ";
9558 var1409 = 16;
9559 var1410 = string__NativeString__to_s_with_length(var1408, var1409);
9560 var1407 = var1410;
9561 varonce1406 = var1407;
9562 }
9563 var1411 = NEW_array__Array(&type_array__Arraykernel__Object);
9564 { /* var1411 = array_instance Array[Object] */
9565 var1412 = 2;
9566 var1413 = NEW_array__NativeArray(var1412, &type_array__NativeArraykernel__Object);
9567 ((struct instance_array__NativeArray*)var1413)->values[0] = (val*) var1407;
9568 ((struct instance_array__NativeArray*)var1413)->values[1] = (val*) var_mpropdef;
9569 ((void (*)(val*, val*, long))(var1411->class->vft[COLOR_array__Array__with_native]))(var1411, var1413, var1412) /* with_native on <var1411:Array[Object]>*/;
9570 }
9571 var1414 = ((val* (*)(val*))(var1411->class->vft[COLOR_string__Object__to_s]))(var1411) /* to_s on <var1411:Array[Object]>*/;
9572 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__debug]))(self, var1414) /* debug on <self:AInternMethPropdef>*/;
9573 RET_LABEL:;
9574 }
9575 /* method abstract_compiler#AInternMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9576 void VIRTUAL_abstract_compiler__AInternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
9577 abstract_compiler__AInternMethPropdef__compile_to_c(self, p0, p1, p2);
9578 RET_LABEL:;
9579 }
9580 /* method abstract_compiler#AExternMethPropdef#compile_to_c for (self: AExternMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9581 void abstract_compiler__AExternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
9582 val* var_v /* var v: AbstractCompilerVisitor */;
9583 val* var_mpropdef /* var mpropdef: MMethodDef */;
9584 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
9585 val* var /* : nullable TString */;
9586 val* var_nextern /* var nextern: nullable TString */;
9587 val* var1 /* : null */;
9588 short int var2 /* : Bool */;
9589 static val* varonce;
9590 val* var3 /* : String */;
9591 char* var4 /* : NativeString */;
9592 long var5 /* : Int */;
9593 val* var6 /* : String */;
9594 static val* varonce7;
9595 val* var8 /* : String */;
9596 char* var9 /* : NativeString */;
9597 long var10 /* : Int */;
9598 val* var11 /* : String */;
9599 val* var12 /* : Location */;
9600 val* var13 /* : String */;
9601 static val* varonce14;
9602 val* var15 /* : String */;
9603 char* var16 /* : NativeString */;
9604 long var17 /* : Int */;
9605 val* var18 /* : String */;
9606 val* var19 /* : Array[Object] */;
9607 long var20 /* : Int */;
9608 val* var21 /* : NativeArray[Object] */;
9609 val* var22 /* : String */;
9610 static val* varonce23;
9611 val* var24 /* : String */;
9612 char* var25 /* : NativeString */;
9613 long var26 /* : Int */;
9614 val* var27 /* : String */;
9615 val* var28 /* : String */;
9616 long var29 /* : Int */;
9617 val* var30 /* : String */;
9618 long var31 /* : Int */;
9619 long var32 /* : Int */;
9620 long var33 /* : Int */;
9621 long var35 /* : Int */;
9622 val* var36 /* : String */;
9623 val* var_externname /* var externname: nullable Object */;
9624 val* var37 /* : Location */;
9625 val* var38 /* : nullable SourceFile */;
9626 val* var39 /* : null */;
9627 short int var40 /* : Bool */;
9628 val* var41 /* : Location */;
9629 val* var42 /* : nullable SourceFile */;
9630 val* var43 /* : String */;
9631 val* var_file /* var file: String */;
9632 val* var44 /* : null */;
9633 val* var_res /* var res: nullable RuntimeVariable */;
9634 val* var45 /* : nullable MSignature */;
9635 val* var46 /* : nullable MType */;
9636 val* var_ret /* var ret: nullable MType */;
9637 val* var47 /* : null */;
9638 short int var48 /* : Bool */;
9639 val* var49 /* : nullable Object */;
9640 val* var50 /* : MType */;
9641 val* var51 /* : RuntimeVariable */;
9642 val* var52 /* : null */;
9643 short int var53 /* : Bool */;
9644 static val* varonce54;
9645 val* var55 /* : String */;
9646 char* var56 /* : NativeString */;
9647 long var57 /* : Int */;
9648 val* var58 /* : String */;
9649 static val* varonce59;
9650 val* var60 /* : String */;
9651 char* var61 /* : NativeString */;
9652 long var62 /* : Int */;
9653 val* var63 /* : String */;
9654 val* var64 /* : String */;
9655 static val* varonce65;
9656 val* var66 /* : String */;
9657 char* var67 /* : NativeString */;
9658 long var68 /* : Int */;
9659 val* var69 /* : String */;
9660 val* var70 /* : Array[Object] */;
9661 long var71 /* : Int */;
9662 val* var72 /* : NativeArray[Object] */;
9663 val* var73 /* : String */;
9664 static val* varonce74;
9665 val* var75 /* : String */;
9666 char* var76 /* : NativeString */;
9667 long var77 /* : Int */;
9668 val* var78 /* : String */;
9669 static val* varonce79;
9670 val* var80 /* : String */;
9671 char* var81 /* : NativeString */;
9672 long var82 /* : Int */;
9673 val* var83 /* : String */;
9674 static val* varonce84;
9675 val* var85 /* : String */;
9676 char* var86 /* : NativeString */;
9677 long var87 /* : Int */;
9678 val* var88 /* : String */;
9679 val* var89 /* : String */;
9680 static val* varonce90;
9681 val* var91 /* : String */;
9682 char* var92 /* : NativeString */;
9683 long var93 /* : Int */;
9684 val* var94 /* : String */;
9685 val* var95 /* : Array[Object] */;
9686 long var96 /* : Int */;
9687 val* var97 /* : NativeArray[Object] */;
9688 val* var98 /* : String */;
9689 var_v = p0;
9690 var_mpropdef = p1;
9691 var_arguments = p2;
9692 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AExternPropdef__n_extern]))(self) /* n_extern on <self:AExternMethPropdef>*/;
9693 var_nextern = var;
9694 var1 = NULL;
9695 if (var_nextern == NULL) {
9696 var2 = 1; /* is null */
9697 } else {
9698 var2 = 0; /* arg is null but recv is not */
9699 }
9700 if (var2){
9701 if (varonce) {
9702 var3 = varonce;
9703 } else {
9704 var4 = "fprintf(stderr, \"NOT YET IMPLEMENTED nitni for ";
9705 var5 = 47;
9706 var6 = string__NativeString__to_s_with_length(var4, var5);
9707 var3 = var6;
9708 varonce = var3;
9709 }
9710 if (varonce7) {
9711 var8 = varonce7;
9712 } else {
9713 var9 = " at ";
9714 var10 = 4;
9715 var11 = string__NativeString__to_s_with_length(var9, var10);
9716 var8 = var11;
9717 varonce7 = var8;
9718 }
9719 var12 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
9720 var13 = ((val* (*)(val*))(var12->class->vft[COLOR_string__Object__to_s]))(var12) /* to_s on <var12:Location>*/;
9721 if (varonce14) {
9722 var15 = varonce14;
9723 } else {
9724 var16 = "\\n\");";
9725 var17 = 5;
9726 var18 = string__NativeString__to_s_with_length(var16, var17);
9727 var15 = var18;
9728 varonce14 = var15;
9729 }
9730 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
9731 { /* var19 = array_instance Array[Object] */
9732 var20 = 5;
9733 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
9734 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var3;
9735 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_mpropdef;
9736 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var8;
9737 ((struct instance_array__NativeArray*)var21)->values[3] = (val*) var13;
9738 ((struct instance_array__NativeArray*)var21)->values[4] = (val*) var15;
9739 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
9740 }
9741 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
9742 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
9743 if (varonce23) {
9744 var24 = varonce23;
9745 } else {
9746 var25 = "show_backtrace(1);";
9747 var26 = 18;
9748 var27 = string__NativeString__to_s_with_length(var25, var26);
9749 var24 = var27;
9750 varonce23 = var24;
9751 }
9752 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var24) /* add on <var_v:AbstractCompilerVisitor>*/;
9753 goto RET_LABEL;
9754 } else {
9755 }
9756 var28 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
9757 var29 = 1;
9758 var30 = ((val* (*)(val*))(var_nextern->class->vft[COLOR_parser_nodes__Token__text]))(var_nextern) /* text on <var_nextern:nullable TString(TString)>*/;
9759 var31 = ((long (*)(val*))(var30->class->vft[COLOR_abstract_collection__Collection__length]))(var30) /* length on <var30:String>*/;
9760 var32 = 2;
9761 { /* Inline kernel#Int#- (var31,var32) */
9762 var35 = var31 - var32;
9763 var33 = var35;
9764 goto RET_LABEL34;
9765 RET_LABEL34:(void)0;
9766 }
9767 var36 = ((val* (*)(val*, long, long))(var28->class->vft[COLOR_string__AbstractString__substring]))(var28, var29, var33) /* substring on <var28:String>*/;
9768 var_externname = var36;
9769 var37 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
9770 var38 = ((val* (*)(val*))(var37->class->vft[COLOR_location__Location__file]))(var37) /* file on <var37:Location>*/;
9771 var39 = NULL;
9772 if (var38 == NULL) {
9773 var40 = 0; /* is null */
9774 } else {
9775 var40 = 1; /* arg is null and recv is not */
9776 }
9777 if (var40){
9778 var41 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANode__location]))(self) /* location on <self:AExternMethPropdef>*/;
9779 var42 = ((val* (*)(val*))(var41->class->vft[COLOR_location__Location__file]))(var41) /* file on <var41:Location>*/;
9780 if (var42 == NULL) {
9781 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9782 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1723);
9783 show_backtrace(1);
9784 } else {
9785 var43 = ((val* (*)(val*))(var42->class->vft[COLOR_location__SourceFile__filename]))(var42) /* filename on <var42:nullable SourceFile>*/;
9786 }
9787 var_file = var43;
9788 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_extern]))(var_v, var_file) /* add_extern on <var_v:AbstractCompilerVisitor>*/;
9789 } else {
9790 }
9791 var44 = NULL;
9792 var_res = var44;
9793 var45 = ((val* (*)(val*))(var_mpropdef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mpropdef) /* msignature on <var_mpropdef:MMethodDef>*/;
9794 if (var45 == NULL) {
9795 fprintf(stderr, "Runtime error: %s", "Reciever is null");
9796 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 1727);
9797 show_backtrace(1);
9798 } else {
9799 var46 = ((val* (*)(val*))(var45->class->vft[COLOR_model__MSignature__return_mtype]))(var45) /* return_mtype on <var45:nullable MSignature>*/;
9800 }
9801 var_ret = var46;
9802 var47 = NULL;
9803 if (var_ret == NULL) {
9804 var48 = 0; /* is null */
9805 } else {
9806 var48 = 1; /* arg is null and recv is not */
9807 }
9808 if (var48){
9809 var49 = ((val* (*)(val*))(var_arguments->class->vft[COLOR_abstract_collection__Collection__first]))(var_arguments) /* first on <var_arguments:Array[RuntimeVariable]>*/;
9810 var50 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__resolve_for]))(var_v, var_ret, var49) /* resolve_for on <var_v:AbstractCompilerVisitor>*/;
9811 var_ret = var50;
9812 var51 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_ret) /* new_var on <var_v:AbstractCompilerVisitor>*/;
9813 var_res = var51;
9814 } else {
9815 }
9816 ((void (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__adapt_signature]))(var_v, var_mpropdef, var_arguments) /* adapt_signature on <var_v:AbstractCompilerVisitor>*/;
9817 var52 = NULL;
9818 if (var_res == NULL) {
9819 var53 = 1; /* is null */
9820 } else {
9821 var53 = 0; /* arg is null but recv is not */
9822 }
9823 if (var53){
9824 if (varonce54) {
9825 var55 = varonce54;
9826 } else {
9827 var56 = "(";
9828 var57 = 1;
9829 var58 = string__NativeString__to_s_with_length(var56, var57);
9830 var55 = var58;
9831 varonce54 = var55;
9832 }
9833 if (varonce59) {
9834 var60 = varonce59;
9835 } else {
9836 var61 = ", ";
9837 var62 = 2;
9838 var63 = string__NativeString__to_s_with_length(var61, var62);
9839 var60 = var63;
9840 varonce59 = var60;
9841 }
9842 var64 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var60) /* join on <var_arguments:Array[RuntimeVariable]>*/;
9843 if (varonce65) {
9844 var66 = varonce65;
9845 } else {
9846 var67 = ");";
9847 var68 = 2;
9848 var69 = string__NativeString__to_s_with_length(var67, var68);
9849 var66 = var69;
9850 varonce65 = var66;
9851 }
9852 var70 = NEW_array__Array(&type_array__Arraykernel__Object);
9853 { /* var70 = array_instance Array[Object] */
9854 var71 = 4;
9855 var72 = NEW_array__NativeArray(var71, &type_array__NativeArraykernel__Object);
9856 ((struct instance_array__NativeArray*)var72)->values[0] = (val*) var_externname;
9857 ((struct instance_array__NativeArray*)var72)->values[1] = (val*) var55;
9858 ((struct instance_array__NativeArray*)var72)->values[2] = (val*) var64;
9859 ((struct instance_array__NativeArray*)var72)->values[3] = (val*) var66;
9860 ((void (*)(val*, val*, long))(var70->class->vft[COLOR_array__Array__with_native]))(var70, var72, var71) /* with_native on <var70:Array[Object]>*/;
9861 }
9862 var73 = ((val* (*)(val*))(var70->class->vft[COLOR_string__Object__to_s]))(var70) /* to_s on <var70:Array[Object]>*/;
9863 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var73) /* add on <var_v:AbstractCompilerVisitor>*/;
9864 } else {
9865 if (varonce74) {
9866 var75 = varonce74;
9867 } else {
9868 var76 = " = ";
9869 var77 = 3;
9870 var78 = string__NativeString__to_s_with_length(var76, var77);
9871 var75 = var78;
9872 varonce74 = var75;
9873 }
9874 if (varonce79) {
9875 var80 = varonce79;
9876 } else {
9877 var81 = "(";
9878 var82 = 1;
9879 var83 = string__NativeString__to_s_with_length(var81, var82);
9880 var80 = var83;
9881 varonce79 = var80;
9882 }
9883 if (varonce84) {
9884 var85 = varonce84;
9885 } else {
9886 var86 = ", ";
9887 var87 = 2;
9888 var88 = string__NativeString__to_s_with_length(var86, var87);
9889 var85 = var88;
9890 varonce84 = var85;
9891 }
9892 var89 = ((val* (*)(val*, val*))(var_arguments->class->vft[COLOR_string__Collection__join]))(var_arguments, var85) /* join on <var_arguments:Array[RuntimeVariable]>*/;
9893 if (varonce90) {
9894 var91 = varonce90;
9895 } else {
9896 var92 = ");";
9897 var93 = 2;
9898 var94 = string__NativeString__to_s_with_length(var92, var93);
9899 var91 = var94;
9900 varonce90 = var91;
9901 }
9902 var95 = NEW_array__Array(&type_array__Arraykernel__Object);
9903 { /* var95 = array_instance Array[Object] */
9904 var96 = 6;
9905 var97 = NEW_array__NativeArray(var96, &type_array__NativeArraykernel__Object);
9906 ((struct instance_array__NativeArray*)var97)->values[0] = (val*) var_res;
9907 ((struct instance_array__NativeArray*)var97)->values[1] = (val*) var75;
9908 ((struct instance_array__NativeArray*)var97)->values[2] = (val*) var_externname;
9909 ((struct instance_array__NativeArray*)var97)->values[3] = (val*) var80;
9910 ((struct instance_array__NativeArray*)var97)->values[4] = (val*) var89;
9911 ((struct instance_array__NativeArray*)var97)->values[5] = (val*) var91;
9912 ((void (*)(val*, val*, long))(var95->class->vft[COLOR_array__Array__with_native]))(var95, var97, var96) /* with_native on <var95:Array[Object]>*/;
9913 }
9914 var98 = ((val* (*)(val*))(var95->class->vft[COLOR_string__Object__to_s]))(var95) /* to_s on <var95:Array[Object]>*/;
9915 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var98) /* add on <var_v:AbstractCompilerVisitor>*/;
9916 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__ret]))(var_v, var_res) /* ret on <var_v:AbstractCompilerVisitor>*/;
9917 }
9918 RET_LABEL:;
9919 }
9920 /* method abstract_compiler#AExternMethPropdef#compile_to_c for (self: Object, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
9921 void VIRTUAL_abstract_compiler__AExternMethPropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
9922 abstract_compiler__AExternMethPropdef__compile_to_c(self, p0, p1, p2);
9923 RET_LABEL:;
9924 }