Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__abstract_compiler.sep.7.c
1 #include "nitc__abstract_compiler.sep.0.h"
2 /* method abstract_compiler$ASuperstringExpr$expr for (self: ASuperstringExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3 val* nitc__abstract_compiler___ASuperstringExpr___AExpr__expr(val* self, val* p0) {
4 val* var /* : nullable RuntimeVariable */;
5 val* var_v /* var v: AbstractCompilerVisitor */;
6 val* var1 /* : MModule */;
7 val* var2 /* : MClassType */;
8 val* var_type_string /* var type_string: MClassType */;
9 val* var3 /* : Array[AExpr] */;
10 val* var_array /* var array: Array[AExpr] */;
11 val* var4 /* : ANodes[AExpr] */;
12 val* var6 /* : ANodes[AExpr] */;
13 val* var_ /* var : ANodes[AExpr] */;
14 val* var7 /* : Iterator[ANode] */;
15 val* var_8 /* var : Iterator[AExpr] */;
16 short int var9 /* : Bool */;
17 val* var10 /* : nullable Object */;
18 val* var_ne /* var ne: AExpr */;
19 short int var11 /* : Bool */;
20 short int var12 /* : Bool */;
21 int cltype;
22 int idtype;
23 short int var_13 /* var : Bool */;
24 val* var14 /* : String */;
25 val* var16 /* : String */;
26 static val* varonce;
27 val* var17 /* : String */;
28 char* var18 /* : CString */;
29 val* var19 /* : String */;
30 val* var20 /* : nullable Int */;
31 val* var21 /* : nullable Int */;
32 val* var22 /* : nullable Bool */;
33 val* var23 /* : nullable Bool */;
34 short int var24 /* : Bool */;
35 static val* varonce26;
36 val* var27 /* : String */;
37 char* var28 /* : CString */;
38 val* var29 /* : String */;
39 val* var30 /* : nullable Int */;
40 val* var31 /* : nullable Int */;
41 val* var32 /* : nullable Bool */;
42 val* var33 /* : nullable Bool */;
43 val* var34 /* : String */;
44 val* var_varonce /* var varonce: String */;
45 val* var36 /* : NativeArray[String] */;
46 static val* varonce35;
47 static val* varonce37;
48 val* var38 /* : String */;
49 char* var39 /* : CString */;
50 val* var40 /* : String */;
51 val* var41 /* : nullable Int */;
52 val* var42 /* : nullable Int */;
53 val* var43 /* : nullable Bool */;
54 val* var44 /* : nullable Bool */;
55 static val* varonce45;
56 val* var46 /* : String */;
57 char* var47 /* : CString */;
58 val* var48 /* : String */;
59 val* var49 /* : nullable Int */;
60 val* var50 /* : nullable Int */;
61 val* var51 /* : nullable Bool */;
62 val* var52 /* : nullable Bool */;
63 val* var53 /* : String */;
64 long var54 /* : Int */;
65 long var56 /* : Int */;
66 val* var57 /* : RuntimeVariable */;
67 val* var58 /* : RuntimeVariable */;
68 val* var_a /* var a: RuntimeVariable */;
69 val* var60 /* : NativeArray[String] */;
70 static val* varonce59;
71 static val* varonce61;
72 val* var62 /* : String */;
73 char* var63 /* : CString */;
74 val* var64 /* : String */;
75 val* var65 /* : nullable Int */;
76 val* var66 /* : nullable Int */;
77 val* var67 /* : nullable Bool */;
78 val* var68 /* : nullable Bool */;
79 static val* varonce69;
80 val* var70 /* : String */;
81 char* var71 /* : CString */;
82 val* var72 /* : String */;
83 val* var73 /* : nullable Int */;
84 val* var74 /* : nullable Int */;
85 val* var75 /* : nullable Bool */;
86 val* var76 /* : nullable Bool */;
87 static val* varonce77;
88 val* var78 /* : String */;
89 char* var79 /* : CString */;
90 val* var80 /* : String */;
91 val* var81 /* : nullable Int */;
92 val* var82 /* : nullable Int */;
93 val* var83 /* : nullable Bool */;
94 val* var84 /* : nullable Bool */;
95 val* var85 /* : MType */;
96 val* var87 /* : MType */;
97 val* var88 /* : String */;
98 val* var89 /* : String */;
99 long var_i /* var i: Int */;
100 long var90 /* : Int */;
101 long var92 /* : Int */;
102 long var_93 /* var : Int */;
103 short int var94 /* : Bool */;
104 short int var96 /* : Bool */;
105 int cltype97;
106 int idtype98;
107 const char* var_class_name;
108 short int var99 /* : Bool */;
109 val* var101 /* : nullable Object */;
110 val* var_ne102 /* var ne: AExpr */;
111 short int var103 /* : Bool */;
112 int cltype104;
113 int idtype105;
114 short int var106 /* : Bool */;
115 val* var108 /* : RuntimeVariable */;
116 val* var_e /* var e: RuntimeVariable */;
117 long var109 /* : Int */;
118 static val* varonce110;
119 val* var111 /* : String */;
120 char* var112 /* : CString */;
121 val* var113 /* : String */;
122 val* var114 /* : nullable Int */;
123 val* var115 /* : nullable Int */;
124 val* var116 /* : nullable Bool */;
125 val* var117 /* : nullable Bool */;
126 val* var119 /* : NativeArray[String] */;
127 static val* varonce118;
128 static val* varonce120;
129 val* var121 /* : String */;
130 char* var122 /* : CString */;
131 val* var123 /* : String */;
132 val* var124 /* : nullable Int */;
133 val* var125 /* : nullable Int */;
134 val* var126 /* : nullable Bool */;
135 val* var127 /* : nullable Bool */;
136 static val* varonce128;
137 val* var129 /* : String */;
138 char* var130 /* : CString */;
139 val* var131 /* : String */;
140 val* var132 /* : nullable Int */;
141 val* var133 /* : nullable Int */;
142 val* var134 /* : nullable Bool */;
143 val* var135 /* : nullable Bool */;
144 val* var136 /* : String */;
145 val* var137 /* : String */;
146 val* var139 /* : NativeArray[String] */;
147 static val* varonce138;
148 static val* varonce140;
149 val* var141 /* : String */;
150 char* var142 /* : CString */;
151 val* var143 /* : String */;
152 val* var144 /* : nullable Int */;
153 val* var145 /* : nullable Int */;
154 val* var146 /* : nullable Bool */;
155 val* var147 /* : nullable Bool */;
156 val* var148 /* : String */;
157 static val* varonce149;
158 val* var150 /* : String */;
159 char* var151 /* : CString */;
160 val* var152 /* : String */;
161 val* var153 /* : nullable Int */;
162 val* var154 /* : nullable Int */;
163 val* var155 /* : nullable Bool */;
164 val* var156 /* : nullable Bool */;
165 static val* varonce157;
166 val* var158 /* : String */;
167 char* var159 /* : CString */;
168 val* var160 /* : String */;
169 val* var161 /* : nullable Int */;
170 val* var162 /* : nullable Int */;
171 val* var163 /* : nullable Bool */;
172 val* var164 /* : nullable Bool */;
173 val* var165 /* : MClassType */;
174 val* var166 /* : MMethod */;
175 val* var_to_s_method /* var to_s_method: MMethod */;
176 long var_i167 /* var i: Int */;
177 long var168 /* : Int */;
178 long var170 /* : Int */;
179 long var_171 /* var : Int */;
180 short int var172 /* : Bool */;
181 short int var174 /* : Bool */;
182 int cltype175;
183 int idtype176;
184 const char* var_class_name177;
185 short int var178 /* : Bool */;
186 val* var180 /* : nullable Object */;
187 val* var_ne181 /* var ne: AExpr */;
188 short int var182 /* : Bool */;
189 int cltype183;
190 int idtype184;
191 val* var186 /* : RuntimeVariable */;
192 val* var_e187 /* var e: RuntimeVariable */;
193 val* var188 /* : MType */;
194 val* var190 /* : MType */;
195 val* var191 /* : AbstractCompiler */;
196 val* var193 /* : AbstractCompiler */;
197 val* var194 /* : MModule */;
198 val* var196 /* : MModule */;
199 short int var197 /* : Bool */;
200 short int var198 /* : Bool */;
201 val* var199 /* : Array[RuntimeVariable] */;
202 val* var_200 /* var : Array[RuntimeVariable] */;
203 val* var201 /* : nullable RuntimeVariable */;
204 long var202 /* : Int */;
205 static val* varonce203;
206 val* var204 /* : String */;
207 char* var205 /* : CString */;
208 val* var206 /* : String */;
209 val* var207 /* : nullable Int */;
210 val* var208 /* : nullable Int */;
211 val* var209 /* : nullable Bool */;
212 val* var210 /* : nullable Bool */;
213 val* var211 /* : MType */;
214 val* var213 /* : MType */;
215 val* var214 /* : MMethod */;
216 val* var215 /* : Array[RuntimeVariable] */;
217 val* var_216 /* var : Array[RuntimeVariable] */;
218 val* var217 /* : nullable RuntimeVariable */;
219 val* var_res /* var res: nullable RuntimeVariable */;
220 short int var218 /* : Bool */;
221 short int var219 /* : Bool */;
222 val* var_other /* var other: nullable Object */;
223 short int var221 /* : Bool */;
224 short int var222 /* : Bool */;
225 short int var223 /* : Bool */;
226 val* var224 /* : nullable RuntimeVariable */;
227 val* var226 /* : NativeArray[String] */;
228 static val* varonce225;
229 static val* varonce227;
230 val* var228 /* : String */;
231 char* var229 /* : CString */;
232 val* var230 /* : String */;
233 val* var231 /* : nullable Int */;
234 val* var232 /* : nullable Int */;
235 val* var233 /* : nullable Bool */;
236 val* var234 /* : nullable Bool */;
237 static val* varonce235;
238 val* var236 /* : String */;
239 char* var237 /* : CString */;
240 val* var238 /* : String */;
241 val* var239 /* : nullable Int */;
242 val* var240 /* : nullable Int */;
243 val* var241 /* : nullable Bool */;
244 val* var242 /* : nullable Bool */;
245 val* var243 /* : String */;
246 val* var244 /* : String */;
247 var_v = p0;
248 {
249 var1 = nitc___nitc__AbstractCompilerVisitor___mmodule(var_v);
250 }
251 {
252 var2 = nitc__model___MModule___string_type(var1);
253 }
254 var_type_string = var2;
255 var3 = NEW_core__Array(&type_core__Array__nitc__AExpr);
256 {
257 core___core__Array___core__kernel__Object__init(var3); /* Direct call array$Array$init on <var3:Array[AExpr]>*/
258 }
259 var_array = var3;
260 {
261 { /* Inline parser_nodes$ASuperstringExpr$n_exprs (self) on <self:ASuperstringExpr> */
262 var6 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
263 if (unlikely(var6 == NULL)) {
264 if(catchStack.cursor >= 0){
265 longjmp(catchStack.envs[catchStack.cursor], 1);
266 }
267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
268 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2645);
269 fatal_exit(1);
270 }
271 var4 = var6;
272 RET_LABEL5:(void)0;
273 }
274 }
275 var_ = var4;
276 {
277 var7 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
278 }
279 var_8 = var7;
280 for(;;) {
281 {
282 var9 = ((short int(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_8); /* is_ok on <var_8:Iterator[AExpr]>*/
283 }
284 if (var9){
285 } else {
286 goto BREAK_label;
287 }
288 {
289 var10 = ((val*(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_8); /* item on <var_8:Iterator[AExpr]>*/
290 }
291 var_ne = var10;
292 /* <var_ne:AExpr> isa AStringFormExpr */
293 cltype = type_nitc__AStringFormExpr.color;
294 idtype = type_nitc__AStringFormExpr.id;
295 if(cltype >= var_ne->type->table_size) {
296 var12 = 0;
297 } else {
298 var12 = var_ne->type->type_table[cltype] == idtype;
299 }
300 var_13 = var12;
301 if (var12){
302 {
303 { /* Inline literal$AStringFormExpr$value (var_ne) on <var_ne:AExpr(AStringFormExpr)> */
304 var16 = var_ne->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <var_ne:AExpr(AStringFormExpr)> */
305 if (unlikely(var16 == NULL)) {
306 if(catchStack.cursor >= 0){
307 longjmp(catchStack.envs[catchStack.cursor], 1);
308 }
309 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _value");
310 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__literal, 201);
311 fatal_exit(1);
312 }
313 var14 = var16;
314 RET_LABEL15:(void)0;
315 }
316 }
317 if (likely(varonce!=NULL)) {
318 var17 = varonce;
319 } else {
320 var18 = "";
321 var20 = (val*)(0l<<2|1);
322 var21 = (val*)(0l<<2|1);
323 var22 = (val*)((long)(0)<<2|3);
324 var23 = (val*)((long)(0)<<2|3);
325 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
326 var17 = var19;
327 varonce = var17;
328 }
329 {
330 var24 = ((short int(*)(val* self, val* p0))(var14->class->vft[COLOR_core__kernel__Object___61d_61d]))(var14, var17); /* == on <var14:String>*/
331 }
332 var11 = var24;
333 } else {
334 var11 = var_13;
335 }
336 if (var11){
337 goto BREAK_label25;
338 } else {
339 }
340 {
341 core___core__Array___core__abstract_collection__SimpleCollection__add(var_array, var_ne); /* Direct call array$Array$add on <var_array:Array[AExpr]>*/
342 }
343 BREAK_label25: (void)0;
344 {
345 ((void(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_8); /* next on <var_8:Iterator[AExpr]>*/
346 }
347 }
348 BREAK_label: (void)0;
349 {
350 ((void(*)(val* self))((((long)var_8&3)?class_info[((long)var_8&3)]:var_8->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_8); /* finish on <var_8:Iterator[AExpr]>*/
351 }
352 if (likely(varonce26!=NULL)) {
353 var27 = varonce26;
354 } else {
355 var28 = "varonce";
356 var30 = (val*)(7l<<2|1);
357 var31 = (val*)(7l<<2|1);
358 var32 = (val*)((long)(0)<<2|3);
359 var33 = (val*)((long)(0)<<2|3);
360 var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
361 var27 = var29;
362 varonce26 = var27;
363 }
364 {
365 var34 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var27);
366 }
367 var_varonce = var34;
368 if (unlikely(varonce35==NULL)) {
369 var36 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
370 if (likely(varonce37!=NULL)) {
371 var38 = varonce37;
372 } else {
373 var39 = "if (unlikely(";
374 var41 = (val*)(13l<<2|1);
375 var42 = (val*)(13l<<2|1);
376 var43 = (val*)((long)(0)<<2|3);
377 var44 = (val*)((long)(0)<<2|3);
378 var40 = core__flat___CString___to_s_unsafe(var39, var41, var42, var43, var44);
379 var38 = var40;
380 varonce37 = var38;
381 }
382 ((struct instance_core__NativeArray*)var36)->values[0]=var38;
383 if (likely(varonce45!=NULL)) {
384 var46 = varonce45;
385 } else {
386 var47 = "==NULL)) {";
387 var49 = (val*)(10l<<2|1);
388 var50 = (val*)(10l<<2|1);
389 var51 = (val*)((long)(0)<<2|3);
390 var52 = (val*)((long)(0)<<2|3);
391 var48 = core__flat___CString___to_s_unsafe(var47, var49, var50, var51, var52);
392 var46 = var48;
393 varonce45 = var46;
394 }
395 ((struct instance_core__NativeArray*)var36)->values[2]=var46;
396 } else {
397 var36 = varonce35;
398 varonce35 = NULL;
399 }
400 ((struct instance_core__NativeArray*)var36)->values[1]=var_varonce;
401 {
402 var53 = ((val*(*)(val* self))(var36->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var36); /* native_to_s on <var36:NativeArray[String]>*/
403 }
404 varonce35 = var36;
405 {
406 nitc___nitc__AbstractCompilerVisitor___add(var_v, var53); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
407 }
408 {
409 { /* Inline array$AbstractArrayRead$length (var_array) on <var_array:Array[AExpr]> */
410 var56 = var_array->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_array:Array[AExpr]> */
411 var54 = var56;
412 RET_LABEL55:(void)0;
413 }
414 }
415 {
416 var57 = nitc___nitc__AbstractCompilerVisitor___int_instance(var_v, var54);
417 }
418 {
419 var58 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(var_v, var_type_string, var57); /* native_array_instance on <var_v:AbstractCompilerVisitor>*/
420 }
421 var_a = var58;
422 if (unlikely(varonce59==NULL)) {
423 var60 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
424 if (likely(varonce61!=NULL)) {
425 var62 = varonce61;
426 } else {
427 var63 = "static ";
428 var65 = (val*)(7l<<2|1);
429 var66 = (val*)(7l<<2|1);
430 var67 = (val*)((long)(0)<<2|3);
431 var68 = (val*)((long)(0)<<2|3);
432 var64 = core__flat___CString___to_s_unsafe(var63, var65, var66, var67, var68);
433 var62 = var64;
434 varonce61 = var62;
435 }
436 ((struct instance_core__NativeArray*)var60)->values[0]=var62;
437 if (likely(varonce69!=NULL)) {
438 var70 = varonce69;
439 } else {
440 var71 = " ";
441 var73 = (val*)(1l<<2|1);
442 var74 = (val*)(1l<<2|1);
443 var75 = (val*)((long)(0)<<2|3);
444 var76 = (val*)((long)(0)<<2|3);
445 var72 = core__flat___CString___to_s_unsafe(var71, var73, var74, var75, var76);
446 var70 = var72;
447 varonce69 = var70;
448 }
449 ((struct instance_core__NativeArray*)var60)->values[2]=var70;
450 if (likely(varonce77!=NULL)) {
451 var78 = varonce77;
452 } else {
453 var79 = ";";
454 var81 = (val*)(1l<<2|1);
455 var82 = (val*)(1l<<2|1);
456 var83 = (val*)((long)(0)<<2|3);
457 var84 = (val*)((long)(0)<<2|3);
458 var80 = core__flat___CString___to_s_unsafe(var79, var81, var82, var83, var84);
459 var78 = var80;
460 varonce77 = var78;
461 }
462 ((struct instance_core__NativeArray*)var60)->values[4]=var78;
463 } else {
464 var60 = varonce59;
465 varonce59 = NULL;
466 }
467 {
468 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_a) on <var_a:RuntimeVariable> */
469 var87 = var_a->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_a:RuntimeVariable> */
470 if (unlikely(var87 == NULL)) {
471 if(catchStack.cursor >= 0){
472 longjmp(catchStack.envs[catchStack.cursor], 1);
473 }
474 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
475 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
476 fatal_exit(1);
477 }
478 var85 = var87;
479 RET_LABEL86:(void)0;
480 }
481 }
482 {
483 var88 = ((val*(*)(val* self))(var85->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var85); /* ctype on <var85:MType>*/
484 }
485 ((struct instance_core__NativeArray*)var60)->values[1]=var88;
486 ((struct instance_core__NativeArray*)var60)->values[3]=var_varonce;
487 {
488 var89 = ((val*(*)(val* self))(var60->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var60); /* native_to_s on <var60:NativeArray[String]>*/
489 }
490 varonce59 = var60;
491 {
492 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var89); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:AbstractCompilerVisitor>*/
493 }
494 var_i = 0l;
495 {
496 { /* Inline array$AbstractArrayRead$length (var_array) on <var_array:Array[AExpr]> */
497 var92 = var_array->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_array:Array[AExpr]> */
498 var90 = var92;
499 RET_LABEL91:(void)0;
500 }
501 }
502 var_93 = var90;
503 for(;;) {
504 {
505 { /* Inline kernel$Int$< (var_i,var_93) on <var_i:Int> */
506 /* Covariant cast for argument 0 (i) <var_93:Int> isa OTHER */
507 /* <var_93:Int> isa OTHER */
508 var96 = 1; /* easy <var_93:Int> isa OTHER*/
509 if (unlikely(!var96)) {
510 var_class_name = type_core__Int.name;
511 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
512 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
513 fatal_exit(1);
514 }
515 var99 = var_i < var_93;
516 var94 = var99;
517 goto RET_LABEL95;
518 RET_LABEL95:(void)0;
519 }
520 }
521 if (var94){
522 } else {
523 goto BREAK_label100;
524 }
525 {
526 var101 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_array, var_i);
527 }
528 var_ne102 = var101;
529 /* <var_ne102:AExpr> isa AStringFormExpr */
530 cltype104 = type_nitc__AStringFormExpr.color;
531 idtype105 = type_nitc__AStringFormExpr.id;
532 if(cltype104 >= var_ne102->type->table_size) {
533 var103 = 0;
534 } else {
535 var103 = var_ne102->type->type_table[cltype104] == idtype105;
536 }
537 var106 = !var103;
538 if (var106){
539 goto BREAK_label107;
540 } else {
541 }
542 {
543 var108 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_ne102, ((val*)NULL));
544 }
545 var_e = var108;
546 {
547 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__native_array_set(var_v, var_a, var_i, var_e); /* Direct call separate_compiler$SeparateCompilerVisitor$native_array_set on <var_v:AbstractCompilerVisitor>*/
548 }
549 BREAK_label107: (void)0;
550 {
551 var109 = core___core__Int___Discrete__successor(var_i, 1l);
552 }
553 var_i = var109;
554 }
555 BREAK_label100: (void)0;
556 if (likely(varonce110!=NULL)) {
557 var111 = varonce110;
558 } else {
559 var112 = "} else {";
560 var114 = (val*)(8l<<2|1);
561 var115 = (val*)(8l<<2|1);
562 var116 = (val*)((long)(0)<<2|3);
563 var117 = (val*)((long)(0)<<2|3);
564 var113 = core__flat___CString___to_s_unsafe(var112, var114, var115, var116, var117);
565 var111 = var113;
566 varonce110 = var111;
567 }
568 {
569 nitc___nitc__AbstractCompilerVisitor___add(var_v, var111); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
570 }
571 if (unlikely(varonce118==NULL)) {
572 var119 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
573 if (likely(varonce120!=NULL)) {
574 var121 = varonce120;
575 } else {
576 var122 = " = ";
577 var124 = (val*)(3l<<2|1);
578 var125 = (val*)(3l<<2|1);
579 var126 = (val*)((long)(0)<<2|3);
580 var127 = (val*)((long)(0)<<2|3);
581 var123 = core__flat___CString___to_s_unsafe(var122, var124, var125, var126, var127);
582 var121 = var123;
583 varonce120 = var121;
584 }
585 ((struct instance_core__NativeArray*)var119)->values[1]=var121;
586 if (likely(varonce128!=NULL)) {
587 var129 = varonce128;
588 } else {
589 var130 = ";";
590 var132 = (val*)(1l<<2|1);
591 var133 = (val*)(1l<<2|1);
592 var134 = (val*)((long)(0)<<2|3);
593 var135 = (val*)((long)(0)<<2|3);
594 var131 = core__flat___CString___to_s_unsafe(var130, var132, var133, var134, var135);
595 var129 = var131;
596 varonce128 = var129;
597 }
598 ((struct instance_core__NativeArray*)var119)->values[3]=var129;
599 } else {
600 var119 = varonce118;
601 varonce118 = NULL;
602 }
603 {
604 var136 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:RuntimeVariable>*/
605 }
606 ((struct instance_core__NativeArray*)var119)->values[0]=var136;
607 ((struct instance_core__NativeArray*)var119)->values[2]=var_varonce;
608 {
609 var137 = ((val*(*)(val* self))(var119->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var119); /* native_to_s on <var119:NativeArray[String]>*/
610 }
611 varonce118 = var119;
612 {
613 nitc___nitc__AbstractCompilerVisitor___add(var_v, var137); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
614 }
615 if (unlikely(varonce138==NULL)) {
616 var139 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
617 if (likely(varonce140!=NULL)) {
618 var141 = varonce140;
619 } else {
620 var142 = " = NULL;";
621 var144 = (val*)(8l<<2|1);
622 var145 = (val*)(8l<<2|1);
623 var146 = (val*)((long)(0)<<2|3);
624 var147 = (val*)((long)(0)<<2|3);
625 var143 = core__flat___CString___to_s_unsafe(var142, var144, var145, var146, var147);
626 var141 = var143;
627 varonce140 = var141;
628 }
629 ((struct instance_core__NativeArray*)var139)->values[1]=var141;
630 } else {
631 var139 = varonce138;
632 varonce138 = NULL;
633 }
634 ((struct instance_core__NativeArray*)var139)->values[0]=var_varonce;
635 {
636 var148 = ((val*(*)(val* self))(var139->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var139); /* native_to_s on <var139:NativeArray[String]>*/
637 }
638 varonce138 = var139;
639 {
640 nitc___nitc__AbstractCompilerVisitor___add(var_v, var148); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
641 }
642 if (likely(varonce149!=NULL)) {
643 var150 = varonce149;
644 } else {
645 var151 = "}";
646 var153 = (val*)(1l<<2|1);
647 var154 = (val*)(1l<<2|1);
648 var155 = (val*)((long)(0)<<2|3);
649 var156 = (val*)((long)(0)<<2|3);
650 var152 = core__flat___CString___to_s_unsafe(var151, var153, var154, var155, var156);
651 var150 = var152;
652 varonce149 = var150;
653 }
654 {
655 nitc___nitc__AbstractCompilerVisitor___add(var_v, var150); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
656 }
657 if (likely(varonce157!=NULL)) {
658 var158 = varonce157;
659 } else {
660 var159 = "to_s";
661 var161 = (val*)(4l<<2|1);
662 var162 = (val*)(4l<<2|1);
663 var163 = (val*)((long)(0)<<2|3);
664 var164 = (val*)((long)(0)<<2|3);
665 var160 = core__flat___CString___to_s_unsafe(var159, var161, var162, var163, var164);
666 var158 = var160;
667 varonce157 = var158;
668 }
669 {
670 var165 = nitc___nitc__AbstractCompilerVisitor___object_type(var_v);
671 }
672 {
673 var166 = nitc___nitc__AbstractCompilerVisitor___get_property(var_v, var158, var165);
674 }
675 var_to_s_method = var166;
676 var_i167 = 0l;
677 {
678 { /* Inline array$AbstractArrayRead$length (var_array) on <var_array:Array[AExpr]> */
679 var170 = var_array->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_array:Array[AExpr]> */
680 var168 = var170;
681 RET_LABEL169:(void)0;
682 }
683 }
684 var_171 = var168;
685 for(;;) {
686 {
687 { /* Inline kernel$Int$< (var_i167,var_171) on <var_i167:Int> */
688 /* Covariant cast for argument 0 (i) <var_171:Int> isa OTHER */
689 /* <var_171:Int> isa OTHER */
690 var174 = 1; /* easy <var_171:Int> isa OTHER*/
691 if (unlikely(!var174)) {
692 var_class_name177 = type_core__Int.name;
693 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name177);
694 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
695 fatal_exit(1);
696 }
697 var178 = var_i167 < var_171;
698 var172 = var178;
699 goto RET_LABEL173;
700 RET_LABEL173:(void)0;
701 }
702 }
703 if (var172){
704 } else {
705 goto BREAK_label179;
706 }
707 {
708 var180 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_array, var_i167);
709 }
710 var_ne181 = var180;
711 /* <var_ne181:AExpr> isa AStringFormExpr */
712 cltype183 = type_nitc__AStringFormExpr.color;
713 idtype184 = type_nitc__AStringFormExpr.id;
714 if(cltype183 >= var_ne181->type->table_size) {
715 var182 = 0;
716 } else {
717 var182 = var_ne181->type->type_table[cltype183] == idtype184;
718 }
719 if (var182){
720 goto BREAK_label185;
721 } else {
722 }
723 {
724 var186 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_ne181, ((val*)NULL));
725 }
726 var_e187 = var186;
727 {
728 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (var_e187) on <var_e187:RuntimeVariable> */
729 var190 = var_e187->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_e187:RuntimeVariable> */
730 if (unlikely(var190 == NULL)) {
731 if(catchStack.cursor >= 0){
732 longjmp(catchStack.envs[catchStack.cursor], 1);
733 }
734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
735 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
736 fatal_exit(1);
737 }
738 var188 = var190;
739 RET_LABEL189:(void)0;
740 }
741 }
742 {
743 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
744 var193 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
745 if (unlikely(var193 == NULL)) {
746 if(catchStack.cursor >= 0){
747 longjmp(catchStack.envs[catchStack.cursor], 1);
748 }
749 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
750 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
751 fatal_exit(1);
752 }
753 var191 = var193;
754 RET_LABEL192:(void)0;
755 }
756 }
757 {
758 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var191) on <var191:AbstractCompiler> */
759 var196 = var191->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var191:AbstractCompiler> */
760 if (unlikely(var196 == NULL)) {
761 if(catchStack.cursor >= 0){
762 longjmp(catchStack.envs[catchStack.cursor], 1);
763 }
764 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
765 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
766 fatal_exit(1);
767 }
768 var194 = var196;
769 RET_LABEL195:(void)0;
770 }
771 }
772 {
773 var197 = nitc___nitc__MType___is_subtype(var188, var194, ((val*)NULL), var_type_string);
774 }
775 var198 = !var197;
776 if (var198){
777 var199 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
778 {
779 core___core__Array___with_capacity(var199, 1l); /* Direct call array$Array$with_capacity on <var199:Array[RuntimeVariable]>*/
780 }
781 var_200 = var199;
782 {
783 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_200, var_e187); /* Direct call array$AbstractArray$push on <var_200:Array[RuntimeVariable]>*/
784 }
785 {
786 var201 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(var_v, var_to_s_method, var_200);
787 }
788 if (unlikely(var201 == NULL)) {
789 if(catchStack.cursor >= 0){
790 longjmp(catchStack.envs[catchStack.cursor], 1);
791 }
792 PRINT_ERROR("Runtime error: %s", "Cast failed");
793 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3812);
794 fatal_exit(1);
795 }
796 var_e187 = var201;
797 } else {
798 }
799 {
800 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__native_array_set(var_v, var_a, var_i167, var_e187); /* Direct call separate_compiler$SeparateCompilerVisitor$native_array_set on <var_v:AbstractCompilerVisitor>*/
801 }
802 BREAK_label185: (void)0;
803 {
804 var202 = core___core__Int___Discrete__successor(var_i167, 1l);
805 }
806 var_i167 = var202;
807 }
808 BREAK_label179: (void)0;
809 if (likely(varonce203!=NULL)) {
810 var204 = varonce203;
811 } else {
812 var205 = "native_to_s";
813 var207 = (val*)(11l<<2|1);
814 var208 = (val*)(11l<<2|1);
815 var209 = (val*)((long)(0)<<2|3);
816 var210 = (val*)((long)(0)<<2|3);
817 var206 = core__flat___CString___to_s_unsafe(var205, var207, var208, var209, var210);
818 var204 = var206;
819 varonce203 = var204;
820 }
821 {
822 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_a) on <var_a:RuntimeVariable> */
823 var213 = var_a->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_a:RuntimeVariable> */
824 if (unlikely(var213 == NULL)) {
825 if(catchStack.cursor >= 0){
826 longjmp(catchStack.envs[catchStack.cursor], 1);
827 }
828 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
829 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
830 fatal_exit(1);
831 }
832 var211 = var213;
833 RET_LABEL212:(void)0;
834 }
835 }
836 {
837 var214 = nitc___nitc__AbstractCompilerVisitor___get_property(var_v, var204, var211);
838 }
839 var215 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
840 {
841 core___core__Array___with_capacity(var215, 1l); /* Direct call array$Array$with_capacity on <var215:Array[RuntimeVariable]>*/
842 }
843 var_216 = var215;
844 {
845 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_216, var_a); /* Direct call array$AbstractArray$push on <var_216:Array[RuntimeVariable]>*/
846 }
847 {
848 var217 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(var_v, var214, var_216);
849 }
850 var_res = var217;
851 if (var_res == NULL) {
852 var218 = 0; /* is null */
853 } else {
854 var218 = 1; /* arg is null and recv is not */
855 }
856 if (0) {
857 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
858 var_other = ((val*)NULL);
859 {
860 var221 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
861 }
862 var222 = !var221;
863 var219 = var222;
864 goto RET_LABEL220;
865 RET_LABEL220:(void)0;
866 }
867 var218 = var219;
868 }
869 if (unlikely(!var218)) {
870 if(catchStack.cursor >= 0){
871 longjmp(catchStack.envs[catchStack.cursor], 1);
872 }
873 PRINT_ERROR("Runtime error: %s", "Assert failed");
874 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3819);
875 fatal_exit(1);
876 }
877 {
878 var223 = nitc___nitc__AugmentedStringFormExpr___is_re(self);
879 }
880 if (var223){
881 {
882 var224 = nitc__abstract_compiler___AugmentedStringFormExpr___make_re(self, var_v, var_res);
883 }
884 var_res = var224;
885 } else {
886 }
887 if (unlikely(varonce225==NULL)) {
888 var226 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
889 if (likely(varonce227!=NULL)) {
890 var228 = varonce227;
891 } else {
892 var229 = " = ";
893 var231 = (val*)(3l<<2|1);
894 var232 = (val*)(3l<<2|1);
895 var233 = (val*)((long)(0)<<2|3);
896 var234 = (val*)((long)(0)<<2|3);
897 var230 = core__flat___CString___to_s_unsafe(var229, var231, var232, var233, var234);
898 var228 = var230;
899 varonce227 = var228;
900 }
901 ((struct instance_core__NativeArray*)var226)->values[1]=var228;
902 if (likely(varonce235!=NULL)) {
903 var236 = varonce235;
904 } else {
905 var237 = ";";
906 var239 = (val*)(1l<<2|1);
907 var240 = (val*)(1l<<2|1);
908 var241 = (val*)((long)(0)<<2|3);
909 var242 = (val*)((long)(0)<<2|3);
910 var238 = core__flat___CString___to_s_unsafe(var237, var239, var240, var241, var242);
911 var236 = var238;
912 varonce235 = var236;
913 }
914 ((struct instance_core__NativeArray*)var226)->values[3]=var236;
915 } else {
916 var226 = varonce225;
917 varonce225 = NULL;
918 }
919 ((struct instance_core__NativeArray*)var226)->values[0]=var_varonce;
920 {
921 var243 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:RuntimeVariable>*/
922 }
923 ((struct instance_core__NativeArray*)var226)->values[2]=var243;
924 {
925 var244 = ((val*(*)(val* self))(var226->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var226); /* native_to_s on <var226:NativeArray[String]>*/
926 }
927 varonce225 = var226;
928 {
929 nitc___nitc__AbstractCompilerVisitor___add(var_v, var244); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
930 }
931 var = var_res;
932 goto RET_LABEL;
933 RET_LABEL:;
934 return var;
935 }
936 /* method abstract_compiler$ACrangeExpr$expr for (self: ACrangeExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
937 val* nitc__abstract_compiler___ACrangeExpr___AExpr__expr(val* self, val* p0) {
938 val* var /* : nullable RuntimeVariable */;
939 val* var_v /* var v: AbstractCompilerVisitor */;
940 val* var1 /* : AExpr */;
941 val* var3 /* : AExpr */;
942 val* var4 /* : RuntimeVariable */;
943 val* var_i1 /* var i1: RuntimeVariable */;
944 val* var5 /* : AExpr */;
945 val* var7 /* : AExpr */;
946 val* var8 /* : RuntimeVariable */;
947 val* var_i2 /* var i2: RuntimeVariable */;
948 val* var9 /* : nullable MType */;
949 val* var11 /* : nullable MType */;
950 short int var12 /* : Bool */;
951 int cltype;
952 int idtype;
953 const char* var_class_name;
954 val* var_mtype /* var mtype: MClassType */;
955 val* var13 /* : RuntimeVariable */;
956 val* var_res /* var res: RuntimeVariable */;
957 val* var14 /* : nullable CallSite */;
958 val* var16 /* : nullable CallSite */;
959 val* var17 /* : Array[RuntimeVariable] */;
960 val* var_ /* var : Array[RuntimeVariable] */;
961 val* var18 /* : nullable RuntimeVariable */;
962 var_v = p0;
963 {
964 { /* Inline parser_nodes$ARangeExpr$n_expr (self) on <self:ACrangeExpr> */
965 var3 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ACrangeExpr> */
966 if (unlikely(var3 == NULL)) {
967 if(catchStack.cursor >= 0){
968 longjmp(catchStack.envs[catchStack.cursor], 1);
969 }
970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
971 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2502);
972 fatal_exit(1);
973 }
974 var1 = var3;
975 RET_LABEL2:(void)0;
976 }
977 }
978 {
979 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
980 }
981 var_i1 = var4;
982 {
983 { /* Inline parser_nodes$ARangeExpr$n_expr2 (self) on <self:ACrangeExpr> */
984 var7 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ACrangeExpr> */
985 if (unlikely(var7 == NULL)) {
986 if(catchStack.cursor >= 0){
987 longjmp(catchStack.envs[catchStack.cursor], 1);
988 }
989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
990 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2508);
991 fatal_exit(1);
992 }
993 var5 = var7;
994 RET_LABEL6:(void)0;
995 }
996 }
997 {
998 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
999 }
1000 var_i2 = var8;
1001 {
1002 { /* Inline typing$AExpr$mtype (self) on <self:ACrangeExpr> */
1003 var11 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:ACrangeExpr> */
1004 var9 = var11;
1005 RET_LABEL10:(void)0;
1006 }
1007 }
1008 /* <var9:nullable MType> isa MClassType */
1009 cltype = type_nitc__MClassType.color;
1010 idtype = type_nitc__MClassType.id;
1011 if(var9 == NULL) {
1012 var12 = 0;
1013 } else {
1014 if(cltype >= var9->type->table_size) {
1015 var12 = 0;
1016 } else {
1017 var12 = var9->type->type_table[cltype] == idtype;
1018 }
1019 }
1020 if (unlikely(!var12)) {
1021 var_class_name = var9 == NULL ? "null" : var9->type->name;
1022 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1023 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3836);
1024 fatal_exit(1);
1025 }
1026 var_mtype = var9;
1027 {
1028 var13 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype); /* init_instance on <var_v:AbstractCompilerVisitor>*/
1029 }
1030 var_res = var13;
1031 {
1032 { /* Inline typing$ARangeExpr$init_callsite (self) on <self:ACrangeExpr> */
1033 var16 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:ACrangeExpr> */
1034 var14 = var16;
1035 RET_LABEL15:(void)0;
1036 }
1037 }
1038 if (unlikely(var14 == NULL)) {
1039 if(catchStack.cursor >= 0){
1040 longjmp(catchStack.envs[catchStack.cursor], 1);
1041 }
1042 PRINT_ERROR("Runtime error: %s", "Cast failed");
1043 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3838);
1044 fatal_exit(1);
1045 }
1046 var17 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
1047 {
1048 core___core__Array___with_capacity(var17, 3l); /* Direct call array$Array$with_capacity on <var17:Array[RuntimeVariable]>*/
1049 }
1050 var_ = var17;
1051 {
1052 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_res); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
1053 }
1054 {
1055 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i1); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
1056 }
1057 {
1058 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i2); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
1059 }
1060 {
1061 var18 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var14, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
1062 }
1063 var = var_res;
1064 goto RET_LABEL;
1065 RET_LABEL:;
1066 return var;
1067 }
1068 /* method abstract_compiler$AOrangeExpr$expr for (self: AOrangeExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1069 val* nitc__abstract_compiler___AOrangeExpr___AExpr__expr(val* self, val* p0) {
1070 val* var /* : nullable RuntimeVariable */;
1071 val* var_v /* var v: AbstractCompilerVisitor */;
1072 val* var1 /* : AExpr */;
1073 val* var3 /* : AExpr */;
1074 val* var4 /* : RuntimeVariable */;
1075 val* var_i1 /* var i1: RuntimeVariable */;
1076 val* var5 /* : AExpr */;
1077 val* var7 /* : AExpr */;
1078 val* var8 /* : RuntimeVariable */;
1079 val* var_i2 /* var i2: RuntimeVariable */;
1080 val* var9 /* : nullable MType */;
1081 val* var11 /* : nullable MType */;
1082 short int var12 /* : Bool */;
1083 int cltype;
1084 int idtype;
1085 const char* var_class_name;
1086 val* var_mtype /* var mtype: MClassType */;
1087 val* var13 /* : RuntimeVariable */;
1088 val* var_res /* var res: RuntimeVariable */;
1089 val* var14 /* : nullable CallSite */;
1090 val* var16 /* : nullable CallSite */;
1091 val* var17 /* : Array[RuntimeVariable] */;
1092 val* var_ /* var : Array[RuntimeVariable] */;
1093 val* var18 /* : nullable RuntimeVariable */;
1094 var_v = p0;
1095 {
1096 { /* Inline parser_nodes$ARangeExpr$n_expr (self) on <self:AOrangeExpr> */
1097 var3 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:AOrangeExpr> */
1098 if (unlikely(var3 == NULL)) {
1099 if(catchStack.cursor >= 0){
1100 longjmp(catchStack.envs[catchStack.cursor], 1);
1101 }
1102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2502);
1104 fatal_exit(1);
1105 }
1106 var1 = var3;
1107 RET_LABEL2:(void)0;
1108 }
1109 }
1110 {
1111 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
1112 }
1113 var_i1 = var4;
1114 {
1115 { /* Inline parser_nodes$ARangeExpr$n_expr2 (self) on <self:AOrangeExpr> */
1116 var7 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:AOrangeExpr> */
1117 if (unlikely(var7 == NULL)) {
1118 if(catchStack.cursor >= 0){
1119 longjmp(catchStack.envs[catchStack.cursor], 1);
1120 }
1121 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1122 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2508);
1123 fatal_exit(1);
1124 }
1125 var5 = var7;
1126 RET_LABEL6:(void)0;
1127 }
1128 }
1129 {
1130 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
1131 }
1132 var_i2 = var8;
1133 {
1134 { /* Inline typing$AExpr$mtype (self) on <self:AOrangeExpr> */
1135 var11 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOrangeExpr> */
1136 var9 = var11;
1137 RET_LABEL10:(void)0;
1138 }
1139 }
1140 /* <var9:nullable MType> isa MClassType */
1141 cltype = type_nitc__MClassType.color;
1142 idtype = type_nitc__MClassType.id;
1143 if(var9 == NULL) {
1144 var12 = 0;
1145 } else {
1146 if(cltype >= var9->type->table_size) {
1147 var12 = 0;
1148 } else {
1149 var12 = var9->type->type_table[cltype] == idtype;
1150 }
1151 }
1152 if (unlikely(!var12)) {
1153 var_class_name = var9 == NULL ? "null" : var9->type->name;
1154 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1155 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3848);
1156 fatal_exit(1);
1157 }
1158 var_mtype = var9;
1159 {
1160 var13 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_mtype); /* init_instance on <var_v:AbstractCompilerVisitor>*/
1161 }
1162 var_res = var13;
1163 {
1164 { /* Inline typing$ARangeExpr$init_callsite (self) on <self:AOrangeExpr> */
1165 var16 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:AOrangeExpr> */
1166 var14 = var16;
1167 RET_LABEL15:(void)0;
1168 }
1169 }
1170 if (unlikely(var14 == NULL)) {
1171 if(catchStack.cursor >= 0){
1172 longjmp(catchStack.envs[catchStack.cursor], 1);
1173 }
1174 PRINT_ERROR("Runtime error: %s", "Cast failed");
1175 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3850);
1176 fatal_exit(1);
1177 }
1178 var17 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
1179 {
1180 core___core__Array___with_capacity(var17, 3l); /* Direct call array$Array$with_capacity on <var17:Array[RuntimeVariable]>*/
1181 }
1182 var_ = var17;
1183 {
1184 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_res); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
1185 }
1186 {
1187 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i1); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
1188 }
1189 {
1190 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i2); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
1191 }
1192 {
1193 var18 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var14, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
1194 }
1195 var = var_res;
1196 goto RET_LABEL;
1197 RET_LABEL:;
1198 return var;
1199 }
1200 /* method abstract_compiler$ATrueExpr$expr for (self: ATrueExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1201 val* nitc__abstract_compiler___ATrueExpr___AExpr__expr(val* self, val* p0) {
1202 val* var /* : nullable RuntimeVariable */;
1203 val* var_v /* var v: AbstractCompilerVisitor */;
1204 val* var1 /* : RuntimeVariable */;
1205 var_v = p0;
1206 {
1207 var1 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
1208 }
1209 var = var1;
1210 goto RET_LABEL;
1211 RET_LABEL:;
1212 return var;
1213 }
1214 /* method abstract_compiler$AFalseExpr$expr for (self: AFalseExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1215 val* nitc__abstract_compiler___AFalseExpr___AExpr__expr(val* self, val* p0) {
1216 val* var /* : nullable RuntimeVariable */;
1217 val* var_v /* var v: AbstractCompilerVisitor */;
1218 val* var1 /* : RuntimeVariable */;
1219 var_v = p0;
1220 {
1221 var1 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 0);
1222 }
1223 var = var1;
1224 goto RET_LABEL;
1225 RET_LABEL:;
1226 return var;
1227 }
1228 /* method abstract_compiler$ANullExpr$expr for (self: ANullExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1229 val* nitc__abstract_compiler___ANullExpr___AExpr__expr(val* self, val* p0) {
1230 val* var /* : nullable RuntimeVariable */;
1231 val* var_v /* var v: AbstractCompilerVisitor */;
1232 val* var1 /* : RuntimeVariable */;
1233 var_v = p0;
1234 {
1235 var1 = nitc___nitc__AbstractCompilerVisitor___null_instance(var_v);
1236 }
1237 var = var1;
1238 goto RET_LABEL;
1239 RET_LABEL:;
1240 return var;
1241 }
1242 /* method abstract_compiler$AIsaExpr$expr for (self: AIsaExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1243 val* nitc__abstract_compiler___AIsaExpr___AExpr__expr(val* self, val* p0) {
1244 val* var /* : nullable RuntimeVariable */;
1245 val* var_v /* var v: AbstractCompilerVisitor */;
1246 val* var1 /* : AExpr */;
1247 val* var3 /* : AExpr */;
1248 val* var4 /* : RuntimeVariable */;
1249 val* var_i /* var i: RuntimeVariable */;
1250 val* var5 /* : nullable MType */;
1251 val* var7 /* : nullable MType */;
1252 val* var_cast_type /* var cast_type: nullable MType */;
1253 short int var8 /* : Bool */;
1254 short int var9 /* : Bool */;
1255 val* var_other /* var other: nullable Object */;
1256 short int var11 /* : Bool */;
1257 short int var13 /* : Bool */;
1258 static val* varonce;
1259 val* var14 /* : String */;
1260 char* var15 /* : CString */;
1261 val* var16 /* : String */;
1262 val* var17 /* : nullable Int */;
1263 val* var18 /* : nullable Int */;
1264 val* var19 /* : nullable Bool */;
1265 val* var20 /* : nullable Bool */;
1266 val* var21 /* : RuntimeVariable */;
1267 var_v = p0;
1268 {
1269 { /* Inline parser_nodes$AIsaExpr$n_expr (self) on <self:AIsaExpr> */
1270 var3 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
1271 if (unlikely(var3 == NULL)) {
1272 if(catchStack.cursor >= 0){
1273 longjmp(catchStack.envs[catchStack.cursor], 1);
1274 }
1275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234);
1277 fatal_exit(1);
1278 }
1279 var1 = var3;
1280 RET_LABEL2:(void)0;
1281 }
1282 }
1283 {
1284 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
1285 }
1286 var_i = var4;
1287 {
1288 { /* Inline typing$AIsaExpr$cast_type (self) on <self:AIsaExpr> */
1289 var7 = self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val; /* _cast_type on <self:AIsaExpr> */
1290 var5 = var7;
1291 RET_LABEL6:(void)0;
1292 }
1293 }
1294 var_cast_type = var5;
1295 if (var_cast_type == NULL) {
1296 var8 = 1; /* is null */
1297 } else {
1298 var8 = 0; /* arg is null but recv is not */
1299 }
1300 if (0) {
1301 { /* Inline kernel$Object$== (var_cast_type,((val*)NULL)) on <var_cast_type:nullable MType> */
1302 var_other = ((val*)NULL);
1303 {
1304 { /* Inline kernel$Object$is_same_instance (var_cast_type,var_other) on <var_cast_type:nullable MType(MType)> */
1305 var13 = var_cast_type == var_other;
1306 var11 = var13;
1307 goto RET_LABEL12;
1308 RET_LABEL12:(void)0;
1309 }
1310 }
1311 var9 = var11;
1312 goto RET_LABEL10;
1313 RET_LABEL10:(void)0;
1314 }
1315 var8 = var9;
1316 }
1317 if (var8){
1318 var = ((val*)NULL);
1319 goto RET_LABEL;
1320 } else {
1321 }
1322 if (likely(varonce!=NULL)) {
1323 var14 = varonce;
1324 } else {
1325 var15 = "isa";
1326 var17 = (val*)(3l<<2|1);
1327 var18 = (val*)(3l<<2|1);
1328 var19 = (val*)((long)(0)<<2|3);
1329 var20 = (val*)((long)(0)<<2|3);
1330 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
1331 var14 = var16;
1332 varonce = var14;
1333 }
1334 {
1335 var21 = ((val*(*)(val* self, val* p0, val* p1, val* p2))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__type_test]))(var_v, var_i, var_cast_type, var14); /* type_test on <var_v:AbstractCompilerVisitor>*/
1336 }
1337 var = var21;
1338 goto RET_LABEL;
1339 RET_LABEL:;
1340 return var;
1341 }
1342 /* method abstract_compiler$AAsCastExpr$expr for (self: AAsCastExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1343 val* nitc__abstract_compiler___AAsCastExpr___AExpr__expr(val* self, val* p0) {
1344 val* var /* : nullable RuntimeVariable */;
1345 val* var_v /* var v: AbstractCompilerVisitor */;
1346 val* var1 /* : AExpr */;
1347 val* var3 /* : AExpr */;
1348 val* var4 /* : RuntimeVariable */;
1349 val* var_i /* var i: RuntimeVariable */;
1350 val* var5 /* : AbstractCompiler */;
1351 val* var7 /* : AbstractCompiler */;
1352 val* var8 /* : ModelBuilder */;
1353 val* var10 /* : ModelBuilder */;
1354 val* var11 /* : ToolContext */;
1355 val* var13 /* : ToolContext */;
1356 val* var14 /* : OptionBool */;
1357 val* var16 /* : OptionBool */;
1358 val* var17 /* : nullable Object */;
1359 val* var19 /* : nullable Object */;
1360 short int var20 /* : Bool */;
1361 val* var21 /* : nullable MType */;
1362 val* var23 /* : nullable MType */;
1363 static val* varonce;
1364 val* var24 /* : String */;
1365 char* var25 /* : CString */;
1366 val* var26 /* : String */;
1367 val* var27 /* : nullable Int */;
1368 val* var28 /* : nullable Int */;
1369 val* var29 /* : nullable Bool */;
1370 val* var30 /* : nullable Bool */;
1371 var_v = p0;
1372 {
1373 { /* Inline parser_nodes$AAsCastForm$n_expr (self) on <self:AAsCastExpr> */
1374 var3 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
1375 if (unlikely(var3 == NULL)) {
1376 if(catchStack.cursor >= 0){
1377 longjmp(catchStack.envs[catchStack.cursor], 1);
1378 }
1379 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1380 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667);
1381 fatal_exit(1);
1382 }
1383 var1 = var3;
1384 RET_LABEL2:(void)0;
1385 }
1386 }
1387 {
1388 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
1389 }
1390 var_i = var4;
1391 {
1392 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1393 var7 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1394 if (unlikely(var7 == NULL)) {
1395 if(catchStack.cursor >= 0){
1396 longjmp(catchStack.envs[catchStack.cursor], 1);
1397 }
1398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1400 fatal_exit(1);
1401 }
1402 var5 = var7;
1403 RET_LABEL6:(void)0;
1404 }
1405 }
1406 {
1407 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var5) on <var5:AbstractCompiler> */
1408 var10 = var5->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var5:AbstractCompiler> */
1409 if (unlikely(var10 == NULL)) {
1410 if(catchStack.cursor >= 0){
1411 longjmp(catchStack.envs[catchStack.cursor], 1);
1412 }
1413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1414 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
1415 fatal_exit(1);
1416 }
1417 var8 = var10;
1418 RET_LABEL9:(void)0;
1419 }
1420 }
1421 {
1422 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var8) on <var8:ModelBuilder> */
1423 var13 = var8->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var8:ModelBuilder> */
1424 if (unlikely(var13 == NULL)) {
1425 if(catchStack.cursor >= 0){
1426 longjmp(catchStack.envs[catchStack.cursor], 1);
1427 }
1428 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1429 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1430 fatal_exit(1);
1431 }
1432 var11 = var13;
1433 RET_LABEL12:(void)0;
1434 }
1435 }
1436 {
1437 { /* Inline abstract_compiler$ToolContext$opt_no_check_assert (var11) on <var11:ToolContext> */
1438 var16 = var11->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on <var11:ToolContext> */
1439 if (unlikely(var16 == NULL)) {
1440 if(catchStack.cursor >= 0){
1441 longjmp(catchStack.envs[catchStack.cursor], 1);
1442 }
1443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
1444 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 52);
1445 fatal_exit(1);
1446 }
1447 var14 = var16;
1448 RET_LABEL15:(void)0;
1449 }
1450 }
1451 {
1452 { /* Inline opts$Option$value (var14) on <var14:OptionBool> */
1453 var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on <var14:OptionBool> */
1454 var17 = var19;
1455 RET_LABEL18:(void)0;
1456 }
1457 }
1458 var20 = (short int)((long)(var17)>>2);
1459 if (var20){
1460 var = var_i;
1461 goto RET_LABEL;
1462 } else {
1463 }
1464 {
1465 { /* Inline typing$AExpr$mtype (self) on <self:AAsCastExpr> */
1466 var23 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AAsCastExpr> */
1467 var21 = var23;
1468 RET_LABEL22:(void)0;
1469 }
1470 }
1471 if (unlikely(var21 == NULL)) {
1472 if(catchStack.cursor >= 0){
1473 longjmp(catchStack.envs[catchStack.cursor], 1);
1474 }
1475 PRINT_ERROR("Runtime error: %s", "Cast failed");
1476 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3883);
1477 fatal_exit(1);
1478 }
1479 if (likely(varonce!=NULL)) {
1480 var24 = varonce;
1481 } else {
1482 var25 = "as";
1483 var27 = (val*)(2l<<2|1);
1484 var28 = (val*)(2l<<2|1);
1485 var29 = (val*)((long)(0)<<2|3);
1486 var30 = (val*)((long)(0)<<2|3);
1487 var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30);
1488 var24 = var26;
1489 varonce = var24;
1490 }
1491 {
1492 nitc___nitc__AbstractCompilerVisitor___add_cast(var_v, var_i, var21, var24); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_cast on <var_v:AbstractCompilerVisitor>*/
1493 }
1494 var = var_i;
1495 goto RET_LABEL;
1496 RET_LABEL:;
1497 return var;
1498 }
1499 /* method abstract_compiler$AAsNotnullExpr$expr for (self: AAsNotnullExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1500 val* nitc__abstract_compiler___AAsNotnullExpr___AExpr__expr(val* self, val* p0) {
1501 val* var /* : nullable RuntimeVariable */;
1502 val* var_v /* var v: AbstractCompilerVisitor */;
1503 val* var1 /* : AExpr */;
1504 val* var3 /* : AExpr */;
1505 val* var4 /* : RuntimeVariable */;
1506 val* var_i /* var i: RuntimeVariable */;
1507 val* var5 /* : AbstractCompiler */;
1508 val* var7 /* : AbstractCompiler */;
1509 val* var8 /* : ModelBuilder */;
1510 val* var10 /* : ModelBuilder */;
1511 val* var11 /* : ToolContext */;
1512 val* var13 /* : ToolContext */;
1513 val* var14 /* : OptionBool */;
1514 val* var16 /* : OptionBool */;
1515 val* var17 /* : nullable Object */;
1516 val* var19 /* : nullable Object */;
1517 short int var20 /* : Bool */;
1518 short int var21 /* : Bool */;
1519 short int var22 /* : Bool */;
1520 val* var23 /* : NativeArray[String] */;
1521 static val* varonce;
1522 static val* varonce24;
1523 val* var25 /* : String */;
1524 char* var26 /* : CString */;
1525 val* var27 /* : String */;
1526 val* var28 /* : nullable Int */;
1527 val* var29 /* : nullable Int */;
1528 val* var30 /* : nullable Bool */;
1529 val* var31 /* : nullable Bool */;
1530 static val* varonce32;
1531 val* var33 /* : String */;
1532 char* var34 /* : CString */;
1533 val* var35 /* : String */;
1534 val* var36 /* : nullable Int */;
1535 val* var37 /* : nullable Int */;
1536 val* var38 /* : nullable Bool */;
1537 val* var39 /* : nullable Bool */;
1538 val* var40 /* : String */;
1539 val* var41 /* : String */;
1540 static val* varonce42;
1541 val* var43 /* : String */;
1542 char* var44 /* : CString */;
1543 val* var45 /* : String */;
1544 val* var46 /* : nullable Int */;
1545 val* var47 /* : nullable Int */;
1546 val* var48 /* : nullable Bool */;
1547 val* var49 /* : nullable Bool */;
1548 static val* varonce50;
1549 val* var51 /* : String */;
1550 char* var52 /* : CString */;
1551 val* var53 /* : String */;
1552 val* var54 /* : nullable Int */;
1553 val* var55 /* : nullable Int */;
1554 val* var56 /* : nullable Bool */;
1555 val* var57 /* : nullable Bool */;
1556 var_v = p0;
1557 {
1558 { /* Inline parser_nodes$AAsCastForm$n_expr (self) on <self:AAsNotnullExpr> */
1559 var3 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsNotnullExpr> */
1560 if (unlikely(var3 == NULL)) {
1561 if(catchStack.cursor >= 0){
1562 longjmp(catchStack.envs[catchStack.cursor], 1);
1563 }
1564 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1565 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667);
1566 fatal_exit(1);
1567 }
1568 var1 = var3;
1569 RET_LABEL2:(void)0;
1570 }
1571 }
1572 {
1573 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
1574 }
1575 var_i = var4;
1576 {
1577 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1578 var7 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1579 if (unlikely(var7 == NULL)) {
1580 if(catchStack.cursor >= 0){
1581 longjmp(catchStack.envs[catchStack.cursor], 1);
1582 }
1583 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1584 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1585 fatal_exit(1);
1586 }
1587 var5 = var7;
1588 RET_LABEL6:(void)0;
1589 }
1590 }
1591 {
1592 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var5) on <var5:AbstractCompiler> */
1593 var10 = var5->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var5:AbstractCompiler> */
1594 if (unlikely(var10 == NULL)) {
1595 if(catchStack.cursor >= 0){
1596 longjmp(catchStack.envs[catchStack.cursor], 1);
1597 }
1598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1599 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
1600 fatal_exit(1);
1601 }
1602 var8 = var10;
1603 RET_LABEL9:(void)0;
1604 }
1605 }
1606 {
1607 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var8) on <var8:ModelBuilder> */
1608 var13 = var8->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var8:ModelBuilder> */
1609 if (unlikely(var13 == NULL)) {
1610 if(catchStack.cursor >= 0){
1611 longjmp(catchStack.envs[catchStack.cursor], 1);
1612 }
1613 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1614 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1615 fatal_exit(1);
1616 }
1617 var11 = var13;
1618 RET_LABEL12:(void)0;
1619 }
1620 }
1621 {
1622 { /* Inline abstract_compiler$ToolContext$opt_no_check_assert (var11) on <var11:ToolContext> */
1623 var16 = var11->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on <var11:ToolContext> */
1624 if (unlikely(var16 == NULL)) {
1625 if(catchStack.cursor >= 0){
1626 longjmp(catchStack.envs[catchStack.cursor], 1);
1627 }
1628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
1629 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 52);
1630 fatal_exit(1);
1631 }
1632 var14 = var16;
1633 RET_LABEL15:(void)0;
1634 }
1635 }
1636 {
1637 { /* Inline opts$Option$value (var14) on <var14:OptionBool> */
1638 var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on <var14:OptionBool> */
1639 var17 = var19;
1640 RET_LABEL18:(void)0;
1641 }
1642 }
1643 var20 = (short int)((long)(var17)>>2);
1644 if (var20){
1645 var = var_i;
1646 goto RET_LABEL;
1647 } else {
1648 }
1649 {
1650 var21 = nitc___nitc__AbstractCompilerVisitor___maybenull(var_v, var_i);
1651 }
1652 var22 = !var21;
1653 if (var22){
1654 var = var_i;
1655 goto RET_LABEL;
1656 } else {
1657 }
1658 if (unlikely(varonce==NULL)) {
1659 var23 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1660 if (likely(varonce24!=NULL)) {
1661 var25 = varonce24;
1662 } else {
1663 var26 = "if (unlikely(";
1664 var28 = (val*)(13l<<2|1);
1665 var29 = (val*)(13l<<2|1);
1666 var30 = (val*)((long)(0)<<2|3);
1667 var31 = (val*)((long)(0)<<2|3);
1668 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
1669 var25 = var27;
1670 varonce24 = var25;
1671 }
1672 ((struct instance_core__NativeArray*)var23)->values[0]=var25;
1673 if (likely(varonce32!=NULL)) {
1674 var33 = varonce32;
1675 } else {
1676 var34 = " == NULL)) {";
1677 var36 = (val*)(12l<<2|1);
1678 var37 = (val*)(12l<<2|1);
1679 var38 = (val*)((long)(0)<<2|3);
1680 var39 = (val*)((long)(0)<<2|3);
1681 var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
1682 var33 = var35;
1683 varonce32 = var33;
1684 }
1685 ((struct instance_core__NativeArray*)var23)->values[2]=var33;
1686 } else {
1687 var23 = varonce;
1688 varonce = NULL;
1689 }
1690 {
1691 var40 = ((val*(*)(val* self))(var_i->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i); /* to_s on <var_i:RuntimeVariable>*/
1692 }
1693 ((struct instance_core__NativeArray*)var23)->values[1]=var40;
1694 {
1695 var41 = ((val*(*)(val* self))(var23->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var23); /* native_to_s on <var23:NativeArray[String]>*/
1696 }
1697 varonce = var23;
1698 {
1699 nitc___nitc__AbstractCompilerVisitor___add(var_v, var41); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1700 }
1701 if (likely(varonce42!=NULL)) {
1702 var43 = varonce42;
1703 } else {
1704 var44 = "Cast failed";
1705 var46 = (val*)(11l<<2|1);
1706 var47 = (val*)(11l<<2|1);
1707 var48 = (val*)((long)(0)<<2|3);
1708 var49 = (val*)((long)(0)<<2|3);
1709 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
1710 var43 = var45;
1711 varonce42 = var43;
1712 }
1713 {
1714 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var43); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:AbstractCompilerVisitor>*/
1715 }
1716 if (likely(varonce50!=NULL)) {
1717 var51 = varonce50;
1718 } else {
1719 var52 = "}";
1720 var54 = (val*)(1l<<2|1);
1721 var55 = (val*)(1l<<2|1);
1722 var56 = (val*)((long)(0)<<2|3);
1723 var57 = (val*)((long)(0)<<2|3);
1724 var53 = core__flat___CString___to_s_unsafe(var52, var54, var55, var56, var57);
1725 var51 = var53;
1726 varonce50 = var51;
1727 }
1728 {
1729 nitc___nitc__AbstractCompilerVisitor___add(var_v, var51); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
1730 }
1731 var = var_i;
1732 goto RET_LABEL;
1733 RET_LABEL:;
1734 return var;
1735 }
1736 /* method abstract_compiler$AParExpr$expr for (self: AParExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1737 val* nitc__abstract_compiler___AParExpr___AExpr__expr(val* self, val* p0) {
1738 val* var /* : nullable RuntimeVariable */;
1739 val* var_v /* var v: AbstractCompilerVisitor */;
1740 val* var1 /* : AExpr */;
1741 val* var3 /* : AExpr */;
1742 val* var4 /* : RuntimeVariable */;
1743 var_v = p0;
1744 {
1745 { /* Inline parser_nodes$AParExpr$n_expr (self) on <self:AParExpr> */
1746 var3 = self->attrs[COLOR_nitc__parser_nodes__AParExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
1747 if (unlikely(var3 == NULL)) {
1748 if(catchStack.cursor >= 0){
1749 longjmp(catchStack.envs[catchStack.cursor], 1);
1750 }
1751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1752 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2656);
1753 fatal_exit(1);
1754 }
1755 var1 = var3;
1756 RET_LABEL2:(void)0;
1757 }
1758 }
1759 {
1760 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
1761 }
1762 var = var4;
1763 goto RET_LABEL;
1764 RET_LABEL:;
1765 return var;
1766 }
1767 /* method abstract_compiler$AOnceExpr$expr for (self: AOnceExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
1768 val* nitc__abstract_compiler___AOnceExpr___AExpr__expr(val* self, val* p0) {
1769 val* var /* : nullable RuntimeVariable */;
1770 val* var_v /* var v: AbstractCompilerVisitor */;
1771 val* var1 /* : nullable MType */;
1772 val* var3 /* : nullable MType */;
1773 val* var_mtype /* var mtype: MType */;
1774 static val* varonce;
1775 val* var4 /* : String */;
1776 char* var5 /* : CString */;
1777 val* var6 /* : String */;
1778 val* var7 /* : nullable Int */;
1779 val* var8 /* : nullable Int */;
1780 val* var9 /* : nullable Bool */;
1781 val* var10 /* : nullable Bool */;
1782 val* var11 /* : String */;
1783 val* var_name /* var name: String */;
1784 static val* varonce12;
1785 val* var13 /* : String */;
1786 char* var14 /* : CString */;
1787 val* var15 /* : String */;
1788 val* var16 /* : nullable Int */;
1789 val* var17 /* : nullable Int */;
1790 val* var18 /* : nullable Bool */;
1791 val* var19 /* : nullable Bool */;
1792 val* var20 /* : Text */;
1793 val* var21 /* : String */;
1794 val* var_guard /* var guard: String */;
1795 val* var23 /* : NativeArray[String] */;
1796 static val* varonce22;
1797 static val* varonce24;
1798 val* var25 /* : String */;
1799 char* var26 /* : CString */;
1800 val* var27 /* : String */;
1801 val* var28 /* : nullable Int */;
1802 val* var29 /* : nullable Int */;
1803 val* var30 /* : nullable Bool */;
1804 val* var31 /* : nullable Bool */;
1805 static val* varonce32;
1806 val* var33 /* : String */;
1807 char* var34 /* : CString */;
1808 val* var35 /* : String */;
1809 val* var36 /* : nullable Int */;
1810 val* var37 /* : nullable Int */;
1811 val* var38 /* : nullable Bool */;
1812 val* var39 /* : nullable Bool */;
1813 static val* varonce40;
1814 val* var41 /* : String */;
1815 char* var42 /* : CString */;
1816 val* var43 /* : String */;
1817 val* var44 /* : nullable Int */;
1818 val* var45 /* : nullable Int */;
1819 val* var46 /* : nullable Bool */;
1820 val* var47 /* : nullable Bool */;
1821 val* var48 /* : String */;
1822 val* var49 /* : String */;
1823 val* var51 /* : NativeArray[String] */;
1824 static val* varonce50;
1825 static val* varonce52;
1826 val* var53 /* : String */;
1827 char* var54 /* : CString */;
1828 val* var55 /* : String */;
1829 val* var56 /* : nullable Int */;
1830 val* var57 /* : nullable Int */;
1831 val* var58 /* : nullable Bool */;
1832 val* var59 /* : nullable Bool */;
1833 static val* varonce60;
1834 val* var61 /* : String */;
1835 char* var62 /* : CString */;
1836 val* var63 /* : String */;
1837 val* var64 /* : nullable Int */;
1838 val* var65 /* : nullable Int */;
1839 val* var66 /* : nullable Bool */;
1840 val* var67 /* : nullable Bool */;
1841 val* var68 /* : String */;
1842 val* var69 /* : RuntimeVariable */;
1843 val* var_res /* var res: RuntimeVariable */;
1844 val* var71 /* : NativeArray[String] */;
1845 static val* varonce70;
1846 static val* varonce72;
1847 val* var73 /* : String */;
1848 char* var74 /* : CString */;
1849 val* var75 /* : String */;
1850 val* var76 /* : nullable Int */;
1851 val* var77 /* : nullable Int */;
1852 val* var78 /* : nullable Bool */;
1853 val* var79 /* : nullable Bool */;
1854 static val* varonce80;
1855 val* var81 /* : String */;
1856 char* var82 /* : CString */;
1857 val* var83 /* : String */;
1858 val* var84 /* : nullable Int */;
1859 val* var85 /* : nullable Int */;
1860 val* var86 /* : nullable Bool */;
1861 val* var87 /* : nullable Bool */;
1862 val* var88 /* : String */;
1863 val* var90 /* : NativeArray[String] */;
1864 static val* varonce89;
1865 static val* varonce91;
1866 val* var92 /* : String */;
1867 char* var93 /* : CString */;
1868 val* var94 /* : String */;
1869 val* var95 /* : nullable Int */;
1870 val* var96 /* : nullable Int */;
1871 val* var97 /* : nullable Bool */;
1872 val* var98 /* : nullable Bool */;
1873 static val* varonce99;
1874 val* var100 /* : String */;
1875 char* var101 /* : CString */;
1876 val* var102 /* : String */;
1877 val* var103 /* : nullable Int */;
1878 val* var104 /* : nullable Int */;
1879 val* var105 /* : nullable Bool */;
1880 val* var106 /* : nullable Bool */;
1881 val* var107 /* : String */;
1882 val* var108 /* : String */;
1883 static val* varonce109;
1884 val* var110 /* : String */;
1885 char* var111 /* : CString */;
1886 val* var112 /* : String */;
1887 val* var113 /* : nullable Int */;
1888 val* var114 /* : nullable Int */;
1889 val* var115 /* : nullable Bool */;
1890 val* var116 /* : nullable Bool */;
1891 val* var117 /* : AExpr */;
1892 val* var119 /* : AExpr */;
1893 val* var120 /* : RuntimeVariable */;
1894 val* var_i /* var i: RuntimeVariable */;
1895 val* var122 /* : NativeArray[String] */;
1896 static val* varonce121;
1897 static val* varonce123;
1898 val* var124 /* : String */;
1899 char* var125 /* : CString */;
1900 val* var126 /* : String */;
1901 val* var127 /* : nullable Int */;
1902 val* var128 /* : nullable Int */;
1903 val* var129 /* : nullable Bool */;
1904 val* var130 /* : nullable Bool */;
1905 static val* varonce131;
1906 val* var132 /* : String */;
1907 char* var133 /* : CString */;
1908 val* var134 /* : String */;
1909 val* var135 /* : nullable Int */;
1910 val* var136 /* : nullable Int */;
1911 val* var137 /* : nullable Bool */;
1912 val* var138 /* : nullable Bool */;
1913 val* var139 /* : String */;
1914 val* var140 /* : String */;
1915 val* var141 /* : String */;
1916 val* var143 /* : NativeArray[String] */;
1917 static val* varonce142;
1918 static val* varonce144;
1919 val* var145 /* : String */;
1920 char* var146 /* : CString */;
1921 val* var147 /* : String */;
1922 val* var148 /* : nullable Int */;
1923 val* var149 /* : nullable Int */;
1924 val* var150 /* : nullable Bool */;
1925 val* var151 /* : nullable Bool */;
1926 static val* varonce152;
1927 val* var153 /* : String */;
1928 char* var154 /* : CString */;
1929 val* var155 /* : String */;
1930 val* var156 /* : nullable Int */;
1931 val* var157 /* : nullable Int */;
1932 val* var158 /* : nullable Bool */;
1933 val* var159 /* : nullable Bool */;
1934 val* var160 /* : String */;
1935 val* var161 /* : String */;
1936 val* var163 /* : NativeArray[String] */;
1937 static val* varonce162;
1938 static val* varonce164;
1939 val* var165 /* : String */;
1940 char* var166 /* : CString */;
1941 val* var167 /* : String */;
1942 val* var168 /* : nullable Int */;
1943 val* var169 /* : nullable Int */;
1944 val* var170 /* : nullable Bool */;
1945 val* var171 /* : nullable Bool */;
1946 val* var172 /* : String */;
1947 static val* varonce173;
1948 val* var174 /* : String */;
1949 char* var175 /* : CString */;
1950 val* var176 /* : String */;
1951 val* var177 /* : nullable Int */;
1952 val* var178 /* : nullable Int */;
1953 val* var179 /* : nullable Bool */;
1954 val* var180 /* : nullable Bool */;
1955 var_v = p0;
1956 {
1957 { /* Inline typing$AExpr$mtype (self) on <self:AOnceExpr> */
1958 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOnceExpr> */
1959 var1 = var3;
1960 RET_LABEL2:(void)0;
1961 }
1962 }
1963 if (unlikely(var1 == NULL)) {
1964 if(catchStack.cursor >= 0){
1965 longjmp(catchStack.envs[catchStack.cursor], 1);
1966 }
1967 PRINT_ERROR("Runtime error: %s", "Cast failed");
1968 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3910);
1969 fatal_exit(1);
1970 }
1971 var_mtype = var1;
1972 if (likely(varonce!=NULL)) {
1973 var4 = varonce;
1974 } else {
1975 var5 = "varonce";
1976 var7 = (val*)(7l<<2|1);
1977 var8 = (val*)(7l<<2|1);
1978 var9 = (val*)((long)(0)<<2|3);
1979 var10 = (val*)((long)(0)<<2|3);
1980 var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10);
1981 var4 = var6;
1982 varonce = var4;
1983 }
1984 {
1985 var11 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var4);
1986 }
1987 var_name = var11;
1988 if (likely(varonce12!=NULL)) {
1989 var13 = varonce12;
1990 } else {
1991 var14 = "_guard";
1992 var16 = (val*)(6l<<2|1);
1993 var17 = (val*)(6l<<2|1);
1994 var18 = (val*)((long)(0)<<2|3);
1995 var19 = (val*)((long)(0)<<2|3);
1996 var15 = core__flat___CString___to_s_unsafe(var14, var16, var17, var18, var19);
1997 var13 = var15;
1998 varonce12 = var13;
1999 }
2000 {
2001 var20 = ((val*(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__abstract_text__Text___43d]))(var_name, var13); /* + on <var_name:String>*/
2002 }
2003 {
2004 var21 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var20);
2005 }
2006 var_guard = var21;
2007 if (unlikely(varonce22==NULL)) {
2008 var23 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2009 if (likely(varonce24!=NULL)) {
2010 var25 = varonce24;
2011 } else {
2012 var26 = "static ";
2013 var28 = (val*)(7l<<2|1);
2014 var29 = (val*)(7l<<2|1);
2015 var30 = (val*)((long)(0)<<2|3);
2016 var31 = (val*)((long)(0)<<2|3);
2017 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
2018 var25 = var27;
2019 varonce24 = var25;
2020 }
2021 ((struct instance_core__NativeArray*)var23)->values[0]=var25;
2022 if (likely(varonce32!=NULL)) {
2023 var33 = varonce32;
2024 } else {
2025 var34 = " ";
2026 var36 = (val*)(1l<<2|1);
2027 var37 = (val*)(1l<<2|1);
2028 var38 = (val*)((long)(0)<<2|3);
2029 var39 = (val*)((long)(0)<<2|3);
2030 var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
2031 var33 = var35;
2032 varonce32 = var33;
2033 }
2034 ((struct instance_core__NativeArray*)var23)->values[2]=var33;
2035 if (likely(varonce40!=NULL)) {
2036 var41 = varonce40;
2037 } else {
2038 var42 = ";";
2039 var44 = (val*)(1l<<2|1);
2040 var45 = (val*)(1l<<2|1);
2041 var46 = (val*)((long)(0)<<2|3);
2042 var47 = (val*)((long)(0)<<2|3);
2043 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
2044 var41 = var43;
2045 varonce40 = var41;
2046 }
2047 ((struct instance_core__NativeArray*)var23)->values[4]=var41;
2048 } else {
2049 var23 = varonce22;
2050 varonce22 = NULL;
2051 }
2052 {
2053 var48 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_mtype); /* ctype on <var_mtype:MType>*/
2054 }
2055 ((struct instance_core__NativeArray*)var23)->values[1]=var48;
2056 ((struct instance_core__NativeArray*)var23)->values[3]=var_name;
2057 {
2058 var49 = ((val*(*)(val* self))(var23->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var23); /* native_to_s on <var23:NativeArray[String]>*/
2059 }
2060 varonce22 = var23;
2061 {
2062 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var49); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:AbstractCompilerVisitor>*/
2063 }
2064 if (unlikely(varonce50==NULL)) {
2065 var51 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2066 if (likely(varonce52!=NULL)) {
2067 var53 = varonce52;
2068 } else {
2069 var54 = "static int ";
2070 var56 = (val*)(11l<<2|1);
2071 var57 = (val*)(11l<<2|1);
2072 var58 = (val*)((long)(0)<<2|3);
2073 var59 = (val*)((long)(0)<<2|3);
2074 var55 = core__flat___CString___to_s_unsafe(var54, var56, var57, var58, var59);
2075 var53 = var55;
2076 varonce52 = var53;
2077 }
2078 ((struct instance_core__NativeArray*)var51)->values[0]=var53;
2079 if (likely(varonce60!=NULL)) {
2080 var61 = varonce60;
2081 } else {
2082 var62 = ";";
2083 var64 = (val*)(1l<<2|1);
2084 var65 = (val*)(1l<<2|1);
2085 var66 = (val*)((long)(0)<<2|3);
2086 var67 = (val*)((long)(0)<<2|3);
2087 var63 = core__flat___CString___to_s_unsafe(var62, var64, var65, var66, var67);
2088 var61 = var63;
2089 varonce60 = var61;
2090 }
2091 ((struct instance_core__NativeArray*)var51)->values[2]=var61;
2092 } else {
2093 var51 = varonce50;
2094 varonce50 = NULL;
2095 }
2096 ((struct instance_core__NativeArray*)var51)->values[1]=var_guard;
2097 {
2098 var68 = ((val*(*)(val* self))(var51->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var51); /* native_to_s on <var51:NativeArray[String]>*/
2099 }
2100 varonce50 = var51;
2101 {
2102 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var68); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:AbstractCompilerVisitor>*/
2103 }
2104 {
2105 var69 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_mtype);
2106 }
2107 var_res = var69;
2108 if (unlikely(varonce70==NULL)) {
2109 var71 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2110 if (likely(varonce72!=NULL)) {
2111 var73 = varonce72;
2112 } else {
2113 var74 = "if (likely(";
2114 var76 = (val*)(11l<<2|1);
2115 var77 = (val*)(11l<<2|1);
2116 var78 = (val*)((long)(0)<<2|3);
2117 var79 = (val*)((long)(0)<<2|3);
2118 var75 = core__flat___CString___to_s_unsafe(var74, var76, var77, var78, var79);
2119 var73 = var75;
2120 varonce72 = var73;
2121 }
2122 ((struct instance_core__NativeArray*)var71)->values[0]=var73;
2123 if (likely(varonce80!=NULL)) {
2124 var81 = varonce80;
2125 } else {
2126 var82 = ")) {";
2127 var84 = (val*)(4l<<2|1);
2128 var85 = (val*)(4l<<2|1);
2129 var86 = (val*)((long)(0)<<2|3);
2130 var87 = (val*)((long)(0)<<2|3);
2131 var83 = core__flat___CString___to_s_unsafe(var82, var84, var85, var86, var87);
2132 var81 = var83;
2133 varonce80 = var81;
2134 }
2135 ((struct instance_core__NativeArray*)var71)->values[2]=var81;
2136 } else {
2137 var71 = varonce70;
2138 varonce70 = NULL;
2139 }
2140 ((struct instance_core__NativeArray*)var71)->values[1]=var_guard;
2141 {
2142 var88 = ((val*(*)(val* self))(var71->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var71); /* native_to_s on <var71:NativeArray[String]>*/
2143 }
2144 varonce70 = var71;
2145 {
2146 nitc___nitc__AbstractCompilerVisitor___add(var_v, var88); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2147 }
2148 if (unlikely(varonce89==NULL)) {
2149 var90 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
2150 if (likely(varonce91!=NULL)) {
2151 var92 = varonce91;
2152 } else {
2153 var93 = " = ";
2154 var95 = (val*)(3l<<2|1);
2155 var96 = (val*)(3l<<2|1);
2156 var97 = (val*)((long)(0)<<2|3);
2157 var98 = (val*)((long)(0)<<2|3);
2158 var94 = core__flat___CString___to_s_unsafe(var93, var95, var96, var97, var98);
2159 var92 = var94;
2160 varonce91 = var92;
2161 }
2162 ((struct instance_core__NativeArray*)var90)->values[1]=var92;
2163 if (likely(varonce99!=NULL)) {
2164 var100 = varonce99;
2165 } else {
2166 var101 = ";";
2167 var103 = (val*)(1l<<2|1);
2168 var104 = (val*)(1l<<2|1);
2169 var105 = (val*)((long)(0)<<2|3);
2170 var106 = (val*)((long)(0)<<2|3);
2171 var102 = core__flat___CString___to_s_unsafe(var101, var103, var104, var105, var106);
2172 var100 = var102;
2173 varonce99 = var100;
2174 }
2175 ((struct instance_core__NativeArray*)var90)->values[3]=var100;
2176 } else {
2177 var90 = varonce89;
2178 varonce89 = NULL;
2179 }
2180 {
2181 var107 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2182 }
2183 ((struct instance_core__NativeArray*)var90)->values[0]=var107;
2184 ((struct instance_core__NativeArray*)var90)->values[2]=var_name;
2185 {
2186 var108 = ((val*(*)(val* self))(var90->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var90); /* native_to_s on <var90:NativeArray[String]>*/
2187 }
2188 varonce89 = var90;
2189 {
2190 nitc___nitc__AbstractCompilerVisitor___add(var_v, var108); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2191 }
2192 if (likely(varonce109!=NULL)) {
2193 var110 = varonce109;
2194 } else {
2195 var111 = "} else {";
2196 var113 = (val*)(8l<<2|1);
2197 var114 = (val*)(8l<<2|1);
2198 var115 = (val*)((long)(0)<<2|3);
2199 var116 = (val*)((long)(0)<<2|3);
2200 var112 = core__flat___CString___to_s_unsafe(var111, var113, var114, var115, var116);
2201 var110 = var112;
2202 varonce109 = var110;
2203 }
2204 {
2205 nitc___nitc__AbstractCompilerVisitor___add(var_v, var110); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2206 }
2207 {
2208 { /* Inline parser_nodes$AOnceExpr$n_expr (self) on <self:AOnceExpr> */
2209 var119 = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
2210 if (unlikely(var119 == NULL)) {
2211 if(catchStack.cursor >= 0){
2212 longjmp(catchStack.envs[catchStack.cursor], 1);
2213 }
2214 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2215 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2095);
2216 fatal_exit(1);
2217 }
2218 var117 = var119;
2219 RET_LABEL118:(void)0;
2220 }
2221 }
2222 {
2223 var120 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var117, var_mtype);
2224 }
2225 var_i = var120;
2226 if (unlikely(varonce121==NULL)) {
2227 var122 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
2228 if (likely(varonce123!=NULL)) {
2229 var124 = varonce123;
2230 } else {
2231 var125 = " = ";
2232 var127 = (val*)(3l<<2|1);
2233 var128 = (val*)(3l<<2|1);
2234 var129 = (val*)((long)(0)<<2|3);
2235 var130 = (val*)((long)(0)<<2|3);
2236 var126 = core__flat___CString___to_s_unsafe(var125, var127, var128, var129, var130);
2237 var124 = var126;
2238 varonce123 = var124;
2239 }
2240 ((struct instance_core__NativeArray*)var122)->values[1]=var124;
2241 if (likely(varonce131!=NULL)) {
2242 var132 = varonce131;
2243 } else {
2244 var133 = ";";
2245 var135 = (val*)(1l<<2|1);
2246 var136 = (val*)(1l<<2|1);
2247 var137 = (val*)((long)(0)<<2|3);
2248 var138 = (val*)((long)(0)<<2|3);
2249 var134 = core__flat___CString___to_s_unsafe(var133, var135, var136, var137, var138);
2250 var132 = var134;
2251 varonce131 = var132;
2252 }
2253 ((struct instance_core__NativeArray*)var122)->values[3]=var132;
2254 } else {
2255 var122 = varonce121;
2256 varonce121 = NULL;
2257 }
2258 {
2259 var139 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2260 }
2261 ((struct instance_core__NativeArray*)var122)->values[0]=var139;
2262 {
2263 var140 = ((val*(*)(val* self))(var_i->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i); /* to_s on <var_i:RuntimeVariable>*/
2264 }
2265 ((struct instance_core__NativeArray*)var122)->values[2]=var140;
2266 {
2267 var141 = ((val*(*)(val* self))(var122->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var122); /* native_to_s on <var122:NativeArray[String]>*/
2268 }
2269 varonce121 = var122;
2270 {
2271 nitc___nitc__AbstractCompilerVisitor___add(var_v, var141); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2272 }
2273 if (unlikely(varonce142==NULL)) {
2274 var143 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
2275 if (likely(varonce144!=NULL)) {
2276 var145 = varonce144;
2277 } else {
2278 var146 = " = ";
2279 var148 = (val*)(3l<<2|1);
2280 var149 = (val*)(3l<<2|1);
2281 var150 = (val*)((long)(0)<<2|3);
2282 var151 = (val*)((long)(0)<<2|3);
2283 var147 = core__flat___CString___to_s_unsafe(var146, var148, var149, var150, var151);
2284 var145 = var147;
2285 varonce144 = var145;
2286 }
2287 ((struct instance_core__NativeArray*)var143)->values[1]=var145;
2288 if (likely(varonce152!=NULL)) {
2289 var153 = varonce152;
2290 } else {
2291 var154 = ";";
2292 var156 = (val*)(1l<<2|1);
2293 var157 = (val*)(1l<<2|1);
2294 var158 = (val*)((long)(0)<<2|3);
2295 var159 = (val*)((long)(0)<<2|3);
2296 var155 = core__flat___CString___to_s_unsafe(var154, var156, var157, var158, var159);
2297 var153 = var155;
2298 varonce152 = var153;
2299 }
2300 ((struct instance_core__NativeArray*)var143)->values[3]=var153;
2301 } else {
2302 var143 = varonce142;
2303 varonce142 = NULL;
2304 }
2305 ((struct instance_core__NativeArray*)var143)->values[0]=var_name;
2306 {
2307 var160 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2308 }
2309 ((struct instance_core__NativeArray*)var143)->values[2]=var160;
2310 {
2311 var161 = ((val*(*)(val* self))(var143->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var143); /* native_to_s on <var143:NativeArray[String]>*/
2312 }
2313 varonce142 = var143;
2314 {
2315 nitc___nitc__AbstractCompilerVisitor___add(var_v, var161); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2316 }
2317 if (unlikely(varonce162==NULL)) {
2318 var163 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
2319 if (likely(varonce164!=NULL)) {
2320 var165 = varonce164;
2321 } else {
2322 var166 = " = 1;";
2323 var168 = (val*)(5l<<2|1);
2324 var169 = (val*)(5l<<2|1);
2325 var170 = (val*)((long)(0)<<2|3);
2326 var171 = (val*)((long)(0)<<2|3);
2327 var167 = core__flat___CString___to_s_unsafe(var166, var168, var169, var170, var171);
2328 var165 = var167;
2329 varonce164 = var165;
2330 }
2331 ((struct instance_core__NativeArray*)var163)->values[1]=var165;
2332 } else {
2333 var163 = varonce162;
2334 varonce162 = NULL;
2335 }
2336 ((struct instance_core__NativeArray*)var163)->values[0]=var_guard;
2337 {
2338 var172 = ((val*(*)(val* self))(var163->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var163); /* native_to_s on <var163:NativeArray[String]>*/
2339 }
2340 varonce162 = var163;
2341 {
2342 nitc___nitc__AbstractCompilerVisitor___add(var_v, var172); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2343 }
2344 if (likely(varonce173!=NULL)) {
2345 var174 = varonce173;
2346 } else {
2347 var175 = "}";
2348 var177 = (val*)(1l<<2|1);
2349 var178 = (val*)(1l<<2|1);
2350 var179 = (val*)((long)(0)<<2|3);
2351 var180 = (val*)((long)(0)<<2|3);
2352 var176 = core__flat___CString___to_s_unsafe(var175, var177, var178, var179, var180);
2353 var174 = var176;
2354 varonce173 = var174;
2355 }
2356 {
2357 nitc___nitc__AbstractCompilerVisitor___add(var_v, var174); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2358 }
2359 var = var_res;
2360 goto RET_LABEL;
2361 RET_LABEL:;
2362 return var;
2363 }
2364 /* method abstract_compiler$ASendExpr$expr for (self: ASendExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2365 val* nitc__abstract_compiler___ASendExpr___AExpr__expr(val* self, val* p0) {
2366 val* var /* : nullable RuntimeVariable */;
2367 val* var_v /* var v: AbstractCompilerVisitor */;
2368 val* var1 /* : AExpr */;
2369 val* var3 /* : AExpr */;
2370 val* var4 /* : RuntimeVariable */;
2371 val* var_recv /* var recv: RuntimeVariable */;
2372 val* var5 /* : nullable CallSite */;
2373 val* var7 /* : nullable CallSite */;
2374 val* var_callsite /* var callsite: CallSite */;
2375 short int var8 /* : Bool */;
2376 short int var10 /* : Bool */;
2377 val* var11 /* : MMethodDef */;
2378 val* var13 /* : MMethodDef */;
2379 val* var14 /* : nullable SignatureMap */;
2380 val* var16 /* : nullable SignatureMap */;
2381 val* var17 /* : Array[AExpr] */;
2382 val* var18 /* : Array[RuntimeVariable] */;
2383 val* var_args /* var args: Array[RuntimeVariable] */;
2384 val* var19 /* : nullable RuntimeVariable */;
2385 var_v = p0;
2386 {
2387 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:ASendExpr> */
2388 var3 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendExpr> */
2389 if (unlikely(var3 == NULL)) {
2390 if(catchStack.cursor >= 0){
2391 longjmp(catchStack.envs[catchStack.cursor], 1);
2392 }
2393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2394 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
2395 fatal_exit(1);
2396 }
2397 var1 = var3;
2398 RET_LABEL2:(void)0;
2399 }
2400 }
2401 {
2402 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
2403 }
2404 var_recv = var4;
2405 {
2406 { /* Inline typing$ASendExpr$callsite (self) on <self:ASendExpr> */
2407 var7 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendExpr> */
2408 var5 = var7;
2409 RET_LABEL6:(void)0;
2410 }
2411 }
2412 if (unlikely(var5 == NULL)) {
2413 if(catchStack.cursor >= 0){
2414 longjmp(catchStack.envs[catchStack.cursor], 1);
2415 }
2416 PRINT_ERROR("Runtime error: %s", "Cast failed");
2417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3932);
2418 fatal_exit(1);
2419 }
2420 var_callsite = var5;
2421 {
2422 { /* Inline model_base$MEntity$is_broken (var_callsite) on <var_callsite:CallSite> */
2423 var10 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:CallSite> */
2424 var8 = var10;
2425 RET_LABEL9:(void)0;
2426 }
2427 }
2428 if (var8){
2429 var = ((val*)NULL);
2430 goto RET_LABEL;
2431 } else {
2432 }
2433 {
2434 { /* Inline typing$CallSite$mpropdef (var_callsite) on <var_callsite:CallSite> */
2435 var13 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:CallSite> */
2436 if (unlikely(var13 == NULL)) {
2437 if(catchStack.cursor >= 0){
2438 longjmp(catchStack.envs[catchStack.cursor], 1);
2439 }
2440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
2441 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 659);
2442 fatal_exit(1);
2443 }
2444 var11 = var13;
2445 RET_LABEL12:(void)0;
2446 }
2447 }
2448 {
2449 { /* Inline typing$CallSite$signaturemap (var_callsite) on <var_callsite:CallSite> */
2450 var16 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:CallSite> */
2451 var14 = var16;
2452 RET_LABEL15:(void)0;
2453 }
2454 }
2455 {
2456 var17 = nitc__typing___ASendExpr___raw_arguments(self);
2457 }
2458 {
2459 var18 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var11, var14, var_recv, var17);
2460 }
2461 var_args = var18;
2462 {
2463 var19 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
2464 }
2465 var = var19;
2466 goto RET_LABEL;
2467 RET_LABEL:;
2468 return var;
2469 }
2470 /* method abstract_compiler$ASendReassignFormExpr$stmt for (self: ASendReassignFormExpr, AbstractCompilerVisitor) */
2471 void nitc__abstract_compiler___ASendReassignFormExpr___AExpr__stmt(val* self, val* p0) {
2472 val* var_v /* var v: AbstractCompilerVisitor */;
2473 val* var /* : AExpr */;
2474 val* var2 /* : AExpr */;
2475 val* var3 /* : RuntimeVariable */;
2476 val* var_recv /* var recv: RuntimeVariable */;
2477 val* var4 /* : nullable CallSite */;
2478 val* var6 /* : nullable CallSite */;
2479 val* var_callsite /* var callsite: CallSite */;
2480 short int var7 /* : Bool */;
2481 short int var9 /* : Bool */;
2482 val* var10 /* : MMethodDef */;
2483 val* var12 /* : MMethodDef */;
2484 val* var13 /* : nullable SignatureMap */;
2485 val* var15 /* : nullable SignatureMap */;
2486 val* var16 /* : Array[AExpr] */;
2487 val* var17 /* : Array[RuntimeVariable] */;
2488 val* var_args /* var args: Array[RuntimeVariable] */;
2489 val* var18 /* : AExpr */;
2490 val* var20 /* : AExpr */;
2491 val* var21 /* : RuntimeVariable */;
2492 val* var_value /* var value: RuntimeVariable */;
2493 val* var22 /* : nullable RuntimeVariable */;
2494 val* var_left /* var left: nullable RuntimeVariable */;
2495 short int var23 /* : Bool */;
2496 short int var24 /* : Bool */;
2497 val* var_other /* var other: nullable Object */;
2498 short int var26 /* : Bool */;
2499 short int var27 /* : Bool */;
2500 val* var28 /* : nullable CallSite */;
2501 val* var30 /* : nullable CallSite */;
2502 val* var31 /* : Array[RuntimeVariable] */;
2503 val* var_ /* var : Array[RuntimeVariable] */;
2504 val* var32 /* : nullable RuntimeVariable */;
2505 val* var_res /* var res: nullable RuntimeVariable */;
2506 short int var33 /* : Bool */;
2507 short int var34 /* : Bool */;
2508 short int var36 /* : Bool */;
2509 short int var37 /* : Bool */;
2510 val* var38 /* : nullable CallSite */;
2511 val* var40 /* : nullable CallSite */;
2512 val* var41 /* : nullable RuntimeVariable */;
2513 var_v = p0;
2514 {
2515 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:ASendReassignFormExpr> */
2516 var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
2517 if (unlikely(var2 == NULL)) {
2518 if(catchStack.cursor >= 0){
2519 longjmp(catchStack.envs[catchStack.cursor], 1);
2520 }
2521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2522 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
2523 fatal_exit(1);
2524 }
2525 var = var2;
2526 RET_LABEL1:(void)0;
2527 }
2528 }
2529 {
2530 var3 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var, ((val*)NULL));
2531 }
2532 var_recv = var3;
2533 {
2534 { /* Inline typing$ASendExpr$callsite (self) on <self:ASendReassignFormExpr> */
2535 var6 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendReassignFormExpr> */
2536 var4 = var6;
2537 RET_LABEL5:(void)0;
2538 }
2539 }
2540 if (unlikely(var4 == NULL)) {
2541 if(catchStack.cursor >= 0){
2542 longjmp(catchStack.envs[catchStack.cursor], 1);
2543 }
2544 PRINT_ERROR("Runtime error: %s", "Cast failed");
2545 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3943);
2546 fatal_exit(1);
2547 }
2548 var_callsite = var4;
2549 {
2550 { /* Inline model_base$MEntity$is_broken (var_callsite) on <var_callsite:CallSite> */
2551 var9 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:CallSite> */
2552 var7 = var9;
2553 RET_LABEL8:(void)0;
2554 }
2555 }
2556 if (var7){
2557 goto RET_LABEL;
2558 } else {
2559 }
2560 {
2561 { /* Inline typing$CallSite$mpropdef (var_callsite) on <var_callsite:CallSite> */
2562 var12 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:CallSite> */
2563 if (unlikely(var12 == NULL)) {
2564 if(catchStack.cursor >= 0){
2565 longjmp(catchStack.envs[catchStack.cursor], 1);
2566 }
2567 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
2568 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 659);
2569 fatal_exit(1);
2570 }
2571 var10 = var12;
2572 RET_LABEL11:(void)0;
2573 }
2574 }
2575 {
2576 { /* Inline typing$CallSite$signaturemap (var_callsite) on <var_callsite:CallSite> */
2577 var15 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:CallSite> */
2578 var13 = var15;
2579 RET_LABEL14:(void)0;
2580 }
2581 }
2582 {
2583 var16 = nitc__typing___ASendExpr___raw_arguments(self);
2584 }
2585 {
2586 var17 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var10, var13, var_recv, var16);
2587 }
2588 var_args = var17;
2589 {
2590 { /* Inline parser_nodes$AReassignFormExpr$n_value (self) on <self:ASendReassignFormExpr> */
2591 var20 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ASendReassignFormExpr> */
2592 if (unlikely(var20 == NULL)) {
2593 if(catchStack.cursor >= 0){
2594 longjmp(catchStack.envs[catchStack.cursor], 1);
2595 }
2596 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2597 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2084);
2598 fatal_exit(1);
2599 }
2600 var18 = var20;
2601 RET_LABEL19:(void)0;
2602 }
2603 }
2604 {
2605 var21 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var18, ((val*)NULL));
2606 }
2607 var_value = var21;
2608 {
2609 var22 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
2610 }
2611 var_left = var22;
2612 if (var_left == NULL) {
2613 var23 = 0; /* is null */
2614 } else {
2615 var23 = 1; /* arg is null and recv is not */
2616 }
2617 if (0) {
2618 { /* Inline kernel$Object$!= (var_left,((val*)NULL)) on <var_left:nullable RuntimeVariable> */
2619 var_other = ((val*)NULL);
2620 {
2621 var26 = ((short int(*)(val* self, val* p0))(var_left->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_left, var_other); /* == on <var_left:nullable RuntimeVariable(RuntimeVariable)>*/
2622 }
2623 var27 = !var26;
2624 var24 = var27;
2625 goto RET_LABEL25;
2626 RET_LABEL25:(void)0;
2627 }
2628 var23 = var24;
2629 }
2630 if (unlikely(!var23)) {
2631 if(catchStack.cursor >= 0){
2632 longjmp(catchStack.envs[catchStack.cursor], 1);
2633 }
2634 PRINT_ERROR("Runtime error: %s", "Assert failed");
2635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3950);
2636 fatal_exit(1);
2637 }
2638 {
2639 { /* Inline typing$AReassignFormExpr$reassign_callsite (self) on <self:ASendReassignFormExpr> */
2640 var30 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:ASendReassignFormExpr> */
2641 var28 = var30;
2642 RET_LABEL29:(void)0;
2643 }
2644 }
2645 if (unlikely(var28 == NULL)) {
2646 if(catchStack.cursor >= 0){
2647 longjmp(catchStack.envs[catchStack.cursor], 1);
2648 }
2649 PRINT_ERROR("Runtime error: %s", "Cast failed");
2650 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3952);
2651 fatal_exit(1);
2652 }
2653 var31 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
2654 {
2655 core___core__Array___with_capacity(var31, 2l); /* Direct call array$Array$with_capacity on <var31:Array[RuntimeVariable]>*/
2656 }
2657 var_ = var31;
2658 {
2659 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_left); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
2660 }
2661 {
2662 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_value); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
2663 }
2664 {
2665 var32 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var28, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
2666 }
2667 var_res = var32;
2668 if (var_res == NULL) {
2669 var33 = 0; /* is null */
2670 } else {
2671 var33 = 1; /* arg is null and recv is not */
2672 }
2673 if (0) {
2674 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
2675 var_other = ((val*)NULL);
2676 {
2677 var36 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
2678 }
2679 var37 = !var36;
2680 var34 = var37;
2681 goto RET_LABEL35;
2682 RET_LABEL35:(void)0;
2683 }
2684 var33 = var34;
2685 }
2686 if (unlikely(!var33)) {
2687 if(catchStack.cursor >= 0){
2688 longjmp(catchStack.envs[catchStack.cursor], 1);
2689 }
2690 PRINT_ERROR("Runtime error: %s", "Assert failed");
2691 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3953);
2692 fatal_exit(1);
2693 }
2694 {
2695 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var_res); /* Direct call array$Array$add on <var_args:Array[RuntimeVariable]>*/
2696 }
2697 {
2698 { /* Inline typing$ASendReassignFormExpr$write_callsite (self) on <self:ASendReassignFormExpr> */
2699 var40 = self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on <self:ASendReassignFormExpr> */
2700 var38 = var40;
2701 RET_LABEL39:(void)0;
2702 }
2703 }
2704 if (unlikely(var38 == NULL)) {
2705 if(catchStack.cursor >= 0){
2706 longjmp(catchStack.envs[catchStack.cursor], 1);
2707 }
2708 PRINT_ERROR("Runtime error: %s", "Cast failed");
2709 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3956);
2710 fatal_exit(1);
2711 }
2712 {
2713 var41 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var38, var_args); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
2714 }
2715 RET_LABEL:;
2716 }
2717 /* method abstract_compiler$ASuperExpr$expr for (self: ASuperExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2718 val* nitc__abstract_compiler___ASuperExpr___AExpr__expr(val* self, val* p0) {
2719 val* var /* : nullable RuntimeVariable */;
2720 val* var_v /* var v: AbstractCompilerVisitor */;
2721 val* var1 /* : nullable StaticFrame */;
2722 val* var3 /* : nullable StaticFrame */;
2723 val* var_frame /* var frame: StaticFrame */;
2724 val* var4 /* : Array[RuntimeVariable] */;
2725 val* var6 /* : Array[RuntimeVariable] */;
2726 val* var7 /* : nullable Object */;
2727 val* var_recv /* var recv: RuntimeVariable */;
2728 val* var8 /* : nullable CallSite */;
2729 val* var10 /* : nullable CallSite */;
2730 val* var_callsite /* var callsite: nullable CallSite */;
2731 short int var11 /* : Bool */;
2732 short int var12 /* : Bool */;
2733 val* var_other /* var other: nullable Object */;
2734 short int var14 /* : Bool */;
2735 short int var15 /* : Bool */;
2736 short int var16 /* : Bool */;
2737 short int var18 /* : Bool */;
2738 val* var19 /* : AExprs */;
2739 val* var21 /* : AExprs */;
2740 val* var22 /* : ANodes[AExpr] */;
2741 val* var24 /* : ANodes[AExpr] */;
2742 short int var25 /* : Bool */;
2743 val* var26 /* : Array[RuntimeVariable] */;
2744 val* var_ /* var : Array[RuntimeVariable] */;
2745 val* var_args /* var args: nullable Object */;
2746 long var_i /* var i: Int */;
2747 val* var27 /* : MSignature */;
2748 val* var29 /* : MSignature */;
2749 long var30 /* : Int */;
2750 long var_31 /* var : Int */;
2751 short int var32 /* : Bool */;
2752 short int var34 /* : Bool */;
2753 int cltype;
2754 int idtype;
2755 const char* var_class_name;
2756 short int var35 /* : Bool */;
2757 val* var36 /* : Array[RuntimeVariable] */;
2758 val* var38 /* : Array[RuntimeVariable] */;
2759 long var39 /* : Int */;
2760 short int var41 /* : Bool */;
2761 int cltype42;
2762 int idtype43;
2763 const char* var_class_name44;
2764 long var45 /* : Int */;
2765 val* var46 /* : nullable Object */;
2766 long var47 /* : Int */;
2767 val* var48 /* : MMethodDef */;
2768 val* var50 /* : MMethodDef */;
2769 val* var51 /* : nullable SignatureMap */;
2770 val* var53 /* : nullable SignatureMap */;
2771 val* var54 /* : AExprs */;
2772 val* var56 /* : AExprs */;
2773 val* var57 /* : ANodes[AExpr] */;
2774 val* var59 /* : ANodes[AExpr] */;
2775 val* var60 /* : Array[RuntimeVariable] */;
2776 val* var61 /* : nullable RuntimeVariable */;
2777 val* var_res /* var res: nullable RuntimeVariable */;
2778 val* var62 /* : nullable MMethodDef */;
2779 val* var64 /* : nullable MMethodDef */;
2780 val* var_mpropdef /* var mpropdef: MMethodDef */;
2781 val* var65 /* : AExprs */;
2782 val* var67 /* : AExprs */;
2783 val* var68 /* : ANodes[AExpr] */;
2784 val* var70 /* : ANodes[AExpr] */;
2785 short int var71 /* : Bool */;
2786 val* var72 /* : Array[RuntimeVariable] */;
2787 val* var74 /* : Array[RuntimeVariable] */;
2788 val* var_args75 /* var args: nullable Object */;
2789 val* var76 /* : nullable SignatureMap */;
2790 val* var78 /* : nullable SignatureMap */;
2791 val* var79 /* : AExprs */;
2792 val* var81 /* : AExprs */;
2793 val* var82 /* : ANodes[AExpr] */;
2794 val* var84 /* : ANodes[AExpr] */;
2795 val* var85 /* : Array[RuntimeVariable] */;
2796 val* var86 /* : MType */;
2797 val* var88 /* : MType */;
2798 short int var89 /* : Bool */;
2799 int cltype90;
2800 int idtype91;
2801 const char* var_class_name92;
2802 val* var93 /* : nullable RuntimeVariable */;
2803 var_v = p0;
2804 {
2805 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (var_v) on <var_v:AbstractCompilerVisitor> */
2806 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
2807 var1 = var3;
2808 RET_LABEL2:(void)0;
2809 }
2810 }
2811 if (unlikely(var1 == NULL)) {
2812 if(catchStack.cursor >= 0){
2813 longjmp(catchStack.envs[catchStack.cursor], 1);
2814 }
2815 PRINT_ERROR("Runtime error: %s", "Cast failed");
2816 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3963);
2817 fatal_exit(1);
2818 }
2819 var_frame = var1;
2820 {
2821 { /* Inline abstract_compiler$StaticFrame$arguments (var_frame) on <var_frame:StaticFrame> */
2822 var6 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var_frame:StaticFrame> */
2823 if (unlikely(var6 == NULL)) {
2824 if(catchStack.cursor >= 0){
2825 longjmp(catchStack.envs[catchStack.cursor], 1);
2826 }
2827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2828 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
2829 fatal_exit(1);
2830 }
2831 var4 = var6;
2832 RET_LABEL5:(void)0;
2833 }
2834 }
2835 {
2836 var7 = core___core__SequenceRead___Collection__first(var4);
2837 }
2838 var_recv = var7;
2839 {
2840 { /* Inline typing$ASuperExpr$callsite (self) on <self:ASuperExpr> */
2841 var10 = self->attrs[COLOR_nitc__typing__ASuperExpr___callsite].val; /* _callsite on <self:ASuperExpr> */
2842 var8 = var10;
2843 RET_LABEL9:(void)0;
2844 }
2845 }
2846 var_callsite = var8;
2847 if (var_callsite == NULL) {
2848 var11 = 0; /* is null */
2849 } else {
2850 var11 = 1; /* arg is null and recv is not */
2851 }
2852 if (0) {
2853 { /* Inline kernel$Object$!= (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
2854 var_other = ((val*)NULL);
2855 {
2856 var14 = ((short int(*)(val* self, val* p0))(var_callsite->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_callsite, var_other); /* == on <var_callsite:nullable CallSite(CallSite)>*/
2857 }
2858 var15 = !var14;
2859 var12 = var15;
2860 goto RET_LABEL13;
2861 RET_LABEL13:(void)0;
2862 }
2863 var11 = var12;
2864 }
2865 if (var11){
2866 {
2867 { /* Inline model_base$MEntity$is_broken (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
2868 var18 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:nullable CallSite(CallSite)> */
2869 var16 = var18;
2870 RET_LABEL17:(void)0;
2871 }
2872 }
2873 if (var16){
2874 var = ((val*)NULL);
2875 goto RET_LABEL;
2876 } else {
2877 }
2878 {
2879 { /* Inline parser_nodes$ASuperExpr$n_args (self) on <self:ASuperExpr> */
2880 var21 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
2881 if (unlikely(var21 == NULL)) {
2882 if(catchStack.cursor >= 0){
2883 longjmp(catchStack.envs[catchStack.cursor], 1);
2884 }
2885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2886 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2429);
2887 fatal_exit(1);
2888 }
2889 var19 = var21;
2890 RET_LABEL20:(void)0;
2891 }
2892 }
2893 {
2894 { /* Inline parser_nodes$AExprs$n_exprs (var19) on <var19:AExprs> */
2895 var24 = var19->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var19:AExprs> */
2896 if (unlikely(var24 == NULL)) {
2897 if(catchStack.cursor >= 0){
2898 longjmp(catchStack.envs[catchStack.cursor], 1);
2899 }
2900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2901 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
2902 fatal_exit(1);
2903 }
2904 var22 = var24;
2905 RET_LABEL23:(void)0;
2906 }
2907 }
2908 {
2909 var25 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var22);
2910 }
2911 if (var25){
2912 var26 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
2913 {
2914 core___core__Array___with_capacity(var26, 1l); /* Direct call array$Array$with_capacity on <var26:Array[RuntimeVariable]>*/
2915 }
2916 var_ = var26;
2917 {
2918 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
2919 }
2920 var_args = var_;
2921 var_i = 0l;
2922 {
2923 { /* Inline typing$CallSite$msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
2924 var29 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
2925 if (unlikely(var29 == NULL)) {
2926 if(catchStack.cursor >= 0){
2927 longjmp(catchStack.envs[catchStack.cursor], 1);
2928 }
2929 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
2930 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
2931 fatal_exit(1);
2932 }
2933 var27 = var29;
2934 RET_LABEL28:(void)0;
2935 }
2936 }
2937 {
2938 var30 = nitc___nitc__MSignature___arity(var27);
2939 }
2940 var_31 = var30;
2941 for(;;) {
2942 {
2943 { /* Inline kernel$Int$< (var_i,var_31) on <var_i:Int> */
2944 /* Covariant cast for argument 0 (i) <var_31:Int> isa OTHER */
2945 /* <var_31:Int> isa OTHER */
2946 var34 = 1; /* easy <var_31:Int> isa OTHER*/
2947 if (unlikely(!var34)) {
2948 var_class_name = type_core__Int.name;
2949 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2950 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2951 fatal_exit(1);
2952 }
2953 var35 = var_i < var_31;
2954 var32 = var35;
2955 goto RET_LABEL33;
2956 RET_LABEL33:(void)0;
2957 }
2958 }
2959 if (var32){
2960 } else {
2961 goto BREAK_label;
2962 }
2963 {
2964 { /* Inline abstract_compiler$StaticFrame$arguments (var_frame) on <var_frame:StaticFrame> */
2965 var38 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var_frame:StaticFrame> */
2966 if (unlikely(var38 == NULL)) {
2967 if(catchStack.cursor >= 0){
2968 longjmp(catchStack.envs[catchStack.cursor], 1);
2969 }
2970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2971 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
2972 fatal_exit(1);
2973 }
2974 var36 = var38;
2975 RET_LABEL37:(void)0;
2976 }
2977 }
2978 {
2979 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
2980 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2981 /* <1l:Int> isa OTHER */
2982 var41 = 1; /* easy <1l:Int> isa OTHER*/
2983 if (unlikely(!var41)) {
2984 var_class_name44 = type_core__Int.name;
2985 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
2986 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2987 fatal_exit(1);
2988 }
2989 var45 = var_i + 1l;
2990 var39 = var45;
2991 goto RET_LABEL40;
2992 RET_LABEL40:(void)0;
2993 }
2994 }
2995 {
2996 var46 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var36, var39);
2997 }
2998 {
2999 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var46); /* Direct call array$Array$add on <var_args:nullable Object(Array[RuntimeVariable])>*/
3000 }
3001 {
3002 var47 = core___core__Int___Discrete__successor(var_i, 1l);
3003 }
3004 var_i = var47;
3005 }
3006 BREAK_label: (void)0;
3007 } else {
3008 {
3009 { /* Inline typing$CallSite$mpropdef (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
3010 var50 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:nullable CallSite(CallSite)> */
3011 if (unlikely(var50 == NULL)) {
3012 if(catchStack.cursor >= 0){
3013 longjmp(catchStack.envs[catchStack.cursor], 1);
3014 }
3015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
3016 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 659);
3017 fatal_exit(1);
3018 }
3019 var48 = var50;
3020 RET_LABEL49:(void)0;
3021 }
3022 }
3023 {
3024 { /* Inline typing$CallSite$signaturemap (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
3025 var53 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:nullable CallSite(CallSite)> */
3026 var51 = var53;
3027 RET_LABEL52:(void)0;
3028 }
3029 }
3030 {
3031 { /* Inline parser_nodes$ASuperExpr$n_args (self) on <self:ASuperExpr> */
3032 var56 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
3033 if (unlikely(var56 == NULL)) {
3034 if(catchStack.cursor >= 0){
3035 longjmp(catchStack.envs[catchStack.cursor], 1);
3036 }
3037 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3038 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2429);
3039 fatal_exit(1);
3040 }
3041 var54 = var56;
3042 RET_LABEL55:(void)0;
3043 }
3044 }
3045 {
3046 { /* Inline parser_nodes$AExprs$n_exprs (var54) on <var54:AExprs> */
3047 var59 = var54->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var54:AExprs> */
3048 if (unlikely(var59 == NULL)) {
3049 if(catchStack.cursor >= 0){
3050 longjmp(catchStack.envs[catchStack.cursor], 1);
3051 }
3052 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
3053 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
3054 fatal_exit(1);
3055 }
3056 var57 = var59;
3057 RET_LABEL58:(void)0;
3058 }
3059 }
3060 {
3061 var60 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var48, var51, var_recv, var57);
3062 }
3063 var_args = var60;
3064 }
3065 {
3066 var61 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
3067 }
3068 var_res = var61;
3069 var = var_res;
3070 goto RET_LABEL;
3071 } else {
3072 }
3073 {
3074 { /* Inline typing$ASuperExpr$mpropdef (self) on <self:ASuperExpr> */
3075 var64 = self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val; /* _mpropdef on <self:ASuperExpr> */
3076 var62 = var64;
3077 RET_LABEL63:(void)0;
3078 }
3079 }
3080 if (unlikely(var62 == NULL)) {
3081 if(catchStack.cursor >= 0){
3082 longjmp(catchStack.envs[catchStack.cursor], 1);
3083 }
3084 PRINT_ERROR("Runtime error: %s", "Cast failed");
3085 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3986);
3086 fatal_exit(1);
3087 }
3088 var_mpropdef = var62;
3089 {
3090 { /* Inline parser_nodes$ASuperExpr$n_args (self) on <self:ASuperExpr> */
3091 var67 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
3092 if (unlikely(var67 == NULL)) {
3093 if(catchStack.cursor >= 0){
3094 longjmp(catchStack.envs[catchStack.cursor], 1);
3095 }
3096 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3097 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2429);
3098 fatal_exit(1);
3099 }
3100 var65 = var67;
3101 RET_LABEL66:(void)0;
3102 }
3103 }
3104 {
3105 { /* Inline parser_nodes$AExprs$n_exprs (var65) on <var65:AExprs> */
3106 var70 = var65->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var65:AExprs> */
3107 if (unlikely(var70 == NULL)) {
3108 if(catchStack.cursor >= 0){
3109 longjmp(catchStack.envs[catchStack.cursor], 1);
3110 }
3111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
3112 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
3113 fatal_exit(1);
3114 }
3115 var68 = var70;
3116 RET_LABEL69:(void)0;
3117 }
3118 }
3119 {
3120 var71 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var68);
3121 }
3122 if (var71){
3123 {
3124 { /* Inline abstract_compiler$StaticFrame$arguments (var_frame) on <var_frame:StaticFrame> */
3125 var74 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var_frame:StaticFrame> */
3126 if (unlikely(var74 == NULL)) {
3127 if(catchStack.cursor >= 0){
3128 longjmp(catchStack.envs[catchStack.cursor], 1);
3129 }
3130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3131 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
3132 fatal_exit(1);
3133 }
3134 var72 = var74;
3135 RET_LABEL73:(void)0;
3136 }
3137 }
3138 var_args75 = var72;
3139 } else {
3140 {
3141 { /* Inline typing$ASuperExpr$signaturemap (self) on <self:ASuperExpr> */
3142 var78 = self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val; /* _signaturemap on <self:ASuperExpr> */
3143 var76 = var78;
3144 RET_LABEL77:(void)0;
3145 }
3146 }
3147 {
3148 { /* Inline parser_nodes$ASuperExpr$n_args (self) on <self:ASuperExpr> */
3149 var81 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
3150 if (unlikely(var81 == NULL)) {
3151 if(catchStack.cursor >= 0){
3152 longjmp(catchStack.envs[catchStack.cursor], 1);
3153 }
3154 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3155 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2429);
3156 fatal_exit(1);
3157 }
3158 var79 = var81;
3159 RET_LABEL80:(void)0;
3160 }
3161 }
3162 {
3163 { /* Inline parser_nodes$AExprs$n_exprs (var79) on <var79:AExprs> */
3164 var84 = var79->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var79:AExprs> */
3165 if (unlikely(var84 == NULL)) {
3166 if(catchStack.cursor >= 0){
3167 longjmp(catchStack.envs[catchStack.cursor], 1);
3168 }
3169 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
3170 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
3171 fatal_exit(1);
3172 }
3173 var82 = var84;
3174 RET_LABEL83:(void)0;
3175 }
3176 }
3177 {
3178 var85 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var_mpropdef, var76, var_recv, var82);
3179 }
3180 var_args75 = var85;
3181 }
3182 {
3183 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_recv) on <var_recv:RuntimeVariable> */
3184 var88 = var_recv->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_recv:RuntimeVariable> */
3185 if (unlikely(var88 == NULL)) {
3186 if(catchStack.cursor >= 0){
3187 longjmp(catchStack.envs[catchStack.cursor], 1);
3188 }
3189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
3191 fatal_exit(1);
3192 }
3193 var86 = var88;
3194 RET_LABEL87:(void)0;
3195 }
3196 }
3197 /* <var86:MType> isa MClassType */
3198 cltype90 = type_nitc__MClassType.color;
3199 idtype91 = type_nitc__MClassType.id;
3200 if(cltype90 >= var86->type->table_size) {
3201 var89 = 0;
3202 } else {
3203 var89 = var86->type->type_table[cltype90] == idtype91;
3204 }
3205 if (unlikely(!var89)) {
3206 var_class_name92 = var86 == NULL ? "null" : var86->type->name;
3207 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name92);
3208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3996);
3209 fatal_exit(1);
3210 }
3211 {
3212 var93 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var86, var_args75);
3213 }
3214 var = var93;
3215 goto RET_LABEL;
3216 RET_LABEL:;
3217 return var;
3218 }
3219 /* method abstract_compiler$ANewExpr$expr for (self: ANewExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3220 val* nitc__abstract_compiler___ANewExpr___AExpr__expr(val* self, val* p0) {
3221 val* var /* : nullable RuntimeVariable */;
3222 val* var_v /* var v: AbstractCompilerVisitor */;
3223 val* var1 /* : nullable MClassType */;
3224 val* var3 /* : nullable MClassType */;
3225 val* var_mtype /* var mtype: nullable MClassType */;
3226 short int var4 /* : Bool */;
3227 short int var5 /* : Bool */;
3228 val* var_other /* var other: nullable Object */;
3229 short int var7 /* : Bool */;
3230 short int var8 /* : Bool */;
3231 val* var9 /* : MClass */;
3232 val* var11 /* : MClass */;
3233 val* var12 /* : String */;
3234 val* var14 /* : String */;
3235 static val* varonce;
3236 val* var15 /* : String */;
3237 char* var16 /* : CString */;
3238 val* var17 /* : String */;
3239 val* var18 /* : nullable Int */;
3240 val* var19 /* : nullable Int */;
3241 val* var20 /* : nullable Bool */;
3242 val* var21 /* : nullable Bool */;
3243 short int var22 /* : Bool */;
3244 val* var23 /* : AExprs */;
3245 val* var25 /* : AExprs */;
3246 val* var26 /* : ANodes[AExpr] */;
3247 val* var28 /* : ANodes[AExpr] */;
3248 long var29 /* : Int */;
3249 short int var30 /* : Bool */;
3250 short int var32 /* : Bool */;
3251 val* var33 /* : AExprs */;
3252 val* var35 /* : AExprs */;
3253 val* var36 /* : ANodes[AExpr] */;
3254 val* var38 /* : ANodes[AExpr] */;
3255 val* var39 /* : nullable Object */;
3256 val* var40 /* : RuntimeVariable */;
3257 val* var_l /* var l: RuntimeVariable */;
3258 short int var41 /* : Bool */;
3259 int cltype;
3260 int idtype;
3261 val* var42 /* : Array[MType] */;
3262 val* var44 /* : Array[MType] */;
3263 val* var45 /* : nullable Object */;
3264 val* var_elttype /* var elttype: MType */;
3265 val* var46 /* : RuntimeVariable */;
3266 val* var47 /* : nullable CallSite */;
3267 val* var49 /* : nullable CallSite */;
3268 val* var_callsite /* var callsite: nullable CallSite */;
3269 short int var50 /* : Bool */;
3270 short int var51 /* : Bool */;
3271 val* var_other53 /* var other: nullable Object */;
3272 short int var54 /* : Bool */;
3273 short int var56 /* : Bool */;
3274 val* var57 /* : RuntimeVariable */;
3275 short int var58 /* : Bool */;
3276 short int var60 /* : Bool */;
3277 short int var61 /* : Bool */;
3278 val* var62 /* : MMethod */;
3279 val* var64 /* : MMethod */;
3280 short int var65 /* : Bool */;
3281 short int var67 /* : Bool */;
3282 short int var_ /* var : Bool */;
3283 short int var68 /* : Bool */;
3284 short int var69 /* : Bool */;
3285 static val* varonce70;
3286 val* var71 /* : String */;
3287 char* var72 /* : CString */;
3288 val* var73 /* : String */;
3289 val* var74 /* : nullable Int */;
3290 val* var75 /* : nullable Int */;
3291 val* var76 /* : nullable Bool */;
3292 val* var77 /* : nullable Bool */;
3293 val* var78 /* : String */;
3294 val* var_name /* var name: String */;
3295 static val* varonce79;
3296 val* var80 /* : String */;
3297 char* var81 /* : CString */;
3298 val* var82 /* : String */;
3299 val* var83 /* : nullable Int */;
3300 val* var84 /* : nullable Int */;
3301 val* var85 /* : nullable Bool */;
3302 val* var86 /* : nullable Bool */;
3303 val* var87 /* : Text */;
3304 val* var88 /* : String */;
3305 val* var_guard /* var guard: String */;
3306 val* var90 /* : NativeArray[String] */;
3307 static val* varonce89;
3308 static val* varonce91;
3309 val* var92 /* : String */;
3310 char* var93 /* : CString */;
3311 val* var94 /* : String */;
3312 val* var95 /* : nullable Int */;
3313 val* var96 /* : nullable Int */;
3314 val* var97 /* : nullable Bool */;
3315 val* var98 /* : nullable Bool */;
3316 static val* varonce99;
3317 val* var100 /* : String */;
3318 char* var101 /* : CString */;
3319 val* var102 /* : String */;
3320 val* var103 /* : nullable Int */;
3321 val* var104 /* : nullable Int */;
3322 val* var105 /* : nullable Bool */;
3323 val* var106 /* : nullable Bool */;
3324 static val* varonce107;
3325 val* var108 /* : String */;
3326 char* var109 /* : CString */;
3327 val* var110 /* : String */;
3328 val* var111 /* : nullable Int */;
3329 val* var112 /* : nullable Int */;
3330 val* var113 /* : nullable Bool */;
3331 val* var114 /* : nullable Bool */;
3332 val* var115 /* : String */;
3333 val* var116 /* : String */;
3334 val* var118 /* : NativeArray[String] */;
3335 static val* varonce117;
3336 static val* varonce119;
3337 val* var120 /* : String */;
3338 char* var121 /* : CString */;
3339 val* var122 /* : String */;
3340 val* var123 /* : nullable Int */;
3341 val* var124 /* : nullable Int */;
3342 val* var125 /* : nullable Bool */;
3343 val* var126 /* : nullable Bool */;
3344 static val* varonce127;
3345 val* var128 /* : String */;
3346 char* var129 /* : CString */;
3347 val* var130 /* : String */;
3348 val* var131 /* : nullable Int */;
3349 val* var132 /* : nullable Int */;
3350 val* var133 /* : nullable Bool */;
3351 val* var134 /* : nullable Bool */;
3352 val* var135 /* : String */;
3353 val* var136 /* : RuntimeVariable */;
3354 val* var_recv /* var recv: nullable Object */;
3355 val* var138 /* : NativeArray[String] */;
3356 static val* varonce137;
3357 static val* varonce139;
3358 val* var140 /* : String */;
3359 char* var141 /* : CString */;
3360 val* var142 /* : String */;
3361 val* var143 /* : nullable Int */;
3362 val* var144 /* : nullable Int */;
3363 val* var145 /* : nullable Bool */;
3364 val* var146 /* : nullable Bool */;
3365 static val* varonce147;
3366 val* var148 /* : String */;
3367 char* var149 /* : CString */;
3368 val* var150 /* : String */;
3369 val* var151 /* : nullable Int */;
3370 val* var152 /* : nullable Int */;
3371 val* var153 /* : nullable Bool */;
3372 val* var154 /* : nullable Bool */;
3373 val* var155 /* : String */;
3374 val* var157 /* : NativeArray[String] */;
3375 static val* varonce156;
3376 static val* varonce158;
3377 val* var159 /* : String */;
3378 char* var160 /* : CString */;
3379 val* var161 /* : String */;
3380 val* var162 /* : nullable Int */;
3381 val* var163 /* : nullable Int */;
3382 val* var164 /* : nullable Bool */;
3383 val* var165 /* : nullable Bool */;
3384 static val* varonce166;
3385 val* var167 /* : String */;
3386 char* var168 /* : CString */;
3387 val* var169 /* : String */;
3388 val* var170 /* : nullable Int */;
3389 val* var171 /* : nullable Int */;
3390 val* var172 /* : nullable Bool */;
3391 val* var173 /* : nullable Bool */;
3392 val* var174 /* : String */;
3393 val* var175 /* : String */;
3394 static val* varonce176;
3395 val* var177 /* : String */;
3396 char* var178 /* : CString */;
3397 val* var179 /* : String */;
3398 val* var180 /* : nullable Int */;
3399 val* var181 /* : nullable Int */;
3400 val* var182 /* : nullable Bool */;
3401 val* var183 /* : nullable Bool */;
3402 val* var184 /* : RuntimeVariable */;
3403 val* var_i /* var i: RuntimeVariable */;
3404 val* var186 /* : NativeArray[String] */;
3405 static val* varonce185;
3406 static val* varonce187;
3407 val* var188 /* : String */;
3408 char* var189 /* : CString */;
3409 val* var190 /* : String */;
3410 val* var191 /* : nullable Int */;
3411 val* var192 /* : nullable Int */;
3412 val* var193 /* : nullable Bool */;
3413 val* var194 /* : nullable Bool */;
3414 static val* varonce195;
3415 val* var196 /* : String */;
3416 char* var197 /* : CString */;
3417 val* var198 /* : String */;
3418 val* var199 /* : nullable Int */;
3419 val* var200 /* : nullable Int */;
3420 val* var201 /* : nullable Bool */;
3421 val* var202 /* : nullable Bool */;
3422 val* var203 /* : String */;
3423 val* var204 /* : String */;
3424 val* var205 /* : String */;
3425 val* var207 /* : NativeArray[String] */;
3426 static val* varonce206;
3427 static val* varonce208;
3428 val* var209 /* : String */;
3429 char* var210 /* : CString */;
3430 val* var211 /* : String */;
3431 val* var212 /* : nullable Int */;
3432 val* var213 /* : nullable Int */;
3433 val* var214 /* : nullable Bool */;
3434 val* var215 /* : nullable Bool */;
3435 static val* varonce216;
3436 val* var217 /* : String */;
3437 char* var218 /* : CString */;
3438 val* var219 /* : String */;
3439 val* var220 /* : nullable Int */;
3440 val* var221 /* : nullable Int */;
3441 val* var222 /* : nullable Bool */;
3442 val* var223 /* : nullable Bool */;
3443 val* var224 /* : String */;
3444 val* var225 /* : String */;
3445 val* var227 /* : NativeArray[String] */;
3446 static val* varonce226;
3447 static val* varonce228;
3448 val* var229 /* : String */;
3449 char* var230 /* : CString */;
3450 val* var231 /* : String */;
3451 val* var232 /* : nullable Int */;
3452 val* var233 /* : nullable Int */;
3453 val* var234 /* : nullable Bool */;
3454 val* var235 /* : nullable Bool */;
3455 val* var236 /* : String */;
3456 static val* varonce237;
3457 val* var238 /* : String */;
3458 char* var239 /* : CString */;
3459 val* var240 /* : String */;
3460 val* var241 /* : nullable Int */;
3461 val* var242 /* : nullable Int */;
3462 val* var243 /* : nullable Bool */;
3463 val* var244 /* : nullable Bool */;
3464 val* var245 /* : RuntimeVariable */;
3465 val* var246 /* : MMethodDef */;
3466 val* var248 /* : MMethodDef */;
3467 val* var249 /* : nullable SignatureMap */;
3468 val* var251 /* : nullable SignatureMap */;
3469 val* var252 /* : AExprs */;
3470 val* var254 /* : AExprs */;
3471 val* var255 /* : ANodes[AExpr] */;
3472 val* var257 /* : ANodes[AExpr] */;
3473 val* var258 /* : Array[RuntimeVariable] */;
3474 val* var_args /* var args: Array[RuntimeVariable] */;
3475 val* var259 /* : nullable RuntimeVariable */;
3476 val* var_res2 /* var res2: nullable RuntimeVariable */;
3477 short int var260 /* : Bool */;
3478 short int var261 /* : Bool */;
3479 short int var263 /* : Bool */;
3480 short int var264 /* : Bool */;
3481 var_v = p0;
3482 {
3483 { /* Inline typing$ANewExpr$recvtype (self) on <self:ANewExpr> */
3484 var3 = self->attrs[COLOR_nitc__typing__ANewExpr___recvtype].val; /* _recvtype on <self:ANewExpr> */
3485 var1 = var3;
3486 RET_LABEL2:(void)0;
3487 }
3488 }
3489 var_mtype = var1;
3490 if (var_mtype == NULL) {
3491 var4 = 0; /* is null */
3492 } else {
3493 var4 = 1; /* arg is null and recv is not */
3494 }
3495 if (0) {
3496 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MClassType> */
3497 var_other = ((val*)NULL);
3498 {
3499 var7 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on <var_mtype:nullable MClassType(MClassType)>*/
3500 }
3501 var8 = !var7;
3502 var5 = var8;
3503 goto RET_LABEL6;
3504 RET_LABEL6:(void)0;
3505 }
3506 var4 = var5;
3507 }
3508 if (unlikely(!var4)) {
3509 if(catchStack.cursor >= 0){
3510 longjmp(catchStack.envs[catchStack.cursor], 1);
3511 }
3512 PRINT_ERROR("Runtime error: %s", "Assert failed");
3513 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4004);
3514 fatal_exit(1);
3515 }
3516 {
3517 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:nullable MClassType(MClassType)> */
3518 var11 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:nullable MClassType(MClassType)> */
3519 if (unlikely(var11 == NULL)) {
3520 if(catchStack.cursor >= 0){
3521 longjmp(catchStack.envs[catchStack.cursor], 1);
3522 }
3523 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
3524 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
3525 fatal_exit(1);
3526 }
3527 var9 = var11;
3528 RET_LABEL10:(void)0;
3529 }
3530 }
3531 {
3532 { /* Inline model$MClass$name (var9) on <var9:MClass> */
3533 var14 = var9->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var9:MClass> */
3534 if (unlikely(var14 == NULL)) {
3535 if(catchStack.cursor >= 0){
3536 longjmp(catchStack.envs[catchStack.cursor], 1);
3537 }
3538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
3540 fatal_exit(1);
3541 }
3542 var12 = var14;
3543 RET_LABEL13:(void)0;
3544 }
3545 }
3546 if (likely(varonce!=NULL)) {
3547 var15 = varonce;
3548 } else {
3549 var16 = "NativeArray";
3550 var18 = (val*)(11l<<2|1);
3551 var19 = (val*)(11l<<2|1);
3552 var20 = (val*)((long)(0)<<2|3);
3553 var21 = (val*)((long)(0)<<2|3);
3554 var17 = core__flat___CString___to_s_unsafe(var16, var18, var19, var20, var21);
3555 var15 = var17;
3556 varonce = var15;
3557 }
3558 {
3559 var22 = ((short int(*)(val* self, val* p0))(var12->class->vft[COLOR_core__kernel__Object___61d_61d]))(var12, var15); /* == on <var12:String>*/
3560 }
3561 if (var22){
3562 {
3563 { /* Inline parser_nodes$ANewExpr$n_args (self) on <self:ANewExpr> */
3564 var25 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
3565 if (unlikely(var25 == NULL)) {
3566 if(catchStack.cursor >= 0){
3567 longjmp(catchStack.envs[catchStack.cursor], 1);
3568 }
3569 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3570 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2346);
3571 fatal_exit(1);
3572 }
3573 var23 = var25;
3574 RET_LABEL24:(void)0;
3575 }
3576 }
3577 {
3578 { /* Inline parser_nodes$AExprs$n_exprs (var23) on <var23:AExprs> */
3579 var28 = var23->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var23:AExprs> */
3580 if (unlikely(var28 == NULL)) {
3581 if(catchStack.cursor >= 0){
3582 longjmp(catchStack.envs[catchStack.cursor], 1);
3583 }
3584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
3585 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
3586 fatal_exit(1);
3587 }
3588 var26 = var28;
3589 RET_LABEL27:(void)0;
3590 }
3591 }
3592 {
3593 var29 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var26);
3594 }
3595 {
3596 { /* Inline kernel$Int$== (var29,1l) on <var29:Int> */
3597 var32 = var29 == 1l;
3598 var30 = var32;
3599 goto RET_LABEL31;
3600 RET_LABEL31:(void)0;
3601 }
3602 }
3603 if (unlikely(!var30)) {
3604 if(catchStack.cursor >= 0){
3605 longjmp(catchStack.envs[catchStack.cursor], 1);
3606 }
3607 PRINT_ERROR("Runtime error: %s", "Assert failed");
3608 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4007);
3609 fatal_exit(1);
3610 }
3611 {
3612 { /* Inline parser_nodes$ANewExpr$n_args (self) on <self:ANewExpr> */
3613 var35 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
3614 if (unlikely(var35 == NULL)) {
3615 if(catchStack.cursor >= 0){
3616 longjmp(catchStack.envs[catchStack.cursor], 1);
3617 }
3618 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
3619 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2346);
3620 fatal_exit(1);
3621 }
3622 var33 = var35;
3623 RET_LABEL34:(void)0;
3624 }
3625 }
3626 {
3627 { /* Inline parser_nodes$AExprs$n_exprs (var33) on <var33:AExprs> */
3628 var38 = var33->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var33:AExprs> */
3629 if (unlikely(var38 == NULL)) {
3630 if(catchStack.cursor >= 0){
3631 longjmp(catchStack.envs[catchStack.cursor], 1);
3632 }
3633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
3634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
3635 fatal_exit(1);
3636 }
3637 var36 = var38;
3638 RET_LABEL37:(void)0;
3639 }
3640 }
3641 {
3642 var39 = core___core__SequenceRead___Collection__first(var36);
3643 }
3644 {
3645 var40 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var39, ((val*)NULL));
3646 }
3647 var_l = var40;
3648 /* <var_mtype:nullable MClassType(MClassType)> isa MGenericType */
3649 cltype = type_nitc__MGenericType.color;
3650 idtype = type_nitc__MGenericType.id;
3651 if(cltype >= var_mtype->type->table_size) {
3652 var41 = 0;
3653 } else {
3654 var41 = var_mtype->type->type_table[cltype] == idtype;
3655 }
3656 if (unlikely(!var41)) {
3657 if(catchStack.cursor >= 0){
3658 longjmp(catchStack.envs[catchStack.cursor], 1);
3659 }
3660 PRINT_ERROR("Runtime error: %s", "Assert failed");
3661 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4009);
3662 fatal_exit(1);
3663 }
3664 {
3665 { /* Inline model$MGenericType$arguments (var_mtype) on <var_mtype:nullable MClassType(MGenericType)> */
3666 var44 = var_mtype->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <var_mtype:nullable MClassType(MGenericType)> */
3667 if (unlikely(var44 == NULL)) {
3668 if(catchStack.cursor >= 0){
3669 longjmp(catchStack.envs[catchStack.cursor], 1);
3670 }
3671 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
3672 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1305);
3673 fatal_exit(1);
3674 }
3675 var42 = var44;
3676 RET_LABEL43:(void)0;
3677 }
3678 }
3679 {
3680 var45 = core___core__SequenceRead___Collection__first(var42);
3681 }
3682 var_elttype = var45;
3683 {
3684 var46 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(var_v, var_elttype, var_l); /* native_array_instance on <var_v:AbstractCompilerVisitor>*/
3685 }
3686 var = var46;
3687 goto RET_LABEL;
3688 } else {
3689 }
3690 {
3691 { /* Inline typing$ANewExpr$callsite (self) on <self:ANewExpr> */
3692 var49 = self->attrs[COLOR_nitc__typing__ANewExpr___callsite].val; /* _callsite on <self:ANewExpr> */
3693 var47 = var49;
3694 RET_LABEL48:(void)0;
3695 }
3696 }
3697 var_callsite = var47;
3698 if (var_callsite == NULL) {
3699 var50 = 1; /* is null */
3700 } else {
3701 var50 = 0; /* arg is null but recv is not */
3702 }
3703 if (0) {
3704 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
3705 var_other53 = ((val*)NULL);
3706 {
3707 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other53) on <var_callsite:nullable CallSite(CallSite)> */
3708 var56 = var_callsite == var_other53;
3709 var54 = var56;
3710 goto RET_LABEL55;
3711 RET_LABEL55:(void)0;
3712 }
3713 }
3714 var51 = var54;
3715 goto RET_LABEL52;
3716 RET_LABEL52:(void)0;
3717 }
3718 var50 = var51;
3719 }
3720 if (var50){
3721 {
3722 var57 = nitc___nitc__AbstractCompilerVisitor___init_instance_or_extern(var_v, var_mtype);
3723 }
3724 var = var57;
3725 goto RET_LABEL;
3726 } else {
3727 }
3728 {
3729 { /* Inline model_base$MEntity$is_broken (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
3730 var60 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:nullable CallSite(CallSite)> */
3731 var58 = var60;
3732 RET_LABEL59:(void)0;
3733 }
3734 }
3735 if (var58){
3736 var = ((val*)NULL);
3737 goto RET_LABEL;
3738 } else {
3739 }
3740 {
3741 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
3742 var64 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
3743 if (unlikely(var64 == NULL)) {
3744 if(catchStack.cursor >= 0){
3745 longjmp(catchStack.envs[catchStack.cursor], 1);
3746 }
3747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3748 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
3749 fatal_exit(1);
3750 }
3751 var62 = var64;
3752 RET_LABEL63:(void)0;
3753 }
3754 }
3755 {
3756 { /* Inline model$MMethod$is_new (var62) on <var62:MMethod> */
3757 var67 = var62->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <var62:MMethod> */
3758 var65 = var67;
3759 RET_LABEL66:(void)0;
3760 }
3761 }
3762 var_ = var65;
3763 if (var65){
3764 {
3765 var68 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:nullable MClassType(MClassType)>*/
3766 }
3767 var69 = !var68;
3768 var61 = var69;
3769 } else {
3770 var61 = var_;
3771 }
3772 if (var61){
3773 if (likely(varonce70!=NULL)) {
3774 var71 = varonce70;
3775 } else {
3776 var72 = "varoncenew";
3777 var74 = (val*)(10l<<2|1);
3778 var75 = (val*)(10l<<2|1);
3779 var76 = (val*)((long)(0)<<2|3);
3780 var77 = (val*)((long)(0)<<2|3);
3781 var73 = core__flat___CString___to_s_unsafe(var72, var74, var75, var76, var77);
3782 var71 = var73;
3783 varonce70 = var71;
3784 }
3785 {
3786 var78 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var71);
3787 }
3788 var_name = var78;
3789 if (likely(varonce79!=NULL)) {
3790 var80 = varonce79;
3791 } else {
3792 var81 = "_guard";
3793 var83 = (val*)(6l<<2|1);
3794 var84 = (val*)(6l<<2|1);
3795 var85 = (val*)((long)(0)<<2|3);
3796 var86 = (val*)((long)(0)<<2|3);
3797 var82 = core__flat___CString___to_s_unsafe(var81, var83, var84, var85, var86);
3798 var80 = var82;
3799 varonce79 = var80;
3800 }
3801 {
3802 var87 = ((val*(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__abstract_text__Text___43d]))(var_name, var80); /* + on <var_name:String>*/
3803 }
3804 {
3805 var88 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var87);
3806 }
3807 var_guard = var88;
3808 if (unlikely(varonce89==NULL)) {
3809 var90 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
3810 if (likely(varonce91!=NULL)) {
3811 var92 = varonce91;
3812 } else {
3813 var93 = "static ";
3814 var95 = (val*)(7l<<2|1);
3815 var96 = (val*)(7l<<2|1);
3816 var97 = (val*)((long)(0)<<2|3);
3817 var98 = (val*)((long)(0)<<2|3);
3818 var94 = core__flat___CString___to_s_unsafe(var93, var95, var96, var97, var98);
3819 var92 = var94;
3820 varonce91 = var92;
3821 }
3822 ((struct instance_core__NativeArray*)var90)->values[0]=var92;
3823 if (likely(varonce99!=NULL)) {
3824 var100 = varonce99;
3825 } else {
3826 var101 = " ";
3827 var103 = (val*)(1l<<2|1);
3828 var104 = (val*)(1l<<2|1);
3829 var105 = (val*)((long)(0)<<2|3);
3830 var106 = (val*)((long)(0)<<2|3);
3831 var102 = core__flat___CString___to_s_unsafe(var101, var103, var104, var105, var106);
3832 var100 = var102;
3833 varonce99 = var100;
3834 }
3835 ((struct instance_core__NativeArray*)var90)->values[2]=var100;
3836 if (likely(varonce107!=NULL)) {
3837 var108 = varonce107;
3838 } else {
3839 var109 = ";";
3840 var111 = (val*)(1l<<2|1);
3841 var112 = (val*)(1l<<2|1);
3842 var113 = (val*)((long)(0)<<2|3);
3843 var114 = (val*)((long)(0)<<2|3);
3844 var110 = core__flat___CString___to_s_unsafe(var109, var111, var112, var113, var114);
3845 var108 = var110;
3846 varonce107 = var108;
3847 }
3848 ((struct instance_core__NativeArray*)var90)->values[4]=var108;
3849 } else {
3850 var90 = varonce89;
3851 varonce89 = NULL;
3852 }
3853 {
3854 var115 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
3855 }
3856 ((struct instance_core__NativeArray*)var90)->values[1]=var115;
3857 ((struct instance_core__NativeArray*)var90)->values[3]=var_name;
3858 {
3859 var116 = ((val*(*)(val* self))(var90->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var90); /* native_to_s on <var90:NativeArray[String]>*/
3860 }
3861 varonce89 = var90;
3862 {
3863 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var116); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:AbstractCompilerVisitor>*/
3864 }
3865 if (unlikely(varonce117==NULL)) {
3866 var118 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3867 if (likely(varonce119!=NULL)) {
3868 var120 = varonce119;
3869 } else {
3870 var121 = "static int ";
3871 var123 = (val*)(11l<<2|1);
3872 var124 = (val*)(11l<<2|1);
3873 var125 = (val*)((long)(0)<<2|3);
3874 var126 = (val*)((long)(0)<<2|3);
3875 var122 = core__flat___CString___to_s_unsafe(var121, var123, var124, var125, var126);
3876 var120 = var122;
3877 varonce119 = var120;
3878 }
3879 ((struct instance_core__NativeArray*)var118)->values[0]=var120;
3880 if (likely(varonce127!=NULL)) {
3881 var128 = varonce127;
3882 } else {
3883 var129 = ";";
3884 var131 = (val*)(1l<<2|1);
3885 var132 = (val*)(1l<<2|1);
3886 var133 = (val*)((long)(0)<<2|3);
3887 var134 = (val*)((long)(0)<<2|3);
3888 var130 = core__flat___CString___to_s_unsafe(var129, var131, var132, var133, var134);
3889 var128 = var130;
3890 varonce127 = var128;
3891 }
3892 ((struct instance_core__NativeArray*)var118)->values[2]=var128;
3893 } else {
3894 var118 = varonce117;
3895 varonce117 = NULL;
3896 }
3897 ((struct instance_core__NativeArray*)var118)->values[1]=var_guard;
3898 {
3899 var135 = ((val*(*)(val* self))(var118->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var118); /* native_to_s on <var118:NativeArray[String]>*/
3900 }
3901 varonce117 = var118;
3902 {
3903 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var135); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:AbstractCompilerVisitor>*/
3904 }
3905 {
3906 var136 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_mtype);
3907 }
3908 var_recv = var136;
3909 if (unlikely(varonce137==NULL)) {
3910 var138 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3911 if (likely(varonce139!=NULL)) {
3912 var140 = varonce139;
3913 } else {
3914 var141 = "if (likely(";
3915 var143 = (val*)(11l<<2|1);
3916 var144 = (val*)(11l<<2|1);
3917 var145 = (val*)((long)(0)<<2|3);
3918 var146 = (val*)((long)(0)<<2|3);
3919 var142 = core__flat___CString___to_s_unsafe(var141, var143, var144, var145, var146);
3920 var140 = var142;
3921 varonce139 = var140;
3922 }
3923 ((struct instance_core__NativeArray*)var138)->values[0]=var140;
3924 if (likely(varonce147!=NULL)) {
3925 var148 = varonce147;
3926 } else {
3927 var149 = ")) {";
3928 var151 = (val*)(4l<<2|1);
3929 var152 = (val*)(4l<<2|1);
3930 var153 = (val*)((long)(0)<<2|3);
3931 var154 = (val*)((long)(0)<<2|3);
3932 var150 = core__flat___CString___to_s_unsafe(var149, var151, var152, var153, var154);
3933 var148 = var150;
3934 varonce147 = var148;
3935 }
3936 ((struct instance_core__NativeArray*)var138)->values[2]=var148;
3937 } else {
3938 var138 = varonce137;
3939 varonce137 = NULL;
3940 }
3941 ((struct instance_core__NativeArray*)var138)->values[1]=var_guard;
3942 {
3943 var155 = ((val*(*)(val* self))(var138->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var138); /* native_to_s on <var138:NativeArray[String]>*/
3944 }
3945 varonce137 = var138;
3946 {
3947 nitc___nitc__AbstractCompilerVisitor___add(var_v, var155); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3948 }
3949 if (unlikely(varonce156==NULL)) {
3950 var157 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
3951 if (likely(varonce158!=NULL)) {
3952 var159 = varonce158;
3953 } else {
3954 var160 = " = ";
3955 var162 = (val*)(3l<<2|1);
3956 var163 = (val*)(3l<<2|1);
3957 var164 = (val*)((long)(0)<<2|3);
3958 var165 = (val*)((long)(0)<<2|3);
3959 var161 = core__flat___CString___to_s_unsafe(var160, var162, var163, var164, var165);
3960 var159 = var161;
3961 varonce158 = var159;
3962 }
3963 ((struct instance_core__NativeArray*)var157)->values[1]=var159;
3964 if (likely(varonce166!=NULL)) {
3965 var167 = varonce166;
3966 } else {
3967 var168 = ";";
3968 var170 = (val*)(1l<<2|1);
3969 var171 = (val*)(1l<<2|1);
3970 var172 = (val*)((long)(0)<<2|3);
3971 var173 = (val*)((long)(0)<<2|3);
3972 var169 = core__flat___CString___to_s_unsafe(var168, var170, var171, var172, var173);
3973 var167 = var169;
3974 varonce166 = var167;
3975 }
3976 ((struct instance_core__NativeArray*)var157)->values[3]=var167;
3977 } else {
3978 var157 = varonce156;
3979 varonce156 = NULL;
3980 }
3981 {
3982 var174 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:nullable Object(RuntimeVariable)>*/
3983 }
3984 ((struct instance_core__NativeArray*)var157)->values[0]=var174;
3985 ((struct instance_core__NativeArray*)var157)->values[2]=var_name;
3986 {
3987 var175 = ((val*(*)(val* self))(var157->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var157); /* native_to_s on <var157:NativeArray[String]>*/
3988 }
3989 varonce156 = var157;
3990 {
3991 nitc___nitc__AbstractCompilerVisitor___add(var_v, var175); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3992 }
3993 if (likely(varonce176!=NULL)) {
3994 var177 = varonce176;
3995 } else {
3996 var178 = "} else {";
3997 var180 = (val*)(8l<<2|1);
3998 var181 = (val*)(8l<<2|1);
3999 var182 = (val*)((long)(0)<<2|3);
4000 var183 = (val*)((long)(0)<<2|3);
4001 var179 = core__flat___CString___to_s_unsafe(var178, var180, var181, var182, var183);
4002 var177 = var179;
4003 varonce176 = var177;
4004 }
4005 {
4006 nitc___nitc__AbstractCompilerVisitor___add(var_v, var177); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4007 }
4008 {
4009 var184 = nitc___nitc__AbstractCompilerVisitor___init_instance_or_extern(var_v, var_mtype);
4010 }
4011 var_i = var184;
4012 if (unlikely(varonce185==NULL)) {
4013 var186 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
4014 if (likely(varonce187!=NULL)) {
4015 var188 = varonce187;
4016 } else {
4017 var189 = " = ";
4018 var191 = (val*)(3l<<2|1);
4019 var192 = (val*)(3l<<2|1);
4020 var193 = (val*)((long)(0)<<2|3);
4021 var194 = (val*)((long)(0)<<2|3);
4022 var190 = core__flat___CString___to_s_unsafe(var189, var191, var192, var193, var194);
4023 var188 = var190;
4024 varonce187 = var188;
4025 }
4026 ((struct instance_core__NativeArray*)var186)->values[1]=var188;
4027 if (likely(varonce195!=NULL)) {
4028 var196 = varonce195;
4029 } else {
4030 var197 = ";";
4031 var199 = (val*)(1l<<2|1);
4032 var200 = (val*)(1l<<2|1);
4033 var201 = (val*)((long)(0)<<2|3);
4034 var202 = (val*)((long)(0)<<2|3);
4035 var198 = core__flat___CString___to_s_unsafe(var197, var199, var200, var201, var202);
4036 var196 = var198;
4037 varonce195 = var196;
4038 }
4039 ((struct instance_core__NativeArray*)var186)->values[3]=var196;
4040 } else {
4041 var186 = varonce185;
4042 varonce185 = NULL;
4043 }
4044 {
4045 var203 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:nullable Object(RuntimeVariable)>*/
4046 }
4047 ((struct instance_core__NativeArray*)var186)->values[0]=var203;
4048 {
4049 var204 = ((val*(*)(val* self))(var_i->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i); /* to_s on <var_i:RuntimeVariable>*/
4050 }
4051 ((struct instance_core__NativeArray*)var186)->values[2]=var204;
4052 {
4053 var205 = ((val*(*)(val* self))(var186->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var186); /* native_to_s on <var186:NativeArray[String]>*/
4054 }
4055 varonce185 = var186;
4056 {
4057 nitc___nitc__AbstractCompilerVisitor___add(var_v, var205); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4058 }
4059 if (unlikely(varonce206==NULL)) {
4060 var207 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
4061 if (likely(varonce208!=NULL)) {
4062 var209 = varonce208;
4063 } else {
4064 var210 = " = ";
4065 var212 = (val*)(3l<<2|1);
4066 var213 = (val*)(3l<<2|1);
4067 var214 = (val*)((long)(0)<<2|3);
4068 var215 = (val*)((long)(0)<<2|3);
4069 var211 = core__flat___CString___to_s_unsafe(var210, var212, var213, var214, var215);
4070 var209 = var211;
4071 varonce208 = var209;
4072 }
4073 ((struct instance_core__NativeArray*)var207)->values[1]=var209;
4074 if (likely(varonce216!=NULL)) {
4075 var217 = varonce216;
4076 } else {
4077 var218 = ";";
4078 var220 = (val*)(1l<<2|1);
4079 var221 = (val*)(1l<<2|1);
4080 var222 = (val*)((long)(0)<<2|3);
4081 var223 = (val*)((long)(0)<<2|3);
4082 var219 = core__flat___CString___to_s_unsafe(var218, var220, var221, var222, var223);
4083 var217 = var219;
4084 varonce216 = var217;
4085 }
4086 ((struct instance_core__NativeArray*)var207)->values[3]=var217;
4087 } else {
4088 var207 = varonce206;
4089 varonce206 = NULL;
4090 }
4091 ((struct instance_core__NativeArray*)var207)->values[0]=var_name;
4092 {
4093 var224 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:nullable Object(RuntimeVariable)>*/
4094 }
4095 ((struct instance_core__NativeArray*)var207)->values[2]=var224;
4096 {
4097 var225 = ((val*(*)(val* self))(var207->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var207); /* native_to_s on <var207:NativeArray[String]>*/
4098 }
4099 varonce206 = var207;
4100 {
4101 nitc___nitc__AbstractCompilerVisitor___add(var_v, var225); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4102 }
4103 if (unlikely(varonce226==NULL)) {
4104 var227 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4105 if (likely(varonce228!=NULL)) {
4106 var229 = varonce228;
4107 } else {
4108 var230 = " = 1;";
4109 var232 = (val*)(5l<<2|1);
4110 var233 = (val*)(5l<<2|1);
4111 var234 = (val*)((long)(0)<<2|3);
4112 var235 = (val*)((long)(0)<<2|3);
4113 var231 = core__flat___CString___to_s_unsafe(var230, var232, var233, var234, var235);
4114 var229 = var231;
4115 varonce228 = var229;
4116 }
4117 ((struct instance_core__NativeArray*)var227)->values[1]=var229;
4118 } else {
4119 var227 = varonce226;
4120 varonce226 = NULL;
4121 }
4122 ((struct instance_core__NativeArray*)var227)->values[0]=var_guard;
4123 {
4124 var236 = ((val*(*)(val* self))(var227->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var227); /* native_to_s on <var227:NativeArray[String]>*/
4125 }
4126 varonce226 = var227;
4127 {
4128 nitc___nitc__AbstractCompilerVisitor___add(var_v, var236); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4129 }
4130 if (likely(varonce237!=NULL)) {
4131 var238 = varonce237;
4132 } else {
4133 var239 = "}";
4134 var241 = (val*)(1l<<2|1);
4135 var242 = (val*)(1l<<2|1);
4136 var243 = (val*)((long)(0)<<2|3);
4137 var244 = (val*)((long)(0)<<2|3);
4138 var240 = core__flat___CString___to_s_unsafe(var239, var241, var242, var243, var244);
4139 var238 = var240;
4140 varonce237 = var238;
4141 }
4142 {
4143 nitc___nitc__AbstractCompilerVisitor___add(var_v, var238); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4144 }
4145 } else {
4146 {
4147 var245 = nitc___nitc__AbstractCompilerVisitor___init_instance_or_extern(var_v, var_mtype);
4148 }
4149 var_recv = var245;
4150 }
4151 {
4152 { /* Inline typing$CallSite$mpropdef (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4153 var248 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:nullable CallSite(CallSite)> */
4154 if (unlikely(var248 == NULL)) {
4155 if(catchStack.cursor >= 0){
4156 longjmp(catchStack.envs[catchStack.cursor], 1);
4157 }
4158 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
4159 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 659);
4160 fatal_exit(1);
4161 }
4162 var246 = var248;
4163 RET_LABEL247:(void)0;
4164 }
4165 }
4166 {
4167 { /* Inline typing$CallSite$signaturemap (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
4168 var251 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:nullable CallSite(CallSite)> */
4169 var249 = var251;
4170 RET_LABEL250:(void)0;
4171 }
4172 }
4173 {
4174 { /* Inline parser_nodes$ANewExpr$n_args (self) on <self:ANewExpr> */
4175 var254 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
4176 if (unlikely(var254 == NULL)) {
4177 if(catchStack.cursor >= 0){
4178 longjmp(catchStack.envs[catchStack.cursor], 1);
4179 }
4180 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
4181 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2346);
4182 fatal_exit(1);
4183 }
4184 var252 = var254;
4185 RET_LABEL253:(void)0;
4186 }
4187 }
4188 {
4189 { /* Inline parser_nodes$AExprs$n_exprs (var252) on <var252:AExprs> */
4190 var257 = var252->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var252:AExprs> */
4191 if (unlikely(var257 == NULL)) {
4192 if(catchStack.cursor >= 0){
4193 longjmp(catchStack.envs[catchStack.cursor], 1);
4194 }
4195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
4196 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
4197 fatal_exit(1);
4198 }
4199 var255 = var257;
4200 RET_LABEL256:(void)0;
4201 }
4202 }
4203 {
4204 var258 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var246, var249, var_recv, var255);
4205 }
4206 var_args = var258;
4207 {
4208 var259 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_callsite, var_args); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4209 }
4210 var_res2 = var259;
4211 if (var_res2 == NULL) {
4212 var260 = 0; /* is null */
4213 } else {
4214 var260 = 1; /* arg is null and recv is not */
4215 }
4216 if (0) {
4217 { /* Inline kernel$Object$!= (var_res2,((val*)NULL)) on <var_res2:nullable RuntimeVariable> */
4218 var_other = ((val*)NULL);
4219 {
4220 var263 = ((short int(*)(val* self, val* p0))(var_res2->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res2, var_other); /* == on <var_res2:nullable RuntimeVariable(RuntimeVariable)>*/
4221 }
4222 var264 = !var263;
4223 var261 = var264;
4224 goto RET_LABEL262;
4225 RET_LABEL262:(void)0;
4226 }
4227 var260 = var261;
4228 }
4229 if (var260){
4230 var = var_res2;
4231 goto RET_LABEL;
4232 } else {
4233 }
4234 var = var_recv;
4235 goto RET_LABEL;
4236 RET_LABEL:;
4237 return var;
4238 }
4239 /* method abstract_compiler$AAttrExpr$expr for (self: AAttrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
4240 val* nitc__abstract_compiler___AAttrExpr___AExpr__expr(val* self, val* p0) {
4241 val* var /* : nullable RuntimeVariable */;
4242 val* var_v /* var v: AbstractCompilerVisitor */;
4243 val* var1 /* : AExpr */;
4244 val* var3 /* : AExpr */;
4245 val* var4 /* : RuntimeVariable */;
4246 val* var_recv /* var recv: RuntimeVariable */;
4247 val* var5 /* : nullable MAttribute */;
4248 val* var7 /* : nullable MAttribute */;
4249 val* var_mproperty /* var mproperty: MAttribute */;
4250 val* var8 /* : RuntimeVariable */;
4251 var_v = p0;
4252 {
4253 { /* Inline parser_nodes$AAttrFormExpr$n_expr (self) on <self:AAttrExpr> */
4254 var3 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrExpr> */
4255 if (unlikely(var3 == NULL)) {
4256 if(catchStack.cursor >= 0){
4257 longjmp(catchStack.envs[catchStack.cursor], 1);
4258 }
4259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4260 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2354);
4261 fatal_exit(1);
4262 }
4263 var1 = var3;
4264 RET_LABEL2:(void)0;
4265 }
4266 }
4267 {
4268 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
4269 }
4270 var_recv = var4;
4271 {
4272 { /* Inline typing$AAttrFormExpr$mproperty (self) on <self:AAttrExpr> */
4273 var7 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrExpr> */
4274 var5 = var7;
4275 RET_LABEL6:(void)0;
4276 }
4277 }
4278 if (unlikely(var5 == NULL)) {
4279 if(catchStack.cursor >= 0){
4280 longjmp(catchStack.envs[catchStack.cursor], 1);
4281 }
4282 PRINT_ERROR("Runtime error: %s", "Cast failed");
4283 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4058);
4284 fatal_exit(1);
4285 }
4286 var_mproperty = var5;
4287 {
4288 var8 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_mproperty, var_recv);
4289 }
4290 var = var8;
4291 goto RET_LABEL;
4292 RET_LABEL:;
4293 return var;
4294 }
4295 /* method abstract_compiler$AAttrAssignExpr$expr for (self: AAttrAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
4296 val* nitc__abstract_compiler___AAttrAssignExpr___AExpr__expr(val* self, val* p0) {
4297 val* var /* : nullable RuntimeVariable */;
4298 val* var_v /* var v: AbstractCompilerVisitor */;
4299 val* var1 /* : AExpr */;
4300 val* var3 /* : AExpr */;
4301 val* var4 /* : RuntimeVariable */;
4302 val* var_recv /* var recv: RuntimeVariable */;
4303 val* var5 /* : AExpr */;
4304 val* var7 /* : AExpr */;
4305 val* var8 /* : RuntimeVariable */;
4306 val* var_i /* var i: RuntimeVariable */;
4307 val* var9 /* : nullable MAttribute */;
4308 val* var11 /* : nullable MAttribute */;
4309 val* var_mproperty /* var mproperty: MAttribute */;
4310 var_v = p0;
4311 {
4312 { /* Inline parser_nodes$AAttrFormExpr$n_expr (self) on <self:AAttrAssignExpr> */
4313 var3 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrAssignExpr> */
4314 if (unlikely(var3 == NULL)) {
4315 if(catchStack.cursor >= 0){
4316 longjmp(catchStack.envs[catchStack.cursor], 1);
4317 }
4318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4319 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2354);
4320 fatal_exit(1);
4321 }
4322 var1 = var3;
4323 RET_LABEL2:(void)0;
4324 }
4325 }
4326 {
4327 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
4328 }
4329 var_recv = var4;
4330 {
4331 { /* Inline parser_nodes$AAssignFormExpr$n_value (self) on <self:AAttrAssignExpr> */
4332 var7 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAttrAssignExpr> */
4333 if (unlikely(var7 == NULL)) {
4334 if(catchStack.cursor >= 0){
4335 longjmp(catchStack.envs[catchStack.cursor], 1);
4336 }
4337 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
4338 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2073);
4339 fatal_exit(1);
4340 }
4341 var5 = var7;
4342 RET_LABEL6:(void)0;
4343 }
4344 }
4345 {
4346 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
4347 }
4348 var_i = var8;
4349 {
4350 { /* Inline typing$AAttrFormExpr$mproperty (self) on <self:AAttrAssignExpr> */
4351 var11 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrAssignExpr> */
4352 var9 = var11;
4353 RET_LABEL10:(void)0;
4354 }
4355 }
4356 if (unlikely(var9 == NULL)) {
4357 if(catchStack.cursor >= 0){
4358 longjmp(catchStack.envs[catchStack.cursor], 1);
4359 }
4360 PRINT_ERROR("Runtime error: %s", "Cast failed");
4361 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4068);
4362 fatal_exit(1);
4363 }
4364 var_mproperty = var9;
4365 {
4366 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_mproperty, var_recv, var_i); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <var_v:AbstractCompilerVisitor>*/
4367 }
4368 var = var_i;
4369 goto RET_LABEL;
4370 RET_LABEL:;
4371 return var;
4372 }
4373 /* method abstract_compiler$AAttrReassignExpr$stmt for (self: AAttrReassignExpr, AbstractCompilerVisitor) */
4374 void nitc__abstract_compiler___AAttrReassignExpr___AExpr__stmt(val* self, val* p0) {
4375 val* var_v /* var v: AbstractCompilerVisitor */;
4376 val* var /* : AExpr */;
4377 val* var2 /* : AExpr */;
4378 val* var3 /* : RuntimeVariable */;
4379 val* var_recv /* var recv: RuntimeVariable */;
4380 val* var4 /* : AExpr */;
4381 val* var6 /* : AExpr */;
4382 val* var7 /* : RuntimeVariable */;
4383 val* var_value /* var value: RuntimeVariable */;
4384 val* var8 /* : nullable MAttribute */;
4385 val* var10 /* : nullable MAttribute */;
4386 val* var_mproperty /* var mproperty: MAttribute */;
4387 val* var11 /* : RuntimeVariable */;
4388 val* var_attr /* var attr: RuntimeVariable */;
4389 val* var12 /* : nullable CallSite */;
4390 val* var14 /* : nullable CallSite */;
4391 val* var15 /* : Array[RuntimeVariable] */;
4392 val* var_ /* var : Array[RuntimeVariable] */;
4393 val* var16 /* : nullable RuntimeVariable */;
4394 val* var_res /* var res: nullable RuntimeVariable */;
4395 short int var17 /* : Bool */;
4396 short int var18 /* : Bool */;
4397 val* var_other /* var other: nullable Object */;
4398 short int var20 /* : Bool */;
4399 short int var21 /* : Bool */;
4400 var_v = p0;
4401 {
4402 { /* Inline parser_nodes$AAttrFormExpr$n_expr (self) on <self:AAttrReassignExpr> */
4403 var2 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrReassignExpr> */
4404 if (unlikely(var2 == NULL)) {
4405 if(catchStack.cursor >= 0){
4406 longjmp(catchStack.envs[catchStack.cursor], 1);
4407 }
4408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4409 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2354);
4410 fatal_exit(1);
4411 }
4412 var = var2;
4413 RET_LABEL1:(void)0;
4414 }
4415 }
4416 {
4417 var3 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var, ((val*)NULL));
4418 }
4419 var_recv = var3;
4420 {
4421 { /* Inline parser_nodes$AReassignFormExpr$n_value (self) on <self:AAttrReassignExpr> */
4422 var6 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AAttrReassignExpr> */
4423 if (unlikely(var6 == NULL)) {
4424 if(catchStack.cursor >= 0){
4425 longjmp(catchStack.envs[catchStack.cursor], 1);
4426 }
4427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
4428 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2084);
4429 fatal_exit(1);
4430 }
4431 var4 = var6;
4432 RET_LABEL5:(void)0;
4433 }
4434 }
4435 {
4436 var7 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var4, ((val*)NULL));
4437 }
4438 var_value = var7;
4439 {
4440 { /* Inline typing$AAttrFormExpr$mproperty (self) on <self:AAttrReassignExpr> */
4441 var10 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrReassignExpr> */
4442 var8 = var10;
4443 RET_LABEL9:(void)0;
4444 }
4445 }
4446 if (unlikely(var8 == NULL)) {
4447 if(catchStack.cursor >= 0){
4448 longjmp(catchStack.envs[catchStack.cursor], 1);
4449 }
4450 PRINT_ERROR("Runtime error: %s", "Cast failed");
4451 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4079);
4452 fatal_exit(1);
4453 }
4454 var_mproperty = var8;
4455 {
4456 var11 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_mproperty, var_recv);
4457 }
4458 var_attr = var11;
4459 {
4460 { /* Inline typing$AReassignFormExpr$reassign_callsite (self) on <self:AAttrReassignExpr> */
4461 var14 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AAttrReassignExpr> */
4462 var12 = var14;
4463 RET_LABEL13:(void)0;
4464 }
4465 }
4466 if (unlikely(var12 == NULL)) {
4467 if(catchStack.cursor >= 0){
4468 longjmp(catchStack.envs[catchStack.cursor], 1);
4469 }
4470 PRINT_ERROR("Runtime error: %s", "Cast failed");
4471 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4081);
4472 fatal_exit(1);
4473 }
4474 var15 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4475 {
4476 core___core__Array___with_capacity(var15, 2l); /* Direct call array$Array$with_capacity on <var15:Array[RuntimeVariable]>*/
4477 }
4478 var_ = var15;
4479 {
4480 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_attr); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
4481 }
4482 {
4483 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_value); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
4484 }
4485 {
4486 var16 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var12, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4487 }
4488 var_res = var16;
4489 if (var_res == NULL) {
4490 var17 = 0; /* is null */
4491 } else {
4492 var17 = 1; /* arg is null and recv is not */
4493 }
4494 if (0) {
4495 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
4496 var_other = ((val*)NULL);
4497 {
4498 var20 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
4499 }
4500 var21 = !var20;
4501 var18 = var21;
4502 goto RET_LABEL19;
4503 RET_LABEL19:(void)0;
4504 }
4505 var17 = var18;
4506 }
4507 if (unlikely(!var17)) {
4508 if(catchStack.cursor >= 0){
4509 longjmp(catchStack.envs[catchStack.cursor], 1);
4510 }
4511 PRINT_ERROR("Runtime error: %s", "Assert failed");
4512 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4082);
4513 fatal_exit(1);
4514 }
4515 {
4516 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_mproperty, var_recv, var_res); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <var_v:AbstractCompilerVisitor>*/
4517 }
4518 RET_LABEL:;
4519 }
4520 /* method abstract_compiler$AIssetAttrExpr$expr for (self: AIssetAttrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
4521 val* nitc__abstract_compiler___AIssetAttrExpr___AExpr__expr(val* self, val* p0) {
4522 val* var /* : nullable RuntimeVariable */;
4523 val* var_v /* var v: AbstractCompilerVisitor */;
4524 val* var1 /* : AExpr */;
4525 val* var3 /* : AExpr */;
4526 val* var4 /* : RuntimeVariable */;
4527 val* var_recv /* var recv: RuntimeVariable */;
4528 val* var5 /* : nullable MAttribute */;
4529 val* var7 /* : nullable MAttribute */;
4530 val* var_mproperty /* var mproperty: MAttribute */;
4531 val* var8 /* : RuntimeVariable */;
4532 var_v = p0;
4533 {
4534 { /* Inline parser_nodes$AAttrFormExpr$n_expr (self) on <self:AIssetAttrExpr> */
4535 var3 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AIssetAttrExpr> */
4536 if (unlikely(var3 == NULL)) {
4537 if(catchStack.cursor >= 0){
4538 longjmp(catchStack.envs[catchStack.cursor], 1);
4539 }
4540 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4541 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2354);
4542 fatal_exit(1);
4543 }
4544 var1 = var3;
4545 RET_LABEL2:(void)0;
4546 }
4547 }
4548 {
4549 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
4550 }
4551 var_recv = var4;
4552 {
4553 { /* Inline typing$AAttrFormExpr$mproperty (self) on <self:AIssetAttrExpr> */
4554 var7 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AIssetAttrExpr> */
4555 var5 = var7;
4556 RET_LABEL6:(void)0;
4557 }
4558 }
4559 if (unlikely(var5 == NULL)) {
4560 if(catchStack.cursor >= 0){
4561 longjmp(catchStack.envs[catchStack.cursor], 1);
4562 }
4563 PRINT_ERROR("Runtime error: %s", "Cast failed");
4564 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4091);
4565 fatal_exit(1);
4566 }
4567 var_mproperty = var5;
4568 {
4569 var8 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__isset_attribute(var_v, var_mproperty, var_recv);
4570 }
4571 var = var8;
4572 goto RET_LABEL;
4573 RET_LABEL:;
4574 return var;
4575 }
4576 /* method abstract_compiler$AVarargExpr$expr for (self: AVarargExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
4577 val* nitc__abstract_compiler___AVarargExpr___AExpr__expr(val* self, val* p0) {
4578 val* var /* : nullable RuntimeVariable */;
4579 val* var_v /* var v: AbstractCompilerVisitor */;
4580 val* var1 /* : AExpr */;
4581 val* var3 /* : AExpr */;
4582 val* var4 /* : RuntimeVariable */;
4583 var_v = p0;
4584 {
4585 { /* Inline parser_nodes$AVarargExpr$n_expr (self) on <self:AVarargExpr> */
4586 var3 = self->attrs[COLOR_nitc__parser_nodes__AVarargExpr___n_expr].val; /* _n_expr on <self:AVarargExpr> */
4587 if (unlikely(var3 == NULL)) {
4588 if(catchStack.cursor >= 0){
4589 longjmp(catchStack.envs[catchStack.cursor], 1);
4590 }
4591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4592 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2711);
4593 fatal_exit(1);
4594 }
4595 var1 = var3;
4596 RET_LABEL2:(void)0;
4597 }
4598 }
4599 {
4600 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
4601 }
4602 var = var4;
4603 goto RET_LABEL;
4604 RET_LABEL:;
4605 return var;
4606 }
4607 /* method abstract_compiler$ANamedargExpr$expr for (self: ANamedargExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
4608 val* nitc__abstract_compiler___ANamedargExpr___AExpr__expr(val* self, val* p0) {
4609 val* var /* : nullable RuntimeVariable */;
4610 val* var_v /* var v: AbstractCompilerVisitor */;
4611 val* var1 /* : AExpr */;
4612 val* var3 /* : AExpr */;
4613 val* var4 /* : RuntimeVariable */;
4614 var_v = p0;
4615 {
4616 { /* Inline parser_nodes$ANamedargExpr$n_expr (self) on <self:ANamedargExpr> */
4617 var3 = self->attrs[COLOR_nitc__parser_nodes__ANamedargExpr___n_expr].val; /* _n_expr on <self:ANamedargExpr> */
4618 if (unlikely(var3 == NULL)) {
4619 if(catchStack.cursor >= 0){
4620 longjmp(catchStack.envs[catchStack.cursor], 1);
4621 }
4622 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4623 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2728);
4624 fatal_exit(1);
4625 }
4626 var1 = var3;
4627 RET_LABEL2:(void)0;
4628 }
4629 }
4630 {
4631 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
4632 }
4633 var = var4;
4634 goto RET_LABEL;
4635 RET_LABEL:;
4636 return var;
4637 }
4638 /* method abstract_compiler$ADebugTypeExpr$stmt for (self: ADebugTypeExpr, AbstractCompilerVisitor) */
4639 void nitc__abstract_compiler___ADebugTypeExpr___AExpr__stmt(val* self, val* p0) {
4640 val* var_v /* var v: AbstractCompilerVisitor */;
4641 var_v = p0;
4642 RET_LABEL:;
4643 }
4644 /* method abstract_compiler$MModule$properties for (self: MModule, MClass): Set[MProperty] */
4645 val* nitc__abstract_compiler___MModule___properties(val* self, val* p0) {
4646 val* var /* : Set[MProperty] */;
4647 val* var_mclass /* var mclass: MClass */;
4648 val* var1 /* : Map[MClass, Set[MProperty]] */;
4649 val* var3 /* : Map[MClass, Set[MProperty]] */;
4650 short int var4 /* : Bool */;
4651 short int var5 /* : Bool */;
4652 val* var6 /* : HashSet[MProperty] */;
4653 val* var_properties /* var properties: HashSet[MProperty] */;
4654 val* var7 /* : Array[MClass] */;
4655 val* var_parents /* var parents: Array[MClass] */;
4656 val* var8 /* : POSet[MClass] */;
4657 short int var9 /* : Bool */;
4658 val* var10 /* : POSetElement[MClass] */;
4659 val* var11 /* : Collection[nullable Object] */;
4660 val* var_ /* var : Array[MClass] */;
4661 val* var12 /* : IndexedIterator[nullable Object] */;
4662 val* var_13 /* var : IndexedIterator[MClass] */;
4663 short int var14 /* : Bool */;
4664 val* var15 /* : nullable Object */;
4665 val* var_parent /* var parent: MClass */;
4666 val* var16 /* : Set[MProperty] */;
4667 val* var17 /* : Array[MClassDef] */;
4668 val* var19 /* : Array[MClassDef] */;
4669 val* var_20 /* var : Array[MClassDef] */;
4670 val* var21 /* : IndexedIterator[nullable Object] */;
4671 val* var_22 /* var : IndexedIterator[MClassDef] */;
4672 short int var23 /* : Bool */;
4673 val* var25 /* : nullable Object */;
4674 val* var_mclassdef /* var mclassdef: MClassDef */;
4675 val* var26 /* : POSetElement[MModule] */;
4676 val* var28 /* : POSetElement[MModule] */;
4677 val* var29 /* : MModule */;
4678 val* var31 /* : MModule */;
4679 short int var32 /* : Bool */;
4680 short int var33 /* : Bool */;
4681 val* var35 /* : Array[MProperty] */;
4682 val* var37 /* : Array[MProperty] */;
4683 val* var_38 /* var : Array[MProperty] */;
4684 val* var39 /* : IndexedIterator[nullable Object] */;
4685 val* var_40 /* var : IndexedIterator[MProperty] */;
4686 short int var41 /* : Bool */;
4687 val* var43 /* : nullable Object */;
4688 val* var_mprop /* var mprop: MProperty */;
4689 val* var44 /* : Map[MClass, Set[MProperty]] */;
4690 val* var46 /* : Map[MClass, Set[MProperty]] */;
4691 val* var47 /* : Map[MClass, Set[MProperty]] */;
4692 val* var49 /* : Map[MClass, Set[MProperty]] */;
4693 val* var50 /* : nullable Object */;
4694 var_mclass = p0;
4695 {
4696 { /* Inline abstract_compiler$MModule$properties_cache (self) on <self:MModule> */
4697 var3 = self->attrs[COLOR_nitc__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on <self:MModule> */
4698 if (unlikely(var3 == NULL)) {
4699 if(catchStack.cursor >= 0){
4700 longjmp(catchStack.envs[catchStack.cursor], 1);
4701 }
4702 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache");
4703 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4150);
4704 fatal_exit(1);
4705 }
4706 var1 = var3;
4707 RET_LABEL2:(void)0;
4708 }
4709 }
4710 {
4711 var4 = ((short int(*)(val* self, val* p0))((((long)var1&3)?class_info[((long)var1&3)]:var1->class)->vft[COLOR_core__abstract_collection__MapRead__has_key]))(var1, var_mclass); /* has_key on <var1:Map[MClass, Set[MProperty]]>*/
4712 }
4713 var5 = !var4;
4714 if (var5){
4715 var6 = NEW_core__HashSet(&type_core__HashSet__nitc__MProperty);
4716 {
4717 core___core__HashSet___core__kernel__Object__init(var6); /* Direct call hash_collection$HashSet$init on <var6:HashSet[MProperty]>*/
4718 }
4719 var_properties = var6;
4720 var7 = NEW_core__Array(&type_core__Array__nitc__MClass);
4721 {
4722 core___core__Array___core__kernel__Object__init(var7); /* Direct call array$Array$init on <var7:Array[MClass]>*/
4723 }
4724 var_parents = var7;
4725 {
4726 var8 = nitc__model___MModule___flatten_mclass_hierarchy(self);
4727 }
4728 {
4729 var9 = poset___poset__POSet___core__abstract_collection__Collection__has(var8, var_mclass);
4730 }
4731 if (var9){
4732 {
4733 var10 = nitc___nitc__MClass___in_hierarchy(var_mclass, self);
4734 }
4735 {
4736 var11 = poset___poset__POSetElement___direct_greaters(var10);
4737 }
4738 {
4739 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_parents, var11); /* Direct call array$Array$add_all on <var_parents:Array[MClass]>*/
4740 }
4741 } else {
4742 }
4743 var_ = var_parents;
4744 {
4745 var12 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
4746 }
4747 var_13 = var12;
4748 for(;;) {
4749 {
4750 var14 = ((short int(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_13); /* is_ok on <var_13:IndexedIterator[MClass]>*/
4751 }
4752 if (var14){
4753 } else {
4754 goto BREAK_label;
4755 }
4756 {
4757 var15 = ((val*(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_13); /* item on <var_13:IndexedIterator[MClass]>*/
4758 }
4759 var_parent = var15;
4760 {
4761 var16 = nitc__abstract_compiler___MModule___properties(self, var_parent);
4762 }
4763 {
4764 core___core__SimpleCollection___add_all(var_properties, var16); /* Direct call abstract_collection$SimpleCollection$add_all on <var_properties:HashSet[MProperty]>*/
4765 }
4766 {
4767 ((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_13); /* next on <var_13:IndexedIterator[MClass]>*/
4768 }
4769 }
4770 BREAK_label: (void)0;
4771 {
4772 ((void(*)(val* self))((((long)var_13&3)?class_info[((long)var_13&3)]:var_13->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_13); /* finish on <var_13:IndexedIterator[MClass]>*/
4773 }
4774 {
4775 { /* Inline model$MClass$mclassdefs (var_mclass) on <var_mclass:MClass> */
4776 var19 = var_mclass->attrs[COLOR_nitc__model__MClass___mclassdefs].val; /* _mclassdefs on <var_mclass:MClass> */
4777 if (unlikely(var19 == NULL)) {
4778 if(catchStack.cursor >= 0){
4779 longjmp(catchStack.envs[catchStack.cursor], 1);
4780 }
4781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdefs");
4782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 490);
4783 fatal_exit(1);
4784 }
4785 var17 = var19;
4786 RET_LABEL18:(void)0;
4787 }
4788 }
4789 var_20 = var17;
4790 {
4791 var21 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_20);
4792 }
4793 var_22 = var21;
4794 for(;;) {
4795 {
4796 var23 = ((short int(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_22); /* is_ok on <var_22:IndexedIterator[MClassDef]>*/
4797 }
4798 if (var23){
4799 } else {
4800 goto BREAK_label24;
4801 }
4802 {
4803 var25 = ((val*(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_22); /* item on <var_22:IndexedIterator[MClassDef]>*/
4804 }
4805 var_mclassdef = var25;
4806 {
4807 { /* Inline mmodule$MModule$in_importation (self) on <self:MModule> */
4808 var28 = self->attrs[COLOR_nitc__mmodule__MModule___in_importation].val; /* _in_importation on <self:MModule> */
4809 if (unlikely(var28 == NULL)) {
4810 if(catchStack.cursor >= 0){
4811 longjmp(catchStack.envs[catchStack.cursor], 1);
4812 }
4813 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
4814 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 108);
4815 fatal_exit(1);
4816 }
4817 var26 = var28;
4818 RET_LABEL27:(void)0;
4819 }
4820 }
4821 {
4822 { /* Inline model$MClassDef$mmodule (var_mclassdef) on <var_mclassdef:MClassDef> */
4823 var31 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_mclassdef:MClassDef> */
4824 if (unlikely(var31 == NULL)) {
4825 if(catchStack.cursor >= 0){
4826 longjmp(catchStack.envs[catchStack.cursor], 1);
4827 }
4828 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4829 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
4830 fatal_exit(1);
4831 }
4832 var29 = var31;
4833 RET_LABEL30:(void)0;
4834 }
4835 }
4836 {
4837 var32 = poset___poset__POSetElement____60d_61d(var26, var29);
4838 }
4839 var33 = !var32;
4840 if (var33){
4841 goto BREAK_label34;
4842 } else {
4843 }
4844 {
4845 { /* Inline model$MClassDef$intro_mproperties (var_mclassdef) on <var_mclassdef:MClassDef> */
4846 var37 = var_mclassdef->attrs[COLOR_nitc__model__MClassDef___intro_mproperties].val; /* _intro_mproperties on <var_mclassdef:MClassDef> */
4847 if (unlikely(var37 == NULL)) {
4848 if(catchStack.cursor >= 0){
4849 longjmp(catchStack.envs[catchStack.cursor], 1);
4850 }
4851 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mproperties");
4852 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 720);
4853 fatal_exit(1);
4854 }
4855 var35 = var37;
4856 RET_LABEL36:(void)0;
4857 }
4858 }
4859 var_38 = var35;
4860 {
4861 var39 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_38);
4862 }
4863 var_40 = var39;
4864 for(;;) {
4865 {
4866 var41 = ((short int(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_40); /* is_ok on <var_40:IndexedIterator[MProperty]>*/
4867 }
4868 if (var41){
4869 } else {
4870 goto BREAK_label42;
4871 }
4872 {
4873 var43 = ((val*(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_40); /* item on <var_40:IndexedIterator[MProperty]>*/
4874 }
4875 var_mprop = var43;
4876 {
4877 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var_properties, var_mprop); /* Direct call hash_collection$HashSet$add on <var_properties:HashSet[MProperty]>*/
4878 }
4879 {
4880 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_40); /* next on <var_40:IndexedIterator[MProperty]>*/
4881 }
4882 }
4883 BREAK_label42: (void)0;
4884 {
4885 ((void(*)(val* self))((((long)var_40&3)?class_info[((long)var_40&3)]:var_40->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_40); /* finish on <var_40:IndexedIterator[MProperty]>*/
4886 }
4887 BREAK_label34: (void)0;
4888 {
4889 ((void(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_22); /* next on <var_22:IndexedIterator[MClassDef]>*/
4890 }
4891 }
4892 BREAK_label24: (void)0;
4893 {
4894 ((void(*)(val* self))((((long)var_22&3)?class_info[((long)var_22&3)]:var_22->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_22); /* finish on <var_22:IndexedIterator[MClassDef]>*/
4895 }
4896 {
4897 { /* Inline abstract_compiler$MModule$properties_cache (self) on <self:MModule> */
4898 var46 = self->attrs[COLOR_nitc__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on <self:MModule> */
4899 if (unlikely(var46 == NULL)) {
4900 if(catchStack.cursor >= 0){
4901 longjmp(catchStack.envs[catchStack.cursor], 1);
4902 }
4903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache");
4904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4150);
4905 fatal_exit(1);
4906 }
4907 var44 = var46;
4908 RET_LABEL45:(void)0;
4909 }
4910 }
4911 {
4912 ((void(*)(val* self, val* p0, val* p1))((((long)var44&3)?class_info[((long)var44&3)]:var44->class)->vft[COLOR_core__abstract_collection__Map___91d_93d_61d]))(var44, var_mclass, var_properties); /* []= on <var44:Map[MClass, Set[MProperty]]>*/
4913 }
4914 } else {
4915 }
4916 {
4917 { /* Inline abstract_compiler$MModule$properties_cache (self) on <self:MModule> */
4918 var49 = self->attrs[COLOR_nitc__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on <self:MModule> */
4919 if (unlikely(var49 == NULL)) {
4920 if(catchStack.cursor >= 0){
4921 longjmp(catchStack.envs[catchStack.cursor], 1);
4922 }
4923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache");
4924 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4150);
4925 fatal_exit(1);
4926 }
4927 var47 = var49;
4928 RET_LABEL48:(void)0;
4929 }
4930 }
4931 {
4932 var50 = ((val*(*)(val* self, val* p0))((((long)var47&3)?class_info[((long)var47&3)]:var47->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var47, var_mclass); /* [] on <var47:Map[MClass, Set[MProperty]]>*/
4933 }
4934 var = var50;
4935 goto RET_LABEL;
4936 RET_LABEL:;
4937 return var;
4938 }
4939 /* method abstract_compiler$MModule$properties_cache for (self: MModule): Map[MClass, Set[MProperty]] */
4940 val* nitc__abstract_compiler___MModule___properties_cache(val* self) {
4941 val* var /* : Map[MClass, Set[MProperty]] */;
4942 val* var1 /* : Map[MClass, Set[MProperty]] */;
4943 var1 = self->attrs[COLOR_nitc__abstract_compiler__MModule___properties_cache].val; /* _properties_cache on <self:MModule> */
4944 if (unlikely(var1 == NULL)) {
4945 if(catchStack.cursor >= 0){
4946 longjmp(catchStack.envs[catchStack.cursor], 1);
4947 }
4948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _properties_cache");
4949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 4150);
4950 fatal_exit(1);
4951 }
4952 var = var1;
4953 RET_LABEL:;
4954 return var;
4955 }
4956 /* method abstract_compiler$Sys$main for (self: Sys) */
4957 void nitc__abstract_compiler___core__Sys___main(val* self) {
4958 val* var /* : ToolContext */;
4959 val* var_toolcontext /* var toolcontext: ToolContext */;
4960 static val* varonce;
4961 val* var1 /* : String */;
4962 char* var2 /* : CString */;
4963 val* var3 /* : String */;
4964 val* var4 /* : nullable Int */;
4965 val* var5 /* : nullable Int */;
4966 val* var6 /* : nullable Bool */;
4967 val* var7 /* : nullable Bool */;
4968 val* var9 /* : Sequence[String] */;
4969 val* var10 /* : Model */;
4970 val* var_model /* var model: Model */;
4971 val* var12 /* : ModelBuilder */;
4972 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
4973 val* var13 /* : OptionContext */;
4974 val* var15 /* : OptionContext */;
4975 val* var16 /* : Array[String] */;
4976 val* var18 /* : Array[String] */;
4977 val* var_arguments /* var arguments: Array[String] */;
4978 short int var19 /* : Bool */;
4979 long var20 /* : Int */;
4980 long var22 /* : Int */;
4981 short int var23 /* : Bool */;
4982 short int var25 /* : Bool */;
4983 int cltype;
4984 int idtype;
4985 const char* var_class_name;
4986 short int var26 /* : Bool */;
4987 short int var_ /* var : Bool */;
4988 val* var27 /* : OptionString */;
4989 val* var29 /* : OptionString */;
4990 val* var30 /* : nullable Object */;
4991 val* var32 /* : nullable Object */;
4992 short int var33 /* : Bool */;
4993 short int var34 /* : Bool */;
4994 val* var_other /* var other: nullable Object */;
4995 short int var36 /* : Bool */;
4996 short int var37 /* : Bool */;
4997 static val* varonce38;
4998 val* var39 /* : String */;
4999 char* var40 /* : CString */;
5000 val* var41 /* : String */;
5001 val* var42 /* : nullable Int */;
5002 val* var43 /* : nullable Int */;
5003 val* var44 /* : nullable Bool */;
5004 val* var45 /* : nullable Bool */;
5005 val* var47 /* : Array[MModule] */;
5006 val* var_mmodules /* var mmodules: Array[MModule] */;
5007 short int var48 /* : Bool */;
5008 val* var_49 /* var : Array[MModule] */;
5009 val* var50 /* : IndexedIterator[nullable Object] */;
5010 val* var_51 /* var : IndexedIterator[MModule] */;
5011 short int var52 /* : Bool */;
5012 val* var53 /* : nullable Object */;
5013 val* var_mmodule /* var mmodule: MModule */;
5014 val* var55 /* : NativeArray[String] */;
5015 static val* varonce54;
5016 static val* varonce56;
5017 val* var57 /* : String */;
5018 char* var58 /* : CString */;
5019 val* var59 /* : String */;
5020 val* var60 /* : nullable Int */;
5021 val* var61 /* : nullable Int */;
5022 val* var62 /* : nullable Bool */;
5023 val* var63 /* : nullable Bool */;
5024 static val* varonce64;
5025 val* var65 /* : String */;
5026 char* var66 /* : CString */;
5027 val* var67 /* : String */;
5028 val* var68 /* : nullable Int */;
5029 val* var69 /* : nullable Int */;
5030 val* var70 /* : nullable Bool */;
5031 val* var71 /* : nullable Bool */;
5032 val* var72 /* : String */;
5033 val* var73 /* : String */;
5034 val* var74 /* : Array[MModule] */;
5035 val* var_75 /* var : Array[MModule] */;
5036 val* var_ms /* var ms: Array[MModule] */;
5037 var = NEW_nitc__ToolContext(&type_nitc__ToolContext);
5038 {
5039 nitc__separate_erasure_compiler___ToolContext___core__kernel__Object__init(var); /* Direct call separate_erasure_compiler$ToolContext$init on <var:ToolContext>*/
5040 }
5041 var_toolcontext = var;
5042 if (likely(varonce!=NULL)) {
5043 var1 = varonce;
5044 } else {
5045 var2 = "Usage: nitc [OPTION]... file.nit...\nCompiles Nit programs.";
5046 var4 = (val*)(58l<<2|1);
5047 var5 = (val*)(58l<<2|1);
5048 var6 = (val*)((long)(0)<<2|3);
5049 var7 = (val*)((long)(0)<<2|3);
5050 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
5051 var1 = var3;
5052 varonce = var1;
5053 }
5054 {
5055 { /* Inline toolcontext$ToolContext$tooldescription= (var_toolcontext,var1) on <var_toolcontext:ToolContext> */
5056 var_toolcontext->attrs[COLOR_nitc__toolcontext__ToolContext___tooldescription].val = var1; /* _tooldescription on <var_toolcontext:ToolContext> */
5057 RET_LABEL8:(void)0;
5058 }
5059 }
5060 {
5061 var9 = core__abstract_text___Sys___args(self);
5062 }
5063 {
5064 nitc__nith___ToolContext___process_options(var_toolcontext, var9); /* Direct call nith$ToolContext$process_options on <var_toolcontext:ToolContext>*/
5065 }
5066 var10 = NEW_nitc__Model(&type_nitc__Model);
5067 {
5068 { /* Inline kernel$Object$init (var10) on <var10:Model> */
5069 RET_LABEL11:(void)0;
5070 }
5071 }
5072 var_model = var10;
5073 var12 = NEW_nitc__ModelBuilder(&type_nitc__ModelBuilder);
5074 {
5075 ((void(*)(val* self, val* p0))(var12->class->vft[COLOR_nitc__modelbuilder_base__ModelBuilder__model_61d]))(var12, var_model); /* model= on <var12:ModelBuilder>*/
5076 }
5077 {
5078 ((void(*)(val* self, val* p0))(var12->class->vft[COLOR_nitc__modelbuilder_base__ModelBuilder__toolcontext_61d]))(var12, var_toolcontext); /* toolcontext= on <var12:ModelBuilder>*/
5079 }
5080 {
5081 ((void(*)(val* self))(var12->class->vft[COLOR_core__kernel__Object__init]))(var12); /* init on <var12:ModelBuilder>*/
5082 }
5083 var_modelbuilder = var12;
5084 {
5085 { /* Inline toolcontext$ToolContext$option_context (var_toolcontext) on <var_toolcontext:ToolContext> */
5086 var15 = var_toolcontext->attrs[COLOR_nitc__toolcontext__ToolContext___option_context].val; /* _option_context on <var_toolcontext:ToolContext> */
5087 if (unlikely(var15 == NULL)) {
5088 if(catchStack.cursor >= 0){
5089 longjmp(catchStack.envs[catchStack.cursor], 1);
5090 }
5091 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _option_context");
5092 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__toolcontext, 357);
5093 fatal_exit(1);
5094 }
5095 var13 = var15;
5096 RET_LABEL14:(void)0;
5097 }
5098 }
5099 {
5100 { /* Inline opts$OptionContext$rest (var13) on <var13:OptionContext> */
5101 var18 = var13->attrs[COLOR_opts__OptionContext___rest].val; /* _rest on <var13:OptionContext> */
5102 if (unlikely(var18 == NULL)) {
5103 if(catchStack.cursor >= 0){
5104 longjmp(catchStack.envs[catchStack.cursor], 1);
5105 }
5106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _rest");
5107 PRINT_ERROR(" (%s:%d)\n", FILE_opts, 286);
5108 fatal_exit(1);
5109 }
5110 var16 = var18;
5111 RET_LABEL17:(void)0;
5112 }
5113 }
5114 var_arguments = var16;
5115 {
5116 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[String]> */
5117 var22 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[String]> */
5118 var20 = var22;
5119 RET_LABEL21:(void)0;
5120 }
5121 }
5122 {
5123 { /* Inline kernel$Int$> (var20,1l) on <var20:Int> */
5124 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5125 /* <1l:Int> isa OTHER */
5126 var25 = 1; /* easy <1l:Int> isa OTHER*/
5127 if (unlikely(!var25)) {
5128 var_class_name = type_core__Int.name;
5129 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5130 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
5131 fatal_exit(1);
5132 }
5133 var26 = var20 > 1l;
5134 var23 = var26;
5135 goto RET_LABEL24;
5136 RET_LABEL24:(void)0;
5137 }
5138 }
5139 var_ = var23;
5140 if (var23){
5141 {
5142 { /* Inline abstract_compiler$ToolContext$opt_output (var_toolcontext) on <var_toolcontext:ToolContext> */
5143 var29 = var_toolcontext->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_output].val; /* _opt_output on <var_toolcontext:ToolContext> */
5144 if (unlikely(var29 == NULL)) {
5145 if(catchStack.cursor >= 0){
5146 longjmp(catchStack.envs[catchStack.cursor], 1);
5147 }
5148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_output");
5149 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 30);
5150 fatal_exit(1);
5151 }
5152 var27 = var29;
5153 RET_LABEL28:(void)0;
5154 }
5155 }
5156 {
5157 { /* Inline opts$Option$value (var27) on <var27:OptionString> */
5158 var32 = var27->attrs[COLOR_opts__Option___value].val; /* _value on <var27:OptionString> */
5159 var30 = var32;
5160 RET_LABEL31:(void)0;
5161 }
5162 }
5163 if (var30 == NULL) {
5164 var33 = 0; /* is null */
5165 } else {
5166 var33 = 1; /* arg is null and recv is not */
5167 }
5168 if (0) {
5169 { /* Inline kernel$Object$!= (var30,((val*)NULL)) on <var30:nullable Object(nullable String)> */
5170 var_other = ((val*)NULL);
5171 {
5172 var36 = ((short int(*)(val* self, val* p0))(var30->class->vft[COLOR_core__kernel__Object___61d_61d]))(var30, var_other); /* == on <var30:nullable Object(String)>*/
5173 }
5174 var37 = !var36;
5175 var34 = var37;
5176 goto RET_LABEL35;
5177 RET_LABEL35:(void)0;
5178 }
5179 var33 = var34;
5180 }
5181 var19 = var33;
5182 } else {
5183 var19 = var_;
5184 }
5185 if (var19){
5186 if (likely(varonce38!=NULL)) {
5187 var39 = varonce38;
5188 } else {
5189 var40 = "Option Error: --output needs a single source file. Do you prefer --dir?";
5190 var42 = (val*)(71l<<2|1);
5191 var43 = (val*)(71l<<2|1);
5192 var44 = (val*)((long)(0)<<2|3);
5193 var45 = (val*)((long)(0)<<2|3);
5194 var41 = core__flat___CString___to_s_unsafe(var40, var42, var43, var44, var45);
5195 var39 = var41;
5196 varonce38 = var39;
5197 }
5198 {
5199 core__file___Sys___print(self, var39); /* Direct call file$Sys$print on <self:Sys>*/
5200 }
5201 {
5202 { /* Inline kernel$Sys$exit (self,1l) on <self:Sys> */
5203 exit((int)1l);
5204 RET_LABEL46:(void)0;
5205 }
5206 }
5207 } else {
5208 }
5209 {
5210 var47 = nitc__loader___ModelBuilder___parse(var_modelbuilder, var_arguments);
5211 }
5212 var_mmodules = var47;
5213 {
5214 var48 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_mmodules);
5215 }
5216 if (var48){
5217 {
5218 nitc___nitc__ToolContext___quit(var_toolcontext); /* Direct call toolcontext$ToolContext$quit on <var_toolcontext:ToolContext>*/
5219 }
5220 } else {
5221 }
5222 {
5223 nitc__modelbuilder___ModelBuilder___run_phases(var_modelbuilder); /* Direct call modelbuilder$ModelBuilder$run_phases on <var_modelbuilder:ModelBuilder>*/
5224 }
5225 var_49 = var_mmodules;
5226 {
5227 var50 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_49);
5228 }
5229 var_51 = var50;
5230 for(;;) {
5231 {
5232 var52 = ((short int(*)(val* self))((((long)var_51&3)?class_info[((long)var_51&3)]:var_51->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_51); /* is_ok on <var_51:IndexedIterator[MModule]>*/
5233 }
5234 if (var52){
5235 } else {
5236 goto BREAK_label;
5237 }
5238 {
5239 var53 = ((val*(*)(val* self))((((long)var_51&3)?class_info[((long)var_51&3)]:var_51->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_51); /* item on <var_51:IndexedIterator[MModule]>*/
5240 }
5241 var_mmodule = var53;
5242 if (unlikely(varonce54==NULL)) {
5243 var55 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5244 if (likely(varonce56!=NULL)) {
5245 var57 = varonce56;
5246 } else {
5247 var58 = "*** PROCESS ";
5248 var60 = (val*)(12l<<2|1);
5249 var61 = (val*)(12l<<2|1);
5250 var62 = (val*)((long)(0)<<2|3);
5251 var63 = (val*)((long)(0)<<2|3);
5252 var59 = core__flat___CString___to_s_unsafe(var58, var60, var61, var62, var63);
5253 var57 = var59;
5254 varonce56 = var57;
5255 }
5256 ((struct instance_core__NativeArray*)var55)->values[0]=var57;
5257 if (likely(varonce64!=NULL)) {
5258 var65 = varonce64;
5259 } else {
5260 var66 = " ***";
5261 var68 = (val*)(4l<<2|1);
5262 var69 = (val*)(4l<<2|1);
5263 var70 = (val*)((long)(0)<<2|3);
5264 var71 = (val*)((long)(0)<<2|3);
5265 var67 = core__flat___CString___to_s_unsafe(var66, var68, var69, var70, var71);
5266 var65 = var67;
5267 varonce64 = var65;
5268 }
5269 ((struct instance_core__NativeArray*)var55)->values[2]=var65;
5270 } else {
5271 var55 = varonce54;
5272 varonce54 = NULL;
5273 }
5274 {
5275 var72 = ((val*(*)(val* self))(var_mmodule->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmodule); /* to_s on <var_mmodule:MModule>*/
5276 }
5277 ((struct instance_core__NativeArray*)var55)->values[1]=var72;
5278 {
5279 var73 = ((val*(*)(val* self))(var55->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var55); /* native_to_s on <var55:NativeArray[String]>*/
5280 }
5281 varonce54 = var55;
5282 {
5283 nitc___nitc__ToolContext___info(var_toolcontext, var73, 1l); /* Direct call toolcontext$ToolContext$info on <var_toolcontext:ToolContext>*/
5284 }
5285 var74 = NEW_core__Array(&type_core__Array__nitc__MModule);
5286 {
5287 core___core__Array___with_capacity(var74, 1l); /* Direct call array$Array$with_capacity on <var74:Array[MModule]>*/
5288 }
5289 var_75 = var74;
5290 {
5291 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_75, var_mmodule); /* Direct call array$AbstractArray$push on <var_75:Array[MModule]>*/
5292 }
5293 var_ms = var_75;
5294 {
5295 nitc__modelbuilder___ToolContext___run_global_phases(var_toolcontext, var_ms); /* Direct call modelbuilder$ToolContext$run_global_phases on <var_toolcontext:ToolContext>*/
5296 }
5297 {
5298 ((void(*)(val* self))((((long)var_51&3)?class_info[((long)var_51&3)]:var_51->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_51); /* next on <var_51:IndexedIterator[MModule]>*/
5299 }
5300 }
5301 BREAK_label: (void)0;
5302 {
5303 ((void(*)(val* self))((((long)var_51&3)?class_info[((long)var_51&3)]:var_51->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_51); /* finish on <var_51:IndexedIterator[MModule]>*/
5304 }
5305 RET_LABEL:;
5306 }