c_src: regenerate
[nit.git] / c_src / nitc__abstract_compiler.sep.5.c
1 #include "nitc__abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AMethPropdef#compile_externmeth_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
3 short int nitc__abstract_compiler___AMethPropdef___compile_externmeth_to_c(val* self, val* p0, val* p1, val* p2) {
4 short int var /* : Bool */;
5 val* var_v /* var v: AbstractCompilerVisitor */;
6 val* var_mpropdef /* var mpropdef: MMethodDef */;
7 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
8 static val* varonce;
9 val* var1 /* : String */;
10 char* var2 /* : NativeString */;
11 val* var3 /* : String */;
12 val* var4 /* : AbstractCompiler */;
13 val* var6 /* : AbstractCompiler */;
14 val* var7 /* : ModelBuilder */;
15 val* var9 /* : ModelBuilder */;
16 val* var10 /* : nullable AAnnotation */;
17 val* var_at /* var at: nullable AAnnotation */;
18 short int var11 /* : Bool */;
19 short int var12 /* : Bool */;
20 short int var13 /* : Bool */;
21 val* var_other /* var other: nullable Object */;
22 short int var15 /* : Bool */;
23 short int var16 /* : Bool */;
24 short int var_ /* var : Bool */;
25 val* var17 /* : ANodes[AExpr] */;
26 val* var19 /* : ANodes[AExpr] */;
27 long var20 /* : Int */;
28 short int var21 /* : Bool */;
29 short int var23 /* : Bool */;
30 val* var24 /* : AbstractCompiler */;
31 val* var26 /* : AbstractCompiler */;
32 val* var27 /* : ModelBuilder */;
33 val* var29 /* : ModelBuilder */;
34 val* var30 /* : nullable String */;
35 val* var_externname /* var externname: nullable Object */;
36 short int var31 /* : Bool */;
37 short int var32 /* : Bool */;
38 val* var33 /* : MClassDef */;
39 val* var35 /* : MClassDef */;
40 val* var36 /* : MModule */;
41 val* var38 /* : MModule */;
42 val* var_res /* var res: nullable RuntimeVariable */;
43 val* var39 /* : nullable MSignature */;
44 val* var41 /* : nullable MSignature */;
45 val* var42 /* : nullable MType */;
46 val* var44 /* : nullable MType */;
47 val* var_ret /* var ret: nullable MType */;
48 short int var45 /* : Bool */;
49 short int var46 /* : Bool */;
50 short int var48 /* : Bool */;
51 short int var49 /* : Bool */;
52 val* var50 /* : nullable Object */;
53 val* var51 /* : MType */;
54 val* var52 /* : RuntimeVariable */;
55 short int var53 /* : Bool */;
56 short int var54 /* : Bool */;
57 val* var_other56 /* var other: nullable Object */;
58 short int var57 /* : Bool */;
59 short int var59 /* : Bool */;
60 val* var61 /* : NativeArray[String] */;
61 static val* varonce60;
62 static val* varonce62;
63 val* var63 /* : String */;
64 char* var64 /* : NativeString */;
65 val* var65 /* : String */;
66 static val* varonce66;
67 val* var67 /* : String */;
68 char* var68 /* : NativeString */;
69 val* var69 /* : String */;
70 static val* varonce70;
71 val* var71 /* : String */;
72 char* var72 /* : NativeString */;
73 val* var73 /* : String */;
74 val* var74 /* : String */;
75 val* var75 /* : String */;
76 val* var77 /* : NativeArray[String] */;
77 static val* varonce76;
78 static val* varonce78;
79 val* var79 /* : String */;
80 char* var80 /* : NativeString */;
81 val* var81 /* : String */;
82 static val* varonce82;
83 val* var83 /* : String */;
84 char* var84 /* : NativeString */;
85 val* var85 /* : String */;
86 static val* varonce86;
87 val* var87 /* : String */;
88 char* var88 /* : NativeString */;
89 val* var89 /* : String */;
90 val* var90 /* : String */;
91 static val* varonce91;
92 val* var92 /* : String */;
93 char* var93 /* : NativeString */;
94 val* var94 /* : String */;
95 val* var95 /* : String */;
96 val* var96 /* : String */;
97 val* var97 /* : RuntimeVariable */;
98 var_v = p0;
99 var_mpropdef = p1;
100 var_arguments = p2;
101 if (likely(varonce!=NULL)) {
102 var1 = varonce;
103 } else {
104 var2 = "extern";
105 var3 = core__flat___NativeString___to_s_full(var2, 6l, 6l);
106 var1 = var3;
107 varonce = var1;
108 }
109 {
110 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
111 var6 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
112 if (unlikely(var6 == NULL)) {
113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
114 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
115 fatal_exit(1);
116 }
117 var4 = var6;
118 RET_LABEL5:(void)0;
119 }
120 }
121 {
122 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var4) on <var4:AbstractCompiler> */
123 var9 = var4->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var4:AbstractCompiler> */
124 if (unlikely(var9 == NULL)) {
125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
126 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
127 fatal_exit(1);
128 }
129 var7 = var9;
130 RET_LABEL8:(void)0;
131 }
132 }
133 {
134 var10 = nitc__annotation___Prod___get_single_annotation(self, var1, var7);
135 }
136 var_at = var10;
137 if (var_at == NULL) {
138 var12 = 0; /* is null */
139 } else {
140 var12 = 1; /* arg is null and recv is not */
141 }
142 if (0) {
143 { /* Inline kernel#Object#!= (var_at,((val*)NULL)) on <var_at:nullable AAnnotation> */
144 var_other = ((val*)NULL);
145 {
146 var15 = ((short int(*)(val* self, val* p0))(var_at->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_at, var_other); /* == on <var_at:nullable AAnnotation(AAnnotation)>*/
147 }
148 var16 = !var15;
149 var13 = var16;
150 goto RET_LABEL14;
151 RET_LABEL14:(void)0;
152 }
153 var12 = var13;
154 }
155 var_ = var12;
156 if (var12){
157 {
158 { /* Inline parser_nodes#AAnnotation#n_args (var_at) on <var_at:nullable AAnnotation(AAnnotation)> */
159 var19 = var_at->attrs[COLOR_nitc__parser_nodes__AAnnotation___n_args].val; /* _n_args on <var_at:nullable AAnnotation(AAnnotation)> */
160 if (unlikely(var19 == NULL)) {
161 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
162 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2926);
163 fatal_exit(1);
164 }
165 var17 = var19;
166 RET_LABEL18:(void)0;
167 }
168 }
169 {
170 var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var17);
171 }
172 {
173 { /* Inline kernel#Int#== (var20,1l) on <var20:Int> */
174 var23 = var20 == 1l;
175 var21 = var23;
176 goto RET_LABEL22;
177 RET_LABEL22:(void)0;
178 }
179 }
180 var11 = var21;
181 } else {
182 var11 = var_;
183 }
184 if (var11){
185 {
186 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
187 var26 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
188 if (unlikely(var26 == NULL)) {
189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
191 fatal_exit(1);
192 }
193 var24 = var26;
194 RET_LABEL25:(void)0;
195 }
196 }
197 {
198 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var24) on <var24:AbstractCompiler> */
199 var29 = var24->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var24:AbstractCompiler> */
200 if (unlikely(var29 == NULL)) {
201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
202 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
203 fatal_exit(1);
204 }
205 var27 = var29;
206 RET_LABEL28:(void)0;
207 }
208 }
209 {
210 var30 = nitc__annotation___AAnnotation___arg_as_string(var_at, var27);
211 }
212 var_externname = var30;
213 if (var_externname == NULL) {
214 var31 = 1; /* is null */
215 } else {
216 var31 = 0; /* arg is null but recv is not */
217 }
218 if (0) {
219 var32 = ((short int(*)(val* self, val* p0))(var_externname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_externname, ((val*)NULL)); /* == on <var_externname:nullable Object(nullable String)>*/
220 var31 = var32;
221 }
222 if (var31){
223 var = 0;
224 goto RET_LABEL;
225 } else {
226 }
227 } else {
228 var = 0;
229 goto RET_LABEL;
230 }
231 {
232 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
233 var35 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
234 if (unlikely(var35 == NULL)) {
235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
236 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
237 fatal_exit(1);
238 }
239 var33 = var35;
240 RET_LABEL34:(void)0;
241 }
242 }
243 {
244 { /* Inline model#MClassDef#mmodule (var33) on <var33:MClassDef> */
245 var38 = var33->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var33:MClassDef> */
246 if (unlikely(var38 == NULL)) {
247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
248 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
249 fatal_exit(1);
250 }
251 var36 = var38;
252 RET_LABEL37:(void)0;
253 }
254 }
255 {
256 nitc___nitc__AbstractCompilerVisitor___add_extern(var_v, var36); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_extern on <var_v:AbstractCompilerVisitor>*/
257 }
258 var_res = ((val*)NULL);
259 {
260 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
261 var41 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
262 var39 = var41;
263 RET_LABEL40:(void)0;
264 }
265 }
266 if (var39 == NULL) {
267 PRINT_ERROR("Runtime error: %s", "Receiver is null");
268 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3013);
269 fatal_exit(1);
270 } else {
271 { /* Inline model#MSignature#return_mtype (var39) on <var39:nullable MSignature> */
272 if (unlikely(var39 == NULL)) {
273 PRINT_ERROR("Runtime error: %s", "Receiver is null");
274 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1795);
275 fatal_exit(1);
276 }
277 var44 = var39->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var39:nullable MSignature> */
278 var42 = var44;
279 RET_LABEL43:(void)0;
280 }
281 }
282 var_ret = var42;
283 if (var_ret == NULL) {
284 var45 = 0; /* is null */
285 } else {
286 var45 = 1; /* arg is null and recv is not */
287 }
288 if (0) {
289 { /* Inline kernel#Object#!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
290 var_other = ((val*)NULL);
291 {
292 var48 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
293 }
294 var49 = !var48;
295 var46 = var49;
296 goto RET_LABEL47;
297 RET_LABEL47:(void)0;
298 }
299 var45 = var46;
300 }
301 if (var45){
302 {
303 var50 = core___core__SequenceRead___Collection__first(var_arguments);
304 }
305 {
306 var51 = nitc___nitc__AbstractCompilerVisitor___resolve_for(var_v, var_ret, var50);
307 }
308 var_ret = var51;
309 {
310 var52 = nitc___nitc__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
311 }
312 var_res = var52;
313 } else {
314 }
315 {
316 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <var_v:AbstractCompilerVisitor>*/
317 }
318 {
319 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
320 }
321 if (var_res == NULL) {
322 var53 = 1; /* is null */
323 } else {
324 var53 = 0; /* arg is null but recv is not */
325 }
326 if (0) {
327 { /* Inline kernel#Object#== (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
328 var_other56 = ((val*)NULL);
329 {
330 { /* Inline kernel#Object#is_same_instance (var_res,var_other56) on <var_res:nullable RuntimeVariable(RuntimeVariable)> */
331 var59 = var_res == var_other56;
332 var57 = var59;
333 goto RET_LABEL58;
334 RET_LABEL58:(void)0;
335 }
336 }
337 var54 = var57;
338 goto RET_LABEL55;
339 RET_LABEL55:(void)0;
340 }
341 var53 = var54;
342 }
343 if (var53){
344 if (unlikely(varonce60==NULL)) {
345 var61 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
346 if (likely(varonce62!=NULL)) {
347 var63 = varonce62;
348 } else {
349 var64 = "(";
350 var65 = core__flat___NativeString___to_s_full(var64, 1l, 1l);
351 var63 = var65;
352 varonce62 = var63;
353 }
354 ((struct instance_core__NativeArray*)var61)->values[1]=var63;
355 if (likely(varonce66!=NULL)) {
356 var67 = varonce66;
357 } else {
358 var68 = ");";
359 var69 = core__flat___NativeString___to_s_full(var68, 2l, 2l);
360 var67 = var69;
361 varonce66 = var67;
362 }
363 ((struct instance_core__NativeArray*)var61)->values[3]=var67;
364 } else {
365 var61 = varonce60;
366 varonce60 = NULL;
367 }
368 ((struct instance_core__NativeArray*)var61)->values[0]=var_externname;
369 if (likely(varonce70!=NULL)) {
370 var71 = varonce70;
371 } else {
372 var72 = ", ";
373 var73 = core__flat___NativeString___to_s_full(var72, 2l, 2l);
374 var71 = var73;
375 varonce70 = var71;
376 }
377 {
378 var74 = core__abstract_text___Collection___join(var_arguments, var71);
379 }
380 ((struct instance_core__NativeArray*)var61)->values[2]=var74;
381 {
382 var75 = ((val*(*)(val* self))(var61->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var61); /* native_to_s on <var61:NativeArray[String]>*/
383 }
384 varonce60 = var61;
385 {
386 nitc___nitc__AbstractCompilerVisitor___add(var_v, var75); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
387 }
388 } else {
389 if (unlikely(varonce76==NULL)) {
390 var77 = NEW_core__NativeArray(6l, &type_core__NativeArray__core__String);
391 if (likely(varonce78!=NULL)) {
392 var79 = varonce78;
393 } else {
394 var80 = " = ";
395 var81 = core__flat___NativeString___to_s_full(var80, 3l, 3l);
396 var79 = var81;
397 varonce78 = var79;
398 }
399 ((struct instance_core__NativeArray*)var77)->values[1]=var79;
400 if (likely(varonce82!=NULL)) {
401 var83 = varonce82;
402 } else {
403 var84 = "(";
404 var85 = core__flat___NativeString___to_s_full(var84, 1l, 1l);
405 var83 = var85;
406 varonce82 = var83;
407 }
408 ((struct instance_core__NativeArray*)var77)->values[3]=var83;
409 if (likely(varonce86!=NULL)) {
410 var87 = varonce86;
411 } else {
412 var88 = ");";
413 var89 = core__flat___NativeString___to_s_full(var88, 2l, 2l);
414 var87 = var89;
415 varonce86 = var87;
416 }
417 ((struct instance_core__NativeArray*)var77)->values[5]=var87;
418 } else {
419 var77 = varonce76;
420 varonce76 = NULL;
421 }
422 {
423 var90 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
424 }
425 ((struct instance_core__NativeArray*)var77)->values[0]=var90;
426 ((struct instance_core__NativeArray*)var77)->values[2]=var_externname;
427 if (likely(varonce91!=NULL)) {
428 var92 = varonce91;
429 } else {
430 var93 = ", ";
431 var94 = core__flat___NativeString___to_s_full(var93, 2l, 2l);
432 var92 = var94;
433 varonce91 = var92;
434 }
435 {
436 var95 = core__abstract_text___Collection___join(var_arguments, var92);
437 }
438 ((struct instance_core__NativeArray*)var77)->values[4]=var95;
439 {
440 var96 = ((val*(*)(val* self))(var77->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var77); /* native_to_s on <var77:NativeArray[String]>*/
441 }
442 varonce76 = var77;
443 {
444 nitc___nitc__AbstractCompilerVisitor___add(var_v, var96); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
445 }
446 if (unlikely(var_ret == NULL)) {
447 PRINT_ERROR("Runtime error: %s", "Cast failed");
448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3025);
449 fatal_exit(1);
450 }
451 {
452 var97 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret); /* box_extern on <var_v:AbstractCompilerVisitor>*/
453 }
454 var_res = var97;
455 {
456 nitc___nitc__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
457 }
458 }
459 var = 1;
460 goto RET_LABEL;
461 RET_LABEL:;
462 return var;
463 }
464 /* method abstract_compiler#AMethPropdef#compile_externinit_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]): Bool */
465 short int nitc__abstract_compiler___AMethPropdef___compile_externinit_to_c(val* self, val* p0, val* p1, val* p2) {
466 short int var /* : Bool */;
467 val* var_v /* var v: AbstractCompilerVisitor */;
468 val* var_mpropdef /* var mpropdef: MMethodDef */;
469 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
470 static val* varonce;
471 val* var1 /* : String */;
472 char* var2 /* : NativeString */;
473 val* var3 /* : String */;
474 val* var4 /* : AbstractCompiler */;
475 val* var6 /* : AbstractCompiler */;
476 val* var7 /* : ModelBuilder */;
477 val* var9 /* : ModelBuilder */;
478 val* var10 /* : nullable AAnnotation */;
479 val* var_at /* var at: nullable AAnnotation */;
480 short int var11 /* : Bool */;
481 short int var12 /* : Bool */;
482 val* var_other /* var other: nullable Object */;
483 short int var14 /* : Bool */;
484 short int var15 /* : Bool */;
485 val* var16 /* : AbstractCompiler */;
486 val* var18 /* : AbstractCompiler */;
487 val* var19 /* : ModelBuilder */;
488 val* var21 /* : ModelBuilder */;
489 val* var22 /* : nullable String */;
490 val* var_externname /* var externname: nullable Object */;
491 short int var23 /* : Bool */;
492 short int var24 /* : Bool */;
493 val* var25 /* : MClassDef */;
494 val* var27 /* : MClassDef */;
495 val* var28 /* : MModule */;
496 val* var30 /* : MModule */;
497 val* var31 /* : nullable Object */;
498 val* var32 /* : MType */;
499 val* var34 /* : MType */;
500 val* var_ret /* var ret: MType */;
501 val* var35 /* : RuntimeVariable */;
502 val* var_res /* var res: RuntimeVariable */;
503 val* var36 /* : nullable Object */;
504 val* var38 /* : NativeArray[String] */;
505 static val* varonce37;
506 static val* varonce39;
507 val* var40 /* : String */;
508 char* var41 /* : NativeString */;
509 val* var42 /* : String */;
510 static val* varonce43;
511 val* var44 /* : String */;
512 char* var45 /* : NativeString */;
513 val* var46 /* : String */;
514 static val* varonce47;
515 val* var48 /* : String */;
516 char* var49 /* : NativeString */;
517 val* var50 /* : String */;
518 val* var51 /* : String */;
519 static val* varonce52;
520 val* var53 /* : String */;
521 char* var54 /* : NativeString */;
522 val* var55 /* : String */;
523 val* var56 /* : String */;
524 val* var57 /* : String */;
525 val* var58 /* : RuntimeVariable */;
526 var_v = p0;
527 var_mpropdef = p1;
528 var_arguments = p2;
529 if (likely(varonce!=NULL)) {
530 var1 = varonce;
531 } else {
532 var2 = "extern";
533 var3 = core__flat___NativeString___to_s_full(var2, 6l, 6l);
534 var1 = var3;
535 varonce = var1;
536 }
537 {
538 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
539 var6 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
540 if (unlikely(var6 == NULL)) {
541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
543 fatal_exit(1);
544 }
545 var4 = var6;
546 RET_LABEL5:(void)0;
547 }
548 }
549 {
550 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var4) on <var4:AbstractCompiler> */
551 var9 = var4->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var4:AbstractCompiler> */
552 if (unlikely(var9 == NULL)) {
553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
554 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
555 fatal_exit(1);
556 }
557 var7 = var9;
558 RET_LABEL8:(void)0;
559 }
560 }
561 {
562 var10 = nitc__annotation___Prod___get_single_annotation(self, var1, var7);
563 }
564 var_at = var10;
565 if (var_at == NULL) {
566 var11 = 0; /* is null */
567 } else {
568 var11 = 1; /* arg is null and recv is not */
569 }
570 if (0) {
571 { /* Inline kernel#Object#!= (var_at,((val*)NULL)) on <var_at:nullable AAnnotation> */
572 var_other = ((val*)NULL);
573 {
574 var14 = ((short int(*)(val* self, val* p0))(var_at->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_at, var_other); /* == on <var_at:nullable AAnnotation(AAnnotation)>*/
575 }
576 var15 = !var14;
577 var12 = var15;
578 goto RET_LABEL13;
579 RET_LABEL13:(void)0;
580 }
581 var11 = var12;
582 }
583 if (var11){
584 {
585 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
586 var18 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
587 if (unlikely(var18 == NULL)) {
588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
589 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
590 fatal_exit(1);
591 }
592 var16 = var18;
593 RET_LABEL17:(void)0;
594 }
595 }
596 {
597 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var16) on <var16:AbstractCompiler> */
598 var21 = var16->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var16:AbstractCompiler> */
599 if (unlikely(var21 == NULL)) {
600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
602 fatal_exit(1);
603 }
604 var19 = var21;
605 RET_LABEL20:(void)0;
606 }
607 }
608 {
609 var22 = nitc__annotation___AAnnotation___arg_as_string(var_at, var19);
610 }
611 var_externname = var22;
612 if (var_externname == NULL) {
613 var23 = 1; /* is null */
614 } else {
615 var23 = 0; /* arg is null but recv is not */
616 }
617 if (0) {
618 var24 = ((short int(*)(val* self, val* p0))(var_externname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_externname, ((val*)NULL)); /* == on <var_externname:nullable Object(nullable String)>*/
619 var23 = var24;
620 }
621 if (var23){
622 var = 0;
623 goto RET_LABEL;
624 } else {
625 }
626 } else {
627 var = 0;
628 goto RET_LABEL;
629 }
630 {
631 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:MMethodDef> */
632 var27 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MMethodDef> */
633 if (unlikely(var27 == NULL)) {
634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2227);
636 fatal_exit(1);
637 }
638 var25 = var27;
639 RET_LABEL26:(void)0;
640 }
641 }
642 {
643 { /* Inline model#MClassDef#mmodule (var25) on <var25:MClassDef> */
644 var30 = var25->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var25:MClassDef> */
645 if (unlikely(var30 == NULL)) {
646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
647 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 573);
648 fatal_exit(1);
649 }
650 var28 = var30;
651 RET_LABEL29:(void)0;
652 }
653 }
654 {
655 nitc___nitc__AbstractCompilerVisitor___add_extern(var_v, var28); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_extern on <var_v:AbstractCompilerVisitor>*/
656 }
657 {
658 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__adapt_signature(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#adapt_signature on <var_v:AbstractCompilerVisitor>*/
659 }
660 {
661 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__unbox_signature_extern(var_v, var_mpropdef, var_arguments); /* Direct call separate_compiler#SeparateCompilerVisitor#unbox_signature_extern on <var_v:AbstractCompilerVisitor>*/
662 }
663 {
664 var31 = core___core__SequenceRead___Collection__first(var_arguments);
665 }
666 {
667 { /* Inline abstract_compiler#RuntimeVariable#mtype (var31) on <var31:nullable Object(RuntimeVariable)> */
668 var34 = var31->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var31:nullable Object(RuntimeVariable)> */
669 if (unlikely(var34 == NULL)) {
670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
671 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1870);
672 fatal_exit(1);
673 }
674 var32 = var34;
675 RET_LABEL33:(void)0;
676 }
677 }
678 var_ret = var32;
679 {
680 var35 = nitc___nitc__AbstractCompilerVisitor___new_var_extern(var_v, var_ret);
681 }
682 var_res = var35;
683 {
684 var36 = core___core__AbstractArray___core__abstract_collection__Sequence__shift(var_arguments);
685 }
686 if (unlikely(varonce37==NULL)) {
687 var38 = NEW_core__NativeArray(6l, &type_core__NativeArray__core__String);
688 if (likely(varonce39!=NULL)) {
689 var40 = varonce39;
690 } else {
691 var41 = " = ";
692 var42 = core__flat___NativeString___to_s_full(var41, 3l, 3l);
693 var40 = var42;
694 varonce39 = var40;
695 }
696 ((struct instance_core__NativeArray*)var38)->values[1]=var40;
697 if (likely(varonce43!=NULL)) {
698 var44 = varonce43;
699 } else {
700 var45 = "(";
701 var46 = core__flat___NativeString___to_s_full(var45, 1l, 1l);
702 var44 = var46;
703 varonce43 = var44;
704 }
705 ((struct instance_core__NativeArray*)var38)->values[3]=var44;
706 if (likely(varonce47!=NULL)) {
707 var48 = varonce47;
708 } else {
709 var49 = ");";
710 var50 = core__flat___NativeString___to_s_full(var49, 2l, 2l);
711 var48 = var50;
712 varonce47 = var48;
713 }
714 ((struct instance_core__NativeArray*)var38)->values[5]=var48;
715 } else {
716 var38 = varonce37;
717 varonce37 = NULL;
718 }
719 {
720 var51 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
721 }
722 ((struct instance_core__NativeArray*)var38)->values[0]=var51;
723 ((struct instance_core__NativeArray*)var38)->values[2]=var_externname;
724 if (likely(varonce52!=NULL)) {
725 var53 = varonce52;
726 } else {
727 var54 = ", ";
728 var55 = core__flat___NativeString___to_s_full(var54, 2l, 2l);
729 var53 = var55;
730 varonce52 = var53;
731 }
732 {
733 var56 = core__abstract_text___Collection___join(var_arguments, var53);
734 }
735 ((struct instance_core__NativeArray*)var38)->values[4]=var56;
736 {
737 var57 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
738 }
739 varonce37 = var38;
740 {
741 nitc___nitc__AbstractCompilerVisitor___add(var_v, var57); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
742 }
743 {
744 var58 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__box_extern]))(var_v, var_res, var_ret); /* box_extern on <var_v:AbstractCompilerVisitor>*/
745 }
746 var_res = var58;
747 {
748 nitc___nitc__AbstractCompilerVisitor___ret(var_v, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#ret on <var_v:AbstractCompilerVisitor>*/
749 }
750 var = 1;
751 goto RET_LABEL;
752 RET_LABEL:;
753 return var;
754 }
755 /* method abstract_compiler#AAttrPropdef#can_inline for (self: AAttrPropdef): Bool */
756 short int nitc__abstract_compiler___AAttrPropdef___APropdef__can_inline(val* self) {
757 short int var /* : Bool */;
758 short int var1 /* : Bool */;
759 short int var3 /* : Bool */;
760 short int var4 /* : Bool */;
761 {
762 { /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
763 var3 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
764 var1 = var3;
765 RET_LABEL2:(void)0;
766 }
767 }
768 var4 = !var1;
769 var = var4;
770 goto RET_LABEL;
771 RET_LABEL:;
772 return var;
773 }
774 /* method abstract_compiler#AAttrPropdef#compile_to_c for (self: AAttrPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
775 void nitc__abstract_compiler___AAttrPropdef___APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
776 val* var_v /* var v: AbstractCompilerVisitor */;
777 val* var_mpropdef /* var mpropdef: MMethodDef */;
778 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
779 val* var /* : nullable MMethodDef */;
780 val* var2 /* : nullable MMethodDef */;
781 short int var3 /* : Bool */;
782 val* var_other /* var other: nullable Object */;
783 short int var5 /* : Bool */;
784 short int var7 /* : Bool */;
785 long var8 /* : Int */;
786 long var10 /* : Int */;
787 short int var11 /* : Bool */;
788 short int var13 /* : Bool */;
789 val* var14 /* : nullable Object */;
790 val* var_recv /* var recv: RuntimeVariable */;
791 short int var15 /* : Bool */;
792 short int var17 /* : Bool */;
793 val* var18 /* : nullable MType */;
794 val* var20 /* : nullable MType */;
795 val* var_ret /* var ret: nullable MType */;
796 short int var21 /* : Bool */;
797 short int var22 /* : Bool */;
798 short int var23 /* : Bool */;
799 short int var_ /* var : Bool */;
800 short int var24 /* : Bool */;
801 int cltype;
802 int idtype;
803 short int var25 /* : Bool */;
804 short int var_useiset /* var useiset: Bool */;
805 val* var26 /* : nullable MAttributeDef */;
806 val* var28 /* : nullable MAttributeDef */;
807 val* var29 /* : MProperty */;
808 val* var31 /* : MProperty */;
809 val* var_guard /* var guard: MAttribute */;
810 val* var32 /* : nullable MPropDef */;
811 val* var34 /* : nullable MPropDef */;
812 val* var35 /* : MProperty */;
813 val* var37 /* : MProperty */;
814 val* var38 /* : RuntimeVariable */;
815 val* var_set /* var set: nullable Object */;
816 val* var39 /* : RuntimeVariable */;
817 val* var40 /* : NativeArray[String] */;
818 static val* varonce;
819 static val* varonce41;
820 val* var42 /* : String */;
821 char* var43 /* : NativeString */;
822 val* var44 /* : String */;
823 static val* varonce45;
824 val* var46 /* : String */;
825 char* var47 /* : NativeString */;
826 val* var48 /* : String */;
827 val* var49 /* : String */;
828 val* var50 /* : String */;
829 val* var51 /* : nullable MPropDef */;
830 val* var53 /* : nullable MPropDef */;
831 val* var54 /* : MProperty */;
832 val* var56 /* : MProperty */;
833 val* var57 /* : RuntimeVariable */;
834 val* var_res /* var res: nullable Object */;
835 static val* varonce58;
836 val* var59 /* : String */;
837 char* var60 /* : NativeString */;
838 val* var61 /* : String */;
839 val* var62 /* : RuntimeVariable */;
840 val* var_value /* var value: RuntimeVariable */;
841 short int var63 /* : Bool */;
842 val* var64 /* : RuntimeVariable */;
843 val* var_true_v /* var true_v: RuntimeVariable */;
844 val* var65 /* : nullable Object */;
845 static val* varonce66;
846 val* var67 /* : String */;
847 char* var68 /* : NativeString */;
848 val* var69 /* : String */;
849 val* var70 /* : nullable MPropDef */;
850 val* var72 /* : nullable MPropDef */;
851 val* var73 /* : MProperty */;
852 val* var75 /* : MProperty */;
853 val* var76 /* : nullable Object */;
854 val* var77 /* : RuntimeVariable */;
855 val* var78 /* : nullable StaticFrame */;
856 val* var80 /* : nullable StaticFrame */;
857 val* var81 /* : nullable RuntimeVariable */;
858 val* var83 /* : nullable RuntimeVariable */;
859 val* var84 /* : nullable MMethodDef */;
860 val* var86 /* : nullable MMethodDef */;
861 short int var87 /* : Bool */;
862 short int var89 /* : Bool */;
863 short int var91 /* : Bool */;
864 long var92 /* : Int */;
865 long var94 /* : Int */;
866 short int var95 /* : Bool */;
867 short int var97 /* : Bool */;
868 val* var98 /* : nullable MPropDef */;
869 val* var100 /* : nullable MPropDef */;
870 val* var101 /* : MProperty */;
871 val* var103 /* : MProperty */;
872 val* var104 /* : nullable Object */;
873 val* var105 /* : nullable Object */;
874 short int var106 /* : Bool */;
875 short int var108 /* : Bool */;
876 val* var109 /* : nullable MType */;
877 val* var111 /* : nullable MType */;
878 val* var_ret112 /* var ret: nullable MType */;
879 short int var113 /* : Bool */;
880 short int var114 /* : Bool */;
881 short int var115 /* : Bool */;
882 short int var_116 /* var : Bool */;
883 short int var117 /* : Bool */;
884 int cltype118;
885 int idtype119;
886 short int var120 /* : Bool */;
887 short int var_useiset121 /* var useiset: Bool */;
888 short int var122 /* : Bool */;
889 val* var123 /* : nullable MAttributeDef */;
890 val* var125 /* : nullable MAttributeDef */;
891 val* var126 /* : MProperty */;
892 val* var128 /* : MProperty */;
893 val* var129 /* : nullable Object */;
894 val* var130 /* : RuntimeVariable */;
895 var_v = p0;
896 var_mpropdef = p1;
897 var_arguments = p2;
898 {
899 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
900 var2 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
901 var = var2;
902 RET_LABEL1:(void)0;
903 }
904 }
905 {
906 { /* Inline kernel#Object#== (var_mpropdef,var) on <var_mpropdef:MMethodDef> */
907 var_other = var;
908 {
909 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
910 var7 = var_mpropdef == var_other;
911 var5 = var7;
912 goto RET_LABEL6;
913 RET_LABEL6:(void)0;
914 }
915 }
916 var3 = var5;
917 goto RET_LABEL4;
918 RET_LABEL4:(void)0;
919 }
920 }
921 if (var3){
922 {
923 { /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
924 var10 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
925 var8 = var10;
926 RET_LABEL9:(void)0;
927 }
928 }
929 {
930 { /* Inline kernel#Int#== (var8,1l) on <var8:Int> */
931 var13 = var8 == 1l;
932 var11 = var13;
933 goto RET_LABEL12;
934 RET_LABEL12:(void)0;
935 }
936 }
937 if (unlikely(!var11)) {
938 PRINT_ERROR("Runtime error: %s", "Assert failed");
939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3064);
940 fatal_exit(1);
941 }
942 {
943 var14 = core___core__SequenceRead___Collection__first(var_arguments);
944 }
945 var_recv = var14;
946 {
947 { /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
948 var17 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
949 var15 = var17;
950 RET_LABEL16:(void)0;
951 }
952 }
953 if (var15){
954 {
955 { /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
956 var20 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
957 var18 = var20;
958 RET_LABEL19:(void)0;
959 }
960 }
961 var_ret = var18;
962 if (var_ret == NULL) {
963 PRINT_ERROR("Runtime error: %s", "Receiver is null");
964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3070);
965 fatal_exit(1);
966 } else {
967 var22 = ((short int(*)(val* self))(var_ret->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var_ret); /* is_c_primitive on <var_ret:nullable MType>*/
968 }
969 var23 = !var22;
970 var_ = var23;
971 if (var23){
972 /* <var_ret:nullable MType> isa MNullableType */
973 cltype = type_nitc__MNullableType.color;
974 idtype = type_nitc__MNullableType.id;
975 if(var_ret == NULL) {
976 var24 = 0;
977 } else {
978 if(cltype >= var_ret->type->table_size) {
979 var24 = 0;
980 } else {
981 var24 = var_ret->type->type_table[cltype] == idtype;
982 }
983 }
984 var25 = !var24;
985 var21 = var25;
986 } else {
987 var21 = var_;
988 }
989 var_useiset = var21;
990 {
991 { /* Inline modelize_property#AAttrPropdef#mlazypropdef (self) on <self:AAttrPropdef> */
992 var28 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
993 var26 = var28;
994 RET_LABEL27:(void)0;
995 }
996 }
997 if (var26 == NULL) {
998 PRINT_ERROR("Runtime error: %s", "Receiver is null");
999 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3071);
1000 fatal_exit(1);
1001 } else {
1002 { /* Inline model#MPropDef#mproperty (var26) on <var26:nullable MAttributeDef> */
1003 if (unlikely(var26 == NULL)) {
1004 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1005 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1006 fatal_exit(1);
1007 }
1008 var31 = var26->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var26:nullable MAttributeDef> */
1009 if (unlikely(var31 == NULL)) {
1010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1012 fatal_exit(1);
1013 }
1014 var29 = var31;
1015 RET_LABEL30:(void)0;
1016 }
1017 }
1018 var_guard = var29;
1019 if (var_useiset){
1020 {
1021 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
1022 var34 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1023 var32 = var34;
1024 RET_LABEL33:(void)0;
1025 }
1026 }
1027 if (var32 == NULL) {
1028 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1029 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3073);
1030 fatal_exit(1);
1031 } else {
1032 { /* Inline model#MPropDef#mproperty (var32) on <var32:nullable MPropDef(nullable MAttributeDef)> */
1033 if (unlikely(var32 == NULL)) {
1034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1035 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1036 fatal_exit(1);
1037 }
1038 var37 = var32->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var32:nullable MPropDef(nullable MAttributeDef)> */
1039 if (unlikely(var37 == NULL)) {
1040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1042 fatal_exit(1);
1043 }
1044 var35 = var37;
1045 RET_LABEL36:(void)0;
1046 }
1047 }
1048 {
1049 var38 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__isset_attribute(var_v, var35, var_recv);
1050 }
1051 var_set = var38;
1052 } else {
1053 {
1054 var39 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_guard, var_recv);
1055 }
1056 var_set = var39;
1057 }
1058 if (unlikely(varonce==NULL)) {
1059 var40 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
1060 if (likely(varonce41!=NULL)) {
1061 var42 = varonce41;
1062 } else {
1063 var43 = "if(likely(";
1064 var44 = core__flat___NativeString___to_s_full(var43, 10l, 10l);
1065 var42 = var44;
1066 varonce41 = var42;
1067 }
1068 ((struct instance_core__NativeArray*)var40)->values[0]=var42;
1069 if (likely(varonce45!=NULL)) {
1070 var46 = varonce45;
1071 } else {
1072 var47 = ")) {";
1073 var48 = core__flat___NativeString___to_s_full(var47, 4l, 4l);
1074 var46 = var48;
1075 varonce45 = var46;
1076 }
1077 ((struct instance_core__NativeArray*)var40)->values[2]=var46;
1078 } else {
1079 var40 = varonce;
1080 varonce = NULL;
1081 }
1082 {
1083 var49 = ((val*(*)(val* self))(var_set->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_set); /* to_s on <var_set:nullable Object(RuntimeVariable)>*/
1084 }
1085 ((struct instance_core__NativeArray*)var40)->values[1]=var49;
1086 {
1087 var50 = ((val*(*)(val* self))(var40->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var40); /* native_to_s on <var40:NativeArray[String]>*/
1088 }
1089 varonce = var40;
1090 {
1091 nitc___nitc__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1092 }
1093 {
1094 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
1095 var53 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1096 var51 = var53;
1097 RET_LABEL52:(void)0;
1098 }
1099 }
1100 if (var51 == NULL) {
1101 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1102 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3078);
1103 fatal_exit(1);
1104 } else {
1105 { /* Inline model#MPropDef#mproperty (var51) on <var51:nullable MPropDef(nullable MAttributeDef)> */
1106 if (unlikely(var51 == NULL)) {
1107 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1108 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1109 fatal_exit(1);
1110 }
1111 var56 = var51->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var51:nullable MPropDef(nullable MAttributeDef)> */
1112 if (unlikely(var56 == NULL)) {
1113 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1114 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1115 fatal_exit(1);
1116 }
1117 var54 = var56;
1118 RET_LABEL55:(void)0;
1119 }
1120 }
1121 {
1122 var57 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var54, var_recv);
1123 }
1124 var_res = var57;
1125 if (likely(varonce58!=NULL)) {
1126 var59 = varonce58;
1127 } else {
1128 var60 = "} else {";
1129 var61 = core__flat___NativeString___to_s_full(var60, 8l, 8l);
1130 var59 = var61;
1131 varonce58 = var59;
1132 }
1133 {
1134 nitc___nitc__AbstractCompilerVisitor___add(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1135 }
1136 {
1137 var62 = nitc__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
1138 }
1139 var_value = var62;
1140 {
1141 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var_value); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
1142 }
1143 var63 = !var_useiset;
1144 if (var63){
1145 {
1146 var64 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
1147 }
1148 var_true_v = var64;
1149 {
1150 var65 = core___core__SequenceRead___Collection__first(var_arguments);
1151 }
1152 {
1153 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_guard, var65, var_true_v); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
1154 }
1155 } else {
1156 }
1157 if (likely(varonce66!=NULL)) {
1158 var67 = varonce66;
1159 } else {
1160 var68 = "}";
1161 var69 = core__flat___NativeString___to_s_full(var68, 1l, 1l);
1162 var67 = var69;
1163 varonce66 = var67;
1164 }
1165 {
1166 nitc___nitc__AbstractCompilerVisitor___add(var_v, var67); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1167 }
1168 } else {
1169 {
1170 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
1171 var72 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1172 var70 = var72;
1173 RET_LABEL71:(void)0;
1174 }
1175 }
1176 if (var70 == NULL) {
1177 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1178 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3090);
1179 fatal_exit(1);
1180 } else {
1181 { /* Inline model#MPropDef#mproperty (var70) on <var70:nullable MPropDef(nullable MAttributeDef)> */
1182 if (unlikely(var70 == NULL)) {
1183 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1184 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1185 fatal_exit(1);
1186 }
1187 var75 = var70->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var70:nullable MPropDef(nullable MAttributeDef)> */
1188 if (unlikely(var75 == NULL)) {
1189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1191 fatal_exit(1);
1192 }
1193 var73 = var75;
1194 RET_LABEL74:(void)0;
1195 }
1196 }
1197 {
1198 var76 = core___core__SequenceRead___Collection__first(var_arguments);
1199 }
1200 {
1201 var77 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var73, var76);
1202 }
1203 var_res = var77;
1204 }
1205 {
1206 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
1207 var80 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
1208 var78 = var80;
1209 RET_LABEL79:(void)0;
1210 }
1211 }
1212 if (var78 == NULL) {
1213 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1214 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3092);
1215 fatal_exit(1);
1216 } else {
1217 { /* Inline abstract_compiler#StaticFrame#returnvar (var78) on <var78:nullable StaticFrame> */
1218 if (unlikely(var78 == NULL)) {
1219 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1220 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1924);
1221 fatal_exit(1);
1222 }
1223 var83 = var78->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var78:nullable StaticFrame> */
1224 var81 = var83;
1225 RET_LABEL82:(void)0;
1226 }
1227 }
1228 if (unlikely(var81 == NULL)) {
1229 PRINT_ERROR("Runtime error: %s", "Cast failed");
1230 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3092);
1231 fatal_exit(1);
1232 }
1233 {
1234 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var81, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
1235 }
1236 } else {
1237 {
1238 { /* Inline modelize_property#AAttrPropdef#mwritepropdef (self) on <self:AAttrPropdef> */
1239 var86 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mwritepropdef].val; /* _mwritepropdef on <self:AAttrPropdef> */
1240 var84 = var86;
1241 RET_LABEL85:(void)0;
1242 }
1243 }
1244 {
1245 { /* Inline kernel#Object#== (var_mpropdef,var84) on <var_mpropdef:MMethodDef> */
1246 var_other = var84;
1247 {
1248 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
1249 var91 = var_mpropdef == var_other;
1250 var89 = var91;
1251 goto RET_LABEL90;
1252 RET_LABEL90:(void)0;
1253 }
1254 }
1255 var87 = var89;
1256 goto RET_LABEL88;
1257 RET_LABEL88:(void)0;
1258 }
1259 }
1260 if (var87){
1261 {
1262 { /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
1263 var94 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
1264 var92 = var94;
1265 RET_LABEL93:(void)0;
1266 }
1267 }
1268 {
1269 { /* Inline kernel#Int#== (var92,2l) on <var92:Int> */
1270 var97 = var92 == 2l;
1271 var95 = var97;
1272 goto RET_LABEL96;
1273 RET_LABEL96:(void)0;
1274 }
1275 }
1276 if (unlikely(!var95)) {
1277 PRINT_ERROR("Runtime error: %s", "Assert failed");
1278 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3094);
1279 fatal_exit(1);
1280 }
1281 {
1282 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
1283 var100 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1284 var98 = var100;
1285 RET_LABEL99:(void)0;
1286 }
1287 }
1288 if (var98 == NULL) {
1289 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3095);
1291 fatal_exit(1);
1292 } else {
1293 { /* Inline model#MPropDef#mproperty (var98) on <var98:nullable MPropDef(nullable MAttributeDef)> */
1294 if (unlikely(var98 == NULL)) {
1295 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1296 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1297 fatal_exit(1);
1298 }
1299 var103 = var98->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var98:nullable MPropDef(nullable MAttributeDef)> */
1300 if (unlikely(var103 == NULL)) {
1301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1303 fatal_exit(1);
1304 }
1305 var101 = var103;
1306 RET_LABEL102:(void)0;
1307 }
1308 }
1309 {
1310 var104 = core___core__SequenceRead___Collection__first(var_arguments);
1311 }
1312 {
1313 var105 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
1314 }
1315 {
1316 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var101, var104, var105); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
1317 }
1318 {
1319 { /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
1320 var108 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
1321 var106 = var108;
1322 RET_LABEL107:(void)0;
1323 }
1324 }
1325 if (var106){
1326 {
1327 { /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
1328 var111 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
1329 var109 = var111;
1330 RET_LABEL110:(void)0;
1331 }
1332 }
1333 var_ret112 = var109;
1334 if (var_ret112 == NULL) {
1335 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1336 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3098);
1337 fatal_exit(1);
1338 } else {
1339 var114 = ((short int(*)(val* self))(var_ret112->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var_ret112); /* is_c_primitive on <var_ret112:nullable MType>*/
1340 }
1341 var115 = !var114;
1342 var_116 = var115;
1343 if (var115){
1344 /* <var_ret112:nullable MType> isa MNullableType */
1345 cltype118 = type_nitc__MNullableType.color;
1346 idtype119 = type_nitc__MNullableType.id;
1347 if(var_ret112 == NULL) {
1348 var117 = 0;
1349 } else {
1350 if(cltype118 >= var_ret112->type->table_size) {
1351 var117 = 0;
1352 } else {
1353 var117 = var_ret112->type->type_table[cltype118] == idtype119;
1354 }
1355 }
1356 var120 = !var117;
1357 var113 = var120;
1358 } else {
1359 var113 = var_116;
1360 }
1361 var_useiset121 = var113;
1362 var122 = !var_useiset121;
1363 if (var122){
1364 {
1365 { /* Inline modelize_property#AAttrPropdef#mlazypropdef (self) on <self:AAttrPropdef> */
1366 var125 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
1367 var123 = var125;
1368 RET_LABEL124:(void)0;
1369 }
1370 }
1371 if (var123 == NULL) {
1372 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1373 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3100);
1374 fatal_exit(1);
1375 } else {
1376 { /* Inline model#MPropDef#mproperty (var123) on <var123:nullable MAttributeDef> */
1377 if (unlikely(var123 == NULL)) {
1378 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1380 fatal_exit(1);
1381 }
1382 var128 = var123->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var123:nullable MAttributeDef> */
1383 if (unlikely(var128 == NULL)) {
1384 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1385 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1386 fatal_exit(1);
1387 }
1388 var126 = var128;
1389 RET_LABEL127:(void)0;
1390 }
1391 }
1392 {
1393 var129 = core___core__SequenceRead___Collection__first(var_arguments);
1394 }
1395 {
1396 var130 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
1397 }
1398 {
1399 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var126, var129, var130); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
1400 }
1401 } else {
1402 }
1403 } else {
1404 }
1405 } else {
1406 PRINT_ERROR("Runtime error: %s", "Aborted");
1407 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3104);
1408 fatal_exit(1);
1409 }
1410 }
1411 RET_LABEL:;
1412 }
1413 /* method abstract_compiler#AAttrPropdef#init_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
1414 void nitc__abstract_compiler___AAttrPropdef___init_expr(val* self, val* p0, val* p1) {
1415 val* var_v /* var v: AbstractCompilerVisitor */;
1416 val* var_recv /* var recv: RuntimeVariable */;
1417 short int var /* : Bool */;
1418 short int var1 /* : Bool */;
1419 short int var2 /* : Bool */;
1420 short int var4 /* : Bool */;
1421 short int var_ /* var : Bool */;
1422 short int var5 /* : Bool */;
1423 short int var7 /* : Bool */;
1424 short int var8 /* : Bool */;
1425 short int var_9 /* var : Bool */;
1426 val* var10 /* : nullable AExpr */;
1427 val* var12 /* : nullable AExpr */;
1428 short int var13 /* : Bool */;
1429 int cltype;
1430 int idtype;
1431 short int var14 /* : Bool */;
1432 val* var15 /* : RuntimeVariable */;
1433 var_v = p0;
1434 var_recv = p1;
1435 {
1436 { /* Inline modelize_property#AAttrPropdef#has_value (self) on <self:AAttrPropdef> */
1437 var4 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <self:AAttrPropdef> */
1438 var2 = var4;
1439 RET_LABEL3:(void)0;
1440 }
1441 }
1442 var_ = var2;
1443 if (var2){
1444 {
1445 { /* Inline modelize_property#AAttrPropdef#is_lazy (self) on <self:AAttrPropdef> */
1446 var7 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
1447 var5 = var7;
1448 RET_LABEL6:(void)0;
1449 }
1450 }
1451 var8 = !var5;
1452 var1 = var8;
1453 } else {
1454 var1 = var_;
1455 }
1456 var_9 = var1;
1457 if (var1){
1458 {
1459 { /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
1460 var12 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
1461 var10 = var12;
1462 RET_LABEL11:(void)0;
1463 }
1464 }
1465 /* <var10:nullable AExpr> isa ANullExpr */
1466 cltype = type_nitc__ANullExpr.color;
1467 idtype = type_nitc__ANullExpr.id;
1468 if(var10 == NULL) {
1469 var13 = 0;
1470 } else {
1471 if(cltype >= var10->type->table_size) {
1472 var13 = 0;
1473 } else {
1474 var13 = var10->type->type_table[cltype] == idtype;
1475 }
1476 }
1477 var14 = !var13;
1478 var = var14;
1479 } else {
1480 var = var_9;
1481 }
1482 if (var){
1483 {
1484 var15 = nitc__abstract_compiler___AAttrPropdef___evaluate_expr(self, var_v, var_recv);
1485 }
1486 } else {
1487 }
1488 RET_LABEL:;
1489 }
1490 /* method abstract_compiler#AAttrPropdef#evaluate_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable): RuntimeVariable */
1491 val* nitc__abstract_compiler___AAttrPropdef___evaluate_expr(val* self, val* p0, val* p1) {
1492 val* var /* : RuntimeVariable */;
1493 val* var_v /* var v: AbstractCompilerVisitor */;
1494 val* var_recv /* var recv: RuntimeVariable */;
1495 val* var1 /* : nullable ANode */;
1496 val* var3 /* : nullable ANode */;
1497 val* var_oldnode /* var oldnode: nullable ANode */;
1498 val* var5 /* : nullable StaticFrame */;
1499 val* var7 /* : nullable StaticFrame */;
1500 val* var_old_frame /* var old_frame: nullable StaticFrame */;
1501 val* var8 /* : StaticFrame */;
1502 val* var9 /* : nullable MMethodDef */;
1503 val* var11 /* : nullable MMethodDef */;
1504 val* var12 /* : MType */;
1505 val* var14 /* : MType */;
1506 val* var15 /* : MType */;
1507 short int var16 /* : Bool */;
1508 int cltype;
1509 int idtype;
1510 const char* var_class_name;
1511 val* var17 /* : Array[RuntimeVariable] */;
1512 val* var_ /* var : Array[RuntimeVariable] */;
1513 val* var_frame /* var frame: StaticFrame */;
1514 val* var19 /* : nullable MType */;
1515 val* var21 /* : nullable MType */;
1516 val* var_mtype /* var mtype: nullable MType */;
1517 short int var22 /* : Bool */;
1518 short int var23 /* : Bool */;
1519 val* var_other /* var other: nullable Object */;
1520 short int var25 /* : Bool */;
1521 short int var26 /* : Bool */;
1522 val* var27 /* : nullable AExpr */;
1523 val* var29 /* : nullable AExpr */;
1524 val* var_nexpr /* var nexpr: nullable AExpr */;
1525 val* var30 /* : nullable AExpr */;
1526 val* var32 /* : nullable AExpr */;
1527 val* var_nblock /* var nblock: nullable AExpr */;
1528 short int var33 /* : Bool */;
1529 short int var34 /* : Bool */;
1530 short int var36 /* : Bool */;
1531 short int var37 /* : Bool */;
1532 val* var38 /* : RuntimeVariable */;
1533 val* var_value /* var value: nullable Object */;
1534 short int var39 /* : Bool */;
1535 short int var40 /* : Bool */;
1536 short int var42 /* : Bool */;
1537 short int var43 /* : Bool */;
1538 val* var44 /* : RuntimeVariable */;
1539 static val* varonce;
1540 val* var46 /* : String */;
1541 char* var47 /* : NativeString */;
1542 val* var48 /* : String */;
1543 val* var49 /* : String */;
1544 static val* varonce51;
1545 val* var52 /* : String */;
1546 char* var53 /* : NativeString */;
1547 val* var54 /* : String */;
1548 val* var56 /* : NativeArray[String] */;
1549 static val* varonce55;
1550 static val* varonce57;
1551 val* var58 /* : String */;
1552 char* var59 /* : NativeString */;
1553 val* var60 /* : String */;
1554 val* var61 /* : nullable String */;
1555 val* var63 /* : nullable String */;
1556 val* var64 /* : String */;
1557 static val* varonce65;
1558 val* var66 /* : String */;
1559 char* var67 /* : NativeString */;
1560 val* var68 /* : String */;
1561 val* var69 /* : nullable MPropDef */;
1562 val* var71 /* : nullable MPropDef */;
1563 val* var72 /* : MProperty */;
1564 val* var74 /* : MProperty */;
1565 var_v = p0;
1566 var_recv = p1;
1567 {
1568 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (var_v) on <var_v:AbstractCompilerVisitor> */
1569 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
1570 var1 = var3;
1571 RET_LABEL2:(void)0;
1572 }
1573 }
1574 var_oldnode = var1;
1575 {
1576 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,self) on <var_v:AbstractCompilerVisitor> */
1577 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = self; /* _current_node on <var_v:AbstractCompilerVisitor> */
1578 RET_LABEL4:(void)0;
1579 }
1580 }
1581 {
1582 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
1583 var7 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
1584 var5 = var7;
1585 RET_LABEL6:(void)0;
1586 }
1587 }
1588 var_old_frame = var5;
1589 var8 = NEW_nitc__StaticFrame(&type_nitc__StaticFrame);
1590 {
1591 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
1592 var11 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
1593 var9 = var11;
1594 RET_LABEL10:(void)0;
1595 }
1596 }
1597 if (unlikely(var9 == NULL)) {
1598 PRINT_ERROR("Runtime error: %s", "Cast failed");
1599 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3119);
1600 fatal_exit(1);
1601 }
1602 {
1603 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_recv) on <var_recv:RuntimeVariable> */
1604 var14 = var_recv->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
1605 if (unlikely(var14 == NULL)) {
1606 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
1607 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1873);
1608 fatal_exit(1);
1609 }
1610 var12 = var14;
1611 RET_LABEL13:(void)0;
1612 }
1613 }
1614 {
1615 var15 = ((val*(*)(val* self))(var12->class->vft[COLOR_nitc__model__MType__undecorate]))(var12); /* undecorate on <var12:MType>*/
1616 }
1617 /* <var15:MType> isa MClassType */
1618 cltype = type_nitc__MClassType.color;
1619 idtype = type_nitc__MClassType.id;
1620 if(cltype >= var15->type->table_size) {
1621 var16 = 0;
1622 } else {
1623 var16 = var15->type->type_table[cltype] == idtype;
1624 }
1625 if (unlikely(!var16)) {
1626 var_class_name = var15 == NULL ? "null" : var15->type->name;
1627 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1628 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3119);
1629 fatal_exit(1);
1630 }
1631 var17 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
1632 {
1633 core___core__Array___with_capacity(var17, 1l); /* Direct call array#Array#with_capacity on <var17:Array[RuntimeVariable]>*/
1634 }
1635 var_ = var17;
1636 {
1637 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
1638 }
1639 {
1640 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__visitor_61d]))(var8, var_v); /* visitor= on <var8:StaticFrame>*/
1641 }
1642 {
1643 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__mpropdef_61d]))(var8, var9); /* mpropdef= on <var8:StaticFrame>*/
1644 }
1645 {
1646 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__receiver_61d]))(var8, var15); /* receiver= on <var8:StaticFrame>*/
1647 }
1648 {
1649 ((void(*)(val* self, val* p0))(var8->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__arguments_61d]))(var8, var_); /* arguments= on <var8:StaticFrame>*/
1650 }
1651 {
1652 ((void(*)(val* self))(var8->class->vft[COLOR_core__kernel__Object__init]))(var8); /* init on <var8:StaticFrame>*/
1653 }
1654 var_frame = var8;
1655 {
1656 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
1657 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
1658 RET_LABEL18:(void)0;
1659 }
1660 }
1661 {
1662 { /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
1663 var21 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
1664 var19 = var21;
1665 RET_LABEL20:(void)0;
1666 }
1667 }
1668 var_mtype = var19;
1669 if (var_mtype == NULL) {
1670 var22 = 0; /* is null */
1671 } else {
1672 var22 = 1; /* arg is null and recv is not */
1673 }
1674 if (0) {
1675 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1676 var_other = ((val*)NULL);
1677 {
1678 var25 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on <var_mtype:nullable MType(MType)>*/
1679 }
1680 var26 = !var25;
1681 var23 = var26;
1682 goto RET_LABEL24;
1683 RET_LABEL24:(void)0;
1684 }
1685 var22 = var23;
1686 }
1687 if (unlikely(!var22)) {
1688 PRINT_ERROR("Runtime error: %s", "Assert failed");
1689 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3124);
1690 fatal_exit(1);
1691 }
1692 {
1693 { /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
1694 var29 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
1695 var27 = var29;
1696 RET_LABEL28:(void)0;
1697 }
1698 }
1699 var_nexpr = var27;
1700 {
1701 { /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
1702 var32 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
1703 var30 = var32;
1704 RET_LABEL31:(void)0;
1705 }
1706 }
1707 var_nblock = var30;
1708 if (var_nexpr == NULL) {
1709 var33 = 0; /* is null */
1710 } else {
1711 var33 = 1; /* arg is null and recv is not */
1712 }
1713 if (0) {
1714 { /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
1715 var_other = ((val*)NULL);
1716 {
1717 var36 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
1718 }
1719 var37 = !var36;
1720 var34 = var37;
1721 goto RET_LABEL35;
1722 RET_LABEL35:(void)0;
1723 }
1724 var33 = var34;
1725 }
1726 if (var33){
1727 {
1728 var38 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_nexpr, var_mtype);
1729 }
1730 var_value = var38;
1731 } else {
1732 if (var_nblock == NULL) {
1733 var39 = 0; /* is null */
1734 } else {
1735 var39 = 1; /* arg is null and recv is not */
1736 }
1737 if (0) {
1738 { /* Inline kernel#Object#!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
1739 var_other = ((val*)NULL);
1740 {
1741 var42 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nblock, var_other); /* == on <var_nblock:nullable AExpr(AExpr)>*/
1742 }
1743 var43 = !var42;
1744 var40 = var43;
1745 goto RET_LABEL41;
1746 RET_LABEL41:(void)0;
1747 }
1748 var39 = var40;
1749 }
1750 if (var39){
1751 {
1752 var44 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_mtype);
1753 }
1754 var_value = var44;
1755 {
1756 { /* Inline abstract_compiler#StaticFrame#returnvar= (var_frame,var_value) on <var_frame:StaticFrame> */
1757 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val = var_value; /* _returnvar on <var_frame:StaticFrame> */
1758 RET_LABEL45:(void)0;
1759 }
1760 }
1761 if (likely(varonce!=NULL)) {
1762 var46 = varonce;
1763 } else {
1764 var47 = "RET_LABEL";
1765 var48 = core__flat___NativeString___to_s_full(var47, 9l, 9l);
1766 var46 = var48;
1767 varonce = var46;
1768 }
1769 {
1770 var49 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var46);
1771 }
1772 {
1773 { /* Inline abstract_compiler#StaticFrame#returnlabel= (var_frame,var49) on <var_frame:StaticFrame> */
1774 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val = var49; /* _returnlabel on <var_frame:StaticFrame> */
1775 RET_LABEL50:(void)0;
1776 }
1777 }
1778 if (likely(varonce51!=NULL)) {
1779 var52 = varonce51;
1780 } else {
1781 var53 = "{";
1782 var54 = core__flat___NativeString___to_s_full(var53, 1l, 1l);
1783 var52 = var54;
1784 varonce51 = var52;
1785 }
1786 {
1787 nitc___nitc__AbstractCompilerVisitor___add(var_v, var52); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1788 }
1789 {
1790 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_nblock); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
1791 }
1792 if (unlikely(varonce55==NULL)) {
1793 var56 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
1794 if (likely(varonce57!=NULL)) {
1795 var58 = varonce57;
1796 } else {
1797 var59 = ":(void)0;";
1798 var60 = core__flat___NativeString___to_s_full(var59, 9l, 9l);
1799 var58 = var60;
1800 varonce57 = var58;
1801 }
1802 ((struct instance_core__NativeArray*)var56)->values[1]=var58;
1803 } else {
1804 var56 = varonce55;
1805 varonce55 = NULL;
1806 }
1807 {
1808 { /* Inline abstract_compiler#StaticFrame#returnlabel (var_frame) on <var_frame:StaticFrame> */
1809 var63 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var_frame:StaticFrame> */
1810 var61 = var63;
1811 RET_LABEL62:(void)0;
1812 }
1813 }
1814 if (unlikely(var61 == NULL)) {
1815 PRINT_ERROR("Runtime error: %s", "Cast failed");
1816 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3136);
1817 fatal_exit(1);
1818 }
1819 ((struct instance_core__NativeArray*)var56)->values[0]=var61;
1820 {
1821 var64 = ((val*(*)(val* self))(var56->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var56); /* native_to_s on <var56:NativeArray[String]>*/
1822 }
1823 varonce55 = var56;
1824 {
1825 nitc___nitc__AbstractCompilerVisitor___add(var_v, var64); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1826 }
1827 if (likely(varonce65!=NULL)) {
1828 var66 = varonce65;
1829 } else {
1830 var67 = "}";
1831 var68 = core__flat___NativeString___to_s_full(var67, 1l, 1l);
1832 var66 = var68;
1833 varonce65 = var66;
1834 }
1835 {
1836 nitc___nitc__AbstractCompilerVisitor___add(var_v, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1837 }
1838 } else {
1839 PRINT_ERROR("Runtime error: %s", "Aborted");
1840 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3139);
1841 fatal_exit(1);
1842 }
1843 }
1844 {
1845 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AAttrPropdef> */
1846 var71 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AAttrPropdef> */
1847 var69 = var71;
1848 RET_LABEL70:(void)0;
1849 }
1850 }
1851 if (var69 == NULL) {
1852 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1853 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3142);
1854 fatal_exit(1);
1855 } else {
1856 { /* Inline model#MPropDef#mproperty (var69) on <var69:nullable MPropDef(nullable MAttributeDef)> */
1857 if (unlikely(var69 == NULL)) {
1858 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1859 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1860 fatal_exit(1);
1861 }
1862 var74 = var69->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var69:nullable MPropDef(nullable MAttributeDef)> */
1863 if (unlikely(var74 == NULL)) {
1864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1865 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1866 fatal_exit(1);
1867 }
1868 var72 = var74;
1869 RET_LABEL73:(void)0;
1870 }
1871 }
1872 {
1873 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var72, var_recv, var_value); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <var_v:AbstractCompilerVisitor>*/
1874 }
1875 {
1876 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_old_frame) on <var_v:AbstractCompilerVisitor> */
1877 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_old_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
1878 RET_LABEL75:(void)0;
1879 }
1880 }
1881 {
1882 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node= (var_v,var_oldnode) on <var_v:AbstractCompilerVisitor> */
1883 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode; /* _current_node on <var_v:AbstractCompilerVisitor> */
1884 RET_LABEL76:(void)0;
1885 }
1886 }
1887 var = var_value;
1888 goto RET_LABEL;
1889 RET_LABEL:;
1890 return var;
1891 }
1892 /* method abstract_compiler#AClassdef#compile_to_c for (self: AClassdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
1893 void nitc__abstract_compiler___AClassdef___compile_to_c(val* self, val* p0, val* p1, val* p2) {
1894 val* var_v /* var v: AbstractCompilerVisitor */;
1895 val* var_mpropdef /* var mpropdef: MMethodDef */;
1896 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
1897 val* var /* : nullable MMethodDef */;
1898 val* var2 /* : nullable MMethodDef */;
1899 short int var3 /* : Bool */;
1900 val* var_other /* var other: nullable Object */;
1901 short int var5 /* : Bool */;
1902 short int var7 /* : Bool */;
1903 val* var8 /* : MProperty */;
1904 val* var10 /* : MProperty */;
1905 short int var11 /* : Bool */;
1906 short int var13 /* : Bool */;
1907 long var14 /* : Int */;
1908 long var16 /* : Int */;
1909 short int var17 /* : Bool */;
1910 short int var19 /* : Bool */;
1911 short int var20 /* : Bool */;
1912 short int var21 /* : Bool */;
1913 val* var22 /* : nullable Object */;
1914 val* var23 /* : MType */;
1915 val* var25 /* : MType */;
1916 short int var26 /* : Bool */;
1917 int cltype;
1918 int idtype;
1919 const char* var_class_name;
1920 val* var27 /* : nullable RuntimeVariable */;
1921 var_v = p0;
1922 var_mpropdef = p1;
1923 var_arguments = p2;
1924 {
1925 { /* Inline modelize_property#AClassdef#mfree_init (self) on <self:AClassdef> */
1926 var2 = self->attrs[COLOR_nitc__modelize_property__AClassdef___mfree_init].val; /* _mfree_init on <self:AClassdef> */
1927 var = var2;
1928 RET_LABEL1:(void)0;
1929 }
1930 }
1931 {
1932 { /* Inline kernel#Object#== (var_mpropdef,var) on <var_mpropdef:MMethodDef> */
1933 var_other = var;
1934 {
1935 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:MMethodDef> */
1936 var7 = var_mpropdef == var_other;
1937 var5 = var7;
1938 goto RET_LABEL6;
1939 RET_LABEL6:(void)0;
1940 }
1941 }
1942 var3 = var5;
1943 goto RET_LABEL4;
1944 RET_LABEL4:(void)0;
1945 }
1946 }
1947 if (var3){
1948 {
1949 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
1950 var10 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
1951 if (unlikely(var10 == NULL)) {
1952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1953 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2230);
1954 fatal_exit(1);
1955 }
1956 var8 = var10;
1957 RET_LABEL9:(void)0;
1958 }
1959 }
1960 {
1961 { /* Inline model#MMethod#is_root_init (var8) on <var8:MProperty(MMethod)> */
1962 var13 = var8->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <var8:MProperty(MMethod)> */
1963 var11 = var13;
1964 RET_LABEL12:(void)0;
1965 }
1966 }
1967 if (unlikely(!var11)) {
1968 PRINT_ERROR("Runtime error: %s", "Assert failed");
1969 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3171);
1970 fatal_exit(1);
1971 }
1972 {
1973 { /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
1974 var16 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
1975 var14 = var16;
1976 RET_LABEL15:(void)0;
1977 }
1978 }
1979 {
1980 { /* Inline kernel#Int#== (var14,1l) on <var14:Int> */
1981 var19 = var14 == 1l;
1982 var17 = var19;
1983 goto RET_LABEL18;
1984 RET_LABEL18:(void)0;
1985 }
1986 }
1987 if (unlikely(!var17)) {
1988 PRINT_ERROR("Runtime error: %s", "Assert failed");
1989 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3172);
1990 fatal_exit(1);
1991 }
1992 {
1993 var20 = nitc___nitc__MPropDef___is_intro(var_mpropdef);
1994 }
1995 var21 = !var20;
1996 if (var21){
1997 {
1998 var22 = core___core__SequenceRead___Collection__first(var_arguments);
1999 }
2000 {
2001 { /* Inline abstract_compiler#RuntimeVariable#mtype (var22) on <var22:nullable Object(RuntimeVariable)> */
2002 var25 = var22->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var22:nullable Object(RuntimeVariable)> */
2003 if (unlikely(var25 == NULL)) {
2004 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2005 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1870);
2006 fatal_exit(1);
2007 }
2008 var23 = var25;
2009 RET_LABEL24:(void)0;
2010 }
2011 }
2012 /* <var23:MType> isa MClassType */
2013 cltype = type_nitc__MClassType.color;
2014 idtype = type_nitc__MClassType.id;
2015 if(cltype >= var23->type->table_size) {
2016 var26 = 0;
2017 } else {
2018 var26 = var23->type->type_table[cltype] == idtype;
2019 }
2020 if (unlikely(!var26)) {
2021 var_class_name = var23 == NULL ? "null" : var23->type->name;
2022 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
2023 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3174);
2024 fatal_exit(1);
2025 }
2026 {
2027 var27 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var23, var_arguments);
2028 }
2029 } else {
2030 }
2031 goto RET_LABEL;
2032 } else {
2033 PRINT_ERROR("Runtime error: %s", "Aborted");
2034 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3178);
2035 fatal_exit(1);
2036 }
2037 RET_LABEL:;
2038 }
2039 /* method abstract_compiler#AExpr#expr for (self: AExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2040 val* nitc__abstract_compiler___AExpr___expr(val* self, val* p0) {
2041 val* var /* : nullable RuntimeVariable */;
2042 val* var_v /* var v: AbstractCompilerVisitor */;
2043 val* var1 /* : NativeArray[String] */;
2044 static val* varonce;
2045 static val* varonce2;
2046 val* var3 /* : String */;
2047 char* var4 /* : NativeString */;
2048 val* var5 /* : String */;
2049 static val* varonce6;
2050 val* var7 /* : String */;
2051 char* var8 /* : NativeString */;
2052 val* var9 /* : String */;
2053 static val* varonce10;
2054 val* var11 /* : String */;
2055 char* var12 /* : NativeString */;
2056 val* var13 /* : String */;
2057 val* var14 /* : String */;
2058 val* var15 /* : Location */;
2059 val* var17 /* : Location */;
2060 val* var18 /* : String */;
2061 val* var19 /* : String */;
2062 val* var20 /* : nullable MType */;
2063 val* var_mtype /* var mtype: nullable MType */;
2064 short int var21 /* : Bool */;
2065 short int var22 /* : Bool */;
2066 val* var_other /* var other: nullable Object */;
2067 short int var24 /* : Bool */;
2068 short int var26 /* : Bool */;
2069 val* var27 /* : RuntimeVariable */;
2070 val* var_res /* var res: RuntimeVariable */;
2071 val* var29 /* : NativeArray[String] */;
2072 static val* varonce28;
2073 static val* varonce30;
2074 val* var31 /* : String */;
2075 char* var32 /* : NativeString */;
2076 val* var33 /* : String */;
2077 static val* varonce34;
2078 val* var35 /* : String */;
2079 char* var36 /* : NativeString */;
2080 val* var37 /* : String */;
2081 static val* varonce38;
2082 val* var39 /* : String */;
2083 char* var40 /* : NativeString */;
2084 val* var41 /* : String */;
2085 val* var42 /* : String */;
2086 val* var43 /* : String */;
2087 val* var44 /* : String */;
2088 var_v = p0;
2089 if (unlikely(varonce==NULL)) {
2090 var1 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
2091 if (likely(varonce2!=NULL)) {
2092 var3 = varonce2;
2093 } else {
2094 var4 = "PRINT_ERROR(\"NOT YET IMPLEMENTED ";
2095 var5 = core__flat___NativeString___to_s_full(var4, 33l, 33l);
2096 var3 = var5;
2097 varonce2 = var3;
2098 }
2099 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
2100 if (likely(varonce6!=NULL)) {
2101 var7 = varonce6;
2102 } else {
2103 var8 = ":";
2104 var9 = core__flat___NativeString___to_s_full(var8, 1l, 1l);
2105 var7 = var9;
2106 varonce6 = var7;
2107 }
2108 ((struct instance_core__NativeArray*)var1)->values[2]=var7;
2109 if (likely(varonce10!=NULL)) {
2110 var11 = varonce10;
2111 } else {
2112 var12 = "\\n\");";
2113 var13 = core__flat___NativeString___to_s_full(var12, 5l, 5l);
2114 var11 = var13;
2115 varonce10 = var11;
2116 }
2117 ((struct instance_core__NativeArray*)var1)->values[4]=var11;
2118 } else {
2119 var1 = varonce;
2120 varonce = NULL;
2121 }
2122 {
2123 var14 = core__abstract_text___Object___class_name(self);
2124 }
2125 ((struct instance_core__NativeArray*)var1)->values[1]=var14;
2126 {
2127 { /* Inline parser_nodes#ANode#location (self) on <self:AExpr> */
2128 var17 = self->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <self:AExpr> */
2129 if (unlikely(var17 == NULL)) {
2130 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
2131 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 24);
2132 fatal_exit(1);
2133 }
2134 var15 = var17;
2135 RET_LABEL16:(void)0;
2136 }
2137 }
2138 {
2139 var18 = nitc___nitc__Location___core__abstract_text__Object__to_s(var15);
2140 }
2141 ((struct instance_core__NativeArray*)var1)->values[3]=var18;
2142 {
2143 var19 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
2144 }
2145 varonce = var1;
2146 {
2147 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2148 }
2149 {
2150 var20 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__AExpr__mtype]))(self); /* mtype on <self:AExpr>*/
2151 }
2152 var_mtype = var20;
2153 if (var_mtype == NULL) {
2154 var21 = 1; /* is null */
2155 } else {
2156 var21 = 0; /* arg is null but recv is not */
2157 }
2158 if (0) {
2159 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
2160 var_other = ((val*)NULL);
2161 {
2162 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
2163 var26 = var_mtype == var_other;
2164 var24 = var26;
2165 goto RET_LABEL25;
2166 RET_LABEL25:(void)0;
2167 }
2168 }
2169 var22 = var24;
2170 goto RET_LABEL23;
2171 RET_LABEL23:(void)0;
2172 }
2173 var21 = var22;
2174 }
2175 if (var21){
2176 var = ((val*)NULL);
2177 goto RET_LABEL;
2178 } else {
2179 {
2180 var27 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_mtype);
2181 }
2182 var_res = var27;
2183 if (unlikely(varonce28==NULL)) {
2184 var29 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
2185 if (likely(varonce30!=NULL)) {
2186 var31 = varonce30;
2187 } else {
2188 var32 = "/* ";
2189 var33 = core__flat___NativeString___to_s_full(var32, 3l, 3l);
2190 var31 = var33;
2191 varonce30 = var31;
2192 }
2193 ((struct instance_core__NativeArray*)var29)->values[0]=var31;
2194 if (likely(varonce34!=NULL)) {
2195 var35 = varonce34;
2196 } else {
2197 var36 = " = NOT YET ";
2198 var37 = core__flat___NativeString___to_s_full(var36, 11l, 11l);
2199 var35 = var37;
2200 varonce34 = var35;
2201 }
2202 ((struct instance_core__NativeArray*)var29)->values[2]=var35;
2203 if (likely(varonce38!=NULL)) {
2204 var39 = varonce38;
2205 } else {
2206 var40 = " */";
2207 var41 = core__flat___NativeString___to_s_full(var40, 3l, 3l);
2208 var39 = var41;
2209 varonce38 = var39;
2210 }
2211 ((struct instance_core__NativeArray*)var29)->values[4]=var39;
2212 } else {
2213 var29 = varonce28;
2214 varonce28 = NULL;
2215 }
2216 {
2217 var42 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
2218 }
2219 ((struct instance_core__NativeArray*)var29)->values[1]=var42;
2220 {
2221 var43 = core__abstract_text___Object___class_name(self);
2222 }
2223 ((struct instance_core__NativeArray*)var29)->values[3]=var43;
2224 {
2225 var44 = ((val*(*)(val* self))(var29->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
2226 }
2227 varonce28 = var29;
2228 {
2229 nitc___nitc__AbstractCompilerVisitor___add(var_v, var44); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2230 }
2231 var = var_res;
2232 goto RET_LABEL;
2233 }
2234 RET_LABEL:;
2235 return var;
2236 }
2237 /* method abstract_compiler#AExpr#stmt for (self: AExpr, AbstractCompilerVisitor) */
2238 void nitc__abstract_compiler___AExpr___stmt(val* self, val* p0) {
2239 val* var_v /* var v: AbstractCompilerVisitor */;
2240 val* var /* : nullable RuntimeVariable */;
2241 var_v = p0;
2242 {
2243 var = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__abstract_compiler__AExpr__expr]))(self, var_v); /* expr on <self:AExpr>*/
2244 }
2245 RET_LABEL:;
2246 }
2247 /* method abstract_compiler#ABlockExpr#stmt for (self: ABlockExpr, AbstractCompilerVisitor) */
2248 void nitc__abstract_compiler___ABlockExpr___AExpr__stmt(val* self, val* p0) {
2249 val* var_v /* var v: AbstractCompilerVisitor */;
2250 val* var /* : ANodes[AExpr] */;
2251 val* var2 /* : ANodes[AExpr] */;
2252 val* var_ /* var : ANodes[AExpr] */;
2253 val* var3 /* : Iterator[ANode] */;
2254 val* var_4 /* var : Iterator[AExpr] */;
2255 short int var5 /* : Bool */;
2256 val* var6 /* : nullable Object */;
2257 val* var_e /* var e: AExpr */;
2258 var_v = p0;
2259 {
2260 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
2261 var2 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
2262 if (unlikely(var2 == NULL)) {
2263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2264 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1744);
2265 fatal_exit(1);
2266 }
2267 var = var2;
2268 RET_LABEL1:(void)0;
2269 }
2270 }
2271 var_ = var;
2272 {
2273 var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
2274 }
2275 var_4 = var3;
2276 for(;;) {
2277 {
2278 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[AExpr]>*/
2279 }
2280 if (var5){
2281 } else {
2282 goto BREAK_label;
2283 }
2284 {
2285 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[AExpr]>*/
2286 }
2287 var_e = var6;
2288 {
2289 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
2290 }
2291 {
2292 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[AExpr]>*/
2293 }
2294 }
2295 BREAK_label: (void)0;
2296 {
2297 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[AExpr]>*/
2298 }
2299 RET_LABEL:;
2300 }
2301 /* method abstract_compiler#ABlockExpr#expr for (self: ABlockExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2302 val* nitc__abstract_compiler___ABlockExpr___AExpr__expr(val* self, val* p0) {
2303 val* var /* : nullable RuntimeVariable */;
2304 val* var_v /* var v: AbstractCompilerVisitor */;
2305 val* var1 /* : ANodes[AExpr] */;
2306 val* var3 /* : ANodes[AExpr] */;
2307 val* var4 /* : nullable Object */;
2308 val* var_last /* var last: AExpr */;
2309 val* var5 /* : ANodes[AExpr] */;
2310 val* var7 /* : ANodes[AExpr] */;
2311 val* var_ /* var : ANodes[AExpr] */;
2312 val* var8 /* : Iterator[ANode] */;
2313 val* var_9 /* var : Iterator[AExpr] */;
2314 short int var10 /* : Bool */;
2315 val* var11 /* : nullable Object */;
2316 val* var_e /* var e: AExpr */;
2317 short int var12 /* : Bool */;
2318 val* var_other /* var other: nullable Object */;
2319 short int var14 /* : Bool */;
2320 short int var16 /* : Bool */;
2321 val* var17 /* : RuntimeVariable */;
2322 var_v = p0;
2323 {
2324 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
2325 var3 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
2326 if (unlikely(var3 == NULL)) {
2327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1744);
2329 fatal_exit(1);
2330 }
2331 var1 = var3;
2332 RET_LABEL2:(void)0;
2333 }
2334 }
2335 {
2336 var4 = core___core__SequenceRead___last(var1);
2337 }
2338 var_last = var4;
2339 {
2340 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
2341 var7 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
2342 if (unlikely(var7 == NULL)) {
2343 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2344 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1744);
2345 fatal_exit(1);
2346 }
2347 var5 = var7;
2348 RET_LABEL6:(void)0;
2349 }
2350 }
2351 var_ = var5;
2352 {
2353 var8 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
2354 }
2355 var_9 = var8;
2356 for(;;) {
2357 {
2358 var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:Iterator[AExpr]>*/
2359 }
2360 if (var10){
2361 } else {
2362 goto BREAK_label;
2363 }
2364 {
2365 var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:Iterator[AExpr]>*/
2366 }
2367 var_e = var11;
2368 {
2369 { /* Inline kernel#Object#== (var_e,var_last) on <var_e:AExpr> */
2370 var_other = var_last;
2371 {
2372 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:AExpr> */
2373 var16 = var_e == var_other;
2374 var14 = var16;
2375 goto RET_LABEL15;
2376 RET_LABEL15:(void)0;
2377 }
2378 }
2379 var12 = var14;
2380 goto RET_LABEL13;
2381 RET_LABEL13:(void)0;
2382 }
2383 }
2384 if (var12){
2385 goto BREAK_label;
2386 } else {
2387 }
2388 {
2389 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_e); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
2390 }
2391 {
2392 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:Iterator[AExpr]>*/
2393 }
2394 }
2395 BREAK_label: (void)0;
2396 {
2397 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:Iterator[AExpr]>*/
2398 }
2399 {
2400 var17 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_last, ((val*)NULL));
2401 }
2402 var = var17;
2403 goto RET_LABEL;
2404 RET_LABEL:;
2405 return var;
2406 }
2407 /* method abstract_compiler#AVardeclExpr#stmt for (self: AVardeclExpr, AbstractCompilerVisitor) */
2408 void nitc__abstract_compiler___AVardeclExpr___AExpr__stmt(val* self, val* p0) {
2409 val* var_v /* var v: AbstractCompilerVisitor */;
2410 val* var /* : nullable Variable */;
2411 val* var2 /* : nullable Variable */;
2412 val* var_variable /* var variable: Variable */;
2413 val* var3 /* : nullable AExpr */;
2414 val* var5 /* : nullable AExpr */;
2415 val* var_ne /* var ne: nullable AExpr */;
2416 short int var6 /* : Bool */;
2417 short int var7 /* : Bool */;
2418 val* var_other /* var other: nullable Object */;
2419 short int var9 /* : Bool */;
2420 short int var10 /* : Bool */;
2421 val* var11 /* : nullable MType */;
2422 val* var13 /* : nullable MType */;
2423 val* var14 /* : RuntimeVariable */;
2424 val* var_i /* var i: RuntimeVariable */;
2425 val* var15 /* : RuntimeVariable */;
2426 var_v = p0;
2427 {
2428 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
2429 var2 = self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
2430 var = var2;
2431 RET_LABEL1:(void)0;
2432 }
2433 }
2434 if (unlikely(var == NULL)) {
2435 PRINT_ERROR("Runtime error: %s", "Cast failed");
2436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3226);
2437 fatal_exit(1);
2438 }
2439 var_variable = var;
2440 {
2441 { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
2442 var5 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
2443 var3 = var5;
2444 RET_LABEL4:(void)0;
2445 }
2446 }
2447 var_ne = var3;
2448 if (var_ne == NULL) {
2449 var6 = 0; /* is null */
2450 } else {
2451 var6 = 1; /* arg is null and recv is not */
2452 }
2453 if (0) {
2454 { /* Inline kernel#Object#!= (var_ne,((val*)NULL)) on <var_ne:nullable AExpr> */
2455 var_other = ((val*)NULL);
2456 {
2457 var9 = ((short int(*)(val* self, val* p0))(var_ne->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ne, var_other); /* == on <var_ne:nullable AExpr(AExpr)>*/
2458 }
2459 var10 = !var9;
2460 var7 = var10;
2461 goto RET_LABEL8;
2462 RET_LABEL8:(void)0;
2463 }
2464 var6 = var7;
2465 }
2466 if (var6){
2467 {
2468 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
2469 var13 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
2470 var11 = var13;
2471 RET_LABEL12:(void)0;
2472 }
2473 }
2474 {
2475 var14 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_ne, var11);
2476 }
2477 var_i = var14;
2478 {
2479 var15 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
2480 }
2481 {
2482 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var15, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
2483 }
2484 } else {
2485 }
2486 RET_LABEL:;
2487 }
2488 /* method abstract_compiler#AVarExpr#expr for (self: AVarExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2489 val* nitc__abstract_compiler___AVarExpr___AExpr__expr(val* self, val* p0) {
2490 val* var /* : nullable RuntimeVariable */;
2491 val* var_v /* var v: AbstractCompilerVisitor */;
2492 val* var1 /* : nullable Variable */;
2493 val* var3 /* : nullable Variable */;
2494 val* var4 /* : RuntimeVariable */;
2495 val* var_res /* var res: RuntimeVariable */;
2496 val* var5 /* : nullable MType */;
2497 val* var7 /* : nullable MType */;
2498 val* var_mtype /* var mtype: MType */;
2499 val* var8 /* : RuntimeVariable */;
2500 var_v = p0;
2501 {
2502 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
2503 var3 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
2504 var1 = var3;
2505 RET_LABEL2:(void)0;
2506 }
2507 }
2508 if (unlikely(var1 == NULL)) {
2509 PRINT_ERROR("Runtime error: %s", "Cast failed");
2510 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3238);
2511 fatal_exit(1);
2512 }
2513 {
2514 var4 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var1);
2515 }
2516 var_res = var4;
2517 {
2518 { /* Inline typing#AExpr#mtype (self) on <self:AVarExpr> */
2519 var7 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AVarExpr> */
2520 var5 = var7;
2521 RET_LABEL6:(void)0;
2522 }
2523 }
2524 if (unlikely(var5 == NULL)) {
2525 PRINT_ERROR("Runtime error: %s", "Cast failed");
2526 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3239);
2527 fatal_exit(1);
2528 }
2529 var_mtype = var5;
2530 {
2531 var8 = nitc___nitc__AbstractCompilerVisitor___autoadapt(var_v, var_res, var_mtype);
2532 }
2533 var = var8;
2534 goto RET_LABEL;
2535 RET_LABEL:;
2536 return var;
2537 }
2538 /* method abstract_compiler#AVarAssignExpr#expr for (self: AVarAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2539 val* nitc__abstract_compiler___AVarAssignExpr___AExpr__expr(val* self, val* p0) {
2540 val* var /* : nullable RuntimeVariable */;
2541 val* var_v /* var v: AbstractCompilerVisitor */;
2542 val* var1 /* : nullable Variable */;
2543 val* var3 /* : nullable Variable */;
2544 val* var_variable /* var variable: Variable */;
2545 val* var4 /* : AExpr */;
2546 val* var6 /* : AExpr */;
2547 val* var7 /* : nullable MType */;
2548 val* var9 /* : nullable MType */;
2549 val* var10 /* : RuntimeVariable */;
2550 val* var_i /* var i: RuntimeVariable */;
2551 val* var11 /* : RuntimeVariable */;
2552 var_v = p0;
2553 {
2554 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarAssignExpr> */
2555 var3 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarAssignExpr> */
2556 var1 = var3;
2557 RET_LABEL2:(void)0;
2558 }
2559 }
2560 if (unlikely(var1 == NULL)) {
2561 PRINT_ERROR("Runtime error: %s", "Cast failed");
2562 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3247);
2563 fatal_exit(1);
2564 }
2565 var_variable = var1;
2566 {
2567 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AVarAssignExpr> */
2568 var6 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
2569 if (unlikely(var6 == NULL)) {
2570 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2571 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1992);
2572 fatal_exit(1);
2573 }
2574 var4 = var6;
2575 RET_LABEL5:(void)0;
2576 }
2577 }
2578 {
2579 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
2580 var9 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
2581 var7 = var9;
2582 RET_LABEL8:(void)0;
2583 }
2584 }
2585 {
2586 var10 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var4, var7);
2587 }
2588 var_i = var10;
2589 {
2590 var11 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
2591 }
2592 {
2593 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var11, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
2594 }
2595 var = var_i;
2596 goto RET_LABEL;
2597 RET_LABEL:;
2598 return var;
2599 }
2600 /* method abstract_compiler#AVarReassignExpr#stmt for (self: AVarReassignExpr, AbstractCompilerVisitor) */
2601 void nitc__abstract_compiler___AVarReassignExpr___AExpr__stmt(val* self, val* p0) {
2602 val* var_v /* var v: AbstractCompilerVisitor */;
2603 val* var /* : nullable Variable */;
2604 val* var2 /* : nullable Variable */;
2605 val* var_variable /* var variable: Variable */;
2606 val* var3 /* : RuntimeVariable */;
2607 val* var_vari /* var vari: RuntimeVariable */;
2608 val* var4 /* : AExpr */;
2609 val* var6 /* : AExpr */;
2610 val* var7 /* : nullable MType */;
2611 val* var9 /* : nullable MType */;
2612 val* var10 /* : RuntimeVariable */;
2613 val* var_value /* var value: RuntimeVariable */;
2614 val* var11 /* : nullable CallSite */;
2615 val* var13 /* : nullable CallSite */;
2616 val* var14 /* : Array[RuntimeVariable] */;
2617 val* var_ /* var : Array[RuntimeVariable] */;
2618 val* var15 /* : nullable RuntimeVariable */;
2619 val* var_res /* var res: nullable RuntimeVariable */;
2620 short int var16 /* : Bool */;
2621 short int var17 /* : Bool */;
2622 val* var_other /* var other: nullable Object */;
2623 short int var19 /* : Bool */;
2624 short int var20 /* : Bool */;
2625 val* var21 /* : RuntimeVariable */;
2626 var_v = p0;
2627 {
2628 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarReassignExpr> */
2629 var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
2630 var = var2;
2631 RET_LABEL1:(void)0;
2632 }
2633 }
2634 if (unlikely(var == NULL)) {
2635 PRINT_ERROR("Runtime error: %s", "Cast failed");
2636 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3257);
2637 fatal_exit(1);
2638 }
2639 var_variable = var;
2640 {
2641 var3 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
2642 }
2643 var_vari = var3;
2644 {
2645 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:AVarReassignExpr> */
2646 var6 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AVarReassignExpr> */
2647 if (unlikely(var6 == NULL)) {
2648 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
2649 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003);
2650 fatal_exit(1);
2651 }
2652 var4 = var6;
2653 RET_LABEL5:(void)0;
2654 }
2655 }
2656 {
2657 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
2658 var9 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
2659 var7 = var9;
2660 RET_LABEL8:(void)0;
2661 }
2662 }
2663 {
2664 var10 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var4, var7);
2665 }
2666 var_value = var10;
2667 {
2668 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:AVarReassignExpr> */
2669 var13 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AVarReassignExpr> */
2670 var11 = var13;
2671 RET_LABEL12:(void)0;
2672 }
2673 }
2674 if (unlikely(var11 == NULL)) {
2675 PRINT_ERROR("Runtime error: %s", "Cast failed");
2676 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3260);
2677 fatal_exit(1);
2678 }
2679 var14 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
2680 {
2681 core___core__Array___with_capacity(var14, 2l); /* Direct call array#Array#with_capacity on <var14:Array[RuntimeVariable]>*/
2682 }
2683 var_ = var14;
2684 {
2685 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_vari); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
2686 }
2687 {
2688 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_value); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
2689 }
2690 {
2691 var15 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var11, var_); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
2692 }
2693 var_res = var15;
2694 if (var_res == NULL) {
2695 var16 = 0; /* is null */
2696 } else {
2697 var16 = 1; /* arg is null and recv is not */
2698 }
2699 if (0) {
2700 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
2701 var_other = ((val*)NULL);
2702 {
2703 var19 = ((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)>*/
2704 }
2705 var20 = !var19;
2706 var17 = var20;
2707 goto RET_LABEL18;
2708 RET_LABEL18:(void)0;
2709 }
2710 var16 = var17;
2711 }
2712 if (unlikely(!var16)) {
2713 PRINT_ERROR("Runtime error: %s", "Assert failed");
2714 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3261);
2715 fatal_exit(1);
2716 }
2717 {
2718 var21 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
2719 }
2720 {
2721 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var21, var_res); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
2722 }
2723 RET_LABEL:;
2724 }
2725 /* method abstract_compiler#ASelfExpr#expr for (self: ASelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2726 val* nitc__abstract_compiler___ASelfExpr___AExpr__expr(val* self, val* p0) {
2727 val* var /* : nullable RuntimeVariable */;
2728 val* var_v /* var v: AbstractCompilerVisitor */;
2729 val* var1 /* : nullable StaticFrame */;
2730 val* var3 /* : nullable StaticFrame */;
2731 val* var4 /* : Array[RuntimeVariable] */;
2732 val* var6 /* : Array[RuntimeVariable] */;
2733 val* var7 /* : nullable Object */;
2734 var_v = p0;
2735 {
2736 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
2737 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
2738 var1 = var3;
2739 RET_LABEL2:(void)0;
2740 }
2741 }
2742 if (var1 == NULL) {
2743 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2744 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3267);
2745 fatal_exit(1);
2746 } else {
2747 { /* Inline abstract_compiler#StaticFrame#arguments (var1) on <var1:nullable StaticFrame> */
2748 if (unlikely(var1 == NULL)) {
2749 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2750 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1921);
2751 fatal_exit(1);
2752 }
2753 var6 = var1->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var1:nullable StaticFrame> */
2754 if (unlikely(var6 == NULL)) {
2755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
2756 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1921);
2757 fatal_exit(1);
2758 }
2759 var4 = var6;
2760 RET_LABEL5:(void)0;
2761 }
2762 }
2763 {
2764 var7 = core___core__SequenceRead___Collection__first(var4);
2765 }
2766 var = var7;
2767 goto RET_LABEL;
2768 RET_LABEL:;
2769 return var;
2770 }
2771 /* method abstract_compiler#AImplicitSelfExpr#expr for (self: AImplicitSelfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
2772 val* nitc__abstract_compiler___AImplicitSelfExpr___AExpr__expr(val* self, val* p0) {
2773 val* var /* : nullable RuntimeVariable */;
2774 val* var_v /* var v: AbstractCompilerVisitor */;
2775 short int var1 /* : Bool */;
2776 short int var3 /* : Bool */;
2777 short int var4 /* : Bool */;
2778 val* var5 /* : nullable RuntimeVariable */;
2779 static val* varonce;
2780 val* var6 /* : String */;
2781 char* var7 /* : NativeString */;
2782 val* var8 /* : String */;
2783 val* var9 /* : nullable MType */;
2784 val* var11 /* : nullable MType */;
2785 val* var12 /* : RuntimeVariable */;
2786 var_v = p0;
2787 {
2788 { /* Inline typing#AImplicitSelfExpr#is_sys (self) on <self:AImplicitSelfExpr> */
2789 var3 = self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s; /* _is_sys on <self:AImplicitSelfExpr> */
2790 var1 = var3;
2791 RET_LABEL2:(void)0;
2792 }
2793 }
2794 var4 = !var1;
2795 if (var4){
2796 {
2797 var5 = ((val*(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__abstract_compiler___AImplicitSelfExpr___AExpr__expr]))(self, p0); /* expr on <self:AImplicitSelfExpr>*/
2798 }
2799 var = var5;
2800 goto RET_LABEL;
2801 } else {
2802 }
2803 if (likely(varonce!=NULL)) {
2804 var6 = varonce;
2805 } else {
2806 var7 = "glob_sys";
2807 var8 = core__flat___NativeString___to_s_full(var7, 8l, 8l);
2808 var6 = var8;
2809 varonce = var6;
2810 }
2811 {
2812 { /* Inline typing#AExpr#mtype (self) on <self:AImplicitSelfExpr> */
2813 var11 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AImplicitSelfExpr> */
2814 var9 = var11;
2815 RET_LABEL10:(void)0;
2816 }
2817 }
2818 if (unlikely(var9 == NULL)) {
2819 PRINT_ERROR("Runtime error: %s", "Cast failed");
2820 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3273);
2821 fatal_exit(1);
2822 }
2823 {
2824 var12 = nitc___nitc__AbstractCompilerVisitor___new_expr(var_v, var6, var9);
2825 }
2826 var = var12;
2827 goto RET_LABEL;
2828 RET_LABEL:;
2829 return var;
2830 }
2831 /* method abstract_compiler#AEscapeExpr#stmt for (self: AEscapeExpr, AbstractCompilerVisitor) */
2832 void nitc__abstract_compiler___AEscapeExpr___AExpr__stmt(val* self, val* p0) {
2833 val* var_v /* var v: AbstractCompilerVisitor */;
2834 val* var /* : NativeArray[String] */;
2835 static val* varonce;
2836 static val* varonce1;
2837 val* var2 /* : String */;
2838 char* var3 /* : NativeString */;
2839 val* var4 /* : String */;
2840 static val* varonce5;
2841 val* var6 /* : String */;
2842 char* var7 /* : NativeString */;
2843 val* var8 /* : String */;
2844 val* var9 /* : nullable EscapeMark */;
2845 val* var11 /* : nullable EscapeMark */;
2846 val* var12 /* : String */;
2847 val* var13 /* : String */;
2848 var_v = p0;
2849 if (unlikely(varonce==NULL)) {
2850 var = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
2851 if (likely(varonce1!=NULL)) {
2852 var2 = varonce1;
2853 } else {
2854 var3 = "goto BREAK_";
2855 var4 = core__flat___NativeString___to_s_full(var3, 11l, 11l);
2856 var2 = var4;
2857 varonce1 = var2;
2858 }
2859 ((struct instance_core__NativeArray*)var)->values[0]=var2;
2860 if (likely(varonce5!=NULL)) {
2861 var6 = varonce5;
2862 } else {
2863 var7 = ";";
2864 var8 = core__flat___NativeString___to_s_full(var7, 1l, 1l);
2865 var6 = var8;
2866 varonce5 = var6;
2867 }
2868 ((struct instance_core__NativeArray*)var)->values[2]=var6;
2869 } else {
2870 var = varonce;
2871 varonce = NULL;
2872 }
2873 {
2874 { /* Inline scope#AEscapeExpr#escapemark (self) on <self:AEscapeExpr> */
2875 var11 = self->attrs[COLOR_nitc__scope__AEscapeExpr___escapemark].val; /* _escapemark on <self:AEscapeExpr> */
2876 var9 = var11;
2877 RET_LABEL10:(void)0;
2878 }
2879 }
2880 {
2881 var12 = nitc___nitc__AbstractCompilerVisitor___escapemark_name(var_v, var9);
2882 }
2883 ((struct instance_core__NativeArray*)var)->values[1]=var12;
2884 {
2885 var13 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
2886 }
2887 varonce = var;
2888 {
2889 nitc___nitc__AbstractCompilerVisitor___add(var_v, var13); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2890 }
2891 RET_LABEL:;
2892 }
2893 /* method abstract_compiler#AReturnExpr#stmt for (self: AReturnExpr, AbstractCompilerVisitor) */
2894 void nitc__abstract_compiler___AReturnExpr___AExpr__stmt(val* self, val* p0) {
2895 val* var_v /* var v: AbstractCompilerVisitor */;
2896 val* var /* : nullable AExpr */;
2897 val* var2 /* : nullable AExpr */;
2898 val* var_nexpr /* var nexpr: nullable AExpr */;
2899 short int var3 /* : Bool */;
2900 short int var4 /* : Bool */;
2901 val* var_other /* var other: nullable Object */;
2902 short int var6 /* : Bool */;
2903 short int var7 /* : Bool */;
2904 val* var8 /* : nullable StaticFrame */;
2905 val* var10 /* : nullable StaticFrame */;
2906 val* var11 /* : nullable RuntimeVariable */;
2907 val* var13 /* : nullable RuntimeVariable */;
2908 val* var_returnvar /* var returnvar: RuntimeVariable */;
2909 val* var14 /* : MType */;
2910 val* var16 /* : MType */;
2911 val* var17 /* : RuntimeVariable */;
2912 val* var_i /* var i: RuntimeVariable */;
2913 val* var18 /* : NativeArray[String] */;
2914 static val* varonce;
2915 static val* varonce19;
2916 val* var20 /* : String */;
2917 char* var21 /* : NativeString */;
2918 val* var22 /* : String */;
2919 static val* varonce23;
2920 val* var24 /* : String */;
2921 char* var25 /* : NativeString */;
2922 val* var26 /* : String */;
2923 val* var27 /* : nullable StaticFrame */;
2924 val* var29 /* : nullable StaticFrame */;
2925 val* var30 /* : nullable String */;
2926 val* var32 /* : nullable String */;
2927 val* var33 /* : String */;
2928 var_v = p0;
2929 {
2930 { /* Inline parser_nodes#AReturnExpr#n_expr (self) on <self:AReturnExpr> */
2931 var2 = self->attrs[COLOR_nitc__parser_nodes__AReturnExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
2932 var = var2;
2933 RET_LABEL1:(void)0;
2934 }
2935 }
2936 var_nexpr = var;
2937 if (var_nexpr == NULL) {
2938 var3 = 0; /* is null */
2939 } else {
2940 var3 = 1; /* arg is null and recv is not */
2941 }
2942 if (0) {
2943 { /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
2944 var_other = ((val*)NULL);
2945 {
2946 var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
2947 }
2948 var7 = !var6;
2949 var4 = var7;
2950 goto RET_LABEL5;
2951 RET_LABEL5:(void)0;
2952 }
2953 var3 = var4;
2954 }
2955 if (var3){
2956 {
2957 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
2958 var10 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
2959 var8 = var10;
2960 RET_LABEL9:(void)0;
2961 }
2962 }
2963 if (var8 == NULL) {
2964 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2965 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3286);
2966 fatal_exit(1);
2967 } else {
2968 { /* Inline abstract_compiler#StaticFrame#returnvar (var8) on <var8:nullable StaticFrame> */
2969 if (unlikely(var8 == NULL)) {
2970 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2971 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1924);
2972 fatal_exit(1);
2973 }
2974 var13 = var8->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var8:nullable StaticFrame> */
2975 var11 = var13;
2976 RET_LABEL12:(void)0;
2977 }
2978 }
2979 if (unlikely(var11 == NULL)) {
2980 PRINT_ERROR("Runtime error: %s", "Cast failed");
2981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3286);
2982 fatal_exit(1);
2983 }
2984 var_returnvar = var11;
2985 {
2986 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_returnvar) on <var_returnvar:RuntimeVariable> */
2987 var16 = var_returnvar->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_returnvar:RuntimeVariable> */
2988 if (unlikely(var16 == NULL)) {
2989 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2990 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1870);
2991 fatal_exit(1);
2992 }
2993 var14 = var16;
2994 RET_LABEL15:(void)0;
2995 }
2996 }
2997 {
2998 var17 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_nexpr, var14);
2999 }
3000 var_i = var17;
3001 {
3002 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_returnvar, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
3003 }
3004 } else {
3005 }
3006 if (unlikely(varonce==NULL)) {
3007 var18 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3008 if (likely(varonce19!=NULL)) {
3009 var20 = varonce19;
3010 } else {
3011 var21 = "goto ";
3012 var22 = core__flat___NativeString___to_s_full(var21, 5l, 5l);
3013 var20 = var22;
3014 varonce19 = var20;
3015 }
3016 ((struct instance_core__NativeArray*)var18)->values[0]=var20;
3017 if (likely(varonce23!=NULL)) {
3018 var24 = varonce23;
3019 } else {
3020 var25 = ";";
3021 var26 = core__flat___NativeString___to_s_full(var25, 1l, 1l);
3022 var24 = var26;
3023 varonce23 = var24;
3024 }
3025 ((struct instance_core__NativeArray*)var18)->values[2]=var24;
3026 } else {
3027 var18 = varonce;
3028 varonce = NULL;
3029 }
3030 {
3031 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
3032 var29 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
3033 var27 = var29;
3034 RET_LABEL28:(void)0;
3035 }
3036 }
3037 if (var27 == NULL) {
3038 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3039 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3290);
3040 fatal_exit(1);
3041 } else {
3042 { /* Inline abstract_compiler#StaticFrame#returnlabel (var27) on <var27:nullable StaticFrame> */
3043 if (unlikely(var27 == NULL)) {
3044 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3045 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1927);
3046 fatal_exit(1);
3047 }
3048 var32 = var27->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var27:nullable StaticFrame> */
3049 var30 = var32;
3050 RET_LABEL31:(void)0;
3051 }
3052 }
3053 if (unlikely(var30 == NULL)) {
3054 PRINT_ERROR("Runtime error: %s", "Cast failed");
3055 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3290);
3056 fatal_exit(1);
3057 }
3058 ((struct instance_core__NativeArray*)var18)->values[1]=var30;
3059 {
3060 var33 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
3061 }
3062 varonce = var18;
3063 {
3064 nitc___nitc__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3065 }
3066 RET_LABEL:;
3067 }
3068 /* method abstract_compiler#AAbortExpr#stmt for (self: AAbortExpr, AbstractCompilerVisitor) */
3069 void nitc__abstract_compiler___AAbortExpr___AExpr__stmt(val* self, val* p0) {
3070 val* var_v /* var v: AbstractCompilerVisitor */;
3071 static val* varonce;
3072 val* var /* : String */;
3073 char* var1 /* : NativeString */;
3074 val* var2 /* : String */;
3075 var_v = p0;
3076 if (likely(varonce!=NULL)) {
3077 var = varonce;
3078 } else {
3079 var1 = "Aborted";
3080 var2 = core__flat___NativeString___to_s_full(var1, 7l, 7l);
3081 var = var2;
3082 varonce = var;
3083 }
3084 {
3085 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:AbstractCompilerVisitor>*/
3086 }
3087 RET_LABEL:;
3088 }
3089 /* method abstract_compiler#AIfExpr#stmt for (self: AIfExpr, AbstractCompilerVisitor) */
3090 void nitc__abstract_compiler___AIfExpr___AExpr__stmt(val* self, val* p0) {
3091 val* var_v /* var v: AbstractCompilerVisitor */;
3092 val* var /* : AExpr */;
3093 val* var2 /* : AExpr */;
3094 val* var3 /* : RuntimeVariable */;
3095 val* var_cond /* var cond: RuntimeVariable */;
3096 val* var4 /* : NativeArray[String] */;
3097 static val* varonce;
3098 static val* varonce5;
3099 val* var6 /* : String */;
3100 char* var7 /* : NativeString */;
3101 val* var8 /* : String */;
3102 static val* varonce9;
3103 val* var10 /* : String */;
3104 char* var11 /* : NativeString */;
3105 val* var12 /* : String */;
3106 val* var13 /* : String */;
3107 val* var14 /* : String */;
3108 val* var15 /* : nullable AExpr */;
3109 val* var17 /* : nullable AExpr */;
3110 static val* varonce18;
3111 val* var19 /* : String */;
3112 char* var20 /* : NativeString */;
3113 val* var21 /* : String */;
3114 val* var22 /* : nullable AExpr */;
3115 val* var24 /* : nullable AExpr */;
3116 static val* varonce25;
3117 val* var26 /* : String */;
3118 char* var27 /* : NativeString */;
3119 val* var28 /* : String */;
3120 var_v = p0;
3121 {
3122 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
3123 var2 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
3124 if (unlikely(var2 == NULL)) {
3125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3126 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1843);
3127 fatal_exit(1);
3128 }
3129 var = var2;
3130 RET_LABEL1:(void)0;
3131 }
3132 }
3133 {
3134 var3 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var);
3135 }
3136 var_cond = var3;
3137 if (unlikely(varonce==NULL)) {
3138 var4 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3139 if (likely(varonce5!=NULL)) {
3140 var6 = varonce5;
3141 } else {
3142 var7 = "if (";
3143 var8 = core__flat___NativeString___to_s_full(var7, 4l, 4l);
3144 var6 = var8;
3145 varonce5 = var6;
3146 }
3147 ((struct instance_core__NativeArray*)var4)->values[0]=var6;
3148 if (likely(varonce9!=NULL)) {
3149 var10 = varonce9;
3150 } else {
3151 var11 = "){";
3152 var12 = core__flat___NativeString___to_s_full(var11, 2l, 2l);
3153 var10 = var12;
3154 varonce9 = var10;
3155 }
3156 ((struct instance_core__NativeArray*)var4)->values[2]=var10;
3157 } else {
3158 var4 = varonce;
3159 varonce = NULL;
3160 }
3161 {
3162 var13 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
3163 }
3164 ((struct instance_core__NativeArray*)var4)->values[1]=var13;
3165 {
3166 var14 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
3167 }
3168 varonce = var4;
3169 {
3170 nitc___nitc__AbstractCompilerVisitor___add(var_v, var14); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3171 }
3172 {
3173 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
3174 var17 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
3175 var15 = var17;
3176 RET_LABEL16:(void)0;
3177 }
3178 }
3179 {
3180 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var15); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
3181 }
3182 if (likely(varonce18!=NULL)) {
3183 var19 = varonce18;
3184 } else {
3185 var20 = "} else {";
3186 var21 = core__flat___NativeString___to_s_full(var20, 8l, 8l);
3187 var19 = var21;
3188 varonce18 = var19;
3189 }
3190 {
3191 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3192 }
3193 {
3194 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
3195 var24 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
3196 var22 = var24;
3197 RET_LABEL23:(void)0;
3198 }
3199 }
3200 {
3201 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var22); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
3202 }
3203 if (likely(varonce25!=NULL)) {
3204 var26 = varonce25;
3205 } else {
3206 var27 = "}";
3207 var28 = core__flat___NativeString___to_s_full(var27, 1l, 1l);
3208 var26 = var28;
3209 varonce25 = var26;
3210 }
3211 {
3212 nitc___nitc__AbstractCompilerVisitor___add(var_v, var26); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3213 }
3214 RET_LABEL:;
3215 }
3216 /* method abstract_compiler#AIfExpr#expr for (self: AIfExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3217 val* nitc__abstract_compiler___AIfExpr___AExpr__expr(val* self, val* p0) {
3218 val* var /* : nullable RuntimeVariable */;
3219 val* var_v /* var v: AbstractCompilerVisitor */;
3220 val* var1 /* : nullable MType */;
3221 val* var3 /* : nullable MType */;
3222 val* var4 /* : RuntimeVariable */;
3223 val* var_res /* var res: RuntimeVariable */;
3224 val* var5 /* : AExpr */;
3225 val* var7 /* : AExpr */;
3226 val* var8 /* : RuntimeVariable */;
3227 val* var_cond /* var cond: RuntimeVariable */;
3228 val* var9 /* : NativeArray[String] */;
3229 static val* varonce;
3230 static val* varonce10;
3231 val* var11 /* : String */;
3232 char* var12 /* : NativeString */;
3233 val* var13 /* : String */;
3234 static val* varonce14;
3235 val* var15 /* : String */;
3236 char* var16 /* : NativeString */;
3237 val* var17 /* : String */;
3238 val* var18 /* : String */;
3239 val* var19 /* : String */;
3240 val* var20 /* : nullable AExpr */;
3241 val* var22 /* : nullable AExpr */;
3242 val* var23 /* : RuntimeVariable */;
3243 static val* varonce24;
3244 val* var25 /* : String */;
3245 char* var26 /* : NativeString */;
3246 val* var27 /* : String */;
3247 val* var28 /* : nullable AExpr */;
3248 val* var30 /* : nullable AExpr */;
3249 val* var31 /* : RuntimeVariable */;
3250 static val* varonce32;
3251 val* var33 /* : String */;
3252 char* var34 /* : NativeString */;
3253 val* var35 /* : String */;
3254 var_v = p0;
3255 {
3256 { /* Inline typing#AExpr#mtype (self) on <self:AIfExpr> */
3257 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AIfExpr> */
3258 var1 = var3;
3259 RET_LABEL2:(void)0;
3260 }
3261 }
3262 if (unlikely(var1 == NULL)) {
3263 PRINT_ERROR("Runtime error: %s", "Cast failed");
3264 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3311);
3265 fatal_exit(1);
3266 }
3267 {
3268 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
3269 }
3270 var_res = var4;
3271 {
3272 { /* Inline parser_nodes#AIfExpr#n_expr (self) on <self:AIfExpr> */
3273 var7 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
3274 if (unlikely(var7 == NULL)) {
3275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1843);
3277 fatal_exit(1);
3278 }
3279 var5 = var7;
3280 RET_LABEL6:(void)0;
3281 }
3282 }
3283 {
3284 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
3285 }
3286 var_cond = var8;
3287 if (unlikely(varonce==NULL)) {
3288 var9 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3289 if (likely(varonce10!=NULL)) {
3290 var11 = varonce10;
3291 } else {
3292 var12 = "if (";
3293 var13 = core__flat___NativeString___to_s_full(var12, 4l, 4l);
3294 var11 = var13;
3295 varonce10 = var11;
3296 }
3297 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
3298 if (likely(varonce14!=NULL)) {
3299 var15 = varonce14;
3300 } else {
3301 var16 = "){";
3302 var17 = core__flat___NativeString___to_s_full(var16, 2l, 2l);
3303 var15 = var17;
3304 varonce14 = var15;
3305 }
3306 ((struct instance_core__NativeArray*)var9)->values[2]=var15;
3307 } else {
3308 var9 = varonce;
3309 varonce = NULL;
3310 }
3311 {
3312 var18 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
3313 }
3314 ((struct instance_core__NativeArray*)var9)->values[1]=var18;
3315 {
3316 var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
3317 }
3318 varonce = var9;
3319 {
3320 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3321 }
3322 {
3323 { /* Inline parser_nodes#AIfExpr#n_then (self) on <self:AIfExpr> */
3324 var22 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
3325 var20 = var22;
3326 RET_LABEL21:(void)0;
3327 }
3328 }
3329 if (unlikely(var20 == NULL)) {
3330 PRINT_ERROR("Runtime error: %s", "Cast failed");
3331 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3314);
3332 fatal_exit(1);
3333 }
3334 {
3335 var23 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var20, ((val*)NULL));
3336 }
3337 {
3338 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
3339 }
3340 if (likely(varonce24!=NULL)) {
3341 var25 = varonce24;
3342 } else {
3343 var26 = "} else {";
3344 var27 = core__flat___NativeString___to_s_full(var26, 8l, 8l);
3345 var25 = var27;
3346 varonce24 = var25;
3347 }
3348 {
3349 nitc___nitc__AbstractCompilerVisitor___add(var_v, var25); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3350 }
3351 {
3352 { /* Inline parser_nodes#AIfExpr#n_else (self) on <self:AIfExpr> */
3353 var30 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
3354 var28 = var30;
3355 RET_LABEL29:(void)0;
3356 }
3357 }
3358 if (unlikely(var28 == NULL)) {
3359 PRINT_ERROR("Runtime error: %s", "Cast failed");
3360 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3316);
3361 fatal_exit(1);
3362 }
3363 {
3364 var31 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var28, ((val*)NULL));
3365 }
3366 {
3367 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
3368 }
3369 if (likely(varonce32!=NULL)) {
3370 var33 = varonce32;
3371 } else {
3372 var34 = "}";
3373 var35 = core__flat___NativeString___to_s_full(var34, 1l, 1l);
3374 var33 = var35;
3375 varonce32 = var33;
3376 }
3377 {
3378 nitc___nitc__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3379 }
3380 var = var_res;
3381 goto RET_LABEL;
3382 RET_LABEL:;
3383 return var;
3384 }
3385 /* method abstract_compiler#AIfexprExpr#expr for (self: AIfexprExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
3386 val* nitc__abstract_compiler___AIfexprExpr___AExpr__expr(val* self, val* p0) {
3387 val* var /* : nullable RuntimeVariable */;
3388 val* var_v /* var v: AbstractCompilerVisitor */;
3389 val* var1 /* : nullable MType */;
3390 val* var3 /* : nullable MType */;
3391 val* var4 /* : RuntimeVariable */;
3392 val* var_res /* var res: RuntimeVariable */;
3393 val* var5 /* : AExpr */;
3394 val* var7 /* : AExpr */;
3395 val* var8 /* : RuntimeVariable */;
3396 val* var_cond /* var cond: RuntimeVariable */;
3397 val* var9 /* : NativeArray[String] */;
3398 static val* varonce;
3399 static val* varonce10;
3400 val* var11 /* : String */;
3401 char* var12 /* : NativeString */;
3402 val* var13 /* : String */;
3403 static val* varonce14;
3404 val* var15 /* : String */;
3405 char* var16 /* : NativeString */;
3406 val* var17 /* : String */;
3407 val* var18 /* : String */;
3408 val* var19 /* : String */;
3409 val* var20 /* : AExpr */;
3410 val* var22 /* : AExpr */;
3411 val* var23 /* : RuntimeVariable */;
3412 static val* varonce24;
3413 val* var25 /* : String */;
3414 char* var26 /* : NativeString */;
3415 val* var27 /* : String */;
3416 val* var28 /* : AExpr */;
3417 val* var30 /* : AExpr */;
3418 val* var31 /* : RuntimeVariable */;
3419 static val* varonce32;
3420 val* var33 /* : String */;
3421 char* var34 /* : NativeString */;
3422 val* var35 /* : String */;
3423 var_v = p0;
3424 {
3425 { /* Inline typing#AExpr#mtype (self) on <self:AIfexprExpr> */
3426 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AIfexprExpr> */
3427 var1 = var3;
3428 RET_LABEL2:(void)0;
3429 }
3430 }
3431 if (unlikely(var1 == NULL)) {
3432 PRINT_ERROR("Runtime error: %s", "Cast failed");
3433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3325);
3434 fatal_exit(1);
3435 }
3436 {
3437 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
3438 }
3439 var_res = var4;
3440 {
3441 { /* Inline parser_nodes#AIfexprExpr#n_expr (self) on <self:AIfexprExpr> */
3442 var7 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
3443 if (unlikely(var7 == NULL)) {
3444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1866);
3446 fatal_exit(1);
3447 }
3448 var5 = var7;
3449 RET_LABEL6:(void)0;
3450 }
3451 }
3452 {
3453 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
3454 }
3455 var_cond = var8;
3456 if (unlikely(varonce==NULL)) {
3457 var9 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3458 if (likely(varonce10!=NULL)) {
3459 var11 = varonce10;
3460 } else {
3461 var12 = "if (";
3462 var13 = core__flat___NativeString___to_s_full(var12, 4l, 4l);
3463 var11 = var13;
3464 varonce10 = var11;
3465 }
3466 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
3467 if (likely(varonce14!=NULL)) {
3468 var15 = varonce14;
3469 } else {
3470 var16 = "){";
3471 var17 = core__flat___NativeString___to_s_full(var16, 2l, 2l);
3472 var15 = var17;
3473 varonce14 = var15;
3474 }
3475 ((struct instance_core__NativeArray*)var9)->values[2]=var15;
3476 } else {
3477 var9 = varonce;
3478 varonce = NULL;
3479 }
3480 {
3481 var18 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
3482 }
3483 ((struct instance_core__NativeArray*)var9)->values[1]=var18;
3484 {
3485 var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
3486 }
3487 varonce = var9;
3488 {
3489 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3490 }
3491 {
3492 { /* Inline parser_nodes#AIfexprExpr#n_then (self) on <self:AIfexprExpr> */
3493 var22 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
3494 if (unlikely(var22 == NULL)) {
3495 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
3496 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1872);
3497 fatal_exit(1);
3498 }
3499 var20 = var22;
3500 RET_LABEL21:(void)0;
3501 }
3502 }
3503 {
3504 var23 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var20, ((val*)NULL));
3505 }
3506 {
3507 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var23); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
3508 }
3509 if (likely(varonce24!=NULL)) {
3510 var25 = varonce24;
3511 } else {
3512 var26 = "} else {";
3513 var27 = core__flat___NativeString___to_s_full(var26, 8l, 8l);
3514 var25 = var27;
3515 varonce24 = var25;
3516 }
3517 {
3518 nitc___nitc__AbstractCompilerVisitor___add(var_v, var25); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3519 }
3520 {
3521 { /* Inline parser_nodes#AIfexprExpr#n_else (self) on <self:AIfexprExpr> */
3522 var30 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
3523 if (unlikely(var30 == NULL)) {
3524 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
3525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1878);
3526 fatal_exit(1);
3527 }
3528 var28 = var30;
3529 RET_LABEL29:(void)0;
3530 }
3531 }
3532 {
3533 var31 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var28, ((val*)NULL));
3534 }
3535 {
3536 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
3537 }
3538 if (likely(varonce32!=NULL)) {
3539 var33 = varonce32;
3540 } else {
3541 var34 = "}";
3542 var35 = core__flat___NativeString___to_s_full(var34, 1l, 1l);
3543 var33 = var35;
3544 varonce32 = var33;
3545 }
3546 {
3547 nitc___nitc__AbstractCompilerVisitor___add(var_v, var33); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3548 }
3549 var = var_res;
3550 goto RET_LABEL;
3551 RET_LABEL:;
3552 return var;
3553 }
3554 /* method abstract_compiler#ADoExpr#stmt for (self: ADoExpr, AbstractCompilerVisitor) */
3555 void nitc__abstract_compiler___ADoExpr___AExpr__stmt(val* self, val* p0) {
3556 val* var_v /* var v: AbstractCompilerVisitor */;
3557 val* var /* : nullable AExpr */;
3558 val* var2 /* : nullable AExpr */;
3559 val* var3 /* : nullable EscapeMark */;
3560 val* var5 /* : nullable EscapeMark */;
3561 var_v = p0;
3562 {
3563 { /* Inline parser_nodes#ADoExpr#n_block (self) on <self:ADoExpr> */
3564 var2 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
3565 var = var2;
3566 RET_LABEL1:(void)0;
3567 }
3568 }
3569 {
3570 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
3571 }
3572 {
3573 { /* Inline scope#ADoExpr#break_mark (self) on <self:ADoExpr> */
3574 var5 = self->attrs[COLOR_nitc__scope__ADoExpr___break_mark].val; /* _break_mark on <self:ADoExpr> */
3575 var3 = var5;
3576 RET_LABEL4:(void)0;
3577 }
3578 }
3579 {
3580 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var3); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
3581 }
3582 RET_LABEL:;
3583 }
3584 /* method abstract_compiler#AWhileExpr#stmt for (self: AWhileExpr, AbstractCompilerVisitor) */
3585 void nitc__abstract_compiler___AWhileExpr___AExpr__stmt(val* self, val* p0) {
3586 val* var_v /* var v: AbstractCompilerVisitor */;
3587 static val* varonce;
3588 val* var /* : String */;
3589 char* var1 /* : NativeString */;
3590 val* var2 /* : String */;
3591 val* var3 /* : AExpr */;
3592 val* var5 /* : AExpr */;
3593 val* var6 /* : RuntimeVariable */;
3594 val* var_cond /* var cond: RuntimeVariable */;
3595 val* var8 /* : NativeArray[String] */;
3596 static val* varonce7;
3597 static val* varonce9;
3598 val* var10 /* : String */;
3599 char* var11 /* : NativeString */;
3600 val* var12 /* : String */;
3601 static val* varonce13;
3602 val* var14 /* : String */;
3603 char* var15 /* : NativeString */;
3604 val* var16 /* : String */;
3605 val* var17 /* : String */;
3606 val* var18 /* : String */;
3607 val* var19 /* : nullable AExpr */;
3608 val* var21 /* : nullable AExpr */;
3609 val* var22 /* : nullable EscapeMark */;
3610 val* var24 /* : nullable EscapeMark */;
3611 static val* varonce25;
3612 val* var26 /* : String */;
3613 char* var27 /* : NativeString */;
3614 val* var28 /* : String */;
3615 val* var29 /* : nullable EscapeMark */;
3616 val* var31 /* : nullable EscapeMark */;
3617 var_v = p0;
3618 if (likely(varonce!=NULL)) {
3619 var = varonce;
3620 } else {
3621 var1 = "for(;;) {";
3622 var2 = core__flat___NativeString___to_s_full(var1, 9l, 9l);
3623 var = var2;
3624 varonce = var;
3625 }
3626 {
3627 nitc___nitc__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3628 }
3629 {
3630 { /* Inline parser_nodes#AWhileExpr#n_expr (self) on <self:AWhileExpr> */
3631 var5 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
3632 if (unlikely(var5 == NULL)) {
3633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1890);
3635 fatal_exit(1);
3636 }
3637 var3 = var5;
3638 RET_LABEL4:(void)0;
3639 }
3640 }
3641 {
3642 var6 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var3);
3643 }
3644 var_cond = var6;
3645 if (unlikely(varonce7==NULL)) {
3646 var8 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
3647 if (likely(varonce9!=NULL)) {
3648 var10 = varonce9;
3649 } else {
3650 var11 = "if (!";
3651 var12 = core__flat___NativeString___to_s_full(var11, 5l, 5l);
3652 var10 = var12;
3653 varonce9 = var10;
3654 }
3655 ((struct instance_core__NativeArray*)var8)->values[0]=var10;
3656 if (likely(varonce13!=NULL)) {
3657 var14 = varonce13;
3658 } else {
3659 var15 = ") break;";
3660 var16 = core__flat___NativeString___to_s_full(var15, 8l, 8l);
3661 var14 = var16;
3662 varonce13 = var14;
3663 }
3664 ((struct instance_core__NativeArray*)var8)->values[2]=var14;
3665 } else {
3666 var8 = varonce7;
3667 varonce7 = NULL;
3668 }
3669 {
3670 var17 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
3671 }
3672 ((struct instance_core__NativeArray*)var8)->values[1]=var17;
3673 {
3674 var18 = ((val*(*)(val* self))(var8->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var8); /* native_to_s on <var8:NativeArray[String]>*/
3675 }
3676 varonce7 = var8;
3677 {
3678 nitc___nitc__AbstractCompilerVisitor___add(var_v, var18); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3679 }
3680 {
3681 { /* Inline parser_nodes#AWhileExpr#n_block (self) on <self:AWhileExpr> */
3682 var21 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
3683 var19 = var21;
3684 RET_LABEL20:(void)0;
3685 }
3686 }
3687 {
3688 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
3689 }
3690 {
3691 { /* Inline scope#AWhileExpr#continue_mark (self) on <self:AWhileExpr> */
3692 var24 = self->attrs[COLOR_nitc__scope__AWhileExpr___continue_mark].val; /* _continue_mark on <self:AWhileExpr> */
3693 var22 = var24;
3694 RET_LABEL23:(void)0;
3695 }
3696 }
3697 {
3698 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var22); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
3699 }
3700 if (likely(varonce25!=NULL)) {
3701 var26 = varonce25;
3702 } else {
3703 var27 = "}";
3704 var28 = core__flat___NativeString___to_s_full(var27, 1l, 1l);
3705 var26 = var28;
3706 varonce25 = var26;
3707 }
3708 {
3709 nitc___nitc__AbstractCompilerVisitor___add(var_v, var26); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3710 }
3711 {
3712 { /* Inline scope#AWhileExpr#break_mark (self) on <self:AWhileExpr> */
3713 var31 = self->attrs[COLOR_nitc__scope__AWhileExpr___break_mark].val; /* _break_mark on <self:AWhileExpr> */
3714 var29 = var31;
3715 RET_LABEL30:(void)0;
3716 }
3717 }
3718 {
3719 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
3720 }
3721 RET_LABEL:;
3722 }
3723 /* method abstract_compiler#ALoopExpr#stmt for (self: ALoopExpr, AbstractCompilerVisitor) */
3724 void nitc__abstract_compiler___ALoopExpr___AExpr__stmt(val* self, val* p0) {
3725 val* var_v /* var v: AbstractCompilerVisitor */;
3726 static val* varonce;
3727 val* var /* : String */;
3728 char* var1 /* : NativeString */;
3729 val* var2 /* : String */;
3730 val* var3 /* : nullable AExpr */;
3731 val* var5 /* : nullable AExpr */;
3732 val* var6 /* : nullable EscapeMark */;
3733 val* var8 /* : nullable EscapeMark */;
3734 static val* varonce9;
3735 val* var10 /* : String */;
3736 char* var11 /* : NativeString */;
3737 val* var12 /* : String */;
3738 val* var13 /* : nullable EscapeMark */;
3739 val* var15 /* : nullable EscapeMark */;
3740 var_v = p0;
3741 if (likely(varonce!=NULL)) {
3742 var = varonce;
3743 } else {
3744 var1 = "for(;;) {";
3745 var2 = core__flat___NativeString___to_s_full(var1, 9l, 9l);
3746 var = var2;
3747 varonce = var;
3748 }
3749 {
3750 nitc___nitc__AbstractCompilerVisitor___add(var_v, var); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3751 }
3752 {
3753 { /* Inline parser_nodes#ALoopExpr#n_block (self) on <self:ALoopExpr> */
3754 var5 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
3755 var3 = var5;
3756 RET_LABEL4:(void)0;
3757 }
3758 }
3759 {
3760 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var3); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
3761 }
3762 {
3763 { /* Inline scope#ALoopExpr#continue_mark (self) on <self:ALoopExpr> */
3764 var8 = self->attrs[COLOR_nitc__scope__ALoopExpr___continue_mark].val; /* _continue_mark on <self:ALoopExpr> */
3765 var6 = var8;
3766 RET_LABEL7:(void)0;
3767 }
3768 }
3769 {
3770 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var6); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
3771 }
3772 if (likely(varonce9!=NULL)) {
3773 var10 = varonce9;
3774 } else {
3775 var11 = "}";
3776 var12 = core__flat___NativeString___to_s_full(var11, 1l, 1l);
3777 var10 = var12;
3778 varonce9 = var10;
3779 }
3780 {
3781 nitc___nitc__AbstractCompilerVisitor___add(var_v, var10); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3782 }
3783 {
3784 { /* Inline scope#ALoopExpr#break_mark (self) on <self:ALoopExpr> */
3785 var15 = self->attrs[COLOR_nitc__scope__ALoopExpr___break_mark].val; /* _break_mark on <self:ALoopExpr> */
3786 var13 = var15;
3787 RET_LABEL14:(void)0;
3788 }
3789 }
3790 {
3791 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var13); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
3792 }
3793 RET_LABEL:;
3794 }
3795 /* method abstract_compiler#AForExpr#stmt for (self: AForExpr, AbstractCompilerVisitor) */
3796 void nitc__abstract_compiler___AForExpr___AExpr__stmt(val* self, val* p0) {
3797 val* var_v /* var v: AbstractCompilerVisitor */;
3798 val* var /* : ANodes[AForGroup] */;
3799 val* var2 /* : ANodes[AForGroup] */;
3800 val* var_ /* var : ANodes[AForGroup] */;
3801 val* var3 /* : Iterator[ANode] */;
3802 val* var_4 /* var : Iterator[AForGroup] */;
3803 short int var5 /* : Bool */;
3804 val* var6 /* : nullable Object */;
3805 val* var_g /* var g: AForGroup */;
3806 val* var7 /* : AExpr */;
3807 val* var9 /* : AExpr */;
3808 val* var10 /* : RuntimeVariable */;
3809 val* var_cl /* var cl: RuntimeVariable */;
3810 val* var11 /* : nullable CallSite */;
3811 val* var13 /* : nullable CallSite */;
3812 val* var_it_meth /* var it_meth: nullable CallSite */;
3813 short int var14 /* : Bool */;
3814 short int var15 /* : Bool */;
3815 val* var_other /* var other: nullable Object */;
3816 short int var17 /* : Bool */;
3817 short int var18 /* : Bool */;
3818 val* var19 /* : Array[RuntimeVariable] */;
3819 val* var_20 /* var : Array[RuntimeVariable] */;
3820 val* var21 /* : nullable RuntimeVariable */;
3821 val* var_it /* var it: nullable RuntimeVariable */;
3822 short int var22 /* : Bool */;
3823 short int var23 /* : Bool */;
3824 short int var25 /* : Bool */;
3825 short int var26 /* : Bool */;
3826 static val* varonce;
3827 val* var28 /* : String */;
3828 char* var29 /* : NativeString */;
3829 val* var30 /* : String */;
3830 val* var31 /* : ANodes[AForGroup] */;
3831 val* var33 /* : ANodes[AForGroup] */;
3832 val* var_34 /* var : ANodes[AForGroup] */;
3833 val* var35 /* : Iterator[ANode] */;
3834 val* var_36 /* var : Iterator[AForGroup] */;
3835 short int var37 /* : Bool */;
3836 val* var39 /* : nullable Object */;
3837 val* var_g40 /* var g: AForGroup */;
3838 val* var41 /* : RuntimeVariable */;
3839 val* var43 /* : RuntimeVariable */;
3840 val* var_it44 /* var it: RuntimeVariable */;
3841 val* var45 /* : nullable CallSite */;
3842 val* var47 /* : nullable CallSite */;
3843 val* var_isok_meth /* var isok_meth: nullable CallSite */;
3844 short int var48 /* : Bool */;
3845 short int var49 /* : Bool */;
3846 short int var51 /* : Bool */;
3847 short int var52 /* : Bool */;
3848 val* var53 /* : Array[RuntimeVariable] */;
3849 val* var_54 /* var : Array[RuntimeVariable] */;
3850 val* var55 /* : nullable RuntimeVariable */;
3851 val* var_ok /* var ok: nullable RuntimeVariable */;
3852 short int var56 /* : Bool */;
3853 short int var57 /* : Bool */;
3854 short int var59 /* : Bool */;
3855 short int var60 /* : Bool */;
3856 val* var62 /* : NativeArray[String] */;
3857 static val* varonce61;
3858 static val* varonce63;
3859 val* var64 /* : String */;
3860 char* var65 /* : NativeString */;
3861 val* var66 /* : String */;
3862 static val* varonce67;
3863 val* var68 /* : String */;
3864 char* var69 /* : NativeString */;
3865 val* var70 /* : String */;
3866 val* var71 /* : String */;
3867 val* var72 /* : String */;
3868 val* var73 /* : nullable Array[Variable] */;
3869 val* var75 /* : nullable Array[Variable] */;
3870 long var76 /* : Int */;
3871 long var78 /* : Int */;
3872 short int var79 /* : Bool */;
3873 short int var81 /* : Bool */;
3874 val* var82 /* : nullable CallSite */;
3875 val* var84 /* : nullable CallSite */;
3876 val* var_item_meth /* var item_meth: nullable CallSite */;
3877 short int var85 /* : Bool */;
3878 short int var86 /* : Bool */;
3879 short int var88 /* : Bool */;
3880 short int var89 /* : Bool */;
3881 val* var90 /* : Array[RuntimeVariable] */;
3882 val* var_91 /* var : Array[RuntimeVariable] */;
3883 val* var92 /* : nullable RuntimeVariable */;
3884 val* var_i /* var i: nullable RuntimeVariable */;
3885 short int var93 /* : Bool */;
3886 short int var94 /* : Bool */;
3887 short int var96 /* : Bool */;
3888 short int var97 /* : Bool */;
3889 val* var98 /* : nullable Array[Variable] */;
3890 val* var100 /* : nullable Array[Variable] */;
3891 val* var101 /* : nullable Object */;
3892 val* var102 /* : RuntimeVariable */;
3893 val* var103 /* : nullable Array[Variable] */;
3894 val* var105 /* : nullable Array[Variable] */;
3895 long var106 /* : Int */;
3896 long var108 /* : Int */;
3897 short int var109 /* : Bool */;
3898 short int var111 /* : Bool */;
3899 val* var112 /* : nullable CallSite */;
3900 val* var114 /* : nullable CallSite */;
3901 val* var_key_meth /* var key_meth: nullable CallSite */;
3902 short int var115 /* : Bool */;
3903 short int var116 /* : Bool */;
3904 short int var118 /* : Bool */;
3905 short int var119 /* : Bool */;
3906 val* var120 /* : Array[RuntimeVariable] */;
3907 val* var_121 /* var : Array[RuntimeVariable] */;
3908 val* var122 /* : nullable RuntimeVariable */;
3909 val* var_i123 /* var i: nullable RuntimeVariable */;
3910 short int var124 /* : Bool */;
3911 short int var125 /* : Bool */;
3912 short int var127 /* : Bool */;
3913 short int var128 /* : Bool */;
3914 val* var129 /* : nullable Array[Variable] */;
3915 val* var131 /* : nullable Array[Variable] */;
3916 val* var132 /* : nullable Object */;
3917 val* var133 /* : RuntimeVariable */;
3918 val* var134 /* : nullable CallSite */;
3919 val* var136 /* : nullable CallSite */;
3920 val* var_item_meth137 /* var item_meth: nullable CallSite */;
3921 short int var138 /* : Bool */;
3922 short int var139 /* : Bool */;
3923 short int var141 /* : Bool */;
3924 short int var142 /* : Bool */;
3925 val* var143 /* : Array[RuntimeVariable] */;
3926 val* var_144 /* var : Array[RuntimeVariable] */;
3927 val* var145 /* : nullable RuntimeVariable */;
3928 short int var146 /* : Bool */;
3929 short int var147 /* : Bool */;
3930 short int var149 /* : Bool */;
3931 short int var150 /* : Bool */;
3932 val* var151 /* : nullable Array[Variable] */;
3933 val* var153 /* : nullable Array[Variable] */;
3934 val* var154 /* : nullable Object */;
3935 val* var155 /* : RuntimeVariable */;
3936 val* var156 /* : nullable AExpr */;
3937 val* var158 /* : nullable AExpr */;
3938 val* var159 /* : nullable EscapeMark */;
3939 val* var161 /* : nullable EscapeMark */;
3940 val* var162 /* : ANodes[AForGroup] */;
3941 val* var164 /* : ANodes[AForGroup] */;
3942 val* var_165 /* var : ANodes[AForGroup] */;
3943 val* var166 /* : Iterator[ANode] */;
3944 val* var_167 /* var : Iterator[AForGroup] */;
3945 short int var168 /* : Bool */;
3946 val* var170 /* : nullable Object */;
3947 val* var_g171 /* var g: AForGroup */;
3948 val* var172 /* : nullable CallSite */;
3949 val* var174 /* : nullable CallSite */;
3950 val* var_next_meth /* var next_meth: nullable CallSite */;
3951 short int var175 /* : Bool */;
3952 short int var176 /* : Bool */;
3953 short int var178 /* : Bool */;
3954 short int var179 /* : Bool */;
3955 val* var180 /* : Array[RuntimeVariable] */;
3956 val* var_181 /* var : Array[RuntimeVariable] */;
3957 val* var182 /* : RuntimeVariable */;
3958 val* var184 /* : RuntimeVariable */;
3959 val* var185 /* : nullable RuntimeVariable */;
3960 static val* varonce186;
3961 val* var187 /* : String */;
3962 char* var188 /* : NativeString */;
3963 val* var189 /* : String */;
3964 val* var190 /* : nullable EscapeMark */;
3965 val* var192 /* : nullable EscapeMark */;
3966 val* var193 /* : ANodes[AForGroup] */;
3967 val* var195 /* : ANodes[AForGroup] */;
3968 val* var_196 /* var : ANodes[AForGroup] */;
3969 val* var197 /* : Iterator[ANode] */;
3970 val* var_198 /* var : Iterator[AForGroup] */;
3971 short int var199 /* : Bool */;
3972 val* var201 /* : nullable Object */;
3973 val* var_g202 /* var g: AForGroup */;
3974 val* var203 /* : nullable CallSite */;
3975 val* var205 /* : nullable CallSite */;
3976 val* var_method_finish /* var method_finish: nullable CallSite */;
3977 short int var206 /* : Bool */;
3978 short int var207 /* : Bool */;
3979 short int var209 /* : Bool */;
3980 short int var210 /* : Bool */;
3981 val* var211 /* : Array[RuntimeVariable] */;
3982 val* var_212 /* var : Array[RuntimeVariable] */;
3983 val* var213 /* : RuntimeVariable */;
3984 val* var215 /* : RuntimeVariable */;
3985 val* var216 /* : nullable RuntimeVariable */;
3986 var_v = p0;
3987 {
3988 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
3989 var2 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
3990 if (unlikely(var2 == NULL)) {
3991 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
3992 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
3993 fatal_exit(1);
3994 }
3995 var = var2;
3996 RET_LABEL1:(void)0;
3997 }
3998 }
3999 var_ = var;
4000 {
4001 var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
4002 }
4003 var_4 = var3;
4004 for(;;) {
4005 {
4006 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[AForGroup]>*/
4007 }
4008 if (var5){
4009 } else {
4010 goto BREAK_label;
4011 }
4012 {
4013 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[AForGroup]>*/
4014 }
4015 var_g = var6;
4016 {
4017 { /* Inline parser_nodes#AForGroup#n_expr (var_g) on <var_g:AForGroup> */
4018 var9 = var_g->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <var_g:AForGroup> */
4019 if (unlikely(var9 == NULL)) {
4020 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4021 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1943);
4022 fatal_exit(1);
4023 }
4024 var7 = var9;
4025 RET_LABEL8:(void)0;
4026 }
4027 }
4028 {
4029 var10 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var7, ((val*)NULL));
4030 }
4031 var_cl = var10;
4032 {
4033 { /* Inline typing#AForGroup#method_iterator (var_g) on <var_g:AForGroup> */
4034 var13 = var_g->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val; /* _method_iterator on <var_g:AForGroup> */
4035 var11 = var13;
4036 RET_LABEL12:(void)0;
4037 }
4038 }
4039 var_it_meth = var11;
4040 if (var_it_meth == NULL) {
4041 var14 = 0; /* is null */
4042 } else {
4043 var14 = 1; /* arg is null and recv is not */
4044 }
4045 if (0) {
4046 { /* Inline kernel#Object#!= (var_it_meth,((val*)NULL)) on <var_it_meth:nullable CallSite> */
4047 var_other = ((val*)NULL);
4048 {
4049 var17 = ((short int(*)(val* self, val* p0))(var_it_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_it_meth, var_other); /* == on <var_it_meth:nullable CallSite(CallSite)>*/
4050 }
4051 var18 = !var17;
4052 var15 = var18;
4053 goto RET_LABEL16;
4054 RET_LABEL16:(void)0;
4055 }
4056 var14 = var15;
4057 }
4058 if (unlikely(!var14)) {
4059 PRINT_ERROR("Runtime error: %s", "Assert failed");
4060 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3374);
4061 fatal_exit(1);
4062 }
4063 var19 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4064 {
4065 core___core__Array___with_capacity(var19, 1l); /* Direct call array#Array#with_capacity on <var19:Array[RuntimeVariable]>*/
4066 }
4067 var_20 = var19;
4068 {
4069 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_20, var_cl); /* Direct call array#AbstractArray#push on <var_20:Array[RuntimeVariable]>*/
4070 }
4071 {
4072 var21 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_it_meth, var_20); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4073 }
4074 var_it = var21;
4075 if (var_it == NULL) {
4076 var22 = 0; /* is null */
4077 } else {
4078 var22 = 1; /* arg is null and recv is not */
4079 }
4080 if (0) {
4081 { /* Inline kernel#Object#!= (var_it,((val*)NULL)) on <var_it:nullable RuntimeVariable> */
4082 var_other = ((val*)NULL);
4083 {
4084 var25 = ((short int(*)(val* self, val* p0))(var_it->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_it, var_other); /* == on <var_it:nullable RuntimeVariable(RuntimeVariable)>*/
4085 }
4086 var26 = !var25;
4087 var23 = var26;
4088 goto RET_LABEL24;
4089 RET_LABEL24:(void)0;
4090 }
4091 var22 = var23;
4092 }
4093 if (unlikely(!var22)) {
4094 PRINT_ERROR("Runtime error: %s", "Assert failed");
4095 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3376);
4096 fatal_exit(1);
4097 }
4098 {
4099 { /* Inline abstract_compiler#AForGroup#it= (var_g,var_it) on <var_g:AForGroup> */
4100 var_g->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val = var_it; /* _it on <var_g:AForGroup> */
4101 RET_LABEL27:(void)0;
4102 }
4103 }
4104 {
4105 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[AForGroup]>*/
4106 }
4107 }
4108 BREAK_label: (void)0;
4109 {
4110 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[AForGroup]>*/
4111 }
4112 if (likely(varonce!=NULL)) {
4113 var28 = varonce;
4114 } else {
4115 var29 = "for(;;) {";
4116 var30 = core__flat___NativeString___to_s_full(var29, 9l, 9l);
4117 var28 = var30;
4118 varonce = var28;
4119 }
4120 {
4121 nitc___nitc__AbstractCompilerVisitor___add(var_v, var28); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
4122 }
4123 {
4124 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
4125 var33 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
4126 if (unlikely(var33 == NULL)) {
4127 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
4128 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
4129 fatal_exit(1);
4130 }
4131 var31 = var33;
4132 RET_LABEL32:(void)0;
4133 }
4134 }
4135 var_34 = var31;
4136 {
4137 var35 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_34);
4138 }
4139 var_36 = var35;
4140 for(;;) {
4141 {
4142 var37 = ((short int(*)(val* self))((((long)var_36&3)?class_info[((long)var_36&3)]:var_36->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_36); /* is_ok on <var_36:Iterator[AForGroup]>*/
4143 }
4144 if (var37){
4145 } else {
4146 goto BREAK_label38;
4147 }
4148 {
4149 var39 = ((val*(*)(val* self))((((long)var_36&3)?class_info[((long)var_36&3)]:var_36->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_36); /* item on <var_36:Iterator[AForGroup]>*/
4150 }
4151 var_g40 = var39;
4152 {
4153 { /* Inline abstract_compiler#AForGroup#it (var_g40) on <var_g40:AForGroup> */
4154 var43 = var_g40->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <var_g40:AForGroup> */
4155 if (unlikely(var43 == NULL)) {
4156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
4157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3429);
4158 fatal_exit(1);
4159 }
4160 var41 = var43;
4161 RET_LABEL42:(void)0;
4162 }
4163 }
4164 var_it44 = var41;
4165 {
4166 { /* Inline typing#AForGroup#method_is_ok (var_g40) on <var_g40:AForGroup> */
4167 var47 = var_g40->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val; /* _method_is_ok on <var_g40:AForGroup> */
4168 var45 = var47;
4169 RET_LABEL46:(void)0;
4170 }
4171 }
4172 var_isok_meth = var45;
4173 if (var_isok_meth == NULL) {
4174 var48 = 0; /* is null */
4175 } else {
4176 var48 = 1; /* arg is null and recv is not */
4177 }
4178 if (0) {
4179 { /* Inline kernel#Object#!= (var_isok_meth,((val*)NULL)) on <var_isok_meth:nullable CallSite> */
4180 var_other = ((val*)NULL);
4181 {
4182 var51 = ((short int(*)(val* self, val* p0))(var_isok_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_isok_meth, var_other); /* == on <var_isok_meth:nullable CallSite(CallSite)>*/
4183 }
4184 var52 = !var51;
4185 var49 = var52;
4186 goto RET_LABEL50;
4187 RET_LABEL50:(void)0;
4188 }
4189 var48 = var49;
4190 }
4191 if (unlikely(!var48)) {
4192 PRINT_ERROR("Runtime error: %s", "Assert failed");
4193 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3383);
4194 fatal_exit(1);
4195 }
4196 var53 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4197 {
4198 core___core__Array___with_capacity(var53, 1l); /* Direct call array#Array#with_capacity on <var53:Array[RuntimeVariable]>*/
4199 }
4200 var_54 = var53;
4201 {
4202 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_54, var_it44); /* Direct call array#AbstractArray#push on <var_54:Array[RuntimeVariable]>*/
4203 }
4204 {
4205 var55 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_isok_meth, var_54); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4206 }
4207 var_ok = var55;
4208 if (var_ok == NULL) {
4209 var56 = 0; /* is null */
4210 } else {
4211 var56 = 1; /* arg is null and recv is not */
4212 }
4213 if (0) {
4214 { /* Inline kernel#Object#!= (var_ok,((val*)NULL)) on <var_ok:nullable RuntimeVariable> */
4215 var_other = ((val*)NULL);
4216 {
4217 var59 = ((short int(*)(val* self, val* p0))(var_ok->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ok, var_other); /* == on <var_ok:nullable RuntimeVariable(RuntimeVariable)>*/
4218 }
4219 var60 = !var59;
4220 var57 = var60;
4221 goto RET_LABEL58;
4222 RET_LABEL58:(void)0;
4223 }
4224 var56 = var57;
4225 }
4226 if (unlikely(!var56)) {
4227 PRINT_ERROR("Runtime error: %s", "Assert failed");
4228 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3385);
4229 fatal_exit(1);
4230 }
4231 if (unlikely(varonce61==NULL)) {
4232 var62 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
4233 if (likely(varonce63!=NULL)) {
4234 var64 = varonce63;
4235 } else {
4236 var65 = "if(!";
4237 var66 = core__flat___NativeString___to_s_full(var65, 4l, 4l);
4238 var64 = var66;
4239 varonce63 = var64;
4240 }
4241 ((struct instance_core__NativeArray*)var62)->values[0]=var64;
4242 if (likely(varonce67!=NULL)) {
4243 var68 = varonce67;
4244 } else {
4245 var69 = ") break;";
4246 var70 = core__flat___NativeString___to_s_full(var69, 8l, 8l);
4247 var68 = var70;
4248 varonce67 = var68;
4249 }
4250 ((struct instance_core__NativeArray*)var62)->values[2]=var68;
4251 } else {
4252 var62 = varonce61;
4253 varonce61 = NULL;
4254 }
4255 {
4256 var71 = ((val*(*)(val* self))(var_ok->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ok); /* to_s on <var_ok:nullable RuntimeVariable(RuntimeVariable)>*/
4257 }
4258 ((struct instance_core__NativeArray*)var62)->values[1]=var71;
4259 {
4260 var72 = ((val*(*)(val* self))(var62->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var62); /* native_to_s on <var62:NativeArray[String]>*/
4261 }
4262 varonce61 = var62;
4263 {
4264 nitc___nitc__AbstractCompilerVisitor___add(var_v, var72); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
4265 }
4266 {
4267 { /* Inline scope#AForGroup#variables (var_g40) on <var_g40:AForGroup> */
4268 var75 = var_g40->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g40:AForGroup> */
4269 var73 = var75;
4270 RET_LABEL74:(void)0;
4271 }
4272 }
4273 if (var73 == NULL) {
4274 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4275 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3387);
4276 fatal_exit(1);
4277 } else {
4278 { /* Inline array#AbstractArrayRead#length (var73) on <var73:nullable Array[Variable]> */
4279 if (unlikely(var73 == NULL)) {
4280 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4281 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
4282 fatal_exit(1);
4283 }
4284 var78 = var73->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var73:nullable Array[Variable]> */
4285 var76 = var78;
4286 RET_LABEL77:(void)0;
4287 }
4288 }
4289 {
4290 { /* Inline kernel#Int#== (var76,1l) on <var76:Int> */
4291 var81 = var76 == 1l;
4292 var79 = var81;
4293 goto RET_LABEL80;
4294 RET_LABEL80:(void)0;
4295 }
4296 }
4297 if (var79){
4298 {
4299 { /* Inline typing#AForGroup#method_item (var_g40) on <var_g40:AForGroup> */
4300 var84 = var_g40->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on <var_g40:AForGroup> */
4301 var82 = var84;
4302 RET_LABEL83:(void)0;
4303 }
4304 }
4305 var_item_meth = var82;
4306 if (var_item_meth == NULL) {
4307 var85 = 0; /* is null */
4308 } else {
4309 var85 = 1; /* arg is null and recv is not */
4310 }
4311 if (0) {
4312 { /* Inline kernel#Object#!= (var_item_meth,((val*)NULL)) on <var_item_meth:nullable CallSite> */
4313 var_other = ((val*)NULL);
4314 {
4315 var88 = ((short int(*)(val* self, val* p0))(var_item_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_item_meth, var_other); /* == on <var_item_meth:nullable CallSite(CallSite)>*/
4316 }
4317 var89 = !var88;
4318 var86 = var89;
4319 goto RET_LABEL87;
4320 RET_LABEL87:(void)0;
4321 }
4322 var85 = var86;
4323 }
4324 if (unlikely(!var85)) {
4325 PRINT_ERROR("Runtime error: %s", "Assert failed");
4326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3389);
4327 fatal_exit(1);
4328 }
4329 var90 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4330 {
4331 core___core__Array___with_capacity(var90, 1l); /* Direct call array#Array#with_capacity on <var90:Array[RuntimeVariable]>*/
4332 }
4333 var_91 = var90;
4334 {
4335 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_91, var_it44); /* Direct call array#AbstractArray#push on <var_91:Array[RuntimeVariable]>*/
4336 }
4337 {
4338 var92 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth, var_91); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4339 }
4340 var_i = var92;
4341 if (var_i == NULL) {
4342 var93 = 0; /* is null */
4343 } else {
4344 var93 = 1; /* arg is null and recv is not */
4345 }
4346 if (0) {
4347 { /* Inline kernel#Object#!= (var_i,((val*)NULL)) on <var_i:nullable RuntimeVariable> */
4348 var_other = ((val*)NULL);
4349 {
4350 var96 = ((short int(*)(val* self, val* p0))(var_i->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_i, var_other); /* == on <var_i:nullable RuntimeVariable(RuntimeVariable)>*/
4351 }
4352 var97 = !var96;
4353 var94 = var97;
4354 goto RET_LABEL95;
4355 RET_LABEL95:(void)0;
4356 }
4357 var93 = var94;
4358 }
4359 if (unlikely(!var93)) {
4360 PRINT_ERROR("Runtime error: %s", "Assert failed");
4361 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3391);
4362 fatal_exit(1);
4363 }
4364 {
4365 { /* Inline scope#AForGroup#variables (var_g40) on <var_g40:AForGroup> */
4366 var100 = var_g40->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g40:AForGroup> */
4367 var98 = var100;
4368 RET_LABEL99:(void)0;
4369 }
4370 }
4371 if (var98 == NULL) {
4372 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4373 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3392);
4374 fatal_exit(1);
4375 } else {
4376 var101 = core___core__SequenceRead___Collection__first(var98);
4377 }
4378 {
4379 var102 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var101);
4380 }
4381 {
4382 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var102, var_i); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
4383 }
4384 } else {
4385 {
4386 { /* Inline scope#AForGroup#variables (var_g40) on <var_g40:AForGroup> */
4387 var105 = var_g40->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g40:AForGroup> */
4388 var103 = var105;
4389 RET_LABEL104:(void)0;
4390 }
4391 }
4392 if (var103 == NULL) {
4393 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4394 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3393);
4395 fatal_exit(1);
4396 } else {
4397 { /* Inline array#AbstractArrayRead#length (var103) on <var103:nullable Array[Variable]> */
4398 if (unlikely(var103 == NULL)) {
4399 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4400 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
4401 fatal_exit(1);
4402 }
4403 var108 = var103->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var103:nullable Array[Variable]> */
4404 var106 = var108;
4405 RET_LABEL107:(void)0;
4406 }
4407 }
4408 {
4409 { /* Inline kernel#Int#== (var106,2l) on <var106:Int> */
4410 var111 = var106 == 2l;
4411 var109 = var111;
4412 goto RET_LABEL110;
4413 RET_LABEL110:(void)0;
4414 }
4415 }
4416 if (var109){
4417 {
4418 { /* Inline typing#AForGroup#method_key (var_g40) on <var_g40:AForGroup> */
4419 var114 = var_g40->attrs[COLOR_nitc__typing__AForGroup___method_key].val; /* _method_key on <var_g40:AForGroup> */
4420 var112 = var114;
4421 RET_LABEL113:(void)0;
4422 }
4423 }
4424 var_key_meth = var112;
4425 if (var_key_meth == NULL) {
4426 var115 = 0; /* is null */
4427 } else {
4428 var115 = 1; /* arg is null and recv is not */
4429 }
4430 if (0) {
4431 { /* Inline kernel#Object#!= (var_key_meth,((val*)NULL)) on <var_key_meth:nullable CallSite> */
4432 var_other = ((val*)NULL);
4433 {
4434 var118 = ((short int(*)(val* self, val* p0))(var_key_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_key_meth, var_other); /* == on <var_key_meth:nullable CallSite(CallSite)>*/
4435 }
4436 var119 = !var118;
4437 var116 = var119;
4438 goto RET_LABEL117;
4439 RET_LABEL117:(void)0;
4440 }
4441 var115 = var116;
4442 }
4443 if (unlikely(!var115)) {
4444 PRINT_ERROR("Runtime error: %s", "Assert failed");
4445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3395);
4446 fatal_exit(1);
4447 }
4448 var120 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4449 {
4450 core___core__Array___with_capacity(var120, 1l); /* Direct call array#Array#with_capacity on <var120:Array[RuntimeVariable]>*/
4451 }
4452 var_121 = var120;
4453 {
4454 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_121, var_it44); /* Direct call array#AbstractArray#push on <var_121:Array[RuntimeVariable]>*/
4455 }
4456 {
4457 var122 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_key_meth, var_121); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4458 }
4459 var_i123 = var122;
4460 if (var_i123 == NULL) {
4461 var124 = 0; /* is null */
4462 } else {
4463 var124 = 1; /* arg is null and recv is not */
4464 }
4465 if (0) {
4466 { /* Inline kernel#Object#!= (var_i123,((val*)NULL)) on <var_i123:nullable RuntimeVariable> */
4467 var_other = ((val*)NULL);
4468 {
4469 var127 = ((short int(*)(val* self, val* p0))(var_i123->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_i123, var_other); /* == on <var_i123:nullable RuntimeVariable(RuntimeVariable)>*/
4470 }
4471 var128 = !var127;
4472 var125 = var128;
4473 goto RET_LABEL126;
4474 RET_LABEL126:(void)0;
4475 }
4476 var124 = var125;
4477 }
4478 if (unlikely(!var124)) {
4479 PRINT_ERROR("Runtime error: %s", "Assert failed");
4480 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3397);
4481 fatal_exit(1);
4482 }
4483 {
4484 { /* Inline scope#AForGroup#variables (var_g40) on <var_g40:AForGroup> */
4485 var131 = var_g40->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g40:AForGroup> */
4486 var129 = var131;
4487 RET_LABEL130:(void)0;
4488 }
4489 }
4490 if (var129 == NULL) {
4491 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4492 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3398);
4493 fatal_exit(1);
4494 } else {
4495 var132 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var129, 0l);
4496 }
4497 {
4498 var133 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var132);
4499 }
4500 {
4501 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var133, var_i123); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
4502 }
4503 {
4504 { /* Inline typing#AForGroup#method_item (var_g40) on <var_g40:AForGroup> */
4505 var136 = var_g40->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on <var_g40:AForGroup> */
4506 var134 = var136;
4507 RET_LABEL135:(void)0;
4508 }
4509 }
4510 var_item_meth137 = var134;
4511 if (var_item_meth137 == NULL) {
4512 var138 = 0; /* is null */
4513 } else {
4514 var138 = 1; /* arg is null and recv is not */
4515 }
4516 if (0) {
4517 { /* Inline kernel#Object#!= (var_item_meth137,((val*)NULL)) on <var_item_meth137:nullable CallSite> */
4518 var_other = ((val*)NULL);
4519 {
4520 var141 = ((short int(*)(val* self, val* p0))(var_item_meth137->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_item_meth137, var_other); /* == on <var_item_meth137:nullable CallSite(CallSite)>*/
4521 }
4522 var142 = !var141;
4523 var139 = var142;
4524 goto RET_LABEL140;
4525 RET_LABEL140:(void)0;
4526 }
4527 var138 = var139;
4528 }
4529 if (unlikely(!var138)) {
4530 PRINT_ERROR("Runtime error: %s", "Assert failed");
4531 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3400);
4532 fatal_exit(1);
4533 }
4534 var143 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4535 {
4536 core___core__Array___with_capacity(var143, 1l); /* Direct call array#Array#with_capacity on <var143:Array[RuntimeVariable]>*/
4537 }
4538 var_144 = var143;
4539 {
4540 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_144, var_it44); /* Direct call array#AbstractArray#push on <var_144:Array[RuntimeVariable]>*/
4541 }
4542 {
4543 var145 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_item_meth137, var_144); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4544 }
4545 var_i123 = var145;
4546 if (var_i123 == NULL) {
4547 var146 = 0; /* is null */
4548 } else {
4549 var146 = 1; /* arg is null and recv is not */
4550 }
4551 if (0) {
4552 { /* Inline kernel#Object#!= (var_i123,((val*)NULL)) on <var_i123:nullable RuntimeVariable> */
4553 var_other = ((val*)NULL);
4554 {
4555 var149 = ((short int(*)(val* self, val* p0))(var_i123->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_i123, var_other); /* == on <var_i123:nullable RuntimeVariable(RuntimeVariable)>*/
4556 }
4557 var150 = !var149;
4558 var147 = var150;
4559 goto RET_LABEL148;
4560 RET_LABEL148:(void)0;
4561 }
4562 var146 = var147;
4563 }
4564 if (unlikely(!var146)) {
4565 PRINT_ERROR("Runtime error: %s", "Assert failed");
4566 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3402);
4567 fatal_exit(1);
4568 }
4569 {
4570 { /* Inline scope#AForGroup#variables (var_g40) on <var_g40:AForGroup> */
4571 var153 = var_g40->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <var_g40:AForGroup> */
4572 var151 = var153;
4573 RET_LABEL152:(void)0;
4574 }
4575 }
4576 if (var151 == NULL) {
4577 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4578 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3403);
4579 fatal_exit(1);
4580 } else {
4581 var154 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var151, 1l);
4582 }
4583 {
4584 var155 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var154);
4585 }
4586 {
4587 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var155, var_i123); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
4588 }
4589 } else {
4590 PRINT_ERROR("Runtime error: %s", "Aborted");
4591 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3405);
4592 fatal_exit(1);
4593 }
4594 }
4595 {
4596 ((void(*)(val* self))((((long)var_36&3)?class_info[((long)var_36&3)]:var_36->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_36); /* next on <var_36:Iterator[AForGroup]>*/
4597 }
4598 }
4599 BREAK_label38: (void)0;
4600 {
4601 ((void(*)(val* self))((((long)var_36&3)?class_info[((long)var_36&3)]:var_36->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_36); /* finish on <var_36:Iterator[AForGroup]>*/
4602 }
4603 {
4604 { /* Inline parser_nodes#AForExpr#n_block (self) on <self:AForExpr> */
4605 var158 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
4606 var156 = var158;
4607 RET_LABEL157:(void)0;
4608 }
4609 }
4610 {
4611 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var156); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
4612 }
4613 {
4614 { /* Inline scope#AForExpr#continue_mark (self) on <self:AForExpr> */
4615 var161 = self->attrs[COLOR_nitc__scope__AForExpr___continue_mark].val; /* _continue_mark on <self:AForExpr> */
4616 var159 = var161;
4617 RET_LABEL160:(void)0;
4618 }
4619 }
4620 {
4621 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var159); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
4622 }
4623 {
4624 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
4625 var164 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
4626 if (unlikely(var164 == NULL)) {
4627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
4628 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
4629 fatal_exit(1);
4630 }
4631 var162 = var164;
4632 RET_LABEL163:(void)0;
4633 }
4634 }
4635 var_165 = var162;
4636 {
4637 var166 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_165);
4638 }
4639 var_167 = var166;
4640 for(;;) {
4641 {
4642 var168 = ((short int(*)(val* self))((((long)var_167&3)?class_info[((long)var_167&3)]:var_167->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_167); /* is_ok on <var_167:Iterator[AForGroup]>*/
4643 }
4644 if (var168){
4645 } else {
4646 goto BREAK_label169;
4647 }
4648 {
4649 var170 = ((val*(*)(val* self))((((long)var_167&3)?class_info[((long)var_167&3)]:var_167->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_167); /* item on <var_167:Iterator[AForGroup]>*/
4650 }
4651 var_g171 = var170;
4652 {
4653 { /* Inline typing#AForGroup#method_next (var_g171) on <var_g171:AForGroup> */
4654 var174 = var_g171->attrs[COLOR_nitc__typing__AForGroup___method_next].val; /* _method_next on <var_g171:AForGroup> */
4655 var172 = var174;
4656 RET_LABEL173:(void)0;
4657 }
4658 }
4659 var_next_meth = var172;
4660 if (var_next_meth == NULL) {
4661 var175 = 0; /* is null */
4662 } else {
4663 var175 = 1; /* arg is null and recv is not */
4664 }
4665 if (0) {
4666 { /* Inline kernel#Object#!= (var_next_meth,((val*)NULL)) on <var_next_meth:nullable CallSite> */
4667 var_other = ((val*)NULL);
4668 {
4669 var178 = ((short int(*)(val* self, val* p0))(var_next_meth->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_next_meth, var_other); /* == on <var_next_meth:nullable CallSite(CallSite)>*/
4670 }
4671 var179 = !var178;
4672 var176 = var179;
4673 goto RET_LABEL177;
4674 RET_LABEL177:(void)0;
4675 }
4676 var175 = var176;
4677 }
4678 if (unlikely(!var175)) {
4679 PRINT_ERROR("Runtime error: %s", "Assert failed");
4680 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3412);
4681 fatal_exit(1);
4682 }
4683 var180 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4684 {
4685 core___core__Array___with_capacity(var180, 1l); /* Direct call array#Array#with_capacity on <var180:Array[RuntimeVariable]>*/
4686 }
4687 var_181 = var180;
4688 {
4689 { /* Inline abstract_compiler#AForGroup#it (var_g171) on <var_g171:AForGroup> */
4690 var184 = var_g171->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <var_g171:AForGroup> */
4691 if (unlikely(var184 == NULL)) {
4692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
4693 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3429);
4694 fatal_exit(1);
4695 }
4696 var182 = var184;
4697 RET_LABEL183:(void)0;
4698 }
4699 }
4700 {
4701 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_181, var182); /* Direct call array#AbstractArray#push on <var_181:Array[RuntimeVariable]>*/
4702 }
4703 {
4704 var185 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_next_meth, var_181); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4705 }
4706 {
4707 ((void(*)(val* self))((((long)var_167&3)?class_info[((long)var_167&3)]:var_167->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_167); /* next on <var_167:Iterator[AForGroup]>*/
4708 }
4709 }
4710 BREAK_label169: (void)0;
4711 {
4712 ((void(*)(val* self))((((long)var_167&3)?class_info[((long)var_167&3)]:var_167->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_167); /* finish on <var_167:Iterator[AForGroup]>*/
4713 }
4714 if (likely(varonce186!=NULL)) {
4715 var187 = varonce186;
4716 } else {
4717 var188 = "}";
4718 var189 = core__flat___NativeString___to_s_full(var188, 1l, 1l);
4719 var187 = var189;
4720 varonce186 = var187;
4721 }
4722 {
4723 nitc___nitc__AbstractCompilerVisitor___add(var_v, var187); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
4724 }
4725 {
4726 { /* Inline scope#AForExpr#break_mark (self) on <self:AForExpr> */
4727 var192 = self->attrs[COLOR_nitc__scope__AForExpr___break_mark].val; /* _break_mark on <self:AForExpr> */
4728 var190 = var192;
4729 RET_LABEL191:(void)0;
4730 }
4731 }
4732 {
4733 nitc___nitc__AbstractCompilerVisitor___add_escape_label(var_v, var190); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_escape_label on <var_v:AbstractCompilerVisitor>*/
4734 }
4735 {
4736 { /* Inline parser_nodes#AForExpr#n_groups (self) on <self:AForExpr> */
4737 var195 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
4738 if (unlikely(var195 == NULL)) {
4739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
4740 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1920);
4741 fatal_exit(1);
4742 }
4743 var193 = var195;
4744 RET_LABEL194:(void)0;
4745 }
4746 }
4747 var_196 = var193;
4748 {
4749 var197 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_196);
4750 }
4751 var_198 = var197;
4752 for(;;) {
4753 {
4754 var199 = ((short int(*)(val* self))((((long)var_198&3)?class_info[((long)var_198&3)]:var_198->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_198); /* is_ok on <var_198:Iterator[AForGroup]>*/
4755 }
4756 if (var199){
4757 } else {
4758 goto BREAK_label200;
4759 }
4760 {
4761 var201 = ((val*(*)(val* self))((((long)var_198&3)?class_info[((long)var_198&3)]:var_198->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_198); /* item on <var_198:Iterator[AForGroup]>*/
4762 }
4763 var_g202 = var201;
4764 {
4765 { /* Inline typing#AForGroup#method_finish (var_g202) on <var_g202:AForGroup> */
4766 var205 = var_g202->attrs[COLOR_nitc__typing__AForGroup___method_finish].val; /* _method_finish on <var_g202:AForGroup> */
4767 var203 = var205;
4768 RET_LABEL204:(void)0;
4769 }
4770 }
4771 var_method_finish = var203;
4772 if (var_method_finish == NULL) {
4773 var206 = 0; /* is null */
4774 } else {
4775 var206 = 1; /* arg is null and recv is not */
4776 }
4777 if (0) {
4778 { /* Inline kernel#Object#!= (var_method_finish,((val*)NULL)) on <var_method_finish:nullable CallSite> */
4779 var_other = ((val*)NULL);
4780 {
4781 var209 = ((short int(*)(val* self, val* p0))(var_method_finish->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_method_finish, var_other); /* == on <var_method_finish:nullable CallSite(CallSite)>*/
4782 }
4783 var210 = !var209;
4784 var207 = var210;
4785 goto RET_LABEL208;
4786 RET_LABEL208:(void)0;
4787 }
4788 var206 = var207;
4789 }
4790 if (var206){
4791 var211 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
4792 {
4793 core___core__Array___with_capacity(var211, 1l); /* Direct call array#Array#with_capacity on <var211:Array[RuntimeVariable]>*/
4794 }
4795 var_212 = var211;
4796 {
4797 { /* Inline abstract_compiler#AForGroup#it (var_g202) on <var_g202:AForGroup> */
4798 var215 = var_g202->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <var_g202:AForGroup> */
4799 if (unlikely(var215 == NULL)) {
4800 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
4801 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3429);
4802 fatal_exit(1);
4803 }
4804 var213 = var215;
4805 RET_LABEL214:(void)0;
4806 }
4807 }
4808 {
4809 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_212, var213); /* Direct call array#AbstractArray#push on <var_212:Array[RuntimeVariable]>*/
4810 }
4811 {
4812 var216 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_method_finish, var_212); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
4813 }
4814 } else {
4815 }
4816 {
4817 ((void(*)(val* self))((((long)var_198&3)?class_info[((long)var_198&3)]:var_198->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_198); /* next on <var_198:Iterator[AForGroup]>*/
4818 }
4819 }
4820 BREAK_label200: (void)0;
4821 {
4822 ((void(*)(val* self))((((long)var_198&3)?class_info[((long)var_198&3)]:var_198->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_198); /* finish on <var_198:Iterator[AForGroup]>*/
4823 }
4824 RET_LABEL:;
4825 }
4826 /* method abstract_compiler#AForGroup#it for (self: AForGroup): RuntimeVariable */
4827 val* nitc__abstract_compiler___AForGroup___it(val* self) {
4828 val* var /* : RuntimeVariable */;
4829 val* var1 /* : RuntimeVariable */;
4830 var1 = self->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val; /* _it on <self:AForGroup> */
4831 if (unlikely(var1 == NULL)) {
4832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _it");
4833 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3429);
4834 fatal_exit(1);
4835 }
4836 var = var1;
4837 RET_LABEL:;
4838 return var;
4839 }
4840 /* method abstract_compiler#AForGroup#it= for (self: AForGroup, RuntimeVariable) */
4841 void nitc__abstract_compiler___AForGroup___it_61d(val* self, val* p0) {
4842 self->attrs[COLOR_nitc__abstract_compiler__AForGroup___it].val = p0; /* _it on <self:AForGroup> */
4843 RET_LABEL:;
4844 }
4845 /* method abstract_compiler#AAssertExpr#stmt for (self: AAssertExpr, AbstractCompilerVisitor) */
4846 void nitc__abstract_compiler___AAssertExpr___AExpr__stmt(val* self, val* p0) {
4847 val* var_v /* var v: AbstractCompilerVisitor */;
4848 val* var /* : AbstractCompiler */;
4849 val* var2 /* : AbstractCompiler */;
4850 val* var3 /* : ModelBuilder */;
4851 val* var5 /* : ModelBuilder */;
4852 val* var6 /* : ToolContext */;
4853 val* var8 /* : ToolContext */;
4854 val* var9 /* : OptionBool */;
4855 val* var11 /* : OptionBool */;
4856 val* var12 /* : nullable Object */;
4857 val* var14 /* : nullable Object */;
4858 short int var15 /* : Bool */;
4859 val* var16 /* : AExpr */;
4860 val* var18 /* : AExpr */;
4861 val* var19 /* : RuntimeVariable */;
4862 val* var_cond /* var cond: RuntimeVariable */;
4863 val* var20 /* : NativeArray[String] */;
4864 static val* varonce;
4865 static val* varonce21;
4866 val* var22 /* : String */;
4867 char* var23 /* : NativeString */;
4868 val* var24 /* : String */;
4869 static val* varonce25;
4870 val* var26 /* : String */;
4871 char* var27 /* : NativeString */;
4872 val* var28 /* : String */;
4873 val* var29 /* : String */;
4874 val* var30 /* : String */;
4875 val* var31 /* : nullable AExpr */;
4876 val* var33 /* : nullable AExpr */;
4877 val* var34 /* : nullable TId */;
4878 val* var36 /* : nullable TId */;
4879 val* var_nid /* var nid: nullable TId */;
4880 short int var37 /* : Bool */;
4881 short int var38 /* : Bool */;
4882 val* var_other /* var other: nullable Object */;
4883 short int var40 /* : Bool */;
4884 short int var41 /* : Bool */;
4885 val* var43 /* : NativeArray[String] */;
4886 static val* varonce42;
4887 static val* varonce44;
4888 val* var45 /* : String */;
4889 char* var46 /* : NativeString */;
4890 val* var47 /* : String */;
4891 static val* varonce48;
4892 val* var49 /* : String */;
4893 char* var50 /* : NativeString */;
4894 val* var51 /* : String */;
4895 val* var52 /* : String */;
4896 val* var53 /* : String */;
4897 static val* varonce54;
4898 val* var55 /* : String */;
4899 char* var56 /* : NativeString */;
4900 val* var57 /* : String */;
4901 static val* varonce58;
4902 val* var59 /* : String */;
4903 char* var60 /* : NativeString */;
4904 val* var61 /* : String */;
4905 var_v = p0;
4906 {
4907 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
4908 var2 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
4909 if (unlikely(var2 == NULL)) {
4910 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4911 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
4912 fatal_exit(1);
4913 }
4914 var = var2;
4915 RET_LABEL1:(void)0;
4916 }
4917 }
4918 {
4919 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var) on <var:AbstractCompiler> */
4920 var5 = var->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var:AbstractCompiler> */
4921 if (unlikely(var5 == NULL)) {
4922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4923 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
4924 fatal_exit(1);
4925 }
4926 var3 = var5;
4927 RET_LABEL4:(void)0;
4928 }
4929 }
4930 {
4931 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var3) on <var3:ModelBuilder> */
4932 var8 = var3->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var3:ModelBuilder> */
4933 if (unlikely(var8 == NULL)) {
4934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
4936 fatal_exit(1);
4937 }
4938 var6 = var8;
4939 RET_LABEL7:(void)0;
4940 }
4941 }
4942 {
4943 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (var6) on <var6:ToolContext> */
4944 var11 = var6->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on <var6:ToolContext> */
4945 if (unlikely(var11 == NULL)) {
4946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
4947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 52);
4948 fatal_exit(1);
4949 }
4950 var9 = var11;
4951 RET_LABEL10:(void)0;
4952 }
4953 }
4954 {
4955 { /* Inline opts#Option#value (var9) on <var9:OptionBool> */
4956 var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on <var9:OptionBool> */
4957 var12 = var14;
4958 RET_LABEL13:(void)0;
4959 }
4960 }
4961 var15 = (short int)((long)(var12)>>2);
4962 if (var15){
4963 goto RET_LABEL;
4964 } else {
4965 }
4966 {
4967 { /* Inline parser_nodes#AAssertExpr#n_expr (self) on <self:AAssertExpr> */
4968 var18 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
4969 if (unlikely(var18 == NULL)) {
4970 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4971 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1975);
4972 fatal_exit(1);
4973 }
4974 var16 = var18;
4975 RET_LABEL17:(void)0;
4976 }
4977 }
4978 {
4979 var19 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var16);
4980 }
4981 var_cond = var19;
4982 if (unlikely(varonce==NULL)) {
4983 var20 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
4984 if (likely(varonce21!=NULL)) {
4985 var22 = varonce21;
4986 } else {
4987 var23 = "if (unlikely(!";
4988 var24 = core__flat___NativeString___to_s_full(var23, 14l, 14l);
4989 var22 = var24;
4990 varonce21 = var22;
4991 }
4992 ((struct instance_core__NativeArray*)var20)->values[0]=var22;
4993 if (likely(varonce25!=NULL)) {
4994 var26 = varonce25;
4995 } else {
4996 var27 = ")) {";
4997 var28 = core__flat___NativeString___to_s_full(var27, 4l, 4l);
4998 var26 = var28;
4999 varonce25 = var26;
5000 }
5001 ((struct instance_core__NativeArray*)var20)->values[2]=var26;
5002 } else {
5003 var20 = varonce;
5004 varonce = NULL;
5005 }
5006 {
5007 var29 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
5008 }
5009 ((struct instance_core__NativeArray*)var20)->values[1]=var29;
5010 {
5011 var30 = ((val*(*)(val* self))(var20->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var20); /* native_to_s on <var20:NativeArray[String]>*/
5012 }
5013 varonce = var20;
5014 {
5015 nitc___nitc__AbstractCompilerVisitor___add(var_v, var30); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5016 }
5017 {
5018 { /* Inline parser_nodes#AAssertExpr#n_else (self) on <self:AAssertExpr> */
5019 var33 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
5020 var31 = var33;
5021 RET_LABEL32:(void)0;
5022 }
5023 }
5024 {
5025 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var31); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
5026 }
5027 {
5028 { /* Inline parser_nodes#AAssertExpr#n_id (self) on <self:AAssertExpr> */
5029 var36 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_id].val; /* _n_id on <self:AAssertExpr> */
5030 var34 = var36;
5031 RET_LABEL35:(void)0;
5032 }
5033 }
5034 var_nid = var34;
5035 if (var_nid == NULL) {
5036 var37 = 0; /* is null */
5037 } else {
5038 var37 = 1; /* arg is null and recv is not */
5039 }
5040 if (0) {
5041 { /* Inline kernel#Object#!= (var_nid,((val*)NULL)) on <var_nid:nullable TId> */
5042 var_other = ((val*)NULL);
5043 {
5044 var40 = ((short int(*)(val* self, val* p0))(var_nid->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nid, var_other); /* == on <var_nid:nullable TId(TId)>*/
5045 }
5046 var41 = !var40;
5047 var38 = var41;
5048 goto RET_LABEL39;
5049 RET_LABEL39:(void)0;
5050 }
5051 var37 = var38;
5052 }
5053 if (var37){
5054 if (unlikely(varonce42==NULL)) {
5055 var43 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5056 if (likely(varonce44!=NULL)) {
5057 var45 = varonce44;
5058 } else {
5059 var46 = "Assert \'";
5060 var47 = core__flat___NativeString___to_s_full(var46, 8l, 8l);
5061 var45 = var47;
5062 varonce44 = var45;
5063 }
5064 ((struct instance_core__NativeArray*)var43)->values[0]=var45;
5065 if (likely(varonce48!=NULL)) {
5066 var49 = varonce48;
5067 } else {
5068 var50 = "\' failed";
5069 var51 = core__flat___NativeString___to_s_full(var50, 8l, 8l);
5070 var49 = var51;
5071 varonce48 = var49;
5072 }
5073 ((struct instance_core__NativeArray*)var43)->values[2]=var49;
5074 } else {
5075 var43 = varonce42;
5076 varonce42 = NULL;
5077 }
5078 {
5079 var52 = nitc__lexer_work___Token___text(var_nid);
5080 }
5081 ((struct instance_core__NativeArray*)var43)->values[1]=var52;
5082 {
5083 var53 = ((val*(*)(val* self))(var43->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var43); /* native_to_s on <var43:NativeArray[String]>*/
5084 }
5085 varonce42 = var43;
5086 {
5087 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var53); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:AbstractCompilerVisitor>*/
5088 }
5089 } else {
5090 if (likely(varonce54!=NULL)) {
5091 var55 = varonce54;
5092 } else {
5093 var56 = "Assert failed";
5094 var57 = core__flat___NativeString___to_s_full(var56, 13l, 13l);
5095 var55 = var57;
5096 varonce54 = var55;
5097 }
5098 {
5099 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var55); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:AbstractCompilerVisitor>*/
5100 }
5101 }
5102 if (likely(varonce58!=NULL)) {
5103 var59 = varonce58;
5104 } else {
5105 var60 = "}";
5106 var61 = core__flat___NativeString___to_s_full(var60, 1l, 1l);
5107 var59 = var61;
5108 varonce58 = var59;
5109 }
5110 {
5111 nitc___nitc__AbstractCompilerVisitor___add(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5112 }
5113 RET_LABEL:;
5114 }
5115 /* method abstract_compiler#AOrExpr#expr for (self: AOrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
5116 val* nitc__abstract_compiler___AOrExpr___AExpr__expr(val* self, val* p0) {
5117 val* var /* : nullable RuntimeVariable */;
5118 val* var_v /* var v: AbstractCompilerVisitor */;
5119 val* var1 /* : nullable MType */;
5120 val* var3 /* : nullable MType */;
5121 val* var4 /* : RuntimeVariable */;
5122 val* var_res /* var res: RuntimeVariable */;
5123 val* var5 /* : AExpr */;
5124 val* var7 /* : AExpr */;
5125 val* var8 /* : RuntimeVariable */;
5126 val* var_i1 /* var i1: RuntimeVariable */;
5127 val* var9 /* : NativeArray[String] */;
5128 static val* varonce;
5129 static val* varonce10;
5130 val* var11 /* : String */;
5131 char* var12 /* : NativeString */;
5132 val* var13 /* : String */;
5133 static val* varonce14;
5134 val* var15 /* : String */;
5135 char* var16 /* : NativeString */;
5136 val* var17 /* : String */;
5137 val* var18 /* : String */;
5138 val* var19 /* : String */;
5139 val* var21 /* : NativeArray[String] */;
5140 static val* varonce20;
5141 static val* varonce22;
5142 val* var23 /* : String */;
5143 char* var24 /* : NativeString */;
5144 val* var25 /* : String */;
5145 val* var26 /* : String */;
5146 val* var27 /* : String */;
5147 static val* varonce28;
5148 val* var29 /* : String */;
5149 char* var30 /* : NativeString */;
5150 val* var31 /* : String */;
5151 val* var32 /* : AExpr */;
5152 val* var34 /* : AExpr */;
5153 val* var35 /* : RuntimeVariable */;
5154 val* var_i2 /* var i2: RuntimeVariable */;
5155 val* var37 /* : NativeArray[String] */;
5156 static val* varonce36;
5157 static val* varonce38;
5158 val* var39 /* : String */;
5159 char* var40 /* : NativeString */;
5160 val* var41 /* : String */;
5161 static val* varonce42;
5162 val* var43 /* : String */;
5163 char* var44 /* : NativeString */;
5164 val* var45 /* : String */;
5165 val* var46 /* : String */;
5166 val* var47 /* : String */;
5167 val* var48 /* : String */;
5168 static val* varonce49;
5169 val* var50 /* : String */;
5170 char* var51 /* : NativeString */;
5171 val* var52 /* : String */;
5172 var_v = p0;
5173 {
5174 { /* Inline typing#AExpr#mtype (self) on <self:AOrExpr> */
5175 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOrExpr> */
5176 var1 = var3;
5177 RET_LABEL2:(void)0;
5178 }
5179 }
5180 if (unlikely(var1 == NULL)) {
5181 PRINT_ERROR("Runtime error: %s", "Cast failed");
5182 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3454);
5183 fatal_exit(1);
5184 }
5185 {
5186 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
5187 }
5188 var_res = var4;
5189 {
5190 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrExpr> */
5191 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
5192 if (unlikely(var7 == NULL)) {
5193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5194 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
5195 fatal_exit(1);
5196 }
5197 var5 = var7;
5198 RET_LABEL6:(void)0;
5199 }
5200 }
5201 {
5202 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
5203 }
5204 var_i1 = var8;
5205 if (unlikely(varonce==NULL)) {
5206 var9 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5207 if (likely(varonce10!=NULL)) {
5208 var11 = varonce10;
5209 } else {
5210 var12 = "if (";
5211 var13 = core__flat___NativeString___to_s_full(var12, 4l, 4l);
5212 var11 = var13;
5213 varonce10 = var11;
5214 }
5215 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
5216 if (likely(varonce14!=NULL)) {
5217 var15 = varonce14;
5218 } else {
5219 var16 = ") {";
5220 var17 = core__flat___NativeString___to_s_full(var16, 3l, 3l);
5221 var15 = var17;
5222 varonce14 = var15;
5223 }
5224 ((struct instance_core__NativeArray*)var9)->values[2]=var15;
5225 } else {
5226 var9 = varonce;
5227 varonce = NULL;
5228 }
5229 {
5230 var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
5231 }
5232 ((struct instance_core__NativeArray*)var9)->values[1]=var18;
5233 {
5234 var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
5235 }
5236 varonce = var9;
5237 {
5238 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5239 }
5240 if (unlikely(varonce20==NULL)) {
5241 var21 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
5242 if (likely(varonce22!=NULL)) {
5243 var23 = varonce22;
5244 } else {
5245 var24 = " = 1;";
5246 var25 = core__flat___NativeString___to_s_full(var24, 5l, 5l);
5247 var23 = var25;
5248 varonce22 = var23;
5249 }
5250 ((struct instance_core__NativeArray*)var21)->values[1]=var23;
5251 } else {
5252 var21 = varonce20;
5253 varonce20 = NULL;
5254 }
5255 {
5256 var26 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5257 }
5258 ((struct instance_core__NativeArray*)var21)->values[0]=var26;
5259 {
5260 var27 = ((val*(*)(val* self))(var21->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var21); /* native_to_s on <var21:NativeArray[String]>*/
5261 }
5262 varonce20 = var21;
5263 {
5264 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5265 }
5266 if (likely(varonce28!=NULL)) {
5267 var29 = varonce28;
5268 } else {
5269 var30 = "} else {";
5270 var31 = core__flat___NativeString___to_s_full(var30, 8l, 8l);
5271 var29 = var31;
5272 varonce28 = var29;
5273 }
5274 {
5275 nitc___nitc__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5276 }
5277 {
5278 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrExpr> */
5279 var34 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
5280 if (unlikely(var34 == NULL)) {
5281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5282 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
5283 fatal_exit(1);
5284 }
5285 var32 = var34;
5286 RET_LABEL33:(void)0;
5287 }
5288 }
5289 {
5290 var35 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var32);
5291 }
5292 var_i2 = var35;
5293 if (unlikely(varonce36==NULL)) {
5294 var37 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
5295 if (likely(varonce38!=NULL)) {
5296 var39 = varonce38;
5297 } else {
5298 var40 = " = ";
5299 var41 = core__flat___NativeString___to_s_full(var40, 3l, 3l);
5300 var39 = var41;
5301 varonce38 = var39;
5302 }
5303 ((struct instance_core__NativeArray*)var37)->values[1]=var39;
5304 if (likely(varonce42!=NULL)) {
5305 var43 = varonce42;
5306 } else {
5307 var44 = ";";
5308 var45 = core__flat___NativeString___to_s_full(var44, 1l, 1l);
5309 var43 = var45;
5310 varonce42 = var43;
5311 }
5312 ((struct instance_core__NativeArray*)var37)->values[3]=var43;
5313 } else {
5314 var37 = varonce36;
5315 varonce36 = NULL;
5316 }
5317 {
5318 var46 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5319 }
5320 ((struct instance_core__NativeArray*)var37)->values[0]=var46;
5321 {
5322 var47 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i2); /* to_s on <var_i2:RuntimeVariable>*/
5323 }
5324 ((struct instance_core__NativeArray*)var37)->values[2]=var47;
5325 {
5326 var48 = ((val*(*)(val* self))(var37->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var37); /* native_to_s on <var37:NativeArray[String]>*/
5327 }
5328 varonce36 = var37;
5329 {
5330 nitc___nitc__AbstractCompilerVisitor___add(var_v, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5331 }
5332 if (likely(varonce49!=NULL)) {
5333 var50 = varonce49;
5334 } else {
5335 var51 = "}";
5336 var52 = core__flat___NativeString___to_s_full(var51, 1l, 1l);
5337 var50 = var52;
5338 varonce49 = var50;
5339 }
5340 {
5341 nitc___nitc__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5342 }
5343 var = var_res;
5344 goto RET_LABEL;
5345 RET_LABEL:;
5346 return var;
5347 }
5348 /* method abstract_compiler#AImpliesExpr#expr for (self: AImpliesExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
5349 val* nitc__abstract_compiler___AImpliesExpr___AExpr__expr(val* self, val* p0) {
5350 val* var /* : nullable RuntimeVariable */;
5351 val* var_v /* var v: AbstractCompilerVisitor */;
5352 val* var1 /* : nullable MType */;
5353 val* var3 /* : nullable MType */;
5354 val* var4 /* : RuntimeVariable */;
5355 val* var_res /* var res: RuntimeVariable */;
5356 val* var5 /* : AExpr */;
5357 val* var7 /* : AExpr */;
5358 val* var8 /* : RuntimeVariable */;
5359 val* var_i1 /* var i1: RuntimeVariable */;
5360 val* var9 /* : NativeArray[String] */;
5361 static val* varonce;
5362 static val* varonce10;
5363 val* var11 /* : String */;
5364 char* var12 /* : NativeString */;
5365 val* var13 /* : String */;
5366 static val* varonce14;
5367 val* var15 /* : String */;
5368 char* var16 /* : NativeString */;
5369 val* var17 /* : String */;
5370 val* var18 /* : String */;
5371 val* var19 /* : String */;
5372 val* var21 /* : NativeArray[String] */;
5373 static val* varonce20;
5374 static val* varonce22;
5375 val* var23 /* : String */;
5376 char* var24 /* : NativeString */;
5377 val* var25 /* : String */;
5378 val* var26 /* : String */;
5379 val* var27 /* : String */;
5380 static val* varonce28;
5381 val* var29 /* : String */;
5382 char* var30 /* : NativeString */;
5383 val* var31 /* : String */;
5384 val* var32 /* : AExpr */;
5385 val* var34 /* : AExpr */;
5386 val* var35 /* : RuntimeVariable */;
5387 val* var_i2 /* var i2: RuntimeVariable */;
5388 val* var37 /* : NativeArray[String] */;
5389 static val* varonce36;
5390 static val* varonce38;
5391 val* var39 /* : String */;
5392 char* var40 /* : NativeString */;
5393 val* var41 /* : String */;
5394 static val* varonce42;
5395 val* var43 /* : String */;
5396 char* var44 /* : NativeString */;
5397 val* var45 /* : String */;
5398 val* var46 /* : String */;
5399 val* var47 /* : String */;
5400 val* var48 /* : String */;
5401 static val* varonce49;
5402 val* var50 /* : String */;
5403 char* var51 /* : NativeString */;
5404 val* var52 /* : String */;
5405 var_v = p0;
5406 {
5407 { /* Inline typing#AExpr#mtype (self) on <self:AImpliesExpr> */
5408 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AImpliesExpr> */
5409 var1 = var3;
5410 RET_LABEL2:(void)0;
5411 }
5412 }
5413 if (unlikely(var1 == NULL)) {
5414 PRINT_ERROR("Runtime error: %s", "Cast failed");
5415 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3469);
5416 fatal_exit(1);
5417 }
5418 {
5419 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
5420 }
5421 var_res = var4;
5422 {
5423 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AImpliesExpr> */
5424 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
5425 if (unlikely(var7 == NULL)) {
5426 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5427 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
5428 fatal_exit(1);
5429 }
5430 var5 = var7;
5431 RET_LABEL6:(void)0;
5432 }
5433 }
5434 {
5435 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
5436 }
5437 var_i1 = var8;
5438 if (unlikely(varonce==NULL)) {
5439 var9 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5440 if (likely(varonce10!=NULL)) {
5441 var11 = varonce10;
5442 } else {
5443 var12 = "if (!";
5444 var13 = core__flat___NativeString___to_s_full(var12, 5l, 5l);
5445 var11 = var13;
5446 varonce10 = var11;
5447 }
5448 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
5449 if (likely(varonce14!=NULL)) {
5450 var15 = varonce14;
5451 } else {
5452 var16 = ") {";
5453 var17 = core__flat___NativeString___to_s_full(var16, 3l, 3l);
5454 var15 = var17;
5455 varonce14 = var15;
5456 }
5457 ((struct instance_core__NativeArray*)var9)->values[2]=var15;
5458 } else {
5459 var9 = varonce;
5460 varonce = NULL;
5461 }
5462 {
5463 var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
5464 }
5465 ((struct instance_core__NativeArray*)var9)->values[1]=var18;
5466 {
5467 var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
5468 }
5469 varonce = var9;
5470 {
5471 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5472 }
5473 if (unlikely(varonce20==NULL)) {
5474 var21 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
5475 if (likely(varonce22!=NULL)) {
5476 var23 = varonce22;
5477 } else {
5478 var24 = " = 1;";
5479 var25 = core__flat___NativeString___to_s_full(var24, 5l, 5l);
5480 var23 = var25;
5481 varonce22 = var23;
5482 }
5483 ((struct instance_core__NativeArray*)var21)->values[1]=var23;
5484 } else {
5485 var21 = varonce20;
5486 varonce20 = NULL;
5487 }
5488 {
5489 var26 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5490 }
5491 ((struct instance_core__NativeArray*)var21)->values[0]=var26;
5492 {
5493 var27 = ((val*(*)(val* self))(var21->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var21); /* native_to_s on <var21:NativeArray[String]>*/
5494 }
5495 varonce20 = var21;
5496 {
5497 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5498 }
5499 if (likely(varonce28!=NULL)) {
5500 var29 = varonce28;
5501 } else {
5502 var30 = "} else {";
5503 var31 = core__flat___NativeString___to_s_full(var30, 8l, 8l);
5504 var29 = var31;
5505 varonce28 = var29;
5506 }
5507 {
5508 nitc___nitc__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5509 }
5510 {
5511 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AImpliesExpr> */
5512 var34 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
5513 if (unlikely(var34 == NULL)) {
5514 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5515 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
5516 fatal_exit(1);
5517 }
5518 var32 = var34;
5519 RET_LABEL33:(void)0;
5520 }
5521 }
5522 {
5523 var35 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var32);
5524 }
5525 var_i2 = var35;
5526 if (unlikely(varonce36==NULL)) {
5527 var37 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
5528 if (likely(varonce38!=NULL)) {
5529 var39 = varonce38;
5530 } else {
5531 var40 = " = ";
5532 var41 = core__flat___NativeString___to_s_full(var40, 3l, 3l);
5533 var39 = var41;
5534 varonce38 = var39;
5535 }
5536 ((struct instance_core__NativeArray*)var37)->values[1]=var39;
5537 if (likely(varonce42!=NULL)) {
5538 var43 = varonce42;
5539 } else {
5540 var44 = ";";
5541 var45 = core__flat___NativeString___to_s_full(var44, 1l, 1l);
5542 var43 = var45;
5543 varonce42 = var43;
5544 }
5545 ((struct instance_core__NativeArray*)var37)->values[3]=var43;
5546 } else {
5547 var37 = varonce36;
5548 varonce36 = NULL;
5549 }
5550 {
5551 var46 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5552 }
5553 ((struct instance_core__NativeArray*)var37)->values[0]=var46;
5554 {
5555 var47 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i2); /* to_s on <var_i2:RuntimeVariable>*/
5556 }
5557 ((struct instance_core__NativeArray*)var37)->values[2]=var47;
5558 {
5559 var48 = ((val*(*)(val* self))(var37->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var37); /* native_to_s on <var37:NativeArray[String]>*/
5560 }
5561 varonce36 = var37;
5562 {
5563 nitc___nitc__AbstractCompilerVisitor___add(var_v, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5564 }
5565 if (likely(varonce49!=NULL)) {
5566 var50 = varonce49;
5567 } else {
5568 var51 = "}";
5569 var52 = core__flat___NativeString___to_s_full(var51, 1l, 1l);
5570 var50 = var52;
5571 varonce49 = var50;
5572 }
5573 {
5574 nitc___nitc__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5575 }
5576 var = var_res;
5577 goto RET_LABEL;
5578 RET_LABEL:;
5579 return var;
5580 }
5581 /* method abstract_compiler#AAndExpr#expr for (self: AAndExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
5582 val* nitc__abstract_compiler___AAndExpr___AExpr__expr(val* self, val* p0) {
5583 val* var /* : nullable RuntimeVariable */;
5584 val* var_v /* var v: AbstractCompilerVisitor */;
5585 val* var1 /* : nullable MType */;
5586 val* var3 /* : nullable MType */;
5587 val* var4 /* : RuntimeVariable */;
5588 val* var_res /* var res: RuntimeVariable */;
5589 val* var5 /* : AExpr */;
5590 val* var7 /* : AExpr */;
5591 val* var8 /* : RuntimeVariable */;
5592 val* var_i1 /* var i1: RuntimeVariable */;
5593 val* var9 /* : NativeArray[String] */;
5594 static val* varonce;
5595 static val* varonce10;
5596 val* var11 /* : String */;
5597 char* var12 /* : NativeString */;
5598 val* var13 /* : String */;
5599 static val* varonce14;
5600 val* var15 /* : String */;
5601 char* var16 /* : NativeString */;
5602 val* var17 /* : String */;
5603 val* var18 /* : String */;
5604 val* var19 /* : String */;
5605 val* var21 /* : NativeArray[String] */;
5606 static val* varonce20;
5607 static val* varonce22;
5608 val* var23 /* : String */;
5609 char* var24 /* : NativeString */;
5610 val* var25 /* : String */;
5611 val* var26 /* : String */;
5612 val* var27 /* : String */;
5613 static val* varonce28;
5614 val* var29 /* : String */;
5615 char* var30 /* : NativeString */;
5616 val* var31 /* : String */;
5617 val* var32 /* : AExpr */;
5618 val* var34 /* : AExpr */;
5619 val* var35 /* : RuntimeVariable */;
5620 val* var_i2 /* var i2: RuntimeVariable */;
5621 val* var37 /* : NativeArray[String] */;
5622 static val* varonce36;
5623 static val* varonce38;
5624 val* var39 /* : String */;
5625 char* var40 /* : NativeString */;
5626 val* var41 /* : String */;
5627 static val* varonce42;
5628 val* var43 /* : String */;
5629 char* var44 /* : NativeString */;
5630 val* var45 /* : String */;
5631 val* var46 /* : String */;
5632 val* var47 /* : String */;
5633 val* var48 /* : String */;
5634 static val* varonce49;
5635 val* var50 /* : String */;
5636 char* var51 /* : NativeString */;
5637 val* var52 /* : String */;
5638 var_v = p0;
5639 {
5640 { /* Inline typing#AExpr#mtype (self) on <self:AAndExpr> */
5641 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AAndExpr> */
5642 var1 = var3;
5643 RET_LABEL2:(void)0;
5644 }
5645 }
5646 if (unlikely(var1 == NULL)) {
5647 PRINT_ERROR("Runtime error: %s", "Cast failed");
5648 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3484);
5649 fatal_exit(1);
5650 }
5651 {
5652 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
5653 }
5654 var_res = var4;
5655 {
5656 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AAndExpr> */
5657 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
5658 if (unlikely(var7 == NULL)) {
5659 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5660 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
5661 fatal_exit(1);
5662 }
5663 var5 = var7;
5664 RET_LABEL6:(void)0;
5665 }
5666 }
5667 {
5668 var8 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var5);
5669 }
5670 var_i1 = var8;
5671 if (unlikely(varonce==NULL)) {
5672 var9 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5673 if (likely(varonce10!=NULL)) {
5674 var11 = varonce10;
5675 } else {
5676 var12 = "if (!";
5677 var13 = core__flat___NativeString___to_s_full(var12, 5l, 5l);
5678 var11 = var13;
5679 varonce10 = var11;
5680 }
5681 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
5682 if (likely(varonce14!=NULL)) {
5683 var15 = varonce14;
5684 } else {
5685 var16 = ") {";
5686 var17 = core__flat___NativeString___to_s_full(var16, 3l, 3l);
5687 var15 = var17;
5688 varonce14 = var15;
5689 }
5690 ((struct instance_core__NativeArray*)var9)->values[2]=var15;
5691 } else {
5692 var9 = varonce;
5693 varonce = NULL;
5694 }
5695 {
5696 var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
5697 }
5698 ((struct instance_core__NativeArray*)var9)->values[1]=var18;
5699 {
5700 var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
5701 }
5702 varonce = var9;
5703 {
5704 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5705 }
5706 if (unlikely(varonce20==NULL)) {
5707 var21 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
5708 if (likely(varonce22!=NULL)) {
5709 var23 = varonce22;
5710 } else {
5711 var24 = " = 0;";
5712 var25 = core__flat___NativeString___to_s_full(var24, 5l, 5l);
5713 var23 = var25;
5714 varonce22 = var23;
5715 }
5716 ((struct instance_core__NativeArray*)var21)->values[1]=var23;
5717 } else {
5718 var21 = varonce20;
5719 varonce20 = NULL;
5720 }
5721 {
5722 var26 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5723 }
5724 ((struct instance_core__NativeArray*)var21)->values[0]=var26;
5725 {
5726 var27 = ((val*(*)(val* self))(var21->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var21); /* native_to_s on <var21:NativeArray[String]>*/
5727 }
5728 varonce20 = var21;
5729 {
5730 nitc___nitc__AbstractCompilerVisitor___add(var_v, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5731 }
5732 if (likely(varonce28!=NULL)) {
5733 var29 = varonce28;
5734 } else {
5735 var30 = "} else {";
5736 var31 = core__flat___NativeString___to_s_full(var30, 8l, 8l);
5737 var29 = var31;
5738 varonce28 = var29;
5739 }
5740 {
5741 nitc___nitc__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5742 }
5743 {
5744 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AAndExpr> */
5745 var34 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
5746 if (unlikely(var34 == NULL)) {
5747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5748 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
5749 fatal_exit(1);
5750 }
5751 var32 = var34;
5752 RET_LABEL33:(void)0;
5753 }
5754 }
5755 {
5756 var35 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var32);
5757 }
5758 var_i2 = var35;
5759 if (unlikely(varonce36==NULL)) {
5760 var37 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
5761 if (likely(varonce38!=NULL)) {
5762 var39 = varonce38;
5763 } else {
5764 var40 = " = ";
5765 var41 = core__flat___NativeString___to_s_full(var40, 3l, 3l);
5766 var39 = var41;
5767 varonce38 = var39;
5768 }
5769 ((struct instance_core__NativeArray*)var37)->values[1]=var39;
5770 if (likely(varonce42!=NULL)) {
5771 var43 = varonce42;
5772 } else {
5773 var44 = ";";
5774 var45 = core__flat___NativeString___to_s_full(var44, 1l, 1l);
5775 var43 = var45;
5776 varonce42 = var43;
5777 }
5778 ((struct instance_core__NativeArray*)var37)->values[3]=var43;
5779 } else {
5780 var37 = varonce36;
5781 varonce36 = NULL;
5782 }
5783 {
5784 var46 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5785 }
5786 ((struct instance_core__NativeArray*)var37)->values[0]=var46;
5787 {
5788 var47 = ((val*(*)(val* self))(var_i2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i2); /* to_s on <var_i2:RuntimeVariable>*/
5789 }
5790 ((struct instance_core__NativeArray*)var37)->values[2]=var47;
5791 {
5792 var48 = ((val*(*)(val* self))(var37->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var37); /* native_to_s on <var37:NativeArray[String]>*/
5793 }
5794 varonce36 = var37;
5795 {
5796 nitc___nitc__AbstractCompilerVisitor___add(var_v, var48); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5797 }
5798 if (likely(varonce49!=NULL)) {
5799 var50 = varonce49;
5800 } else {
5801 var51 = "}";
5802 var52 = core__flat___NativeString___to_s_full(var51, 1l, 1l);
5803 var50 = var52;
5804 varonce49 = var50;
5805 }
5806 {
5807 nitc___nitc__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5808 }
5809 var = var_res;
5810 goto RET_LABEL;
5811 RET_LABEL:;
5812 return var;
5813 }
5814 /* method abstract_compiler#ANotExpr#expr for (self: ANotExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
5815 val* nitc__abstract_compiler___ANotExpr___AExpr__expr(val* self, val* p0) {
5816 val* var /* : nullable RuntimeVariable */;
5817 val* var_v /* var v: AbstractCompilerVisitor */;
5818 val* var1 /* : AExpr */;
5819 val* var3 /* : AExpr */;
5820 val* var4 /* : RuntimeVariable */;
5821 val* var_cond /* var cond: RuntimeVariable */;
5822 val* var5 /* : NativeArray[String] */;
5823 static val* varonce;
5824 static val* varonce6;
5825 val* var7 /* : String */;
5826 char* var8 /* : NativeString */;
5827 val* var9 /* : String */;
5828 val* var10 /* : String */;
5829 val* var11 /* : String */;
5830 val* var12 /* : nullable MType */;
5831 val* var14 /* : nullable MType */;
5832 val* var15 /* : RuntimeVariable */;
5833 var_v = p0;
5834 {
5835 { /* Inline parser_nodes#ANotExpr#n_expr (self) on <self:ANotExpr> */
5836 var3 = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
5837 if (unlikely(var3 == NULL)) {
5838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5839 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2090);
5840 fatal_exit(1);
5841 }
5842 var1 = var3;
5843 RET_LABEL2:(void)0;
5844 }
5845 }
5846 {
5847 var4 = nitc___nitc__AbstractCompilerVisitor___expr_bool(var_v, var1);
5848 }
5849 var_cond = var4;
5850 if (unlikely(varonce==NULL)) {
5851 var5 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
5852 if (likely(varonce6!=NULL)) {
5853 var7 = varonce6;
5854 } else {
5855 var8 = "!";
5856 var9 = core__flat___NativeString___to_s_full(var8, 1l, 1l);
5857 var7 = var9;
5858 varonce6 = var7;
5859 }
5860 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
5861 } else {
5862 var5 = varonce;
5863 varonce = NULL;
5864 }
5865 {
5866 var10 = ((val*(*)(val* self))(var_cond->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_cond); /* to_s on <var_cond:RuntimeVariable>*/
5867 }
5868 ((struct instance_core__NativeArray*)var5)->values[1]=var10;
5869 {
5870 var11 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
5871 }
5872 varonce = var5;
5873 {
5874 { /* Inline typing#AExpr#mtype (self) on <self:ANotExpr> */
5875 var14 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:ANotExpr> */
5876 var12 = var14;
5877 RET_LABEL13:(void)0;
5878 }
5879 }
5880 if (unlikely(var12 == NULL)) {
5881 PRINT_ERROR("Runtime error: %s", "Cast failed");
5882 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3500);
5883 fatal_exit(1);
5884 }
5885 {
5886 var15 = nitc___nitc__AbstractCompilerVisitor___new_expr(var_v, var11, var12);
5887 }
5888 var = var15;
5889 goto RET_LABEL;
5890 RET_LABEL:;
5891 return var;
5892 }
5893 /* method abstract_compiler#AOrElseExpr#expr for (self: AOrElseExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
5894 val* nitc__abstract_compiler___AOrElseExpr___AExpr__expr(val* self, val* p0) {
5895 val* var /* : nullable RuntimeVariable */;
5896 val* var_v /* var v: AbstractCompilerVisitor */;
5897 val* var1 /* : nullable MType */;
5898 val* var3 /* : nullable MType */;
5899 val* var4 /* : RuntimeVariable */;
5900 val* var_res /* var res: RuntimeVariable */;
5901 val* var5 /* : AExpr */;
5902 val* var7 /* : AExpr */;
5903 val* var8 /* : RuntimeVariable */;
5904 val* var_i1 /* var i1: RuntimeVariable */;
5905 val* var9 /* : NativeArray[String] */;
5906 static val* varonce;
5907 static val* varonce10;
5908 val* var11 /* : String */;
5909 char* var12 /* : NativeString */;
5910 val* var13 /* : String */;
5911 static val* varonce14;
5912 val* var15 /* : String */;
5913 char* var16 /* : NativeString */;
5914 val* var17 /* : String */;
5915 val* var18 /* : String */;
5916 val* var19 /* : String */;
5917 static val* varonce20;
5918 val* var21 /* : String */;
5919 char* var22 /* : NativeString */;
5920 val* var23 /* : String */;
5921 val* var24 /* : AExpr */;
5922 val* var26 /* : AExpr */;
5923 val* var27 /* : RuntimeVariable */;
5924 val* var_i2 /* var i2: RuntimeVariable */;
5925 static val* varonce28;
5926 val* var29 /* : String */;
5927 char* var30 /* : NativeString */;
5928 val* var31 /* : String */;
5929 var_v = p0;
5930 {
5931 { /* Inline typing#AExpr#mtype (self) on <self:AOrElseExpr> */
5932 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOrElseExpr> */
5933 var1 = var3;
5934 RET_LABEL2:(void)0;
5935 }
5936 }
5937 if (unlikely(var1 == NULL)) {
5938 PRINT_ERROR("Runtime error: %s", "Cast failed");
5939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3507);
5940 fatal_exit(1);
5941 }
5942 {
5943 var4 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var1);
5944 }
5945 var_res = var4;
5946 {
5947 { /* Inline parser_nodes#ABinBoolExpr#n_expr (self) on <self:AOrElseExpr> */
5948 var7 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
5949 if (unlikely(var7 == NULL)) {
5950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5951 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2050);
5952 fatal_exit(1);
5953 }
5954 var5 = var7;
5955 RET_LABEL6:(void)0;
5956 }
5957 }
5958 {
5959 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
5960 }
5961 var_i1 = var8;
5962 if (unlikely(varonce==NULL)) {
5963 var9 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
5964 if (likely(varonce10!=NULL)) {
5965 var11 = varonce10;
5966 } else {
5967 var12 = "if (";
5968 var13 = core__flat___NativeString___to_s_full(var12, 4l, 4l);
5969 var11 = var13;
5970 varonce10 = var11;
5971 }
5972 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
5973 if (likely(varonce14!=NULL)) {
5974 var15 = varonce14;
5975 } else {
5976 var16 = "!=NULL) {";
5977 var17 = core__flat___NativeString___to_s_full(var16, 9l, 9l);
5978 var15 = var17;
5979 varonce14 = var15;
5980 }
5981 ((struct instance_core__NativeArray*)var9)->values[2]=var15;
5982 } else {
5983 var9 = varonce;
5984 varonce = NULL;
5985 }
5986 {
5987 var18 = ((val*(*)(val* self))(var_i1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i1); /* to_s on <var_i1:RuntimeVariable>*/
5988 }
5989 ((struct instance_core__NativeArray*)var9)->values[1]=var18;
5990 {
5991 var19 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
5992 }
5993 varonce = var9;
5994 {
5995 nitc___nitc__AbstractCompilerVisitor___add(var_v, var19); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
5996 }
5997 {
5998 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var_i1); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
5999 }
6000 if (likely(varonce20!=NULL)) {
6001 var21 = varonce20;
6002 } else {
6003 var22 = "} else {";
6004 var23 = core__flat___NativeString___to_s_full(var22, 8l, 8l);
6005 var21 = var23;
6006 varonce20 = var21;
6007 }
6008 {
6009 nitc___nitc__AbstractCompilerVisitor___add(var_v, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
6010 }
6011 {
6012 { /* Inline parser_nodes#ABinBoolExpr#n_expr2 (self) on <self:AOrElseExpr> */
6013 var26 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
6014 if (unlikely(var26 == NULL)) {
6015 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
6016 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
6017 fatal_exit(1);
6018 }
6019 var24 = var26;
6020 RET_LABEL25:(void)0;
6021 }
6022 }
6023 {
6024 var27 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var24, ((val*)NULL));
6025 }
6026 var_i2 = var27;
6027 {
6028 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var_res, var_i2); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
6029 }
6030 if (likely(varonce28!=NULL)) {
6031 var29 = varonce28;
6032 } else {
6033 var30 = "}";
6034 var31 = core__flat___NativeString___to_s_full(var30, 1l, 1l);
6035 var29 = var31;
6036 varonce28 = var29;
6037 }
6038 {
6039 nitc___nitc__AbstractCompilerVisitor___add(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
6040 }
6041 var = var_res;
6042 goto RET_LABEL;
6043 RET_LABEL:;
6044 return var;
6045 }
6046 /* method abstract_compiler#AIntegerExpr#expr for (self: AIntegerExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6047 val* nitc__abstract_compiler___AIntegerExpr___AExpr__expr(val* self, val* p0) {
6048 val* var /* : nullable RuntimeVariable */;
6049 val* var_v /* var v: AbstractCompilerVisitor */;
6050 val* var1 /* : nullable Numeric */;
6051 val* var3 /* : nullable Numeric */;
6052 short int var4 /* : Bool */;
6053 int cltype;
6054 int idtype;
6055 val* var5 /* : nullable Numeric */;
6056 val* var7 /* : nullable Numeric */;
6057 short int var8 /* : Bool */;
6058 int cltype9;
6059 int idtype10;
6060 const char* var_class_name;
6061 val* var11 /* : RuntimeVariable */;
6062 long var12 /* : Int */;
6063 val* var13 /* : nullable Numeric */;
6064 val* var15 /* : nullable Numeric */;
6065 short int var16 /* : Bool */;
6066 int cltype17;
6067 int idtype18;
6068 val* var19 /* : nullable Numeric */;
6069 val* var21 /* : nullable Numeric */;
6070 short int var22 /* : Bool */;
6071 int cltype23;
6072 int idtype24;
6073 const char* var_class_name25;
6074 val* var26 /* : RuntimeVariable */;
6075 unsigned char var27 /* : Byte */;
6076 val* var28 /* : nullable Numeric */;
6077 val* var30 /* : nullable Numeric */;
6078 short int var31 /* : Bool */;
6079 int cltype32;
6080 int idtype33;
6081 val* var34 /* : nullable Numeric */;
6082 val* var36 /* : nullable Numeric */;
6083 short int var37 /* : Bool */;
6084 int cltype38;
6085 int idtype39;
6086 const char* var_class_name40;
6087 val* var41 /* : RuntimeVariable */;
6088 int8_t var42 /* : Int8 */;
6089 val* var43 /* : nullable Numeric */;
6090 val* var45 /* : nullable Numeric */;
6091 short int var46 /* : Bool */;
6092 int cltype47;
6093 int idtype48;
6094 val* var49 /* : nullable Numeric */;
6095 val* var51 /* : nullable Numeric */;
6096 short int var52 /* : Bool */;
6097 int cltype53;
6098 int idtype54;
6099 const char* var_class_name55;
6100 val* var56 /* : RuntimeVariable */;
6101 int16_t var57 /* : Int16 */;
6102 val* var58 /* : nullable Numeric */;
6103 val* var60 /* : nullable Numeric */;
6104 short int var61 /* : Bool */;
6105 int cltype62;
6106 int idtype63;
6107 val* var64 /* : nullable Numeric */;
6108 val* var66 /* : nullable Numeric */;
6109 short int var67 /* : Bool */;
6110 int cltype68;
6111 int idtype69;
6112 const char* var_class_name70;
6113 val* var71 /* : RuntimeVariable */;
6114 uint16_t var72 /* : UInt16 */;
6115 val* var73 /* : nullable Numeric */;
6116 val* var75 /* : nullable Numeric */;
6117 short int var76 /* : Bool */;
6118 int cltype77;
6119 int idtype78;
6120 val* var79 /* : nullable Numeric */;
6121 val* var81 /* : nullable Numeric */;
6122 short int var82 /* : Bool */;
6123 int cltype83;
6124 int idtype84;
6125 const char* var_class_name85;
6126 val* var86 /* : RuntimeVariable */;
6127 int32_t var87 /* : Int32 */;
6128 val* var88 /* : nullable Numeric */;
6129 val* var90 /* : nullable Numeric */;
6130 short int var91 /* : Bool */;
6131 int cltype92;
6132 int idtype93;
6133 val* var94 /* : nullable Numeric */;
6134 val* var96 /* : nullable Numeric */;
6135 short int var97 /* : Bool */;
6136 int cltype98;
6137 int idtype99;
6138 const char* var_class_name100;
6139 val* var101 /* : RuntimeVariable */;
6140 uint32_t var102 /* : UInt32 */;
6141 var_v = p0;
6142 {
6143 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6144 var3 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6145 var1 = var3;
6146 RET_LABEL2:(void)0;
6147 }
6148 }
6149 /* <var1:nullable Numeric> isa Int */
6150 cltype = type_core__Int.color;
6151 idtype = type_core__Int.id;
6152 if(var1 == NULL) {
6153 var4 = 0;
6154 } else {
6155 if(cltype >= (((long)var1&3)?type_info[((long)var1&3)]:var1->type)->table_size) {
6156 var4 = 0;
6157 } else {
6158 var4 = (((long)var1&3)?type_info[((long)var1&3)]:var1->type)->type_table[cltype] == idtype;
6159 }
6160 }
6161 if (var4){
6162 {
6163 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6164 var7 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6165 var5 = var7;
6166 RET_LABEL6:(void)0;
6167 }
6168 }
6169 /* <var5:nullable Numeric> isa Int */
6170 cltype9 = type_core__Int.color;
6171 idtype10 = type_core__Int.id;
6172 if(var5 == NULL) {
6173 var8 = 0;
6174 } else {
6175 if(cltype9 >= (((long)var5&3)?type_info[((long)var5&3)]:var5->type)->table_size) {
6176 var8 = 0;
6177 } else {
6178 var8 = (((long)var5&3)?type_info[((long)var5&3)]:var5->type)->type_table[cltype9] == idtype10;
6179 }
6180 }
6181 if (unlikely(!var8)) {
6182 var_class_name = var5 == NULL ? "null" : (((long)var5&3)?type_info[((long)var5&3)]:var5->type)->name;
6183 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int", var_class_name);
6184 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3521);
6185 fatal_exit(1);
6186 }
6187 {
6188 var12 = (long)(var5)>>2;
6189 var11 = nitc___nitc__AbstractCompilerVisitor___int_instance(var_v, var12);
6190 }
6191 var = var11;
6192 goto RET_LABEL;
6193 } else {
6194 }
6195 {
6196 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6197 var15 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6198 var13 = var15;
6199 RET_LABEL14:(void)0;
6200 }
6201 }
6202 /* <var13:nullable Numeric> isa Byte */
6203 cltype17 = type_core__Byte.color;
6204 idtype18 = type_core__Byte.id;
6205 if(var13 == NULL) {
6206 var16 = 0;
6207 } else {
6208 if(cltype17 >= (((long)var13&3)?type_info[((long)var13&3)]:var13->type)->table_size) {
6209 var16 = 0;
6210 } else {
6211 var16 = (((long)var13&3)?type_info[((long)var13&3)]:var13->type)->type_table[cltype17] == idtype18;
6212 }
6213 }
6214 if (var16){
6215 {
6216 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6217 var21 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6218 var19 = var21;
6219 RET_LABEL20:(void)0;
6220 }
6221 }
6222 /* <var19:nullable Numeric> isa Byte */
6223 cltype23 = type_core__Byte.color;
6224 idtype24 = type_core__Byte.id;
6225 if(var19 == NULL) {
6226 var22 = 0;
6227 } else {
6228 if(cltype23 >= (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->table_size) {
6229 var22 = 0;
6230 } else {
6231 var22 = (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->type_table[cltype23] == idtype24;
6232 }
6233 }
6234 if (unlikely(!var22)) {
6235 var_class_name25 = var19 == NULL ? "null" : (((long)var19&3)?type_info[((long)var19&3)]:var19->type)->name;
6236 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Byte", var_class_name25);
6237 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3522);
6238 fatal_exit(1);
6239 }
6240 {
6241 var27 = ((struct instance_core__Byte*)var19)->value; /* autounbox from nullable Numeric to Byte */;
6242 var26 = nitc___nitc__AbstractCompilerVisitor___byte_instance(var_v, var27);
6243 }
6244 var = var26;
6245 goto RET_LABEL;
6246 } else {
6247 }
6248 {
6249 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6250 var30 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6251 var28 = var30;
6252 RET_LABEL29:(void)0;
6253 }
6254 }
6255 /* <var28:nullable Numeric> isa Int8 */
6256 cltype32 = type_core__Int8.color;
6257 idtype33 = type_core__Int8.id;
6258 if(var28 == NULL) {
6259 var31 = 0;
6260 } else {
6261 if(cltype32 >= (((long)var28&3)?type_info[((long)var28&3)]:var28->type)->table_size) {
6262 var31 = 0;
6263 } else {
6264 var31 = (((long)var28&3)?type_info[((long)var28&3)]:var28->type)->type_table[cltype32] == idtype33;
6265 }
6266 }
6267 if (var31){
6268 {
6269 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6270 var36 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6271 var34 = var36;
6272 RET_LABEL35:(void)0;
6273 }
6274 }
6275 /* <var34:nullable Numeric> isa Int8 */
6276 cltype38 = type_core__Int8.color;
6277 idtype39 = type_core__Int8.id;
6278 if(var34 == NULL) {
6279 var37 = 0;
6280 } else {
6281 if(cltype38 >= (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->table_size) {
6282 var37 = 0;
6283 } else {
6284 var37 = (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->type_table[cltype38] == idtype39;
6285 }
6286 }
6287 if (unlikely(!var37)) {
6288 var_class_name40 = var34 == NULL ? "null" : (((long)var34&3)?type_info[((long)var34&3)]:var34->type)->name;
6289 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int8", var_class_name40);
6290 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3523);
6291 fatal_exit(1);
6292 }
6293 {
6294 var42 = ((struct instance_core__Int8*)var34)->value; /* autounbox from nullable Numeric to Int8 */;
6295 var41 = nitc___nitc__AbstractCompilerVisitor___int8_instance(var_v, var42);
6296 }
6297 var = var41;
6298 goto RET_LABEL;
6299 } else {
6300 }
6301 {
6302 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6303 var45 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6304 var43 = var45;
6305 RET_LABEL44:(void)0;
6306 }
6307 }
6308 /* <var43:nullable Numeric> isa Int16 */
6309 cltype47 = type_core__Int16.color;
6310 idtype48 = type_core__Int16.id;
6311 if(var43 == NULL) {
6312 var46 = 0;
6313 } else {
6314 if(cltype47 >= (((long)var43&3)?type_info[((long)var43&3)]:var43->type)->table_size) {
6315 var46 = 0;
6316 } else {
6317 var46 = (((long)var43&3)?type_info[((long)var43&3)]:var43->type)->type_table[cltype47] == idtype48;
6318 }
6319 }
6320 if (var46){
6321 {
6322 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6323 var51 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6324 var49 = var51;
6325 RET_LABEL50:(void)0;
6326 }
6327 }
6328 /* <var49:nullable Numeric> isa Int16 */
6329 cltype53 = type_core__Int16.color;
6330 idtype54 = type_core__Int16.id;
6331 if(var49 == NULL) {
6332 var52 = 0;
6333 } else {
6334 if(cltype53 >= (((long)var49&3)?type_info[((long)var49&3)]:var49->type)->table_size) {
6335 var52 = 0;
6336 } else {
6337 var52 = (((long)var49&3)?type_info[((long)var49&3)]:var49->type)->type_table[cltype53] == idtype54;
6338 }
6339 }
6340 if (unlikely(!var52)) {
6341 var_class_name55 = var49 == NULL ? "null" : (((long)var49&3)?type_info[((long)var49&3)]:var49->type)->name;
6342 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int16", var_class_name55);
6343 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3524);
6344 fatal_exit(1);
6345 }
6346 {
6347 var57 = ((struct instance_core__Int16*)var49)->value; /* autounbox from nullable Numeric to Int16 */;
6348 var56 = nitc___nitc__AbstractCompilerVisitor___int16_instance(var_v, var57);
6349 }
6350 var = var56;
6351 goto RET_LABEL;
6352 } else {
6353 }
6354 {
6355 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6356 var60 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6357 var58 = var60;
6358 RET_LABEL59:(void)0;
6359 }
6360 }
6361 /* <var58:nullable Numeric> isa UInt16 */
6362 cltype62 = type_core__UInt16.color;
6363 idtype63 = type_core__UInt16.id;
6364 if(var58 == NULL) {
6365 var61 = 0;
6366 } else {
6367 if(cltype62 >= (((long)var58&3)?type_info[((long)var58&3)]:var58->type)->table_size) {
6368 var61 = 0;
6369 } else {
6370 var61 = (((long)var58&3)?type_info[((long)var58&3)]:var58->type)->type_table[cltype62] == idtype63;
6371 }
6372 }
6373 if (var61){
6374 {
6375 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6376 var66 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6377 var64 = var66;
6378 RET_LABEL65:(void)0;
6379 }
6380 }
6381 /* <var64:nullable Numeric> isa UInt16 */
6382 cltype68 = type_core__UInt16.color;
6383 idtype69 = type_core__UInt16.id;
6384 if(var64 == NULL) {
6385 var67 = 0;
6386 } else {
6387 if(cltype68 >= (((long)var64&3)?type_info[((long)var64&3)]:var64->type)->table_size) {
6388 var67 = 0;
6389 } else {
6390 var67 = (((long)var64&3)?type_info[((long)var64&3)]:var64->type)->type_table[cltype68] == idtype69;
6391 }
6392 }
6393 if (unlikely(!var67)) {
6394 var_class_name70 = var64 == NULL ? "null" : (((long)var64&3)?type_info[((long)var64&3)]:var64->type)->name;
6395 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "UInt16", var_class_name70);
6396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3525);
6397 fatal_exit(1);
6398 }
6399 {
6400 var72 = ((struct instance_core__UInt16*)var64)->value; /* autounbox from nullable Numeric to UInt16 */;
6401 var71 = nitc___nitc__AbstractCompilerVisitor___uint16_instance(var_v, var72);
6402 }
6403 var = var71;
6404 goto RET_LABEL;
6405 } else {
6406 }
6407 {
6408 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6409 var75 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6410 var73 = var75;
6411 RET_LABEL74:(void)0;
6412 }
6413 }
6414 /* <var73:nullable Numeric> isa Int32 */
6415 cltype77 = type_core__Int32.color;
6416 idtype78 = type_core__Int32.id;
6417 if(var73 == NULL) {
6418 var76 = 0;
6419 } else {
6420 if(cltype77 >= (((long)var73&3)?type_info[((long)var73&3)]:var73->type)->table_size) {
6421 var76 = 0;
6422 } else {
6423 var76 = (((long)var73&3)?type_info[((long)var73&3)]:var73->type)->type_table[cltype77] == idtype78;
6424 }
6425 }
6426 if (var76){
6427 {
6428 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6429 var81 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6430 var79 = var81;
6431 RET_LABEL80:(void)0;
6432 }
6433 }
6434 /* <var79:nullable Numeric> isa Int32 */
6435 cltype83 = type_core__Int32.color;
6436 idtype84 = type_core__Int32.id;
6437 if(var79 == NULL) {
6438 var82 = 0;
6439 } else {
6440 if(cltype83 >= (((long)var79&3)?type_info[((long)var79&3)]:var79->type)->table_size) {
6441 var82 = 0;
6442 } else {
6443 var82 = (((long)var79&3)?type_info[((long)var79&3)]:var79->type)->type_table[cltype83] == idtype84;
6444 }
6445 }
6446 if (unlikely(!var82)) {
6447 var_class_name85 = var79 == NULL ? "null" : (((long)var79&3)?type_info[((long)var79&3)]:var79->type)->name;
6448 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "Int32", var_class_name85);
6449 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3526);
6450 fatal_exit(1);
6451 }
6452 {
6453 var87 = ((struct instance_core__Int32*)var79)->value; /* autounbox from nullable Numeric to Int32 */;
6454 var86 = nitc___nitc__AbstractCompilerVisitor___int32_instance(var_v, var87);
6455 }
6456 var = var86;
6457 goto RET_LABEL;
6458 } else {
6459 }
6460 {
6461 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6462 var90 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6463 var88 = var90;
6464 RET_LABEL89:(void)0;
6465 }
6466 }
6467 /* <var88:nullable Numeric> isa UInt32 */
6468 cltype92 = type_core__UInt32.color;
6469 idtype93 = type_core__UInt32.id;
6470 if(var88 == NULL) {
6471 var91 = 0;
6472 } else {
6473 if(cltype92 >= (((long)var88&3)?type_info[((long)var88&3)]:var88->type)->table_size) {
6474 var91 = 0;
6475 } else {
6476 var91 = (((long)var88&3)?type_info[((long)var88&3)]:var88->type)->type_table[cltype92] == idtype93;
6477 }
6478 }
6479 if (var91){
6480 {
6481 { /* Inline literal#AIntegerExpr#value (self) on <self:AIntegerExpr> */
6482 var96 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6483 var94 = var96;
6484 RET_LABEL95:(void)0;
6485 }
6486 }
6487 /* <var94:nullable Numeric> isa UInt32 */
6488 cltype98 = type_core__UInt32.color;
6489 idtype99 = type_core__UInt32.id;
6490 if(var94 == NULL) {
6491 var97 = 0;
6492 } else {
6493 if(cltype98 >= (((long)var94&3)?type_info[((long)var94&3)]:var94->type)->table_size) {
6494 var97 = 0;
6495 } else {
6496 var97 = (((long)var94&3)?type_info[((long)var94&3)]:var94->type)->type_table[cltype98] == idtype99;
6497 }
6498 }
6499 if (unlikely(!var97)) {
6500 var_class_name100 = var94 == NULL ? "null" : (((long)var94&3)?type_info[((long)var94&3)]:var94->type)->name;
6501 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "UInt32", var_class_name100);
6502 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3527);
6503 fatal_exit(1);
6504 }
6505 {
6506 var102 = ((struct instance_core__UInt32*)var94)->value; /* autounbox from nullable Numeric to UInt32 */;
6507 var101 = nitc___nitc__AbstractCompilerVisitor___uint32_instance(var_v, var102);
6508 }
6509 var = var101;
6510 goto RET_LABEL;
6511 } else {
6512 }
6513 PRINT_ERROR("Runtime error: %s", "Aborted");
6514 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3529);
6515 fatal_exit(1);
6516 RET_LABEL:;
6517 return var;
6518 }
6519 /* method abstract_compiler#AFloatExpr#expr for (self: AFloatExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6520 val* nitc__abstract_compiler___AFloatExpr___AExpr__expr(val* self, val* p0) {
6521 val* var /* : nullable RuntimeVariable */;
6522 val* var_v /* var v: AbstractCompilerVisitor */;
6523 val* var1 /* : NativeArray[String] */;
6524 static val* varonce;
6525 val* var2 /* : TFloat */;
6526 val* var4 /* : TFloat */;
6527 val* var5 /* : String */;
6528 val* var6 /* : String */;
6529 val* var7 /* : RuntimeVariable */;
6530 var_v = p0;
6531 if (unlikely(varonce==NULL)) {
6532 var1 = NEW_core__NativeArray(1l, &type_core__NativeArray__core__String);
6533 } else {
6534 var1 = varonce;
6535 varonce = NULL;
6536 }
6537 {
6538 { /* Inline parser_nodes#AFloatExpr#n_float (self) on <self:AFloatExpr> */
6539 var4 = self->attrs[COLOR_nitc__parser_nodes__AFloatExpr___n_float].val; /* _n_float on <self:AFloatExpr> */
6540 if (unlikely(var4 == NULL)) {
6541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_float");
6542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2519);
6543 fatal_exit(1);
6544 }
6545 var2 = var4;
6546 RET_LABEL3:(void)0;
6547 }
6548 }
6549 {
6550 var5 = nitc__lexer_work___Token___text(var2);
6551 }
6552 ((struct instance_core__NativeArray*)var1)->values[0]=var5;
6553 {
6554 var6 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
6555 }
6556 varonce = var1;
6557 {
6558 var7 = nitc___nitc__AbstractCompilerVisitor___float_instance(var_v, var6);
6559 }
6560 var = var7;
6561 goto RET_LABEL;
6562 RET_LABEL:;
6563 return var;
6564 }
6565 /* method abstract_compiler#ACharExpr#expr for (self: ACharExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6566 val* nitc__abstract_compiler___ACharExpr___AExpr__expr(val* self, val* p0) {
6567 val* var /* : nullable RuntimeVariable */;
6568 val* var_v /* var v: AbstractCompilerVisitor */;
6569 val* var1 /* : nullable Char */;
6570 val* var3 /* : nullable Char */;
6571 val* var4 /* : RuntimeVariable */;
6572 uint32_t var5 /* : Char */;
6573 var_v = p0;
6574 {
6575 { /* Inline literal#ACharExpr#value (self) on <self:ACharExpr> */
6576 var3 = self->attrs[COLOR_nitc__literal__ACharExpr___value].val; /* _value on <self:ACharExpr> */
6577 var1 = var3;
6578 RET_LABEL2:(void)0;
6579 }
6580 }
6581 if (unlikely(var1 == NULL)) {
6582 PRINT_ERROR("Runtime error: %s", "Cast failed");
6583 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3538);
6584 fatal_exit(1);
6585 }
6586 {
6587 var5 = (uint32_t)((long)(var1)>>2);
6588 var4 = nitc___nitc__AbstractCompilerVisitor___char_instance(var_v, var5);
6589 }
6590 var = var4;
6591 goto RET_LABEL;
6592 RET_LABEL:;
6593 return var;
6594 }
6595 /* method abstract_compiler#AArrayExpr#expr for (self: AArrayExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6596 val* nitc__abstract_compiler___AArrayExpr___AExpr__expr(val* self, val* p0) {
6597 val* var /* : nullable RuntimeVariable */;
6598 val* var_v /* var v: AbstractCompilerVisitor */;
6599 val* var1 /* : nullable MType */;
6600 val* var3 /* : nullable MType */;
6601 val* var_mtype /* var mtype: MType */;
6602 val* var4 /* : Array[RuntimeVariable] */;
6603 val* var_array /* var array: Array[RuntimeVariable] */;
6604 val* var5 /* : RuntimeVariable */;
6605 val* var_res /* var res: RuntimeVariable */;
6606 val* var6 /* : nullable StaticFrame */;
6607 val* var8 /* : nullable StaticFrame */;
6608 val* var9 /* : nullable RuntimeVariable */;
6609 val* var11 /* : nullable RuntimeVariable */;
6610 val* var_old_comprehension /* var old_comprehension: nullable RuntimeVariable */;
6611 val* var12 /* : nullable StaticFrame */;
6612 val* var14 /* : nullable StaticFrame */;
6613 val* var16 /* : ANodes[AExpr] */;
6614 val* var18 /* : ANodes[AExpr] */;
6615 val* var_ /* var : ANodes[AExpr] */;
6616 val* var19 /* : Iterator[ANode] */;
6617 val* var_20 /* var : Iterator[AExpr] */;
6618 short int var21 /* : Bool */;
6619 val* var22 /* : nullable Object */;
6620 val* var_nexpr /* var nexpr: AExpr */;
6621 val* var23 /* : nullable StaticFrame */;
6622 val* var25 /* : nullable StaticFrame */;
6623 var_v = p0;
6624 {
6625 { /* Inline typing#AArrayExpr#element_mtype (self) on <self:AArrayExpr> */
6626 var3 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on <self:AArrayExpr> */
6627 var1 = var3;
6628 RET_LABEL2:(void)0;
6629 }
6630 }
6631 if (unlikely(var1 == NULL)) {
6632 PRINT_ERROR("Runtime error: %s", "Cast failed");
6633 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3544);
6634 fatal_exit(1);
6635 }
6636 var_mtype = var1;
6637 var4 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
6638 {
6639 core___core__Array___core__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[RuntimeVariable]>*/
6640 }
6641 var_array = var4;
6642 {
6643 var5 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__array_instance(var_v, var_array, var_mtype);
6644 }
6645 var_res = var5;
6646 {
6647 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
6648 var8 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
6649 var6 = var8;
6650 RET_LABEL7:(void)0;
6651 }
6652 }
6653 if (var6 == NULL) {
6654 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3548);
6656 fatal_exit(1);
6657 } else {
6658 { /* Inline abstract_compiler#StaticFrame#comprehension (var6) on <var6:nullable StaticFrame> */
6659 if (unlikely(var6 == NULL)) {
6660 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6661 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1934);
6662 fatal_exit(1);
6663 }
6664 var11 = var6->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val; /* _comprehension on <var6:nullable StaticFrame> */
6665 var9 = var11;
6666 RET_LABEL10:(void)0;
6667 }
6668 }
6669 var_old_comprehension = var9;
6670 {
6671 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
6672 var14 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
6673 var12 = var14;
6674 RET_LABEL13:(void)0;
6675 }
6676 }
6677 if (var12 == NULL) {
6678 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6679 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3549);
6680 fatal_exit(1);
6681 } else {
6682 { /* Inline abstract_compiler#StaticFrame#comprehension= (var12,var_res) on <var12:nullable StaticFrame> */
6683 if (unlikely(var12 == NULL)) {
6684 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1934);
6686 fatal_exit(1);
6687 }
6688 var12->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val = var_res; /* _comprehension on <var12:nullable StaticFrame> */
6689 RET_LABEL15:(void)0;
6690 }
6691 }
6692 {
6693 { /* Inline parser_nodes#AArrayExpr#n_exprs (self) on <self:AArrayExpr> */
6694 var18 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
6695 if (unlikely(var18 == NULL)) {
6696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
6697 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2460);
6698 fatal_exit(1);
6699 }
6700 var16 = var18;
6701 RET_LABEL17:(void)0;
6702 }
6703 }
6704 var_ = var16;
6705 {
6706 var19 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
6707 }
6708 var_20 = var19;
6709 for(;;) {
6710 {
6711 var21 = ((short int(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_20); /* is_ok on <var_20:Iterator[AExpr]>*/
6712 }
6713 if (var21){
6714 } else {
6715 goto BREAK_label;
6716 }
6717 {
6718 var22 = ((val*(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_20); /* item on <var_20:Iterator[AExpr]>*/
6719 }
6720 var_nexpr = var22;
6721 {
6722 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_nexpr); /* Direct call abstract_compiler#AbstractCompilerVisitor#stmt on <var_v:AbstractCompilerVisitor>*/
6723 }
6724 {
6725 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_20); /* next on <var_20:Iterator[AExpr]>*/
6726 }
6727 }
6728 BREAK_label: (void)0;
6729 {
6730 ((void(*)(val* self))((((long)var_20&3)?class_info[((long)var_20&3)]:var_20->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_20); /* finish on <var_20:Iterator[AExpr]>*/
6731 }
6732 {
6733 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
6734 var25 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
6735 var23 = var25;
6736 RET_LABEL24:(void)0;
6737 }
6738 }
6739 if (var23 == NULL) {
6740 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6741 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3553);
6742 fatal_exit(1);
6743 } else {
6744 { /* Inline abstract_compiler#StaticFrame#comprehension= (var23,var_old_comprehension) on <var23:nullable StaticFrame> */
6745 if (unlikely(var23 == NULL)) {
6746 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6747 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1934);
6748 fatal_exit(1);
6749 }
6750 var23->attrs[COLOR_nitc__abstract_compiler__StaticFrame___comprehension].val = var_old_comprehension; /* _comprehension on <var23:nullable StaticFrame> */
6751 RET_LABEL26:(void)0;
6752 }
6753 }
6754 var = var_res;
6755 goto RET_LABEL;
6756 RET_LABEL:;
6757 return var;
6758 }
6759 /* method abstract_compiler#AStringFormExpr#expr for (self: AStringFormExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6760 val* nitc__abstract_compiler___AStringFormExpr___AExpr__expr(val* self, val* p0) {
6761 val* var /* : nullable RuntimeVariable */;
6762 val* var_v /* var v: AbstractCompilerVisitor */;
6763 val* var1 /* : nullable String */;
6764 val* var3 /* : nullable String */;
6765 val* var4 /* : RuntimeVariable */;
6766 var_v = p0;
6767 {
6768 { /* Inline literal#AStringFormExpr#value (self) on <self:AStringFormExpr> */
6769 var3 = self->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <self:AStringFormExpr> */
6770 var1 = var3;
6771 RET_LABEL2:(void)0;
6772 }
6773 }
6774 if (unlikely(var1 == NULL)) {
6775 PRINT_ERROR("Runtime error: %s", "Cast failed");
6776 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3560);
6777 fatal_exit(1);
6778 }
6779 {
6780 var4 = nitc___nitc__AbstractCompilerVisitor___string_instance(var_v, var1);
6781 }
6782 var = var4;
6783 goto RET_LABEL;
6784 RET_LABEL:;
6785 return var;
6786 }
6787 /* method abstract_compiler#ASuperstringExpr#expr for (self: ASuperstringExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
6788 val* nitc__abstract_compiler___ASuperstringExpr___AExpr__expr(val* self, val* p0) {
6789 val* var /* : nullable RuntimeVariable */;
6790 val* var_v /* var v: AbstractCompilerVisitor */;
6791 val* var1 /* : nullable MType */;
6792 val* var3 /* : nullable MType */;
6793 val* var_type_string /* var type_string: MType */;
6794 val* var4 /* : Array[AExpr] */;
6795 val* var_array /* var array: Array[AExpr] */;
6796 val* var5 /* : ANodes[AExpr] */;
6797 val* var7 /* : ANodes[AExpr] */;
6798 val* var_ /* var : ANodes[AExpr] */;
6799 val* var8 /* : Iterator[ANode] */;
6800 val* var_9 /* var : Iterator[AExpr] */;
6801 short int var10 /* : Bool */;
6802 val* var11 /* : nullable Object */;
6803 val* var_ne /* var ne: AExpr */;
6804 short int var12 /* : Bool */;
6805 short int var13 /* : Bool */;
6806 int cltype;
6807 int idtype;
6808 short int var_14 /* var : Bool */;
6809 val* var15 /* : nullable String */;
6810 val* var17 /* : nullable String */;
6811 static val* varonce;
6812 val* var18 /* : String */;
6813 char* var19 /* : NativeString */;
6814 val* var20 /* : String */;
6815 short int var21 /* : Bool */;
6816 short int var22 /* : Bool */;
6817 static val* varonce24;
6818 val* var25 /* : String */;
6819 char* var26 /* : NativeString */;
6820 val* var27 /* : String */;
6821 val* var28 /* : String */;
6822 val* var_varonce /* var varonce: String */;
6823 val* var30 /* : NativeArray[String] */;
6824 static val* varonce29;
6825 static val* varonce31;
6826 val* var32 /* : String */;
6827 char* var33 /* : NativeString */;
6828 val* var34 /* : String */;
6829 static val* varonce35;
6830 val* var36 /* : String */;
6831 char* var37 /* : NativeString */;
6832 val* var38 /* : String */;
6833 val* var39 /* : String */;
6834 long var40 /* : Int */;
6835 long var42 /* : Int */;
6836 val* var43 /* : RuntimeVariable */;
6837 val* var44 /* : RuntimeVariable */;
6838 val* var_a /* var a: RuntimeVariable */;
6839 val* var46 /* : NativeArray[String] */;
6840 static val* varonce45;
6841 static val* varonce47;
6842 val* var48 /* : String */;
6843 char* var49 /* : NativeString */;
6844 val* var50 /* : String */;
6845 static val* varonce51;
6846 val* var52 /* : String */;
6847 char* var53 /* : NativeString */;
6848 val* var54 /* : String */;
6849 static val* varonce55;
6850 val* var56 /* : String */;
6851 char* var57 /* : NativeString */;
6852 val* var58 /* : String */;
6853 val* var59 /* : MType */;
6854 val* var61 /* : MType */;
6855 val* var62 /* : String */;
6856 val* var63 /* : String */;
6857 long var_i /* var i: Int */;
6858 long var64 /* : Int */;
6859 long var66 /* : Int */;
6860 long var_67 /* var : Int */;
6861 short int var68 /* : Bool */;
6862 short int var70 /* : Bool */;
6863 int cltype71;
6864 int idtype72;
6865 const char* var_class_name;
6866 short int var73 /* : Bool */;
6867 val* var75 /* : nullable Object */;
6868 val* var_ne76 /* var ne: AExpr */;
6869 short int var77 /* : Bool */;
6870 int cltype78;
6871 int idtype79;
6872 short int var80 /* : Bool */;
6873 val* var82 /* : RuntimeVariable */;
6874 val* var_e /* var e: RuntimeVariable */;
6875 long var83 /* : Int */;
6876 static val* varonce84;
6877 val* var85 /* : String */;
6878 char* var86 /* : NativeString */;
6879 val* var87 /* : String */;
6880 val* var89 /* : NativeArray[String] */;
6881 static val* varonce88;
6882 static val* varonce90;
6883 val* var91 /* : String */;
6884 char* var92 /* : NativeString */;
6885 val* var93 /* : String */;
6886 static val* varonce94;
6887 val* var95 /* : String */;
6888 char* var96 /* : NativeString */;
6889 val* var97 /* : String */;
6890 val* var98 /* : String */;
6891 val* var99 /* : String */;
6892 val* var101 /* : NativeArray[String] */;
6893 static val* varonce100;
6894 static val* varonce102;
6895 val* var103 /* : String */;
6896 char* var104 /* : NativeString */;
6897 val* var105 /* : String */;
6898 val* var106 /* : String */;
6899 static val* varonce107;
6900 val* var108 /* : String */;
6901 char* var109 /* : NativeString */;
6902 val* var110 /* : String */;
6903 static val* varonce111;
6904 val* var112 /* : String */;
6905 char* var113 /* : NativeString */;
6906 val* var114 /* : String */;
6907 val* var115 /* : MClassType */;
6908 val* var116 /* : MMethod */;
6909 val* var_to_s_method /* var to_s_method: MMethod */;
6910 long var_i117 /* var i: Int */;
6911 long var118 /* : Int */;
6912 long var120 /* : Int */;
6913 long var_121 /* var : Int */;
6914 short int var122 /* : Bool */;
6915 short int var124 /* : Bool */;
6916 int cltype125;
6917 int idtype126;
6918 const char* var_class_name127;
6919 short int var128 /* : Bool */;
6920 val* var130 /* : nullable Object */;
6921 val* var_ne131 /* var ne: AExpr */;
6922 short int var132 /* : Bool */;
6923 int cltype133;
6924 int idtype134;
6925 val* var136 /* : RuntimeVariable */;
6926 val* var_e137 /* var e: RuntimeVariable */;
6927 val* var138 /* : MType */;
6928 val* var140 /* : MType */;
6929 val* var141 /* : AbstractCompiler */;
6930 val* var143 /* : AbstractCompiler */;
6931 val* var144 /* : MModule */;
6932 val* var146 /* : MModule */;
6933 short int var147 /* : Bool */;
6934 short int var148 /* : Bool */;
6935 val* var149 /* : Array[RuntimeVariable] */;
6936 val* var_150 /* var : Array[RuntimeVariable] */;
6937 val* var151 /* : nullable RuntimeVariable */;
6938 long var152 /* : Int */;
6939 static val* varonce153;
6940 val* var154 /* : String */;
6941 char* var155 /* : NativeString */;
6942 val* var156 /* : String */;
6943 val* var157 /* : MType */;
6944 val* var159 /* : MType */;
6945 val* var160 /* : MMethod */;
6946 val* var161 /* : Array[RuntimeVariable] */;
6947 val* var_162 /* var : Array[RuntimeVariable] */;
6948 val* var163 /* : nullable RuntimeVariable */;
6949 val* var_res /* var res: nullable RuntimeVariable */;
6950 val* var165 /* : NativeArray[String] */;
6951 static val* varonce164;
6952 static val* varonce166;
6953 val* var167 /* : String */;
6954 char* var168 /* : NativeString */;
6955 val* var169 /* : String */;
6956 static val* varonce170;
6957 val* var171 /* : String */;
6958 char* var172 /* : NativeString */;
6959 val* var173 /* : String */;
6960 val* var174 /* : String */;
6961 val* var175 /* : String */;
6962 var_v = p0;
6963 {
6964 { /* Inline typing#AExpr#mtype (self) on <self:ASuperstringExpr> */
6965 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:ASuperstringExpr> */
6966 var1 = var3;
6967 RET_LABEL2:(void)0;
6968 }
6969 }
6970 if (unlikely(var1 == NULL)) {
6971 PRINT_ERROR("Runtime error: %s", "Cast failed");
6972 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3566);
6973 fatal_exit(1);
6974 }
6975 var_type_string = var1;
6976 var4 = NEW_core__Array(&type_core__Array__nitc__AExpr);
6977 {
6978 core___core__Array___core__kernel__Object__init(var4); /* Direct call array#Array#init on <var4:Array[AExpr]>*/
6979 }
6980 var_array = var4;
6981 {
6982 { /* Inline parser_nodes#ASuperstringExpr#n_exprs (self) on <self:ASuperstringExpr> */
6983 var7 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
6984 if (unlikely(var7 == NULL)) {
6985 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
6986 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2564);
6987 fatal_exit(1);
6988 }
6989 var5 = var7;
6990 RET_LABEL6:(void)0;
6991 }
6992 }
6993 var_ = var5;
6994 {
6995 var8 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
6996 }
6997 var_9 = var8;
6998 for(;;) {
6999 {
7000 var10 = ((short int(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_9); /* is_ok on <var_9:Iterator[AExpr]>*/
7001 }
7002 if (var10){
7003 } else {
7004 goto BREAK_label;
7005 }
7006 {
7007 var11 = ((val*(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_9); /* item on <var_9:Iterator[AExpr]>*/
7008 }
7009 var_ne = var11;
7010 /* <var_ne:AExpr> isa AStringFormExpr */
7011 cltype = type_nitc__AStringFormExpr.color;
7012 idtype = type_nitc__AStringFormExpr.id;
7013 if(cltype >= var_ne->type->table_size) {
7014 var13 = 0;
7015 } else {
7016 var13 = var_ne->type->type_table[cltype] == idtype;
7017 }
7018 var_14 = var13;
7019 if (var13){
7020 {
7021 { /* Inline literal#AStringFormExpr#value (var_ne) on <var_ne:AExpr(AStringFormExpr)> */
7022 var17 = var_ne->attrs[COLOR_nitc__literal__AStringFormExpr___value].val; /* _value on <var_ne:AExpr(AStringFormExpr)> */
7023 var15 = var17;
7024 RET_LABEL16:(void)0;
7025 }
7026 }
7027 if (likely(varonce!=NULL)) {
7028 var18 = varonce;
7029 } else {
7030 var19 = "";
7031 var20 = core__flat___NativeString___to_s_full(var19, 0l, 0l);
7032 var18 = var20;
7033 varonce = var18;
7034 }
7035 if (var15 == NULL) {
7036 var21 = 0; /* <var18:String> cannot be null */
7037 } else {
7038 var22 = ((short int(*)(val* self, val* p0))(var15->class->vft[COLOR_core__kernel__Object___61d_61d]))(var15, var18); /* == on <var15:nullable String>*/
7039 var21 = var22;
7040 }
7041 var12 = var21;
7042 } else {
7043 var12 = var_14;
7044 }
7045 if (var12){
7046 goto BREAK_label23;
7047 } else {
7048 }
7049 {
7050 core___core__Array___core__abstract_collection__SimpleCollection__add(var_array, var_ne); /* Direct call array#Array#add on <var_array:Array[AExpr]>*/
7051 }
7052 BREAK_label23: (void)0;
7053 {
7054 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_9); /* next on <var_9:Iterator[AExpr]>*/
7055 }
7056 }
7057 BREAK_label: (void)0;
7058 {
7059 ((void(*)(val* self))((((long)var_9&3)?class_info[((long)var_9&3)]:var_9->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_9); /* finish on <var_9:Iterator[AExpr]>*/
7060 }
7061 if (likely(varonce24!=NULL)) {
7062 var25 = varonce24;
7063 } else {
7064 var26 = "varonce";
7065 var27 = core__flat___NativeString___to_s_full(var26, 7l, 7l);
7066 var25 = var27;
7067 varonce24 = var25;
7068 }
7069 {
7070 var28 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var25);
7071 }
7072 var_varonce = var28;
7073 if (unlikely(varonce29==NULL)) {
7074 var30 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
7075 if (likely(varonce31!=NULL)) {
7076 var32 = varonce31;
7077 } else {
7078 var33 = "if (unlikely(";
7079 var34 = core__flat___NativeString___to_s_full(var33, 13l, 13l);
7080 var32 = var34;
7081 varonce31 = var32;
7082 }
7083 ((struct instance_core__NativeArray*)var30)->values[0]=var32;
7084 if (likely(varonce35!=NULL)) {
7085 var36 = varonce35;
7086 } else {
7087 var37 = "==NULL)) {";
7088 var38 = core__flat___NativeString___to_s_full(var37, 10l, 10l);
7089 var36 = var38;
7090 varonce35 = var36;
7091 }
7092 ((struct instance_core__NativeArray*)var30)->values[2]=var36;
7093 } else {
7094 var30 = varonce29;
7095 varonce29 = NULL;
7096 }
7097 ((struct instance_core__NativeArray*)var30)->values[1]=var_varonce;
7098 {
7099 var39 = ((val*(*)(val* self))(var30->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var30); /* native_to_s on <var30:NativeArray[String]>*/
7100 }
7101 varonce29 = var30;
7102 {
7103 nitc___nitc__AbstractCompilerVisitor___add(var_v, var39); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
7104 }
7105 {
7106 { /* Inline array#AbstractArrayRead#length (var_array) on <var_array:Array[AExpr]> */
7107 var42 = var_array->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_array:Array[AExpr]> */
7108 var40 = var42;
7109 RET_LABEL41:(void)0;
7110 }
7111 }
7112 {
7113 var43 = nitc___nitc__AbstractCompilerVisitor___int_instance(var_v, var40);
7114 }
7115 {
7116 var44 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__native_array_instance]))(var_v, var_type_string, var43); /* native_array_instance on <var_v:AbstractCompilerVisitor>*/
7117 }
7118 var_a = var44;
7119 if (unlikely(varonce45==NULL)) {
7120 var46 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
7121 if (likely(varonce47!=NULL)) {
7122 var48 = varonce47;
7123 } else {
7124 var49 = "static ";
7125 var50 = core__flat___NativeString___to_s_full(var49, 7l, 7l);
7126 var48 = var50;
7127 varonce47 = var48;
7128 }
7129 ((struct instance_core__NativeArray*)var46)->values[0]=var48;
7130 if (likely(varonce51!=NULL)) {
7131 var52 = varonce51;
7132 } else {
7133 var53 = " ";
7134 var54 = core__flat___NativeString___to_s_full(var53, 1l, 1l);
7135 var52 = var54;
7136 varonce51 = var52;
7137 }
7138 ((struct instance_core__NativeArray*)var46)->values[2]=var52;
7139 if (likely(varonce55!=NULL)) {
7140 var56 = varonce55;
7141 } else {
7142 var57 = ";";
7143 var58 = core__flat___NativeString___to_s_full(var57, 1l, 1l);
7144 var56 = var58;
7145 varonce55 = var56;
7146 }
7147 ((struct instance_core__NativeArray*)var46)->values[4]=var56;
7148 } else {
7149 var46 = varonce45;
7150 varonce45 = NULL;
7151 }
7152 {
7153 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_a) on <var_a:RuntimeVariable> */
7154 var61 = var_a->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_a:RuntimeVariable> */
7155 if (unlikely(var61 == NULL)) {
7156 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7157 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1870);
7158 fatal_exit(1);
7159 }
7160 var59 = var61;
7161 RET_LABEL60:(void)0;
7162 }
7163 }
7164 {
7165 var62 = ((val*(*)(val* self))(var59->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var59); /* ctype on <var59:MType>*/
7166 }
7167 ((struct instance_core__NativeArray*)var46)->values[1]=var62;
7168 ((struct instance_core__NativeArray*)var46)->values[3]=var_varonce;
7169 {
7170 var63 = ((val*(*)(val* self))(var46->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var46); /* native_to_s on <var46:NativeArray[String]>*/
7171 }
7172 varonce45 = var46;
7173 {
7174 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var63); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
7175 }
7176 var_i = 0l;
7177 {
7178 { /* Inline array#AbstractArrayRead#length (var_array) on <var_array:Array[AExpr]> */
7179 var66 = var_array->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_array:Array[AExpr]> */
7180 var64 = var66;
7181 RET_LABEL65:(void)0;
7182 }
7183 }
7184 var_67 = var64;
7185 for(;;) {
7186 {
7187 { /* Inline kernel#Int#< (var_i,var_67) on <var_i:Int> */
7188 /* Covariant cast for argument 0 (i) <var_67:Int> isa OTHER */
7189 /* <var_67:Int> isa OTHER */
7190 var70 = 1; /* easy <var_67:Int> isa OTHER*/
7191 if (unlikely(!var70)) {
7192 var_class_name = type_core__Int.name;
7193 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7194 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
7195 fatal_exit(1);
7196 }
7197 var73 = var_i < var_67;
7198 var68 = var73;
7199 goto RET_LABEL69;
7200 RET_LABEL69:(void)0;
7201 }
7202 }
7203 if (var68){
7204 } else {
7205 goto BREAK_label74;
7206 }
7207 {
7208 var75 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_array, var_i);
7209 }
7210 var_ne76 = var75;
7211 /* <var_ne76:AExpr> isa AStringFormExpr */
7212 cltype78 = type_nitc__AStringFormExpr.color;
7213 idtype79 = type_nitc__AStringFormExpr.id;
7214 if(cltype78 >= var_ne76->type->table_size) {
7215 var77 = 0;
7216 } else {
7217 var77 = var_ne76->type->type_table[cltype78] == idtype79;
7218 }
7219 var80 = !var77;
7220 if (var80){
7221 goto BREAK_label81;
7222 } else {
7223 }
7224 {
7225 var82 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_ne76, ((val*)NULL));
7226 }
7227 var_e = var82;
7228 {
7229 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>*/
7230 }
7231 BREAK_label81: (void)0;
7232 {
7233 var83 = core___core__Int___Discrete__successor(var_i, 1l);
7234 }
7235 var_i = var83;
7236 }
7237 BREAK_label74: (void)0;
7238 if (likely(varonce84!=NULL)) {
7239 var85 = varonce84;
7240 } else {
7241 var86 = "} else {";
7242 var87 = core__flat___NativeString___to_s_full(var86, 8l, 8l);
7243 var85 = var87;
7244 varonce84 = var85;
7245 }
7246 {
7247 nitc___nitc__AbstractCompilerVisitor___add(var_v, var85); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
7248 }
7249 if (unlikely(varonce88==NULL)) {
7250 var89 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
7251 if (likely(varonce90!=NULL)) {
7252 var91 = varonce90;
7253 } else {
7254 var92 = " = ";
7255 var93 = core__flat___NativeString___to_s_full(var92, 3l, 3l);
7256 var91 = var93;
7257 varonce90 = var91;
7258 }
7259 ((struct instance_core__NativeArray*)var89)->values[1]=var91;
7260 if (likely(varonce94!=NULL)) {
7261 var95 = varonce94;
7262 } else {
7263 var96 = ";";
7264 var97 = core__flat___NativeString___to_s_full(var96, 1l, 1l);
7265 var95 = var97;
7266 varonce94 = var95;
7267 }
7268 ((struct instance_core__NativeArray*)var89)->values[3]=var95;
7269 } else {
7270 var89 = varonce88;
7271 varonce88 = NULL;
7272 }
7273 {
7274 var98 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:RuntimeVariable>*/
7275 }
7276 ((struct instance_core__NativeArray*)var89)->values[0]=var98;
7277 ((struct instance_core__NativeArray*)var89)->values[2]=var_varonce;
7278 {
7279 var99 = ((val*(*)(val* self))(var89->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var89); /* native_to_s on <var89:NativeArray[String]>*/
7280 }
7281 varonce88 = var89;
7282 {
7283 nitc___nitc__AbstractCompilerVisitor___add(var_v, var99); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
7284 }
7285 if (unlikely(varonce100==NULL)) {
7286 var101 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
7287 if (likely(varonce102!=NULL)) {
7288 var103 = varonce102;
7289 } else {
7290 var104 = " = NULL;";
7291 var105 = core__flat___NativeString___to_s_full(var104, 8l, 8l);
7292 var103 = var105;
7293 varonce102 = var103;
7294 }
7295 ((struct instance_core__NativeArray*)var101)->values[1]=var103;
7296 } else {
7297 var101 = varonce100;
7298 varonce100 = NULL;
7299 }
7300 ((struct instance_core__NativeArray*)var101)->values[0]=var_varonce;
7301 {
7302 var106 = ((val*(*)(val* self))(var101->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var101); /* native_to_s on <var101:NativeArray[String]>*/
7303 }
7304 varonce100 = var101;
7305 {
7306 nitc___nitc__AbstractCompilerVisitor___add(var_v, var106); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
7307 }
7308 if (likely(varonce107!=NULL)) {
7309 var108 = varonce107;
7310 } else {
7311 var109 = "}";
7312 var110 = core__flat___NativeString___to_s_full(var109, 1l, 1l);
7313 var108 = var110;
7314 varonce107 = var108;
7315 }
7316 {
7317 nitc___nitc__AbstractCompilerVisitor___add(var_v, var108); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
7318 }
7319 if (likely(varonce111!=NULL)) {
7320 var112 = varonce111;
7321 } else {
7322 var113 = "to_s";
7323 var114 = core__flat___NativeString___to_s_full(var113, 4l, 4l);
7324 var112 = var114;
7325 varonce111 = var112;
7326 }
7327 {
7328 var115 = nitc___nitc__AbstractCompilerVisitor___object_type(var_v);
7329 }
7330 {
7331 var116 = nitc___nitc__AbstractCompilerVisitor___get_property(var_v, var112, var115);
7332 }
7333 var_to_s_method = var116;
7334 var_i117 = 0l;
7335 {
7336 { /* Inline array#AbstractArrayRead#length (var_array) on <var_array:Array[AExpr]> */
7337 var120 = var_array->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_array:Array[AExpr]> */
7338 var118 = var120;
7339 RET_LABEL119:(void)0;
7340 }
7341 }
7342 var_121 = var118;
7343 for(;;) {
7344 {
7345 { /* Inline kernel#Int#< (var_i117,var_121) on <var_i117:Int> */
7346 /* Covariant cast for argument 0 (i) <var_121:Int> isa OTHER */
7347 /* <var_121:Int> isa OTHER */
7348 var124 = 1; /* easy <var_121:Int> isa OTHER*/
7349 if (unlikely(!var124)) {
7350 var_class_name127 = type_core__Int.name;
7351 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name127);
7352 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
7353 fatal_exit(1);
7354 }
7355 var128 = var_i117 < var_121;
7356 var122 = var128;
7357 goto RET_LABEL123;
7358 RET_LABEL123:(void)0;
7359 }
7360 }
7361 if (var122){
7362 } else {
7363 goto BREAK_label129;
7364 }
7365 {
7366 var130 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_array, var_i117);
7367 }
7368 var_ne131 = var130;
7369 /* <var_ne131:AExpr> isa AStringFormExpr */
7370 cltype133 = type_nitc__AStringFormExpr.color;
7371 idtype134 = type_nitc__AStringFormExpr.id;
7372 if(cltype133 >= var_ne131->type->table_size) {
7373 var132 = 0;
7374 } else {
7375 var132 = var_ne131->type->type_table[cltype133] == idtype134;
7376 }
7377 if (var132){
7378 goto BREAK_label135;
7379 } else {
7380 }
7381 {
7382 var136 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var_ne131, ((val*)NULL));
7383 }
7384 var_e137 = var136;
7385 {
7386 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_e137) on <var_e137:RuntimeVariable> */
7387 var140 = var_e137->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_e137:RuntimeVariable> */
7388 if (unlikely(var140 == NULL)) {
7389 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
7390 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1873);
7391 fatal_exit(1);
7392 }
7393 var138 = var140;
7394 RET_LABEL139:(void)0;
7395 }
7396 }
7397 {
7398 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
7399 var143 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
7400 if (unlikely(var143 == NULL)) {
7401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
7403 fatal_exit(1);
7404 }
7405 var141 = var143;
7406 RET_LABEL142:(void)0;
7407 }
7408 }
7409 {
7410 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var141) on <var141:AbstractCompiler> */
7411 var146 = var141->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var141:AbstractCompiler> */
7412 if (unlikely(var146 == NULL)) {
7413 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7414 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 531);
7415 fatal_exit(1);
7416 }
7417 var144 = var146;
7418 RET_LABEL145:(void)0;
7419 }
7420 }
7421 {
7422 var147 = nitc___nitc__MType___is_subtype(var138, var144, ((val*)NULL), var_type_string);
7423 }
7424 var148 = !var147;
7425 if (var148){
7426 var149 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
7427 {
7428 core___core__Array___with_capacity(var149, 1l); /* Direct call array#Array#with_capacity on <var149:Array[RuntimeVariable]>*/
7429 }
7430 var_150 = var149;
7431 {
7432 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_150, var_e137); /* Direct call array#AbstractArray#push on <var_150:Array[RuntimeVariable]>*/
7433 }
7434 {
7435 var151 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(var_v, var_to_s_method, var_150);
7436 }
7437 if (unlikely(var151 == NULL)) {
7438 PRINT_ERROR("Runtime error: %s", "Cast failed");
7439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3613);
7440 fatal_exit(1);
7441 }
7442 var_e137 = var151;
7443 } else {
7444 }
7445 {
7446 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__native_array_set(var_v, var_a, var_i117, var_e137); /* Direct call separate_compiler#SeparateCompilerVisitor#native_array_set on <var_v:AbstractCompilerVisitor>*/
7447 }
7448 BREAK_label135: (void)0;
7449 {
7450 var152 = core___core__Int___Discrete__successor(var_i117, 1l);
7451 }
7452 var_i117 = var152;
7453 }
7454 BREAK_label129: (void)0;
7455 if (likely(varonce153!=NULL)) {
7456 var154 = varonce153;
7457 } else {
7458 var155 = "native_to_s";
7459 var156 = core__flat___NativeString___to_s_full(var155, 11l, 11l);
7460 var154 = var156;
7461 varonce153 = var154;
7462 }
7463 {
7464 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_a) on <var_a:RuntimeVariable> */
7465 var159 = var_a->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_a:RuntimeVariable> */
7466 if (unlikely(var159 == NULL)) {
7467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7468 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1870);
7469 fatal_exit(1);
7470 }
7471 var157 = var159;
7472 RET_LABEL158:(void)0;
7473 }
7474 }
7475 {
7476 var160 = nitc___nitc__AbstractCompilerVisitor___get_property(var_v, var154, var157);
7477 }
7478 var161 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
7479 {
7480 core___core__Array___with_capacity(var161, 1l); /* Direct call array#Array#with_capacity on <var161:Array[RuntimeVariable]>*/
7481 }
7482 var_162 = var161;
7483 {
7484 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_162, var_a); /* Direct call array#AbstractArray#push on <var_162:Array[RuntimeVariable]>*/
7485 }
7486 {
7487 var163 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__send(var_v, var160, var_162);
7488 }
7489 var_res = var163;
7490 if (unlikely(varonce164==NULL)) {
7491 var165 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
7492 if (likely(varonce166!=NULL)) {
7493 var167 = varonce166;
7494 } else {
7495 var168 = " = ";
7496 var169 = core__flat___NativeString___to_s_full(var168, 3l, 3l);
7497 var167 = var169;
7498 varonce166 = var167;
7499 }
7500 ((struct instance_core__NativeArray*)var165)->values[1]=var167;
7501 if (likely(varonce170!=NULL)) {
7502 var171 = varonce170;
7503 } else {
7504 var172 = ";";
7505 var173 = core__flat___NativeString___to_s_full(var172, 1l, 1l);
7506 var171 = var173;
7507 varonce170 = var171;
7508 }
7509 ((struct instance_core__NativeArray*)var165)->values[3]=var171;
7510 } else {
7511 var165 = varonce164;
7512 varonce164 = NULL;
7513 }
7514 ((struct instance_core__NativeArray*)var165)->values[0]=var_varonce;
7515 {
7516 var174 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:RuntimeVariable>*/
7517 }
7518 ((struct instance_core__NativeArray*)var165)->values[2]=var174;
7519 {
7520 var175 = ((val*(*)(val* self))(var165->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var165); /* native_to_s on <var165:NativeArray[String]>*/
7521 }
7522 varonce164 = var165;
7523 {
7524 nitc___nitc__AbstractCompilerVisitor___add(var_v, var175); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
7525 }
7526 var = var_res;
7527 goto RET_LABEL;
7528 RET_LABEL:;
7529 return var;
7530 }
7531 /* method abstract_compiler#ACrangeExpr#expr for (self: ACrangeExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7532 val* nitc__abstract_compiler___ACrangeExpr___AExpr__expr(val* self, val* p0) {
7533 val* var /* : nullable RuntimeVariable */;
7534 val* var_v /* var v: AbstractCompilerVisitor */;
7535 val* var1 /* : AExpr */;
7536 val* var3 /* : AExpr */;
7537 val* var4 /* : RuntimeVariable */;
7538 val* var_i1 /* var i1: RuntimeVariable */;
7539 val* var5 /* : AExpr */;
7540 val* var7 /* : AExpr */;
7541 val* var8 /* : RuntimeVariable */;
7542 val* var_i2 /* var i2: RuntimeVariable */;
7543 val* var9 /* : nullable MType */;
7544 val* var11 /* : nullable MType */;
7545 short int var12 /* : Bool */;
7546 int cltype;
7547 int idtype;
7548 const char* var_class_name;
7549 val* var_mtype /* var mtype: MClassType */;
7550 val* var13 /* : RuntimeVariable */;
7551 val* var_res /* var res: RuntimeVariable */;
7552 val* var14 /* : nullable CallSite */;
7553 val* var16 /* : nullable CallSite */;
7554 val* var17 /* : Array[RuntimeVariable] */;
7555 val* var_ /* var : Array[RuntimeVariable] */;
7556 val* var18 /* : nullable RuntimeVariable */;
7557 var_v = p0;
7558 {
7559 { /* Inline parser_nodes#ARangeExpr#n_expr (self) on <self:ACrangeExpr> */
7560 var3 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ACrangeExpr> */
7561 if (unlikely(var3 == NULL)) {
7562 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7563 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2421);
7564 fatal_exit(1);
7565 }
7566 var1 = var3;
7567 RET_LABEL2:(void)0;
7568 }
7569 }
7570 {
7571 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
7572 }
7573 var_i1 = var4;
7574 {
7575 { /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on <self:ACrangeExpr> */
7576 var7 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ACrangeExpr> */
7577 if (unlikely(var7 == NULL)) {
7578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7579 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2427);
7580 fatal_exit(1);
7581 }
7582 var5 = var7;
7583 RET_LABEL6:(void)0;
7584 }
7585 }
7586 {
7587 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
7588 }
7589 var_i2 = var8;
7590 {
7591 { /* Inline typing#AExpr#mtype (self) on <self:ACrangeExpr> */
7592 var11 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:ACrangeExpr> */
7593 var9 = var11;
7594 RET_LABEL10:(void)0;
7595 }
7596 }
7597 /* <var9:nullable MType> isa MClassType */
7598 cltype = type_nitc__MClassType.color;
7599 idtype = type_nitc__MClassType.id;
7600 if(var9 == NULL) {
7601 var12 = 0;
7602 } else {
7603 if(cltype >= var9->type->table_size) {
7604 var12 = 0;
7605 } else {
7606 var12 = var9->type->type_table[cltype] == idtype;
7607 }
7608 }
7609 if (unlikely(!var12)) {
7610 var_class_name = var9 == NULL ? "null" : var9->type->name;
7611 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
7612 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3633);
7613 fatal_exit(1);
7614 }
7615 var_mtype = var9;
7616 {
7617 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>*/
7618 }
7619 var_res = var13;
7620 {
7621 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:ACrangeExpr> */
7622 var16 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:ACrangeExpr> */
7623 var14 = var16;
7624 RET_LABEL15:(void)0;
7625 }
7626 }
7627 if (unlikely(var14 == NULL)) {
7628 PRINT_ERROR("Runtime error: %s", "Cast failed");
7629 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3635);
7630 fatal_exit(1);
7631 }
7632 var17 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
7633 {
7634 core___core__Array___with_capacity(var17, 3l); /* Direct call array#Array#with_capacity on <var17:Array[RuntimeVariable]>*/
7635 }
7636 var_ = var17;
7637 {
7638 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_res); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
7639 }
7640 {
7641 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i1); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
7642 }
7643 {
7644 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i2); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
7645 }
7646 {
7647 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>*/
7648 }
7649 var = var_res;
7650 goto RET_LABEL;
7651 RET_LABEL:;
7652 return var;
7653 }
7654 /* method abstract_compiler#AOrangeExpr#expr for (self: AOrangeExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7655 val* nitc__abstract_compiler___AOrangeExpr___AExpr__expr(val* self, val* p0) {
7656 val* var /* : nullable RuntimeVariable */;
7657 val* var_v /* var v: AbstractCompilerVisitor */;
7658 val* var1 /* : AExpr */;
7659 val* var3 /* : AExpr */;
7660 val* var4 /* : RuntimeVariable */;
7661 val* var_i1 /* var i1: RuntimeVariable */;
7662 val* var5 /* : AExpr */;
7663 val* var7 /* : AExpr */;
7664 val* var8 /* : RuntimeVariable */;
7665 val* var_i2 /* var i2: RuntimeVariable */;
7666 val* var9 /* : nullable MType */;
7667 val* var11 /* : nullable MType */;
7668 short int var12 /* : Bool */;
7669 int cltype;
7670 int idtype;
7671 const char* var_class_name;
7672 val* var_mtype /* var mtype: MClassType */;
7673 val* var13 /* : RuntimeVariable */;
7674 val* var_res /* var res: RuntimeVariable */;
7675 val* var14 /* : nullable CallSite */;
7676 val* var16 /* : nullable CallSite */;
7677 val* var17 /* : Array[RuntimeVariable] */;
7678 val* var_ /* var : Array[RuntimeVariable] */;
7679 val* var18 /* : nullable RuntimeVariable */;
7680 var_v = p0;
7681 {
7682 { /* Inline parser_nodes#ARangeExpr#n_expr (self) on <self:AOrangeExpr> */
7683 var3 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:AOrangeExpr> */
7684 if (unlikely(var3 == NULL)) {
7685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2421);
7687 fatal_exit(1);
7688 }
7689 var1 = var3;
7690 RET_LABEL2:(void)0;
7691 }
7692 }
7693 {
7694 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
7695 }
7696 var_i1 = var4;
7697 {
7698 { /* Inline parser_nodes#ARangeExpr#n_expr2 (self) on <self:AOrangeExpr> */
7699 var7 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:AOrangeExpr> */
7700 if (unlikely(var7 == NULL)) {
7701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
7702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2427);
7703 fatal_exit(1);
7704 }
7705 var5 = var7;
7706 RET_LABEL6:(void)0;
7707 }
7708 }
7709 {
7710 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
7711 }
7712 var_i2 = var8;
7713 {
7714 { /* Inline typing#AExpr#mtype (self) on <self:AOrangeExpr> */
7715 var11 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOrangeExpr> */
7716 var9 = var11;
7717 RET_LABEL10:(void)0;
7718 }
7719 }
7720 /* <var9:nullable MType> isa MClassType */
7721 cltype = type_nitc__MClassType.color;
7722 idtype = type_nitc__MClassType.id;
7723 if(var9 == NULL) {
7724 var12 = 0;
7725 } else {
7726 if(cltype >= var9->type->table_size) {
7727 var12 = 0;
7728 } else {
7729 var12 = var9->type->type_table[cltype] == idtype;
7730 }
7731 }
7732 if (unlikely(!var12)) {
7733 var_class_name = var9 == NULL ? "null" : var9->type->name;
7734 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
7735 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3645);
7736 fatal_exit(1);
7737 }
7738 var_mtype = var9;
7739 {
7740 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>*/
7741 }
7742 var_res = var13;
7743 {
7744 { /* Inline typing#ARangeExpr#init_callsite (self) on <self:AOrangeExpr> */
7745 var16 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:AOrangeExpr> */
7746 var14 = var16;
7747 RET_LABEL15:(void)0;
7748 }
7749 }
7750 if (unlikely(var14 == NULL)) {
7751 PRINT_ERROR("Runtime error: %s", "Cast failed");
7752 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3647);
7753 fatal_exit(1);
7754 }
7755 var17 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
7756 {
7757 core___core__Array___with_capacity(var17, 3l); /* Direct call array#Array#with_capacity on <var17:Array[RuntimeVariable]>*/
7758 }
7759 var_ = var17;
7760 {
7761 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_res); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
7762 }
7763 {
7764 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i1); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
7765 }
7766 {
7767 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_i2); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
7768 }
7769 {
7770 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>*/
7771 }
7772 var = var_res;
7773 goto RET_LABEL;
7774 RET_LABEL:;
7775 return var;
7776 }
7777 /* method abstract_compiler#ATrueExpr#expr for (self: ATrueExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7778 val* nitc__abstract_compiler___ATrueExpr___AExpr__expr(val* self, val* p0) {
7779 val* var /* : nullable RuntimeVariable */;
7780 val* var_v /* var v: AbstractCompilerVisitor */;
7781 val* var1 /* : RuntimeVariable */;
7782 var_v = p0;
7783 {
7784 var1 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 1);
7785 }
7786 var = var1;
7787 goto RET_LABEL;
7788 RET_LABEL:;
7789 return var;
7790 }
7791 /* method abstract_compiler#AFalseExpr#expr for (self: AFalseExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7792 val* nitc__abstract_compiler___AFalseExpr___AExpr__expr(val* self, val* p0) {
7793 val* var /* : nullable RuntimeVariable */;
7794 val* var_v /* var v: AbstractCompilerVisitor */;
7795 val* var1 /* : RuntimeVariable */;
7796 var_v = p0;
7797 {
7798 var1 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 0);
7799 }
7800 var = var1;
7801 goto RET_LABEL;
7802 RET_LABEL:;
7803 return var;
7804 }
7805 /* method abstract_compiler#ANullExpr#expr for (self: ANullExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7806 val* nitc__abstract_compiler___ANullExpr___AExpr__expr(val* self, val* p0) {
7807 val* var /* : nullable RuntimeVariable */;
7808 val* var_v /* var v: AbstractCompilerVisitor */;
7809 val* var1 /* : RuntimeVariable */;
7810 var_v = p0;
7811 {
7812 var1 = nitc___nitc__AbstractCompilerVisitor___null_instance(var_v);
7813 }
7814 var = var1;
7815 goto RET_LABEL;
7816 RET_LABEL:;
7817 return var;
7818 }
7819 /* method abstract_compiler#AIsaExpr#expr for (self: AIsaExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7820 val* nitc__abstract_compiler___AIsaExpr___AExpr__expr(val* self, val* p0) {
7821 val* var /* : nullable RuntimeVariable */;
7822 val* var_v /* var v: AbstractCompilerVisitor */;
7823 val* var1 /* : AExpr */;
7824 val* var3 /* : AExpr */;
7825 val* var4 /* : RuntimeVariable */;
7826 val* var_i /* var i: RuntimeVariable */;
7827 val* var5 /* : nullable MType */;
7828 val* var7 /* : nullable MType */;
7829 val* var_cast_type /* var cast_type: nullable MType */;
7830 short int var8 /* : Bool */;
7831 short int var9 /* : Bool */;
7832 val* var_other /* var other: nullable Object */;
7833 short int var11 /* : Bool */;
7834 short int var13 /* : Bool */;
7835 static val* varonce;
7836 val* var14 /* : String */;
7837 char* var15 /* : NativeString */;
7838 val* var16 /* : String */;
7839 val* var17 /* : RuntimeVariable */;
7840 var_v = p0;
7841 {
7842 { /* Inline parser_nodes#AIsaExpr#n_expr (self) on <self:AIsaExpr> */
7843 var3 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
7844 if (unlikely(var3 == NULL)) {
7845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7846 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2153);
7847 fatal_exit(1);
7848 }
7849 var1 = var3;
7850 RET_LABEL2:(void)0;
7851 }
7852 }
7853 {
7854 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
7855 }
7856 var_i = var4;
7857 {
7858 { /* Inline typing#AIsaExpr#cast_type (self) on <self:AIsaExpr> */
7859 var7 = self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val; /* _cast_type on <self:AIsaExpr> */
7860 var5 = var7;
7861 RET_LABEL6:(void)0;
7862 }
7863 }
7864 var_cast_type = var5;
7865 if (var_cast_type == NULL) {
7866 var8 = 1; /* is null */
7867 } else {
7868 var8 = 0; /* arg is null but recv is not */
7869 }
7870 if (0) {
7871 { /* Inline kernel#Object#== (var_cast_type,((val*)NULL)) on <var_cast_type:nullable MType> */
7872 var_other = ((val*)NULL);
7873 {
7874 { /* Inline kernel#Object#is_same_instance (var_cast_type,var_other) on <var_cast_type:nullable MType(MType)> */
7875 var13 = var_cast_type == var_other;
7876 var11 = var13;
7877 goto RET_LABEL12;
7878 RET_LABEL12:(void)0;
7879 }
7880 }
7881 var9 = var11;
7882 goto RET_LABEL10;
7883 RET_LABEL10:(void)0;
7884 }
7885 var8 = var9;
7886 }
7887 if (var8){
7888 var = ((val*)NULL);
7889 goto RET_LABEL;
7890 } else {
7891 }
7892 if (likely(varonce!=NULL)) {
7893 var14 = varonce;
7894 } else {
7895 var15 = "isa";
7896 var16 = core__flat___NativeString___to_s_full(var15, 3l, 3l);
7897 var14 = var16;
7898 varonce = var14;
7899 }
7900 {
7901 var17 = ((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>*/
7902 }
7903 var = var17;
7904 goto RET_LABEL;
7905 RET_LABEL:;
7906 return var;
7907 }
7908 /* method abstract_compiler#AAsCastExpr#expr for (self: AAsCastExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
7909 val* nitc__abstract_compiler___AAsCastExpr___AExpr__expr(val* self, val* p0) {
7910 val* var /* : nullable RuntimeVariable */;
7911 val* var_v /* var v: AbstractCompilerVisitor */;
7912 val* var1 /* : AExpr */;
7913 val* var3 /* : AExpr */;
7914 val* var4 /* : RuntimeVariable */;
7915 val* var_i /* var i: RuntimeVariable */;
7916 val* var5 /* : AbstractCompiler */;
7917 val* var7 /* : AbstractCompiler */;
7918 val* var8 /* : ModelBuilder */;
7919 val* var10 /* : ModelBuilder */;
7920 val* var11 /* : ToolContext */;
7921 val* var13 /* : ToolContext */;
7922 val* var14 /* : OptionBool */;
7923 val* var16 /* : OptionBool */;
7924 val* var17 /* : nullable Object */;
7925 val* var19 /* : nullable Object */;
7926 short int var20 /* : Bool */;
7927 val* var21 /* : nullable MType */;
7928 val* var23 /* : nullable MType */;
7929 static val* varonce;
7930 val* var24 /* : String */;
7931 char* var25 /* : NativeString */;
7932 val* var26 /* : String */;
7933 var_v = p0;
7934 {
7935 { /* Inline parser_nodes#AAsCastForm#n_expr (self) on <self:AAsCastExpr> */
7936 var3 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
7937 if (unlikely(var3 == NULL)) {
7938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
7939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2586);
7940 fatal_exit(1);
7941 }
7942 var1 = var3;
7943 RET_LABEL2:(void)0;
7944 }
7945 }
7946 {
7947 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
7948 }
7949 var_i = var4;
7950 {
7951 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
7952 var7 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
7953 if (unlikely(var7 == NULL)) {
7954 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7955 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
7956 fatal_exit(1);
7957 }
7958 var5 = var7;
7959 RET_LABEL6:(void)0;
7960 }
7961 }
7962 {
7963 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var5) on <var5:AbstractCompiler> */
7964 var10 = var5->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var5:AbstractCompiler> */
7965 if (unlikely(var10 == NULL)) {
7966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7967 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
7968 fatal_exit(1);
7969 }
7970 var8 = var10;
7971 RET_LABEL9:(void)0;
7972 }
7973 }
7974 {
7975 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var8) on <var8:ModelBuilder> */
7976 var13 = var8->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var8:ModelBuilder> */
7977 if (unlikely(var13 == NULL)) {
7978 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7979 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
7980 fatal_exit(1);
7981 }
7982 var11 = var13;
7983 RET_LABEL12:(void)0;
7984 }
7985 }
7986 {
7987 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (var11) on <var11:ToolContext> */
7988 var16 = var11->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on <var11:ToolContext> */
7989 if (unlikely(var16 == NULL)) {
7990 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
7991 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 52);
7992 fatal_exit(1);
7993 }
7994 var14 = var16;
7995 RET_LABEL15:(void)0;
7996 }
7997 }
7998 {
7999 { /* Inline opts#Option#value (var14) on <var14:OptionBool> */
8000 var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on <var14:OptionBool> */
8001 var17 = var19;
8002 RET_LABEL18:(void)0;
8003 }
8004 }
8005 var20 = (short int)((long)(var17)>>2);
8006 if (var20){
8007 var = var_i;
8008 goto RET_LABEL;
8009 } else {
8010 }
8011 {
8012 { /* Inline typing#AExpr#mtype (self) on <self:AAsCastExpr> */
8013 var23 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AAsCastExpr> */
8014 var21 = var23;
8015 RET_LABEL22:(void)0;
8016 }
8017 }
8018 if (unlikely(var21 == NULL)) {
8019 PRINT_ERROR("Runtime error: %s", "Cast failed");
8020 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3680);
8021 fatal_exit(1);
8022 }
8023 if (likely(varonce!=NULL)) {
8024 var24 = varonce;
8025 } else {
8026 var25 = "as";
8027 var26 = core__flat___NativeString___to_s_full(var25, 2l, 2l);
8028 var24 = var26;
8029 varonce = var24;
8030 }
8031 {
8032 nitc___nitc__AbstractCompilerVisitor___add_cast(var_v, var_i, var21, var24); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_cast on <var_v:AbstractCompilerVisitor>*/
8033 }
8034 var = var_i;
8035 goto RET_LABEL;
8036 RET_LABEL:;
8037 return var;
8038 }
8039 /* method abstract_compiler#AAsNotnullExpr#expr for (self: AAsNotnullExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8040 val* nitc__abstract_compiler___AAsNotnullExpr___AExpr__expr(val* self, val* p0) {
8041 val* var /* : nullable RuntimeVariable */;
8042 val* var_v /* var v: AbstractCompilerVisitor */;
8043 val* var1 /* : AExpr */;
8044 val* var3 /* : AExpr */;
8045 val* var4 /* : RuntimeVariable */;
8046 val* var_i /* var i: RuntimeVariable */;
8047 val* var5 /* : AbstractCompiler */;
8048 val* var7 /* : AbstractCompiler */;
8049 val* var8 /* : ModelBuilder */;
8050 val* var10 /* : ModelBuilder */;
8051 val* var11 /* : ToolContext */;
8052 val* var13 /* : ToolContext */;
8053 val* var14 /* : OptionBool */;
8054 val* var16 /* : OptionBool */;
8055 val* var17 /* : nullable Object */;
8056 val* var19 /* : nullable Object */;
8057 short int var20 /* : Bool */;
8058 val* var21 /* : MType */;
8059 val* var23 /* : MType */;
8060 short int var24 /* : Bool */;
8061 val* var25 /* : NativeArray[String] */;
8062 static val* varonce;
8063 static val* varonce26;
8064 val* var27 /* : String */;
8065 char* var28 /* : NativeString */;
8066 val* var29 /* : String */;
8067 static val* varonce30;
8068 val* var31 /* : String */;
8069 char* var32 /* : NativeString */;
8070 val* var33 /* : String */;
8071 val* var34 /* : String */;
8072 val* var35 /* : String */;
8073 static val* varonce36;
8074 val* var37 /* : String */;
8075 char* var38 /* : NativeString */;
8076 val* var39 /* : String */;
8077 static val* varonce40;
8078 val* var41 /* : String */;
8079 char* var42 /* : NativeString */;
8080 val* var43 /* : String */;
8081 var_v = p0;
8082 {
8083 { /* Inline parser_nodes#AAsCastForm#n_expr (self) on <self:AAsNotnullExpr> */
8084 var3 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsNotnullExpr> */
8085 if (unlikely(var3 == NULL)) {
8086 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8087 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2586);
8088 fatal_exit(1);
8089 }
8090 var1 = var3;
8091 RET_LABEL2:(void)0;
8092 }
8093 }
8094 {
8095 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
8096 }
8097 var_i = var4;
8098 {
8099 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
8100 var7 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
8101 if (unlikely(var7 == NULL)) {
8102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1133);
8104 fatal_exit(1);
8105 }
8106 var5 = var7;
8107 RET_LABEL6:(void)0;
8108 }
8109 }
8110 {
8111 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var5) on <var5:AbstractCompiler> */
8112 var10 = var5->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var5:AbstractCompiler> */
8113 if (unlikely(var10 == NULL)) {
8114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 538);
8116 fatal_exit(1);
8117 }
8118 var8 = var10;
8119 RET_LABEL9:(void)0;
8120 }
8121 }
8122 {
8123 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var8) on <var8:ModelBuilder> */
8124 var13 = var8->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var8:ModelBuilder> */
8125 if (unlikely(var13 == NULL)) {
8126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8127 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
8128 fatal_exit(1);
8129 }
8130 var11 = var13;
8131 RET_LABEL12:(void)0;
8132 }
8133 }
8134 {
8135 { /* Inline abstract_compiler#ToolContext#opt_no_check_assert (var11) on <var11:ToolContext> */
8136 var16 = var11->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_assert].val; /* _opt_no_check_assert on <var11:ToolContext> */
8137 if (unlikely(var16 == NULL)) {
8138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_assert");
8139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 52);
8140 fatal_exit(1);
8141 }
8142 var14 = var16;
8143 RET_LABEL15:(void)0;
8144 }
8145 }
8146 {
8147 { /* Inline opts#Option#value (var14) on <var14:OptionBool> */
8148 var19 = var14->attrs[COLOR_opts__Option___value].val; /* _value on <var14:OptionBool> */
8149 var17 = var19;
8150 RET_LABEL18:(void)0;
8151 }
8152 }
8153 var20 = (short int)((long)(var17)>>2);
8154 if (var20){
8155 var = var_i;
8156 goto RET_LABEL;
8157 } else {
8158 }
8159 {
8160 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_i) on <var_i:RuntimeVariable> */
8161 var23 = var_i->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_i:RuntimeVariable> */
8162 if (unlikely(var23 == NULL)) {
8163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8164 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1870);
8165 fatal_exit(1);
8166 }
8167 var21 = var23;
8168 RET_LABEL22:(void)0;
8169 }
8170 }
8171 {
8172 var24 = ((short int(*)(val* self))(var21->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var21); /* is_c_primitive on <var21:MType>*/
8173 }
8174 if (var24){
8175 var = var_i;
8176 goto RET_LABEL;
8177 } else {
8178 }
8179 if (unlikely(varonce==NULL)) {
8180 var25 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
8181 if (likely(varonce26!=NULL)) {
8182 var27 = varonce26;
8183 } else {
8184 var28 = "if (unlikely(";
8185 var29 = core__flat___NativeString___to_s_full(var28, 13l, 13l);
8186 var27 = var29;
8187 varonce26 = var27;
8188 }
8189 ((struct instance_core__NativeArray*)var25)->values[0]=var27;
8190 if (likely(varonce30!=NULL)) {
8191 var31 = varonce30;
8192 } else {
8193 var32 = " == NULL)) {";
8194 var33 = core__flat___NativeString___to_s_full(var32, 12l, 12l);
8195 var31 = var33;
8196 varonce30 = var31;
8197 }
8198 ((struct instance_core__NativeArray*)var25)->values[2]=var31;
8199 } else {
8200 var25 = varonce;
8201 varonce = NULL;
8202 }
8203 {
8204 var34 = ((val*(*)(val* self))(var_i->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i); /* to_s on <var_i:RuntimeVariable>*/
8205 }
8206 ((struct instance_core__NativeArray*)var25)->values[1]=var34;
8207 {
8208 var35 = ((val*(*)(val* self))(var25->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var25); /* native_to_s on <var25:NativeArray[String]>*/
8209 }
8210 varonce = var25;
8211 {
8212 nitc___nitc__AbstractCompilerVisitor___add(var_v, var35); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8213 }
8214 if (likely(varonce36!=NULL)) {
8215 var37 = varonce36;
8216 } else {
8217 var38 = "Cast failed";
8218 var39 = core__flat___NativeString___to_s_full(var38, 11l, 11l);
8219 var37 = var39;
8220 varonce36 = var37;
8221 }
8222 {
8223 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var37); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <var_v:AbstractCompilerVisitor>*/
8224 }
8225 if (likely(varonce40!=NULL)) {
8226 var41 = varonce40;
8227 } else {
8228 var42 = "}";
8229 var43 = core__flat___NativeString___to_s_full(var42, 1l, 1l);
8230 var41 = var43;
8231 varonce40 = var41;
8232 }
8233 {
8234 nitc___nitc__AbstractCompilerVisitor___add(var_v, var41); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8235 }
8236 var = var_i;
8237 goto RET_LABEL;
8238 RET_LABEL:;
8239 return var;
8240 }
8241 /* method abstract_compiler#AParExpr#expr for (self: AParExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8242 val* nitc__abstract_compiler___AParExpr___AExpr__expr(val* self, val* p0) {
8243 val* var /* : nullable RuntimeVariable */;
8244 val* var_v /* var v: AbstractCompilerVisitor */;
8245 val* var1 /* : AExpr */;
8246 val* var3 /* : AExpr */;
8247 val* var4 /* : RuntimeVariable */;
8248 var_v = p0;
8249 {
8250 { /* Inline parser_nodes#AParExpr#n_expr (self) on <self:AParExpr> */
8251 var3 = self->attrs[COLOR_nitc__parser_nodes__AParExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
8252 if (unlikely(var3 == NULL)) {
8253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8254 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2575);
8255 fatal_exit(1);
8256 }
8257 var1 = var3;
8258 RET_LABEL2:(void)0;
8259 }
8260 }
8261 {
8262 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
8263 }
8264 var = var4;
8265 goto RET_LABEL;
8266 RET_LABEL:;
8267 return var;
8268 }
8269 /* method abstract_compiler#AOnceExpr#expr for (self: AOnceExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8270 val* nitc__abstract_compiler___AOnceExpr___AExpr__expr(val* self, val* p0) {
8271 val* var /* : nullable RuntimeVariable */;
8272 val* var_v /* var v: AbstractCompilerVisitor */;
8273 val* var1 /* : nullable MType */;
8274 val* var3 /* : nullable MType */;
8275 val* var_mtype /* var mtype: MType */;
8276 static val* varonce;
8277 val* var4 /* : String */;
8278 char* var5 /* : NativeString */;
8279 val* var6 /* : String */;
8280 val* var7 /* : String */;
8281 val* var_name /* var name: String */;
8282 static val* varonce8;
8283 val* var9 /* : String */;
8284 char* var10 /* : NativeString */;
8285 val* var11 /* : String */;
8286 val* var12 /* : String */;
8287 val* var13 /* : String */;
8288 val* var_guard /* var guard: String */;
8289 val* var15 /* : NativeArray[String] */;
8290 static val* varonce14;
8291 static val* varonce16;
8292 val* var17 /* : String */;
8293 char* var18 /* : NativeString */;
8294 val* var19 /* : String */;
8295 static val* varonce20;
8296 val* var21 /* : String */;
8297 char* var22 /* : NativeString */;
8298 val* var23 /* : String */;
8299 static val* varonce24;
8300 val* var25 /* : String */;
8301 char* var26 /* : NativeString */;
8302 val* var27 /* : String */;
8303 val* var28 /* : String */;
8304 val* var29 /* : String */;
8305 val* var31 /* : NativeArray[String] */;
8306 static val* varonce30;
8307 static val* varonce32;
8308 val* var33 /* : String */;
8309 char* var34 /* : NativeString */;
8310 val* var35 /* : String */;
8311 static val* varonce36;
8312 val* var37 /* : String */;
8313 char* var38 /* : NativeString */;
8314 val* var39 /* : String */;
8315 val* var40 /* : String */;
8316 val* var41 /* : RuntimeVariable */;
8317 val* var_res /* var res: RuntimeVariable */;
8318 val* var43 /* : NativeArray[String] */;
8319 static val* varonce42;
8320 static val* varonce44;
8321 val* var45 /* : String */;
8322 char* var46 /* : NativeString */;
8323 val* var47 /* : String */;
8324 static val* varonce48;
8325 val* var49 /* : String */;
8326 char* var50 /* : NativeString */;
8327 val* var51 /* : String */;
8328 val* var52 /* : String */;
8329 val* var54 /* : NativeArray[String] */;
8330 static val* varonce53;
8331 static val* varonce55;
8332 val* var56 /* : String */;
8333 char* var57 /* : NativeString */;
8334 val* var58 /* : String */;
8335 static val* varonce59;
8336 val* var60 /* : String */;
8337 char* var61 /* : NativeString */;
8338 val* var62 /* : String */;
8339 val* var63 /* : String */;
8340 val* var64 /* : String */;
8341 static val* varonce65;
8342 val* var66 /* : String */;
8343 char* var67 /* : NativeString */;
8344 val* var68 /* : String */;
8345 val* var69 /* : AExpr */;
8346 val* var71 /* : AExpr */;
8347 val* var72 /* : RuntimeVariable */;
8348 val* var_i /* var i: RuntimeVariable */;
8349 val* var74 /* : NativeArray[String] */;
8350 static val* varonce73;
8351 static val* varonce75;
8352 val* var76 /* : String */;
8353 char* var77 /* : NativeString */;
8354 val* var78 /* : String */;
8355 static val* varonce79;
8356 val* var80 /* : String */;
8357 char* var81 /* : NativeString */;
8358 val* var82 /* : String */;
8359 val* var83 /* : String */;
8360 val* var84 /* : String */;
8361 val* var85 /* : String */;
8362 val* var87 /* : NativeArray[String] */;
8363 static val* varonce86;
8364 static val* varonce88;
8365 val* var89 /* : String */;
8366 char* var90 /* : NativeString */;
8367 val* var91 /* : String */;
8368 static val* varonce92;
8369 val* var93 /* : String */;
8370 char* var94 /* : NativeString */;
8371 val* var95 /* : String */;
8372 val* var96 /* : String */;
8373 val* var97 /* : String */;
8374 val* var99 /* : NativeArray[String] */;
8375 static val* varonce98;
8376 static val* varonce100;
8377 val* var101 /* : String */;
8378 char* var102 /* : NativeString */;
8379 val* var103 /* : String */;
8380 val* var104 /* : String */;
8381 static val* varonce105;
8382 val* var106 /* : String */;
8383 char* var107 /* : NativeString */;
8384 val* var108 /* : String */;
8385 var_v = p0;
8386 {
8387 { /* Inline typing#AExpr#mtype (self) on <self:AOnceExpr> */
8388 var3 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AOnceExpr> */
8389 var1 = var3;
8390 RET_LABEL2:(void)0;
8391 }
8392 }
8393 if (unlikely(var1 == NULL)) {
8394 PRINT_ERROR("Runtime error: %s", "Cast failed");
8395 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3707);
8396 fatal_exit(1);
8397 }
8398 var_mtype = var1;
8399 if (likely(varonce!=NULL)) {
8400 var4 = varonce;
8401 } else {
8402 var5 = "varonce";
8403 var6 = core__flat___NativeString___to_s_full(var5, 7l, 7l);
8404 var4 = var6;
8405 varonce = var4;
8406 }
8407 {
8408 var7 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var4);
8409 }
8410 var_name = var7;
8411 if (likely(varonce8!=NULL)) {
8412 var9 = varonce8;
8413 } else {
8414 var10 = "_guard";
8415 var11 = core__flat___NativeString___to_s_full(var10, 6l, 6l);
8416 var9 = var11;
8417 varonce8 = var9;
8418 }
8419 {
8420 var12 = ((val*(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__abstract_text__String___43d]))(var_name, var9); /* + on <var_name:String>*/
8421 }
8422 {
8423 var13 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var12);
8424 }
8425 var_guard = var13;
8426 if (unlikely(varonce14==NULL)) {
8427 var15 = NEW_core__NativeArray(5l, &type_core__NativeArray__core__String);
8428 if (likely(varonce16!=NULL)) {
8429 var17 = varonce16;
8430 } else {
8431 var18 = "static ";
8432 var19 = core__flat___NativeString___to_s_full(var18, 7l, 7l);
8433 var17 = var19;
8434 varonce16 = var17;
8435 }
8436 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
8437 if (likely(varonce20!=NULL)) {
8438 var21 = varonce20;
8439 } else {
8440 var22 = " ";
8441 var23 = core__flat___NativeString___to_s_full(var22, 1l, 1l);
8442 var21 = var23;
8443 varonce20 = var21;
8444 }
8445 ((struct instance_core__NativeArray*)var15)->values[2]=var21;
8446 if (likely(varonce24!=NULL)) {
8447 var25 = varonce24;
8448 } else {
8449 var26 = ";";
8450 var27 = core__flat___NativeString___to_s_full(var26, 1l, 1l);
8451 var25 = var27;
8452 varonce24 = var25;
8453 }
8454 ((struct instance_core__NativeArray*)var15)->values[4]=var25;
8455 } else {
8456 var15 = varonce14;
8457 varonce14 = NULL;
8458 }
8459 {
8460 var28 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_mtype); /* ctype on <var_mtype:MType>*/
8461 }
8462 ((struct instance_core__NativeArray*)var15)->values[1]=var28;
8463 ((struct instance_core__NativeArray*)var15)->values[3]=var_name;
8464 {
8465 var29 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
8466 }
8467 varonce14 = var15;
8468 {
8469 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var29); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
8470 }
8471 if (unlikely(varonce30==NULL)) {
8472 var31 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
8473 if (likely(varonce32!=NULL)) {
8474 var33 = varonce32;
8475 } else {
8476 var34 = "static int ";
8477 var35 = core__flat___NativeString___to_s_full(var34, 11l, 11l);
8478 var33 = var35;
8479 varonce32 = var33;
8480 }
8481 ((struct instance_core__NativeArray*)var31)->values[0]=var33;
8482 if (likely(varonce36!=NULL)) {
8483 var37 = varonce36;
8484 } else {
8485 var38 = ";";
8486 var39 = core__flat___NativeString___to_s_full(var38, 1l, 1l);
8487 var37 = var39;
8488 varonce36 = var37;
8489 }
8490 ((struct instance_core__NativeArray*)var31)->values[2]=var37;
8491 } else {
8492 var31 = varonce30;
8493 varonce30 = NULL;
8494 }
8495 ((struct instance_core__NativeArray*)var31)->values[1]=var_guard;
8496 {
8497 var40 = ((val*(*)(val* self))(var31->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var31); /* native_to_s on <var31:NativeArray[String]>*/
8498 }
8499 varonce30 = var31;
8500 {
8501 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var40); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
8502 }
8503 {
8504 var41 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_mtype);
8505 }
8506 var_res = var41;
8507 if (unlikely(varonce42==NULL)) {
8508 var43 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
8509 if (likely(varonce44!=NULL)) {
8510 var45 = varonce44;
8511 } else {
8512 var46 = "if (likely(";
8513 var47 = core__flat___NativeString___to_s_full(var46, 11l, 11l);
8514 var45 = var47;
8515 varonce44 = var45;
8516 }
8517 ((struct instance_core__NativeArray*)var43)->values[0]=var45;
8518 if (likely(varonce48!=NULL)) {
8519 var49 = varonce48;
8520 } else {
8521 var50 = ")) {";
8522 var51 = core__flat___NativeString___to_s_full(var50, 4l, 4l);
8523 var49 = var51;
8524 varonce48 = var49;
8525 }
8526 ((struct instance_core__NativeArray*)var43)->values[2]=var49;
8527 } else {
8528 var43 = varonce42;
8529 varonce42 = NULL;
8530 }
8531 ((struct instance_core__NativeArray*)var43)->values[1]=var_guard;
8532 {
8533 var52 = ((val*(*)(val* self))(var43->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var43); /* native_to_s on <var43:NativeArray[String]>*/
8534 }
8535 varonce42 = var43;
8536 {
8537 nitc___nitc__AbstractCompilerVisitor___add(var_v, var52); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8538 }
8539 if (unlikely(varonce53==NULL)) {
8540 var54 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
8541 if (likely(varonce55!=NULL)) {
8542 var56 = varonce55;
8543 } else {
8544 var57 = " = ";
8545 var58 = core__flat___NativeString___to_s_full(var57, 3l, 3l);
8546 var56 = var58;
8547 varonce55 = var56;
8548 }
8549 ((struct instance_core__NativeArray*)var54)->values[1]=var56;
8550 if (likely(varonce59!=NULL)) {
8551 var60 = varonce59;
8552 } else {
8553 var61 = ";";
8554 var62 = core__flat___NativeString___to_s_full(var61, 1l, 1l);
8555 var60 = var62;
8556 varonce59 = var60;
8557 }
8558 ((struct instance_core__NativeArray*)var54)->values[3]=var60;
8559 } else {
8560 var54 = varonce53;
8561 varonce53 = NULL;
8562 }
8563 {
8564 var63 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
8565 }
8566 ((struct instance_core__NativeArray*)var54)->values[0]=var63;
8567 ((struct instance_core__NativeArray*)var54)->values[2]=var_name;
8568 {
8569 var64 = ((val*(*)(val* self))(var54->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var54); /* native_to_s on <var54:NativeArray[String]>*/
8570 }
8571 varonce53 = var54;
8572 {
8573 nitc___nitc__AbstractCompilerVisitor___add(var_v, var64); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8574 }
8575 if (likely(varonce65!=NULL)) {
8576 var66 = varonce65;
8577 } else {
8578 var67 = "} else {";
8579 var68 = core__flat___NativeString___to_s_full(var67, 8l, 8l);
8580 var66 = var68;
8581 varonce65 = var66;
8582 }
8583 {
8584 nitc___nitc__AbstractCompilerVisitor___add(var_v, var66); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8585 }
8586 {
8587 { /* Inline parser_nodes#AOnceExpr#n_expr (self) on <self:AOnceExpr> */
8588 var71 = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
8589 if (unlikely(var71 == NULL)) {
8590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8591 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2014);
8592 fatal_exit(1);
8593 }
8594 var69 = var71;
8595 RET_LABEL70:(void)0;
8596 }
8597 }
8598 {
8599 var72 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var69, var_mtype);
8600 }
8601 var_i = var72;
8602 if (unlikely(varonce73==NULL)) {
8603 var74 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
8604 if (likely(varonce75!=NULL)) {
8605 var76 = varonce75;
8606 } else {
8607 var77 = " = ";
8608 var78 = core__flat___NativeString___to_s_full(var77, 3l, 3l);
8609 var76 = var78;
8610 varonce75 = var76;
8611 }
8612 ((struct instance_core__NativeArray*)var74)->values[1]=var76;
8613 if (likely(varonce79!=NULL)) {
8614 var80 = varonce79;
8615 } else {
8616 var81 = ";";
8617 var82 = core__flat___NativeString___to_s_full(var81, 1l, 1l);
8618 var80 = var82;
8619 varonce79 = var80;
8620 }
8621 ((struct instance_core__NativeArray*)var74)->values[3]=var80;
8622 } else {
8623 var74 = varonce73;
8624 varonce73 = NULL;
8625 }
8626 {
8627 var83 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
8628 }
8629 ((struct instance_core__NativeArray*)var74)->values[0]=var83;
8630 {
8631 var84 = ((val*(*)(val* self))(var_i->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_i); /* to_s on <var_i:RuntimeVariable>*/
8632 }
8633 ((struct instance_core__NativeArray*)var74)->values[2]=var84;
8634 {
8635 var85 = ((val*(*)(val* self))(var74->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var74); /* native_to_s on <var74:NativeArray[String]>*/
8636 }
8637 varonce73 = var74;
8638 {
8639 nitc___nitc__AbstractCompilerVisitor___add(var_v, var85); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8640 }
8641 if (unlikely(varonce86==NULL)) {
8642 var87 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
8643 if (likely(varonce88!=NULL)) {
8644 var89 = varonce88;
8645 } else {
8646 var90 = " = ";
8647 var91 = core__flat___NativeString___to_s_full(var90, 3l, 3l);
8648 var89 = var91;
8649 varonce88 = var89;
8650 }
8651 ((struct instance_core__NativeArray*)var87)->values[1]=var89;
8652 if (likely(varonce92!=NULL)) {
8653 var93 = varonce92;
8654 } else {
8655 var94 = ";";
8656 var95 = core__flat___NativeString___to_s_full(var94, 1l, 1l);
8657 var93 = var95;
8658 varonce92 = var93;
8659 }
8660 ((struct instance_core__NativeArray*)var87)->values[3]=var93;
8661 } else {
8662 var87 = varonce86;
8663 varonce86 = NULL;
8664 }
8665 ((struct instance_core__NativeArray*)var87)->values[0]=var_name;
8666 {
8667 var96 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
8668 }
8669 ((struct instance_core__NativeArray*)var87)->values[2]=var96;
8670 {
8671 var97 = ((val*(*)(val* self))(var87->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var87); /* native_to_s on <var87:NativeArray[String]>*/
8672 }
8673 varonce86 = var87;
8674 {
8675 nitc___nitc__AbstractCompilerVisitor___add(var_v, var97); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8676 }
8677 if (unlikely(varonce98==NULL)) {
8678 var99 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
8679 if (likely(varonce100!=NULL)) {
8680 var101 = varonce100;
8681 } else {
8682 var102 = " = 1;";
8683 var103 = core__flat___NativeString___to_s_full(var102, 5l, 5l);
8684 var101 = var103;
8685 varonce100 = var101;
8686 }
8687 ((struct instance_core__NativeArray*)var99)->values[1]=var101;
8688 } else {
8689 var99 = varonce98;
8690 varonce98 = NULL;
8691 }
8692 ((struct instance_core__NativeArray*)var99)->values[0]=var_guard;
8693 {
8694 var104 = ((val*(*)(val* self))(var99->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var99); /* native_to_s on <var99:NativeArray[String]>*/
8695 }
8696 varonce98 = var99;
8697 {
8698 nitc___nitc__AbstractCompilerVisitor___add(var_v, var104); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8699 }
8700 if (likely(varonce105!=NULL)) {
8701 var106 = varonce105;
8702 } else {
8703 var107 = "}";
8704 var108 = core__flat___NativeString___to_s_full(var107, 1l, 1l);
8705 var106 = var108;
8706 varonce105 = var106;
8707 }
8708 {
8709 nitc___nitc__AbstractCompilerVisitor___add(var_v, var106); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
8710 }
8711 var = var_res;
8712 goto RET_LABEL;
8713 RET_LABEL:;
8714 return var;
8715 }
8716 /* method abstract_compiler#ASendExpr#expr for (self: ASendExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
8717 val* nitc__abstract_compiler___ASendExpr___AExpr__expr(val* self, val* p0) {
8718 val* var /* : nullable RuntimeVariable */;
8719 val* var_v /* var v: AbstractCompilerVisitor */;
8720 val* var1 /* : AExpr */;
8721 val* var3 /* : AExpr */;
8722 val* var4 /* : RuntimeVariable */;
8723 val* var_recv /* var recv: RuntimeVariable */;
8724 val* var5 /* : nullable CallSite */;
8725 val* var7 /* : nullable CallSite */;
8726 val* var_callsite /* var callsite: CallSite */;
8727 short int var8 /* : Bool */;
8728 short int var10 /* : Bool */;
8729 val* var11 /* : MMethodDef */;
8730 val* var13 /* : MMethodDef */;
8731 val* var14 /* : nullable SignatureMap */;
8732 val* var16 /* : nullable SignatureMap */;
8733 val* var17 /* : Array[AExpr] */;
8734 val* var18 /* : Array[RuntimeVariable] */;
8735 val* var_args /* var args: Array[RuntimeVariable] */;
8736 val* var19 /* : nullable RuntimeVariable */;
8737 var_v = p0;
8738 {
8739 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendExpr> */
8740 var3 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendExpr> */
8741 if (unlikely(var3 == NULL)) {
8742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8743 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022);
8744 fatal_exit(1);
8745 }
8746 var1 = var3;
8747 RET_LABEL2:(void)0;
8748 }
8749 }
8750 {
8751 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
8752 }
8753 var_recv = var4;
8754 {
8755 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendExpr> */
8756 var7 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendExpr> */
8757 var5 = var7;
8758 RET_LABEL6:(void)0;
8759 }
8760 }
8761 if (unlikely(var5 == NULL)) {
8762 PRINT_ERROR("Runtime error: %s", "Cast failed");
8763 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3729);
8764 fatal_exit(1);
8765 }
8766 var_callsite = var5;
8767 {
8768 { /* Inline model_base#MEntity#is_broken (var_callsite) on <var_callsite:CallSite> */
8769 var10 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:CallSite> */
8770 var8 = var10;
8771 RET_LABEL9:(void)0;
8772 }
8773 }
8774 if (var8){
8775 var = ((val*)NULL);
8776 goto RET_LABEL;
8777 } else {
8778 }
8779 {
8780 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:CallSite> */
8781 var13 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:CallSite> */
8782 if (unlikely(var13 == NULL)) {
8783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
8784 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
8785 fatal_exit(1);
8786 }
8787 var11 = var13;
8788 RET_LABEL12:(void)0;
8789 }
8790 }
8791 {
8792 { /* Inline typing#CallSite#signaturemap (var_callsite) on <var_callsite:CallSite> */
8793 var16 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:CallSite> */
8794 var14 = var16;
8795 RET_LABEL15:(void)0;
8796 }
8797 }
8798 {
8799 var17 = nitc__typing___ASendExpr___raw_arguments(self);
8800 }
8801 {
8802 var18 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var11, var14, var_recv, var17);
8803 }
8804 var_args = var18;
8805 {
8806 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>*/
8807 }
8808 var = var19;
8809 goto RET_LABEL;
8810 RET_LABEL:;
8811 return var;
8812 }
8813 /* method abstract_compiler#ASendReassignFormExpr#stmt for (self: ASendReassignFormExpr, AbstractCompilerVisitor) */
8814 void nitc__abstract_compiler___ASendReassignFormExpr___AExpr__stmt(val* self, val* p0) {
8815 val* var_v /* var v: AbstractCompilerVisitor */;
8816 val* var /* : AExpr */;
8817 val* var2 /* : AExpr */;
8818 val* var3 /* : RuntimeVariable */;
8819 val* var_recv /* var recv: RuntimeVariable */;
8820 val* var4 /* : nullable CallSite */;
8821 val* var6 /* : nullable CallSite */;
8822 val* var_callsite /* var callsite: CallSite */;
8823 short int var7 /* : Bool */;
8824 short int var9 /* : Bool */;
8825 val* var10 /* : MMethodDef */;
8826 val* var12 /* : MMethodDef */;
8827 val* var13 /* : nullable SignatureMap */;
8828 val* var15 /* : nullable SignatureMap */;
8829 val* var16 /* : Array[AExpr] */;
8830 val* var17 /* : Array[RuntimeVariable] */;
8831 val* var_args /* var args: Array[RuntimeVariable] */;
8832 val* var18 /* : AExpr */;
8833 val* var20 /* : AExpr */;
8834 val* var21 /* : RuntimeVariable */;
8835 val* var_value /* var value: RuntimeVariable */;
8836 val* var22 /* : nullable RuntimeVariable */;
8837 val* var_left /* var left: nullable RuntimeVariable */;
8838 short int var23 /* : Bool */;
8839 short int var24 /* : Bool */;
8840 val* var_other /* var other: nullable Object */;
8841 short int var26 /* : Bool */;
8842 short int var27 /* : Bool */;
8843 val* var28 /* : nullable CallSite */;
8844 val* var30 /* : nullable CallSite */;
8845 val* var31 /* : Array[RuntimeVariable] */;
8846 val* var_ /* var : Array[RuntimeVariable] */;
8847 val* var32 /* : nullable RuntimeVariable */;
8848 val* var_res /* var res: nullable RuntimeVariable */;
8849 short int var33 /* : Bool */;
8850 short int var34 /* : Bool */;
8851 short int var36 /* : Bool */;
8852 short int var37 /* : Bool */;
8853 val* var38 /* : nullable CallSite */;
8854 val* var40 /* : nullable CallSite */;
8855 val* var41 /* : nullable RuntimeVariable */;
8856 var_v = p0;
8857 {
8858 { /* Inline parser_nodes#ASendExpr#n_expr (self) on <self:ASendReassignFormExpr> */
8859 var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
8860 if (unlikely(var2 == NULL)) {
8861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8862 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2022);
8863 fatal_exit(1);
8864 }
8865 var = var2;
8866 RET_LABEL1:(void)0;
8867 }
8868 }
8869 {
8870 var3 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var, ((val*)NULL));
8871 }
8872 var_recv = var3;
8873 {
8874 { /* Inline typing#ASendExpr#callsite (self) on <self:ASendReassignFormExpr> */
8875 var6 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendReassignFormExpr> */
8876 var4 = var6;
8877 RET_LABEL5:(void)0;
8878 }
8879 }
8880 if (unlikely(var4 == NULL)) {
8881 PRINT_ERROR("Runtime error: %s", "Cast failed");
8882 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3740);
8883 fatal_exit(1);
8884 }
8885 var_callsite = var4;
8886 {
8887 { /* Inline model_base#MEntity#is_broken (var_callsite) on <var_callsite:CallSite> */
8888 var9 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:CallSite> */
8889 var7 = var9;
8890 RET_LABEL8:(void)0;
8891 }
8892 }
8893 if (var7){
8894 goto RET_LABEL;
8895 } else {
8896 }
8897 {
8898 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:CallSite> */
8899 var12 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:CallSite> */
8900 if (unlikely(var12 == NULL)) {
8901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
8902 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
8903 fatal_exit(1);
8904 }
8905 var10 = var12;
8906 RET_LABEL11:(void)0;
8907 }
8908 }
8909 {
8910 { /* Inline typing#CallSite#signaturemap (var_callsite) on <var_callsite:CallSite> */
8911 var15 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:CallSite> */
8912 var13 = var15;
8913 RET_LABEL14:(void)0;
8914 }
8915 }
8916 {
8917 var16 = nitc__typing___ASendExpr___raw_arguments(self);
8918 }
8919 {
8920 var17 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var10, var13, var_recv, var16);
8921 }
8922 var_args = var17;
8923 {
8924 { /* Inline parser_nodes#AReassignFormExpr#n_value (self) on <self:ASendReassignFormExpr> */
8925 var20 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ASendReassignFormExpr> */
8926 if (unlikely(var20 == NULL)) {
8927 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
8928 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2003);
8929 fatal_exit(1);
8930 }
8931 var18 = var20;
8932 RET_LABEL19:(void)0;
8933 }
8934 }
8935 {
8936 var21 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var18, ((val*)NULL));
8937 }
8938 var_value = var21;
8939 {
8940 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>*/
8941 }
8942 var_left = var22;
8943 if (var_left == NULL) {
8944 var23 = 0; /* is null */
8945 } else {
8946 var23 = 1; /* arg is null and recv is not */
8947 }
8948 if (0) {
8949 { /* Inline kernel#Object#!= (var_left,((val*)NULL)) on <var_left:nullable RuntimeVariable> */
8950 var_other = ((val*)NULL);
8951 {
8952 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)>*/
8953 }
8954 var27 = !var26;
8955 var24 = var27;
8956 goto RET_LABEL25;
8957 RET_LABEL25:(void)0;
8958 }
8959 var23 = var24;
8960 }
8961 if (unlikely(!var23)) {
8962 PRINT_ERROR("Runtime error: %s", "Assert failed");
8963 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3747);
8964 fatal_exit(1);
8965 }
8966 {
8967 { /* Inline typing#AReassignFormExpr#reassign_callsite (self) on <self:ASendReassignFormExpr> */
8968 var30 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:ASendReassignFormExpr> */
8969 var28 = var30;
8970 RET_LABEL29:(void)0;
8971 }
8972 }
8973 if (unlikely(var28 == NULL)) {
8974 PRINT_ERROR("Runtime error: %s", "Cast failed");
8975 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3749);
8976 fatal_exit(1);
8977 }
8978 var31 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
8979 {
8980 core___core__Array___with_capacity(var31, 2l); /* Direct call array#Array#with_capacity on <var31:Array[RuntimeVariable]>*/
8981 }
8982 var_ = var31;
8983 {
8984 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_left); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
8985 }
8986 {
8987 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_value); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
8988 }
8989 {
8990 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>*/
8991 }
8992 var_res = var32;
8993 if (var_res == NULL) {
8994 var33 = 0; /* is null */
8995 } else {
8996 var33 = 1; /* arg is null and recv is not */
8997 }
8998 if (0) {
8999 { /* Inline kernel#Object#!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
9000 var_other = ((val*)NULL);
9001 {
9002 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)>*/
9003 }
9004 var37 = !var36;
9005 var34 = var37;
9006 goto RET_LABEL35;
9007 RET_LABEL35:(void)0;
9008 }
9009 var33 = var34;
9010 }
9011 if (unlikely(!var33)) {
9012 PRINT_ERROR("Runtime error: %s", "Assert failed");
9013 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3750);
9014 fatal_exit(1);
9015 }
9016 {
9017 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var_res); /* Direct call array#Array#add on <var_args:Array[RuntimeVariable]>*/
9018 }
9019 {
9020 { /* Inline typing#ASendReassignFormExpr#write_callsite (self) on <self:ASendReassignFormExpr> */
9021 var40 = self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on <self:ASendReassignFormExpr> */
9022 var38 = var40;
9023 RET_LABEL39:(void)0;
9024 }
9025 }
9026 if (unlikely(var38 == NULL)) {
9027 PRINT_ERROR("Runtime error: %s", "Cast failed");
9028 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3753);
9029 fatal_exit(1);
9030 }
9031 {
9032 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>*/
9033 }
9034 RET_LABEL:;
9035 }
9036 /* method abstract_compiler#ASuperExpr#expr for (self: ASuperExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9037 val* nitc__abstract_compiler___ASuperExpr___AExpr__expr(val* self, val* p0) {
9038 val* var /* : nullable RuntimeVariable */;
9039 val* var_v /* var v: AbstractCompilerVisitor */;
9040 val* var1 /* : nullable StaticFrame */;
9041 val* var3 /* : nullable StaticFrame */;
9042 val* var_frame /* var frame: StaticFrame */;
9043 val* var4 /* : Array[RuntimeVariable] */;
9044 val* var6 /* : Array[RuntimeVariable] */;
9045 val* var7 /* : nullable Object */;
9046 val* var_recv /* var recv: RuntimeVariable */;
9047 val* var8 /* : nullable CallSite */;
9048 val* var10 /* : nullable CallSite */;
9049 val* var_callsite /* var callsite: nullable CallSite */;
9050 short int var11 /* : Bool */;
9051 short int var12 /* : Bool */;
9052 val* var_other /* var other: nullable Object */;
9053 short int var14 /* : Bool */;
9054 short int var15 /* : Bool */;
9055 short int var16 /* : Bool */;
9056 short int var18 /* : Bool */;
9057 val* var19 /* : AExprs */;
9058 val* var21 /* : AExprs */;
9059 val* var22 /* : ANodes[AExpr] */;
9060 val* var24 /* : ANodes[AExpr] */;
9061 short int var25 /* : Bool */;
9062 val* var26 /* : Array[RuntimeVariable] */;
9063 val* var_ /* var : Array[RuntimeVariable] */;
9064 val* var_args /* var args: nullable Object */;
9065 long var_i /* var i: Int */;
9066 val* var27 /* : MSignature */;
9067 val* var29 /* : MSignature */;
9068 long var30 /* : Int */;
9069 long var_31 /* var : Int */;
9070 short int var32 /* : Bool */;
9071 short int var34 /* : Bool */;
9072 int cltype;
9073 int idtype;
9074 const char* var_class_name;
9075 short int var35 /* : Bool */;
9076 val* var36 /* : Array[RuntimeVariable] */;
9077 val* var38 /* : Array[RuntimeVariable] */;
9078 long var39 /* : Int */;
9079 short int var41 /* : Bool */;
9080 int cltype42;
9081 int idtype43;
9082 const char* var_class_name44;
9083 long var45 /* : Int */;
9084 val* var46 /* : nullable Object */;
9085 long var47 /* : Int */;
9086 val* var48 /* : MMethodDef */;
9087 val* var50 /* : MMethodDef */;
9088 val* var51 /* : nullable SignatureMap */;
9089 val* var53 /* : nullable SignatureMap */;
9090 val* var54 /* : AExprs */;
9091 val* var56 /* : AExprs */;
9092 val* var57 /* : ANodes[AExpr] */;
9093 val* var59 /* : ANodes[AExpr] */;
9094 val* var60 /* : Array[RuntimeVariable] */;
9095 val* var61 /* : nullable RuntimeVariable */;
9096 val* var_res /* var res: nullable RuntimeVariable */;
9097 val* var62 /* : nullable MMethodDef */;
9098 val* var64 /* : nullable MMethodDef */;
9099 val* var_mpropdef /* var mpropdef: MMethodDef */;
9100 val* var65 /* : AExprs */;
9101 val* var67 /* : AExprs */;
9102 val* var68 /* : ANodes[AExpr] */;
9103 val* var70 /* : ANodes[AExpr] */;
9104 short int var71 /* : Bool */;
9105 val* var72 /* : Array[RuntimeVariable] */;
9106 val* var74 /* : Array[RuntimeVariable] */;
9107 val* var_args75 /* var args: nullable Object */;
9108 val* var76 /* : nullable SignatureMap */;
9109 val* var78 /* : nullable SignatureMap */;
9110 val* var79 /* : AExprs */;
9111 val* var81 /* : AExprs */;
9112 val* var82 /* : ANodes[AExpr] */;
9113 val* var84 /* : ANodes[AExpr] */;
9114 val* var85 /* : Array[RuntimeVariable] */;
9115 val* var86 /* : MType */;
9116 val* var88 /* : MType */;
9117 short int var89 /* : Bool */;
9118 int cltype90;
9119 int idtype91;
9120 const char* var_class_name92;
9121 val* var93 /* : nullable RuntimeVariable */;
9122 var_v = p0;
9123 {
9124 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (var_v) on <var_v:AbstractCompilerVisitor> */
9125 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <var_v:AbstractCompilerVisitor> */
9126 var1 = var3;
9127 RET_LABEL2:(void)0;
9128 }
9129 }
9130 if (unlikely(var1 == NULL)) {
9131 PRINT_ERROR("Runtime error: %s", "Cast failed");
9132 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3760);
9133 fatal_exit(1);
9134 }
9135 var_frame = var1;
9136 {
9137 { /* Inline abstract_compiler#StaticFrame#arguments (var_frame) on <var_frame:StaticFrame> */
9138 var6 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var_frame:StaticFrame> */
9139 if (unlikely(var6 == NULL)) {
9140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1921);
9142 fatal_exit(1);
9143 }
9144 var4 = var6;
9145 RET_LABEL5:(void)0;
9146 }
9147 }
9148 {
9149 var7 = core___core__SequenceRead___Collection__first(var4);
9150 }
9151 var_recv = var7;
9152 {
9153 { /* Inline typing#ASuperExpr#callsite (self) on <self:ASuperExpr> */
9154 var10 = self->attrs[COLOR_nitc__typing__ASuperExpr___callsite].val; /* _callsite on <self:ASuperExpr> */
9155 var8 = var10;
9156 RET_LABEL9:(void)0;
9157 }
9158 }
9159 var_callsite = var8;
9160 if (var_callsite == NULL) {
9161 var11 = 0; /* is null */
9162 } else {
9163 var11 = 1; /* arg is null and recv is not */
9164 }
9165 if (0) {
9166 { /* Inline kernel#Object#!= (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
9167 var_other = ((val*)NULL);
9168 {
9169 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)>*/
9170 }
9171 var15 = !var14;
9172 var12 = var15;
9173 goto RET_LABEL13;
9174 RET_LABEL13:(void)0;
9175 }
9176 var11 = var12;
9177 }
9178 if (var11){
9179 {
9180 { /* Inline model_base#MEntity#is_broken (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9181 var18 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:nullable CallSite(CallSite)> */
9182 var16 = var18;
9183 RET_LABEL17:(void)0;
9184 }
9185 }
9186 if (var16){
9187 var = ((val*)NULL);
9188 goto RET_LABEL;
9189 } else {
9190 }
9191 {
9192 { /* Inline parser_nodes#ASuperExpr#n_args (self) on <self:ASuperExpr> */
9193 var21 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
9194 if (unlikely(var21 == NULL)) {
9195 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9196 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2348);
9197 fatal_exit(1);
9198 }
9199 var19 = var21;
9200 RET_LABEL20:(void)0;
9201 }
9202 }
9203 {
9204 { /* Inline parser_nodes#AExprs#n_exprs (var19) on <var19:AExprs> */
9205 var24 = var19->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var19:AExprs> */
9206 if (unlikely(var24 == NULL)) {
9207 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
9208 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
9209 fatal_exit(1);
9210 }
9211 var22 = var24;
9212 RET_LABEL23:(void)0;
9213 }
9214 }
9215 {
9216 var25 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var22);
9217 }
9218 if (var25){
9219 var26 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
9220 {
9221 core___core__Array___with_capacity(var26, 1l); /* Direct call array#Array#with_capacity on <var26:Array[RuntimeVariable]>*/
9222 }
9223 var_ = var26;
9224 {
9225 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array#AbstractArray#push on <var_:Array[RuntimeVariable]>*/
9226 }
9227 var_args = var_;
9228 var_i = 0l;
9229 {
9230 { /* Inline typing#CallSite#msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9231 var29 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
9232 if (unlikely(var29 == NULL)) {
9233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
9234 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 660);
9235 fatal_exit(1);
9236 }
9237 var27 = var29;
9238 RET_LABEL28:(void)0;
9239 }
9240 }
9241 {
9242 var30 = nitc___nitc__MSignature___arity(var27);
9243 }
9244 var_31 = var30;
9245 for(;;) {
9246 {
9247 { /* Inline kernel#Int#< (var_i,var_31) on <var_i:Int> */
9248 /* Covariant cast for argument 0 (i) <var_31:Int> isa OTHER */
9249 /* <var_31:Int> isa OTHER */
9250 var34 = 1; /* easy <var_31:Int> isa OTHER*/
9251 if (unlikely(!var34)) {
9252 var_class_name = type_core__Int.name;
9253 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
9254 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
9255 fatal_exit(1);
9256 }
9257 var35 = var_i < var_31;
9258 var32 = var35;
9259 goto RET_LABEL33;
9260 RET_LABEL33:(void)0;
9261 }
9262 }
9263 if (var32){
9264 } else {
9265 goto BREAK_label;
9266 }
9267 {
9268 { /* Inline abstract_compiler#StaticFrame#arguments (var_frame) on <var_frame:StaticFrame> */
9269 var38 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var_frame:StaticFrame> */
9270 if (unlikely(var38 == NULL)) {
9271 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9272 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1921);
9273 fatal_exit(1);
9274 }
9275 var36 = var38;
9276 RET_LABEL37:(void)0;
9277 }
9278 }
9279 {
9280 { /* Inline kernel#Int#+ (var_i,1l) on <var_i:Int> */
9281 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
9282 /* <1l:Int> isa OTHER */
9283 var41 = 1; /* easy <1l:Int> isa OTHER*/
9284 if (unlikely(!var41)) {
9285 var_class_name44 = type_core__Int.name;
9286 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name44);
9287 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 731);
9288 fatal_exit(1);
9289 }
9290 var45 = var_i + 1l;
9291 var39 = var45;
9292 goto RET_LABEL40;
9293 RET_LABEL40:(void)0;
9294 }
9295 }
9296 {
9297 var46 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var36, var39);
9298 }
9299 {
9300 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var46); /* Direct call array#Array#add on <var_args:nullable Object(Array[RuntimeVariable])>*/
9301 }
9302 {
9303 var47 = core___core__Int___Discrete__successor(var_i, 1l);
9304 }
9305 var_i = var47;
9306 }
9307 BREAK_label: (void)0;
9308 } else {
9309 {
9310 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9311 var50 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:nullable CallSite(CallSite)> */
9312 if (unlikely(var50 == NULL)) {
9313 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
9314 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
9315 fatal_exit(1);
9316 }
9317 var48 = var50;
9318 RET_LABEL49:(void)0;
9319 }
9320 }
9321 {
9322 { /* Inline typing#CallSite#signaturemap (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9323 var53 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:nullable CallSite(CallSite)> */
9324 var51 = var53;
9325 RET_LABEL52:(void)0;
9326 }
9327 }
9328 {
9329 { /* Inline parser_nodes#ASuperExpr#n_args (self) on <self:ASuperExpr> */
9330 var56 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
9331 if (unlikely(var56 == NULL)) {
9332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9333 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2348);
9334 fatal_exit(1);
9335 }
9336 var54 = var56;
9337 RET_LABEL55:(void)0;
9338 }
9339 }
9340 {
9341 { /* Inline parser_nodes#AExprs#n_exprs (var54) on <var54:AExprs> */
9342 var59 = var54->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var54:AExprs> */
9343 if (unlikely(var59 == NULL)) {
9344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
9345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
9346 fatal_exit(1);
9347 }
9348 var57 = var59;
9349 RET_LABEL58:(void)0;
9350 }
9351 }
9352 {
9353 var60 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var48, var51, var_recv, var57);
9354 }
9355 var_args = var60;
9356 }
9357 {
9358 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>*/
9359 }
9360 var_res = var61;
9361 var = var_res;
9362 goto RET_LABEL;
9363 } else {
9364 }
9365 {
9366 { /* Inline typing#ASuperExpr#mpropdef (self) on <self:ASuperExpr> */
9367 var64 = self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val; /* _mpropdef on <self:ASuperExpr> */
9368 var62 = var64;
9369 RET_LABEL63:(void)0;
9370 }
9371 }
9372 if (unlikely(var62 == NULL)) {
9373 PRINT_ERROR("Runtime error: %s", "Cast failed");
9374 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3783);
9375 fatal_exit(1);
9376 }
9377 var_mpropdef = var62;
9378 {
9379 { /* Inline parser_nodes#ASuperExpr#n_args (self) on <self:ASuperExpr> */
9380 var67 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
9381 if (unlikely(var67 == NULL)) {
9382 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9383 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2348);
9384 fatal_exit(1);
9385 }
9386 var65 = var67;
9387 RET_LABEL66:(void)0;
9388 }
9389 }
9390 {
9391 { /* Inline parser_nodes#AExprs#n_exprs (var65) on <var65:AExprs> */
9392 var70 = var65->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var65:AExprs> */
9393 if (unlikely(var70 == NULL)) {
9394 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
9395 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
9396 fatal_exit(1);
9397 }
9398 var68 = var70;
9399 RET_LABEL69:(void)0;
9400 }
9401 }
9402 {
9403 var71 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var68);
9404 }
9405 if (var71){
9406 {
9407 { /* Inline abstract_compiler#StaticFrame#arguments (var_frame) on <var_frame:StaticFrame> */
9408 var74 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var_frame:StaticFrame> */
9409 if (unlikely(var74 == NULL)) {
9410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1921);
9412 fatal_exit(1);
9413 }
9414 var72 = var74;
9415 RET_LABEL73:(void)0;
9416 }
9417 }
9418 var_args75 = var72;
9419 } else {
9420 {
9421 { /* Inline typing#ASuperExpr#signaturemap (self) on <self:ASuperExpr> */
9422 var78 = self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val; /* _signaturemap on <self:ASuperExpr> */
9423 var76 = var78;
9424 RET_LABEL77:(void)0;
9425 }
9426 }
9427 {
9428 { /* Inline parser_nodes#ASuperExpr#n_args (self) on <self:ASuperExpr> */
9429 var81 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
9430 if (unlikely(var81 == NULL)) {
9431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9432 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2348);
9433 fatal_exit(1);
9434 }
9435 var79 = var81;
9436 RET_LABEL80:(void)0;
9437 }
9438 }
9439 {
9440 { /* Inline parser_nodes#AExprs#n_exprs (var79) on <var79:AExprs> */
9441 var84 = var79->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var79:AExprs> */
9442 if (unlikely(var84 == NULL)) {
9443 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
9444 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
9445 fatal_exit(1);
9446 }
9447 var82 = var84;
9448 RET_LABEL83:(void)0;
9449 }
9450 }
9451 {
9452 var85 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var_mpropdef, var76, var_recv, var82);
9453 }
9454 var_args75 = var85;
9455 }
9456 {
9457 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
9458 var88 = var_recv->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_recv:RuntimeVariable> */
9459 if (unlikely(var88 == NULL)) {
9460 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9461 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1870);
9462 fatal_exit(1);
9463 }
9464 var86 = var88;
9465 RET_LABEL87:(void)0;
9466 }
9467 }
9468 /* <var86:MType> isa MClassType */
9469 cltype90 = type_nitc__MClassType.color;
9470 idtype91 = type_nitc__MClassType.id;
9471 if(cltype90 >= var86->type->table_size) {
9472 var89 = 0;
9473 } else {
9474 var89 = var86->type->type_table[cltype90] == idtype91;
9475 }
9476 if (unlikely(!var89)) {
9477 var_class_name92 = var86 == NULL ? "null" : var86->type->name;
9478 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name92);
9479 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3793);
9480 fatal_exit(1);
9481 }
9482 {
9483 var93 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var86, var_args75);
9484 }
9485 var = var93;
9486 goto RET_LABEL;
9487 RET_LABEL:;
9488 return var;
9489 }
9490 /* method abstract_compiler#ANewExpr#expr for (self: ANewExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9491 val* nitc__abstract_compiler___ANewExpr___AExpr__expr(val* self, val* p0) {
9492 val* var /* : nullable RuntimeVariable */;
9493 val* var_v /* var v: AbstractCompilerVisitor */;
9494 val* var1 /* : nullable MClassType */;
9495 val* var3 /* : nullable MClassType */;
9496 val* var_mtype /* var mtype: nullable MClassType */;
9497 short int var4 /* : Bool */;
9498 short int var5 /* : Bool */;
9499 val* var_other /* var other: nullable Object */;
9500 short int var7 /* : Bool */;
9501 short int var8 /* : Bool */;
9502 val* var9 /* : MClass */;
9503 val* var11 /* : MClass */;
9504 val* var12 /* : String */;
9505 val* var14 /* : String */;
9506 static val* varonce;
9507 val* var15 /* : String */;
9508 char* var16 /* : NativeString */;
9509 val* var17 /* : String */;
9510 short int var18 /* : Bool */;
9511 val* var19 /* : AExprs */;
9512 val* var21 /* : AExprs */;
9513 val* var22 /* : ANodes[AExpr] */;
9514 val* var24 /* : ANodes[AExpr] */;
9515 long var25 /* : Int */;
9516 short int var26 /* : Bool */;
9517 short int var28 /* : Bool */;
9518 val* var29 /* : AExprs */;
9519 val* var31 /* : AExprs */;
9520 val* var32 /* : ANodes[AExpr] */;
9521 val* var34 /* : ANodes[AExpr] */;
9522 val* var35 /* : nullable Object */;
9523 val* var36 /* : RuntimeVariable */;
9524 val* var_l /* var l: RuntimeVariable */;
9525 short int var37 /* : Bool */;
9526 int cltype;
9527 int idtype;
9528 val* var38 /* : Array[MType] */;
9529 val* var40 /* : Array[MType] */;
9530 val* var41 /* : nullable Object */;
9531 val* var_elttype /* var elttype: MType */;
9532 val* var42 /* : RuntimeVariable */;
9533 val* var43 /* : RuntimeVariable */;
9534 val* var_recv /* var recv: RuntimeVariable */;
9535 val* var44 /* : nullable CallSite */;
9536 val* var46 /* : nullable CallSite */;
9537 val* var_callsite /* var callsite: nullable CallSite */;
9538 short int var47 /* : Bool */;
9539 short int var48 /* : Bool */;
9540 val* var_other50 /* var other: nullable Object */;
9541 short int var51 /* : Bool */;
9542 short int var53 /* : Bool */;
9543 short int var54 /* : Bool */;
9544 short int var56 /* : Bool */;
9545 val* var57 /* : MMethodDef */;
9546 val* var59 /* : MMethodDef */;
9547 val* var60 /* : nullable SignatureMap */;
9548 val* var62 /* : nullable SignatureMap */;
9549 val* var63 /* : AExprs */;
9550 val* var65 /* : AExprs */;
9551 val* var66 /* : ANodes[AExpr] */;
9552 val* var68 /* : ANodes[AExpr] */;
9553 val* var69 /* : Array[RuntimeVariable] */;
9554 val* var_args /* var args: Array[RuntimeVariable] */;
9555 val* var70 /* : nullable RuntimeVariable */;
9556 val* var_res2 /* var res2: nullable RuntimeVariable */;
9557 short int var71 /* : Bool */;
9558 short int var72 /* : Bool */;
9559 short int var74 /* : Bool */;
9560 short int var75 /* : Bool */;
9561 var_v = p0;
9562 {
9563 { /* Inline typing#ANewExpr#recvtype (self) on <self:ANewExpr> */
9564 var3 = self->attrs[COLOR_nitc__typing__ANewExpr___recvtype].val; /* _recvtype on <self:ANewExpr> */
9565 var1 = var3;
9566 RET_LABEL2:(void)0;
9567 }
9568 }
9569 var_mtype = var1;
9570 if (var_mtype == NULL) {
9571 var4 = 0; /* is null */
9572 } else {
9573 var4 = 1; /* arg is null and recv is not */
9574 }
9575 if (0) {
9576 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MClassType> */
9577 var_other = ((val*)NULL);
9578 {
9579 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)>*/
9580 }
9581 var8 = !var7;
9582 var5 = var8;
9583 goto RET_LABEL6;
9584 RET_LABEL6:(void)0;
9585 }
9586 var4 = var5;
9587 }
9588 if (unlikely(!var4)) {
9589 PRINT_ERROR("Runtime error: %s", "Assert failed");
9590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3801);
9591 fatal_exit(1);
9592 }
9593 {
9594 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:nullable MClassType(MClassType)> */
9595 var11 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:nullable MClassType(MClassType)> */
9596 if (unlikely(var11 == NULL)) {
9597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
9598 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1163);
9599 fatal_exit(1);
9600 }
9601 var9 = var11;
9602 RET_LABEL10:(void)0;
9603 }
9604 }
9605 {
9606 { /* Inline model#MClass#name (var9) on <var9:MClass> */
9607 var14 = var9->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var9:MClass> */
9608 if (unlikely(var14 == NULL)) {
9609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9610 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 385);
9611 fatal_exit(1);
9612 }
9613 var12 = var14;
9614 RET_LABEL13:(void)0;
9615 }
9616 }
9617 if (likely(varonce!=NULL)) {
9618 var15 = varonce;
9619 } else {
9620 var16 = "NativeArray";
9621 var17 = core__flat___NativeString___to_s_full(var16, 11l, 11l);
9622 var15 = var17;
9623 varonce = var15;
9624 }
9625 {
9626 var18 = ((short int(*)(val* self, val* p0))(var12->class->vft[COLOR_core__kernel__Object___61d_61d]))(var12, var15); /* == on <var12:String>*/
9627 }
9628 if (var18){
9629 {
9630 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
9631 var21 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
9632 if (unlikely(var21 == NULL)) {
9633 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9634 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2265);
9635 fatal_exit(1);
9636 }
9637 var19 = var21;
9638 RET_LABEL20:(void)0;
9639 }
9640 }
9641 {
9642 { /* Inline parser_nodes#AExprs#n_exprs (var19) on <var19:AExprs> */
9643 var24 = var19->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var19:AExprs> */
9644 if (unlikely(var24 == NULL)) {
9645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
9646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
9647 fatal_exit(1);
9648 }
9649 var22 = var24;
9650 RET_LABEL23:(void)0;
9651 }
9652 }
9653 {
9654 var25 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var22);
9655 }
9656 {
9657 { /* Inline kernel#Int#== (var25,1l) on <var25:Int> */
9658 var28 = var25 == 1l;
9659 var26 = var28;
9660 goto RET_LABEL27;
9661 RET_LABEL27:(void)0;
9662 }
9663 }
9664 if (unlikely(!var26)) {
9665 PRINT_ERROR("Runtime error: %s", "Assert failed");
9666 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3804);
9667 fatal_exit(1);
9668 }
9669 {
9670 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
9671 var31 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
9672 if (unlikely(var31 == NULL)) {
9673 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9674 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2265);
9675 fatal_exit(1);
9676 }
9677 var29 = var31;
9678 RET_LABEL30:(void)0;
9679 }
9680 }
9681 {
9682 { /* Inline parser_nodes#AExprs#n_exprs (var29) on <var29:AExprs> */
9683 var34 = var29->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var29:AExprs> */
9684 if (unlikely(var34 == NULL)) {
9685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
9686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
9687 fatal_exit(1);
9688 }
9689 var32 = var34;
9690 RET_LABEL33:(void)0;
9691 }
9692 }
9693 {
9694 var35 = core___core__SequenceRead___Collection__first(var32);
9695 }
9696 {
9697 var36 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var35, ((val*)NULL));
9698 }
9699 var_l = var36;
9700 /* <var_mtype:nullable MClassType(MClassType)> isa MGenericType */
9701 cltype = type_nitc__MGenericType.color;
9702 idtype = type_nitc__MGenericType.id;
9703 if(cltype >= var_mtype->type->table_size) {
9704 var37 = 0;
9705 } else {
9706 var37 = var_mtype->type->type_table[cltype] == idtype;
9707 }
9708 if (unlikely(!var37)) {
9709 PRINT_ERROR("Runtime error: %s", "Assert failed");
9710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3806);
9711 fatal_exit(1);
9712 }
9713 {
9714 { /* Inline model#MGenericType#arguments (var_mtype) on <var_mtype:nullable MClassType(MGenericType)> */
9715 var40 = var_mtype->attrs[COLOR_nitc__model__MGenericType___arguments].val; /* _arguments on <var_mtype:nullable MClassType(MGenericType)> */
9716 if (unlikely(var40 == NULL)) {
9717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
9718 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1269);
9719 fatal_exit(1);
9720 }
9721 var38 = var40;
9722 RET_LABEL39:(void)0;
9723 }
9724 }
9725 {
9726 var41 = core___core__SequenceRead___Collection__first(var38);
9727 }
9728 var_elttype = var41;
9729 {
9730 var42 = ((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>*/
9731 }
9732 var = var42;
9733 goto RET_LABEL;
9734 } else {
9735 }
9736 {
9737 var43 = nitc___nitc__AbstractCompilerVisitor___init_instance_or_extern(var_v, var_mtype);
9738 }
9739 var_recv = var43;
9740 {
9741 { /* Inline typing#ANewExpr#callsite (self) on <self:ANewExpr> */
9742 var46 = self->attrs[COLOR_nitc__typing__ANewExpr___callsite].val; /* _callsite on <self:ANewExpr> */
9743 var44 = var46;
9744 RET_LABEL45:(void)0;
9745 }
9746 }
9747 var_callsite = var44;
9748 if (var_callsite == NULL) {
9749 var47 = 1; /* is null */
9750 } else {
9751 var47 = 0; /* arg is null but recv is not */
9752 }
9753 if (0) {
9754 { /* Inline kernel#Object#== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
9755 var_other50 = ((val*)NULL);
9756 {
9757 { /* Inline kernel#Object#is_same_instance (var_callsite,var_other50) on <var_callsite:nullable CallSite(CallSite)> */
9758 var53 = var_callsite == var_other50;
9759 var51 = var53;
9760 goto RET_LABEL52;
9761 RET_LABEL52:(void)0;
9762 }
9763 }
9764 var48 = var51;
9765 goto RET_LABEL49;
9766 RET_LABEL49:(void)0;
9767 }
9768 var47 = var48;
9769 }
9770 if (var47){
9771 var = var_recv;
9772 goto RET_LABEL;
9773 } else {
9774 }
9775 {
9776 { /* Inline model_base#MEntity#is_broken (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9777 var56 = var_callsite->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_callsite:nullable CallSite(CallSite)> */
9778 var54 = var56;
9779 RET_LABEL55:(void)0;
9780 }
9781 }
9782 if (var54){
9783 var = ((val*)NULL);
9784 goto RET_LABEL;
9785 } else {
9786 }
9787 {
9788 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9789 var59 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:nullable CallSite(CallSite)> */
9790 if (unlikely(var59 == NULL)) {
9791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
9792 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
9793 fatal_exit(1);
9794 }
9795 var57 = var59;
9796 RET_LABEL58:(void)0;
9797 }
9798 }
9799 {
9800 { /* Inline typing#CallSite#signaturemap (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
9801 var62 = var_callsite->attrs[COLOR_nitc__typing__CallSite___signaturemap].val; /* _signaturemap on <var_callsite:nullable CallSite(CallSite)> */
9802 var60 = var62;
9803 RET_LABEL61:(void)0;
9804 }
9805 }
9806 {
9807 { /* Inline parser_nodes#ANewExpr#n_args (self) on <self:ANewExpr> */
9808 var65 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
9809 if (unlikely(var65 == NULL)) {
9810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
9811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2265);
9812 fatal_exit(1);
9813 }
9814 var63 = var65;
9815 RET_LABEL64:(void)0;
9816 }
9817 }
9818 {
9819 { /* Inline parser_nodes#AExprs#n_exprs (var63) on <var63:AExprs> */
9820 var68 = var63->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var63:AExprs> */
9821 if (unlikely(var68 == NULL)) {
9822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
9823 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2709);
9824 fatal_exit(1);
9825 }
9826 var66 = var68;
9827 RET_LABEL67:(void)0;
9828 }
9829 }
9830 {
9831 var69 = nitc___nitc__AbstractCompilerVisitor___varargize(var_v, var57, var60, var_recv, var66);
9832 }
9833 var_args = var69;
9834 {
9835 var70 = ((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>*/
9836 }
9837 var_res2 = var70;
9838 if (var_res2 == NULL) {
9839 var71 = 0; /* is null */
9840 } else {
9841 var71 = 1; /* arg is null and recv is not */
9842 }
9843 if (0) {
9844 { /* Inline kernel#Object#!= (var_res2,((val*)NULL)) on <var_res2:nullable RuntimeVariable> */
9845 var_other = ((val*)NULL);
9846 {
9847 var74 = ((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)>*/
9848 }
9849 var75 = !var74;
9850 var72 = var75;
9851 goto RET_LABEL73;
9852 RET_LABEL73:(void)0;
9853 }
9854 var71 = var72;
9855 }
9856 if (var71){
9857 var = var_res2;
9858 goto RET_LABEL;
9859 } else {
9860 }
9861 var = var_recv;
9862 goto RET_LABEL;
9863 RET_LABEL:;
9864 return var;
9865 }
9866 /* method abstract_compiler#AAttrExpr#expr for (self: AAttrExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9867 val* nitc__abstract_compiler___AAttrExpr___AExpr__expr(val* self, val* p0) {
9868 val* var /* : nullable RuntimeVariable */;
9869 val* var_v /* var v: AbstractCompilerVisitor */;
9870 val* var1 /* : AExpr */;
9871 val* var3 /* : AExpr */;
9872 val* var4 /* : RuntimeVariable */;
9873 val* var_recv /* var recv: RuntimeVariable */;
9874 val* var5 /* : nullable MAttribute */;
9875 val* var7 /* : nullable MAttribute */;
9876 val* var_mproperty /* var mproperty: MAttribute */;
9877 val* var8 /* : RuntimeVariable */;
9878 var_v = p0;
9879 {
9880 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrExpr> */
9881 var3 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrExpr> */
9882 if (unlikely(var3 == NULL)) {
9883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9884 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2273);
9885 fatal_exit(1);
9886 }
9887 var1 = var3;
9888 RET_LABEL2:(void)0;
9889 }
9890 }
9891 {
9892 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
9893 }
9894 var_recv = var4;
9895 {
9896 { /* Inline typing#AAttrFormExpr#mproperty (self) on <self:AAttrExpr> */
9897 var7 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrExpr> */
9898 var5 = var7;
9899 RET_LABEL6:(void)0;
9900 }
9901 }
9902 if (unlikely(var5 == NULL)) {
9903 PRINT_ERROR("Runtime error: %s", "Cast failed");
9904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3831);
9905 fatal_exit(1);
9906 }
9907 var_mproperty = var5;
9908 {
9909 var8 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(var_v, var_mproperty, var_recv);
9910 }
9911 var = var8;
9912 goto RET_LABEL;
9913 RET_LABEL:;
9914 return var;
9915 }
9916 /* method abstract_compiler#AAttrAssignExpr#expr for (self: AAttrAssignExpr, AbstractCompilerVisitor): nullable RuntimeVariable */
9917 val* nitc__abstract_compiler___AAttrAssignExpr___AExpr__expr(val* self, val* p0) {
9918 val* var /* : nullable RuntimeVariable */;
9919 val* var_v /* var v: AbstractCompilerVisitor */;
9920 val* var1 /* : AExpr */;
9921 val* var3 /* : AExpr */;
9922 val* var4 /* : RuntimeVariable */;
9923 val* var_recv /* var recv: RuntimeVariable */;
9924 val* var5 /* : AExpr */;
9925 val* var7 /* : AExpr */;
9926 val* var8 /* : RuntimeVariable */;
9927 val* var_i /* var i: RuntimeVariable */;
9928 val* var9 /* : nullable MAttribute */;
9929 val* var11 /* : nullable MAttribute */;
9930 val* var_mproperty /* var mproperty: MAttribute */;
9931 var_v = p0;
9932 {
9933 { /* Inline parser_nodes#AAttrFormExpr#n_expr (self) on <self:AAttrAssignExpr> */
9934 var3 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrAssignExpr> */
9935 if (unlikely(var3 == NULL)) {
9936 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9937 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2273);
9938 fatal_exit(1);
9939 }
9940 var1 = var3;
9941 RET_LABEL2:(void)0;
9942 }
9943 }
9944 {
9945 var4 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var1, ((val*)NULL));
9946 }
9947 var_recv = var4;
9948 {
9949 { /* Inline parser_nodes#AAssignFormExpr#n_value (self) on <self:AAttrAssignExpr> */
9950 var7 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAttrAssignExpr> */
9951 if (unlikely(var7 == NULL)) {
9952 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
9953 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1992);
9954 fatal_exit(1);
9955 }
9956 var5 = var7;
9957 RET_LABEL6:(void)0;
9958 }
9959 }
9960 {
9961 var8 = nitc___nitc__AbstractCompilerVisitor___expr(var_v, var5, ((val*)NULL));
9962 }
9963 var_i = var8;
9964 {
9965 { /* Inline typing#AAttrFormExpr#mproperty (self) on <self:AAttrAssignExpr> */
9966 var11 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrAssignExpr> */
9967 var9 = var11;
9968 RET_LABEL10:(void)0;
9969 }
9970 }
9971 if (unlikely(var9 == NULL)) {
9972 PRINT_ERROR("Runtime error: %s", "Cast failed");
9973 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 3841);
9974 fatal_exit(1);
9975 }
9976 var_mproperty = var9;
9977 {
9978 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>*/
9979 }
9980 var = var_i;
9981 goto RET_LABEL;
9982 RET_LABEL:;
9983 return var;
9984 }