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