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