misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__abstract_compiler.sep.3.c
1 #include "nit__abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AbstractCompilerVisitor#string_instance for (self: AbstractCompilerVisitor, String): RuntimeVariable */
3 val* nit___nit__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 /* : FlatString */;
11 val* var5 /* : MClass */;
12 val* var6 /* : MClassType */;
13 val* var8 /* : MClassType */;
14 val* var_mtype /* var mtype: MClassType */;
15 static val* varonce9;
16 val* var10 /* : String */;
17 char* var11 /* : NativeString */;
18 long var12 /* : Int */;
19 val* var13 /* : FlatString */;
20 val* var14 /* : String */;
21 val* var_name /* var name: String */;
22 static val* varonce15;
23 val* var16 /* : String */;
24 char* var17 /* : NativeString */;
25 long var18 /* : Int */;
26 val* var19 /* : FlatString */;
27 val* var20 /* : String */;
28 static val* varonce21;
29 val* var22 /* : String */;
30 char* var23 /* : NativeString */;
31 long var24 /* : Int */;
32 val* var25 /* : FlatString */;
33 static val* varonce26;
34 val* var27 /* : String */;
35 char* var28 /* : NativeString */;
36 long var29 /* : Int */;
37 val* var30 /* : FlatString */;
38 val* var31 /* : Array[Object] */;
39 long var32 /* : Int */;
40 val* var33 /* : NativeArray[Object] */;
41 val* var34 /* : String */;
42 val* var35 /* : RuntimeVariable */;
43 val* var_res /* var res: RuntimeVariable */;
44 static val* varonce36;
45 val* var37 /* : String */;
46 char* var38 /* : NativeString */;
47 long var39 /* : Int */;
48 val* var40 /* : FlatString */;
49 static val* varonce41;
50 val* var42 /* : String */;
51 char* var43 /* : NativeString */;
52 long var44 /* : Int */;
53 val* var45 /* : FlatString */;
54 val* var46 /* : Array[Object] */;
55 long var47 /* : Int */;
56 val* var48 /* : NativeArray[Object] */;
57 val* var49 /* : String */;
58 static val* varonce50;
59 val* var51 /* : String */;
60 char* var52 /* : NativeString */;
61 long var53 /* : Int */;
62 val* var54 /* : FlatString */;
63 static val* varonce55;
64 val* var56 /* : String */;
65 char* var57 /* : NativeString */;
66 long var58 /* : Int */;
67 val* var59 /* : FlatString */;
68 val* var60 /* : Array[Object] */;
69 long var61 /* : Int */;
70 val* var62 /* : NativeArray[Object] */;
71 val* var63 /* : String */;
72 static val* varonce64;
73 val* var65 /* : String */;
74 char* var66 /* : NativeString */;
75 long var67 /* : Int */;
76 val* var68 /* : FlatString */;
77 static val* varonce69;
78 val* var70 /* : String */;
79 char* var71 /* : NativeString */;
80 long var72 /* : Int */;
81 val* var73 /* : FlatString */;
82 val* var74 /* : MClass */;
83 val* var75 /* : MClassType */;
84 val* var77 /* : MClassType */;
85 val* var_native_mtype /* var native_mtype: MClassType */;
86 val* var78 /* : RuntimeVariable */;
87 val* var_nat /* var nat: RuntimeVariable */;
88 static val* varonce79;
89 val* var80 /* : String */;
90 char* var81 /* : NativeString */;
91 long var82 /* : Int */;
92 val* var83 /* : FlatString */;
93 val* var84 /* : String */;
94 static val* varonce85;
95 val* var86 /* : String */;
96 char* var87 /* : NativeString */;
97 long var88 /* : Int */;
98 val* var89 /* : FlatString */;
99 val* var90 /* : Array[Object] */;
100 long var91 /* : Int */;
101 val* var92 /* : NativeArray[Object] */;
102 val* var93 /* : String */;
103 long var94 /* : Int */;
104 val* var95 /* : RuntimeVariable */;
105 val* var_length /* var length: RuntimeVariable */;
106 static val* varonce96;
107 val* var97 /* : String */;
108 char* var98 /* : NativeString */;
109 long var99 /* : Int */;
110 val* var100 /* : FlatString */;
111 static val* varonce101;
112 val* var102 /* : String */;
113 char* var103 /* : NativeString */;
114 long var104 /* : Int */;
115 val* var105 /* : FlatString */;
116 val* var106 /* : MMethod */;
117 val* var107 /* : Array[RuntimeVariable] */;
118 long var108 /* : Int */;
119 val* var_ /* var : Array[RuntimeVariable] */;
120 val* var109 /* : nullable RuntimeVariable */;
121 static val* varonce110;
122 val* var111 /* : String */;
123 char* var112 /* : NativeString */;
124 long var113 /* : Int */;
125 val* var114 /* : FlatString */;
126 val* var115 /* : Array[Object] */;
127 long var116 /* : Int */;
128 val* var117 /* : NativeArray[Object] */;
129 val* var118 /* : String */;
130 static val* varonce119;
131 val* var120 /* : String */;
132 char* var121 /* : NativeString */;
133 long var122 /* : Int */;
134 val* var123 /* : FlatString */;
135 static val* varonce124;
136 val* var125 /* : String */;
137 char* var126 /* : NativeString */;
138 long var127 /* : Int */;
139 val* var128 /* : FlatString */;
140 val* var129 /* : Array[Object] */;
141 long var130 /* : Int */;
142 val* var131 /* : NativeArray[Object] */;
143 val* var132 /* : String */;
144 static val* varonce133;
145 val* var134 /* : String */;
146 char* var135 /* : NativeString */;
147 long var136 /* : Int */;
148 val* var137 /* : FlatString */;
149 var_string = p0;
150 if (varonce) {
151 var1 = varonce;
152 } else {
153 var2 = "String";
154 var3 = 6;
155 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
156 var1 = var4;
157 varonce = var1;
158 }
159 {
160 var5 = nit___nit__AbstractCompilerVisitor___get_class(self, var1);
161 }
162 {
163 { /* Inline model#MClass#mclass_type (var5) on <var5:MClass> */
164 var8 = var5->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on <var5:MClass> */
165 if (unlikely(var8 == NULL)) {
166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
167 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438);
168 show_backtrace(1);
169 }
170 var6 = var8;
171 RET_LABEL7:(void)0;
172 }
173 }
174 var_mtype = var6;
175 if (varonce9) {
176 var10 = varonce9;
177 } else {
178 var11 = "varonce";
179 var12 = 7;
180 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
181 var10 = var13;
182 varonce9 = var10;
183 }
184 {
185 var14 = nit___nit__AbstractCompilerVisitor___get_name(self, var10);
186 }
187 var_name = var14;
188 if (varonce15) {
189 var16 = varonce15;
190 } else {
191 var17 = "static ";
192 var18 = 7;
193 var19 = standard___standard__NativeString___to_s_with_length(var17, var18);
194 var16 = var19;
195 varonce15 = var16;
196 }
197 {
198 var20 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype);
199 }
200 if (varonce21) {
201 var22 = varonce21;
202 } else {
203 var23 = " ";
204 var24 = 1;
205 var25 = standard___standard__NativeString___to_s_with_length(var23, var24);
206 var22 = var25;
207 varonce21 = var22;
208 }
209 if (varonce26) {
210 var27 = varonce26;
211 } else {
212 var28 = ";";
213 var29 = 1;
214 var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
215 var27 = var30;
216 varonce26 = var27;
217 }
218 var31 = NEW_standard__Array(&type_standard__Array__standard__Object);
219 { /* var31 = array_instance Array[Object] */
220 var32 = 5;
221 var33 = NEW_standard__NativeArray(var32, &type_standard__NativeArray__standard__Object);
222 ((struct instance_standard__NativeArray*)var33)->values[0] = (val*) var16;
223 ((struct instance_standard__NativeArray*)var33)->values[1] = (val*) var20;
224 ((struct instance_standard__NativeArray*)var33)->values[2] = (val*) var22;
225 ((struct instance_standard__NativeArray*)var33)->values[3] = (val*) var_name;
226 ((struct instance_standard__NativeArray*)var33)->values[4] = (val*) var27;
227 {
228 ((void (*)(val* self, val* p0, long p1))(var31->class->vft[COLOR_standard__array__Array__with_native]))(var31, var33, var32) /* with_native on <var31:Array[Object]>*/;
229 }
230 }
231 {
232 var34 = ((val* (*)(val* self))(var31->class->vft[COLOR_standard__string__Object__to_s]))(var31) /* to_s on <var31:Array[Object]>*/;
233 }
234 {
235 nit___nit__AbstractCompilerVisitor___add_decl(self, var34); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:AbstractCompilerVisitor>*/
236 }
237 {
238 var35 = nit___nit__AbstractCompilerVisitor___new_var(self, var_mtype);
239 }
240 var_res = var35;
241 if (varonce36) {
242 var37 = varonce36;
243 } else {
244 var38 = "if (";
245 var39 = 4;
246 var40 = standard___standard__NativeString___to_s_with_length(var38, var39);
247 var37 = var40;
248 varonce36 = var37;
249 }
250 if (varonce41) {
251 var42 = varonce41;
252 } else {
253 var43 = ") {";
254 var44 = 3;
255 var45 = standard___standard__NativeString___to_s_with_length(var43, var44);
256 var42 = var45;
257 varonce41 = var42;
258 }
259 var46 = NEW_standard__Array(&type_standard__Array__standard__Object);
260 { /* var46 = array_instance Array[Object] */
261 var47 = 3;
262 var48 = NEW_standard__NativeArray(var47, &type_standard__NativeArray__standard__Object);
263 ((struct instance_standard__NativeArray*)var48)->values[0] = (val*) var37;
264 ((struct instance_standard__NativeArray*)var48)->values[1] = (val*) var_name;
265 ((struct instance_standard__NativeArray*)var48)->values[2] = (val*) var42;
266 {
267 ((void (*)(val* self, val* p0, long p1))(var46->class->vft[COLOR_standard__array__Array__with_native]))(var46, var48, var47) /* with_native on <var46:Array[Object]>*/;
268 }
269 }
270 {
271 var49 = ((val* (*)(val* self))(var46->class->vft[COLOR_standard__string__Object__to_s]))(var46) /* to_s on <var46:Array[Object]>*/;
272 }
273 {
274 nit___nit__AbstractCompilerVisitor___add(self, var49); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
275 }
276 if (varonce50) {
277 var51 = varonce50;
278 } else {
279 var52 = " = ";
280 var53 = 3;
281 var54 = standard___standard__NativeString___to_s_with_length(var52, var53);
282 var51 = var54;
283 varonce50 = var51;
284 }
285 if (varonce55) {
286 var56 = varonce55;
287 } else {
288 var57 = ";";
289 var58 = 1;
290 var59 = standard___standard__NativeString___to_s_with_length(var57, var58);
291 var56 = var59;
292 varonce55 = var56;
293 }
294 var60 = NEW_standard__Array(&type_standard__Array__standard__Object);
295 { /* var60 = array_instance Array[Object] */
296 var61 = 4;
297 var62 = NEW_standard__NativeArray(var61, &type_standard__NativeArray__standard__Object);
298 ((struct instance_standard__NativeArray*)var62)->values[0] = (val*) var_res;
299 ((struct instance_standard__NativeArray*)var62)->values[1] = (val*) var51;
300 ((struct instance_standard__NativeArray*)var62)->values[2] = (val*) var_name;
301 ((struct instance_standard__NativeArray*)var62)->values[3] = (val*) var56;
302 {
303 ((void (*)(val* self, val* p0, long p1))(var60->class->vft[COLOR_standard__array__Array__with_native]))(var60, var62, var61) /* with_native on <var60:Array[Object]>*/;
304 }
305 }
306 {
307 var63 = ((val* (*)(val* self))(var60->class->vft[COLOR_standard__string__Object__to_s]))(var60) /* to_s on <var60:Array[Object]>*/;
308 }
309 {
310 nit___nit__AbstractCompilerVisitor___add(self, var63); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
311 }
312 if (varonce64) {
313 var65 = varonce64;
314 } else {
315 var66 = "} else {";
316 var67 = 8;
317 var68 = standard___standard__NativeString___to_s_with_length(var66, var67);
318 var65 = var68;
319 varonce64 = var65;
320 }
321 {
322 nit___nit__AbstractCompilerVisitor___add(self, var65); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
323 }
324 if (varonce69) {
325 var70 = varonce69;
326 } else {
327 var71 = "NativeString";
328 var72 = 12;
329 var73 = standard___standard__NativeString___to_s_with_length(var71, var72);
330 var70 = var73;
331 varonce69 = var70;
332 }
333 {
334 var74 = nit___nit__AbstractCompilerVisitor___get_class(self, var70);
335 }
336 {
337 { /* Inline model#MClass#mclass_type (var74) on <var74:MClass> */
338 var77 = var74->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on <var74:MClass> */
339 if (unlikely(var77 == NULL)) {
340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
341 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438);
342 show_backtrace(1);
343 }
344 var75 = var77;
345 RET_LABEL76:(void)0;
346 }
347 }
348 var_native_mtype = var75;
349 {
350 var78 = nit___nit__AbstractCompilerVisitor___new_var(self, var_native_mtype);
351 }
352 var_nat = var78;
353 if (varonce79) {
354 var80 = varonce79;
355 } else {
356 var81 = " = \"";
357 var82 = 4;
358 var83 = standard___standard__NativeString___to_s_with_length(var81, var82);
359 var80 = var83;
360 varonce79 = var80;
361 }
362 {
363 var84 = standard___standard__Text___escape_to_c(var_string);
364 }
365 if (varonce85) {
366 var86 = varonce85;
367 } else {
368 var87 = "\";";
369 var88 = 2;
370 var89 = standard___standard__NativeString___to_s_with_length(var87, var88);
371 var86 = var89;
372 varonce85 = var86;
373 }
374 var90 = NEW_standard__Array(&type_standard__Array__standard__Object);
375 { /* var90 = array_instance Array[Object] */
376 var91 = 4;
377 var92 = NEW_standard__NativeArray(var91, &type_standard__NativeArray__standard__Object);
378 ((struct instance_standard__NativeArray*)var92)->values[0] = (val*) var_nat;
379 ((struct instance_standard__NativeArray*)var92)->values[1] = (val*) var80;
380 ((struct instance_standard__NativeArray*)var92)->values[2] = (val*) var84;
381 ((struct instance_standard__NativeArray*)var92)->values[3] = (val*) var86;
382 {
383 ((void (*)(val* self, val* p0, long p1))(var90->class->vft[COLOR_standard__array__Array__with_native]))(var90, var92, var91) /* with_native on <var90:Array[Object]>*/;
384 }
385 }
386 {
387 var93 = ((val* (*)(val* self))(var90->class->vft[COLOR_standard__string__Object__to_s]))(var90) /* to_s on <var90:Array[Object]>*/;
388 }
389 {
390 nit___nit__AbstractCompilerVisitor___add(self, var93); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
391 }
392 {
393 var94 = ((long (*)(val* self))(var_string->class->vft[COLOR_standard__string__Text__length]))(var_string) /* length on <var_string:String>*/;
394 }
395 {
396 var95 = nit___nit__AbstractCompilerVisitor___int_instance(self, var94);
397 }
398 var_length = var95;
399 if (varonce96) {
400 var97 = varonce96;
401 } else {
402 var98 = " = ";
403 var99 = 3;
404 var100 = standard___standard__NativeString___to_s_with_length(var98, var99);
405 var97 = var100;
406 varonce96 = var97;
407 }
408 if (varonce101) {
409 var102 = varonce101;
410 } else {
411 var103 = "to_s_with_length";
412 var104 = 16;
413 var105 = standard___standard__NativeString___to_s_with_length(var103, var104);
414 var102 = var105;
415 varonce101 = var102;
416 }
417 {
418 var106 = nit___nit__AbstractCompilerVisitor___get_property(self, var102, var_native_mtype);
419 }
420 var107 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
421 var108 = 2;
422 {
423 standard___standard__Array___with_capacity(var107, var108); /* Direct call array#Array#with_capacity on <var107:Array[RuntimeVariable]>*/
424 }
425 var_ = var107;
426 {
427 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_nat); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
428 }
429 {
430 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_length); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
431 }
432 {
433 var109 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(self, var106, var_);
434 }
435 if (unlikely(var109 == NULL)) {
436 PRINT_ERROR("Runtime error: %s", "Cast failed");
437 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1453);
438 show_backtrace(1);
439 }
440 if (varonce110) {
441 var111 = varonce110;
442 } else {
443 var112 = ";";
444 var113 = 1;
445 var114 = standard___standard__NativeString___to_s_with_length(var112, var113);
446 var111 = var114;
447 varonce110 = var111;
448 }
449 var115 = NEW_standard__Array(&type_standard__Array__standard__Object);
450 { /* var115 = array_instance Array[Object] */
451 var116 = 4;
452 var117 = NEW_standard__NativeArray(var116, &type_standard__NativeArray__standard__Object);
453 ((struct instance_standard__NativeArray*)var117)->values[0] = (val*) var_res;
454 ((struct instance_standard__NativeArray*)var117)->values[1] = (val*) var97;
455 ((struct instance_standard__NativeArray*)var117)->values[2] = (val*) var109;
456 ((struct instance_standard__NativeArray*)var117)->values[3] = (val*) var111;
457 {
458 ((void (*)(val* self, val* p0, long p1))(var115->class->vft[COLOR_standard__array__Array__with_native]))(var115, var117, var116) /* with_native on <var115:Array[Object]>*/;
459 }
460 }
461 {
462 var118 = ((val* (*)(val* self))(var115->class->vft[COLOR_standard__string__Object__to_s]))(var115) /* to_s on <var115:Array[Object]>*/;
463 }
464 {
465 nit___nit__AbstractCompilerVisitor___add(self, var118); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
466 }
467 if (varonce119) {
468 var120 = varonce119;
469 } else {
470 var121 = " = ";
471 var122 = 3;
472 var123 = standard___standard__NativeString___to_s_with_length(var121, var122);
473 var120 = var123;
474 varonce119 = var120;
475 }
476 if (varonce124) {
477 var125 = varonce124;
478 } else {
479 var126 = ";";
480 var127 = 1;
481 var128 = standard___standard__NativeString___to_s_with_length(var126, var127);
482 var125 = var128;
483 varonce124 = var125;
484 }
485 var129 = NEW_standard__Array(&type_standard__Array__standard__Object);
486 { /* var129 = array_instance Array[Object] */
487 var130 = 4;
488 var131 = NEW_standard__NativeArray(var130, &type_standard__NativeArray__standard__Object);
489 ((struct instance_standard__NativeArray*)var131)->values[0] = (val*) var_name;
490 ((struct instance_standard__NativeArray*)var131)->values[1] = (val*) var120;
491 ((struct instance_standard__NativeArray*)var131)->values[2] = (val*) var_res;
492 ((struct instance_standard__NativeArray*)var131)->values[3] = (val*) var125;
493 {
494 ((void (*)(val* self, val* p0, long p1))(var129->class->vft[COLOR_standard__array__Array__with_native]))(var129, var131, var130) /* with_native on <var129:Array[Object]>*/;
495 }
496 }
497 {
498 var132 = ((val* (*)(val* self))(var129->class->vft[COLOR_standard__string__Object__to_s]))(var129) /* to_s on <var129:Array[Object]>*/;
499 }
500 {
501 nit___nit__AbstractCompilerVisitor___add(self, var132); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
502 }
503 if (varonce133) {
504 var134 = varonce133;
505 } else {
506 var135 = "}";
507 var136 = 1;
508 var137 = standard___standard__NativeString___to_s_with_length(var135, var136);
509 var134 = var137;
510 varonce133 = var134;
511 }
512 {
513 nit___nit__AbstractCompilerVisitor___add(self, var134); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
514 }
515 var = var_res;
516 goto RET_LABEL;
517 RET_LABEL:;
518 return var;
519 }
520 /* method abstract_compiler#AbstractCompilerVisitor#value_instance for (self: AbstractCompilerVisitor, Object): RuntimeVariable */
521 val* nit___nit__AbstractCompilerVisitor___value_instance(val* self, val* p0) {
522 val* var /* : RuntimeVariable */;
523 val* var_object /* var object: Object */;
524 short int var1 /* : Bool */;
525 int cltype;
526 int idtype;
527 val* var2 /* : RuntimeVariable */;
528 long var3 /* : Int */;
529 short int var4 /* : Bool */;
530 int cltype5;
531 int idtype6;
532 val* var7 /* : RuntimeVariable */;
533 short int var8 /* : Bool */;
534 short int var9 /* : Bool */;
535 int cltype10;
536 int idtype11;
537 val* var12 /* : RuntimeVariable */;
538 var_object = p0;
539 /* <var_object:Object> isa Int */
540 cltype = type_standard__Int.color;
541 idtype = type_standard__Int.id;
542 if(cltype >= var_object->type->table_size) {
543 var1 = 0;
544 } else {
545 var1 = var_object->type->type_table[cltype] == idtype;
546 }
547 if (var1){
548 {
549 var3 = ((struct instance_standard__Int*)var_object)->value; /* autounbox from Object to Int */;
550 var2 = nit___nit__AbstractCompilerVisitor___int_instance(self, var3);
551 }
552 var = var2;
553 goto RET_LABEL;
554 } else {
555 /* <var_object:Object> isa Bool */
556 cltype5 = type_standard__Bool.color;
557 idtype6 = type_standard__Bool.id;
558 if(cltype5 >= var_object->type->table_size) {
559 var4 = 0;
560 } else {
561 var4 = var_object->type->type_table[cltype5] == idtype6;
562 }
563 if (var4){
564 {
565 var8 = ((struct instance_standard__Bool*)var_object)->value; /* autounbox from Object to Bool */;
566 var7 = nit___nit__AbstractCompilerVisitor___bool_instance(self, var8);
567 }
568 var = var7;
569 goto RET_LABEL;
570 } else {
571 /* <var_object:Object> isa String */
572 cltype10 = type_standard__String.color;
573 idtype11 = type_standard__String.id;
574 if(cltype10 >= var_object->type->table_size) {
575 var9 = 0;
576 } else {
577 var9 = var_object->type->type_table[cltype10] == idtype11;
578 }
579 if (var9){
580 {
581 var12 = nit___nit__AbstractCompilerVisitor___string_instance(self, var_object);
582 }
583 var = var12;
584 goto RET_LABEL;
585 } else {
586 PRINT_ERROR("Runtime error: %s", "Aborted");
587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1468);
588 show_backtrace(1);
589 }
590 }
591 }
592 RET_LABEL:;
593 return var;
594 }
595 /* method abstract_compiler#AbstractCompilerVisitor#add for (self: AbstractCompilerVisitor, String) */
596 void nit___nit__AbstractCompilerVisitor___add(val* self, val* p0) {
597 val* var_s /* var s: String */;
598 val* var /* : CodeWriter */;
599 val* var2 /* : CodeWriter */;
600 val* var3 /* : List[String] */;
601 val* var5 /* : List[String] */;
602 var_s = p0;
603 {
604 { /* Inline abstract_compiler#AbstractCompilerVisitor#writer (self) on <self:AbstractCompilerVisitor> */
605 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
606 if (unlikely(var2 == NULL)) {
607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
608 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1074);
609 show_backtrace(1);
610 }
611 var = var2;
612 RET_LABEL1:(void)0;
613 }
614 }
615 {
616 { /* Inline abstract_compiler#CodeWriter#lines (var) on <var:CodeWriter> */
617 var5 = var->attrs[COLOR_nit__abstract_compiler__CodeWriter___lines].val; /* _lines on <var:CodeWriter> */
618 if (unlikely(var5 == NULL)) {
619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
620 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1038);
621 show_backtrace(1);
622 }
623 var3 = var5;
624 RET_LABEL4:(void)0;
625 }
626 }
627 {
628 standard___standard__Sequence___SimpleCollection__add(var3, var_s); /* Direct call abstract_collection#Sequence#add on <var3:List[String]>*/
629 }
630 RET_LABEL:;
631 }
632 /* method abstract_compiler#AbstractCompilerVisitor#add_decl for (self: AbstractCompilerVisitor, String) */
633 void nit___nit__AbstractCompilerVisitor___add_decl(val* self, val* p0) {
634 val* var_s /* var s: String */;
635 val* var /* : CodeWriter */;
636 val* var2 /* : CodeWriter */;
637 val* var3 /* : List[String] */;
638 val* var5 /* : List[String] */;
639 var_s = p0;
640 {
641 { /* Inline abstract_compiler#AbstractCompilerVisitor#writer (self) on <self:AbstractCompilerVisitor> */
642 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
643 if (unlikely(var2 == NULL)) {
644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
645 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1074);
646 show_backtrace(1);
647 }
648 var = var2;
649 RET_LABEL1:(void)0;
650 }
651 }
652 {
653 { /* Inline abstract_compiler#CodeWriter#decl_lines (var) on <var:CodeWriter> */
654 var5 = var->attrs[COLOR_nit__abstract_compiler__CodeWriter___decl_lines].val; /* _decl_lines on <var:CodeWriter> */
655 if (unlikely(var5 == NULL)) {
656 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
657 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1039);
658 show_backtrace(1);
659 }
660 var3 = var5;
661 RET_LABEL4:(void)0;
662 }
663 }
664 {
665 standard___standard__Sequence___SimpleCollection__add(var3, var_s); /* Direct call abstract_collection#Sequence#add on <var3:List[String]>*/
666 }
667 RET_LABEL:;
668 }
669 /* method abstract_compiler#AbstractCompilerVisitor#require_declaration for (self: AbstractCompilerVisitor, String) */
670 void nit___nit__AbstractCompilerVisitor___require_declaration(val* self, val* p0) {
671 val* var_key /* var key: String */;
672 val* var /* : CodeWriter */;
673 val* var2 /* : CodeWriter */;
674 val* var3 /* : CodeFile */;
675 val* var5 /* : CodeFile */;
676 val* var6 /* : HashSet[String] */;
677 val* var8 /* : HashSet[String] */;
678 val* var_reqs /* var reqs: HashSet[String] */;
679 short int var9 /* : Bool */;
680 val* var10 /* : nullable ANode */;
681 val* var12 /* : nullable ANode */;
682 val* var_node /* var node: nullable ANode */;
683 val* var13 /* : null */;
684 short int var14 /* : Bool */;
685 short int var15 /* : Bool */;
686 val* var_other /* var other: nullable Object */;
687 short int var17 /* : Bool */;
688 short int var18 /* : Bool */;
689 val* var19 /* : AbstractCompiler */;
690 val* var21 /* : AbstractCompiler */;
691 val* var22 /* : HashMap[String, ANode] */;
692 val* var24 /* : HashMap[String, ANode] */;
693 var_key = p0;
694 {
695 { /* Inline abstract_compiler#AbstractCompilerVisitor#writer (self) on <self:AbstractCompilerVisitor> */
696 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
697 if (unlikely(var2 == NULL)) {
698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
699 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1074);
700 show_backtrace(1);
701 }
702 var = var2;
703 RET_LABEL1:(void)0;
704 }
705 }
706 {
707 { /* Inline abstract_compiler#CodeWriter#file (var) on <var:CodeWriter> */
708 var5 = var->attrs[COLOR_nit__abstract_compiler__CodeWriter___file].val; /* _file on <var:CodeWriter> */
709 if (unlikely(var5 == NULL)) {
710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
711 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1037);
712 show_backtrace(1);
713 }
714 var3 = var5;
715 RET_LABEL4:(void)0;
716 }
717 }
718 {
719 { /* Inline abstract_compiler#CodeFile#required_declarations (var3) on <var3:CodeFile> */
720 var8 = var3->attrs[COLOR_nit__abstract_compiler__CodeFile___required_declarations].val; /* _required_declarations on <var3:CodeFile> */
721 if (unlikely(var8 == NULL)) {
722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _required_declarations");
723 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1032);
724 show_backtrace(1);
725 }
726 var6 = var8;
727 RET_LABEL7:(void)0;
728 }
729 }
730 var_reqs = var6;
731 {
732 var9 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var_reqs, var_key);
733 }
734 if (var9){
735 goto RET_LABEL;
736 } else {
737 }
738 {
739 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var_reqs, var_key); /* Direct call hash_collection#HashSet#add on <var_reqs:HashSet[String]>*/
740 }
741 {
742 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
743 var12 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
744 var10 = var12;
745 RET_LABEL11:(void)0;
746 }
747 }
748 var_node = var10;
749 var13 = NULL;
750 if (var_node == NULL) {
751 var14 = 0; /* is null */
752 } else {
753 var14 = 1; /* arg is null and recv is not */
754 }
755 if (0) {
756 { /* Inline kernel#Object#!= (var_node,var13) on <var_node:nullable ANode> */
757 var_other = var13;
758 {
759 var17 = ((short int (*)(val* self, val* p0))(var_node->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_node, var_other) /* == on <var_node:nullable ANode(ANode)>*/;
760 }
761 var18 = !var17;
762 var15 = var18;
763 goto RET_LABEL16;
764 RET_LABEL16:(void)0;
765 }
766 var14 = var15;
767 }
768 if (var14){
769 {
770 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
771 var21 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
772 if (unlikely(var21 == NULL)) {
773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
775 show_backtrace(1);
776 }
777 var19 = var21;
778 RET_LABEL20:(void)0;
779 }
780 }
781 {
782 { /* Inline abstract_compiler#AbstractCompiler#requirers_of_declarations (var19) on <var19:AbstractCompiler> */
783 var24 = var19->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___requirers_of_declarations].val; /* _requirers_of_declarations on <var19:AbstractCompiler> */
784 if (unlikely(var24 == NULL)) {
785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _requirers_of_declarations");
786 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 541);
787 show_backtrace(1);
788 }
789 var22 = var24;
790 RET_LABEL23:(void)0;
791 }
792 }
793 {
794 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var22, var_key, var_node); /* Direct call hash_collection#HashMap#[]= on <var22:HashMap[String, ANode]>*/
795 }
796 } else {
797 }
798 RET_LABEL:;
799 }
800 /* method abstract_compiler#AbstractCompilerVisitor#declare_once for (self: AbstractCompilerVisitor, String) */
801 void nit___nit__AbstractCompilerVisitor___declare_once(val* self, val* p0) {
802 val* var_s /* var s: String */;
803 val* var /* : AbstractCompiler */;
804 val* var2 /* : AbstractCompiler */;
805 var_s = p0;
806 {
807 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
808 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
809 if (unlikely(var2 == NULL)) {
810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
811 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
812 show_backtrace(1);
813 }
814 var = var2;
815 RET_LABEL1:(void)0;
816 }
817 }
818 {
819 nit___nit__AbstractCompiler___provide_declaration(var, var_s, var_s); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <var:AbstractCompiler>*/
820 }
821 {
822 nit___nit__AbstractCompilerVisitor___require_declaration(self, var_s); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:AbstractCompilerVisitor>*/
823 }
824 RET_LABEL:;
825 }
826 /* method abstract_compiler#AbstractCompilerVisitor#add_extern for (self: AbstractCompilerVisitor, MModule) */
827 void nit___nit__AbstractCompilerVisitor___add_extern(val* self, val* p0) {
828 val* var_mmodule /* var mmodule: MModule */;
829 val* var /* : Location */;
830 val* var2 /* : Location */;
831 val* var3 /* : nullable SourceFile */;
832 val* var5 /* : nullable SourceFile */;
833 val* var6 /* : String */;
834 val* var8 /* : String */;
835 val* var_file /* var file: String */;
836 static val* varonce;
837 val* var9 /* : String */;
838 char* var10 /* : NativeString */;
839 long var11 /* : Int */;
840 val* var12 /* : FlatString */;
841 val* var13 /* : String */;
842 static val* varonce14;
843 val* var15 /* : String */;
844 char* var16 /* : NativeString */;
845 long var17 /* : Int */;
846 val* var18 /* : FlatString */;
847 val* var19 /* : String */;
848 val* var_tryfile /* var tryfile: String */;
849 short int var20 /* : Bool */;
850 static val* varonce21;
851 val* var22 /* : String */;
852 char* var23 /* : NativeString */;
853 long var24 /* : Int */;
854 val* var25 /* : FlatString */;
855 static val* varonce26;
856 val* var27 /* : String */;
857 char* var28 /* : NativeString */;
858 long var29 /* : Int */;
859 val* var30 /* : FlatString */;
860 val* var31 /* : String */;
861 static val* varonce32;
862 val* var33 /* : String */;
863 char* var34 /* : NativeString */;
864 long var35 /* : Int */;
865 val* var36 /* : FlatString */;
866 val* var37 /* : Array[Object] */;
867 long var38 /* : Int */;
868 val* var39 /* : NativeArray[Object] */;
869 val* var40 /* : String */;
870 val* var41 /* : AbstractCompiler */;
871 val* var43 /* : AbstractCompiler */;
872 val* var44 /* : Array[String] */;
873 val* var46 /* : Array[String] */;
874 static val* varonce47;
875 val* var48 /* : String */;
876 char* var49 /* : NativeString */;
877 long var50 /* : Int */;
878 val* var51 /* : FlatString */;
879 val* var52 /* : String */;
880 short int var53 /* : Bool */;
881 static val* varonce54;
882 val* var55 /* : String */;
883 char* var56 /* : NativeString */;
884 long var57 /* : Int */;
885 val* var58 /* : FlatString */;
886 static val* varonce59;
887 val* var60 /* : String */;
888 char* var61 /* : NativeString */;
889 long var62 /* : Int */;
890 val* var63 /* : FlatString */;
891 val* var64 /* : String */;
892 static val* varonce65;
893 val* var66 /* : String */;
894 char* var67 /* : NativeString */;
895 long var68 /* : Int */;
896 val* var69 /* : FlatString */;
897 val* var70 /* : Array[Object] */;
898 long var71 /* : Int */;
899 val* var72 /* : NativeArray[Object] */;
900 val* var73 /* : String */;
901 val* var74 /* : AbstractCompiler */;
902 val* var76 /* : AbstractCompiler */;
903 val* var77 /* : Array[String] */;
904 val* var79 /* : Array[String] */;
905 val* var80 /* : AbstractCompiler */;
906 val* var82 /* : AbstractCompiler */;
907 val* var83 /* : ArraySet[String] */;
908 val* var85 /* : ArraySet[String] */;
909 short int var86 /* : Bool */;
910 val* var87 /* : AbstractCompiler */;
911 val* var89 /* : AbstractCompiler */;
912 val* var90 /* : ArraySet[String] */;
913 val* var92 /* : ArraySet[String] */;
914 static val* varonce93;
915 val* var94 /* : String */;
916 char* var95 /* : NativeString */;
917 long var96 /* : Int */;
918 val* var97 /* : FlatString */;
919 val* var98 /* : String */;
920 short int var99 /* : Bool */;
921 short int var100 /* : Bool */;
922 static val* varonce101;
923 val* var102 /* : String */;
924 char* var103 /* : NativeString */;
925 long var104 /* : Int */;
926 val* var105 /* : FlatString */;
927 val* var106 /* : String */;
928 short int var107 /* : Bool */;
929 short int var108 /* : Bool */;
930 val* var109 /* : ExternCFile */;
931 static val* varonce110;
932 val* var111 /* : String */;
933 char* var112 /* : NativeString */;
934 long var113 /* : Int */;
935 val* var114 /* : FlatString */;
936 val* var115 /* : String */;
937 static val* varonce116;
938 val* var117 /* : String */;
939 char* var118 /* : NativeString */;
940 long var119 /* : Int */;
941 val* var120 /* : FlatString */;
942 val* var_f /* var f: ExternCFile */;
943 val* var121 /* : AbstractCompiler */;
944 val* var123 /* : AbstractCompiler */;
945 val* var124 /* : Array[ExternFile] */;
946 val* var126 /* : Array[ExternFile] */;
947 val* var127 /* : AbstractCompiler */;
948 val* var129 /* : AbstractCompiler */;
949 val* var130 /* : Array[String] */;
950 val* var132 /* : Array[String] */;
951 var_mmodule = p0;
952 {
953 { /* Inline mmodule#MModule#location (var_mmodule) on <var_mmodule:MModule> */
954 var2 = var_mmodule->attrs[COLOR_nit__mmodule__MModule___location].val; /* _location on <var_mmodule:MModule> */
955 if (unlikely(var2 == NULL)) {
956 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
957 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 90);
958 show_backtrace(1);
959 }
960 var = var2;
961 RET_LABEL1:(void)0;
962 }
963 }
964 {
965 { /* Inline location#Location#file (var) on <var:Location> */
966 var5 = var->attrs[COLOR_nit__location__Location___file].val; /* _file on <var:Location> */
967 var3 = var5;
968 RET_LABEL4:(void)0;
969 }
970 }
971 if (var3 == NULL) {
972 PRINT_ERROR("Runtime error: %s", "Receiver is null");
973 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1509);
974 show_backtrace(1);
975 } else {
976 { /* Inline location#SourceFile#filename (var3) on <var3:nullable SourceFile> */
977 if (unlikely(var3 == NULL)) {
978 PRINT_ERROR("Runtime error: %s", "Receiver is null");
979 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
980 show_backtrace(1);
981 }
982 var8 = var3->attrs[COLOR_nit__location__SourceFile___filename].val; /* _filename on <var3:nullable SourceFile> */
983 if (unlikely(var8 == NULL)) {
984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
985 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
986 show_backtrace(1);
987 }
988 var6 = var8;
989 RET_LABEL7:(void)0;
990 }
991 }
992 var_file = var6;
993 if (varonce) {
994 var9 = varonce;
995 } else {
996 var10 = ".nit";
997 var11 = 4;
998 var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
999 var9 = var12;
1000 varonce = var9;
1001 }
1002 {
1003 var13 = standard__file___String___strip_extension(var_file, var9);
1004 }
1005 var_file = var13;
1006 if (varonce14) {
1007 var15 = varonce14;
1008 } else {
1009 var16 = ".nit.h";
1010 var17 = 6;
1011 var18 = standard___standard__NativeString___to_s_with_length(var16, var17);
1012 var15 = var18;
1013 varonce14 = var15;
1014 }
1015 {
1016 var19 = ((val* (*)(val* self, val* p0))(var_file->class->vft[COLOR_standard__string__String___43d]))(var_file, var15) /* + on <var_file:String>*/;
1017 }
1018 var_tryfile = var19;
1019 {
1020 var20 = standard__file___String___file_exists(var_tryfile);
1021 }
1022 if (var20){
1023 if (varonce21) {
1024 var22 = varonce21;
1025 } else {
1026 var23 = "#include \"";
1027 var24 = 10;
1028 var25 = standard___standard__NativeString___to_s_with_length(var23, var24);
1029 var22 = var25;
1030 varonce21 = var22;
1031 }
1032 if (varonce26) {
1033 var27 = varonce26;
1034 } else {
1035 var28 = "";
1036 var29 = 0;
1037 var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
1038 var27 = var30;
1039 varonce26 = var27;
1040 }
1041 {
1042 var31 = standard__file___String___basename(var_tryfile, var27);
1043 }
1044 if (varonce32) {
1045 var33 = varonce32;
1046 } else {
1047 var34 = "\"";
1048 var35 = 1;
1049 var36 = standard___standard__NativeString___to_s_with_length(var34, var35);
1050 var33 = var36;
1051 varonce32 = var33;
1052 }
1053 var37 = NEW_standard__Array(&type_standard__Array__standard__Object);
1054 { /* var37 = array_instance Array[Object] */
1055 var38 = 3;
1056 var39 = NEW_standard__NativeArray(var38, &type_standard__NativeArray__standard__Object);
1057 ((struct instance_standard__NativeArray*)var39)->values[0] = (val*) var22;
1058 ((struct instance_standard__NativeArray*)var39)->values[1] = (val*) var31;
1059 ((struct instance_standard__NativeArray*)var39)->values[2] = (val*) var33;
1060 {
1061 ((void (*)(val* self, val* p0, long p1))(var37->class->vft[COLOR_standard__array__Array__with_native]))(var37, var39, var38) /* with_native on <var37:Array[Object]>*/;
1062 }
1063 }
1064 {
1065 var40 = ((val* (*)(val* self))(var37->class->vft[COLOR_standard__string__Object__to_s]))(var37) /* to_s on <var37:Array[Object]>*/;
1066 }
1067 {
1068 nit___nit__AbstractCompilerVisitor___declare_once(self, var40); /* Direct call abstract_compiler#AbstractCompilerVisitor#declare_once on <self:AbstractCompilerVisitor>*/
1069 }
1070 {
1071 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
1072 var43 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1073 if (unlikely(var43 == NULL)) {
1074 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1075 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1076 show_backtrace(1);
1077 }
1078 var41 = var43;
1079 RET_LABEL42:(void)0;
1080 }
1081 }
1082 {
1083 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var41) on <var41:AbstractCompiler> */
1084 var46 = var41->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___files_to_copy].val; /* _files_to_copy on <var41:AbstractCompiler> */
1085 if (unlikely(var46 == NULL)) {
1086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
1087 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 931);
1088 show_backtrace(1);
1089 }
1090 var44 = var46;
1091 RET_LABEL45:(void)0;
1092 }
1093 }
1094 {
1095 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var44, var_tryfile); /* Direct call array#Array#add on <var44:Array[String]>*/
1096 }
1097 } else {
1098 }
1099 if (varonce47) {
1100 var48 = varonce47;
1101 } else {
1102 var49 = "_nit.h";
1103 var50 = 6;
1104 var51 = standard___standard__NativeString___to_s_with_length(var49, var50);
1105 var48 = var51;
1106 varonce47 = var48;
1107 }
1108 {
1109 var52 = ((val* (*)(val* self, val* p0))(var_file->class->vft[COLOR_standard__string__String___43d]))(var_file, var48) /* + on <var_file:String>*/;
1110 }
1111 var_tryfile = var52;
1112 {
1113 var53 = standard__file___String___file_exists(var_tryfile);
1114 }
1115 if (var53){
1116 if (varonce54) {
1117 var55 = varonce54;
1118 } else {
1119 var56 = "#include \"";
1120 var57 = 10;
1121 var58 = standard___standard__NativeString___to_s_with_length(var56, var57);
1122 var55 = var58;
1123 varonce54 = var55;
1124 }
1125 if (varonce59) {
1126 var60 = varonce59;
1127 } else {
1128 var61 = "";
1129 var62 = 0;
1130 var63 = standard___standard__NativeString___to_s_with_length(var61, var62);
1131 var60 = var63;
1132 varonce59 = var60;
1133 }
1134 {
1135 var64 = standard__file___String___basename(var_tryfile, var60);
1136 }
1137 if (varonce65) {
1138 var66 = varonce65;
1139 } else {
1140 var67 = "\"";
1141 var68 = 1;
1142 var69 = standard___standard__NativeString___to_s_with_length(var67, var68);
1143 var66 = var69;
1144 varonce65 = var66;
1145 }
1146 var70 = NEW_standard__Array(&type_standard__Array__standard__Object);
1147 { /* var70 = array_instance Array[Object] */
1148 var71 = 3;
1149 var72 = NEW_standard__NativeArray(var71, &type_standard__NativeArray__standard__Object);
1150 ((struct instance_standard__NativeArray*)var72)->values[0] = (val*) var55;
1151 ((struct instance_standard__NativeArray*)var72)->values[1] = (val*) var64;
1152 ((struct instance_standard__NativeArray*)var72)->values[2] = (val*) var66;
1153 {
1154 ((void (*)(val* self, val* p0, long p1))(var70->class->vft[COLOR_standard__array__Array__with_native]))(var70, var72, var71) /* with_native on <var70:Array[Object]>*/;
1155 }
1156 }
1157 {
1158 var73 = ((val* (*)(val* self))(var70->class->vft[COLOR_standard__string__Object__to_s]))(var70) /* to_s on <var70:Array[Object]>*/;
1159 }
1160 {
1161 nit___nit__AbstractCompilerVisitor___declare_once(self, var73); /* Direct call abstract_compiler#AbstractCompilerVisitor#declare_once on <self:AbstractCompilerVisitor>*/
1162 }
1163 {
1164 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
1165 var76 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1166 if (unlikely(var76 == NULL)) {
1167 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1168 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1169 show_backtrace(1);
1170 }
1171 var74 = var76;
1172 RET_LABEL75:(void)0;
1173 }
1174 }
1175 {
1176 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var74) on <var74:AbstractCompiler> */
1177 var79 = var74->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___files_to_copy].val; /* _files_to_copy on <var74:AbstractCompiler> */
1178 if (unlikely(var79 == NULL)) {
1179 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
1180 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 931);
1181 show_backtrace(1);
1182 }
1183 var77 = var79;
1184 RET_LABEL78:(void)0;
1185 }
1186 }
1187 {
1188 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var77, var_tryfile); /* Direct call array#Array#add on <var77:Array[String]>*/
1189 }
1190 } else {
1191 }
1192 {
1193 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
1194 var82 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1195 if (unlikely(var82 == NULL)) {
1196 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1197 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1198 show_backtrace(1);
1199 }
1200 var80 = var82;
1201 RET_LABEL81:(void)0;
1202 }
1203 }
1204 {
1205 { /* Inline abstract_compiler#AbstractCompiler#seen_extern (var80) on <var80:AbstractCompiler> */
1206 var85 = var80->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___seen_extern].val; /* _seen_extern on <var80:AbstractCompiler> */
1207 if (unlikely(var85 == NULL)) {
1208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen_extern");
1209 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 934);
1210 show_backtrace(1);
1211 }
1212 var83 = var85;
1213 RET_LABEL84:(void)0;
1214 }
1215 }
1216 {
1217 var86 = standard___standard__ArraySet___standard__abstract_collection__Collection__has(var83, var_file);
1218 }
1219 if (var86){
1220 goto RET_LABEL;
1221 } else {
1222 }
1223 {
1224 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
1225 var89 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1226 if (unlikely(var89 == NULL)) {
1227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1228 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1229 show_backtrace(1);
1230 }
1231 var87 = var89;
1232 RET_LABEL88:(void)0;
1233 }
1234 }
1235 {
1236 { /* Inline abstract_compiler#AbstractCompiler#seen_extern (var87) on <var87:AbstractCompiler> */
1237 var92 = var87->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___seen_extern].val; /* _seen_extern on <var87:AbstractCompiler> */
1238 if (unlikely(var92 == NULL)) {
1239 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen_extern");
1240 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 934);
1241 show_backtrace(1);
1242 }
1243 var90 = var92;
1244 RET_LABEL91:(void)0;
1245 }
1246 }
1247 {
1248 standard___standard__ArraySet___standard__abstract_collection__SimpleCollection__add(var90, var_file); /* Direct call array#ArraySet#add on <var90:ArraySet[String]>*/
1249 }
1250 if (varonce93) {
1251 var94 = varonce93;
1252 } else {
1253 var95 = ".nit.c";
1254 var96 = 6;
1255 var97 = standard___standard__NativeString___to_s_with_length(var95, var96);
1256 var94 = var97;
1257 varonce93 = var94;
1258 }
1259 {
1260 var98 = ((val* (*)(val* self, val* p0))(var_file->class->vft[COLOR_standard__string__String___43d]))(var_file, var94) /* + on <var_file:String>*/;
1261 }
1262 var_tryfile = var98;
1263 {
1264 var99 = standard__file___String___file_exists(var_tryfile);
1265 }
1266 var100 = !var99;
1267 if (var100){
1268 if (varonce101) {
1269 var102 = varonce101;
1270 } else {
1271 var103 = "_nit.c";
1272 var104 = 6;
1273 var105 = standard___standard__NativeString___to_s_with_length(var103, var104);
1274 var102 = var105;
1275 varonce101 = var102;
1276 }
1277 {
1278 var106 = ((val* (*)(val* self, val* p0))(var_file->class->vft[COLOR_standard__string__String___43d]))(var_file, var102) /* + on <var_file:String>*/;
1279 }
1280 var_tryfile = var106;
1281 {
1282 var107 = standard__file___String___file_exists(var_tryfile);
1283 }
1284 var108 = !var107;
1285 if (var108){
1286 goto RET_LABEL;
1287 } else {
1288 }
1289 } else {
1290 }
1291 var109 = NEW_nit__ExternCFile(&type_nit__ExternCFile);
1292 if (varonce110) {
1293 var111 = varonce110;
1294 } else {
1295 var112 = "";
1296 var113 = 0;
1297 var114 = standard___standard__NativeString___to_s_with_length(var112, var113);
1298 var111 = var114;
1299 varonce110 = var111;
1300 }
1301 {
1302 var115 = standard__file___String___basename(var_tryfile, var111);
1303 }
1304 if (varonce116) {
1305 var117 = varonce116;
1306 } else {
1307 var118 = "";
1308 var119 = 0;
1309 var120 = standard___standard__NativeString___to_s_with_length(var118, var119);
1310 var117 = var120;
1311 varonce116 = var117;
1312 }
1313 {
1314 ((void (*)(val* self, val* p0))(var109->class->vft[COLOR_nit__c_tools__ExternFile__filename_61d]))(var109, var115) /* filename= on <var109:ExternCFile>*/;
1315 }
1316 {
1317 ((void (*)(val* self, val* p0))(var109->class->vft[COLOR_nit__c_tools__ExternCFile__cflags_61d]))(var109, var117) /* cflags= on <var109:ExternCFile>*/;
1318 }
1319 {
1320 ((void (*)(val* self))(var109->class->vft[COLOR_standard__kernel__Object__init]))(var109) /* init on <var109:ExternCFile>*/;
1321 }
1322 var_f = var109;
1323 {
1324 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
1325 var123 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1326 if (unlikely(var123 == NULL)) {
1327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1328 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1329 show_backtrace(1);
1330 }
1331 var121 = var123;
1332 RET_LABEL122:(void)0;
1333 }
1334 }
1335 {
1336 { /* Inline abstract_compiler#AbstractCompiler#extern_bodies (var121) on <var121:AbstractCompiler> */
1337 var126 = var121->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___extern_bodies].val; /* _extern_bodies on <var121:AbstractCompiler> */
1338 if (unlikely(var126 == NULL)) {
1339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
1340 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 928);
1341 show_backtrace(1);
1342 }
1343 var124 = var126;
1344 RET_LABEL125:(void)0;
1345 }
1346 }
1347 {
1348 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var124, var_f); /* Direct call array#Array#add on <var124:Array[ExternFile]>*/
1349 }
1350 {
1351 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
1352 var129 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
1353 if (unlikely(var129 == NULL)) {
1354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1355 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1356 show_backtrace(1);
1357 }
1358 var127 = var129;
1359 RET_LABEL128:(void)0;
1360 }
1361 }
1362 {
1363 { /* Inline abstract_compiler#AbstractCompiler#files_to_copy (var127) on <var127:AbstractCompiler> */
1364 var132 = var127->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___files_to_copy].val; /* _files_to_copy on <var127:AbstractCompiler> */
1365 if (unlikely(var132 == NULL)) {
1366 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
1367 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 931);
1368 show_backtrace(1);
1369 }
1370 var130 = var132;
1371 RET_LABEL131:(void)0;
1372 }
1373 }
1374 {
1375 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var130, var_tryfile); /* Direct call array#Array#add on <var130:Array[String]>*/
1376 }
1377 RET_LABEL:;
1378 }
1379 /* method abstract_compiler#AbstractCompilerVisitor#new_expr for (self: AbstractCompilerVisitor, String, MType): RuntimeVariable */
1380 val* nit___nit__AbstractCompilerVisitor___new_expr(val* self, val* p0, val* p1) {
1381 val* var /* : RuntimeVariable */;
1382 val* var_cexpr /* var cexpr: String */;
1383 val* var_mtype /* var mtype: MType */;
1384 val* var1 /* : RuntimeVariable */;
1385 val* var_res /* var res: RuntimeVariable */;
1386 static val* varonce;
1387 val* var2 /* : String */;
1388 char* var3 /* : NativeString */;
1389 long var4 /* : Int */;
1390 val* var5 /* : FlatString */;
1391 static val* varonce6;
1392 val* var7 /* : String */;
1393 char* var8 /* : NativeString */;
1394 long var9 /* : Int */;
1395 val* var10 /* : FlatString */;
1396 val* var11 /* : Array[Object] */;
1397 long var12 /* : Int */;
1398 val* var13 /* : NativeArray[Object] */;
1399 val* var14 /* : String */;
1400 var_cexpr = p0;
1401 var_mtype = p1;
1402 {
1403 var1 = nit___nit__AbstractCompilerVisitor___new_var(self, var_mtype);
1404 }
1405 var_res = var1;
1406 if (varonce) {
1407 var2 = varonce;
1408 } else {
1409 var3 = " = ";
1410 var4 = 3;
1411 var5 = standard___standard__NativeString___to_s_with_length(var3, var4);
1412 var2 = var5;
1413 varonce = var2;
1414 }
1415 if (varonce6) {
1416 var7 = varonce6;
1417 } else {
1418 var8 = ";";
1419 var9 = 1;
1420 var10 = standard___standard__NativeString___to_s_with_length(var8, var9);
1421 var7 = var10;
1422 varonce6 = var7;
1423 }
1424 var11 = NEW_standard__Array(&type_standard__Array__standard__Object);
1425 { /* var11 = array_instance Array[Object] */
1426 var12 = 4;
1427 var13 = NEW_standard__NativeArray(var12, &type_standard__NativeArray__standard__Object);
1428 ((struct instance_standard__NativeArray*)var13)->values[0] = (val*) var_res;
1429 ((struct instance_standard__NativeArray*)var13)->values[1] = (val*) var2;
1430 ((struct instance_standard__NativeArray*)var13)->values[2] = (val*) var_cexpr;
1431 ((struct instance_standard__NativeArray*)var13)->values[3] = (val*) var7;
1432 {
1433 ((void (*)(val* self, val* p0, long p1))(var11->class->vft[COLOR_standard__array__Array__with_native]))(var11, var13, var12) /* with_native on <var11:Array[Object]>*/;
1434 }
1435 }
1436 {
1437 var14 = ((val* (*)(val* self))(var11->class->vft[COLOR_standard__string__Object__to_s]))(var11) /* to_s on <var11:Array[Object]>*/;
1438 }
1439 {
1440 nit___nit__AbstractCompilerVisitor___add(self, var14); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
1441 }
1442 var = var_res;
1443 goto RET_LABEL;
1444 RET_LABEL:;
1445 return var;
1446 }
1447 /* method abstract_compiler#AbstractCompilerVisitor#add_abort for (self: AbstractCompilerVisitor, String) */
1448 void nit___nit__AbstractCompilerVisitor___add_abort(val* self, val* p0) {
1449 val* var_message /* var message: String */;
1450 static val* varonce;
1451 val* var /* : String */;
1452 char* var1 /* : NativeString */;
1453 long var2 /* : Int */;
1454 val* var3 /* : FlatString */;
1455 val* var4 /* : String */;
1456 static val* varonce5;
1457 val* var6 /* : String */;
1458 char* var7 /* : NativeString */;
1459 long var8 /* : Int */;
1460 val* var9 /* : FlatString */;
1461 val* var10 /* : Array[Object] */;
1462 long var11 /* : Int */;
1463 val* var12 /* : NativeArray[Object] */;
1464 val* var13 /* : String */;
1465 var_message = p0;
1466 if (varonce) {
1467 var = varonce;
1468 } else {
1469 var1 = "PRINT_ERROR(\"Runtime error: %s\", \"";
1470 var2 = 34;
1471 var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
1472 var = var3;
1473 varonce = var;
1474 }
1475 {
1476 var4 = standard___standard__Text___escape_to_c(var_message);
1477 }
1478 if (varonce5) {
1479 var6 = varonce5;
1480 } else {
1481 var7 = "\");";
1482 var8 = 3;
1483 var9 = standard___standard__NativeString___to_s_with_length(var7, var8);
1484 var6 = var9;
1485 varonce5 = var6;
1486 }
1487 var10 = NEW_standard__Array(&type_standard__Array__standard__Object);
1488 { /* var10 = array_instance Array[Object] */
1489 var11 = 3;
1490 var12 = NEW_standard__NativeArray(var11, &type_standard__NativeArray__standard__Object);
1491 ((struct instance_standard__NativeArray*)var12)->values[0] = (val*) var;
1492 ((struct instance_standard__NativeArray*)var12)->values[1] = (val*) var4;
1493 ((struct instance_standard__NativeArray*)var12)->values[2] = (val*) var6;
1494 {
1495 ((void (*)(val* self, val* p0, long p1))(var10->class->vft[COLOR_standard__array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
1496 }
1497 }
1498 {
1499 var13 = ((val* (*)(val* self))(var10->class->vft[COLOR_standard__string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
1500 }
1501 {
1502 nit___nit__AbstractCompilerVisitor___add(self, var13); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
1503 }
1504 {
1505 nit___nit__AbstractCompilerVisitor___add_raw_abort(self); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_raw_abort on <self:AbstractCompilerVisitor>*/
1506 }
1507 RET_LABEL:;
1508 }
1509 /* method abstract_compiler#AbstractCompilerVisitor#add_raw_abort for (self: AbstractCompilerVisitor) */
1510 void nit___nit__AbstractCompilerVisitor___add_raw_abort(val* self) {
1511 short int var /* : Bool */;
1512 short int var1 /* : Bool */;
1513 val* var2 /* : nullable ANode */;
1514 val* var4 /* : nullable ANode */;
1515 val* var5 /* : null */;
1516 short int var6 /* : Bool */;
1517 short int var7 /* : Bool */;
1518 val* var_other /* var other: nullable Object */;
1519 short int var9 /* : Bool */;
1520 short int var10 /* : Bool */;
1521 short int var_ /* var : Bool */;
1522 val* var11 /* : nullable ANode */;
1523 val* var13 /* : nullable ANode */;
1524 val* var14 /* : Location */;
1525 val* var16 /* : Location */;
1526 val* var17 /* : nullable SourceFile */;
1527 val* var19 /* : nullable SourceFile */;
1528 val* var20 /* : null */;
1529 short int var21 /* : Bool */;
1530 short int var22 /* : Bool */;
1531 short int var24 /* : Bool */;
1532 short int var25 /* : Bool */;
1533 short int var_26 /* var : Bool */;
1534 val* var27 /* : nullable ANode */;
1535 val* var29 /* : nullable ANode */;
1536 val* var30 /* : Location */;
1537 val* var32 /* : Location */;
1538 val* var33 /* : nullable SourceFile */;
1539 val* var35 /* : nullable SourceFile */;
1540 val* var36 /* : nullable MModule */;
1541 val* var38 /* : nullable MModule */;
1542 val* var39 /* : null */;
1543 short int var40 /* : Bool */;
1544 short int var41 /* : Bool */;
1545 short int var43 /* : Bool */;
1546 short int var44 /* : Bool */;
1547 static val* varonce;
1548 val* var45 /* : String */;
1549 char* var46 /* : NativeString */;
1550 long var47 /* : Int */;
1551 val* var48 /* : FlatString */;
1552 val* var49 /* : nullable ANode */;
1553 val* var51 /* : nullable ANode */;
1554 val* var52 /* : Location */;
1555 val* var54 /* : Location */;
1556 val* var55 /* : nullable SourceFile */;
1557 val* var57 /* : nullable SourceFile */;
1558 val* var58 /* : nullable MModule */;
1559 val* var60 /* : nullable MModule */;
1560 val* var61 /* : String */;
1561 val* var62 /* : Array[Object] */;
1562 long var63 /* : Int */;
1563 val* var64 /* : NativeArray[Object] */;
1564 val* var65 /* : String */;
1565 val* var_f /* var f: String */;
1566 static val* varonce66;
1567 val* var67 /* : String */;
1568 char* var68 /* : NativeString */;
1569 long var69 /* : Int */;
1570 val* var70 /* : FlatString */;
1571 static val* varonce71;
1572 val* var72 /* : String */;
1573 char* var73 /* : NativeString */;
1574 long var74 /* : Int */;
1575 val* var75 /* : FlatString */;
1576 val* var76 /* : nullable ANode */;
1577 val* var78 /* : nullable ANode */;
1578 val* var79 /* : Location */;
1579 val* var81 /* : Location */;
1580 long var82 /* : Int */;
1581 long var84 /* : Int */;
1582 static val* varonce85;
1583 val* var86 /* : String */;
1584 char* var87 /* : NativeString */;
1585 long var88 /* : Int */;
1586 val* var89 /* : FlatString */;
1587 val* var90 /* : Array[Object] */;
1588 long var91 /* : Int */;
1589 val* var92 /* : NativeArray[Object] */;
1590 val* var93 /* : Object */;
1591 val* var94 /* : String */;
1592 static val* varonce95;
1593 val* var96 /* : String */;
1594 char* var97 /* : NativeString */;
1595 long var98 /* : Int */;
1596 val* var99 /* : FlatString */;
1597 static val* varonce100;
1598 val* var101 /* : String */;
1599 char* var102 /* : NativeString */;
1600 long var103 /* : Int */;
1601 val* var104 /* : FlatString */;
1602 {
1603 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
1604 var4 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
1605 var2 = var4;
1606 RET_LABEL3:(void)0;
1607 }
1608 }
1609 var5 = NULL;
1610 if (var2 == NULL) {
1611 var6 = 0; /* is null */
1612 } else {
1613 var6 = 1; /* arg is null and recv is not */
1614 }
1615 if (0) {
1616 { /* Inline kernel#Object#!= (var2,var5) on <var2:nullable ANode> */
1617 var_other = var5;
1618 {
1619 var9 = ((short int (*)(val* self, val* p0))(var2->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var2, var_other) /* == on <var2:nullable ANode(ANode)>*/;
1620 }
1621 var10 = !var9;
1622 var7 = var10;
1623 goto RET_LABEL8;
1624 RET_LABEL8:(void)0;
1625 }
1626 var6 = var7;
1627 }
1628 var_ = var6;
1629 if (var6){
1630 {
1631 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
1632 var13 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
1633 var11 = var13;
1634 RET_LABEL12:(void)0;
1635 }
1636 }
1637 if (var11 == NULL) {
1638 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1639 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1552);
1640 show_backtrace(1);
1641 } else {
1642 { /* Inline parser_nodes#ANode#location (var11) on <var11:nullable ANode> */
1643 if (unlikely(var11 == NULL)) {
1644 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1645 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1646 show_backtrace(1);
1647 }
1648 var16 = var11->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var11:nullable ANode> */
1649 if (unlikely(var16 == NULL)) {
1650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1651 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1652 show_backtrace(1);
1653 }
1654 var14 = var16;
1655 RET_LABEL15:(void)0;
1656 }
1657 }
1658 {
1659 { /* Inline location#Location#file (var14) on <var14:Location> */
1660 var19 = var14->attrs[COLOR_nit__location__Location___file].val; /* _file on <var14:Location> */
1661 var17 = var19;
1662 RET_LABEL18:(void)0;
1663 }
1664 }
1665 var20 = NULL;
1666 if (var17 == NULL) {
1667 var21 = 0; /* is null */
1668 } else {
1669 var21 = 1; /* arg is null and recv is not */
1670 }
1671 if (0) {
1672 { /* Inline kernel#Object#!= (var17,var20) on <var17:nullable SourceFile> */
1673 var_other = var20;
1674 {
1675 var24 = ((short int (*)(val* self, val* p0))(var17->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var17, var_other) /* == on <var17:nullable SourceFile(SourceFile)>*/;
1676 }
1677 var25 = !var24;
1678 var22 = var25;
1679 goto RET_LABEL23;
1680 RET_LABEL23:(void)0;
1681 }
1682 var21 = var22;
1683 }
1684 var1 = var21;
1685 } else {
1686 var1 = var_;
1687 }
1688 var_26 = var1;
1689 if (var1){
1690 {
1691 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
1692 var29 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
1693 var27 = var29;
1694 RET_LABEL28:(void)0;
1695 }
1696 }
1697 if (var27 == NULL) {
1698 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1699 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1553);
1700 show_backtrace(1);
1701 } else {
1702 { /* Inline parser_nodes#ANode#location (var27) on <var27:nullable ANode> */
1703 if (unlikely(var27 == NULL)) {
1704 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1705 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1706 show_backtrace(1);
1707 }
1708 var32 = var27->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var27:nullable ANode> */
1709 if (unlikely(var32 == NULL)) {
1710 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1711 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1712 show_backtrace(1);
1713 }
1714 var30 = var32;
1715 RET_LABEL31:(void)0;
1716 }
1717 }
1718 {
1719 { /* Inline location#Location#file (var30) on <var30:Location> */
1720 var35 = var30->attrs[COLOR_nit__location__Location___file].val; /* _file on <var30:Location> */
1721 var33 = var35;
1722 RET_LABEL34:(void)0;
1723 }
1724 }
1725 if (var33 == NULL) {
1726 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1727 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1553);
1728 show_backtrace(1);
1729 } else {
1730 { /* Inline loader#SourceFile#mmodule (var33) on <var33:nullable SourceFile> */
1731 if (unlikely(var33 == NULL)) {
1732 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1733 PRINT_ERROR(" (%s:%d)\n", FILE_nit__loader, 696);
1734 show_backtrace(1);
1735 }
1736 var38 = var33->attrs[COLOR_nit__loader__SourceFile___mmodule].val; /* _mmodule on <var33:nullable SourceFile> */
1737 var36 = var38;
1738 RET_LABEL37:(void)0;
1739 }
1740 }
1741 var39 = NULL;
1742 if (var36 == NULL) {
1743 var40 = 0; /* is null */
1744 } else {
1745 var40 = 1; /* arg is null and recv is not */
1746 }
1747 if (0) {
1748 { /* Inline kernel#Object#!= (var36,var39) on <var36:nullable MModule> */
1749 var_other = var39;
1750 {
1751 var43 = ((short int (*)(val* self, val* p0))(var36->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var36, var_other) /* == on <var36:nullable MModule(MModule)>*/;
1752 }
1753 var44 = !var43;
1754 var41 = var44;
1755 goto RET_LABEL42;
1756 RET_LABEL42:(void)0;
1757 }
1758 var40 = var41;
1759 }
1760 var = var40;
1761 } else {
1762 var = var_26;
1763 }
1764 if (var){
1765 if (varonce) {
1766 var45 = varonce;
1767 } else {
1768 var46 = "FILE_";
1769 var47 = 5;
1770 var48 = standard___standard__NativeString___to_s_with_length(var46, var47);
1771 var45 = var48;
1772 varonce = var45;
1773 }
1774 {
1775 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
1776 var51 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
1777 var49 = var51;
1778 RET_LABEL50:(void)0;
1779 }
1780 }
1781 if (var49 == NULL) {
1782 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1783 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1554);
1784 show_backtrace(1);
1785 } else {
1786 { /* Inline parser_nodes#ANode#location (var49) on <var49:nullable ANode> */
1787 if (unlikely(var49 == NULL)) {
1788 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1789 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1790 show_backtrace(1);
1791 }
1792 var54 = var49->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var49:nullable ANode> */
1793 if (unlikely(var54 == NULL)) {
1794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1795 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1796 show_backtrace(1);
1797 }
1798 var52 = var54;
1799 RET_LABEL53:(void)0;
1800 }
1801 }
1802 {
1803 { /* Inline location#Location#file (var52) on <var52:Location> */
1804 var57 = var52->attrs[COLOR_nit__location__Location___file].val; /* _file on <var52:Location> */
1805 var55 = var57;
1806 RET_LABEL56:(void)0;
1807 }
1808 }
1809 if (var55 == NULL) {
1810 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1811 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1554);
1812 show_backtrace(1);
1813 } else {
1814 { /* Inline loader#SourceFile#mmodule (var55) on <var55:nullable SourceFile> */
1815 if (unlikely(var55 == NULL)) {
1816 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1817 PRINT_ERROR(" (%s:%d)\n", FILE_nit__loader, 696);
1818 show_backtrace(1);
1819 }
1820 var60 = var55->attrs[COLOR_nit__loader__SourceFile___mmodule].val; /* _mmodule on <var55:nullable SourceFile> */
1821 var58 = var60;
1822 RET_LABEL59:(void)0;
1823 }
1824 }
1825 if (var58 == NULL) {
1826 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1554);
1828 show_backtrace(1);
1829 } else {
1830 var61 = nit___nit__MModule___nit__model_base__MEntity__c_name(var58);
1831 }
1832 var62 = NEW_standard__Array(&type_standard__Array__standard__Object);
1833 { /* var62 = array_instance Array[Object] */
1834 var63 = 2;
1835 var64 = NEW_standard__NativeArray(var63, &type_standard__NativeArray__standard__Object);
1836 ((struct instance_standard__NativeArray*)var64)->values[0] = (val*) var45;
1837 ((struct instance_standard__NativeArray*)var64)->values[1] = (val*) var61;
1838 {
1839 ((void (*)(val* self, val* p0, long p1))(var62->class->vft[COLOR_standard__array__Array__with_native]))(var62, var64, var63) /* with_native on <var62:Array[Object]>*/;
1840 }
1841 }
1842 {
1843 var65 = ((val* (*)(val* self))(var62->class->vft[COLOR_standard__string__Object__to_s]))(var62) /* to_s on <var62:Array[Object]>*/;
1844 }
1845 var_f = var65;
1846 {
1847 nit___nit__AbstractCompilerVisitor___require_declaration(self, var_f); /* Direct call abstract_compiler#AbstractCompilerVisitor#require_declaration on <self:AbstractCompilerVisitor>*/
1848 }
1849 if (varonce66) {
1850 var67 = varonce66;
1851 } else {
1852 var68 = "PRINT_ERROR(\" (%s:%d)\\n\", ";
1853 var69 = 26;
1854 var70 = standard___standard__NativeString___to_s_with_length(var68, var69);
1855 var67 = var70;
1856 varonce66 = var67;
1857 }
1858 if (varonce71) {
1859 var72 = varonce71;
1860 } else {
1861 var73 = ", ";
1862 var74 = 2;
1863 var75 = standard___standard__NativeString___to_s_with_length(var73, var74);
1864 var72 = var75;
1865 varonce71 = var72;
1866 }
1867 {
1868 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
1869 var78 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
1870 var76 = var78;
1871 RET_LABEL77:(void)0;
1872 }
1873 }
1874 if (var76 == NULL) {
1875 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1876 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1556);
1877 show_backtrace(1);
1878 } else {
1879 { /* Inline parser_nodes#ANode#location (var76) on <var76:nullable ANode> */
1880 if (unlikely(var76 == NULL)) {
1881 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1882 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1883 show_backtrace(1);
1884 }
1885 var81 = var76->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <var76:nullable ANode> */
1886 if (unlikely(var81 == NULL)) {
1887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1888 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
1889 show_backtrace(1);
1890 }
1891 var79 = var81;
1892 RET_LABEL80:(void)0;
1893 }
1894 }
1895 {
1896 { /* Inline location#Location#line_start (var79) on <var79:Location> */
1897 var84 = var79->attrs[COLOR_nit__location__Location___line_start].l; /* _line_start on <var79:Location> */
1898 var82 = var84;
1899 RET_LABEL83:(void)0;
1900 }
1901 }
1902 if (varonce85) {
1903 var86 = varonce85;
1904 } else {
1905 var87 = ");";
1906 var88 = 2;
1907 var89 = standard___standard__NativeString___to_s_with_length(var87, var88);
1908 var86 = var89;
1909 varonce85 = var86;
1910 }
1911 var90 = NEW_standard__Array(&type_standard__Array__standard__Object);
1912 { /* var90 = array_instance Array[Object] */
1913 var91 = 5;
1914 var92 = NEW_standard__NativeArray(var91, &type_standard__NativeArray__standard__Object);
1915 ((struct instance_standard__NativeArray*)var92)->values[0] = (val*) var67;
1916 ((struct instance_standard__NativeArray*)var92)->values[1] = (val*) var_f;
1917 ((struct instance_standard__NativeArray*)var92)->values[2] = (val*) var72;
1918 var93 = BOX_standard__Int(var82); /* autobox from Int to Object */
1919 ((struct instance_standard__NativeArray*)var92)->values[3] = (val*) var93;
1920 ((struct instance_standard__NativeArray*)var92)->values[4] = (val*) var86;
1921 {
1922 ((void (*)(val* self, val* p0, long p1))(var90->class->vft[COLOR_standard__array__Array__with_native]))(var90, var92, var91) /* with_native on <var90:Array[Object]>*/;
1923 }
1924 }
1925 {
1926 var94 = ((val* (*)(val* self))(var90->class->vft[COLOR_standard__string__Object__to_s]))(var90) /* to_s on <var90:Array[Object]>*/;
1927 }
1928 {
1929 nit___nit__AbstractCompilerVisitor___add(self, var94); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
1930 }
1931 } else {
1932 if (varonce95) {
1933 var96 = varonce95;
1934 } else {
1935 var97 = "PRINT_ERROR(\"\\n\");";
1936 var98 = 18;
1937 var99 = standard___standard__NativeString___to_s_with_length(var97, var98);
1938 var96 = var99;
1939 varonce95 = var96;
1940 }
1941 {
1942 nit___nit__AbstractCompilerVisitor___add(self, var96); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
1943 }
1944 }
1945 if (varonce100) {
1946 var101 = varonce100;
1947 } else {
1948 var102 = "show_backtrace(1);";
1949 var103 = 18;
1950 var104 = standard___standard__NativeString___to_s_with_length(var102, var103);
1951 var101 = var104;
1952 varonce100 = var101;
1953 }
1954 {
1955 nit___nit__AbstractCompilerVisitor___add(self, var101); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
1956 }
1957 RET_LABEL:;
1958 }
1959 /* method abstract_compiler#AbstractCompilerVisitor#add_cast for (self: AbstractCompilerVisitor, RuntimeVariable, MType, String) */
1960 void nit___nit__AbstractCompilerVisitor___add_cast(val* self, val* p0, val* p1, val* p2) {
1961 val* var_value /* var value: RuntimeVariable */;
1962 val* var_mtype /* var mtype: MType */;
1963 val* var_tag /* var tag: String */;
1964 val* var /* : RuntimeVariable */;
1965 val* var_res /* var res: RuntimeVariable */;
1966 static val* varonce;
1967 val* var1 /* : String */;
1968 char* var2 /* : NativeString */;
1969 long var3 /* : Int */;
1970 val* var4 /* : FlatString */;
1971 static val* varonce5;
1972 val* var6 /* : String */;
1973 char* var7 /* : NativeString */;
1974 long var8 /* : Int */;
1975 val* var9 /* : FlatString */;
1976 val* var10 /* : Array[Object] */;
1977 long var11 /* : Int */;
1978 val* var12 /* : NativeArray[Object] */;
1979 val* var13 /* : String */;
1980 val* var14 /* : String */;
1981 val* var_cn /* var cn: String */;
1982 static val* varonce15;
1983 val* var16 /* : String */;
1984 char* var17 /* : NativeString */;
1985 long var18 /* : Int */;
1986 val* var19 /* : FlatString */;
1987 val* var20 /* : String */;
1988 val* var21 /* : String */;
1989 static val* varonce22;
1990 val* var23 /* : String */;
1991 char* var24 /* : NativeString */;
1992 long var25 /* : Int */;
1993 val* var26 /* : FlatString */;
1994 static val* varonce27;
1995 val* var28 /* : String */;
1996 char* var29 /* : NativeString */;
1997 long var30 /* : Int */;
1998 val* var31 /* : FlatString */;
1999 val* var32 /* : Array[Object] */;
2000 long var33 /* : Int */;
2001 val* var34 /* : NativeArray[Object] */;
2002 val* var35 /* : String */;
2003 static val* varonce36;
2004 val* var37 /* : String */;
2005 char* var38 /* : NativeString */;
2006 long var39 /* : Int */;
2007 val* var40 /* : FlatString */;
2008 var_value = p0;
2009 var_mtype = p1;
2010 var_tag = p2;
2011 {
2012 var = ((val* (*)(val* self, val* p0, val* p1, val* p2))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__type_test]))(self, var_value, var_mtype, var_tag) /* type_test on <self:AbstractCompilerVisitor>*/;
2013 }
2014 var_res = var;
2015 if (varonce) {
2016 var1 = varonce;
2017 } else {
2018 var2 = "if (unlikely(!";
2019 var3 = 14;
2020 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
2021 var1 = var4;
2022 varonce = var1;
2023 }
2024 if (varonce5) {
2025 var6 = varonce5;
2026 } else {
2027 var7 = ")) {";
2028 var8 = 4;
2029 var9 = standard___standard__NativeString___to_s_with_length(var7, var8);
2030 var6 = var9;
2031 varonce5 = var6;
2032 }
2033 var10 = NEW_standard__Array(&type_standard__Array__standard__Object);
2034 { /* var10 = array_instance Array[Object] */
2035 var11 = 3;
2036 var12 = NEW_standard__NativeArray(var11, &type_standard__NativeArray__standard__Object);
2037 ((struct instance_standard__NativeArray*)var12)->values[0] = (val*) var1;
2038 ((struct instance_standard__NativeArray*)var12)->values[1] = (val*) var_res;
2039 ((struct instance_standard__NativeArray*)var12)->values[2] = (val*) var6;
2040 {
2041 ((void (*)(val* self, val* p0, long p1))(var10->class->vft[COLOR_standard__array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
2042 }
2043 }
2044 {
2045 var13 = ((val* (*)(val* self))(var10->class->vft[COLOR_standard__string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
2046 }
2047 {
2048 nit___nit__AbstractCompilerVisitor___add(self, var13); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
2049 }
2050 {
2051 var14 = ((val* (*)(val* self, val* p0))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(self, var_value) /* class_name_string on <self:AbstractCompilerVisitor>*/;
2052 }
2053 var_cn = var14;
2054 if (varonce15) {
2055 var16 = varonce15;
2056 } else {
2057 var17 = "PRINT_ERROR(\"Runtime error: Cast failed. Expected `%s`, got `%s`\", \"";
2058 var18 = 68;
2059 var19 = standard___standard__NativeString___to_s_with_length(var17, var18);
2060 var16 = var19;
2061 varonce15 = var16;
2062 }
2063 {
2064 var20 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_standard__string__Object__to_s]))(var_mtype) /* to_s on <var_mtype:MType>*/;
2065 }
2066 {
2067 var21 = standard___standard__Text___escape_to_c(var20);
2068 }
2069 if (varonce22) {
2070 var23 = varonce22;
2071 } else {
2072 var24 = "\", ";
2073 var25 = 3;
2074 var26 = standard___standard__NativeString___to_s_with_length(var24, var25);
2075 var23 = var26;
2076 varonce22 = var23;
2077 }
2078 if (varonce27) {
2079 var28 = varonce27;
2080 } else {
2081 var29 = ");";
2082 var30 = 2;
2083 var31 = standard___standard__NativeString___to_s_with_length(var29, var30);
2084 var28 = var31;
2085 varonce27 = var28;
2086 }
2087 var32 = NEW_standard__Array(&type_standard__Array__standard__Object);
2088 { /* var32 = array_instance Array[Object] */
2089 var33 = 5;
2090 var34 = NEW_standard__NativeArray(var33, &type_standard__NativeArray__standard__Object);
2091 ((struct instance_standard__NativeArray*)var34)->values[0] = (val*) var16;
2092 ((struct instance_standard__NativeArray*)var34)->values[1] = (val*) var21;
2093 ((struct instance_standard__NativeArray*)var34)->values[2] = (val*) var23;
2094 ((struct instance_standard__NativeArray*)var34)->values[3] = (val*) var_cn;
2095 ((struct instance_standard__NativeArray*)var34)->values[4] = (val*) var28;
2096 {
2097 ((void (*)(val* self, val* p0, long p1))(var32->class->vft[COLOR_standard__array__Array__with_native]))(var32, var34, var33) /* with_native on <var32:Array[Object]>*/;
2098 }
2099 }
2100 {
2101 var35 = ((val* (*)(val* self))(var32->class->vft[COLOR_standard__string__Object__to_s]))(var32) /* to_s on <var32:Array[Object]>*/;
2102 }
2103 {
2104 nit___nit__AbstractCompilerVisitor___add(self, var35); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
2105 }
2106 {
2107 nit___nit__AbstractCompilerVisitor___add_raw_abort(self); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_raw_abort on <self:AbstractCompilerVisitor>*/
2108 }
2109 if (varonce36) {
2110 var37 = varonce36;
2111 } else {
2112 var38 = "}";
2113 var39 = 1;
2114 var40 = standard___standard__NativeString___to_s_with_length(var38, var39);
2115 var37 = var40;
2116 varonce36 = var37;
2117 }
2118 {
2119 nit___nit__AbstractCompilerVisitor___add(self, var37); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
2120 }
2121 RET_LABEL:;
2122 }
2123 /* method abstract_compiler#AbstractCompilerVisitor#ret for (self: AbstractCompilerVisitor, RuntimeVariable) */
2124 void nit___nit__AbstractCompilerVisitor___ret(val* self, val* p0) {
2125 val* var_s /* var s: RuntimeVariable */;
2126 val* var /* : nullable StaticFrame */;
2127 val* var2 /* : nullable StaticFrame */;
2128 val* var3 /* : nullable RuntimeVariable */;
2129 val* var5 /* : nullable RuntimeVariable */;
2130 static val* varonce;
2131 val* var6 /* : String */;
2132 char* var7 /* : NativeString */;
2133 long var8 /* : Int */;
2134 val* var9 /* : FlatString */;
2135 val* var10 /* : nullable StaticFrame */;
2136 val* var12 /* : nullable StaticFrame */;
2137 val* var13 /* : nullable String */;
2138 val* var15 /* : nullable String */;
2139 static val* varonce16;
2140 val* var17 /* : String */;
2141 char* var18 /* : NativeString */;
2142 long var19 /* : Int */;
2143 val* var20 /* : FlatString */;
2144 val* var21 /* : Array[Object] */;
2145 long var22 /* : Int */;
2146 val* var23 /* : NativeArray[Object] */;
2147 val* var24 /* : String */;
2148 var_s = p0;
2149 {
2150 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
2151 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
2152 var = var2;
2153 RET_LABEL1:(void)0;
2154 }
2155 }
2156 if (var == NULL) {
2157 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1577);
2159 show_backtrace(1);
2160 } else {
2161 { /* Inline abstract_compiler#StaticFrame#returnvar (var) on <var:nullable StaticFrame> */
2162 if (unlikely(var == NULL)) {
2163 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2164 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1734);
2165 show_backtrace(1);
2166 }
2167 var5 = var->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var:nullable StaticFrame> */
2168 var3 = var5;
2169 RET_LABEL4:(void)0;
2170 }
2171 }
2172 if (unlikely(var3 == NULL)) {
2173 PRINT_ERROR("Runtime error: %s", "Cast failed");
2174 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1577);
2175 show_backtrace(1);
2176 }
2177 {
2178 nit___nit__AbstractCompilerVisitor___assign(self, var3, var_s); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <self:AbstractCompilerVisitor>*/
2179 }
2180 if (varonce) {
2181 var6 = varonce;
2182 } else {
2183 var7 = "goto ";
2184 var8 = 5;
2185 var9 = standard___standard__NativeString___to_s_with_length(var7, var8);
2186 var6 = var9;
2187 varonce = var6;
2188 }
2189 {
2190 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
2191 var12 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
2192 var10 = var12;
2193 RET_LABEL11:(void)0;
2194 }
2195 }
2196 if (var10 == NULL) {
2197 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1578);
2199 show_backtrace(1);
2200 } else {
2201 { /* Inline abstract_compiler#StaticFrame#returnlabel (var10) on <var10:nullable StaticFrame> */
2202 if (unlikely(var10 == NULL)) {
2203 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2204 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1737);
2205 show_backtrace(1);
2206 }
2207 var15 = var10->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var10:nullable StaticFrame> */
2208 var13 = var15;
2209 RET_LABEL14:(void)0;
2210 }
2211 }
2212 if (unlikely(var13 == NULL)) {
2213 PRINT_ERROR("Runtime error: %s", "Cast failed");
2214 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1578);
2215 show_backtrace(1);
2216 }
2217 if (varonce16) {
2218 var17 = varonce16;
2219 } else {
2220 var18 = ";";
2221 var19 = 1;
2222 var20 = standard___standard__NativeString___to_s_with_length(var18, var19);
2223 var17 = var20;
2224 varonce16 = var17;
2225 }
2226 var21 = NEW_standard__Array(&type_standard__Array__standard__Object);
2227 { /* var21 = array_instance Array[Object] */
2228 var22 = 3;
2229 var23 = NEW_standard__NativeArray(var22, &type_standard__NativeArray__standard__Object);
2230 ((struct instance_standard__NativeArray*)var23)->values[0] = (val*) var6;
2231 ((struct instance_standard__NativeArray*)var23)->values[1] = (val*) var13;
2232 ((struct instance_standard__NativeArray*)var23)->values[2] = (val*) var17;
2233 {
2234 ((void (*)(val* self, val* p0, long p1))(var21->class->vft[COLOR_standard__array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[Object]>*/;
2235 }
2236 }
2237 {
2238 var24 = ((val* (*)(val* self))(var21->class->vft[COLOR_standard__string__Object__to_s]))(var21) /* to_s on <var21:Array[Object]>*/;
2239 }
2240 {
2241 nit___nit__AbstractCompilerVisitor___add(self, var24); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
2242 }
2243 RET_LABEL:;
2244 }
2245 /* method abstract_compiler#AbstractCompilerVisitor#stmt for (self: AbstractCompilerVisitor, nullable AExpr) */
2246 void nit___nit__AbstractCompilerVisitor___stmt(val* self, val* p0) {
2247 val* var_nexpr /* var nexpr: nullable AExpr */;
2248 val* var /* : null */;
2249 short int var1 /* : Bool */;
2250 short int var2 /* : Bool */;
2251 val* var_other /* var other: nullable Object */;
2252 short int var4 /* : Bool */;
2253 short int var6 /* : Bool */;
2254 val* var7 /* : nullable AArrayExpr */;
2255 val* var9 /* : nullable AArrayExpr */;
2256 val* var_narray /* var narray: nullable AArrayExpr */;
2257 val* var10 /* : null */;
2258 short int var11 /* : Bool */;
2259 short int var12 /* : Bool */;
2260 val* var_other14 /* var other: nullable Object */;
2261 short int var15 /* : Bool */;
2262 short int var16 /* : Bool */;
2263 val* var17 /* : nullable StaticFrame */;
2264 val* var19 /* : nullable StaticFrame */;
2265 val* var20 /* : nullable RuntimeVariable */;
2266 val* var22 /* : nullable RuntimeVariable */;
2267 val* var_recv /* var recv: RuntimeVariable */;
2268 val* var23 /* : nullable MType */;
2269 val* var25 /* : nullable MType */;
2270 val* var26 /* : RuntimeVariable */;
2271 val* var_val /* var val: RuntimeVariable */;
2272 val* var27 /* : nullable CallSite */;
2273 val* var29 /* : nullable CallSite */;
2274 val* var30 /* : Array[RuntimeVariable] */;
2275 long var31 /* : Int */;
2276 val* var_ /* var : Array[RuntimeVariable] */;
2277 val* var32 /* : nullable RuntimeVariable */;
2278 val* var33 /* : nullable ANode */;
2279 val* var35 /* : nullable ANode */;
2280 val* var_old /* var old: nullable ANode */;
2281 var_nexpr = p0;
2282 var = NULL;
2283 if (var_nexpr == NULL) {
2284 var1 = 1; /* is null */
2285 } else {
2286 var1 = 0; /* arg is null but recv is not */
2287 }
2288 if (0) {
2289 { /* Inline kernel#Object#== (var_nexpr,var) on <var_nexpr:nullable AExpr> */
2290 var_other = var;
2291 {
2292 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
2293 var6 = var_nexpr == var_other;
2294 var4 = var6;
2295 goto RET_LABEL5;
2296 RET_LABEL5:(void)0;
2297 }
2298 }
2299 var2 = var4;
2300 goto RET_LABEL3;
2301 RET_LABEL3:(void)0;
2302 }
2303 var1 = var2;
2304 }
2305 if (var1){
2306 goto RET_LABEL;
2307 } else {
2308 }
2309 {
2310 { /* Inline typing#AExpr#comprehension (var_nexpr) on <var_nexpr:nullable AExpr(AExpr)> */
2311 var9 = var_nexpr->attrs[COLOR_nit__typing__AExpr___comprehension].val; /* _comprehension on <var_nexpr:nullable AExpr(AExpr)> */
2312 var7 = var9;
2313 RET_LABEL8:(void)0;
2314 }
2315 }
2316 var_narray = var7;
2317 var10 = NULL;
2318 if (var_narray == NULL) {
2319 var11 = 0; /* is null */
2320 } else {
2321 var11 = 1; /* arg is null and recv is not */
2322 }
2323 if (0) {
2324 { /* Inline kernel#Object#!= (var_narray,var10) on <var_narray:nullable AArrayExpr> */
2325 var_other14 = var10;
2326 {
2327 var15 = ((short int (*)(val* self, val* p0))(var_narray->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_narray, var_other14) /* == on <var_narray:nullable AArrayExpr(AArrayExpr)>*/;
2328 }
2329 var16 = !var15;
2330 var12 = var16;
2331 goto RET_LABEL13;
2332 RET_LABEL13:(void)0;
2333 }
2334 var11 = var12;
2335 }
2336 if (var11){
2337 {
2338 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
2339 var19 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
2340 var17 = var19;
2341 RET_LABEL18:(void)0;
2342 }
2343 }
2344 if (var17 == NULL) {
2345 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2346 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1588);
2347 show_backtrace(1);
2348 } else {
2349 { /* Inline abstract_compiler#StaticFrame#comprehension (var17) on <var17:nullable StaticFrame> */
2350 if (unlikely(var17 == NULL)) {
2351 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2352 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1744);
2353 show_backtrace(1);
2354 }
2355 var22 = var17->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on <var17:nullable StaticFrame> */
2356 var20 = var22;
2357 RET_LABEL21:(void)0;
2358 }
2359 }
2360 if (unlikely(var20 == NULL)) {
2361 PRINT_ERROR("Runtime error: %s", "Cast failed");
2362 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1588);
2363 show_backtrace(1);
2364 }
2365 var_recv = var20;
2366 {
2367 { /* Inline typing#AArrayExpr#element_mtype (var_narray) on <var_narray:nullable AArrayExpr(AArrayExpr)> */
2368 var25 = var_narray->attrs[COLOR_nit__typing__AArrayExpr___element_mtype].val; /* _element_mtype on <var_narray:nullable AArrayExpr(AArrayExpr)> */
2369 var23 = var25;
2370 RET_LABEL24:(void)0;
2371 }
2372 }
2373 {
2374 var26 = nit___nit__AbstractCompilerVisitor___expr(self, var_nexpr, var23);
2375 }
2376 var_val = var26;
2377 {
2378 { /* Inline typing#AArrayExpr#push_callsite (var_narray) on <var_narray:nullable AArrayExpr(AArrayExpr)> */
2379 var29 = var_narray->attrs[COLOR_nit__typing__AArrayExpr___push_callsite].val; /* _push_callsite on <var_narray:nullable AArrayExpr(AArrayExpr)> */
2380 var27 = var29;
2381 RET_LABEL28:(void)0;
2382 }
2383 }
2384 if (unlikely(var27 == NULL)) {
2385 PRINT_ERROR("Runtime error: %s", "Cast failed");
2386 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1590);
2387 show_backtrace(1);
2388 }
2389 var30 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
2390 var31 = 2;
2391 {
2392 standard___standard__Array___with_capacity(var30, var31); /* Direct call array#Array#with_capacity on <var30:Array[RuntimeVariable]>*/
2393 }
2394 var_ = var30;
2395 {
2396 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
2397 }
2398 {
2399 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var_val); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
2400 }
2401 {
2402 var32 = ((val* (*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(self, var27, var_) /* compile_callsite on <self:AbstractCompilerVisitor>*/;
2403 }
2404 goto RET_LABEL;
2405 } else {
2406 }
2407 {
2408 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
2409 var35 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
2410 var33 = var35;
2411 RET_LABEL34:(void)0;
2412 }
2413 }
2414 var_old = var33;
2415 {
2416 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (self,var_nexpr) on <self:AbstractCompilerVisitor> */
2417 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_nexpr; /* _current_node on <self:AbstractCompilerVisitor> */
2418 RET_LABEL36:(void)0;
2419 }
2420 }
2421 {
2422 ((void (*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_nit__abstract_compiler__AExpr__stmt]))(var_nexpr, self) /* stmt on <var_nexpr:nullable AExpr(AExpr)>*/;
2423 }
2424 {
2425 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (self,var_old) on <self:AbstractCompilerVisitor> */
2426 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_old; /* _current_node on <self:AbstractCompilerVisitor> */
2427 RET_LABEL37:(void)0;
2428 }
2429 }
2430 RET_LABEL:;
2431 }
2432 /* method abstract_compiler#AbstractCompilerVisitor#expr for (self: AbstractCompilerVisitor, AExpr, nullable MType): RuntimeVariable */
2433 val* nit___nit__AbstractCompilerVisitor___expr(val* self, val* p0, val* p1) {
2434 val* var /* : RuntimeVariable */;
2435 val* var_nexpr /* var nexpr: AExpr */;
2436 val* var_mtype /* var mtype: nullable MType */;
2437 val* var1 /* : nullable ANode */;
2438 val* var3 /* : nullable ANode */;
2439 val* var_old /* var old: nullable ANode */;
2440 val* var5 /* : nullable RuntimeVariable */;
2441 val* var_res /* var res: RuntimeVariable */;
2442 val* var6 /* : null */;
2443 short int var7 /* : Bool */;
2444 short int var8 /* : Bool */;
2445 val* var_other /* var other: nullable Object */;
2446 short int var10 /* : Bool */;
2447 short int var11 /* : Bool */;
2448 val* var12 /* : MType */;
2449 val* var13 /* : RuntimeVariable */;
2450 val* var14 /* : nullable MType */;
2451 val* var15 /* : RuntimeVariable */;
2452 val* var16 /* : nullable MType */;
2453 val* var18 /* : nullable MType */;
2454 val* var_implicit_cast_to /* var implicit_cast_to: nullable MType */;
2455 short int var19 /* : Bool */;
2456 val* var20 /* : null */;
2457 short int var21 /* : Bool */;
2458 short int var22 /* : Bool */;
2459 short int var24 /* : Bool */;
2460 short int var25 /* : Bool */;
2461 short int var_ /* var : Bool */;
2462 val* var26 /* : AbstractCompiler */;
2463 val* var28 /* : AbstractCompiler */;
2464 val* var29 /* : ModelBuilder */;
2465 val* var31 /* : ModelBuilder */;
2466 val* var32 /* : ToolContext */;
2467 val* var34 /* : ToolContext */;
2468 val* var35 /* : OptionBool */;
2469 val* var37 /* : OptionBool */;
2470 val* var38 /* : nullable Object */;
2471 val* var40 /* : nullable Object */;
2472 short int var41 /* : Bool */;
2473 short int var42 /* : Bool */;
2474 static val* varonce;
2475 val* var43 /* : String */;
2476 char* var44 /* : NativeString */;
2477 long var45 /* : Int */;
2478 val* var46 /* : FlatString */;
2479 val* var47 /* : RuntimeVariable */;
2480 var_nexpr = p0;
2481 var_mtype = p1;
2482 {
2483 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
2484 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
2485 var1 = var3;
2486 RET_LABEL2:(void)0;
2487 }
2488 }
2489 var_old = var1;
2490 {
2491 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (self,var_nexpr) on <self:AbstractCompilerVisitor> */
2492 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_nexpr; /* _current_node on <self:AbstractCompilerVisitor> */
2493 RET_LABEL4:(void)0;
2494 }
2495 }
2496 {
2497 var5 = ((val* (*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_nit__abstract_compiler__AExpr__expr]))(var_nexpr, self) /* expr on <var_nexpr:AExpr>*/;
2498 }
2499 if (unlikely(var5 == NULL)) {
2500 PRINT_ERROR("Runtime error: %s", "Cast failed");
2501 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1606);
2502 show_backtrace(1);
2503 }
2504 var_res = var5;
2505 var6 = NULL;
2506 if (var_mtype == NULL) {
2507 var7 = 0; /* is null */
2508 } else {
2509 var7 = 1; /* arg is null and recv is not */
2510 }
2511 if (0) {
2512 { /* Inline kernel#Object#!= (var_mtype,var6) on <var_mtype:nullable MType> */
2513 var_other = var6;
2514 {
2515 var10 = ((short int (*)(val* self, val* p0))(var_mtype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_mtype, var_other) /* == on <var_mtype:nullable MType(MType)>*/;
2516 }
2517 var11 = !var10;
2518 var8 = var11;
2519 goto RET_LABEL9;
2520 RET_LABEL9:(void)0;
2521 }
2522 var7 = var8;
2523 }
2524 if (var7){
2525 {
2526 var12 = nit___nit__AbstractCompilerVisitor___anchor(self, var_mtype);
2527 }
2528 var_mtype = var12;
2529 {
2530 var13 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_res, var_mtype);
2531 }
2532 var_res = var13;
2533 } else {
2534 }
2535 {
2536 var14 = ((val* (*)(val* self))(var_nexpr->class->vft[COLOR_nit__typing__AExpr__mtype]))(var_nexpr) /* mtype on <var_nexpr:AExpr>*/;
2537 }
2538 if (unlikely(var14 == NULL)) {
2539 PRINT_ERROR("Runtime error: %s", "Cast failed");
2540 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1611);
2541 show_backtrace(1);
2542 }
2543 {
2544 var15 = nit___nit__AbstractCompilerVisitor___autoadapt(self, var_res, var14);
2545 }
2546 var_res = var15;
2547 {
2548 { /* Inline typing#AExpr#implicit_cast_to (var_nexpr) on <var_nexpr:AExpr> */
2549 var18 = var_nexpr->attrs[COLOR_nit__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on <var_nexpr:AExpr> */
2550 var16 = var18;
2551 RET_LABEL17:(void)0;
2552 }
2553 }
2554 var_implicit_cast_to = var16;
2555 var20 = NULL;
2556 if (var_implicit_cast_to == NULL) {
2557 var21 = 0; /* is null */
2558 } else {
2559 var21 = 1; /* arg is null and recv is not */
2560 }
2561 if (0) {
2562 { /* Inline kernel#Object#!= (var_implicit_cast_to,var20) on <var_implicit_cast_to:nullable MType> */
2563 var_other = var20;
2564 {
2565 var24 = ((short int (*)(val* self, val* p0))(var_implicit_cast_to->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_implicit_cast_to, var_other) /* == on <var_implicit_cast_to:nullable MType(MType)>*/;
2566 }
2567 var25 = !var24;
2568 var22 = var25;
2569 goto RET_LABEL23;
2570 RET_LABEL23:(void)0;
2571 }
2572 var21 = var22;
2573 }
2574 var_ = var21;
2575 if (var21){
2576 {
2577 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
2578 var28 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
2579 if (unlikely(var28 == NULL)) {
2580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2581 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
2582 show_backtrace(1);
2583 }
2584 var26 = var28;
2585 RET_LABEL27:(void)0;
2586 }
2587 }
2588 {
2589 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var26) on <var26:AbstractCompiler> */
2590 var31 = var26->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var26:AbstractCompiler> */
2591 if (unlikely(var31 == NULL)) {
2592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2593 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
2594 show_backtrace(1);
2595 }
2596 var29 = var31;
2597 RET_LABEL30:(void)0;
2598 }
2599 }
2600 {
2601 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var29) on <var29:ModelBuilder> */
2602 var34 = var29->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var29:ModelBuilder> */
2603 if (unlikely(var34 == NULL)) {
2604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2605 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
2606 show_backtrace(1);
2607 }
2608 var32 = var34;
2609 RET_LABEL33:(void)0;
2610 }
2611 }
2612 {
2613 { /* Inline abstract_compiler#ToolContext#opt_no_check_autocast (var32) on <var32:ToolContext> */
2614 var37 = var32->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_autocast].val; /* _opt_no_check_autocast on <var32:ToolContext> */
2615 if (unlikely(var37 == NULL)) {
2616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_autocast");
2617 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 53);
2618 show_backtrace(1);
2619 }
2620 var35 = var37;
2621 RET_LABEL36:(void)0;
2622 }
2623 }
2624 {
2625 { /* Inline opts#Option#value (var35) on <var35:OptionBool> */
2626 var40 = var35->attrs[COLOR_opts__Option___value].val; /* _value on <var35:OptionBool> */
2627 var38 = var40;
2628 RET_LABEL39:(void)0;
2629 }
2630 }
2631 var41 = ((struct instance_standard__Bool*)var38)->value; /* autounbox from nullable Object to Bool */;
2632 var42 = !var41;
2633 var19 = var42;
2634 } else {
2635 var19 = var_;
2636 }
2637 if (var19){
2638 if (varonce) {
2639 var43 = varonce;
2640 } else {
2641 var44 = "auto";
2642 var45 = 4;
2643 var46 = standard___standard__NativeString___to_s_with_length(var44, var45);
2644 var43 = var46;
2645 varonce = var43;
2646 }
2647 {
2648 nit___nit__AbstractCompilerVisitor___add_cast(self, var_res, var_implicit_cast_to, var43); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_cast on <self:AbstractCompilerVisitor>*/
2649 }
2650 {
2651 var47 = nit___nit__AbstractCompilerVisitor___autoadapt(self, var_res, var_implicit_cast_to);
2652 }
2653 var_res = var47;
2654 } else {
2655 }
2656 {
2657 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (self,var_old) on <self:AbstractCompilerVisitor> */
2658 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_old; /* _current_node on <self:AbstractCompilerVisitor> */
2659 RET_LABEL48:(void)0;
2660 }
2661 }
2662 var = var_res;
2663 goto RET_LABEL;
2664 RET_LABEL:;
2665 return var;
2666 }
2667 /* method abstract_compiler#AbstractCompilerVisitor#expr_bool for (self: AbstractCompilerVisitor, AExpr): RuntimeVariable */
2668 val* nit___nit__AbstractCompilerVisitor___expr_bool(val* self, val* p0) {
2669 val* var /* : RuntimeVariable */;
2670 val* var_nexpr /* var nexpr: AExpr */;
2671 val* var1 /* : MClassType */;
2672 val* var2 /* : RuntimeVariable */;
2673 var_nexpr = p0;
2674 {
2675 var1 = nit___nit__AbstractCompilerVisitor___bool_type(self);
2676 }
2677 {
2678 var2 = nit___nit__AbstractCompilerVisitor___expr(self, var_nexpr, var1);
2679 }
2680 var = var2;
2681 goto RET_LABEL;
2682 RET_LABEL:;
2683 return var;
2684 }
2685 /* method abstract_compiler#AbstractCompilerVisitor#debug for (self: AbstractCompilerVisitor, String) */
2686 void nit___nit__AbstractCompilerVisitor___debug(val* self, val* p0) {
2687 val* var_message /* var message: String */;
2688 val* var /* : nullable ANode */;
2689 val* var2 /* : nullable ANode */;
2690 val* var_node /* var node: nullable ANode */;
2691 val* var3 /* : null */;
2692 short int var4 /* : Bool */;
2693 short int var5 /* : Bool */;
2694 val* var_other /* var other: nullable Object */;
2695 short int var7 /* : Bool */;
2696 short int var9 /* : Bool */;
2697 static val* varonce;
2698 val* var10 /* : String */;
2699 char* var11 /* : NativeString */;
2700 long var12 /* : Int */;
2701 val* var13 /* : FlatString */;
2702 val* var14 /* : Array[Object] */;
2703 long var15 /* : Int */;
2704 val* var16 /* : NativeArray[Object] */;
2705 val* var17 /* : String */;
2706 static val* varonce18;
2707 val* var19 /* : String */;
2708 char* var20 /* : NativeString */;
2709 long var21 /* : Int */;
2710 val* var22 /* : FlatString */;
2711 static val* varonce23;
2712 val* var24 /* : String */;
2713 char* var25 /* : NativeString */;
2714 long var26 /* : Int */;
2715 val* var27 /* : FlatString */;
2716 val* var28 /* : Array[Object] */;
2717 long var29 /* : Int */;
2718 val* var30 /* : NativeArray[Object] */;
2719 val* var31 /* : String */;
2720 var_message = p0;
2721 {
2722 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
2723 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
2724 var = var2;
2725 RET_LABEL1:(void)0;
2726 }
2727 }
2728 var_node = var;
2729 var3 = NULL;
2730 if (var_node == NULL) {
2731 var4 = 1; /* is null */
2732 } else {
2733 var4 = 0; /* arg is null but recv is not */
2734 }
2735 if (0) {
2736 { /* Inline kernel#Object#== (var_node,var3) on <var_node:nullable ANode> */
2737 var_other = var3;
2738 {
2739 { /* Inline kernel#Object#is_same_instance (var_node,var_other) on <var_node:nullable ANode(ANode)> */
2740 var9 = var_node == var_other;
2741 var7 = var9;
2742 goto RET_LABEL8;
2743 RET_LABEL8:(void)0;
2744 }
2745 }
2746 var5 = var7;
2747 goto RET_LABEL6;
2748 RET_LABEL6:(void)0;
2749 }
2750 var4 = var5;
2751 }
2752 if (var4){
2753 if (varonce) {
2754 var10 = varonce;
2755 } else {
2756 var11 = "?: ";
2757 var12 = 3;
2758 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
2759 var10 = var13;
2760 varonce = var10;
2761 }
2762 var14 = NEW_standard__Array(&type_standard__Array__standard__Object);
2763 { /* var14 = array_instance Array[Object] */
2764 var15 = 2;
2765 var16 = NEW_standard__NativeArray(var15, &type_standard__NativeArray__standard__Object);
2766 ((struct instance_standard__NativeArray*)var16)->values[0] = (val*) var10;
2767 ((struct instance_standard__NativeArray*)var16)->values[1] = (val*) var_message;
2768 {
2769 ((void (*)(val* self, val* p0, long p1))(var14->class->vft[COLOR_standard__array__Array__with_native]))(var14, var16, var15) /* with_native on <var14:Array[Object]>*/;
2770 }
2771 }
2772 {
2773 var17 = ((val* (*)(val* self))(var14->class->vft[COLOR_standard__string__Object__to_s]))(var14) /* to_s on <var14:Array[Object]>*/;
2774 }
2775 {
2776 standard__file___Object___print(self, var17); /* Direct call file#Object#print on <self:AbstractCompilerVisitor>*/
2777 }
2778 } else {
2779 {
2780 nit___nit__ANode___debug(var_node, var_message); /* Direct call parser_nodes#ANode#debug on <var_node:nullable ANode(ANode)>*/
2781 }
2782 }
2783 if (varonce18) {
2784 var19 = varonce18;
2785 } else {
2786 var20 = "/* DEBUG: ";
2787 var21 = 10;
2788 var22 = standard___standard__NativeString___to_s_with_length(var20, var21);
2789 var19 = var22;
2790 varonce18 = var19;
2791 }
2792 if (varonce23) {
2793 var24 = varonce23;
2794 } else {
2795 var25 = " */";
2796 var26 = 3;
2797 var27 = standard___standard__NativeString___to_s_with_length(var25, var26);
2798 var24 = var27;
2799 varonce23 = var24;
2800 }
2801 var28 = NEW_standard__Array(&type_standard__Array__standard__Object);
2802 { /* var28 = array_instance Array[Object] */
2803 var29 = 3;
2804 var30 = NEW_standard__NativeArray(var29, &type_standard__NativeArray__standard__Object);
2805 ((struct instance_standard__NativeArray*)var30)->values[0] = (val*) var19;
2806 ((struct instance_standard__NativeArray*)var30)->values[1] = (val*) var_message;
2807 ((struct instance_standard__NativeArray*)var30)->values[2] = (val*) var24;
2808 {
2809 ((void (*)(val* self, val* p0, long p1))(var28->class->vft[COLOR_standard__array__Array__with_native]))(var28, var30, var29) /* with_native on <var28:Array[Object]>*/;
2810 }
2811 }
2812 {
2813 var31 = ((val* (*)(val* self))(var28->class->vft[COLOR_standard__string__Object__to_s]))(var28) /* to_s on <var28:Array[Object]>*/;
2814 }
2815 {
2816 nit___nit__AbstractCompilerVisitor___add(self, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
2817 }
2818 RET_LABEL:;
2819 }
2820 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef for (self: AbstractRuntimeFunction): MMethodDef */
2821 val* nit___nit__AbstractRuntimeFunction___mmethoddef(val* self) {
2822 val* var /* : MMethodDef */;
2823 val* var1 /* : MMethodDef */;
2824 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:AbstractRuntimeFunction> */
2825 if (unlikely(var1 == NULL)) {
2826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
2827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1644);
2828 show_backtrace(1);
2829 }
2830 var = var1;
2831 RET_LABEL:;
2832 return var;
2833 }
2834 /* method abstract_compiler#AbstractRuntimeFunction#mmethoddef= for (self: AbstractRuntimeFunction, MMethodDef) */
2835 void nit___nit__AbstractRuntimeFunction___mmethoddef_61d(val* self, val* p0) {
2836 self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val = p0; /* _mmethoddef on <self:AbstractRuntimeFunction> */
2837 RET_LABEL:;
2838 }
2839 /* method abstract_compiler#AbstractRuntimeFunction#c_name for (self: AbstractRuntimeFunction): String */
2840 val* nit___nit__AbstractRuntimeFunction___c_name(val* self) {
2841 val* var /* : String */;
2842 val* var1 /* : nullable String */;
2843 val* var3 /* : nullable String */;
2844 val* var_res /* var res: nullable String */;
2845 val* var4 /* : null */;
2846 short int var5 /* : Bool */;
2847 short int var6 /* : Bool */;
2848 val* var_other /* var other: nullable Object */;
2849 short int var8 /* : Bool */;
2850 short int var9 /* : Bool */;
2851 val* var10 /* : String */;
2852 val* var12 /* : String */;
2853 {
2854 { /* Inline abstract_compiler#AbstractRuntimeFunction#c_name_cache (self) on <self:AbstractRuntimeFunction> */
2855 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val; /* _c_name_cache on <self:AbstractRuntimeFunction> */
2856 var1 = var3;
2857 RET_LABEL2:(void)0;
2858 }
2859 }
2860 var_res = var1;
2861 var4 = NULL;
2862 if (var_res == NULL) {
2863 var5 = 0; /* is null */
2864 } else {
2865 var5 = 1; /* arg is null and recv is not */
2866 }
2867 if (0) {
2868 { /* Inline kernel#Object#!= (var_res,var4) on <var_res:nullable String> */
2869 var_other = var4;
2870 {
2871 var8 = ((short int (*)(val* self, val* p0))(var_res->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_res, var_other) /* == on <var_res:nullable String(String)>*/;
2872 }
2873 var9 = !var8;
2874 var6 = var9;
2875 goto RET_LABEL7;
2876 RET_LABEL7:(void)0;
2877 }
2878 var5 = var6;
2879 }
2880 if (var5){
2881 var = var_res;
2882 goto RET_LABEL;
2883 } else {
2884 }
2885 {
2886 { /* Inline separate_compiler#SeparateRuntimeFunction#build_c_name (self) on <self:AbstractRuntimeFunction> */
2887 var12 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___build_c_name].val; /* _build_c_name on <self:AbstractRuntimeFunction> */
2888 if (unlikely(var12 == NULL)) {
2889 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _build_c_name");
2890 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1851);
2891 show_backtrace(1);
2892 }
2893 var10 = var12;
2894 RET_LABEL11:(void)0;
2895 }
2896 }
2897 var_res = var10;
2898 {
2899 { /* Inline abstract_compiler#AbstractRuntimeFunction#c_name_cache= (self,var_res) on <self:AbstractRuntimeFunction> */
2900 self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val = var_res; /* _c_name_cache on <self:AbstractRuntimeFunction> */
2901 RET_LABEL13:(void)0;
2902 }
2903 }
2904 var = var_res;
2905 goto RET_LABEL;
2906 RET_LABEL:;
2907 return var;
2908 }
2909 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache for (self: AbstractRuntimeFunction): nullable String */
2910 val* nit___nit__AbstractRuntimeFunction___c_name_cache(val* self) {
2911 val* var /* : nullable String */;
2912 val* var1 /* : nullable String */;
2913 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val; /* _c_name_cache on <self:AbstractRuntimeFunction> */
2914 var = var1;
2915 RET_LABEL:;
2916 return var;
2917 }
2918 /* method abstract_compiler#AbstractRuntimeFunction#c_name_cache= for (self: AbstractRuntimeFunction, nullable String) */
2919 void nit___nit__AbstractRuntimeFunction___c_name_cache_61d(val* self, val* p0) {
2920 self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___c_name_cache].val = p0; /* _c_name_cache on <self:AbstractRuntimeFunction> */
2921 RET_LABEL:;
2922 }
2923 /* method abstract_compiler#AbstractRuntimeFunction#init for (self: AbstractRuntimeFunction) */
2924 void nit___nit__AbstractRuntimeFunction___standard__kernel__Object__init(val* self) {
2925 {
2926 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__AbstractRuntimeFunction___standard__kernel__Object__init]))(self) /* init on <self:AbstractRuntimeFunction>*/;
2927 }
2928 RET_LABEL:;
2929 }
2930 /* method abstract_compiler#RuntimeVariable#name for (self: RuntimeVariable): String */
2931 val* nit___nit__RuntimeVariable___name(val* self) {
2932 val* var /* : String */;
2933 val* var1 /* : String */;
2934 var1 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___name].val; /* _name on <self:RuntimeVariable> */
2935 if (unlikely(var1 == NULL)) {
2936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2937 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1677);
2938 show_backtrace(1);
2939 }
2940 var = var1;
2941 RET_LABEL:;
2942 return var;
2943 }
2944 /* method abstract_compiler#RuntimeVariable#name= for (self: RuntimeVariable, String) */
2945 void nit___nit__RuntimeVariable___name_61d(val* self, val* p0) {
2946 self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___name].val = p0; /* _name on <self:RuntimeVariable> */
2947 RET_LABEL:;
2948 }
2949 /* method abstract_compiler#RuntimeVariable#mtype for (self: RuntimeVariable): MType */
2950 val* nit___nit__RuntimeVariable___mtype(val* self) {
2951 val* var /* : MType */;
2952 val* var1 /* : MType */;
2953 var1 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
2954 if (unlikely(var1 == NULL)) {
2955 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2956 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
2957 show_backtrace(1);
2958 }
2959 var = var1;
2960 RET_LABEL:;
2961 return var;
2962 }
2963 /* method abstract_compiler#RuntimeVariable#mtype= for (self: RuntimeVariable, MType) */
2964 void nit___nit__RuntimeVariable___mtype_61d(val* self, val* p0) {
2965 self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val = p0; /* _mtype on <self:RuntimeVariable> */
2966 RET_LABEL:;
2967 }
2968 /* method abstract_compiler#RuntimeVariable#mcasttype for (self: RuntimeVariable): MType */
2969 val* nit___nit__RuntimeVariable___mcasttype(val* self) {
2970 val* var /* : MType */;
2971 val* var1 /* : MType */;
2972 var1 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
2973 if (unlikely(var1 == NULL)) {
2974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
2975 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
2976 show_backtrace(1);
2977 }
2978 var = var1;
2979 RET_LABEL:;
2980 return var;
2981 }
2982 /* method abstract_compiler#RuntimeVariable#mcasttype= for (self: RuntimeVariable, MType) */
2983 void nit___nit__RuntimeVariable___mcasttype_61d(val* self, val* p0) {
2984 self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val = p0; /* _mcasttype on <self:RuntimeVariable> */
2985 RET_LABEL:;
2986 }
2987 /* method abstract_compiler#RuntimeVariable#is_exact for (self: RuntimeVariable): Bool */
2988 short int nit___nit__RuntimeVariable___is_exact(val* self) {
2989 short int var /* : Bool */;
2990 short int var1 /* : Bool */;
2991 var1 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s; /* _is_exact on <self:RuntimeVariable> */
2992 var = var1;
2993 RET_LABEL:;
2994 return var;
2995 }
2996 /* method abstract_compiler#RuntimeVariable#is_exact= for (self: RuntimeVariable, Bool) */
2997 void nit___nit__RuntimeVariable___is_exact_61d(val* self, short int p0) {
2998 self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s = p0; /* _is_exact on <self:RuntimeVariable> */
2999 RET_LABEL:;
3000 }
3001 /* method abstract_compiler#RuntimeVariable#init for (self: RuntimeVariable) */
3002 void nit___nit__RuntimeVariable___standard__kernel__Object__init(val* self) {
3003 val* var /* : MType */;
3004 val* var2 /* : MType */;
3005 short int var3 /* : Bool */;
3006 short int var4 /* : Bool */;
3007 val* var5 /* : MType */;
3008 val* var7 /* : MType */;
3009 short int var8 /* : Bool */;
3010 short int var9 /* : Bool */;
3011 {
3012 { /* Inline abstract_compiler#RuntimeVariable#mtype (self) on <self:RuntimeVariable> */
3013 var2 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
3014 if (unlikely(var2 == NULL)) {
3015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3016 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
3017 show_backtrace(1);
3018 }
3019 var = var2;
3020 RET_LABEL1:(void)0;
3021 }
3022 }
3023 {
3024 var3 = ((short int (*)(val* self))(var->class->vft[COLOR_nit__model__MType__need_anchor]))(var) /* need_anchor on <var:MType>*/;
3025 }
3026 var4 = !var3;
3027 if (unlikely(!var4)) {
3028 PRINT_ERROR("Runtime error: %s", "Assert failed");
3029 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1692);
3030 show_backtrace(1);
3031 }
3032 {
3033 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (self) on <self:RuntimeVariable> */
3034 var7 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
3035 if (unlikely(var7 == NULL)) {
3036 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
3037 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
3038 show_backtrace(1);
3039 }
3040 var5 = var7;
3041 RET_LABEL6:(void)0;
3042 }
3043 }
3044 {
3045 var8 = ((short int (*)(val* self))(var5->class->vft[COLOR_nit__model__MType__need_anchor]))(var5) /* need_anchor on <var5:MType>*/;
3046 }
3047 var9 = !var8;
3048 if (unlikely(!var9)) {
3049 PRINT_ERROR("Runtime error: %s", "Assert failed");
3050 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1693);
3051 show_backtrace(1);
3052 }
3053 RET_LABEL:;
3054 }
3055 /* method abstract_compiler#RuntimeVariable#to_s for (self: RuntimeVariable): String */
3056 val* nit___nit__RuntimeVariable___standard__string__Object__to_s(val* self) {
3057 val* var /* : String */;
3058 val* var1 /* : String */;
3059 val* var3 /* : String */;
3060 {
3061 { /* Inline abstract_compiler#RuntimeVariable#name (self) on <self:RuntimeVariable> */
3062 var3 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___name].val; /* _name on <self:RuntimeVariable> */
3063 if (unlikely(var3 == NULL)) {
3064 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3065 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1677);
3066 show_backtrace(1);
3067 }
3068 var1 = var3;
3069 RET_LABEL2:(void)0;
3070 }
3071 }
3072 var = var1;
3073 goto RET_LABEL;
3074 RET_LABEL:;
3075 return var;
3076 }
3077 /* method abstract_compiler#RuntimeVariable#inspect for (self: RuntimeVariable): String */
3078 val* nit___nit__RuntimeVariable___standard__string__Object__inspect(val* self) {
3079 val* var /* : String */;
3080 short int var1 /* : Bool */;
3081 short int var3 /* : Bool */;
3082 static val* varonce;
3083 val* var4 /* : String */;
3084 char* var5 /* : NativeString */;
3085 long var6 /* : Int */;
3086 val* var7 /* : FlatString */;
3087 val* var_exact_str /* var exact_str: nullable Object */;
3088 static val* varonce8;
3089 val* var9 /* : String */;
3090 char* var10 /* : NativeString */;
3091 long var11 /* : Int */;
3092 val* var12 /* : FlatString */;
3093 val* var13 /* : MType */;
3094 val* var15 /* : MType */;
3095 val* var16 /* : MType */;
3096 val* var18 /* : MType */;
3097 short int var19 /* : Bool */;
3098 val* var_other /* var other: nullable Object */;
3099 short int var21 /* : Bool */;
3100 short int var23 /* : Bool */;
3101 val* var24 /* : MType */;
3102 val* var26 /* : MType */;
3103 val* var27 /* : Array[Object] */;
3104 long var28 /* : Int */;
3105 val* var29 /* : NativeArray[Object] */;
3106 val* var30 /* : String */;
3107 val* var_type_str /* var type_str: nullable Object */;
3108 val* var31 /* : MType */;
3109 val* var33 /* : MType */;
3110 static val* varonce34;
3111 val* var35 /* : String */;
3112 char* var36 /* : NativeString */;
3113 long var37 /* : Int */;
3114 val* var38 /* : FlatString */;
3115 val* var39 /* : MType */;
3116 val* var41 /* : MType */;
3117 static val* varonce42;
3118 val* var43 /* : String */;
3119 char* var44 /* : NativeString */;
3120 long var45 /* : Int */;
3121 val* var46 /* : FlatString */;
3122 val* var47 /* : Array[Object] */;
3123 long var48 /* : Int */;
3124 val* var49 /* : NativeArray[Object] */;
3125 val* var50 /* : String */;
3126 static val* varonce51;
3127 val* var52 /* : String */;
3128 char* var53 /* : NativeString */;
3129 long var54 /* : Int */;
3130 val* var55 /* : FlatString */;
3131 val* var56 /* : String */;
3132 val* var58 /* : String */;
3133 static val* varonce59;
3134 val* var60 /* : String */;
3135 char* var61 /* : NativeString */;
3136 long var62 /* : Int */;
3137 val* var63 /* : FlatString */;
3138 static val* varonce64;
3139 val* var65 /* : String */;
3140 char* var66 /* : NativeString */;
3141 long var67 /* : Int */;
3142 val* var68 /* : FlatString */;
3143 val* var69 /* : Array[Object] */;
3144 long var70 /* : Int */;
3145 val* var71 /* : NativeArray[Object] */;
3146 val* var72 /* : String */;
3147 {
3148 { /* Inline abstract_compiler#RuntimeVariable#is_exact (self) on <self:RuntimeVariable> */
3149 var3 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___is_exact].s; /* _is_exact on <self:RuntimeVariable> */
3150 var1 = var3;
3151 RET_LABEL2:(void)0;
3152 }
3153 }
3154 if (var1){
3155 if (varonce) {
3156 var4 = varonce;
3157 } else {
3158 var5 = " exact";
3159 var6 = 6;
3160 var7 = standard___standard__NativeString___to_s_with_length(var5, var6);
3161 var4 = var7;
3162 varonce = var4;
3163 }
3164 var_exact_str = var4;
3165 } else {
3166 if (varonce8) {
3167 var9 = varonce8;
3168 } else {
3169 var10 = "";
3170 var11 = 0;
3171 var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
3172 var9 = var12;
3173 varonce8 = var9;
3174 }
3175 var_exact_str = var9;
3176 }
3177 {
3178 { /* Inline abstract_compiler#RuntimeVariable#mtype (self) on <self:RuntimeVariable> */
3179 var15 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
3180 if (unlikely(var15 == NULL)) {
3181 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3182 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
3183 show_backtrace(1);
3184 }
3185 var13 = var15;
3186 RET_LABEL14:(void)0;
3187 }
3188 }
3189 {
3190 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (self) on <self:RuntimeVariable> */
3191 var18 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
3192 if (unlikely(var18 == NULL)) {
3193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
3194 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
3195 show_backtrace(1);
3196 }
3197 var16 = var18;
3198 RET_LABEL17:(void)0;
3199 }
3200 }
3201 {
3202 { /* Inline kernel#Object#== (var13,var16) on <var13:MType> */
3203 var_other = var16;
3204 {
3205 { /* Inline kernel#Object#is_same_instance (var13,var_other) on <var13:MType> */
3206 var23 = var13 == var_other;
3207 var21 = var23;
3208 goto RET_LABEL22;
3209 RET_LABEL22:(void)0;
3210 }
3211 }
3212 var19 = var21;
3213 goto RET_LABEL20;
3214 RET_LABEL20:(void)0;
3215 }
3216 }
3217 if (var19){
3218 {
3219 { /* Inline abstract_compiler#RuntimeVariable#mtype (self) on <self:RuntimeVariable> */
3220 var26 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
3221 if (unlikely(var26 == NULL)) {
3222 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3223 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
3224 show_backtrace(1);
3225 }
3226 var24 = var26;
3227 RET_LABEL25:(void)0;
3228 }
3229 }
3230 var27 = NEW_standard__Array(&type_standard__Array__standard__Object);
3231 { /* var27 = array_instance Array[Object] */
3232 var28 = 2;
3233 var29 = NEW_standard__NativeArray(var28, &type_standard__NativeArray__standard__Object);
3234 ((struct instance_standard__NativeArray*)var29)->values[0] = (val*) var24;
3235 ((struct instance_standard__NativeArray*)var29)->values[1] = (val*) var_exact_str;
3236 {
3237 ((void (*)(val* self, val* p0, long p1))(var27->class->vft[COLOR_standard__array__Array__with_native]))(var27, var29, var28) /* with_native on <var27:Array[Object]>*/;
3238 }
3239 }
3240 {
3241 var30 = ((val* (*)(val* self))(var27->class->vft[COLOR_standard__string__Object__to_s]))(var27) /* to_s on <var27:Array[Object]>*/;
3242 }
3243 var_type_str = var30;
3244 } else {
3245 {
3246 { /* Inline abstract_compiler#RuntimeVariable#mtype (self) on <self:RuntimeVariable> */
3247 var33 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <self:RuntimeVariable> */
3248 if (unlikely(var33 == NULL)) {
3249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3250 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
3251 show_backtrace(1);
3252 }
3253 var31 = var33;
3254 RET_LABEL32:(void)0;
3255 }
3256 }
3257 if (varonce34) {
3258 var35 = varonce34;
3259 } else {
3260 var36 = "(";
3261 var37 = 1;
3262 var38 = standard___standard__NativeString___to_s_with_length(var36, var37);
3263 var35 = var38;
3264 varonce34 = var35;
3265 }
3266 {
3267 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (self) on <self:RuntimeVariable> */
3268 var41 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <self:RuntimeVariable> */
3269 if (unlikely(var41 == NULL)) {
3270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
3271 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
3272 show_backtrace(1);
3273 }
3274 var39 = var41;
3275 RET_LABEL40:(void)0;
3276 }
3277 }
3278 if (varonce42) {
3279 var43 = varonce42;
3280 } else {
3281 var44 = ")";
3282 var45 = 1;
3283 var46 = standard___standard__NativeString___to_s_with_length(var44, var45);
3284 var43 = var46;
3285 varonce42 = var43;
3286 }
3287 var47 = NEW_standard__Array(&type_standard__Array__standard__Object);
3288 { /* var47 = array_instance Array[Object] */
3289 var48 = 5;
3290 var49 = NEW_standard__NativeArray(var48, &type_standard__NativeArray__standard__Object);
3291 ((struct instance_standard__NativeArray*)var49)->values[0] = (val*) var31;
3292 ((struct instance_standard__NativeArray*)var49)->values[1] = (val*) var35;
3293 ((struct instance_standard__NativeArray*)var49)->values[2] = (val*) var39;
3294 ((struct instance_standard__NativeArray*)var49)->values[3] = (val*) var_exact_str;
3295 ((struct instance_standard__NativeArray*)var49)->values[4] = (val*) var43;
3296 {
3297 ((void (*)(val* self, val* p0, long p1))(var47->class->vft[COLOR_standard__array__Array__with_native]))(var47, var49, var48) /* with_native on <var47:Array[Object]>*/;
3298 }
3299 }
3300 {
3301 var50 = ((val* (*)(val* self))(var47->class->vft[COLOR_standard__string__Object__to_s]))(var47) /* to_s on <var47:Array[Object]>*/;
3302 }
3303 var_type_str = var50;
3304 }
3305 if (varonce51) {
3306 var52 = varonce51;
3307 } else {
3308 var53 = "<";
3309 var54 = 1;
3310 var55 = standard___standard__NativeString___to_s_with_length(var53, var54);
3311 var52 = var55;
3312 varonce51 = var52;
3313 }
3314 {
3315 { /* Inline abstract_compiler#RuntimeVariable#name (self) on <self:RuntimeVariable> */
3316 var58 = self->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___name].val; /* _name on <self:RuntimeVariable> */
3317 if (unlikely(var58 == NULL)) {
3318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3319 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1677);
3320 show_backtrace(1);
3321 }
3322 var56 = var58;
3323 RET_LABEL57:(void)0;
3324 }
3325 }
3326 if (varonce59) {
3327 var60 = varonce59;
3328 } else {
3329 var61 = ":";
3330 var62 = 1;
3331 var63 = standard___standard__NativeString___to_s_with_length(var61, var62);
3332 var60 = var63;
3333 varonce59 = var60;
3334 }
3335 if (varonce64) {
3336 var65 = varonce64;
3337 } else {
3338 var66 = ">";
3339 var67 = 1;
3340 var68 = standard___standard__NativeString___to_s_with_length(var66, var67);
3341 var65 = var68;
3342 varonce64 = var65;
3343 }
3344 var69 = NEW_standard__Array(&type_standard__Array__standard__Object);
3345 { /* var69 = array_instance Array[Object] */
3346 var70 = 5;
3347 var71 = NEW_standard__NativeArray(var70, &type_standard__NativeArray__standard__Object);
3348 ((struct instance_standard__NativeArray*)var71)->values[0] = (val*) var52;
3349 ((struct instance_standard__NativeArray*)var71)->values[1] = (val*) var56;
3350 ((struct instance_standard__NativeArray*)var71)->values[2] = (val*) var60;
3351 ((struct instance_standard__NativeArray*)var71)->values[3] = (val*) var_type_str;
3352 ((struct instance_standard__NativeArray*)var71)->values[4] = (val*) var65;
3353 {
3354 ((void (*)(val* self, val* p0, long p1))(var69->class->vft[COLOR_standard__array__Array__with_native]))(var69, var71, var70) /* with_native on <var69:Array[Object]>*/;
3355 }
3356 }
3357 {
3358 var72 = ((val* (*)(val* self))(var69->class->vft[COLOR_standard__string__Object__to_s]))(var69) /* to_s on <var69:Array[Object]>*/;
3359 }
3360 var = var72;
3361 goto RET_LABEL;
3362 RET_LABEL:;
3363 return var;
3364 }
3365 /* method abstract_compiler#StaticFrame#visitor= for (self: StaticFrame, AbstractCompilerVisitor) */
3366 void nit___nit__StaticFrame___visitor_61d(val* self, val* p0) {
3367 short int var /* : Bool */;
3368 int cltype;
3369 int idtype;
3370 const struct type* type_struct;
3371 const char* var_class_name;
3372 /* Covariant cast for argument 0 (visitor) <p0:AbstractCompilerVisitor> isa VISITOR */
3373 /* <p0:AbstractCompilerVisitor> isa VISITOR */
3374 type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__StaticFrame__VISITOR];
3375 cltype = type_struct->color;
3376 idtype = type_struct->id;
3377 if(cltype >= p0->type->table_size) {
3378 var = 0;
3379 } else {
3380 var = p0->type->type_table[cltype] == idtype;
3381 }
3382 if (unlikely(!var)) {
3383 var_class_name = p0 == NULL ? "null" : p0->type->name;
3384 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
3385 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1721);
3386 show_backtrace(1);
3387 }
3388 self->attrs[COLOR_nit__abstract_compiler__StaticFrame___visitor].val = p0; /* _visitor on <self:StaticFrame> */
3389 RET_LABEL:;
3390 }
3391 /* method abstract_compiler#StaticFrame#mpropdef for (self: StaticFrame): MPropDef */
3392 val* nit___nit__StaticFrame___mpropdef(val* self) {
3393 val* var /* : MPropDef */;
3394 val* var1 /* : MPropDef */;
3395 var1 = self->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <self:StaticFrame> */
3396 if (unlikely(var1 == NULL)) {
3397 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
3398 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1724);
3399 show_backtrace(1);
3400 }
3401 var = var1;
3402 RET_LABEL:;
3403 return var;
3404 }
3405 /* method abstract_compiler#StaticFrame#mpropdef= for (self: StaticFrame, MPropDef) */
3406 void nit___nit__StaticFrame___mpropdef_61d(val* self, val* p0) {
3407 self->attrs[COLOR_nit__abstract_compiler__StaticFrame___mpropdef].val = p0; /* _mpropdef on <self:StaticFrame> */
3408 RET_LABEL:;
3409 }
3410 /* method abstract_compiler#StaticFrame#receiver for (self: StaticFrame): MClassType */
3411 val* nit___nit__StaticFrame___receiver(val* self) {
3412 val* var /* : MClassType */;
3413 val* var1 /* : MClassType */;
3414 var1 = self->attrs[COLOR_nit__abstract_compiler__StaticFrame___receiver].val; /* _receiver on <self:StaticFrame> */
3415 if (unlikely(var1 == NULL)) {
3416 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
3417 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1728);
3418 show_backtrace(1);
3419 }
3420 var = var1;
3421 RET_LABEL:;
3422 return var;
3423 }
3424 /* method abstract_compiler#StaticFrame#receiver= for (self: StaticFrame, MClassType) */
3425 void nit___nit__StaticFrame___receiver_61d(val* self, val* p0) {
3426 self->attrs[COLOR_nit__abstract_compiler__StaticFrame___receiver].val = p0; /* _receiver on <self:StaticFrame> */
3427 RET_LABEL:;
3428 }
3429 /* method abstract_compiler#StaticFrame#arguments for (self: StaticFrame): Array[RuntimeVariable] */
3430 val* nit___nit__StaticFrame___arguments(val* self) {
3431 val* var /* : Array[RuntimeVariable] */;
3432 val* var1 /* : Array[RuntimeVariable] */;
3433 var1 = self->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <self:StaticFrame> */
3434 if (unlikely(var1 == NULL)) {
3435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3436 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1731);
3437 show_backtrace(1);
3438 }
3439 var = var1;
3440 RET_LABEL:;
3441 return var;
3442 }
3443 /* method abstract_compiler#StaticFrame#arguments= for (self: StaticFrame, Array[RuntimeVariable]) */
3444 void nit___nit__StaticFrame___arguments_61d(val* self, val* p0) {
3445 self->attrs[COLOR_nit__abstract_compiler__StaticFrame___arguments].val = p0; /* _arguments on <self:StaticFrame> */
3446 RET_LABEL:;
3447 }
3448 /* method abstract_compiler#StaticFrame#returnvar for (self: StaticFrame): nullable RuntimeVariable */
3449 val* nit___nit__StaticFrame___returnvar(val* self) {
3450 val* var /* : nullable RuntimeVariable */;
3451 val* var1 /* : nullable RuntimeVariable */;
3452 var1 = self->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <self:StaticFrame> */
3453 var = var1;
3454 RET_LABEL:;
3455 return var;
3456 }
3457 /* method abstract_compiler#StaticFrame#returnvar= for (self: StaticFrame, nullable RuntimeVariable) */
3458 void nit___nit__StaticFrame___returnvar_61d(val* self, val* p0) {
3459 self->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val = p0; /* _returnvar on <self:StaticFrame> */
3460 RET_LABEL:;
3461 }
3462 /* method abstract_compiler#StaticFrame#returnlabel for (self: StaticFrame): nullable String */
3463 val* nit___nit__StaticFrame___returnlabel(val* self) {
3464 val* var /* : nullable String */;
3465 val* var1 /* : nullable String */;
3466 var1 = self->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <self:StaticFrame> */
3467 var = var1;
3468 RET_LABEL:;
3469 return var;
3470 }
3471 /* method abstract_compiler#StaticFrame#returnlabel= for (self: StaticFrame, nullable String) */
3472 void nit___nit__StaticFrame___returnlabel_61d(val* self, val* p0) {
3473 self->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val = p0; /* _returnlabel on <self:StaticFrame> */
3474 RET_LABEL:;
3475 }
3476 /* method abstract_compiler#StaticFrame#escapemark_names for (self: StaticFrame): HashMap[EscapeMark, String] */
3477 val* nit___nit__StaticFrame___escapemark_names(val* self) {
3478 val* var /* : HashMap[EscapeMark, String] */;
3479 val* var1 /* : HashMap[EscapeMark, String] */;
3480 var1 = self->attrs[COLOR_nit__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <self:StaticFrame> */
3481 if (unlikely(var1 == NULL)) {
3482 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
3483 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1740);
3484 show_backtrace(1);
3485 }
3486 var = var1;
3487 RET_LABEL:;
3488 return var;
3489 }
3490 /* method abstract_compiler#StaticFrame#comprehension for (self: StaticFrame): nullable RuntimeVariable */
3491 val* nit___nit__StaticFrame___comprehension(val* self) {
3492 val* var /* : nullable RuntimeVariable */;
3493 val* var1 /* : nullable RuntimeVariable */;
3494 var1 = self->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on <self:StaticFrame> */
3495 var = var1;
3496 RET_LABEL:;
3497 return var;
3498 }
3499 /* method abstract_compiler#StaticFrame#comprehension= for (self: StaticFrame, nullable RuntimeVariable) */
3500 void nit___nit__StaticFrame___comprehension_61d(val* self, val* p0) {
3501 self->attrs[COLOR_nit__abstract_compiler__StaticFrame___comprehension].val = p0; /* _comprehension on <self:StaticFrame> */
3502 RET_LABEL:;
3503 }
3504 /* method abstract_compiler#StaticFrame#init for (self: StaticFrame) */
3505 void nit___nit__StaticFrame___standard__kernel__Object__init(val* self) {
3506 {
3507 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__StaticFrame___standard__kernel__Object__init]))(self) /* init on <self:StaticFrame>*/;
3508 }
3509 RET_LABEL:;
3510 }
3511 /* method abstract_compiler#MType#ctype for (self: MType): String */
3512 val* nit__abstract_compiler___MType___ctype(val* self) {
3513 val* var /* : String */;
3514 static val* varonce;
3515 val* var1 /* : String */;
3516 char* var2 /* : NativeString */;
3517 long var3 /* : Int */;
3518 val* var4 /* : FlatString */;
3519 if (varonce) {
3520 var1 = varonce;
3521 } else {
3522 var2 = "val*";
3523 var3 = 4;
3524 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
3525 var1 = var4;
3526 varonce = var1;
3527 }
3528 var = var1;
3529 goto RET_LABEL;
3530 RET_LABEL:;
3531 return var;
3532 }
3533 /* method abstract_compiler#MType#ctype_extern for (self: MType): String */
3534 val* nit__abstract_compiler___MType___ctype_extern(val* self) {
3535 val* var /* : String */;
3536 static val* varonce;
3537 val* var1 /* : String */;
3538 char* var2 /* : NativeString */;
3539 long var3 /* : Int */;
3540 val* var4 /* : FlatString */;
3541 if (varonce) {
3542 var1 = varonce;
3543 } else {
3544 var2 = "val*";
3545 var3 = 4;
3546 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
3547 var1 = var4;
3548 varonce = var1;
3549 }
3550 var = var1;
3551 goto RET_LABEL;
3552 RET_LABEL:;
3553 return var;
3554 }
3555 /* method abstract_compiler#MType#ctypename for (self: MType): String */
3556 val* nit__abstract_compiler___MType___ctypename(val* self) {
3557 val* var /* : String */;
3558 static val* varonce;
3559 val* var1 /* : String */;
3560 char* var2 /* : NativeString */;
3561 long var3 /* : Int */;
3562 val* var4 /* : FlatString */;
3563 if (varonce) {
3564 var1 = varonce;
3565 } else {
3566 var2 = "val";
3567 var3 = 3;
3568 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
3569 var1 = var4;
3570 varonce = var1;
3571 }
3572 var = var1;
3573 goto RET_LABEL;
3574 RET_LABEL:;
3575 return var;
3576 }
3577 /* method abstract_compiler#MClassType#ctype for (self: MClassType): String */
3578 val* nit__abstract_compiler___MClassType___MType__ctype(val* self) {
3579 val* var /* : String */;
3580 val* var1 /* : MClass */;
3581 val* var3 /* : MClass */;
3582 val* var4 /* : String */;
3583 val* var6 /* : String */;
3584 static val* varonce;
3585 val* var7 /* : String */;
3586 char* var8 /* : NativeString */;
3587 long var9 /* : Int */;
3588 val* var10 /* : FlatString */;
3589 short int var11 /* : Bool */;
3590 static val* varonce12;
3591 val* var13 /* : String */;
3592 char* var14 /* : NativeString */;
3593 long var15 /* : Int */;
3594 val* var16 /* : FlatString */;
3595 val* var17 /* : MClass */;
3596 val* var19 /* : MClass */;
3597 val* var20 /* : String */;
3598 val* var22 /* : String */;
3599 static val* varonce23;
3600 val* var24 /* : String */;
3601 char* var25 /* : NativeString */;
3602 long var26 /* : Int */;
3603 val* var27 /* : FlatString */;
3604 short int var28 /* : Bool */;
3605 static val* varonce29;
3606 val* var30 /* : String */;
3607 char* var31 /* : NativeString */;
3608 long var32 /* : Int */;
3609 val* var33 /* : FlatString */;
3610 val* var34 /* : MClass */;
3611 val* var36 /* : MClass */;
3612 val* var37 /* : String */;
3613 val* var39 /* : String */;
3614 static val* varonce40;
3615 val* var41 /* : String */;
3616 char* var42 /* : NativeString */;
3617 long var43 /* : Int */;
3618 val* var44 /* : FlatString */;
3619 short int var45 /* : Bool */;
3620 static val* varonce46;
3621 val* var47 /* : String */;
3622 char* var48 /* : NativeString */;
3623 long var49 /* : Int */;
3624 val* var50 /* : FlatString */;
3625 val* var51 /* : MClass */;
3626 val* var53 /* : MClass */;
3627 val* var54 /* : String */;
3628 val* var56 /* : String */;
3629 static val* varonce57;
3630 val* var58 /* : String */;
3631 char* var59 /* : NativeString */;
3632 long var60 /* : Int */;
3633 val* var61 /* : FlatString */;
3634 short int var62 /* : Bool */;
3635 static val* varonce63;
3636 val* var64 /* : String */;
3637 char* var65 /* : NativeString */;
3638 long var66 /* : Int */;
3639 val* var67 /* : FlatString */;
3640 val* var68 /* : MClass */;
3641 val* var70 /* : MClass */;
3642 val* var71 /* : String */;
3643 val* var73 /* : String */;
3644 static val* varonce74;
3645 val* var75 /* : String */;
3646 char* var76 /* : NativeString */;
3647 long var77 /* : Int */;
3648 val* var78 /* : FlatString */;
3649 short int var79 /* : Bool */;
3650 static val* varonce80;
3651 val* var81 /* : String */;
3652 char* var82 /* : NativeString */;
3653 long var83 /* : Int */;
3654 val* var84 /* : FlatString */;
3655 val* var85 /* : MClass */;
3656 val* var87 /* : MClass */;
3657 val* var88 /* : String */;
3658 val* var90 /* : String */;
3659 static val* varonce91;
3660 val* var92 /* : String */;
3661 char* var93 /* : NativeString */;
3662 long var94 /* : Int */;
3663 val* var95 /* : FlatString */;
3664 short int var96 /* : Bool */;
3665 static val* varonce97;
3666 val* var98 /* : String */;
3667 char* var99 /* : NativeString */;
3668 long var100 /* : Int */;
3669 val* var101 /* : FlatString */;
3670 static val* varonce102;
3671 val* var103 /* : String */;
3672 char* var104 /* : NativeString */;
3673 long var105 /* : Int */;
3674 val* var106 /* : FlatString */;
3675 {
3676 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
3677 var3 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
3678 if (unlikely(var3 == NULL)) {
3679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3680 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3681 show_backtrace(1);
3682 }
3683 var1 = var3;
3684 RET_LABEL2:(void)0;
3685 }
3686 }
3687 {
3688 { /* Inline model#MClass#name (var1) on <var1:MClass> */
3689 var6 = var1->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var1:MClass> */
3690 if (unlikely(var6 == NULL)) {
3691 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3692 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
3693 show_backtrace(1);
3694 }
3695 var4 = var6;
3696 RET_LABEL5:(void)0;
3697 }
3698 }
3699 if (varonce) {
3700 var7 = varonce;
3701 } else {
3702 var8 = "Int";
3703 var9 = 3;
3704 var10 = standard___standard__NativeString___to_s_with_length(var8, var9);
3705 var7 = var10;
3706 varonce = var7;
3707 }
3708 {
3709 var11 = ((short int (*)(val* self, val* p0))(var4->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var4, var7) /* == on <var4:String>*/;
3710 }
3711 if (var11){
3712 if (varonce12) {
3713 var13 = varonce12;
3714 } else {
3715 var14 = "long";
3716 var15 = 4;
3717 var16 = standard___standard__NativeString___to_s_with_length(var14, var15);
3718 var13 = var16;
3719 varonce12 = var13;
3720 }
3721 var = var13;
3722 goto RET_LABEL;
3723 } else {
3724 {
3725 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
3726 var19 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
3727 if (unlikely(var19 == NULL)) {
3728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3729 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3730 show_backtrace(1);
3731 }
3732 var17 = var19;
3733 RET_LABEL18:(void)0;
3734 }
3735 }
3736 {
3737 { /* Inline model#MClass#name (var17) on <var17:MClass> */
3738 var22 = var17->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var17:MClass> */
3739 if (unlikely(var22 == NULL)) {
3740 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3741 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
3742 show_backtrace(1);
3743 }
3744 var20 = var22;
3745 RET_LABEL21:(void)0;
3746 }
3747 }
3748 if (varonce23) {
3749 var24 = varonce23;
3750 } else {
3751 var25 = "Bool";
3752 var26 = 4;
3753 var27 = standard___standard__NativeString___to_s_with_length(var25, var26);
3754 var24 = var27;
3755 varonce23 = var24;
3756 }
3757 {
3758 var28 = ((short int (*)(val* self, val* p0))(var20->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var20, var24) /* == on <var20:String>*/;
3759 }
3760 if (var28){
3761 if (varonce29) {
3762 var30 = varonce29;
3763 } else {
3764 var31 = "short int";
3765 var32 = 9;
3766 var33 = standard___standard__NativeString___to_s_with_length(var31, var32);
3767 var30 = var33;
3768 varonce29 = var30;
3769 }
3770 var = var30;
3771 goto RET_LABEL;
3772 } else {
3773 {
3774 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
3775 var36 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
3776 if (unlikely(var36 == NULL)) {
3777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3778 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3779 show_backtrace(1);
3780 }
3781 var34 = var36;
3782 RET_LABEL35:(void)0;
3783 }
3784 }
3785 {
3786 { /* Inline model#MClass#name (var34) on <var34:MClass> */
3787 var39 = var34->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var34:MClass> */
3788 if (unlikely(var39 == NULL)) {
3789 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3790 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
3791 show_backtrace(1);
3792 }
3793 var37 = var39;
3794 RET_LABEL38:(void)0;
3795 }
3796 }
3797 if (varonce40) {
3798 var41 = varonce40;
3799 } else {
3800 var42 = "Char";
3801 var43 = 4;
3802 var44 = standard___standard__NativeString___to_s_with_length(var42, var43);
3803 var41 = var44;
3804 varonce40 = var41;
3805 }
3806 {
3807 var45 = ((short int (*)(val* self, val* p0))(var37->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var37, var41) /* == on <var37:String>*/;
3808 }
3809 if (var45){
3810 if (varonce46) {
3811 var47 = varonce46;
3812 } else {
3813 var48 = "char";
3814 var49 = 4;
3815 var50 = standard___standard__NativeString___to_s_with_length(var48, var49);
3816 var47 = var50;
3817 varonce46 = var47;
3818 }
3819 var = var47;
3820 goto RET_LABEL;
3821 } else {
3822 {
3823 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
3824 var53 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
3825 if (unlikely(var53 == NULL)) {
3826 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3827 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3828 show_backtrace(1);
3829 }
3830 var51 = var53;
3831 RET_LABEL52:(void)0;
3832 }
3833 }
3834 {
3835 { /* Inline model#MClass#name (var51) on <var51:MClass> */
3836 var56 = var51->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var51:MClass> */
3837 if (unlikely(var56 == NULL)) {
3838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3839 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
3840 show_backtrace(1);
3841 }
3842 var54 = var56;
3843 RET_LABEL55:(void)0;
3844 }
3845 }
3846 if (varonce57) {
3847 var58 = varonce57;
3848 } else {
3849 var59 = "Float";
3850 var60 = 5;
3851 var61 = standard___standard__NativeString___to_s_with_length(var59, var60);
3852 var58 = var61;
3853 varonce57 = var58;
3854 }
3855 {
3856 var62 = ((short int (*)(val* self, val* p0))(var54->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var54, var58) /* == on <var54:String>*/;
3857 }
3858 if (var62){
3859 if (varonce63) {
3860 var64 = varonce63;
3861 } else {
3862 var65 = "double";
3863 var66 = 6;
3864 var67 = standard___standard__NativeString___to_s_with_length(var65, var66);
3865 var64 = var67;
3866 varonce63 = var64;
3867 }
3868 var = var64;
3869 goto RET_LABEL;
3870 } else {
3871 {
3872 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
3873 var70 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
3874 if (unlikely(var70 == NULL)) {
3875 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3876 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3877 show_backtrace(1);
3878 }
3879 var68 = var70;
3880 RET_LABEL69:(void)0;
3881 }
3882 }
3883 {
3884 { /* Inline model#MClass#name (var68) on <var68:MClass> */
3885 var73 = var68->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var68:MClass> */
3886 if (unlikely(var73 == NULL)) {
3887 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3888 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
3889 show_backtrace(1);
3890 }
3891 var71 = var73;
3892 RET_LABEL72:(void)0;
3893 }
3894 }
3895 if (varonce74) {
3896 var75 = varonce74;
3897 } else {
3898 var76 = "NativeString";
3899 var77 = 12;
3900 var78 = standard___standard__NativeString___to_s_with_length(var76, var77);
3901 var75 = var78;
3902 varonce74 = var75;
3903 }
3904 {
3905 var79 = ((short int (*)(val* self, val* p0))(var71->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var71, var75) /* == on <var71:String>*/;
3906 }
3907 if (var79){
3908 if (varonce80) {
3909 var81 = varonce80;
3910 } else {
3911 var82 = "char*";
3912 var83 = 5;
3913 var84 = standard___standard__NativeString___to_s_with_length(var82, var83);
3914 var81 = var84;
3915 varonce80 = var81;
3916 }
3917 var = var81;
3918 goto RET_LABEL;
3919 } else {
3920 {
3921 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
3922 var87 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
3923 if (unlikely(var87 == NULL)) {
3924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3925 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
3926 show_backtrace(1);
3927 }
3928 var85 = var87;
3929 RET_LABEL86:(void)0;
3930 }
3931 }
3932 {
3933 { /* Inline model#MClass#name (var85) on <var85:MClass> */
3934 var90 = var85->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var85:MClass> */
3935 if (unlikely(var90 == NULL)) {
3936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3937 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
3938 show_backtrace(1);
3939 }
3940 var88 = var90;
3941 RET_LABEL89:(void)0;
3942 }
3943 }
3944 if (varonce91) {
3945 var92 = varonce91;
3946 } else {
3947 var93 = "NativeArray";
3948 var94 = 11;
3949 var95 = standard___standard__NativeString___to_s_with_length(var93, var94);
3950 var92 = var95;
3951 varonce91 = var92;
3952 }
3953 {
3954 var96 = ((short int (*)(val* self, val* p0))(var88->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var88, var92) /* == on <var88:String>*/;
3955 }
3956 if (var96){
3957 if (varonce97) {
3958 var98 = varonce97;
3959 } else {
3960 var99 = "val*";
3961 var100 = 4;
3962 var101 = standard___standard__NativeString___to_s_with_length(var99, var100);
3963 var98 = var101;
3964 varonce97 = var98;
3965 }
3966 var = var98;
3967 goto RET_LABEL;
3968 } else {
3969 if (varonce102) {
3970 var103 = varonce102;
3971 } else {
3972 var104 = "val*";
3973 var105 = 4;
3974 var106 = standard___standard__NativeString___to_s_with_length(var104, var105);
3975 var103 = var106;
3976 varonce102 = var103;
3977 }
3978 var = var103;
3979 goto RET_LABEL;
3980 }
3981 }
3982 }
3983 }
3984 }
3985 }
3986 RET_LABEL:;
3987 return var;
3988 }
3989 /* method abstract_compiler#MClassType#ctype_extern for (self: MClassType): String */
3990 val* nit__abstract_compiler___MClassType___MType__ctype_extern(val* self) {
3991 val* var /* : String */;
3992 val* var1 /* : MClass */;
3993 val* var3 /* : MClass */;
3994 val* var4 /* : MClassKind */;
3995 val* var6 /* : MClassKind */;
3996 val* var7 /* : MClassKind */;
3997 short int var8 /* : Bool */;
3998 val* var_other /* var other: nullable Object */;
3999 short int var10 /* : Bool */;
4000 short int var12 /* : Bool */;
4001 static val* varonce;
4002 val* var13 /* : String */;
4003 char* var14 /* : NativeString */;
4004 long var15 /* : Int */;
4005 val* var16 /* : FlatString */;
4006 val* var17 /* : String */;
4007 {
4008 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
4009 var3 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
4010 if (unlikely(var3 == NULL)) {
4011 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4012 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
4013 show_backtrace(1);
4014 }
4015 var1 = var3;
4016 RET_LABEL2:(void)0;
4017 }
4018 }
4019 {
4020 { /* Inline model#MClass#kind (var1) on <var1:MClass> */
4021 var6 = var1->attrs[COLOR_nit__model__MClass___kind].val; /* _kind on <var1:MClass> */
4022 if (unlikely(var6 == NULL)) {
4023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
4024 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 399);
4025 show_backtrace(1);
4026 }
4027 var4 = var6;
4028 RET_LABEL5:(void)0;
4029 }
4030 }
4031 {
4032 var7 = nit__model___standard__Object___extern_kind(self);
4033 }
4034 {
4035 { /* Inline kernel#Object#== (var4,var7) on <var4:MClassKind> */
4036 var_other = var7;
4037 {
4038 { /* Inline kernel#Object#is_same_instance (var4,var_other) on <var4:MClassKind> */
4039 var12 = var4 == var_other;
4040 var10 = var12;
4041 goto RET_LABEL11;
4042 RET_LABEL11:(void)0;
4043 }
4044 }
4045 var8 = var10;
4046 goto RET_LABEL9;
4047 RET_LABEL9:(void)0;
4048 }
4049 }
4050 if (var8){
4051 if (varonce) {
4052 var13 = varonce;
4053 } else {
4054 var14 = "void*";
4055 var15 = 5;
4056 var16 = standard___standard__NativeString___to_s_with_length(var14, var15);
4057 var13 = var16;
4058 varonce = var13;
4059 }
4060 var = var13;
4061 goto RET_LABEL;
4062 } else {
4063 {
4064 var17 = nit__abstract_compiler___MClassType___MType__ctype(self);
4065 }
4066 var = var17;
4067 goto RET_LABEL;
4068 }
4069 RET_LABEL:;
4070 return var;
4071 }
4072 /* method abstract_compiler#MClassType#ctypename for (self: MClassType): String */
4073 val* nit__abstract_compiler___MClassType___MType__ctypename(val* self) {
4074 val* var /* : String */;
4075 val* var1 /* : MClass */;
4076 val* var3 /* : MClass */;
4077 val* var4 /* : String */;
4078 val* var6 /* : String */;
4079 static val* varonce;
4080 val* var7 /* : String */;
4081 char* var8 /* : NativeString */;
4082 long var9 /* : Int */;
4083 val* var10 /* : FlatString */;
4084 short int var11 /* : Bool */;
4085 static val* varonce12;
4086 val* var13 /* : String */;
4087 char* var14 /* : NativeString */;
4088 long var15 /* : Int */;
4089 val* var16 /* : FlatString */;
4090 val* var17 /* : MClass */;
4091 val* var19 /* : MClass */;
4092 val* var20 /* : String */;
4093 val* var22 /* : String */;
4094 static val* varonce23;
4095 val* var24 /* : String */;
4096 char* var25 /* : NativeString */;
4097 long var26 /* : Int */;
4098 val* var27 /* : FlatString */;
4099 short int var28 /* : Bool */;
4100 static val* varonce29;
4101 val* var30 /* : String */;
4102 char* var31 /* : NativeString */;
4103 long var32 /* : Int */;
4104 val* var33 /* : FlatString */;
4105 val* var34 /* : MClass */;
4106 val* var36 /* : MClass */;
4107 val* var37 /* : String */;
4108 val* var39 /* : String */;
4109 static val* varonce40;
4110 val* var41 /* : String */;
4111 char* var42 /* : NativeString */;
4112 long var43 /* : Int */;
4113 val* var44 /* : FlatString */;
4114 short int var45 /* : Bool */;
4115 static val* varonce46;
4116 val* var47 /* : String */;
4117 char* var48 /* : NativeString */;
4118 long var49 /* : Int */;
4119 val* var50 /* : FlatString */;
4120 val* var51 /* : MClass */;
4121 val* var53 /* : MClass */;
4122 val* var54 /* : String */;
4123 val* var56 /* : String */;
4124 static val* varonce57;
4125 val* var58 /* : String */;
4126 char* var59 /* : NativeString */;
4127 long var60 /* : Int */;
4128 val* var61 /* : FlatString */;
4129 short int var62 /* : Bool */;
4130 static val* varonce63;
4131 val* var64 /* : String */;
4132 char* var65 /* : NativeString */;
4133 long var66 /* : Int */;
4134 val* var67 /* : FlatString */;
4135 val* var68 /* : MClass */;
4136 val* var70 /* : MClass */;
4137 val* var71 /* : String */;
4138 val* var73 /* : String */;
4139 static val* varonce74;
4140 val* var75 /* : String */;
4141 char* var76 /* : NativeString */;
4142 long var77 /* : Int */;
4143 val* var78 /* : FlatString */;
4144 short int var79 /* : Bool */;
4145 static val* varonce80;
4146 val* var81 /* : String */;
4147 char* var82 /* : NativeString */;
4148 long var83 /* : Int */;
4149 val* var84 /* : FlatString */;
4150 val* var85 /* : MClass */;
4151 val* var87 /* : MClass */;
4152 val* var88 /* : String */;
4153 val* var90 /* : String */;
4154 static val* varonce91;
4155 val* var92 /* : String */;
4156 char* var93 /* : NativeString */;
4157 long var94 /* : Int */;
4158 val* var95 /* : FlatString */;
4159 short int var96 /* : Bool */;
4160 static val* varonce97;
4161 val* var98 /* : String */;
4162 char* var99 /* : NativeString */;
4163 long var100 /* : Int */;
4164 val* var101 /* : FlatString */;
4165 static val* varonce102;
4166 val* var103 /* : String */;
4167 char* var104 /* : NativeString */;
4168 long var105 /* : Int */;
4169 val* var106 /* : FlatString */;
4170 {
4171 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
4172 var3 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
4173 if (unlikely(var3 == NULL)) {
4174 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4175 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
4176 show_backtrace(1);
4177 }
4178 var1 = var3;
4179 RET_LABEL2:(void)0;
4180 }
4181 }
4182 {
4183 { /* Inline model#MClass#name (var1) on <var1:MClass> */
4184 var6 = var1->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var1:MClass> */
4185 if (unlikely(var6 == NULL)) {
4186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4187 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
4188 show_backtrace(1);
4189 }
4190 var4 = var6;
4191 RET_LABEL5:(void)0;
4192 }
4193 }
4194 if (varonce) {
4195 var7 = varonce;
4196 } else {
4197 var8 = "Int";
4198 var9 = 3;
4199 var10 = standard___standard__NativeString___to_s_with_length(var8, var9);
4200 var7 = var10;
4201 varonce = var7;
4202 }
4203 {
4204 var11 = ((short int (*)(val* self, val* p0))(var4->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var4, var7) /* == on <var4:String>*/;
4205 }
4206 if (var11){
4207 if (varonce12) {
4208 var13 = varonce12;
4209 } else {
4210 var14 = "l";
4211 var15 = 1;
4212 var16 = standard___standard__NativeString___to_s_with_length(var14, var15);
4213 var13 = var16;
4214 varonce12 = var13;
4215 }
4216 var = var13;
4217 goto RET_LABEL;
4218 } else {
4219 {
4220 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
4221 var19 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
4222 if (unlikely(var19 == NULL)) {
4223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4224 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
4225 show_backtrace(1);
4226 }
4227 var17 = var19;
4228 RET_LABEL18:(void)0;
4229 }
4230 }
4231 {
4232 { /* Inline model#MClass#name (var17) on <var17:MClass> */
4233 var22 = var17->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var17:MClass> */
4234 if (unlikely(var22 == NULL)) {
4235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4236 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
4237 show_backtrace(1);
4238 }
4239 var20 = var22;
4240 RET_LABEL21:(void)0;
4241 }
4242 }
4243 if (varonce23) {
4244 var24 = varonce23;
4245 } else {
4246 var25 = "Bool";
4247 var26 = 4;
4248 var27 = standard___standard__NativeString___to_s_with_length(var25, var26);
4249 var24 = var27;
4250 varonce23 = var24;
4251 }
4252 {
4253 var28 = ((short int (*)(val* self, val* p0))(var20->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var20, var24) /* == on <var20:String>*/;
4254 }
4255 if (var28){
4256 if (varonce29) {
4257 var30 = varonce29;
4258 } else {
4259 var31 = "s";
4260 var32 = 1;
4261 var33 = standard___standard__NativeString___to_s_with_length(var31, var32);
4262 var30 = var33;
4263 varonce29 = var30;
4264 }
4265 var = var30;
4266 goto RET_LABEL;
4267 } else {
4268 {
4269 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
4270 var36 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
4271 if (unlikely(var36 == NULL)) {
4272 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4273 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
4274 show_backtrace(1);
4275 }
4276 var34 = var36;
4277 RET_LABEL35:(void)0;
4278 }
4279 }
4280 {
4281 { /* Inline model#MClass#name (var34) on <var34:MClass> */
4282 var39 = var34->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var34:MClass> */
4283 if (unlikely(var39 == NULL)) {
4284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4285 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
4286 show_backtrace(1);
4287 }
4288 var37 = var39;
4289 RET_LABEL38:(void)0;
4290 }
4291 }
4292 if (varonce40) {
4293 var41 = varonce40;
4294 } else {
4295 var42 = "Char";
4296 var43 = 4;
4297 var44 = standard___standard__NativeString___to_s_with_length(var42, var43);
4298 var41 = var44;
4299 varonce40 = var41;
4300 }
4301 {
4302 var45 = ((short int (*)(val* self, val* p0))(var37->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var37, var41) /* == on <var37:String>*/;
4303 }
4304 if (var45){
4305 if (varonce46) {
4306 var47 = varonce46;
4307 } else {
4308 var48 = "c";
4309 var49 = 1;
4310 var50 = standard___standard__NativeString___to_s_with_length(var48, var49);
4311 var47 = var50;
4312 varonce46 = var47;
4313 }
4314 var = var47;
4315 goto RET_LABEL;
4316 } else {
4317 {
4318 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
4319 var53 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
4320 if (unlikely(var53 == NULL)) {
4321 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4322 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
4323 show_backtrace(1);
4324 }
4325 var51 = var53;
4326 RET_LABEL52:(void)0;
4327 }
4328 }
4329 {
4330 { /* Inline model#MClass#name (var51) on <var51:MClass> */
4331 var56 = var51->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var51:MClass> */
4332 if (unlikely(var56 == NULL)) {
4333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4334 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
4335 show_backtrace(1);
4336 }
4337 var54 = var56;
4338 RET_LABEL55:(void)0;
4339 }
4340 }
4341 if (varonce57) {
4342 var58 = varonce57;
4343 } else {
4344 var59 = "Float";
4345 var60 = 5;
4346 var61 = standard___standard__NativeString___to_s_with_length(var59, var60);
4347 var58 = var61;
4348 varonce57 = var58;
4349 }
4350 {
4351 var62 = ((short int (*)(val* self, val* p0))(var54->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var54, var58) /* == on <var54:String>*/;
4352 }
4353 if (var62){
4354 if (varonce63) {
4355 var64 = varonce63;
4356 } else {
4357 var65 = "d";
4358 var66 = 1;
4359 var67 = standard___standard__NativeString___to_s_with_length(var65, var66);
4360 var64 = var67;
4361 varonce63 = var64;
4362 }
4363 var = var64;
4364 goto RET_LABEL;
4365 } else {
4366 {
4367 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
4368 var70 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
4369 if (unlikely(var70 == NULL)) {
4370 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4371 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
4372 show_backtrace(1);
4373 }
4374 var68 = var70;
4375 RET_LABEL69:(void)0;
4376 }
4377 }
4378 {
4379 { /* Inline model#MClass#name (var68) on <var68:MClass> */
4380 var73 = var68->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var68:MClass> */
4381 if (unlikely(var73 == NULL)) {
4382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4383 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
4384 show_backtrace(1);
4385 }
4386 var71 = var73;
4387 RET_LABEL72:(void)0;
4388 }
4389 }
4390 if (varonce74) {
4391 var75 = varonce74;
4392 } else {
4393 var76 = "NativeString";
4394 var77 = 12;
4395 var78 = standard___standard__NativeString___to_s_with_length(var76, var77);
4396 var75 = var78;
4397 varonce74 = var75;
4398 }
4399 {
4400 var79 = ((short int (*)(val* self, val* p0))(var71->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var71, var75) /* == on <var71:String>*/;
4401 }
4402 if (var79){
4403 if (varonce80) {
4404 var81 = varonce80;
4405 } else {
4406 var82 = "str";
4407 var83 = 3;
4408 var84 = standard___standard__NativeString___to_s_with_length(var82, var83);
4409 var81 = var84;
4410 varonce80 = var81;
4411 }
4412 var = var81;
4413 goto RET_LABEL;
4414 } else {
4415 {
4416 { /* Inline model#MClassType#mclass (self) on <self:MClassType> */
4417 var87 = self->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
4418 if (unlikely(var87 == NULL)) {
4419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4420 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
4421 show_backtrace(1);
4422 }
4423 var85 = var87;
4424 RET_LABEL86:(void)0;
4425 }
4426 }
4427 {
4428 { /* Inline model#MClass#name (var85) on <var85:MClass> */
4429 var90 = var85->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var85:MClass> */
4430 if (unlikely(var90 == NULL)) {
4431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4432 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
4433 show_backtrace(1);
4434 }
4435 var88 = var90;
4436 RET_LABEL89:(void)0;
4437 }
4438 }
4439 if (varonce91) {
4440 var92 = varonce91;
4441 } else {
4442 var93 = "NativeArray";
4443 var94 = 11;
4444 var95 = standard___standard__NativeString___to_s_with_length(var93, var94);
4445 var92 = var95;
4446 varonce91 = var92;
4447 }
4448 {
4449 var96 = ((short int (*)(val* self, val* p0))(var88->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var88, var92) /* == on <var88:String>*/;
4450 }
4451 if (var96){
4452 if (varonce97) {
4453 var98 = varonce97;
4454 } else {
4455 var99 = "val";
4456 var100 = 3;
4457 var101 = standard___standard__NativeString___to_s_with_length(var99, var100);
4458 var98 = var101;
4459 varonce97 = var98;
4460 }
4461 var = var98;
4462 goto RET_LABEL;
4463 } else {
4464 if (varonce102) {
4465 var103 = varonce102;
4466 } else {
4467 var104 = "val";
4468 var105 = 3;
4469 var106 = standard___standard__NativeString___to_s_with_length(var104, var105);
4470 var103 = var106;
4471 varonce102 = var103;
4472 }
4473 var = var103;
4474 goto RET_LABEL;
4475 }
4476 }
4477 }
4478 }
4479 }
4480 }
4481 RET_LABEL:;
4482 return var;
4483 }
4484 /* method abstract_compiler#MMethodDef#can_inline for (self: MMethodDef, AbstractCompilerVisitor): Bool */
4485 short int nit__abstract_compiler___MMethodDef___can_inline(val* self, val* p0) {
4486 short int var /* : Bool */;
4487 short int var1 /* : Bool */;
4488 int cltype;
4489 int idtype;
4490 const struct type* type_struct;
4491 const char* var_class_name;
4492 val* var_v /* var v: AbstractCompilerVisitor */;
4493 short int var2 /* : Bool */;
4494 short int var4 /* : Bool */;
4495 short int var5 /* : Bool */;
4496 val* var6 /* : AbstractCompiler */;
4497 val* var8 /* : AbstractCompiler */;
4498 val* var9 /* : ModelBuilder */;
4499 val* var11 /* : ModelBuilder */;
4500 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4501 val* var12 /* : nullable ANode */;
4502 val* var_node /* var node: nullable ANode */;
4503 short int var13 /* : Bool */;
4504 int cltype14;
4505 int idtype15;
4506 short int var16 /* : Bool */;
4507 short int var17 /* : Bool */;
4508 int cltype18;
4509 int idtype19;
4510 short int var20 /* : Bool */;
4511 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
4512 /* <p0:AbstractCompilerVisitor> isa VISITOR */
4513 type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__MPropDef__VISITOR];
4514 cltype = type_struct->color;
4515 idtype = type_struct->id;
4516 if(cltype >= p0->type->table_size) {
4517 var1 = 0;
4518 } else {
4519 var1 = p0->type->type_table[cltype] == idtype;
4520 }
4521 if (unlikely(!var1)) {
4522 var_class_name = p0 == NULL ? "null" : p0->type->name;
4523 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
4524 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1815);
4525 show_backtrace(1);
4526 }
4527 var_v = p0;
4528 {
4529 { /* Inline model#MMethodDef#is_abstract (self) on <self:MMethodDef> */
4530 var4 = self->attrs[COLOR_nit__model__MMethodDef___is_abstract].s; /* _is_abstract on <self:MMethodDef> */
4531 var2 = var4;
4532 RET_LABEL3:(void)0;
4533 }
4534 }
4535 if (var2){
4536 var5 = 1;
4537 var = var5;
4538 goto RET_LABEL;
4539 } else {
4540 }
4541 {
4542 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
4543 var8 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
4544 if (unlikely(var8 == NULL)) {
4545 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4546 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
4547 show_backtrace(1);
4548 }
4549 var6 = var8;
4550 RET_LABEL7:(void)0;
4551 }
4552 }
4553 {
4554 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var6) on <var6:AbstractCompiler> */
4555 var11 = var6->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var6:AbstractCompiler> */
4556 if (unlikely(var11 == NULL)) {
4557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4558 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
4559 show_backtrace(1);
4560 }
4561 var9 = var11;
4562 RET_LABEL10:(void)0;
4563 }
4564 }
4565 var_modelbuilder = var9;
4566 {
4567 var12 = nit__modelize_property___ModelBuilder___mpropdef2node(var_modelbuilder, self);
4568 }
4569 var_node = var12;
4570 /* <var_node:nullable ANode> isa APropdef */
4571 cltype14 = type_nit__APropdef.color;
4572 idtype15 = type_nit__APropdef.id;
4573 if(var_node == NULL) {
4574 var13 = 0;
4575 } else {
4576 if(cltype14 >= var_node->type->table_size) {
4577 var13 = 0;
4578 } else {
4579 var13 = var_node->type->type_table[cltype14] == idtype15;
4580 }
4581 }
4582 if (var13){
4583 {
4584 var16 = ((short int (*)(val* self))(var_node->class->vft[COLOR_nit__abstract_compiler__APropdef__can_inline]))(var_node) /* can_inline on <var_node:nullable ANode(APropdef)>*/;
4585 }
4586 var = var16;
4587 goto RET_LABEL;
4588 } else {
4589 /* <var_node:nullable ANode> isa AClassdef */
4590 cltype18 = type_nit__AClassdef.color;
4591 idtype19 = type_nit__AClassdef.id;
4592 if(var_node == NULL) {
4593 var17 = 0;
4594 } else {
4595 if(cltype18 >= var_node->type->table_size) {
4596 var17 = 0;
4597 } else {
4598 var17 = var_node->type->type_table[cltype18] == idtype19;
4599 }
4600 }
4601 if (var17){
4602 var20 = 1;
4603 var = var20;
4604 goto RET_LABEL;
4605 } else {
4606 PRINT_ERROR("Runtime error: %s", "Aborted");
4607 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1827);
4608 show_backtrace(1);
4609 }
4610 }
4611 RET_LABEL:;
4612 return var;
4613 }
4614 /* method abstract_compiler#MMethodDef#compile_inside_to_c for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
4615 val* nit__abstract_compiler___MMethodDef___compile_inside_to_c(val* self, val* p0, val* p1) {
4616 val* var /* : nullable RuntimeVariable */;
4617 short int var1 /* : Bool */;
4618 int cltype;
4619 int idtype;
4620 const struct type* type_struct;
4621 const char* var_class_name;
4622 val* var_v /* var v: AbstractCompilerVisitor */;
4623 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4624 val* var2 /* : AbstractCompiler */;
4625 val* var4 /* : AbstractCompiler */;
4626 val* var5 /* : ModelBuilder */;
4627 val* var7 /* : ModelBuilder */;
4628 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4629 val* var8 /* : nullable Object */;
4630 val* var10 /* : nullable Object */;
4631 val* var_val /* var val: nullable Object */;
4632 val* var11 /* : nullable ANode */;
4633 val* var_node /* var node: nullable ANode */;
4634 short int var12 /* : Bool */;
4635 int cltype13;
4636 int idtype14;
4637 val* var15 /* : nullable ANode */;
4638 val* var17 /* : nullable ANode */;
4639 val* var_oldnode /* var oldnode: nullable ANode */;
4640 short int var20 /* : Bool */;
4641 int cltype21;
4642 int idtype22;
4643 val* var23 /* : nullable ANode */;
4644 val* var25 /* : nullable ANode */;
4645 val* var_oldnode26 /* var oldnode: nullable ANode */;
4646 val* var29 /* : null */;
4647 short int var30 /* : Bool */;
4648 short int var31 /* : Bool */;
4649 val* var32 /* : RuntimeVariable */;
4650 val* var33 /* : null */;
4651 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
4652 /* <p0:AbstractCompilerVisitor> isa VISITOR */
4653 type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__MPropDef__VISITOR];
4654 cltype = type_struct->color;
4655 idtype = type_struct->id;
4656 if(cltype >= p0->type->table_size) {
4657 var1 = 0;
4658 } else {
4659 var1 = p0->type->type_table[cltype] == idtype;
4660 }
4661 if (unlikely(!var1)) {
4662 var_class_name = p0 == NULL ? "null" : p0->type->name;
4663 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
4664 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1831);
4665 show_backtrace(1);
4666 }
4667 var_v = p0;
4668 var_arguments = p1;
4669 {
4670 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
4671 var4 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
4672 if (unlikely(var4 == NULL)) {
4673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4674 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
4675 show_backtrace(1);
4676 }
4677 var2 = var4;
4678 RET_LABEL3:(void)0;
4679 }
4680 }
4681 {
4682 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var2) on <var2:AbstractCompiler> */
4683 var7 = var2->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var2:AbstractCompiler> */
4684 if (unlikely(var7 == NULL)) {
4685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4686 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
4687 show_backtrace(1);
4688 }
4689 var5 = var7;
4690 RET_LABEL6:(void)0;
4691 }
4692 }
4693 var_modelbuilder = var5;
4694 {
4695 { /* Inline model#MMethodDef#constant_value (self) on <self:MMethodDef> */
4696 var10 = self->attrs[COLOR_nit__model__MMethodDef___constant_value].val; /* _constant_value on <self:MMethodDef> */
4697 var8 = var10;
4698 RET_LABEL9:(void)0;
4699 }
4700 }
4701 var_val = var8;
4702 {
4703 var11 = nit__modelize_property___ModelBuilder___mpropdef2node(var_modelbuilder, self);
4704 }
4705 var_node = var11;
4706 /* <var_node:nullable ANode> isa APropdef */
4707 cltype13 = type_nit__APropdef.color;
4708 idtype14 = type_nit__APropdef.id;
4709 if(var_node == NULL) {
4710 var12 = 0;
4711 } else {
4712 if(cltype13 >= var_node->type->table_size) {
4713 var12 = 0;
4714 } else {
4715 var12 = var_node->type->type_table[cltype13] == idtype14;
4716 }
4717 }
4718 if (var12){
4719 {
4720 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (var_v) on <var_v:AbstractCompilerVisitor> */
4721 var17 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
4722 var15 = var17;
4723 RET_LABEL16:(void)0;
4724 }
4725 }
4726 var_oldnode = var15;
4727 {
4728 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,var_node) on <var_v:AbstractCompilerVisitor> */
4729 var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_node; /* _current_node on <var_v:AbstractCompilerVisitor> */
4730 RET_LABEL18:(void)0;
4731 }
4732 }
4733 {
4734 nit__abstract_compiler___MMethodDef___compile_parameter_check(self, var_v, var_arguments); /* Direct call abstract_compiler#MMethodDef#compile_parameter_check on <self:MMethodDef>*/
4735 }
4736 {
4737 ((void (*)(val* self, val* p0, val* p1, val* p2))(var_node->class->vft[COLOR_nit__abstract_compiler__APropdef__compile_to_c]))(var_node, var_v, self, var_arguments) /* compile_to_c on <var_node:nullable ANode(APropdef)>*/;
4738 }
4739 {
4740 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,var_oldnode) on <var_v:AbstractCompilerVisitor> */
4741 var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode; /* _current_node on <var_v:AbstractCompilerVisitor> */
4742 RET_LABEL19:(void)0;
4743 }
4744 }
4745 } else {
4746 /* <var_node:nullable ANode> isa AClassdef */
4747 cltype21 = type_nit__AClassdef.color;
4748 idtype22 = type_nit__AClassdef.id;
4749 if(var_node == NULL) {
4750 var20 = 0;
4751 } else {
4752 if(cltype21 >= var_node->type->table_size) {
4753 var20 = 0;
4754 } else {
4755 var20 = var_node->type->type_table[cltype21] == idtype22;
4756 }
4757 }
4758 if (var20){
4759 {
4760 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (var_v) on <var_v:AbstractCompilerVisitor> */
4761 var25 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
4762 var23 = var25;
4763 RET_LABEL24:(void)0;
4764 }
4765 }
4766 var_oldnode26 = var23;
4767 {
4768 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,var_node) on <var_v:AbstractCompilerVisitor> */
4769 var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_node; /* _current_node on <var_v:AbstractCompilerVisitor> */
4770 RET_LABEL27:(void)0;
4771 }
4772 }
4773 {
4774 nit__abstract_compiler___MMethodDef___compile_parameter_check(self, var_v, var_arguments); /* Direct call abstract_compiler#MMethodDef#compile_parameter_check on <self:MMethodDef>*/
4775 }
4776 {
4777 nit__abstract_compiler___AClassdef___compile_to_c(var_node, var_v, self, var_arguments); /* Direct call abstract_compiler#AClassdef#compile_to_c on <var_node:nullable ANode(AClassdef)>*/
4778 }
4779 {
4780 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,var_oldnode26) on <var_v:AbstractCompilerVisitor> */
4781 var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode26; /* _current_node on <var_v:AbstractCompilerVisitor> */
4782 RET_LABEL28:(void)0;
4783 }
4784 }
4785 } else {
4786 var29 = NULL;
4787 if (var_val == NULL) {
4788 var30 = 0; /* is null */
4789 } else {
4790 var30 = 1; /* arg is null and recv is not */
4791 }
4792 if (0) {
4793 var31 = ((short int (*)(val* self, val* p0))(var_val->class->vft[COLOR_standard__kernel__Object___33d_61d]))(var_val, var29) /* != on <var_val:nullable Object>*/;
4794 var30 = var31;
4795 }
4796 if (var30){
4797 {
4798 var32 = nit___nit__AbstractCompilerVisitor___value_instance(var_v, var_val);
4799 }
4800 {
4801 nit___nit__AbstractCompilerVisitor___ret(var_v, var32); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
4802 }
4803 } else {
4804 PRINT_ERROR("Runtime error: %s", "Aborted");
4805 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1852);
4806 show_backtrace(1);
4807 }
4808 }
4809 }
4810 var33 = NULL;
4811 var = var33;
4812 goto RET_LABEL;
4813 RET_LABEL:;
4814 return var;
4815 }
4816 /* method abstract_compiler#MMethodDef#compile_parameter_check for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]) */
4817 void nit__abstract_compiler___MMethodDef___compile_parameter_check(val* self, val* p0, val* p1) {
4818 short int var /* : Bool */;
4819 int cltype;
4820 int idtype;
4821 const struct type* type_struct;
4822 const char* var_class_name;
4823 val* var_v /* var v: AbstractCompilerVisitor */;
4824 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
4825 val* var1 /* : AbstractCompiler */;
4826 val* var3 /* : AbstractCompiler */;
4827 val* var4 /* : ModelBuilder */;
4828 val* var6 /* : ModelBuilder */;
4829 val* var7 /* : ToolContext */;
4830 val* var9 /* : ToolContext */;
4831 val* var10 /* : OptionBool */;
4832 val* var12 /* : OptionBool */;
4833 val* var13 /* : nullable Object */;
4834 val* var15 /* : nullable Object */;
4835 short int var16 /* : Bool */;
4836 long var17 /* : Int */;
4837 long var_i /* var i: Int */;
4838 val* var18 /* : nullable MSignature */;
4839 val* var20 /* : nullable MSignature */;
4840 long var21 /* : Int */;
4841 long var_ /* var : Int */;
4842 short int var22 /* : Bool */;
4843 short int var24 /* : Bool */;
4844 int cltype25;
4845 int idtype26;
4846 const char* var_class_name27;
4847 short int var28 /* : Bool */;
4848 val* var29 /* : nullable MSignature */;
4849 val* var31 /* : nullable MSignature */;
4850 long var32 /* : Int */;
4851 long var34 /* : Int */;
4852 short int var35 /* : Bool */;
4853 short int var37 /* : Bool */;
4854 val* var38 /* : MProperty */;
4855 val* var40 /* : MProperty */;
4856 val* var41 /* : MPropDef */;
4857 val* var43 /* : MPropDef */;
4858 val* var44 /* : nullable MSignature */;
4859 val* var46 /* : nullable MSignature */;
4860 val* var47 /* : Array[MParameter] */;
4861 val* var49 /* : Array[MParameter] */;
4862 val* var50 /* : nullable Object */;
4863 val* var51 /* : MType */;
4864 val* var53 /* : MType */;
4865 val* var_origmtype /* var origmtype: MType */;
4866 short int var54 /* : Bool */;
4867 short int var55 /* : Bool */;
4868 val* var56 /* : nullable MSignature */;
4869 val* var58 /* : nullable MSignature */;
4870 val* var59 /* : Array[MParameter] */;
4871 val* var61 /* : Array[MParameter] */;
4872 val* var62 /* : nullable Object */;
4873 val* var63 /* : MType */;
4874 val* var65 /* : MType */;
4875 val* var_mtype /* var mtype: MType */;
4876 static val* varonce;
4877 val* var66 /* : String */;
4878 char* var67 /* : NativeString */;
4879 long var68 /* : Int */;
4880 val* var69 /* : FlatString */;
4881 static val* varonce70;
4882 val* var71 /* : String */;
4883 char* var72 /* : NativeString */;
4884 long var73 /* : Int */;
4885 val* var74 /* : FlatString */;
4886 val* var75 /* : nullable MSignature */;
4887 val* var77 /* : nullable MSignature */;
4888 val* var78 /* : Array[MParameter] */;
4889 val* var80 /* : Array[MParameter] */;
4890 val* var81 /* : nullable Object */;
4891 val* var82 /* : String */;
4892 val* var84 /* : String */;
4893 static val* varonce85;
4894 val* var86 /* : String */;
4895 char* var87 /* : NativeString */;
4896 long var88 /* : Int */;
4897 val* var89 /* : FlatString */;
4898 long var90 /* : Int */;
4899 long var91 /* : Int */;
4900 short int var93 /* : Bool */;
4901 int cltype94;
4902 int idtype95;
4903 const char* var_class_name96;
4904 long var97 /* : Int */;
4905 val* var98 /* : nullable Object */;
4906 val* var99 /* : String */;
4907 static val* varonce100;
4908 val* var101 /* : String */;
4909 char* var102 /* : NativeString */;
4910 long var103 /* : Int */;
4911 val* var104 /* : FlatString */;
4912 static val* varonce105;
4913 val* var106 /* : String */;
4914 char* var107 /* : NativeString */;
4915 long var108 /* : Int */;
4916 val* var109 /* : FlatString */;
4917 val* var110 /* : Array[Object] */;
4918 long var111 /* : Int */;
4919 val* var112 /* : NativeArray[Object] */;
4920 val* var113 /* : Object */;
4921 val* var114 /* : String */;
4922 long var115 /* : Int */;
4923 long var116 /* : Int */;
4924 short int var118 /* : Bool */;
4925 int cltype119;
4926 int idtype120;
4927 const char* var_class_name121;
4928 long var122 /* : Int */;
4929 val* var123 /* : nullable Object */;
4930 static val* varonce124;
4931 val* var125 /* : String */;
4932 char* var126 /* : NativeString */;
4933 long var127 /* : Int */;
4934 val* var128 /* : FlatString */;
4935 long var129 /* : Int */;
4936 long var130 /* : Int */;
4937 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
4938 /* <p0:AbstractCompilerVisitor> isa VISITOR */
4939 type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__MPropDef__VISITOR];
4940 cltype = type_struct->color;
4941 idtype = type_struct->id;
4942 if(cltype >= p0->type->table_size) {
4943 var = 0;
4944 } else {
4945 var = p0->type->type_table[cltype] == idtype;
4946 }
4947 if (unlikely(!var)) {
4948 var_class_name = p0 == NULL ? "null" : p0->type->name;
4949 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
4950 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1857);
4951 show_backtrace(1);
4952 }
4953 var_v = p0;
4954 var_arguments = p1;
4955 {
4956 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
4957 var3 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
4958 if (unlikely(var3 == NULL)) {
4959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4960 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
4961 show_backtrace(1);
4962 }
4963 var1 = var3;
4964 RET_LABEL2:(void)0;
4965 }
4966 }
4967 {
4968 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var1) on <var1:AbstractCompiler> */
4969 var6 = var1->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var1:AbstractCompiler> */
4970 if (unlikely(var6 == NULL)) {
4971 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4972 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
4973 show_backtrace(1);
4974 }
4975 var4 = var6;
4976 RET_LABEL5:(void)0;
4977 }
4978 }
4979 {
4980 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var4) on <var4:ModelBuilder> */
4981 var9 = var4->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var4:ModelBuilder> */
4982 if (unlikely(var9 == NULL)) {
4983 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4984 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
4985 show_backtrace(1);
4986 }
4987 var7 = var9;
4988 RET_LABEL8:(void)0;
4989 }
4990 }
4991 {
4992 { /* Inline abstract_compiler#ToolContext#opt_no_check_covariance (var7) on <var7:ToolContext> */
4993 var12 = var7->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_covariance].val; /* _opt_no_check_covariance on <var7:ToolContext> */
4994 if (unlikely(var12 == NULL)) {
4995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
4996 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 47);
4997 show_backtrace(1);
4998 }
4999 var10 = var12;
5000 RET_LABEL11:(void)0;
5001 }
5002 }
5003 {
5004 { /* Inline opts#Option#value (var10) on <var10:OptionBool> */
5005 var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionBool> */
5006 var13 = var15;
5007 RET_LABEL14:(void)0;
5008 }
5009 }
5010 var16 = ((struct instance_standard__Bool*)var13)->value; /* autounbox from nullable Object to Bool */;
5011 if (var16){
5012 goto RET_LABEL;
5013 } else {
5014 }
5015 var17 = 0;
5016 var_i = var17;
5017 {
5018 { /* Inline model#MMethodDef#msignature (self) on <self:MMethodDef> */
5019 var20 = self->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <self:MMethodDef> */
5020 var18 = var20;
5021 RET_LABEL19:(void)0;
5022 }
5023 }
5024 if (var18 == NULL) {
5025 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5026 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1862);
5027 show_backtrace(1);
5028 } else {
5029 var21 = nit___nit__MSignature___arity(var18);
5030 }
5031 var_ = var21;
5032 for(;;) {
5033 {
5034 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
5035 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
5036 /* <var_:Int> isa OTHER */
5037 var24 = 1; /* easy <var_:Int> isa OTHER*/
5038 if (unlikely(!var24)) {
5039 var_class_name27 = type_standard__Int.name;
5040 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name27);
5041 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
5042 show_backtrace(1);
5043 }
5044 var28 = var_i < var_;
5045 var22 = var28;
5046 goto RET_LABEL23;
5047 RET_LABEL23:(void)0;
5048 }
5049 }
5050 if (var22){
5051 {
5052 { /* Inline model#MMethodDef#msignature (self) on <self:MMethodDef> */
5053 var31 = self->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <self:MMethodDef> */
5054 var29 = var31;
5055 RET_LABEL30:(void)0;
5056 }
5057 }
5058 if (var29 == NULL) {
5059 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5060 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1864);
5061 show_backtrace(1);
5062 } else {
5063 { /* Inline model#MSignature#vararg_rank (var29) on <var29:nullable MSignature> */
5064 if (unlikely(var29 == NULL)) {
5065 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1635);
5067 show_backtrace(1);
5068 }
5069 var34 = var29->attrs[COLOR_nit__model__MSignature___vararg_rank].l; /* _vararg_rank on <var29:nullable MSignature> */
5070 var32 = var34;
5071 RET_LABEL33:(void)0;
5072 }
5073 }
5074 {
5075 { /* Inline kernel#Int#== (var32,var_i) on <var32:Int> */
5076 var37 = var32 == var_i;
5077 var35 = var37;
5078 goto RET_LABEL36;
5079 RET_LABEL36:(void)0;
5080 }
5081 }
5082 if (var35){
5083 goto BREAK_label;
5084 } else {
5085 }
5086 {
5087 { /* Inline model#MPropDef#mproperty (self) on <self:MMethodDef> */
5088 var40 = self->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <self:MMethodDef> */
5089 if (unlikely(var40 == NULL)) {
5090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5091 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
5092 show_backtrace(1);
5093 }
5094 var38 = var40;
5095 RET_LABEL39:(void)0;
5096 }
5097 }
5098 {
5099 { /* Inline model#MProperty#intro (var38) on <var38:MProperty(MMethod)> */
5100 var43 = var38->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var38:MProperty(MMethod)> */
5101 if (unlikely(var43 == NULL)) {
5102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
5103 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1773);
5104 show_backtrace(1);
5105 }
5106 var41 = var43;
5107 RET_LABEL42:(void)0;
5108 }
5109 }
5110 {
5111 { /* Inline model#MMethodDef#msignature (var41) on <var41:MPropDef(MMethodDef)> */
5112 var46 = var41->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var41:MPropDef(MMethodDef)> */
5113 var44 = var46;
5114 RET_LABEL45:(void)0;
5115 }
5116 }
5117 if (var44 == NULL) {
5118 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5119 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1867);
5120 show_backtrace(1);
5121 } else {
5122 { /* Inline model#MSignature#mparameters (var44) on <var44:nullable MSignature> */
5123 if (unlikely(var44 == NULL)) {
5124 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
5126 show_backtrace(1);
5127 }
5128 var49 = var44->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var44:nullable MSignature> */
5129 if (unlikely(var49 == NULL)) {
5130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5131 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
5132 show_backtrace(1);
5133 }
5134 var47 = var49;
5135 RET_LABEL48:(void)0;
5136 }
5137 }
5138 {
5139 var50 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var47, var_i);
5140 }
5141 {
5142 { /* Inline model#MParameter#mtype (var50) on <var50:nullable Object(MParameter)> */
5143 var53 = var50->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var50:nullable Object(MParameter)> */
5144 if (unlikely(var53 == NULL)) {
5145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5146 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
5147 show_backtrace(1);
5148 }
5149 var51 = var53;
5150 RET_LABEL52:(void)0;
5151 }
5152 }
5153 var_origmtype = var51;
5154 {
5155 var54 = ((short int (*)(val* self))(var_origmtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_origmtype) /* need_anchor on <var_origmtype:MType>*/;
5156 }
5157 var55 = !var54;
5158 if (var55){
5159 goto BREAK_label;
5160 } else {
5161 }
5162 {
5163 { /* Inline model#MMethodDef#msignature (self) on <self:MMethodDef> */
5164 var58 = self->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <self:MMethodDef> */
5165 var56 = var58;
5166 RET_LABEL57:(void)0;
5167 }
5168 }
5169 if (var56 == NULL) {
5170 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5171 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1871);
5172 show_backtrace(1);
5173 } else {
5174 { /* Inline model#MSignature#mparameters (var56) on <var56:nullable MSignature> */
5175 if (unlikely(var56 == NULL)) {
5176 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5177 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
5178 show_backtrace(1);
5179 }
5180 var61 = var56->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var56:nullable MSignature> */
5181 if (unlikely(var61 == NULL)) {
5182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5183 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
5184 show_backtrace(1);
5185 }
5186 var59 = var61;
5187 RET_LABEL60:(void)0;
5188 }
5189 }
5190 {
5191 var62 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var59, var_i);
5192 }
5193 {
5194 { /* Inline model#MParameter#mtype (var62) on <var62:nullable Object(MParameter)> */
5195 var65 = var62->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var62:nullable Object(MParameter)> */
5196 if (unlikely(var65 == NULL)) {
5197 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5198 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
5199 show_backtrace(1);
5200 }
5201 var63 = var65;
5202 RET_LABEL64:(void)0;
5203 }
5204 }
5205 var_mtype = var63;
5206 if (varonce) {
5207 var66 = varonce;
5208 } else {
5209 var67 = "/* Covariant cast for argument ";
5210 var68 = 31;
5211 var69 = standard___standard__NativeString___to_s_with_length(var67, var68);
5212 var66 = var69;
5213 varonce = var66;
5214 }
5215 if (varonce70) {
5216 var71 = varonce70;
5217 } else {
5218 var72 = " (";
5219 var73 = 2;
5220 var74 = standard___standard__NativeString___to_s_with_length(var72, var73);
5221 var71 = var74;
5222 varonce70 = var71;
5223 }
5224 {
5225 { /* Inline model#MMethodDef#msignature (self) on <self:MMethodDef> */
5226 var77 = self->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <self:MMethodDef> */
5227 var75 = var77;
5228 RET_LABEL76:(void)0;
5229 }
5230 }
5231 if (var75 == NULL) {
5232 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5233 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1875);
5234 show_backtrace(1);
5235 } else {
5236 { /* Inline model#MSignature#mparameters (var75) on <var75:nullable MSignature> */
5237 if (unlikely(var75 == NULL)) {
5238 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5239 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
5240 show_backtrace(1);
5241 }
5242 var80 = var75->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var75:nullable MSignature> */
5243 if (unlikely(var80 == NULL)) {
5244 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5245 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
5246 show_backtrace(1);
5247 }
5248 var78 = var80;
5249 RET_LABEL79:(void)0;
5250 }
5251 }
5252 {
5253 var81 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var78, var_i);
5254 }
5255 {
5256 { /* Inline model#MParameter#name (var81) on <var81:nullable Object(MParameter)> */
5257 var84 = var81->attrs[COLOR_nit__model__MParameter___name].val; /* _name on <var81:nullable Object(MParameter)> */
5258 if (unlikely(var84 == NULL)) {
5259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5260 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1687);
5261 show_backtrace(1);
5262 }
5263 var82 = var84;
5264 RET_LABEL83:(void)0;
5265 }
5266 }
5267 if (varonce85) {
5268 var86 = varonce85;
5269 } else {
5270 var87 = ") ";
5271 var88 = 2;
5272 var89 = standard___standard__NativeString___to_s_with_length(var87, var88);
5273 var86 = var89;
5274 varonce85 = var86;
5275 }
5276 var90 = 1;
5277 {
5278 { /* Inline kernel#Int#+ (var_i,var90) on <var_i:Int> */
5279 /* Covariant cast for argument 0 (i) <var90:Int> isa OTHER */
5280 /* <var90:Int> isa OTHER */
5281 var93 = 1; /* easy <var90:Int> isa OTHER*/
5282 if (unlikely(!var93)) {
5283 var_class_name96 = type_standard__Int.name;
5284 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name96);
5285 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
5286 show_backtrace(1);
5287 }
5288 var97 = var_i + var90;
5289 var91 = var97;
5290 goto RET_LABEL92;
5291 RET_LABEL92:(void)0;
5292 }
5293 }
5294 {
5295 var98 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var91);
5296 }
5297 {
5298 var99 = nit___nit__RuntimeVariable___standard__string__Object__inspect(var98);
5299 }
5300 if (varonce100) {
5301 var101 = varonce100;
5302 } else {
5303 var102 = " isa ";
5304 var103 = 5;
5305 var104 = standard___standard__NativeString___to_s_with_length(var102, var103);
5306 var101 = var104;
5307 varonce100 = var101;
5308 }
5309 if (varonce105) {
5310 var106 = varonce105;
5311 } else {
5312 var107 = " */";
5313 var108 = 3;
5314 var109 = standard___standard__NativeString___to_s_with_length(var107, var108);
5315 var106 = var109;
5316 varonce105 = var106;
5317 }
5318 var110 = NEW_standard__Array(&type_standard__Array__standard__Object);
5319 { /* var110 = array_instance Array[Object] */
5320 var111 = 9;
5321 var112 = NEW_standard__NativeArray(var111, &type_standard__NativeArray__standard__Object);
5322 ((struct instance_standard__NativeArray*)var112)->values[0] = (val*) var66;
5323 var113 = BOX_standard__Int(var_i); /* autobox from Int to Object */
5324 ((struct instance_standard__NativeArray*)var112)->values[1] = (val*) var113;
5325 ((struct instance_standard__NativeArray*)var112)->values[2] = (val*) var71;
5326 ((struct instance_standard__NativeArray*)var112)->values[3] = (val*) var82;
5327 ((struct instance_standard__NativeArray*)var112)->values[4] = (val*) var86;
5328 ((struct instance_standard__NativeArray*)var112)->values[5] = (val*) var99;
5329 ((struct instance_standard__NativeArray*)var112)->values[6] = (val*) var101;
5330 ((struct instance_standard__NativeArray*)var112)->values[7] = (val*) var_mtype;
5331 ((struct instance_standard__NativeArray*)var112)->values[8] = (val*) var106;
5332 {
5333 ((void (*)(val* self, val* p0, long p1))(var110->class->vft[COLOR_standard__array__Array__with_native]))(var110, var112, var111) /* with_native on <var110:Array[Object]>*/;
5334 }
5335 }
5336 {
5337 var114 = ((val* (*)(val* self))(var110->class->vft[COLOR_standard__string__Object__to_s]))(var110) /* to_s on <var110:Array[Object]>*/;
5338 }
5339 {
5340 nit___nit__AbstractCompilerVisitor___add(var_v, var114); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5341 }
5342 var115 = 1;
5343 {
5344 { /* Inline kernel#Int#+ (var_i,var115) on <var_i:Int> */
5345 /* Covariant cast for argument 0 (i) <var115:Int> isa OTHER */
5346 /* <var115:Int> isa OTHER */
5347 var118 = 1; /* easy <var115:Int> isa OTHER*/
5348 if (unlikely(!var118)) {
5349 var_class_name121 = type_standard__Int.name;
5350 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name121);
5351 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
5352 show_backtrace(1);
5353 }
5354 var122 = var_i + var115;
5355 var116 = var122;
5356 goto RET_LABEL117;
5357 RET_LABEL117:(void)0;
5358 }
5359 }
5360 {
5361 var123 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var116);
5362 }
5363 if (varonce124) {
5364 var125 = varonce124;
5365 } else {
5366 var126 = "covariance";
5367 var127 = 10;
5368 var128 = standard___standard__NativeString___to_s_with_length(var126, var127);
5369 var125 = var128;
5370 varonce124 = var125;
5371 }
5372 {
5373 nit___nit__AbstractCompilerVisitor___add_cast(var_v, var123, var_mtype, var125); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_cast on <var_v:AbstractCompilerVisitor>*/
5374 }
5375 BREAK_label: (void)0;
5376 var129 = 1;
5377 {
5378 var130 = standard___standard__Int___Discrete__successor(var_i, var129);
5379 }
5380 var_i = var130;
5381 } else {
5382 goto BREAK_label131;
5383 }
5384 }
5385 BREAK_label131: (void)0;
5386 RET_LABEL:;
5387 }
5388 /* method abstract_compiler#APropdef#compile_to_c for (self: APropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5389 void nit__abstract_compiler___APropdef___compile_to_c(val* self, val* p0, val* p1, val* p2) {
5390 val* var_v /* var v: AbstractCompilerVisitor */;
5391 val* var_mpropdef /* var mpropdef: MMethodDef */;
5392 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
5393 static val* varonce;
5394 val* var /* : String */;
5395 char* var1 /* : NativeString */;
5396 long var2 /* : Int */;
5397 val* var3 /* : FlatString */;
5398 val* var4 /* : String */;
5399 static val* varonce5;
5400 val* var6 /* : String */;
5401 char* var7 /* : NativeString */;
5402 long var8 /* : Int */;
5403 val* var9 /* : FlatString */;
5404 static val* varonce10;
5405 val* var11 /* : String */;
5406 char* var12 /* : NativeString */;
5407 long var13 /* : Int */;
5408 val* var14 /* : FlatString */;
5409 val* var15 /* : Location */;
5410 val* var17 /* : Location */;
5411 val* var18 /* : String */;
5412 static val* varonce19;
5413 val* var20 /* : String */;
5414 char* var21 /* : NativeString */;
5415 long var22 /* : Int */;
5416 val* var23 /* : FlatString */;
5417 val* var24 /* : Array[Object] */;
5418 long var25 /* : Int */;
5419 val* var26 /* : NativeArray[Object] */;
5420 val* var27 /* : String */;
5421 static val* varonce28;
5422 val* var29 /* : String */;
5423 char* var30 /* : NativeString */;
5424 long var31 /* : Int */;
5425 val* var32 /* : FlatString */;
5426 var_v = p0;
5427 var_mpropdef = p1;
5428 var_arguments = p2;
5429 if (varonce) {
5430 var = varonce;
5431 } else {
5432 var1 = "PRINT_ERROR(\"NOT YET IMPLEMENTED ";
5433 var2 = 33;
5434 var3 = standard___standard__NativeString___to_s_with_length(var1, var2);
5435 var = var3;
5436 varonce = var;
5437 }
5438 {
5439 var4 = standard__string___Object___class_name(self);
5440 }
5441 if (varonce5) {
5442 var6 = varonce5;
5443 } else {
5444 var7 = " ";
5445 var8 = 1;
5446 var9 = standard___standard__NativeString___to_s_with_length(var7, var8);
5447 var6 = var9;
5448 varonce5 = var6;
5449 }
5450 if (varonce10) {
5451 var11 = varonce10;
5452 } else {
5453 var12 = " at ";
5454 var13 = 4;
5455 var14 = standard___standard__NativeString___to_s_with_length(var12, var13);
5456 var11 = var14;
5457 varonce10 = var11;
5458 }
5459 {
5460 { /* Inline parser_nodes#ANode#location (self) on <self:APropdef> */
5461 var17 = self->attrs[COLOR_nit__parser_nodes__ANode___location].val; /* _location on <self:APropdef> */
5462 if (unlikely(var17 == NULL)) {
5463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
5464 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 23);
5465 show_backtrace(1);
5466 }
5467 var15 = var17;
5468 RET_LABEL16:(void)0;
5469 }
5470 }
5471 {
5472 var18 = nit___nit__Location___standard__string__Object__to_s(var15);
5473 }
5474 if (varonce19) {
5475 var20 = varonce19;
5476 } else {
5477 var21 = "\\n\");";
5478 var22 = 5;
5479 var23 = standard___standard__NativeString___to_s_with_length(var21, var22);
5480 var20 = var23;
5481 varonce19 = var20;
5482 }
5483 var24 = NEW_standard__Array(&type_standard__Array__standard__Object);
5484 { /* var24 = array_instance Array[Object] */
5485 var25 = 7;
5486 var26 = NEW_standard__NativeArray(var25, &type_standard__NativeArray__standard__Object);
5487 ((struct instance_standard__NativeArray*)var26)->values[0] = (val*) var;
5488 ((struct instance_standard__NativeArray*)var26)->values[1] = (val*) var4;
5489 ((struct instance_standard__NativeArray*)var26)->values[2] = (val*) var6;
5490 ((struct instance_standard__NativeArray*)var26)->values[3] = (val*) var_mpropdef;
5491 ((struct instance_standard__NativeArray*)var26)->values[4] = (val*) var11;
5492 ((struct instance_standard__NativeArray*)var26)->values[5] = (val*) var18;
5493 ((struct instance_standard__NativeArray*)var26)->values[6] = (val*) var20;
5494 {
5495 ((void (*)(val* self, val* p0, long p1))(var24->class->vft[COLOR_standard__array__Array__with_native]))(var24, var26, var25) /* with_native on <var24:Array[Object]>*/;
5496 }
5497 }
5498 {
5499 var27 = ((val* (*)(val* self))(var24->class->vft[COLOR_standard__string__Object__to_s]))(var24) /* to_s on <var24:Array[Object]>*/;
5500 }
5501 {
5502 nit___nit__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5503 }
5504 if (varonce28) {
5505 var29 = varonce28;
5506 } else {
5507 var30 = "Not yet implemented";
5508 var31 = 19;
5509 var32 = standard___standard__NativeString___to_s_with_length(var30, var31);
5510 var29 = var32;
5511 varonce28 = var29;
5512 }
5513 {
5514 nit___nit__ANode___debug(self, var29); /* Direct call parser_nodes#ANode#debug on <self:APropdef>*/
5515 }
5516 RET_LABEL:;
5517 }
5518 /* method abstract_compiler#APropdef#can_inline for (self: APropdef): Bool */
5519 short int nit__abstract_compiler___APropdef___can_inline(val* self) {
5520 short int var /* : Bool */;
5521 short int var1 /* : Bool */;
5522 var1 = 1;
5523 var = var1;
5524 goto RET_LABEL;
5525 RET_LABEL:;
5526 return var;
5527 }
5528 /* method abstract_compiler#AMethPropdef#compile_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
5529 void nit__abstract_compiler___AMethPropdef___APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
5530 val* var_v /* var v: AbstractCompilerVisitor */;
5531 val* var_mpropdef /* var mpropdef: MMethodDef */;
5532 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
5533 short int var /* : Bool */;
5534 short int var2 /* : Bool */;
5535 val* var3 /* : nullable Object */;
5536 val* var4 /* : String */;
5537 val* var_cn /* var cn: String */;
5538 static val* varonce;
5539 val* var5 /* : String */;
5540 char* var6 /* : NativeString */;
5541 long var7 /* : Int */;
5542 val* var8 /* : FlatString */;
5543 val* var9 /* : MProperty */;
5544 val* var11 /* : MProperty */;
5545 val* var12 /* : String */;
5546 val* var14 /* : String */;
5547 val* var15 /* : String */;
5548 static val* varonce16;
5549 val* var17 /* : String */;
5550 char* var18 /* : NativeString */;
5551 long var19 /* : Int */;
5552 val* var20 /* : FlatString */;
5553 static val* varonce21;
5554 val* var22 /* : String */;
5555 char* var23 /* : NativeString */;
5556 long var24 /* : Int */;
5557 val* var25 /* : FlatString */;
5558 val* var26 /* : Array[Object] */;
5559 long var27 /* : Int */;
5560 val* var28 /* : NativeArray[Object] */;
5561 val* var29 /* : String */;
5562 val* var30 /* : nullable Array[CallSite] */;
5563 val* var32 /* : nullable Array[CallSite] */;
5564 val* var_auto_super_inits /* var auto_super_inits: nullable Array[CallSite] */;
5565 val* var33 /* : null */;
5566 short int var34 /* : Bool */;
5567 short int var35 /* : Bool */;
5568 val* var_other /* var other: nullable Object */;
5569 short int var37 /* : Bool */;
5570 short int var38 /* : Bool */;
5571 val* var39 /* : Array[RuntimeVariable] */;
5572 long var40 /* : Int */;
5573 val* var_ /* var : Array[RuntimeVariable] */;
5574 val* var41 /* : nullable Object */;
5575 val* var_args /* var args: Array[RuntimeVariable] */;
5576 val* var_42 /* var : Array[CallSite] */;
5577 val* var43 /* : ArrayIterator[nullable Object] */;
5578 val* var_44 /* var : ArrayIterator[CallSite] */;
5579 short int var45 /* : Bool */;
5580 val* var46 /* : nullable Object */;
5581 val* var_auto_super_init /* var auto_super_init: CallSite */;
5582 val* var47 /* : MMethod */;
5583 val* var49 /* : MMethod */;
5584 val* var50 /* : MProperty */;
5585 val* var52 /* : MProperty */;
5586 short int var53 /* : Bool */;
5587 short int var55 /* : Bool */;
5588 short int var56 /* : Bool */;
5589 long var57 /* : Int */;
5590 long var_i /* var i: Int */;
5591 val* var58 /* : MSignature */;
5592 val* var60 /* : MSignature */;
5593 long var61 /* : Int */;
5594 long var62 /* : Int */;
5595 long var63 /* : Int */;
5596 short int var65 /* : Bool */;
5597 int cltype;
5598 int idtype;
5599 const char* var_class_name;
5600 long var66 /* : Int */;
5601 long var_67 /* var : Int */;
5602 short int var68 /* : Bool */;
5603 short int var70 /* : Bool */;
5604 int cltype71;
5605 int idtype72;
5606 const char* var_class_name73;
5607 short int var74 /* : Bool */;
5608 val* var75 /* : nullable Object */;
5609 long var76 /* : Int */;
5610 long var77 /* : Int */;
5611 val* var78 /* : MMethod */;
5612 val* var80 /* : MMethod */;
5613 val* var81 /* : MProperty */;
5614 val* var83 /* : MProperty */;
5615 short int var84 /* : Bool */;
5616 short int var86 /* : Bool */;
5617 short int var87 /* : Bool */;
5618 val* var88 /* : nullable RuntimeVariable */;
5619 short int var91 /* : Bool */;
5620 short int var93 /* : Bool */;
5621 val* var94 /* : nullable Object */;
5622 val* var95 /* : MType */;
5623 val* var97 /* : MType */;
5624 short int var98 /* : Bool */;
5625 int cltype99;
5626 int idtype100;
5627 const char* var_class_name101;
5628 val* var102 /* : nullable RuntimeVariable */;
5629 short int var103 /* : Bool */;
5630 short int var105 /* : Bool */;
5631 short int var106 /* : Bool */;
5632 short int var107 /* : Bool */;
5633 short int var109 /* : Bool */;
5634 val* var110 /* : MProperty */;
5635 val* var112 /* : MProperty */;
5636 short int var113 /* : Bool */;
5637 short int var115 /* : Bool */;
5638 short int var116 /* : Bool */;
5639 short int var117 /* : Bool */;
5640 val* var118 /* : nullable AExpr */;
5641 val* var120 /* : nullable AExpr */;
5642 val* var_n_block /* var n_block: nullable AExpr */;
5643 val* var121 /* : null */;
5644 short int var122 /* : Bool */;
5645 short int var123 /* : Bool */;
5646 short int var125 /* : Bool */;
5647 short int var126 /* : Bool */;
5648 long var127 /* : Int */;
5649 long var_i128 /* var i: Int */;
5650 val* var129 /* : nullable MSignature */;
5651 val* var131 /* : nullable MSignature */;
5652 long var132 /* : Int */;
5653 long var_133 /* var : Int */;
5654 short int var134 /* : Bool */;
5655 short int var136 /* : Bool */;
5656 int cltype137;
5657 int idtype138;
5658 const char* var_class_name139;
5659 short int var140 /* : Bool */;
5660 val* var141 /* : nullable ASignature */;
5661 val* var143 /* : nullable ASignature */;
5662 val* var144 /* : ANodes[AParam] */;
5663 val* var146 /* : ANodes[AParam] */;
5664 val* var147 /* : ANode */;
5665 val* var148 /* : nullable Variable */;
5666 val* var150 /* : nullable Variable */;
5667 val* var_variable /* var variable: Variable */;
5668 val* var151 /* : RuntimeVariable */;
5669 long var152 /* : Int */;
5670 long var153 /* : Int */;
5671 short int var155 /* : Bool */;
5672 int cltype156;
5673 int idtype157;
5674 const char* var_class_name158;
5675 long var159 /* : Int */;
5676 val* var160 /* : nullable Object */;
5677 long var161 /* : Int */;
5678 long var162 /* : Int */;
5679 val* var164 /* : nullable Object */;
5680 val* var165 /* : String */;
5681 val* var_cn166 /* var cn: String */;
5682 static val* varonce167;
5683 val* var168 /* : String */;
5684 char* var169 /* : NativeString */;
5685 long var170 /* : Int */;
5686 val* var171 /* : FlatString */;
5687 val* var172 /* : MProperty */;
5688 val* var174 /* : MProperty */;
5689 val* var175 /* : String */;
5690 val* var177 /* : String */;
5691 val* var178 /* : String */;
5692 static val* varonce179;
5693 val* var180 /* : String */;
5694 char* var181 /* : NativeString */;
5695 long var182 /* : Int */;
5696 val* var183 /* : FlatString */;
5697 static val* varonce184;
5698 val* var185 /* : String */;
5699 char* var186 /* : NativeString */;
5700 long var187 /* : Int */;
5701 val* var188 /* : FlatString */;
5702 val* var189 /* : Array[Object] */;
5703 long var190 /* : Int */;
5704 val* var191 /* : NativeArray[Object] */;
5705 val* var192 /* : String */;
5706 var_v = p0;
5707 var_mpropdef = p1;
5708 var_arguments = p2;
5709 {
5710 { /* Inline model#MMethodDef#is_abstract (var_mpropdef) on <var_mpropdef:MMethodDef> */
5711 var2 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___is_abstract].s; /* _is_abstract on <var_mpropdef:MMethodDef> */
5712 var = var2;
5713 RET_LABEL1:(void)0;
5714 }
5715 }
5716 if (var){
5717 {
5718 var3 = standard___standard__SequenceRead___Collection__first(var_arguments);
5719 }
5720 {
5721 var4 = ((val* (*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var3) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
5722 }
5723 var_cn = var4;
5724 if (varonce) {
5725 var5 = varonce;
5726 } else {
5727 var6 = "PRINT_ERROR(\"Runtime error: Abstract method `%s` called on `%s`\", \"";
5728 var7 = 67;
5729 var8 = standard___standard__NativeString___to_s_with_length(var6, var7);
5730 var5 = var8;
5731 varonce = var5;
5732 }
5733 {
5734 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
5735 var11 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
5736 if (unlikely(var11 == NULL)) {
5737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5738 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
5739 show_backtrace(1);
5740 }
5741 var9 = var11;
5742 RET_LABEL10:(void)0;
5743 }
5744 }
5745 {
5746 { /* Inline model#MProperty#name (var9) on <var9:MProperty(MMethod)> */
5747 var14 = var9->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var9:MProperty(MMethod)> */
5748 if (unlikely(var14 == NULL)) {
5749 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5750 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
5751 show_backtrace(1);
5752 }
5753 var12 = var14;
5754 RET_LABEL13:(void)0;
5755 }
5756 }
5757 {
5758 var15 = standard___standard__Text___escape_to_c(var12);
5759 }
5760 if (varonce16) {
5761 var17 = varonce16;
5762 } else {
5763 var18 = "\", ";
5764 var19 = 3;
5765 var20 = standard___standard__NativeString___to_s_with_length(var18, var19);
5766 var17 = var20;
5767 varonce16 = var17;
5768 }
5769 if (varonce21) {
5770 var22 = varonce21;
5771 } else {
5772 var23 = ");";
5773 var24 = 2;
5774 var25 = standard___standard__NativeString___to_s_with_length(var23, var24);
5775 var22 = var25;
5776 varonce21 = var22;
5777 }
5778 var26 = NEW_standard__Array(&type_standard__Array__standard__Object);
5779 { /* var26 = array_instance Array[Object] */
5780 var27 = 5;
5781 var28 = NEW_standard__NativeArray(var27, &type_standard__NativeArray__standard__Object);
5782 ((struct instance_standard__NativeArray*)var28)->values[0] = (val*) var5;
5783 ((struct instance_standard__NativeArray*)var28)->values[1] = (val*) var15;
5784 ((struct instance_standard__NativeArray*)var28)->values[2] = (val*) var17;
5785 ((struct instance_standard__NativeArray*)var28)->values[3] = (val*) var_cn;
5786 ((struct instance_standard__NativeArray*)var28)->values[4] = (val*) var22;
5787 {
5788 ((void (*)(val* self, val* p0, long p1))(var26->class->vft[COLOR_standard__array__Array__with_native]))(var26, var28, var27) /* with_native on <var26:Array[Object]>*/;
5789 }
5790 }
5791 {
5792 var29 = ((val* (*)(val* self))(var26->class->vft[COLOR_standard__string__Object__to_s]))(var26) /* to_s on <var26:Array[Object]>*/;
5793 }
5794 {
5795 nit___nit__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5796 }
5797 {
5798 nit___nit__AbstractCompilerVisitor___add_raw_abort(var_v); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_raw_abort on <var_v:AbstractCompilerVisitor>*/
5799 }
5800 goto RET_LABEL;
5801 } else {
5802 }
5803 {
5804 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (self) on <self:AMethPropdef> */
5805 var32 = self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
5806 var30 = var32;
5807 RET_LABEL31:(void)0;
5808 }
5809 }
5810 var_auto_super_inits = var30;
5811 var33 = NULL;
5812 if (var_auto_super_inits == NULL) {
5813 var34 = 0; /* is null */
5814 } else {
5815 var34 = 1; /* arg is null and recv is not */
5816 }
5817 if (0) {
5818 { /* Inline kernel#Object#!= (var_auto_super_inits,var33) on <var_auto_super_inits:nullable Array[CallSite]> */
5819 var_other = var33;
5820 {
5821 var37 = ((short int (*)(val* self, val* p0))(var_auto_super_inits->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_auto_super_inits, var_other) /* == on <var_auto_super_inits:nullable Array[CallSite](Array[CallSite])>*/;
5822 }
5823 var38 = !var37;
5824 var35 = var38;
5825 goto RET_LABEL36;
5826 RET_LABEL36:(void)0;
5827 }
5828 var34 = var35;
5829 }
5830 if (var34){
5831 var39 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
5832 var40 = 1;
5833 {
5834 standard___standard__Array___with_capacity(var39, var40); /* Direct call array#Array#with_capacity on <var39:Array[RuntimeVariable]>*/
5835 }
5836 var_ = var39;
5837 {
5838 var41 = standard___standard__SequenceRead___Collection__first(var_arguments);
5839 }
5840 {
5841 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_, var41); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
5842 }
5843 var_args = var_;
5844 var_42 = var_auto_super_inits;
5845 {
5846 var43 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_42);
5847 }
5848 var_44 = var43;
5849 for(;;) {
5850 {
5851 var45 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_44);
5852 }
5853 if (var45){
5854 {
5855 var46 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_44);
5856 }
5857 var_auto_super_init = var46;
5858 {
5859 { /* Inline typing#CallSite#mproperty (var_auto_super_init) on <var_auto_super_init:CallSite> */
5860 var49 = var_auto_super_init->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on <var_auto_super_init:CallSite> */
5861 if (unlikely(var49 == NULL)) {
5862 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5863 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487);
5864 show_backtrace(1);
5865 }
5866 var47 = var49;
5867 RET_LABEL48:(void)0;
5868 }
5869 }
5870 {
5871 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
5872 var52 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
5873 if (unlikely(var52 == NULL)) {
5874 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5875 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
5876 show_backtrace(1);
5877 }
5878 var50 = var52;
5879 RET_LABEL51:(void)0;
5880 }
5881 }
5882 {
5883 { /* Inline kernel#Object#!= (var47,var50) on <var47:MMethod> */
5884 var_other = var50;
5885 {
5886 var55 = ((short int (*)(val* self, val* p0))(var47->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var47, var_other) /* == on <var47:MMethod>*/;
5887 }
5888 var56 = !var55;
5889 var53 = var56;
5890 goto RET_LABEL54;
5891 RET_LABEL54:(void)0;
5892 }
5893 }
5894 if (unlikely(!var53)) {
5895 PRINT_ERROR("Runtime error: %s", "Assert failed");
5896 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1908);
5897 show_backtrace(1);
5898 }
5899 {
5900 standard___standard__AbstractArray___standard__abstract_collection__RemovableCollection__clear(var_args); /* Direct call array#AbstractArray#clear on <var_args:Array[RuntimeVariable]>*/
5901 }
5902 var57 = 0;
5903 var_i = var57;
5904 {
5905 { /* Inline typing#CallSite#msignature (var_auto_super_init) on <var_auto_super_init:CallSite> */
5906 var60 = var_auto_super_init->attrs[COLOR_nit__typing__CallSite___msignature].val; /* _msignature on <var_auto_super_init:CallSite> */
5907 if (unlikely(var60 == NULL)) {
5908 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
5909 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 494);
5910 show_backtrace(1);
5911 }
5912 var58 = var60;
5913 RET_LABEL59:(void)0;
5914 }
5915 }
5916 {
5917 var61 = nit___nit__MSignature___arity(var58);
5918 }
5919 var62 = 1;
5920 {
5921 { /* Inline kernel#Int#+ (var61,var62) on <var61:Int> */
5922 /* Covariant cast for argument 0 (i) <var62:Int> isa OTHER */
5923 /* <var62:Int> isa OTHER */
5924 var65 = 1; /* easy <var62:Int> isa OTHER*/
5925 if (unlikely(!var65)) {
5926 var_class_name = type_standard__Int.name;
5927 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5928 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
5929 show_backtrace(1);
5930 }
5931 var66 = var61 + var62;
5932 var63 = var66;
5933 goto RET_LABEL64;
5934 RET_LABEL64:(void)0;
5935 }
5936 }
5937 var_67 = var63;
5938 for(;;) {
5939 {
5940 { /* Inline kernel#Int#< (var_i,var_67) on <var_i:Int> */
5941 /* Covariant cast for argument 0 (i) <var_67:Int> isa OTHER */
5942 /* <var_67:Int> isa OTHER */
5943 var70 = 1; /* easy <var_67:Int> isa OTHER*/
5944 if (unlikely(!var70)) {
5945 var_class_name73 = type_standard__Int.name;
5946 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name73);
5947 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
5948 show_backtrace(1);
5949 }
5950 var74 = var_i < var_67;
5951 var68 = var74;
5952 goto RET_LABEL69;
5953 RET_LABEL69:(void)0;
5954 }
5955 }
5956 if (var68){
5957 {
5958 var75 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var_i);
5959 }
5960 {
5961 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_args, var75); /* Direct call array#Array#add on <var_args:Array[RuntimeVariable]>*/
5962 }
5963 var76 = 1;
5964 {
5965 var77 = standard___standard__Int___Discrete__successor(var_i, var76);
5966 }
5967 var_i = var77;
5968 } else {
5969 goto BREAK_label;
5970 }
5971 }
5972 BREAK_label: (void)0;
5973 {
5974 { /* Inline typing#CallSite#mproperty (var_auto_super_init) on <var_auto_super_init:CallSite> */
5975 var80 = var_auto_super_init->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on <var_auto_super_init:CallSite> */
5976 if (unlikely(var80 == NULL)) {
5977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5978 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487);
5979 show_backtrace(1);
5980 }
5981 var78 = var80;
5982 RET_LABEL79:(void)0;
5983 }
5984 }
5985 {
5986 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
5987 var83 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
5988 if (unlikely(var83 == NULL)) {
5989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5990 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
5991 show_backtrace(1);
5992 }
5993 var81 = var83;
5994 RET_LABEL82:(void)0;
5995 }
5996 }
5997 {
5998 { /* Inline kernel#Object#!= (var78,var81) on <var78:MMethod> */
5999 var_other = var81;
6000 {
6001 var86 = ((short int (*)(val* self, val* p0))(var78->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var78, var_other) /* == on <var78:MMethod>*/;
6002 }
6003 var87 = !var86;
6004 var84 = var87;
6005 goto RET_LABEL85;
6006 RET_LABEL85:(void)0;
6007 }
6008 }
6009 if (unlikely(!var84)) {
6010 PRINT_ERROR("Runtime error: %s", "Assert failed");
6011 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1913);
6012 show_backtrace(1);
6013 }
6014 {
6015 var88 = ((val* (*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_auto_super_init, var_args) /* compile_callsite on <var_v:AbstractCompilerVisitor>*/;
6016 }
6017 {
6018 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_44); /* Direct call array#ArrayIterator#next on <var_44:ArrayIterator[CallSite]>*/
6019 }
6020 } else {
6021 goto BREAK_label89;
6022 }
6023 }
6024 BREAK_label89: (void)0;
6025 {
6026 { /* Inline abstract_collection#Iterator#finish (var_44) on <var_44:ArrayIterator[CallSite]> */
6027 RET_LABEL90:(void)0;
6028 }
6029 }
6030 } else {
6031 }
6032 {
6033 { /* Inline auto_super_init#AMethPropdef#auto_super_call (self) on <self:AMethPropdef> */
6034 var93 = self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on <self:AMethPropdef> */
6035 var91 = var93;
6036 RET_LABEL92:(void)0;
6037 }
6038 }
6039 if (var91){
6040 {
6041 var94 = standard___standard__SequenceRead___Collection__first(var_arguments);
6042 }
6043 {
6044 { /* Inline abstract_compiler#RuntimeVariable#mtype (var94) on <var94:nullable Object(RuntimeVariable)> */
6045 var97 = var94->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var94:nullable Object(RuntimeVariable)> */
6046 if (unlikely(var97 == NULL)) {
6047 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6048 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
6049 show_backtrace(1);
6050 }
6051 var95 = var97;
6052 RET_LABEL96:(void)0;
6053 }
6054 }
6055 /* <var95:MType> isa MClassType */
6056 cltype99 = type_nit__MClassType.color;
6057 idtype100 = type_nit__MClassType.id;
6058 if(cltype99 >= var95->type->table_size) {
6059 var98 = 0;
6060 } else {
6061 var98 = var95->type->type_table[cltype99] == idtype100;
6062 }
6063 if (unlikely(!var98)) {
6064 var_class_name101 = var95 == NULL ? "null" : var95->type->name;
6065 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name101);
6066 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1918);
6067 show_backtrace(1);
6068 }
6069 {
6070 var102 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var95, var_arguments);
6071 }
6072 } else {
6073 }
6074 {
6075 { /* Inline model#MMethodDef#is_intern (var_mpropdef) on <var_mpropdef:MMethodDef> */
6076 var105 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___is_intern].s; /* _is_intern on <var_mpropdef:MMethodDef> */
6077 var103 = var105;
6078 RET_LABEL104:(void)0;
6079 }
6080 }
6081 if (var103){
6082 {
6083 var106 = nit__abstract_compiler___AMethPropdef___compile_intern_to_c(self, var_v, var_mpropdef, var_arguments);
6084 }
6085 if (var106){
6086 goto RET_LABEL;
6087 } else {
6088 }
6089 } else {
6090 {
6091 { /* Inline model#MMethodDef#is_extern (var_mpropdef) on <var_mpropdef:MMethodDef> */
6092 var109 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___is_extern].s; /* _is_extern on <var_mpropdef:MMethodDef> */
6093 var107 = var109;
6094 RET_LABEL108:(void)0;
6095 }
6096 }
6097 if (var107){
6098 {
6099 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
6100 var112 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
6101 if (unlikely(var112 == NULL)) {
6102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6103 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
6104 show_backtrace(1);
6105 }
6106 var110 = var112;
6107 RET_LABEL111:(void)0;
6108 }
6109 }
6110 {
6111 { /* Inline model#MMethod#is_init (var110) on <var110:MProperty(MMethod)> */
6112 var115 = var110->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var110:MProperty(MMethod)> */
6113 var113 = var115;
6114 RET_LABEL114:(void)0;
6115 }
6116 }
6117 if (var113){
6118 {
6119 var116 = nit__abstract_compiler___AMethPropdef___compile_externinit_to_c(self, var_v, var_mpropdef, var_arguments);
6120 }
6121 if (var116){
6122 goto RET_LABEL;
6123 } else {
6124 }
6125 } else {
6126 {
6127 var117 = nit__abstract_compiler___AMethPropdef___compile_externmeth_to_c(self, var_v, var_mpropdef, var_arguments);
6128 }
6129 if (var117){
6130 goto RET_LABEL;
6131 } else {
6132 }
6133 }
6134 } else {
6135 }
6136 }
6137 {
6138 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
6139 var120 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
6140 var118 = var120;
6141 RET_LABEL119:(void)0;
6142 }
6143 }
6144 var_n_block = var118;
6145 var121 = NULL;
6146 if (var_n_block == NULL) {
6147 var122 = 0; /* is null */
6148 } else {
6149 var122 = 1; /* arg is null and recv is not */
6150 }
6151 if (0) {
6152 { /* Inline kernel#Object#!= (var_n_block,var121) on <var_n_block:nullable AExpr> */
6153 var_other = var121;
6154 {
6155 var125 = ((short int (*)(val* self, val* p0))(var_n_block->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_n_block, var_other) /* == on <var_n_block:nullable AExpr(AExpr)>*/;
6156 }
6157 var126 = !var125;
6158 var123 = var126;
6159 goto RET_LABEL124;
6160 RET_LABEL124:(void)0;
6161 }
6162 var122 = var123;
6163 }
6164 if (var122){
6165 var127 = 0;
6166 var_i128 = var127;
6167 {
6168 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
6169 var131 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
6170 var129 = var131;
6171 RET_LABEL130:(void)0;
6172 }
6173 }
6174 if (var129 == NULL) {
6175 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1935);
6177 show_backtrace(1);
6178 } else {
6179 var132 = nit___nit__MSignature___arity(var129);
6180 }
6181 var_133 = var132;
6182 for(;;) {
6183 {
6184 { /* Inline kernel#Int#< (var_i128,var_133) on <var_i128:Int> */
6185 /* Covariant cast for argument 0 (i) <var_133:Int> isa OTHER */
6186 /* <var_133:Int> isa OTHER */
6187 var136 = 1; /* easy <var_133:Int> isa OTHER*/
6188 if (unlikely(!var136)) {
6189 var_class_name139 = type_standard__Int.name;
6190 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name139);
6191 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
6192 show_backtrace(1);
6193 }
6194 var140 = var_i128 < var_133;
6195 var134 = var140;
6196 goto RET_LABEL135;
6197 RET_LABEL135:(void)0;
6198 }
6199 }
6200 if (var134){
6201 {
6202 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
6203 var143 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
6204 var141 = var143;
6205 RET_LABEL142:(void)0;
6206 }
6207 }
6208 if (var141 == NULL) {
6209 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6210 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1936);
6211 show_backtrace(1);
6212 } else {
6213 { /* Inline parser_nodes#ASignature#n_params (var141) on <var141:nullable ASignature> */
6214 if (unlikely(var141 == NULL)) {
6215 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6216 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1506);
6217 show_backtrace(1);
6218 }
6219 var146 = var141->attrs[COLOR_nit__parser_nodes__ASignature___n_params].val; /* _n_params on <var141:nullable ASignature> */
6220 if (unlikely(var146 == NULL)) {
6221 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
6222 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1506);
6223 show_backtrace(1);
6224 }
6225 var144 = var146;
6226 RET_LABEL145:(void)0;
6227 }
6228 }
6229 {
6230 var147 = nit___nit__ANodes___standard__abstract_collection__SequenceRead___91d_93d(var144, var_i128);
6231 }
6232 {
6233 { /* Inline scope#AParam#variable (var147) on <var147:ANode(AParam)> */
6234 var150 = var147->attrs[COLOR_nit__scope__AParam___variable].val; /* _variable on <var147:ANode(AParam)> */
6235 var148 = var150;
6236 RET_LABEL149:(void)0;
6237 }
6238 }
6239 if (unlikely(var148 == NULL)) {
6240 PRINT_ERROR("Runtime error: %s", "Cast failed");
6241 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1936);
6242 show_backtrace(1);
6243 }
6244 var_variable = var148;
6245 {
6246 var151 = nit___nit__AbstractCompilerVisitor___variable(var_v, var_variable);
6247 }
6248 var152 = 1;
6249 {
6250 { /* Inline kernel#Int#+ (var_i128,var152) on <var_i128:Int> */
6251 /* Covariant cast for argument 0 (i) <var152:Int> isa OTHER */
6252 /* <var152:Int> isa OTHER */
6253 var155 = 1; /* easy <var152:Int> isa OTHER*/
6254 if (unlikely(!var155)) {
6255 var_class_name158 = type_standard__Int.name;
6256 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name158);
6257 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
6258 show_backtrace(1);
6259 }
6260 var159 = var_i128 + var152;
6261 var153 = var159;
6262 goto RET_LABEL154;
6263 RET_LABEL154:(void)0;
6264 }
6265 }
6266 {
6267 var160 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var153);
6268 }
6269 {
6270 nit___nit__AbstractCompilerVisitor___assign(var_v, var151, var160); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
6271 }
6272 var161 = 1;
6273 {
6274 var162 = standard___standard__Int___Discrete__successor(var_i128, var161);
6275 }
6276 var_i128 = var162;
6277 } else {
6278 goto BREAK_label163;
6279 }
6280 }
6281 BREAK_label163: (void)0;
6282 {
6283 nit___nit__AbstractCompilerVisitor___stmt(var_v, var_n_block); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
6284 }
6285 goto RET_LABEL;
6286 } else {
6287 }
6288 {
6289 var164 = standard___standard__SequenceRead___Collection__first(var_arguments);
6290 }
6291 {
6292 var165 = ((val* (*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var164) /* class_name_string on <var_v:AbstractCompilerVisitor>*/;
6293 }
6294 var_cn166 = var165;
6295 if (varonce167) {
6296 var168 = varonce167;
6297 } else {
6298 var169 = "PRINT_ERROR(\"Runtime error: uncompiled method `%s` called on `%s`. NOT YET IMPLEMENTED\", \"";
6299 var170 = 90;
6300 var171 = standard___standard__NativeString___to_s_with_length(var169, var170);
6301 var168 = var171;
6302 varonce167 = var168;
6303 }
6304 {
6305 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
6306 var174 = var_mpropdef->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
6307 if (unlikely(var174 == NULL)) {
6308 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6309 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
6310 show_backtrace(1);
6311 }
6312 var172 = var174;
6313 RET_LABEL173:(void)0;
6314 }
6315 }
6316 {
6317 { /* Inline model#MProperty#name (var172) on <var172:MProperty(MMethod)> */
6318 var177 = var172->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var172:MProperty(MMethod)> */
6319 if (unlikely(var177 == NULL)) {
6320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6321 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
6322 show_backtrace(1);
6323 }
6324 var175 = var177;
6325 RET_LABEL176:(void)0;
6326 }
6327 }
6328 {
6329 var178 = standard___standard__Text___escape_to_c(var175);
6330 }
6331 if (varonce179) {
6332 var180 = varonce179;
6333 } else {
6334 var181 = "\", ";
6335 var182 = 3;
6336 var183 = standard___standard__NativeString___to_s_with_length(var181, var182);
6337 var180 = var183;
6338 varonce179 = var180;
6339 }
6340 if (varonce184) {
6341 var185 = varonce184;
6342 } else {
6343 var186 = ");";
6344 var187 = 2;
6345 var188 = standard___standard__NativeString___to_s_with_length(var186, var187);
6346 var185 = var188;
6347 varonce184 = var185;
6348 }
6349 var189 = NEW_standard__Array(&type_standard__Array__standard__Object);
6350 { /* var189 = array_instance Array[Object] */
6351 var190 = 5;
6352 var191 = NEW_standard__NativeArray(var190, &type_standard__NativeArray__standard__Object);
6353 ((struct instance_standard__NativeArray*)var191)->values[0] = (val*) var168;
6354 ((struct instance_standard__NativeArray*)var191)->values[1] = (val*) var178;
6355 ((struct instance_standard__NativeArray*)var191)->values[2] = (val*) var180;
6356 ((struct instance_standard__NativeArray*)var191)->values[3] = (val*) var_cn166;
6357 ((struct instance_standard__NativeArray*)var191)->values[4] = (val*) var185;
6358 {
6359 ((void (*)(val* self, val* p0, long p1))(var189->class->vft[COLOR_standard__array__Array__with_native]))(var189, var191, var190) /* with_native on <var189:Array[Object]>*/;
6360 }
6361 }
6362 {
6363 var192 = ((val* (*)(val* self))(var189->class->vft[COLOR_standard__string__Object__to_s]))(var189) /* to_s on <var189:Array[Object]>*/;
6364 }
6365 {
6366 nit___nit__AbstractCompilerVisitor___add(var_v, var192); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
6367 }
6368 {
6369 nit___nit__AbstractCompilerVisitor___add_raw_abort(var_v); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_raw_abort on <var_v:AbstractCompilerVisitor>*/
6370 }
6371 RET_LABEL:;
6372 }
6373 /* method abstract_compiler#AMethPropdef#can_inline for (self: AMethPropdef): Bool */
6374 short int nit__abstract_compiler___AMethPropdef___APropdef__can_inline(val* self) {
6375 short int var /* : Bool */;
6376 val* var1 /* : nullable Array[CallSite] */;
6377 val* var3 /* : nullable Array[CallSite] */;
6378 val* var4 /* : null */;
6379 short int var5 /* : Bool */;
6380 short int var6 /* : Bool */;
6381 val* var_other /* var other: nullable Object */;
6382 short int var8 /* : Bool */;
6383 short int var9 /* : Bool */;
6384 short int var10 /* : Bool */;
6385 val* var11 /* : nullable AExpr */;
6386 val* var13 /* : nullable AExpr */;
6387 val* var_nblock /* var nblock: nullable AExpr */;
6388 val* var14 /* : null */;
6389 short int var15 /* : Bool */;
6390 short int var16 /* : Bool */;
6391 val* var_other18 /* var other: nullable Object */;
6392 short int var19 /* : Bool */;
6393 short int var21 /* : Bool */;
6394 short int var22 /* : Bool */;
6395 short int var23 /* : Bool */;
6396 short int var24 /* : Bool */;
6397 val* var25 /* : nullable MPropDef */;
6398 val* var27 /* : nullable MPropDef */;
6399 val* var28 /* : MProperty */;
6400 val* var30 /* : MProperty */;
6401 val* var31 /* : String */;
6402 val* var33 /* : String */;
6403 static val* varonce;
6404 val* var34 /* : String */;
6405 char* var35 /* : NativeString */;
6406 long var36 /* : Int */;
6407 val* var37 /* : FlatString */;
6408 short int var38 /* : Bool */;
6409 short int var_ /* var : Bool */;
6410 val* var39 /* : nullable MPropDef */;
6411 val* var41 /* : nullable MPropDef */;
6412 val* var42 /* : MProperty */;
6413 val* var44 /* : MProperty */;
6414 val* var45 /* : String */;
6415 val* var47 /* : String */;
6416 static val* varonce48;
6417 val* var49 /* : String */;
6418 char* var50 /* : NativeString */;
6419 long var51 /* : Int */;
6420 val* var52 /* : FlatString */;
6421 short int var53 /* : Bool */;
6422 short int var_54 /* var : Bool */;
6423 val* var55 /* : nullable MPropDef */;
6424 val* var57 /* : nullable MPropDef */;
6425 val* var58 /* : MClassDef */;
6426 val* var60 /* : MClassDef */;
6427 val* var61 /* : MClass */;
6428 val* var63 /* : MClass */;
6429 val* var64 /* : String */;
6430 val* var66 /* : String */;
6431 static val* varonce67;
6432 val* var68 /* : String */;
6433 char* var69 /* : NativeString */;
6434 long var70 /* : Int */;
6435 val* var71 /* : FlatString */;
6436 short int var72 /* : Bool */;
6437 short int var73 /* : Bool */;
6438 short int var74 /* : Bool */;
6439 short int var75 /* : Bool */;
6440 int cltype;
6441 int idtype;
6442 short int var_76 /* var : Bool */;
6443 val* var77 /* : ANodes[AExpr] */;
6444 val* var79 /* : ANodes[AExpr] */;
6445 long var80 /* : Int */;
6446 long var81 /* : Int */;
6447 short int var82 /* : Bool */;
6448 short int var84 /* : Bool */;
6449 short int var85 /* : Bool */;
6450 short int var86 /* : Bool */;
6451 {
6452 { /* Inline auto_super_init#AMethPropdef#auto_super_inits (self) on <self:AMethPropdef> */
6453 var3 = self->attrs[COLOR_nit__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
6454 var1 = var3;
6455 RET_LABEL2:(void)0;
6456 }
6457 }
6458 var4 = NULL;
6459 if (var1 == NULL) {
6460 var5 = 0; /* is null */
6461 } else {
6462 var5 = 1; /* arg is null and recv is not */
6463 }
6464 if (0) {
6465 { /* Inline kernel#Object#!= (var1,var4) on <var1:nullable Array[CallSite]> */
6466 var_other = var4;
6467 {
6468 var8 = ((short int (*)(val* self, val* p0))(var1->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var1, var_other) /* == on <var1:nullable Array[CallSite](Array[CallSite])>*/;
6469 }
6470 var9 = !var8;
6471 var6 = var9;
6472 goto RET_LABEL7;
6473 RET_LABEL7:(void)0;
6474 }
6475 var5 = var6;
6476 }
6477 if (var5){
6478 var10 = 0;
6479 var = var10;
6480 goto RET_LABEL;
6481 } else {
6482 }
6483 {
6484 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
6485 var13 = self->attrs[COLOR_nit__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
6486 var11 = var13;
6487 RET_LABEL12:(void)0;
6488 }
6489 }
6490 var_nblock = var11;
6491 var14 = NULL;
6492 if (var_nblock == NULL) {
6493 var15 = 1; /* is null */
6494 } else {
6495 var15 = 0; /* arg is null but recv is not */
6496 }
6497 if (0) {
6498 { /* Inline kernel#Object#== (var_nblock,var14) on <var_nblock:nullable AExpr> */
6499 var_other18 = var14;
6500 {
6501 { /* Inline kernel#Object#is_same_instance (var_nblock,var_other18) on <var_nblock:nullable AExpr(AExpr)> */
6502 var21 = var_nblock == var_other18;
6503 var19 = var21;
6504 goto RET_LABEL20;
6505 RET_LABEL20:(void)0;
6506 }
6507 }
6508 var16 = var19;
6509 goto RET_LABEL17;
6510 RET_LABEL17:(void)0;
6511 }
6512 var15 = var16;
6513 }
6514 if (var15){
6515 var22 = 1;
6516 var = var22;
6517 goto RET_LABEL;
6518 } else {
6519 }
6520 {
6521 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
6522 var27 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
6523 var25 = var27;
6524 RET_LABEL26:(void)0;
6525 }
6526 }
6527 if (var25 == NULL) {
6528 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6529 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1954);
6530 show_backtrace(1);
6531 } else {
6532 { /* Inline model#MPropDef#mproperty (var25) on <var25:nullable MPropDef(nullable MMethodDef)> */
6533 if (unlikely(var25 == NULL)) {
6534 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6535 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
6536 show_backtrace(1);
6537 }
6538 var30 = var25->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var25:nullable MPropDef(nullable MMethodDef)> */
6539 if (unlikely(var30 == NULL)) {
6540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6541 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
6542 show_backtrace(1);
6543 }
6544 var28 = var30;
6545 RET_LABEL29:(void)0;
6546 }
6547 }
6548 {
6549 { /* Inline model#MProperty#name (var28) on <var28:MProperty(MMethod)> */
6550 var33 = var28->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var28:MProperty(MMethod)> */
6551 if (unlikely(var33 == NULL)) {
6552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6553 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
6554 show_backtrace(1);
6555 }
6556 var31 = var33;
6557 RET_LABEL32:(void)0;
6558 }
6559 }
6560 if (varonce) {
6561 var34 = varonce;
6562 } else {
6563 var35 = "==";
6564 var36 = 2;
6565 var37 = standard___standard__NativeString___to_s_with_length(var35, var36);
6566 var34 = var37;
6567 varonce = var34;
6568 }
6569 {
6570 var38 = ((short int (*)(val* self, val* p0))(var31->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var31, var34) /* == on <var31:String>*/;
6571 }
6572 var_ = var38;
6573 if (var38){
6574 var24 = var_;
6575 } else {
6576 {
6577 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
6578 var41 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
6579 var39 = var41;
6580 RET_LABEL40:(void)0;
6581 }
6582 }
6583 if (var39 == NULL) {
6584 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6585 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1954);
6586 show_backtrace(1);
6587 } else {
6588 { /* Inline model#MPropDef#mproperty (var39) on <var39:nullable MPropDef(nullable MMethodDef)> */
6589 if (unlikely(var39 == NULL)) {
6590 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6591 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
6592 show_backtrace(1);
6593 }
6594 var44 = var39->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var39:nullable MPropDef(nullable MMethodDef)> */
6595 if (unlikely(var44 == NULL)) {
6596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6597 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
6598 show_backtrace(1);
6599 }
6600 var42 = var44;
6601 RET_LABEL43:(void)0;
6602 }
6603 }
6604 {
6605 { /* Inline model#MProperty#name (var42) on <var42:MProperty(MMethod)> */
6606 var47 = var42->attrs[COLOR_nit__model__MProperty___name].val; /* _name on <var42:MProperty(MMethod)> */
6607 if (unlikely(var47 == NULL)) {
6608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6609 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1741);
6610 show_backtrace(1);
6611 }
6612 var45 = var47;
6613 RET_LABEL46:(void)0;
6614 }
6615 }
6616 if (varonce48) {
6617 var49 = varonce48;
6618 } else {
6619 var50 = "!=";
6620 var51 = 2;
6621 var52 = standard___standard__NativeString___to_s_with_length(var50, var51);
6622 var49 = var52;
6623 varonce48 = var49;
6624 }
6625 {
6626 var53 = ((short int (*)(val* self, val* p0))(var45->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var45, var49) /* == on <var45:String>*/;
6627 }
6628 var24 = var53;
6629 }
6630 var_54 = var24;
6631 if (var24){
6632 {
6633 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
6634 var57 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
6635 var55 = var57;
6636 RET_LABEL56:(void)0;
6637 }
6638 }
6639 if (var55 == NULL) {
6640 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6641 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1954);
6642 show_backtrace(1);
6643 } else {
6644 { /* Inline model#MPropDef#mclassdef (var55) on <var55:nullable MPropDef(nullable MMethodDef)> */
6645 if (unlikely(var55 == NULL)) {
6646 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
6648 show_backtrace(1);
6649 }
6650 var60 = var55->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var55:nullable MPropDef(nullable MMethodDef)> */
6651 if (unlikely(var60 == NULL)) {
6652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6653 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
6654 show_backtrace(1);
6655 }
6656 var58 = var60;
6657 RET_LABEL59:(void)0;
6658 }
6659 }
6660 {
6661 { /* Inline model#MClassDef#mclass (var58) on <var58:MClassDef> */
6662 var63 = var58->attrs[COLOR_nit__model__MClassDef___mclass].val; /* _mclass on <var58:MClassDef> */
6663 if (unlikely(var63 == NULL)) {
6664 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6665 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 492);
6666 show_backtrace(1);
6667 }
6668 var61 = var63;
6669 RET_LABEL62:(void)0;
6670 }
6671 }
6672 {
6673 { /* Inline model#MClass#name (var61) on <var61:MClass> */
6674 var66 = var61->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var61:MClass> */
6675 if (unlikely(var66 == NULL)) {
6676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6677 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
6678 show_backtrace(1);
6679 }
6680 var64 = var66;
6681 RET_LABEL65:(void)0;
6682 }
6683 }
6684 if (varonce67) {
6685 var68 = varonce67;
6686 } else {
6687 var69 = "Object";
6688 var70 = 6;
6689 var71 = standard___standard__NativeString___to_s_with_length(var69, var70);
6690 var68 = var71;
6691 varonce67 = var68;
6692 }
6693 {
6694 var72 = ((short int (*)(val* self, val* p0))(var64->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var64, var68) /* == on <var64:String>*/;
6695 }
6696 var23 = var72;
6697 } else {
6698 var23 = var_54;
6699 }
6700 if (var23){
6701 var73 = 1;
6702 var = var73;
6703 goto RET_LABEL;
6704 } else {
6705 }
6706 /* <var_nblock:nullable AExpr(AExpr)> isa ABlockExpr */
6707 cltype = type_nit__ABlockExpr.color;
6708 idtype = type_nit__ABlockExpr.id;
6709 if(cltype >= var_nblock->type->table_size) {
6710 var75 = 0;
6711 } else {
6712 var75 = var_nblock->type->type_table[cltype] == idtype;
6713 }
6714 var_76 = var75;
6715 if (var75){
6716 {
6717 { /* Inline parser_nodes#ABlockExpr#n_expr (var_nblock) on <var_nblock:nullable AExpr(ABlockExpr)> */
6718 var79 = var_nblock->attrs[COLOR_nit__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <var_nblock:nullable AExpr(ABlockExpr)> */
6719 if (unlikely(var79 == NULL)) {
6720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6721 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 1565);
6722 show_backtrace(1);
6723 }
6724 var77 = var79;
6725 RET_LABEL78:(void)0;
6726 }
6727 }
6728 {
6729 var80 = nit___nit__ANodes___standard__abstract_collection__Collection__length(var77);
6730 }
6731 var81 = 0;
6732 {
6733 { /* Inline kernel#Int#== (var80,var81) on <var80:Int> */
6734 var84 = var80 == var81;
6735 var82 = var84;
6736 goto RET_LABEL83;
6737 RET_LABEL83:(void)0;
6738 }
6739 }
6740 var74 = var82;
6741 } else {
6742 var74 = var_76;
6743 }
6744 if (var74){
6745 var85 = 1;
6746 var = var85;
6747 goto RET_LABEL;
6748 } else {
6749 }
6750 var86 = 0;
6751 var = var86;
6752 goto RET_LABEL;
6753 RET_LABEL:;
6754 return var;
6755 }