Merge: SharedPreferences: Nit API wrapping android SharedPreferences class
[nit.git] / c_src / abstract_compiler.sep.4.c
1 #include "abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AAsCastExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
3 val* VIRTUAL_abstract_compiler__AAsCastExpr__expr(val* self, val* p0) {
4 val* var /* : nullable RuntimeVariable */;
5 val* var1 /* : nullable RuntimeVariable */;
6 var1 = abstract_compiler__AAsCastExpr__expr(self, p0);
7 var = var1;
8 RET_LABEL:;
9 return var;
10 }
11 /* method abstract_compiler#AAsNotnullExpr#expr for (self: AAsNotnullExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
12 val* abstract_compiler__AAsNotnullExpr__expr(val* self, val* p0) {
13 val* var /* : nullable RuntimeVariable */;
14 val* var_v /* var v: AbstractCompilerVisitor */;
15 val* var1 /* : AExpr */;
16 val* var2 /* : null */;
17 val* var3 /* : RuntimeVariable */;
18 val* var_i /* var i: RuntimeVariable */;
19 val* var4 /* : AbstractCompiler */;
20 val* var5 /* : ModelBuilder */;
21 val* var6 /* : ToolContext */;
22 val* var7 /* : OptionBool */;
23 val* var8 /* : nullable Object */;
24 short int var9 /* : Bool */;
25 static val* varonce;
26 val* var10 /* : String */;
27 char* var11 /* : NativeString */;
28 long var12 /* : Int */;
29 val* var13 /* : String */;
30 static val* varonce14;
31 val* var15 /* : String */;
32 char* var16 /* : NativeString */;
33 long var17 /* : Int */;
34 val* var18 /* : String */;
35 val* var19 /* : Array[Object] */;
36 long var20 /* : Int */;
37 val* var21 /* : NativeArray[Object] */;
38 val* var22 /* : String */;
39 static val* varonce23;
40 val* var24 /* : String */;
41 char* var25 /* : NativeString */;
42 long var26 /* : Int */;
43 val* var27 /* : String */;
44 static val* varonce28;
45 val* var29 /* : String */;
46 char* var30 /* : NativeString */;
47 long var31 /* : Int */;
48 val* var32 /* : String */;
49 var_v = p0;
50 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAsNotnullExpr__n_expr]))(self) /* n_expr on <self:AAsNotnullExpr>*/;
51 var2 = NULL;
52 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
53 var_i = var3;
54 var4 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compiler]))(var_v) /* compiler on <var_v:AbstractCompilerVisitor>*/;
55 var5 = ((val* (*)(val*))(var4->class->vft[COLOR_abstract_compiler__AbstractCompiler__modelbuilder]))(var4) /* modelbuilder on <var4:AbstractCompiler>*/;
56 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_modelbuilder__ModelBuilder__toolcontext]))(var5) /* toolcontext on <var5:ModelBuilder>*/;
57 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_compiler__ToolContext__opt_no_check_assert]))(var6) /* opt_no_check_assert on <var6:ToolContext>*/;
58 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_opts__Option__value]))(var7) /* value on <var7:OptionBool>*/;
59 var9 = ((struct instance_kernel__Bool*)var8)->value; /* autounbox from nullable Object to Bool */;
60 if (var9){
61 var = var_i;
62 goto RET_LABEL;
63 } else {
64 }
65 if (varonce) {
66 var10 = varonce;
67 } else {
68 var11 = "if (";
69 var12 = 4;
70 var13 = string__NativeString__to_s_with_length(var11, var12);
71 var10 = var13;
72 varonce = var10;
73 }
74 if (varonce14) {
75 var15 = varonce14;
76 } else {
77 var16 = " == NULL) {";
78 var17 = 11;
79 var18 = string__NativeString__to_s_with_length(var16, var17);
80 var15 = var18;
81 varonce14 = var15;
82 }
83 var19 = NEW_array__Array(&type_array__Arraykernel__Object);
84 { /* var19 = array_instance Array[Object] */
85 var20 = 3;
86 var21 = NEW_array__NativeArray(var20, &type_array__NativeArraykernel__Object);
87 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var10;
88 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_i;
89 ((struct instance_array__NativeArray*)var21)->values[2] = (val*) var15;
90 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[Object]>*/;
91 }
92 var22 = ((val* (*)(val*))(var19->class->vft[COLOR_string__Object__to_s]))(var19) /* to_s on <var19:Array[Object]>*/;
93 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var22) /* add on <var_v:AbstractCompilerVisitor>*/;
94 if (varonce23) {
95 var24 = varonce23;
96 } else {
97 var25 = "Cast failed";
98 var26 = 11;
99 var27 = string__NativeString__to_s_with_length(var25, var26);
100 var24 = var27;
101 varonce23 = var24;
102 }
103 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_abort]))(var_v, var24) /* add_abort on <var_v:AbstractCompilerVisitor>*/;
104 if (varonce28) {
105 var29 = varonce28;
106 } else {
107 var30 = "}";
108 var31 = 1;
109 var32 = string__NativeString__to_s_with_length(var30, var31);
110 var29 = var32;
111 varonce28 = var29;
112 }
113 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var29) /* add on <var_v:AbstractCompilerVisitor>*/;
114 var = var_i;
115 goto RET_LABEL;
116 RET_LABEL:;
117 return var;
118 }
119 /* method abstract_compiler#AAsNotnullExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
120 val* VIRTUAL_abstract_compiler__AAsNotnullExpr__expr(val* self, val* p0) {
121 val* var /* : nullable RuntimeVariable */;
122 val* var1 /* : nullable RuntimeVariable */;
123 var1 = abstract_compiler__AAsNotnullExpr__expr(self, p0);
124 var = var1;
125 RET_LABEL:;
126 return var;
127 }
128 /* method abstract_compiler#AParExpr#expr for (self: AParExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
129 val* abstract_compiler__AParExpr__expr(val* self, val* p0) {
130 val* var /* : nullable RuntimeVariable */;
131 val* var_v /* var v: AbstractCompilerVisitor */;
132 val* var1 /* : AExpr */;
133 val* var2 /* : null */;
134 val* var3 /* : RuntimeVariable */;
135 var_v = p0;
136 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AProxyExpr__n_expr]))(self) /* n_expr on <self:AParExpr>*/;
137 var2 = NULL;
138 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
139 var = var3;
140 goto RET_LABEL;
141 RET_LABEL:;
142 return var;
143 }
144 /* method abstract_compiler#AParExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
145 val* VIRTUAL_abstract_compiler__AParExpr__expr(val* self, val* p0) {
146 val* var /* : nullable RuntimeVariable */;
147 val* var1 /* : nullable RuntimeVariable */;
148 var1 = abstract_compiler__AParExpr__expr(self, p0);
149 var = var1;
150 RET_LABEL:;
151 return var;
152 }
153 /* method abstract_compiler#AOnceExpr#expr for (self: AOnceExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
154 val* abstract_compiler__AOnceExpr__expr(val* self, val* p0) {
155 val* var /* : nullable RuntimeVariable */;
156 val* var_v /* var v: AbstractCompilerVisitor */;
157 val* var1 /* : nullable MType */;
158 val* var_mtype /* var mtype: MType */;
159 static val* varonce;
160 val* var2 /* : String */;
161 char* var3 /* : NativeString */;
162 long var4 /* : Int */;
163 val* var5 /* : String */;
164 val* var6 /* : String */;
165 val* var_name /* var name: String */;
166 static val* varonce7;
167 val* var8 /* : String */;
168 char* var9 /* : NativeString */;
169 long var10 /* : Int */;
170 val* var11 /* : String */;
171 val* var12 /* : String */;
172 val* var13 /* : String */;
173 val* var_guard /* var guard: String */;
174 static val* varonce14;
175 val* var15 /* : String */;
176 char* var16 /* : NativeString */;
177 long var17 /* : Int */;
178 val* var18 /* : String */;
179 val* var19 /* : String */;
180 static val* varonce20;
181 val* var21 /* : String */;
182 char* var22 /* : NativeString */;
183 long var23 /* : Int */;
184 val* var24 /* : String */;
185 static val* varonce25;
186 val* var26 /* : String */;
187 char* var27 /* : NativeString */;
188 long var28 /* : Int */;
189 val* var29 /* : String */;
190 val* var30 /* : Array[Object] */;
191 long var31 /* : Int */;
192 val* var32 /* : NativeArray[Object] */;
193 val* var33 /* : String */;
194 static val* varonce34;
195 val* var35 /* : String */;
196 char* var36 /* : NativeString */;
197 long var37 /* : Int */;
198 val* var38 /* : String */;
199 static val* varonce39;
200 val* var40 /* : String */;
201 char* var41 /* : NativeString */;
202 long var42 /* : Int */;
203 val* var43 /* : String */;
204 val* var44 /* : Array[Object] */;
205 long var45 /* : Int */;
206 val* var46 /* : NativeArray[Object] */;
207 val* var47 /* : String */;
208 val* var48 /* : RuntimeVariable */;
209 val* var_res /* var res: RuntimeVariable */;
210 static val* varonce49;
211 val* var50 /* : String */;
212 char* var51 /* : NativeString */;
213 long var52 /* : Int */;
214 val* var53 /* : String */;
215 static val* varonce54;
216 val* var55 /* : String */;
217 char* var56 /* : NativeString */;
218 long var57 /* : Int */;
219 val* var58 /* : String */;
220 val* var59 /* : Array[Object] */;
221 long var60 /* : Int */;
222 val* var61 /* : NativeArray[Object] */;
223 val* var62 /* : String */;
224 static val* varonce63;
225 val* var64 /* : String */;
226 char* var65 /* : NativeString */;
227 long var66 /* : Int */;
228 val* var67 /* : String */;
229 static val* varonce68;
230 val* var69 /* : String */;
231 char* var70 /* : NativeString */;
232 long var71 /* : Int */;
233 val* var72 /* : String */;
234 val* var73 /* : Array[Object] */;
235 long var74 /* : Int */;
236 val* var75 /* : NativeArray[Object] */;
237 val* var76 /* : String */;
238 static val* varonce77;
239 val* var78 /* : String */;
240 char* var79 /* : NativeString */;
241 long var80 /* : Int */;
242 val* var81 /* : String */;
243 val* var82 /* : AExpr */;
244 val* var83 /* : RuntimeVariable */;
245 val* var_i /* var i: RuntimeVariable */;
246 static val* varonce84;
247 val* var85 /* : String */;
248 char* var86 /* : NativeString */;
249 long var87 /* : Int */;
250 val* var88 /* : String */;
251 static val* varonce89;
252 val* var90 /* : String */;
253 char* var91 /* : NativeString */;
254 long var92 /* : Int */;
255 val* var93 /* : String */;
256 val* var94 /* : Array[Object] */;
257 long var95 /* : Int */;
258 val* var96 /* : NativeArray[Object] */;
259 val* var97 /* : String */;
260 static val* varonce98;
261 val* var99 /* : String */;
262 char* var100 /* : NativeString */;
263 long var101 /* : Int */;
264 val* var102 /* : String */;
265 static val* varonce103;
266 val* var104 /* : String */;
267 char* var105 /* : NativeString */;
268 long var106 /* : Int */;
269 val* var107 /* : String */;
270 val* var108 /* : Array[Object] */;
271 long var109 /* : Int */;
272 val* var110 /* : NativeArray[Object] */;
273 val* var111 /* : String */;
274 static val* varonce112;
275 val* var113 /* : String */;
276 char* var114 /* : NativeString */;
277 long var115 /* : Int */;
278 val* var116 /* : String */;
279 val* var117 /* : Array[Object] */;
280 long var118 /* : Int */;
281 val* var119 /* : NativeArray[Object] */;
282 val* var120 /* : String */;
283 static val* varonce121;
284 val* var122 /* : String */;
285 char* var123 /* : NativeString */;
286 long var124 /* : Int */;
287 val* var125 /* : String */;
288 var_v = p0;
289 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:AOnceExpr>*/;
290 if (var1 == NULL) {
291 fprintf(stderr, "Runtime error: %s", "Cast failed");
292 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2441);
293 show_backtrace(1);
294 }
295 var_mtype = var1;
296 if (varonce) {
297 var2 = varonce;
298 } else {
299 var3 = "varonce";
300 var4 = 7;
301 var5 = string__NativeString__to_s_with_length(var3, var4);
302 var2 = var5;
303 varonce = var2;
304 }
305 var6 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name]))(var_v, var2) /* get_name on <var_v:AbstractCompilerVisitor>*/;
306 var_name = var6;
307 if (varonce7) {
308 var8 = varonce7;
309 } else {
310 var9 = "_guard";
311 var10 = 6;
312 var11 = string__NativeString__to_s_with_length(var9, var10);
313 var8 = var11;
314 varonce7 = var8;
315 }
316 var12 = ((val* (*)(val*, val*))(var_name->class->vft[COLOR_string__String___43d]))(var_name, var8) /* + on <var_name:String>*/;
317 var13 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__get_name]))(var_v, var12) /* get_name on <var_v:AbstractCompilerVisitor>*/;
318 var_guard = var13;
319 if (varonce14) {
320 var15 = varonce14;
321 } else {
322 var16 = "static ";
323 var17 = 7;
324 var18 = string__NativeString__to_s_with_length(var16, var17);
325 var15 = var18;
326 varonce14 = var15;
327 }
328 var19 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MType>*/;
329 if (varonce20) {
330 var21 = varonce20;
331 } else {
332 var22 = " ";
333 var23 = 1;
334 var24 = string__NativeString__to_s_with_length(var22, var23);
335 var21 = var24;
336 varonce20 = var21;
337 }
338 if (varonce25) {
339 var26 = varonce25;
340 } else {
341 var27 = ";";
342 var28 = 1;
343 var29 = string__NativeString__to_s_with_length(var27, var28);
344 var26 = var29;
345 varonce25 = var26;
346 }
347 var30 = NEW_array__Array(&type_array__Arraykernel__Object);
348 { /* var30 = array_instance Array[Object] */
349 var31 = 5;
350 var32 = NEW_array__NativeArray(var31, &type_array__NativeArraykernel__Object);
351 ((struct instance_array__NativeArray*)var32)->values[0] = (val*) var15;
352 ((struct instance_array__NativeArray*)var32)->values[1] = (val*) var19;
353 ((struct instance_array__NativeArray*)var32)->values[2] = (val*) var21;
354 ((struct instance_array__NativeArray*)var32)->values[3] = (val*) var_name;
355 ((struct instance_array__NativeArray*)var32)->values[4] = (val*) var26;
356 ((void (*)(val*, val*, long))(var30->class->vft[COLOR_array__Array__with_native]))(var30, var32, var31) /* with_native on <var30:Array[Object]>*/;
357 }
358 var33 = ((val* (*)(val*))(var30->class->vft[COLOR_string__Object__to_s]))(var30) /* to_s on <var30:Array[Object]>*/;
359 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var33) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
360 if (varonce34) {
361 var35 = varonce34;
362 } else {
363 var36 = "static int ";
364 var37 = 11;
365 var38 = string__NativeString__to_s_with_length(var36, var37);
366 var35 = var38;
367 varonce34 = var35;
368 }
369 if (varonce39) {
370 var40 = varonce39;
371 } else {
372 var41 = ";";
373 var42 = 1;
374 var43 = string__NativeString__to_s_with_length(var41, var42);
375 var40 = var43;
376 varonce39 = var40;
377 }
378 var44 = NEW_array__Array(&type_array__Arraykernel__Object);
379 { /* var44 = array_instance Array[Object] */
380 var45 = 3;
381 var46 = NEW_array__NativeArray(var45, &type_array__NativeArraykernel__Object);
382 ((struct instance_array__NativeArray*)var46)->values[0] = (val*) var35;
383 ((struct instance_array__NativeArray*)var46)->values[1] = (val*) var_guard;
384 ((struct instance_array__NativeArray*)var46)->values[2] = (val*) var40;
385 ((void (*)(val*, val*, long))(var44->class->vft[COLOR_array__Array__with_native]))(var44, var46, var45) /* with_native on <var44:Array[Object]>*/;
386 }
387 var47 = ((val* (*)(val*))(var44->class->vft[COLOR_string__Object__to_s]))(var44) /* to_s on <var44:Array[Object]>*/;
388 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add_decl]))(var_v, var47) /* add_decl on <var_v:AbstractCompilerVisitor>*/;
389 var48 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_var]))(var_v, var_mtype) /* new_var on <var_v:AbstractCompilerVisitor>*/;
390 var_res = var48;
391 if (varonce49) {
392 var50 = varonce49;
393 } else {
394 var51 = "if (";
395 var52 = 4;
396 var53 = string__NativeString__to_s_with_length(var51, var52);
397 var50 = var53;
398 varonce49 = var50;
399 }
400 if (varonce54) {
401 var55 = varonce54;
402 } else {
403 var56 = ") {";
404 var57 = 3;
405 var58 = string__NativeString__to_s_with_length(var56, var57);
406 var55 = var58;
407 varonce54 = var55;
408 }
409 var59 = NEW_array__Array(&type_array__Arraykernel__Object);
410 { /* var59 = array_instance Array[Object] */
411 var60 = 3;
412 var61 = NEW_array__NativeArray(var60, &type_array__NativeArraykernel__Object);
413 ((struct instance_array__NativeArray*)var61)->values[0] = (val*) var50;
414 ((struct instance_array__NativeArray*)var61)->values[1] = (val*) var_guard;
415 ((struct instance_array__NativeArray*)var61)->values[2] = (val*) var55;
416 ((void (*)(val*, val*, long))(var59->class->vft[COLOR_array__Array__with_native]))(var59, var61, var60) /* with_native on <var59:Array[Object]>*/;
417 }
418 var62 = ((val* (*)(val*))(var59->class->vft[COLOR_string__Object__to_s]))(var59) /* to_s on <var59:Array[Object]>*/;
419 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var62) /* add on <var_v:AbstractCompilerVisitor>*/;
420 if (varonce63) {
421 var64 = varonce63;
422 } else {
423 var65 = " = ";
424 var66 = 3;
425 var67 = string__NativeString__to_s_with_length(var65, var66);
426 var64 = var67;
427 varonce63 = var64;
428 }
429 if (varonce68) {
430 var69 = varonce68;
431 } else {
432 var70 = ";";
433 var71 = 1;
434 var72 = string__NativeString__to_s_with_length(var70, var71);
435 var69 = var72;
436 varonce68 = var69;
437 }
438 var73 = NEW_array__Array(&type_array__Arraykernel__Object);
439 { /* var73 = array_instance Array[Object] */
440 var74 = 4;
441 var75 = NEW_array__NativeArray(var74, &type_array__NativeArraykernel__Object);
442 ((struct instance_array__NativeArray*)var75)->values[0] = (val*) var_res;
443 ((struct instance_array__NativeArray*)var75)->values[1] = (val*) var64;
444 ((struct instance_array__NativeArray*)var75)->values[2] = (val*) var_name;
445 ((struct instance_array__NativeArray*)var75)->values[3] = (val*) var69;
446 ((void (*)(val*, val*, long))(var73->class->vft[COLOR_array__Array__with_native]))(var73, var75, var74) /* with_native on <var73:Array[Object]>*/;
447 }
448 var76 = ((val* (*)(val*))(var73->class->vft[COLOR_string__Object__to_s]))(var73) /* to_s on <var73:Array[Object]>*/;
449 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var76) /* add on <var_v:AbstractCompilerVisitor>*/;
450 if (varonce77) {
451 var78 = varonce77;
452 } else {
453 var79 = "} else {";
454 var80 = 8;
455 var81 = string__NativeString__to_s_with_length(var79, var80);
456 var78 = var81;
457 varonce77 = var78;
458 }
459 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var78) /* add on <var_v:AbstractCompilerVisitor>*/;
460 var82 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AProxyExpr__n_expr]))(self) /* n_expr on <self:AOnceExpr>*/;
461 var83 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var82, var_mtype) /* expr on <var_v:AbstractCompilerVisitor>*/;
462 var_i = var83;
463 if (varonce84) {
464 var85 = varonce84;
465 } else {
466 var86 = " = ";
467 var87 = 3;
468 var88 = string__NativeString__to_s_with_length(var86, var87);
469 var85 = var88;
470 varonce84 = var85;
471 }
472 if (varonce89) {
473 var90 = varonce89;
474 } else {
475 var91 = ";";
476 var92 = 1;
477 var93 = string__NativeString__to_s_with_length(var91, var92);
478 var90 = var93;
479 varonce89 = var90;
480 }
481 var94 = NEW_array__Array(&type_array__Arraykernel__Object);
482 { /* var94 = array_instance Array[Object] */
483 var95 = 4;
484 var96 = NEW_array__NativeArray(var95, &type_array__NativeArraykernel__Object);
485 ((struct instance_array__NativeArray*)var96)->values[0] = (val*) var_res;
486 ((struct instance_array__NativeArray*)var96)->values[1] = (val*) var85;
487 ((struct instance_array__NativeArray*)var96)->values[2] = (val*) var_i;
488 ((struct instance_array__NativeArray*)var96)->values[3] = (val*) var90;
489 ((void (*)(val*, val*, long))(var94->class->vft[COLOR_array__Array__with_native]))(var94, var96, var95) /* with_native on <var94:Array[Object]>*/;
490 }
491 var97 = ((val* (*)(val*))(var94->class->vft[COLOR_string__Object__to_s]))(var94) /* to_s on <var94:Array[Object]>*/;
492 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var97) /* add on <var_v:AbstractCompilerVisitor>*/;
493 if (varonce98) {
494 var99 = varonce98;
495 } else {
496 var100 = " = ";
497 var101 = 3;
498 var102 = string__NativeString__to_s_with_length(var100, var101);
499 var99 = var102;
500 varonce98 = var99;
501 }
502 if (varonce103) {
503 var104 = varonce103;
504 } else {
505 var105 = ";";
506 var106 = 1;
507 var107 = string__NativeString__to_s_with_length(var105, var106);
508 var104 = var107;
509 varonce103 = var104;
510 }
511 var108 = NEW_array__Array(&type_array__Arraykernel__Object);
512 { /* var108 = array_instance Array[Object] */
513 var109 = 4;
514 var110 = NEW_array__NativeArray(var109, &type_array__NativeArraykernel__Object);
515 ((struct instance_array__NativeArray*)var110)->values[0] = (val*) var_name;
516 ((struct instance_array__NativeArray*)var110)->values[1] = (val*) var99;
517 ((struct instance_array__NativeArray*)var110)->values[2] = (val*) var_res;
518 ((struct instance_array__NativeArray*)var110)->values[3] = (val*) var104;
519 ((void (*)(val*, val*, long))(var108->class->vft[COLOR_array__Array__with_native]))(var108, var110, var109) /* with_native on <var108:Array[Object]>*/;
520 }
521 var111 = ((val* (*)(val*))(var108->class->vft[COLOR_string__Object__to_s]))(var108) /* to_s on <var108:Array[Object]>*/;
522 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var111) /* add on <var_v:AbstractCompilerVisitor>*/;
523 if (varonce112) {
524 var113 = varonce112;
525 } else {
526 var114 = " = 1;";
527 var115 = 5;
528 var116 = string__NativeString__to_s_with_length(var114, var115);
529 var113 = var116;
530 varonce112 = var113;
531 }
532 var117 = NEW_array__Array(&type_array__Arraykernel__Object);
533 { /* var117 = array_instance Array[Object] */
534 var118 = 2;
535 var119 = NEW_array__NativeArray(var118, &type_array__NativeArraykernel__Object);
536 ((struct instance_array__NativeArray*)var119)->values[0] = (val*) var_guard;
537 ((struct instance_array__NativeArray*)var119)->values[1] = (val*) var113;
538 ((void (*)(val*, val*, long))(var117->class->vft[COLOR_array__Array__with_native]))(var117, var119, var118) /* with_native on <var117:Array[Object]>*/;
539 }
540 var120 = ((val* (*)(val*))(var117->class->vft[COLOR_string__Object__to_s]))(var117) /* to_s on <var117:Array[Object]>*/;
541 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var120) /* add on <var_v:AbstractCompilerVisitor>*/;
542 if (varonce121) {
543 var122 = varonce121;
544 } else {
545 var123 = "}";
546 var124 = 1;
547 var125 = string__NativeString__to_s_with_length(var123, var124);
548 var122 = var125;
549 varonce121 = var122;
550 }
551 ((void (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__add]))(var_v, var122) /* add on <var_v:AbstractCompilerVisitor>*/;
552 var = var_res;
553 goto RET_LABEL;
554 RET_LABEL:;
555 return var;
556 }
557 /* method abstract_compiler#AOnceExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
558 val* VIRTUAL_abstract_compiler__AOnceExpr__expr(val* self, val* p0) {
559 val* var /* : nullable RuntimeVariable */;
560 val* var1 /* : nullable RuntimeVariable */;
561 var1 = abstract_compiler__AOnceExpr__expr(self, p0);
562 var = var1;
563 RET_LABEL:;
564 return var;
565 }
566 /* method abstract_compiler#ASendExpr#expr for (self: ASendExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
567 val* abstract_compiler__ASendExpr__expr(val* self, val* p0) {
568 val* var /* : nullable RuntimeVariable */;
569 val* var_v /* var v: AbstractCompilerVisitor */;
570 val* var1 /* : AExpr */;
571 val* var2 /* : null */;
572 val* var3 /* : RuntimeVariable */;
573 val* var_recv /* var recv: RuntimeVariable */;
574 val* var4 /* : Array[RuntimeVariable] */;
575 long var5 /* : Int */;
576 val* var_ /* var : Array[RuntimeVariable] */;
577 val* var_args /* var args: Array[RuntimeVariable] */;
578 val* var6 /* : nullable Array[AExpr] */;
579 val* var7 /* : Iterator[nullable Object] */;
580 short int var8 /* : Bool */;
581 val* var9 /* : nullable Object */;
582 val* var_a /* var a: AExpr */;
583 val* var10 /* : null */;
584 val* var11 /* : RuntimeVariable */;
585 val* var12 /* : nullable CallSite */;
586 val* var13 /* : nullable RuntimeVariable */;
587 var_v = p0;
588 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on <self:ASendExpr>*/;
589 var2 = NULL;
590 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
591 var_recv = var3;
592 var4 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
593 var5 = 1;
594 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[RuntimeVariable]>*/;
595 var_ = var4;
596 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
597 var_args = var_;
598 var6 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__raw_arguments]))(self) /* raw_arguments on <self:ASendExpr>*/;
599 if (var6 == NULL) {
600 fprintf(stderr, "Runtime error: %s", "Cast failed");
601 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2464);
602 show_backtrace(1);
603 }
604 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Collection__iterator]))(var6) /* iterator on <var6:nullable Array[AExpr](Array[AExpr])>*/;
605 for(;;) {
606 var8 = ((short int (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var7) /* is_ok on <var7:Iterator[nullable Object]>*/;
607 if(!var8) break;
608 var9 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__item]))(var7) /* item on <var7:Iterator[nullable Object]>*/;
609 var_a = var9;
610 var10 = NULL;
611 var11 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_a, var10) /* expr on <var_v:AbstractCompilerVisitor>*/;
612 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_args, var11) /* add on <var_args:Array[RuntimeVariable]>*/;
613 CONTINUE_label: (void)0;
614 ((void (*)(val*))(var7->class->vft[COLOR_abstract_collection__Iterator__next]))(var7) /* next on <var7:Iterator[nullable Object]>*/;
615 }
616 BREAK_label: (void)0;
617 var12 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__callsite]))(self) /* callsite on <self:ASendExpr>*/;
618 if (var12 == NULL) {
619 fprintf(stderr, "Runtime error: %s", "Cast failed");
620 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2467);
621 show_backtrace(1);
622 }
623 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var12, var_args) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
624 var = var13;
625 goto RET_LABEL;
626 RET_LABEL:;
627 return var;
628 }
629 /* method abstract_compiler#ASendExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
630 val* VIRTUAL_abstract_compiler__ASendExpr__expr(val* self, val* p0) {
631 val* var /* : nullable RuntimeVariable */;
632 val* var1 /* : nullable RuntimeVariable */;
633 var1 = abstract_compiler__ASendExpr__expr(self, p0);
634 var = var1;
635 RET_LABEL:;
636 return var;
637 }
638 /* method abstract_compiler#ASendReassignFormExpr#stmt for (self: ASendReassignFormExpr, AbstractCompilerVisitor) */
639 void abstract_compiler__ASendReassignFormExpr__stmt(val* self, val* p0) {
640 val* var_v /* var v: AbstractCompilerVisitor */;
641 val* var /* : AExpr */;
642 val* var1 /* : null */;
643 val* var2 /* : RuntimeVariable */;
644 val* var_recv /* var recv: RuntimeVariable */;
645 val* var3 /* : Array[RuntimeVariable] */;
646 long var4 /* : Int */;
647 val* var_ /* var : Array[RuntimeVariable] */;
648 val* var_args /* var args: Array[RuntimeVariable] */;
649 val* var5 /* : nullable Array[AExpr] */;
650 val* var6 /* : Iterator[nullable Object] */;
651 short int var7 /* : Bool */;
652 val* var8 /* : nullable Object */;
653 val* var_a /* var a: AExpr */;
654 val* var9 /* : null */;
655 val* var10 /* : RuntimeVariable */;
656 val* var11 /* : AExpr */;
657 val* var12 /* : null */;
658 val* var13 /* : RuntimeVariable */;
659 val* var_value /* var value: RuntimeVariable */;
660 val* var14 /* : nullable CallSite */;
661 val* var15 /* : nullable RuntimeVariable */;
662 val* var_left /* var left: nullable RuntimeVariable */;
663 val* var16 /* : null */;
664 short int var17 /* : Bool */;
665 val* var18 /* : nullable CallSite */;
666 val* var19 /* : Array[RuntimeVariable] */;
667 long var20 /* : Int */;
668 val* var21 /* : NativeArray[RuntimeVariable] */;
669 val* var22 /* : nullable RuntimeVariable */;
670 val* var_res /* var res: nullable RuntimeVariable */;
671 val* var23 /* : null */;
672 short int var24 /* : Bool */;
673 val* var25 /* : nullable CallSite */;
674 val* var26 /* : nullable RuntimeVariable */;
675 var_v = p0;
676 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASendExpr__n_expr]))(self) /* n_expr on <self:ASendReassignFormExpr>*/;
677 var1 = NULL;
678 var2 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var, var1) /* expr on <var_v:AbstractCompilerVisitor>*/;
679 var_recv = var2;
680 var3 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
681 var4 = 1;
682 ((void (*)(val*, long))(var3->class->vft[COLOR_array__Array__with_capacity]))(var3, var4) /* with_capacity on <var3:Array[RuntimeVariable]>*/;
683 var_ = var3;
684 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
685 var_args = var_;
686 var5 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__raw_arguments]))(self) /* raw_arguments on <self:ASendReassignFormExpr>*/;
687 if (var5 == NULL) {
688 fprintf(stderr, "Runtime error: %s", "Cast failed");
689 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2476);
690 show_backtrace(1);
691 }
692 var6 = ((val* (*)(val*))(var5->class->vft[COLOR_abstract_collection__Collection__iterator]))(var5) /* iterator on <var5:nullable Array[AExpr](Array[AExpr])>*/;
693 for(;;) {
694 var7 = ((short int (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var6) /* is_ok on <var6:Iterator[nullable Object]>*/;
695 if(!var7) break;
696 var8 = ((val* (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__item]))(var6) /* item on <var6:Iterator[nullable Object]>*/;
697 var_a = var8;
698 var9 = NULL;
699 var10 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_a, var9) /* expr on <var_v:AbstractCompilerVisitor>*/;
700 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_args, var10) /* add on <var_args:Array[RuntimeVariable]>*/;
701 CONTINUE_label: (void)0;
702 ((void (*)(val*))(var6->class->vft[COLOR_abstract_collection__Iterator__next]))(var6) /* next on <var6:Iterator[nullable Object]>*/;
703 }
704 BREAK_label: (void)0;
705 var11 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:ASendReassignFormExpr>*/;
706 var12 = NULL;
707 var13 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var11, var12) /* expr on <var_v:AbstractCompilerVisitor>*/;
708 var_value = var13;
709 var14 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendExpr__callsite]))(self) /* callsite on <self:ASendReassignFormExpr>*/;
710 if (var14 == NULL) {
711 fprintf(stderr, "Runtime error: %s", "Cast failed");
712 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2481);
713 show_backtrace(1);
714 }
715 var15 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var14, var_args) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
716 var_left = var15;
717 var16 = NULL;
718 if (var_left == NULL) {
719 var17 = 0; /* is null */
720 } else {
721 var17 = 1; /* arg is null and recv is not */
722 }
723 if (!var17) {
724 fprintf(stderr, "Runtime error: %s", "Assert failed");
725 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2482);
726 show_backtrace(1);
727 }
728 var18 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on <self:ASendReassignFormExpr>*/;
729 if (var18 == NULL) {
730 fprintf(stderr, "Runtime error: %s", "Cast failed");
731 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2484);
732 show_backtrace(1);
733 }
734 var19 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
735 { /* var19 = array_instance Array[RuntimeVariable] */
736 var20 = 2;
737 var21 = NEW_array__NativeArray(var20, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
738 ((struct instance_array__NativeArray*)var21)->values[0] = (val*) var_left;
739 ((struct instance_array__NativeArray*)var21)->values[1] = (val*) var_value;
740 ((void (*)(val*, val*, long))(var19->class->vft[COLOR_array__Array__with_native]))(var19, var21, var20) /* with_native on <var19:Array[RuntimeVariable]>*/;
741 }
742 var22 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var18, var19) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
743 var_res = var22;
744 var23 = NULL;
745 if (var_res == NULL) {
746 var24 = 0; /* is null */
747 } else {
748 var24 = 1; /* arg is null and recv is not */
749 }
750 if (!var24) {
751 fprintf(stderr, "Runtime error: %s", "Assert failed");
752 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2485);
753 show_backtrace(1);
754 }
755 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_args, var_res) /* add on <var_args:Array[RuntimeVariable]>*/;
756 var25 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASendReassignFormExpr__write_callsite]))(self) /* write_callsite on <self:ASendReassignFormExpr>*/;
757 if (var25 == NULL) {
758 fprintf(stderr, "Runtime error: %s", "Cast failed");
759 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2488);
760 show_backtrace(1);
761 }
762 var26 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var25, var_args) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
763 var26;
764 RET_LABEL:;
765 }
766 /* method abstract_compiler#ASendReassignFormExpr#stmt for (self: Object, AbstractCompilerVisitor) */
767 void VIRTUAL_abstract_compiler__ASendReassignFormExpr__stmt(val* self, val* p0) {
768 abstract_compiler__ASendReassignFormExpr__stmt(self, p0);
769 RET_LABEL:;
770 }
771 /* method abstract_compiler#ASuperExpr#expr for (self: ASuperExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
772 val* abstract_compiler__ASuperExpr__expr(val* self, val* p0) {
773 val* var /* : nullable RuntimeVariable */;
774 val* var_v /* var v: AbstractCompilerVisitor */;
775 val* var1 /* : nullable Frame */;
776 val* var2 /* : Array[RuntimeVariable] */;
777 val* var3 /* : nullable Object */;
778 val* var_recv /* var recv: RuntimeVariable */;
779 val* var4 /* : Array[RuntimeVariable] */;
780 long var5 /* : Int */;
781 val* var_ /* var : Array[RuntimeVariable] */;
782 val* var_args /* var args: Array[RuntimeVariable] */;
783 val* var6 /* : AExprs */;
784 val* var7 /* : ANodes[AExpr] */;
785 val* var8 /* : Iterator[nullable Object] */;
786 short int var9 /* : Bool */;
787 val* var10 /* : nullable Object */;
788 val* var_a /* var a: AExpr */;
789 val* var11 /* : null */;
790 val* var12 /* : RuntimeVariable */;
791 val* var13 /* : nullable CallSite */;
792 val* var_callsite /* var callsite: nullable CallSite */;
793 val* var14 /* : null */;
794 short int var15 /* : Bool */;
795 long var16 /* : Int */;
796 long var17 /* : Int */;
797 short int var18 /* : Bool */;
798 short int var20 /* : Bool */;
799 val* var21 /* : Range[Int] */;
800 long var22 /* : Int */;
801 val* var23 /* : MMethod */;
802 val* var24 /* : MPropDef */;
803 val* var25 /* : nullable MSignature */;
804 long var26 /* : Int */;
805 val* var27 /* : Discrete */;
806 val* var28 /* : Discrete */;
807 val* var29 /* : Iterator[nullable Object] */;
808 short int var30 /* : Bool */;
809 val* var31 /* : nullable Object */;
810 long var_i /* var i: Int */;
811 long var32 /* : Int */;
812 val* var33 /* : nullable Frame */;
813 val* var34 /* : Array[RuntimeVariable] */;
814 long var35 /* : Int */;
815 long var36 /* : Int */;
816 long var38 /* : Int */;
817 val* var39 /* : nullable Object */;
818 val* var41 /* : nullable RuntimeVariable */;
819 val* var_res /* var res: nullable RuntimeVariable */;
820 long var42 /* : Int */;
821 long var43 /* : Int */;
822 short int var44 /* : Bool */;
823 short int var46 /* : Bool */;
824 val* var47 /* : nullable Frame */;
825 val* var48 /* : Array[RuntimeVariable] */;
826 val* var49 /* : nullable MMethodDef */;
827 val* var50 /* : MType */;
828 short int var51 /* : Bool */;
829 int cltype;
830 int idtype;
831 const char* var_class_name;
832 val* var52 /* : nullable RuntimeVariable */;
833 var_v = p0;
834 var1 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
835 if (var1 == NULL) {
836 fprintf(stderr, "Runtime error: %s", "Receiver is null");
837 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2495);
838 show_backtrace(1);
839 } else {
840 var2 = ((val* (*)(val*))(var1->class->vft[COLOR_abstract_compiler__Frame__arguments]))(var1) /* arguments on <var1:nullable Frame>*/;
841 }
842 var3 = ((val* (*)(val*))(var2->class->vft[COLOR_abstract_collection__Collection__first]))(var2) /* first on <var2:Array[RuntimeVariable]>*/;
843 var_recv = var3;
844 var4 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
845 var5 = 1;
846 ((void (*)(val*, long))(var4->class->vft[COLOR_array__Array__with_capacity]))(var4, var5) /* with_capacity on <var4:Array[RuntimeVariable]>*/;
847 var_ = var4;
848 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
849 var_args = var_;
850 var6 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ASuperExpr__n_args]))(self) /* n_args on <self:ASuperExpr>*/;
851 var7 = ((val* (*)(val*))(var6->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var6) /* n_exprs on <var6:AExprs>*/;
852 var8 = ((val* (*)(val*))(var7->class->vft[COLOR_abstract_collection__Collection__iterator]))(var7) /* iterator on <var7:ANodes[AExpr]>*/;
853 for(;;) {
854 var9 = ((short int (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var8) /* is_ok on <var8:Iterator[nullable Object]>*/;
855 if(!var9) break;
856 var10 = ((val* (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__item]))(var8) /* item on <var8:Iterator[nullable Object]>*/;
857 var_a = var10;
858 var11 = NULL;
859 var12 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_a, var11) /* expr on <var_v:AbstractCompilerVisitor>*/;
860 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_args, var12) /* add on <var_args:Array[RuntimeVariable]>*/;
861 CONTINUE_label: (void)0;
862 ((void (*)(val*))(var8->class->vft[COLOR_abstract_collection__Iterator__next]))(var8) /* next on <var8:Iterator[nullable Object]>*/;
863 }
864 BREAK_label: (void)0;
865 var13 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASuperExpr__callsite]))(self) /* callsite on <self:ASuperExpr>*/;
866 var_callsite = var13;
867 var14 = NULL;
868 if (var_callsite == NULL) {
869 var15 = 0; /* is null */
870 } else {
871 var15 = 1; /* arg is null and recv is not */
872 }
873 if (var15){
874 var16 = ((long (*)(val*))(var_args->class->vft[COLOR_abstract_collection__Collection__length]))(var_args) /* length on <var_args:Array[RuntimeVariable]>*/;
875 var17 = 1;
876 { /* Inline kernel#Int#== (var16,var17) */
877 var20 = var16 == var17;
878 var18 = var20;
879 goto RET_LABEL19;
880 RET_LABEL19:(void)0;
881 }
882 if (var18){
883 var21 = NEW_range__Range(&type_range__Rangekernel__Int);
884 var22 = 0;
885 var23 = ((val* (*)(val*))(var_callsite->class->vft[COLOR_typing__CallSite__mproperty]))(var_callsite) /* mproperty on <var_callsite:nullable CallSite(CallSite)>*/;
886 var24 = ((val* (*)(val*))(var23->class->vft[COLOR_model__MProperty__intro]))(var23) /* intro on <var23:MMethod>*/;
887 var25 = ((val* (*)(val*))(var24->class->vft[COLOR_model__MMethodDef__msignature]))(var24) /* msignature on <var24:MPropDef(MMethodDef)>*/;
888 if (var25 == NULL) {
889 fprintf(stderr, "Runtime error: %s", "Receiver is null");
890 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2505);
891 show_backtrace(1);
892 } else {
893 var26 = ((long (*)(val*))(var25->class->vft[COLOR_model__MSignature__arity]))(var25) /* arity on <var25:nullable MSignature>*/;
894 }
895 var27 = BOX_kernel__Int(var22); /* autobox from Int to Discrete */
896 var28 = BOX_kernel__Int(var26); /* autobox from Int to Discrete */
897 ((void (*)(val*, val*, val*))(var21->class->vft[COLOR_range__Range__without_last]))(var21, var27, var28) /* without_last on <var21:Range[Int]>*/;
898 var29 = ((val* (*)(val*))(var21->class->vft[COLOR_abstract_collection__Collection__iterator]))(var21) /* iterator on <var21:Range[Int]>*/;
899 for(;;) {
900 var30 = ((short int (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var29) /* is_ok on <var29:Iterator[nullable Object]>*/;
901 if(!var30) break;
902 var31 = ((val* (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__item]))(var29) /* item on <var29:Iterator[nullable Object]>*/;
903 var32 = ((struct instance_kernel__Int*)var31)->value; /* autounbox from nullable Object to Int */;
904 var_i = var32;
905 var33 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
906 if (var33 == NULL) {
907 fprintf(stderr, "Runtime error: %s", "Receiver is null");
908 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2506);
909 show_backtrace(1);
910 } else {
911 var34 = ((val* (*)(val*))(var33->class->vft[COLOR_abstract_compiler__Frame__arguments]))(var33) /* arguments on <var33:nullable Frame>*/;
912 }
913 var35 = 1;
914 { /* Inline kernel#Int#+ (var_i,var35) */
915 var38 = var_i + var35;
916 var36 = var38;
917 goto RET_LABEL37;
918 RET_LABEL37:(void)0;
919 }
920 var39 = ((val* (*)(val*, long))(var34->class->vft[COLOR_abstract_collection__SequenceRead___91d_93d]))(var34, var36) /* [] on <var34:Array[RuntimeVariable]>*/;
921 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_args, var39) /* add on <var_args:Array[RuntimeVariable]>*/;
922 CONTINUE_label40: (void)0;
923 ((void (*)(val*))(var29->class->vft[COLOR_abstract_collection__Iterator__next]))(var29) /* next on <var29:Iterator[nullable Object]>*/;
924 }
925 BREAK_label40: (void)0;
926 } else {
927 }
928 var41 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
929 var_res = var41;
930 var = var_res;
931 goto RET_LABEL;
932 } else {
933 }
934 var42 = ((long (*)(val*))(var_args->class->vft[COLOR_abstract_collection__Collection__length]))(var_args) /* length on <var_args:Array[RuntimeVariable]>*/;
935 var43 = 1;
936 { /* Inline kernel#Int#== (var42,var43) */
937 var46 = var42 == var43;
938 var44 = var46;
939 goto RET_LABEL45;
940 RET_LABEL45:(void)0;
941 }
942 if (var44){
943 var47 = ((val* (*)(val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__frame]))(var_v) /* frame on <var_v:AbstractCompilerVisitor>*/;
944 if (var47 == NULL) {
945 fprintf(stderr, "Runtime error: %s", "Receiver is null");
946 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2515);
947 show_backtrace(1);
948 } else {
949 var48 = ((val* (*)(val*))(var47->class->vft[COLOR_abstract_compiler__Frame__arguments]))(var47) /* arguments on <var47:nullable Frame>*/;
950 }
951 var_args = var48;
952 } else {
953 }
954 var49 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ASuperExpr__mpropdef]))(self) /* mpropdef on <self:ASuperExpr>*/;
955 if (var49 == NULL) {
956 fprintf(stderr, "Runtime error: %s", "Cast failed");
957 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2519);
958 show_backtrace(1);
959 }
960 var50 = ((val* (*)(val*))(var_recv->class->vft[COLOR_abstract_compiler__RuntimeVariable__mtype]))(var_recv) /* mtype on <var_recv:RuntimeVariable>*/;
961 /* <var50:MType> isa MClassType */
962 cltype = type_model__MClassType.color;
963 idtype = type_model__MClassType.id;
964 if(cltype >= var50->type->table_size) {
965 var51 = 0;
966 } else {
967 var51 = var50->type->type_table[cltype] == idtype;
968 }
969 if (!var51) {
970 var_class_name = var50 == NULL ? "null" : var50->type->name;
971 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
972 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2519);
973 show_backtrace(1);
974 }
975 var52 = ((val* (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__supercall]))(var_v, var49, var50, var_args) /* supercall on <var_v:AbstractCompilerVisitor>*/;
976 var = var52;
977 goto RET_LABEL;
978 RET_LABEL:;
979 return var;
980 }
981 /* method abstract_compiler#ASuperExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
982 val* VIRTUAL_abstract_compiler__ASuperExpr__expr(val* self, val* p0) {
983 val* var /* : nullable RuntimeVariable */;
984 val* var1 /* : nullable RuntimeVariable */;
985 var1 = abstract_compiler__ASuperExpr__expr(self, p0);
986 var = var1;
987 RET_LABEL:;
988 return var;
989 }
990 /* method abstract_compiler#ANewExpr#expr for (self: ANewExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
991 val* abstract_compiler__ANewExpr__expr(val* self, val* p0) {
992 val* var /* : nullable RuntimeVariable */;
993 val* var_v /* var v: AbstractCompilerVisitor */;
994 val* var1 /* : nullable MType */;
995 short int var2 /* : Bool */;
996 int cltype;
997 int idtype;
998 const char* var_class_name;
999 val* var_mtype /* var mtype: MClassType */;
1000 val* var3 /* : String */;
1001 val* var_ctype /* var ctype: String */;
1002 static val* varonce;
1003 val* var4 /* : String */;
1004 char* var5 /* : NativeString */;
1005 long var6 /* : Int */;
1006 val* var7 /* : String */;
1007 short int var8 /* : Bool */;
1008 val* var9 /* : RuntimeVariable */;
1009 val* var_recv /* var recv: nullable Object */;
1010 static val* varonce10;
1011 val* var11 /* : String */;
1012 char* var12 /* : NativeString */;
1013 long var13 /* : Int */;
1014 val* var14 /* : String */;
1015 short int var15 /* : Bool */;
1016 static val* varonce16;
1017 val* var17 /* : String */;
1018 char* var18 /* : NativeString */;
1019 long var19 /* : Int */;
1020 val* var20 /* : String */;
1021 val* var21 /* : RuntimeVariable */;
1022 static val* varonce22;
1023 val* var23 /* : String */;
1024 char* var24 /* : NativeString */;
1025 long var25 /* : Int */;
1026 val* var26 /* : String */;
1027 val* var27 /* : Array[Object] */;
1028 long var28 /* : Int */;
1029 val* var29 /* : NativeArray[Object] */;
1030 val* var30 /* : String */;
1031 val* var31 /* : Array[RuntimeVariable] */;
1032 long var32 /* : Int */;
1033 val* var_ /* var : Array[RuntimeVariable] */;
1034 val* var_args /* var args: Array[RuntimeVariable] */;
1035 val* var33 /* : AExprs */;
1036 val* var34 /* : ANodes[AExpr] */;
1037 val* var35 /* : Iterator[nullable Object] */;
1038 short int var36 /* : Bool */;
1039 val* var37 /* : nullable Object */;
1040 val* var_a /* var a: AExpr */;
1041 val* var38 /* : null */;
1042 val* var39 /* : RuntimeVariable */;
1043 val* var40 /* : nullable CallSite */;
1044 val* var41 /* : nullable RuntimeVariable */;
1045 val* var_res2 /* var res2: nullable RuntimeVariable */;
1046 val* var42 /* : null */;
1047 short int var43 /* : Bool */;
1048 var_v = p0;
1049 var1 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AExpr__mtype]))(self) /* mtype on <self:ANewExpr>*/;
1050 /* <var1:nullable MType> isa MClassType */
1051 cltype = type_model__MClassType.color;
1052 idtype = type_model__MClassType.id;
1053 if(var1 == NULL) {
1054 var2 = 0;
1055 } else {
1056 if(cltype >= var1->type->table_size) {
1057 var2 = 0;
1058 } else {
1059 var2 = var1->type->type_table[cltype] == idtype;
1060 }
1061 }
1062 if (!var2) {
1063 var_class_name = var1 == NULL ? "null" : var1->type->name;
1064 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1065 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2526);
1066 show_backtrace(1);
1067 }
1068 var_mtype = var1;
1069 var3 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MClassType>*/;
1070 var_ctype = var3;
1071 if (varonce) {
1072 var4 = varonce;
1073 } else {
1074 var5 = "val*";
1075 var6 = 4;
1076 var7 = string__NativeString__to_s_with_length(var5, var6);
1077 var4 = var7;
1078 varonce = var4;
1079 }
1080 var8 = ((short int (*)(val*, val*))(var_ctype->class->vft[COLOR_kernel__Object___61d_61d]))(var_ctype, var4) /* == on <var_ctype:String>*/;
1081 if (var8){
1082 var9 = ((val* (*)(val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype) /* init_instance on <var_v:AbstractCompilerVisitor>*/;
1083 var_recv = var9;
1084 } else {
1085 if (varonce10) {
1086 var11 = varonce10;
1087 } else {
1088 var12 = "void*";
1089 var13 = 5;
1090 var14 = string__NativeString__to_s_with_length(var12, var13);
1091 var11 = var14;
1092 varonce10 = var11;
1093 }
1094 var15 = ((short int (*)(val*, val*))(var_ctype->class->vft[COLOR_kernel__Object___61d_61d]))(var_ctype, var11) /* == on <var_ctype:String>*/;
1095 if (var15){
1096 if (varonce16) {
1097 var17 = varonce16;
1098 } else {
1099 var18 = "NULL/*special!*/";
1100 var19 = 16;
1101 var20 = string__NativeString__to_s_with_length(var18, var19);
1102 var17 = var20;
1103 varonce16 = var17;
1104 }
1105 var21 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__new_expr]))(var_v, var17, var_mtype) /* new_expr on <var_v:AbstractCompilerVisitor>*/;
1106 var_recv = var21;
1107 } else {
1108 if (varonce22) {
1109 var23 = varonce22;
1110 } else {
1111 var24 = "cannot new ";
1112 var25 = 11;
1113 var26 = string__NativeString__to_s_with_length(var24, var25);
1114 var23 = var26;
1115 varonce22 = var23;
1116 }
1117 var27 = NEW_array__Array(&type_array__Arraykernel__Object);
1118 { /* var27 = array_instance Array[Object] */
1119 var28 = 2;
1120 var29 = NEW_array__NativeArray(var28, &type_array__NativeArraykernel__Object);
1121 ((struct instance_array__NativeArray*)var29)->values[0] = (val*) var23;
1122 ((struct instance_array__NativeArray*)var29)->values[1] = (val*) var_mtype;
1123 ((void (*)(val*, val*, long))(var27->class->vft[COLOR_array__Array__with_native]))(var27, var29, var28) /* with_native on <var27:Array[Object]>*/;
1124 }
1125 var30 = ((val* (*)(val*))(var27->class->vft[COLOR_string__Object__to_s]))(var27) /* to_s on <var27:Array[Object]>*/;
1126 ((void (*)(val*, val*))(self->class->vft[COLOR_parser_nodes__ANode__debug]))(self, var30) /* debug on <self:ANewExpr>*/;
1127 fprintf(stderr, "Runtime error: %s", "Aborted");
1128 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2535);
1129 show_backtrace(1);
1130 }
1131 }
1132 var31 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
1133 var32 = 1;
1134 ((void (*)(val*, long))(var31->class->vft[COLOR_array__Array__with_capacity]))(var31, var32) /* with_capacity on <var31:Array[RuntimeVariable]>*/;
1135 var_ = var31;
1136 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__Sequence__push]))(var_, var_recv) /* push on <var_:Array[RuntimeVariable]>*/;
1137 var_args = var_;
1138 var33 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__ANewExpr__n_args]))(self) /* n_args on <self:ANewExpr>*/;
1139 var34 = ((val* (*)(val*))(var33->class->vft[COLOR_parser_nodes__AExprs__n_exprs]))(var33) /* n_exprs on <var33:AExprs>*/;
1140 var35 = ((val* (*)(val*))(var34->class->vft[COLOR_abstract_collection__Collection__iterator]))(var34) /* iterator on <var34:ANodes[AExpr]>*/;
1141 for(;;) {
1142 var36 = ((short int (*)(val*))(var35->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var35) /* is_ok on <var35:Iterator[nullable Object]>*/;
1143 if(!var36) break;
1144 var37 = ((val* (*)(val*))(var35->class->vft[COLOR_abstract_collection__Iterator__item]))(var35) /* item on <var35:Iterator[nullable Object]>*/;
1145 var_a = var37;
1146 var38 = NULL;
1147 var39 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var_a, var38) /* expr on <var_v:AbstractCompilerVisitor>*/;
1148 ((void (*)(val*, val*))(var_args->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_args, var39) /* add on <var_args:Array[RuntimeVariable]>*/;
1149 CONTINUE_label: (void)0;
1150 ((void (*)(val*))(var35->class->vft[COLOR_abstract_collection__Iterator__next]))(var35) /* next on <var35:Iterator[nullable Object]>*/;
1151 }
1152 BREAK_label: (void)0;
1153 var40 = ((val* (*)(val*))(self->class->vft[COLOR_typing__ANewExpr__callsite]))(self) /* callsite on <self:ANewExpr>*/;
1154 if (var40 == NULL) {
1155 fprintf(stderr, "Runtime error: %s", "Cast failed");
1156 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2541);
1157 show_backtrace(1);
1158 }
1159 var41 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var40, var_args) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
1160 var_res2 = var41;
1161 var42 = NULL;
1162 if (var_res2 == NULL) {
1163 var43 = 0; /* is null */
1164 } else {
1165 var43 = 1; /* arg is null and recv is not */
1166 }
1167 if (var43){
1168 var = var_res2;
1169 goto RET_LABEL;
1170 } else {
1171 }
1172 var = var_recv;
1173 goto RET_LABEL;
1174 RET_LABEL:;
1175 return var;
1176 }
1177 /* method abstract_compiler#ANewExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
1178 val* VIRTUAL_abstract_compiler__ANewExpr__expr(val* self, val* p0) {
1179 val* var /* : nullable RuntimeVariable */;
1180 val* var1 /* : nullable RuntimeVariable */;
1181 var1 = abstract_compiler__ANewExpr__expr(self, p0);
1182 var = var1;
1183 RET_LABEL:;
1184 return var;
1185 }
1186 /* method abstract_compiler#AAttrExpr#expr for (self: AAttrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1187 val* abstract_compiler__AAttrExpr__expr(val* self, val* p0) {
1188 val* var /* : nullable RuntimeVariable */;
1189 val* var_v /* var v: AbstractCompilerVisitor */;
1190 val* var1 /* : AExpr */;
1191 val* var2 /* : null */;
1192 val* var3 /* : RuntimeVariable */;
1193 val* var_recv /* var recv: RuntimeVariable */;
1194 val* var4 /* : nullable MAttribute */;
1195 val* var_mproperty /* var mproperty: MAttribute */;
1196 val* var5 /* : RuntimeVariable */;
1197 var_v = p0;
1198 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrExpr>*/;
1199 var2 = NULL;
1200 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
1201 var_recv = var3;
1202 var4 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty]))(self) /* mproperty on <self:AAttrExpr>*/;
1203 if (var4 == NULL) {
1204 fprintf(stderr, "Runtime error: %s", "Cast failed");
1205 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2554);
1206 show_backtrace(1);
1207 }
1208 var_mproperty = var4;
1209 var5 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute]))(var_v, var_mproperty, var_recv) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
1210 var = var5;
1211 goto RET_LABEL;
1212 RET_LABEL:;
1213 return var;
1214 }
1215 /* method abstract_compiler#AAttrExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
1216 val* VIRTUAL_abstract_compiler__AAttrExpr__expr(val* self, val* p0) {
1217 val* var /* : nullable RuntimeVariable */;
1218 val* var1 /* : nullable RuntimeVariable */;
1219 var1 = abstract_compiler__AAttrExpr__expr(self, p0);
1220 var = var1;
1221 RET_LABEL:;
1222 return var;
1223 }
1224 /* method abstract_compiler#AAttrAssignExpr#stmt for (self: AAttrAssignExpr, AbstractCompilerVisitor) */
1225 void abstract_compiler__AAttrAssignExpr__stmt(val* self, val* p0) {
1226 val* var_v /* var v: AbstractCompilerVisitor */;
1227 val* var /* : AExpr */;
1228 val* var1 /* : null */;
1229 val* var2 /* : RuntimeVariable */;
1230 val* var_recv /* var recv: RuntimeVariable */;
1231 val* var3 /* : AExpr */;
1232 val* var4 /* : null */;
1233 val* var5 /* : RuntimeVariable */;
1234 val* var_i /* var i: RuntimeVariable */;
1235 val* var6 /* : nullable MAttribute */;
1236 val* var_mproperty /* var mproperty: MAttribute */;
1237 var_v = p0;
1238 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrAssignExpr>*/;
1239 var1 = NULL;
1240 var2 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var, var1) /* expr on <var_v:AbstractCompilerVisitor>*/;
1241 var_recv = var2;
1242 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAssignFormExpr__n_value]))(self) /* n_value on <self:AAttrAssignExpr>*/;
1243 var4 = NULL;
1244 var5 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var3, var4) /* expr on <var_v:AbstractCompilerVisitor>*/;
1245 var_i = var5;
1246 var6 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty]))(self) /* mproperty on <self:AAttrAssignExpr>*/;
1247 if (var6 == NULL) {
1248 fprintf(stderr, "Runtime error: %s", "Cast failed");
1249 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2564);
1250 show_backtrace(1);
1251 }
1252 var_mproperty = var6;
1253 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var_mproperty, var_recv, var_i) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
1254 RET_LABEL:;
1255 }
1256 /* method abstract_compiler#AAttrAssignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
1257 void VIRTUAL_abstract_compiler__AAttrAssignExpr__stmt(val* self, val* p0) {
1258 abstract_compiler__AAttrAssignExpr__stmt(self, p0);
1259 RET_LABEL:;
1260 }
1261 /* method abstract_compiler#AAttrReassignExpr#stmt for (self: AAttrReassignExpr, AbstractCompilerVisitor) */
1262 void abstract_compiler__AAttrReassignExpr__stmt(val* self, val* p0) {
1263 val* var_v /* var v: AbstractCompilerVisitor */;
1264 val* var /* : AExpr */;
1265 val* var1 /* : null */;
1266 val* var2 /* : RuntimeVariable */;
1267 val* var_recv /* var recv: RuntimeVariable */;
1268 val* var3 /* : AExpr */;
1269 val* var4 /* : null */;
1270 val* var5 /* : RuntimeVariable */;
1271 val* var_value /* var value: RuntimeVariable */;
1272 val* var6 /* : nullable MAttribute */;
1273 val* var_mproperty /* var mproperty: MAttribute */;
1274 val* var7 /* : RuntimeVariable */;
1275 val* var_attr /* var attr: RuntimeVariable */;
1276 val* var8 /* : nullable CallSite */;
1277 val* var9 /* : Array[RuntimeVariable] */;
1278 long var10 /* : Int */;
1279 val* var11 /* : NativeArray[RuntimeVariable] */;
1280 val* var12 /* : nullable RuntimeVariable */;
1281 val* var_res /* var res: nullable RuntimeVariable */;
1282 val* var13 /* : null */;
1283 short int var14 /* : Bool */;
1284 var_v = p0;
1285 var = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AAttrReassignExpr>*/;
1286 var1 = NULL;
1287 var2 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var, var1) /* expr on <var_v:AbstractCompilerVisitor>*/;
1288 var_recv = var2;
1289 var3 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AReassignFormExpr__n_value]))(self) /* n_value on <self:AAttrReassignExpr>*/;
1290 var4 = NULL;
1291 var5 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var3, var4) /* expr on <var_v:AbstractCompilerVisitor>*/;
1292 var_value = var5;
1293 var6 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty]))(self) /* mproperty on <self:AAttrReassignExpr>*/;
1294 if (var6 == NULL) {
1295 fprintf(stderr, "Runtime error: %s", "Cast failed");
1296 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2574);
1297 show_backtrace(1);
1298 }
1299 var_mproperty = var6;
1300 var7 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__read_attribute]))(var_v, var_mproperty, var_recv) /* read_attribute on <var_v:AbstractCompilerVisitor>*/;
1301 var_attr = var7;
1302 var8 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AReassignFormExpr__reassign_callsite]))(self) /* reassign_callsite on <self:AAttrReassignExpr>*/;
1303 if (var8 == NULL) {
1304 fprintf(stderr, "Runtime error: %s", "Cast failed");
1305 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2576);
1306 show_backtrace(1);
1307 }
1308 var9 = NEW_array__Array(&type_array__Arrayabstract_compiler__RuntimeVariable);
1309 { /* var9 = array_instance Array[RuntimeVariable] */
1310 var10 = 2;
1311 var11 = NEW_array__NativeArray(var10, &type_array__NativeArrayabstract_compiler__RuntimeVariable);
1312 ((struct instance_array__NativeArray*)var11)->values[0] = (val*) var_attr;
1313 ((struct instance_array__NativeArray*)var11)->values[1] = (val*) var_value;
1314 ((void (*)(val*, val*, long))(var9->class->vft[COLOR_array__Array__with_native]))(var9, var11, var10) /* with_native on <var9:Array[RuntimeVariable]>*/;
1315 }
1316 var12 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var8, var9) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
1317 var_res = var12;
1318 var13 = NULL;
1319 if (var_res == NULL) {
1320 var14 = 0; /* is null */
1321 } else {
1322 var14 = 1; /* arg is null and recv is not */
1323 }
1324 if (!var14) {
1325 fprintf(stderr, "Runtime error: %s", "Assert failed");
1326 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2577);
1327 show_backtrace(1);
1328 }
1329 ((void (*)(val*, val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__write_attribute]))(var_v, var_mproperty, var_recv, var_res) /* write_attribute on <var_v:AbstractCompilerVisitor>*/;
1330 RET_LABEL:;
1331 }
1332 /* method abstract_compiler#AAttrReassignExpr#stmt for (self: Object, AbstractCompilerVisitor) */
1333 void VIRTUAL_abstract_compiler__AAttrReassignExpr__stmt(val* self, val* p0) {
1334 abstract_compiler__AAttrReassignExpr__stmt(self, p0);
1335 RET_LABEL:;
1336 }
1337 /* method abstract_compiler#AIssetAttrExpr#expr for (self: AIssetAttrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1338 val* abstract_compiler__AIssetAttrExpr__expr(val* self, val* p0) {
1339 val* var /* : nullable RuntimeVariable */;
1340 val* var_v /* var v: AbstractCompilerVisitor */;
1341 val* var1 /* : AExpr */;
1342 val* var2 /* : null */;
1343 val* var3 /* : RuntimeVariable */;
1344 val* var_recv /* var recv: RuntimeVariable */;
1345 val* var4 /* : nullable MAttribute */;
1346 val* var_mproperty /* var mproperty: MAttribute */;
1347 val* var5 /* : RuntimeVariable */;
1348 var_v = p0;
1349 var1 = ((val* (*)(val*))(self->class->vft[COLOR_parser_nodes__AAttrFormExpr__n_expr]))(self) /* n_expr on <self:AIssetAttrExpr>*/;
1350 var2 = NULL;
1351 var3 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__expr]))(var_v, var1, var2) /* expr on <var_v:AbstractCompilerVisitor>*/;
1352 var_recv = var3;
1353 var4 = ((val* (*)(val*))(self->class->vft[COLOR_typing__AAttrFormExpr__mproperty]))(self) /* mproperty on <self:AIssetAttrExpr>*/;
1354 if (var4 == NULL) {
1355 fprintf(stderr, "Runtime error: %s", "Cast failed");
1356 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2586);
1357 show_backtrace(1);
1358 }
1359 var_mproperty = var4;
1360 var5 = ((val* (*)(val*, val*, val*))(var_v->class->vft[COLOR_abstract_compiler__AbstractCompilerVisitor__isset_attribute]))(var_v, var_mproperty, var_recv) /* isset_attribute on <var_v:AbstractCompilerVisitor>*/;
1361 var = var5;
1362 goto RET_LABEL;
1363 RET_LABEL:;
1364 return var;
1365 }
1366 /* method abstract_compiler#AIssetAttrExpr#expr for (self: Object, AbstractCompilerVisitor): nullable RuntimeVariable */
1367 val* VIRTUAL_abstract_compiler__AIssetAttrExpr__expr(val* self, val* p0) {
1368 val* var /* : nullable RuntimeVariable */;
1369 val* var1 /* : nullable RuntimeVariable */;
1370 var1 = abstract_compiler__AIssetAttrExpr__expr(self, p0);
1371 var = var1;
1372 RET_LABEL:;
1373 return var;
1374 }
1375 /* method abstract_compiler#ADebugTypeExpr#stmt for (self: ADebugTypeExpr, AbstractCompilerVisitor) */
1376 void abstract_compiler__ADebugTypeExpr__stmt(val* self, val* p0) {
1377 val* var_v /* var v: AbstractCompilerVisitor */;
1378 var_v = p0;
1379 RET_LABEL:;
1380 }
1381 /* method abstract_compiler#ADebugTypeExpr#stmt for (self: Object, AbstractCompilerVisitor) */
1382 void VIRTUAL_abstract_compiler__ADebugTypeExpr__stmt(val* self, val* p0) {
1383 abstract_compiler__ADebugTypeExpr__stmt(self, p0);
1384 RET_LABEL:;
1385 }
1386 /* method abstract_compiler#Array#- for (self: Array[nullable Object], Array[nullable Object]): Array[nullable Object] */
1387 val* abstract_compiler__Array___45d(val* self, val* p0) {
1388 val* var /* : Array[nullable Object] */;
1389 short int var1 /* : Bool */;
1390 int cltype;
1391 int idtype;
1392 const struct type* type_struct;
1393 const char* var_class_name;
1394 val* var_o /* var o: Array[nullable Object] */;
1395 val* var2 /* : Array[nullable Object] */;
1396 val* var_res /* var res: Array[nullable Object] */;
1397 val* var3 /* : Iterator[nullable Object] */;
1398 short int var4 /* : Bool */;
1399 val* var5 /* : nullable Object */;
1400 val* var_e /* var e: nullable Object */;
1401 short int var6 /* : Bool */;
1402 short int var7 /* : Bool */;
1403 /* Covariant cast for argument 0 (o) <p0:Array[nullable Object]> isa Array[Array#0] */
1404 /* <p0:Array[nullable Object]> isa Array[Array#0] */
1405 type_struct = self->type->resolution_table->types[COLOR_array__Arrayarray__Array_FT0];
1406 cltype = type_struct->color;
1407 idtype = type_struct->id;
1408 if(cltype >= p0->type->table_size) {
1409 var1 = 0;
1410 } else {
1411 var1 = p0->type->type_table[cltype] == idtype;
1412 }
1413 if (!var1) {
1414 var_class_name = p0 == NULL ? "null" : p0->type->name;
1415 fprintf(stderr, "Runtime error: Cast failed. Expected `%s`, got `%s`", "Array[Array#0]", var_class_name);
1416 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2601);
1417 show_backtrace(1);
1418 }
1419 var_o = p0;
1420 var2 = NEW_array__Array(self->type->resolution_table->types[COLOR_array__Arrayarray__Array_FT0]);
1421 ((void (*)(val*))(var2->class->vft[COLOR_array__Array__init]))(var2) /* init on <var2:Array[nullable Object]>*/;
1422 var_res = var2;
1423 var3 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_collection__Collection__iterator]))(self) /* iterator on <self:Array[nullable Object]>*/;
1424 for(;;) {
1425 var4 = ((short int (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var3) /* is_ok on <var3:Iterator[nullable Object]>*/;
1426 if(!var4) break;
1427 var5 = ((val* (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__item]))(var3) /* item on <var3:Iterator[nullable Object]>*/;
1428 var_e = var5;
1429 var6 = ((short int (*)(val*, val*))(var_o->class->vft[COLOR_abstract_collection__Collection__has]))(var_o, var_e) /* has on <var_o:Array[nullable Object]>*/;
1430 var7 = !var6;
1431 if (var7){
1432 ((void (*)(val*, val*))(var_res->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_res, var_e) /* add on <var_res:Array[nullable Object]>*/;
1433 } else {
1434 }
1435 CONTINUE_label: (void)0;
1436 ((void (*)(val*))(var3->class->vft[COLOR_abstract_collection__Iterator__next]))(var3) /* next on <var3:Iterator[nullable Object]>*/;
1437 }
1438 BREAK_label: (void)0;
1439 var = var_res;
1440 goto RET_LABEL;
1441 RET_LABEL:;
1442 return var;
1443 }
1444 /* method abstract_compiler#Array#- for (self: Object, Array[nullable Object]): Array[nullable Object] */
1445 val* VIRTUAL_abstract_compiler__Array___45d(val* self, val* p0) {
1446 val* var /* : Array[nullable Object] */;
1447 val* var1 /* : Array[nullable Object] */;
1448 var1 = abstract_compiler__Array___45d(self, p0);
1449 var = var1;
1450 RET_LABEL:;
1451 return var;
1452 }
1453 /* method abstract_compiler#MModule#properties for (self: MModule, MClass): Set[MProperty] */
1454 val* abstract_compiler__MModule__properties(val* self, val* p0) {
1455 val* var /* : Set[MProperty] */;
1456 val* var_mclass /* var mclass: MClass */;
1457 val* var1 /* : Map[MClass, Set[MProperty]] */;
1458 short int var2 /* : Bool */;
1459 short int var3 /* : Bool */;
1460 val* var4 /* : HashSet[MProperty] */;
1461 val* var_properties /* var properties: HashSet[MProperty] */;
1462 val* var5 /* : Array[MClass] */;
1463 val* var_parents /* var parents: Array[MClass] */;
1464 val* var6 /* : POSet[MClass] */;
1465 short int var7 /* : Bool */;
1466 val* var8 /* : POSetElement[MClass] */;
1467 val* var9 /* : Collection[Object] */;
1468 val* var10 /* : Iterator[nullable Object] */;
1469 short int var11 /* : Bool */;
1470 val* var12 /* : nullable Object */;
1471 val* var_parent /* var parent: MClass */;
1472 val* var13 /* : Set[MProperty] */;
1473 val* var14 /* : Array[MClassDef] */;
1474 val* var15 /* : Iterator[nullable Object] */;
1475 short int var16 /* : Bool */;
1476 val* var17 /* : nullable Object */;
1477 val* var_mclassdef /* var mclassdef: MClassDef */;
1478 val* var18 /* : Array[MProperty] */;
1479 val* var19 /* : Iterator[nullable Object] */;
1480 short int var20 /* : Bool */;
1481 val* var21 /* : nullable Object */;
1482 val* var_mprop /* var mprop: MProperty */;
1483 val* var24 /* : Map[MClass, Set[MProperty]] */;
1484 val* var25 /* : Map[MClass, Set[MProperty]] */;
1485 val* var26 /* : nullable Object */;
1486 var_mclass = p0;
1487 var1 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MModule__properties_cache]))(self) /* properties_cache on <self:MModule>*/;
1488 var2 = ((short int (*)(val*, val*))(var1->class->vft[COLOR_abstract_collection__MapRead__has_key]))(var1, var_mclass) /* has_key on <var1:Map[MClass, Set[MProperty]]>*/;
1489 var3 = !var2;
1490 if (var3){
1491 var4 = NEW_hash_collection__HashSet(&type_hash_collection__HashSetmodel__MProperty);
1492 ((void (*)(val*))(var4->class->vft[COLOR_hash_collection__HashSet__init]))(var4) /* init on <var4:HashSet[MProperty]>*/;
1493 var_properties = var4;
1494 var5 = NEW_array__Array(&type_array__Arraymodel__MClass);
1495 ((void (*)(val*))(var5->class->vft[COLOR_array__Array__init]))(var5) /* init on <var5:Array[MClass]>*/;
1496 var_parents = var5;
1497 var6 = ((val* (*)(val*))(self->class->vft[COLOR_model__MModule__flatten_mclass_hierarchy]))(self) /* flatten_mclass_hierarchy on <self:MModule>*/;
1498 var7 = ((short int (*)(val*, val*))(var6->class->vft[COLOR_abstract_collection__Collection__has]))(var6, var_mclass) /* has on <var6:POSet[MClass]>*/;
1499 if (var7){
1500 var8 = ((val* (*)(val*, val*))(var_mclass->class->vft[COLOR_model__MClass__in_hierarchy]))(var_mclass, self) /* in_hierarchy on <var_mclass:MClass>*/;
1501 var9 = ((val* (*)(val*))(var8->class->vft[COLOR_poset__POSetElement__direct_greaters]))(var8) /* direct_greaters on <var8:POSetElement[MClass]>*/;
1502 ((void (*)(val*, val*))(var_parents->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_parents, var9) /* add_all on <var_parents:Array[MClass]>*/;
1503 } else {
1504 }
1505 var10 = ((val* (*)(val*))(var_parents->class->vft[COLOR_abstract_collection__Collection__iterator]))(var_parents) /* iterator on <var_parents:Array[MClass]>*/;
1506 for(;;) {
1507 var11 = ((short int (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var10) /* is_ok on <var10:Iterator[nullable Object]>*/;
1508 if(!var11) break;
1509 var12 = ((val* (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__item]))(var10) /* item on <var10:Iterator[nullable Object]>*/;
1510 var_parent = var12;
1511 var13 = ((val* (*)(val*, val*))(self->class->vft[COLOR_abstract_compiler__MModule__properties]))(self, var_parent) /* properties on <self:MModule>*/;
1512 ((void (*)(val*, val*))(var_properties->class->vft[COLOR_abstract_collection__SimpleCollection__add_all]))(var_properties, var13) /* add_all on <var_properties:HashSet[MProperty]>*/;
1513 CONTINUE_label: (void)0;
1514 ((void (*)(val*))(var10->class->vft[COLOR_abstract_collection__Iterator__next]))(var10) /* next on <var10:Iterator[nullable Object]>*/;
1515 }
1516 BREAK_label: (void)0;
1517 var14 = ((val* (*)(val*))(var_mclass->class->vft[COLOR_model__MClass__mclassdefs]))(var_mclass) /* mclassdefs on <var_mclass:MClass>*/;
1518 var15 = ((val* (*)(val*))(var14->class->vft[COLOR_abstract_collection__Collection__iterator]))(var14) /* iterator on <var14:Array[MClassDef]>*/;
1519 for(;;) {
1520 var16 = ((short int (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var15) /* is_ok on <var15:Iterator[nullable Object]>*/;
1521 if(!var16) break;
1522 var17 = ((val* (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__item]))(var15) /* item on <var15:Iterator[nullable Object]>*/;
1523 var_mclassdef = var17;
1524 var18 = ((val* (*)(val*))(var_mclassdef->class->vft[COLOR_model__MClassDef__intro_mproperties]))(var_mclassdef) /* intro_mproperties on <var_mclassdef:MClassDef>*/;
1525 var19 = ((val* (*)(val*))(var18->class->vft[COLOR_abstract_collection__Collection__iterator]))(var18) /* iterator on <var18:Array[MProperty]>*/;
1526 for(;;) {
1527 var20 = ((short int (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var19) /* is_ok on <var19:Iterator[nullable Object]>*/;
1528 if(!var20) break;
1529 var21 = ((val* (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__item]))(var19) /* item on <var19:Iterator[nullable Object]>*/;
1530 var_mprop = var21;
1531 ((void (*)(val*, val*))(var_properties->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_properties, var_mprop) /* add on <var_properties:HashSet[MProperty]>*/;
1532 CONTINUE_label22: (void)0;
1533 ((void (*)(val*))(var19->class->vft[COLOR_abstract_collection__Iterator__next]))(var19) /* next on <var19:Iterator[nullable Object]>*/;
1534 }
1535 BREAK_label22: (void)0;
1536 CONTINUE_label23: (void)0;
1537 ((void (*)(val*))(var15->class->vft[COLOR_abstract_collection__Iterator__next]))(var15) /* next on <var15:Iterator[nullable Object]>*/;
1538 }
1539 BREAK_label23: (void)0;
1540 var24 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MModule__properties_cache]))(self) /* properties_cache on <self:MModule>*/;
1541 ((void (*)(val*, val*, val*))(var24->class->vft[COLOR_abstract_collection__Map___91d_93d_61d]))(var24, var_mclass, var_properties) /* []= on <var24:Map[MClass, Set[MProperty]]>*/;
1542 } else {
1543 }
1544 var25 = ((val* (*)(val*))(self->class->vft[COLOR_abstract_compiler__MModule__properties_cache]))(self) /* properties_cache on <self:MModule>*/;
1545 var26 = ((val* (*)(val*, val*))(var25->class->vft[COLOR_abstract_collection__MapRead___91d_93d]))(var25, var_mclass) /* [] on <var25:Map[MClass, Set[MProperty]]>*/;
1546 var = var26;
1547 goto RET_LABEL;
1548 RET_LABEL:;
1549 return var;
1550 }
1551 /* method abstract_compiler#MModule#properties for (self: Object, MClass): Set[MProperty] */
1552 val* VIRTUAL_abstract_compiler__MModule__properties(val* self, val* p0) {
1553 val* var /* : Set[MProperty] */;
1554 val* var1 /* : Set[MProperty] */;
1555 var1 = abstract_compiler__MModule__properties(self, p0);
1556 var = var1;
1557 RET_LABEL:;
1558 return var;
1559 }
1560 /* method abstract_compiler#MModule#properties_cache for (self: MModule): Map[MClass, Set[MProperty]] */
1561 val* abstract_compiler__MModule__properties_cache(val* self) {
1562 val* var /* : Map[MClass, Set[MProperty]] */;
1563 val* var1 /* : Map[MClass, Set[MProperty]] */;
1564 var1 = self->attrs[COLOR_abstract_compiler__MModule___64dproperties_cache].val; /* @properties_cache on <self:MModule> */
1565 if (var1 == NULL) {
1566 fprintf(stderr, "Runtime error: %s", "Uninitialized attribute @properties_cache");
1567 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2630);
1568 show_backtrace(1);
1569 }
1570 var = var1;
1571 RET_LABEL:;
1572 return var;
1573 }
1574 /* method abstract_compiler#MModule#properties_cache for (self: Object): Map[MClass, Set[MProperty]] */
1575 val* VIRTUAL_abstract_compiler__MModule__properties_cache(val* self) {
1576 val* var /* : Map[MClass, Set[MProperty]] */;
1577 val* var1 /* : Map[MClass, Set[MProperty]] */;
1578 var1 = abstract_compiler__MModule__properties_cache(self);
1579 var = var1;
1580 RET_LABEL:;
1581 return var;
1582 }
1583 /* method abstract_compiler#MModule#properties_cache= for (self: MModule, Map[MClass, Set[MProperty]]) */
1584 void abstract_compiler__MModule__properties_cache_61d(val* self, val* p0) {
1585 self->attrs[COLOR_abstract_compiler__MModule___64dproperties_cache].val = p0; /* @properties_cache on <self:MModule> */
1586 RET_LABEL:;
1587 }
1588 /* method abstract_compiler#MModule#properties_cache= for (self: Object, Map[MClass, Set[MProperty]]) */
1589 void VIRTUAL_abstract_compiler__MModule__properties_cache_61d(val* self, val* p0) {
1590 abstract_compiler__MModule__properties_cache_61d(self, p0);
1591 RET_LABEL:;
1592 }
1593 /* method abstract_compiler#AModule#uses_legacy_ni for (self: AModule): Bool */
1594 short int abstract_compiler__AModule__uses_legacy_ni(val* self) {
1595 short int var /* : Bool */;
1596 const char* var_class_name;
1597 var_class_name = self == NULL ? "null" : self->type->name;
1598 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "uses_legacy_ni", var_class_name);
1599 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2634);
1600 show_backtrace(1);
1601 RET_LABEL:;
1602 return var;
1603 }
1604 /* method abstract_compiler#AModule#uses_legacy_ni for (self: Object): Bool */
1605 short int VIRTUAL_abstract_compiler__AModule__uses_legacy_ni(val* self) {
1606 short int var /* : Bool */;
1607 short int var1 /* : Bool */;
1608 var1 = abstract_compiler__AModule__uses_legacy_ni(self);
1609 var = var1;
1610 RET_LABEL:;
1611 return var;
1612 }
1613 /* method abstract_compiler#AModule#finalize_ffi for (self: AModule, AbstractCompilerVisitor, ModelBuilder) */
1614 void abstract_compiler__AModule__finalize_ffi(val* self, val* p0, val* p1) {
1615 const char* var_class_name;
1616 var_class_name = self == NULL ? "null" : self->type->name;
1617 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "finalize_ffi", var_class_name);
1618 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2637);
1619 show_backtrace(1);
1620 RET_LABEL:;
1621 }
1622 /* method abstract_compiler#AModule#finalize_ffi for (self: Object, AbstractCompilerVisitor, ModelBuilder) */
1623 void VIRTUAL_abstract_compiler__AModule__finalize_ffi(val* self, val* p0, val* p1) {
1624 abstract_compiler__AModule__finalize_ffi(self, p0, p1);
1625 RET_LABEL:;
1626 }
1627 /* method abstract_compiler#AModule#finalize_nitni for (self: AModule, AbstractCompilerVisitor) */
1628 void abstract_compiler__AModule__finalize_nitni(val* self, val* p0) {
1629 const char* var_class_name;
1630 var_class_name = self == NULL ? "null" : self->type->name;
1631 fprintf(stderr, "Runtime error: Abstract method `%s` called on `%s`", "finalize_nitni", var_class_name);
1632 fprintf(stderr, " (%s:%d)\n", "src/abstract_compiler.nit", 2640);
1633 show_backtrace(1);
1634 RET_LABEL:;
1635 }
1636 /* method abstract_compiler#AModule#finalize_nitni for (self: Object, AbstractCompilerVisitor) */
1637 void VIRTUAL_abstract_compiler__AModule__finalize_nitni(val* self, val* p0) {
1638 abstract_compiler__AModule__finalize_nitni(self, p0);
1639 RET_LABEL:;
1640 }