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