misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__abstract_compiler.sep.2.c
1 #include "nit__abstract_compiler.sep.0.h"
2 /* method abstract_compiler#AbstractCompiler#compile_main_function for (self: AbstractCompiler) */
3 void nit___nit__AbstractCompiler___compile_main_function(val* self) {
4 val* var /* : AbstractCompilerVisitor */;
5 val* var_v /* var v: AbstractCompilerVisitor */;
6 static val* varonce;
7 val* var1 /* : String */;
8 char* var2 /* : NativeString */;
9 long var3 /* : Int */;
10 val* var4 /* : FlatString */;
11 val* var5 /* : ModelBuilder */;
12 val* var7 /* : ModelBuilder */;
13 val* var8 /* : ToolContext */;
14 val* var10 /* : ToolContext */;
15 val* var11 /* : OptionString */;
16 val* var13 /* : OptionString */;
17 val* var14 /* : nullable Object */;
18 val* var16 /* : nullable Object */;
19 val* var_ost /* var ost: nullable String */;
20 val* var17 /* : Platform */;
21 val* var19 /* : Platform */;
22 val* var_platform /* var platform: Platform */;
23 short int var20 /* : Bool */;
24 short int var21 /* : Bool */;
25 static val* varonce22;
26 val* var23 /* : String */;
27 char* var24 /* : NativeString */;
28 long var25 /* : Int */;
29 val* var26 /* : FlatString */;
30 short int var27 /* : Bool */;
31 short int var28 /* : Bool */;
32 short int var_ /* var : Bool */;
33 val* var29 /* : ModelBuilder */;
34 val* var31 /* : ModelBuilder */;
35 val* var32 /* : ToolContext */;
36 val* var34 /* : ToolContext */;
37 val* var35 /* : OptionBool */;
38 val* var37 /* : OptionBool */;
39 val* var38 /* : nullable Object */;
40 val* var40 /* : nullable Object */;
41 short int var41 /* : Bool */;
42 short int var_no_main /* var no_main: Bool */;
43 short int var42 /* : Bool */;
44 static val* varonce43;
45 val* var44 /* : String */;
46 char* var45 /* : NativeString */;
47 long var46 /* : Int */;
48 val* var47 /* : FlatString */;
49 short int var48 /* : Bool */;
50 short int var49 /* : Bool */;
51 short int var_50 /* var : Bool */;
52 static val* varonce51;
53 val* var52 /* : String */;
54 char* var53 /* : NativeString */;
55 long var54 /* : Int */;
56 val* var55 /* : FlatString */;
57 short int var56 /* : Bool */;
58 short int var57 /* : Bool */;
59 static val* varonce58;
60 val* var59 /* : String */;
61 char* var60 /* : NativeString */;
62 long var61 /* : Int */;
63 val* var62 /* : FlatString */;
64 static val* varonce63;
65 val* var64 /* : String */;
66 char* var65 /* : NativeString */;
67 long var66 /* : Int */;
68 val* var67 /* : FlatString */;
69 static val* varonce68;
70 val* var69 /* : String */;
71 char* var70 /* : NativeString */;
72 long var71 /* : Int */;
73 val* var72 /* : FlatString */;
74 short int var73 /* : Bool */;
75 short int var74 /* : Bool */;
76 static val* varonce75;
77 val* var76 /* : String */;
78 char* var77 /* : NativeString */;
79 long var78 /* : Int */;
80 val* var79 /* : FlatString */;
81 static val* varonce80;
82 val* var81 /* : String */;
83 char* var82 /* : NativeString */;
84 long var83 /* : Int */;
85 val* var84 /* : FlatString */;
86 static val* varonce85;
87 val* var86 /* : String */;
88 char* var87 /* : NativeString */;
89 long var88 /* : Int */;
90 val* var89 /* : FlatString */;
91 static val* varonce90;
92 val* var91 /* : String */;
93 char* var92 /* : NativeString */;
94 long var93 /* : Int */;
95 val* var94 /* : FlatString */;
96 val* var95 /* : ModelBuilder */;
97 val* var97 /* : ModelBuilder */;
98 val* var98 /* : ToolContext */;
99 val* var100 /* : ToolContext */;
100 val* var101 /* : OptionBool */;
101 val* var103 /* : OptionBool */;
102 val* var104 /* : nullable Object */;
103 val* var106 /* : nullable Object */;
104 short int var107 /* : Bool */;
105 val* var108 /* : Array[String] */;
106 val* var110 /* : Array[String] */;
107 val* var_111 /* var : Array[String] */;
108 val* var112 /* : ArrayIterator[nullable Object] */;
109 val* var_113 /* var : ArrayIterator[String] */;
110 short int var114 /* : Bool */;
111 val* var115 /* : nullable Object */;
112 val* var_tag /* var tag: String */;
113 static val* varonce116;
114 val* var117 /* : String */;
115 char* var118 /* : NativeString */;
116 long var119 /* : Int */;
117 val* var120 /* : FlatString */;
118 static val* varonce121;
119 val* var122 /* : String */;
120 char* var123 /* : NativeString */;
121 long var124 /* : Int */;
122 val* var125 /* : FlatString */;
123 val* var126 /* : Array[Object] */;
124 long var127 /* : Int */;
125 val* var128 /* : NativeArray[Object] */;
126 val* var129 /* : String */;
127 static val* varonce130;
128 val* var131 /* : String */;
129 char* var132 /* : NativeString */;
130 long var133 /* : Int */;
131 val* var134 /* : FlatString */;
132 static val* varonce135;
133 val* var136 /* : String */;
134 char* var137 /* : NativeString */;
135 long var138 /* : Int */;
136 val* var139 /* : FlatString */;
137 val* var140 /* : Array[Object] */;
138 long var141 /* : Int */;
139 val* var142 /* : NativeArray[Object] */;
140 val* var143 /* : String */;
141 static val* varonce144;
142 val* var145 /* : String */;
143 char* var146 /* : NativeString */;
144 long var147 /* : Int */;
145 val* var148 /* : FlatString */;
146 static val* varonce149;
147 val* var150 /* : String */;
148 char* var151 /* : NativeString */;
149 long var152 /* : Int */;
150 val* var153 /* : FlatString */;
151 val* var154 /* : Array[Object] */;
152 long var155 /* : Int */;
153 val* var156 /* : NativeArray[Object] */;
154 val* var157 /* : String */;
155 val* var158 /* : AbstractCompiler */;
156 val* var160 /* : AbstractCompiler */;
157 val* var161 /* : CodeWriter */;
158 val* var163 /* : CodeWriter */;
159 static val* varonce164;
160 val* var165 /* : String */;
161 char* var166 /* : NativeString */;
162 long var167 /* : Int */;
163 val* var168 /* : FlatString */;
164 static val* varonce169;
165 val* var170 /* : String */;
166 char* var171 /* : NativeString */;
167 long var172 /* : Int */;
168 val* var173 /* : FlatString */;
169 val* var174 /* : Array[Object] */;
170 long var175 /* : Int */;
171 val* var176 /* : NativeArray[Object] */;
172 val* var177 /* : String */;
173 val* var178 /* : AbstractCompiler */;
174 val* var180 /* : AbstractCompiler */;
175 val* var181 /* : CodeWriter */;
176 val* var183 /* : CodeWriter */;
177 static val* varonce184;
178 val* var185 /* : String */;
179 char* var186 /* : NativeString */;
180 long var187 /* : Int */;
181 val* var188 /* : FlatString */;
182 static val* varonce189;
183 val* var190 /* : String */;
184 char* var191 /* : NativeString */;
185 long var192 /* : Int */;
186 val* var193 /* : FlatString */;
187 val* var194 /* : Array[Object] */;
188 long var195 /* : Int */;
189 val* var196 /* : NativeArray[Object] */;
190 val* var197 /* : String */;
191 val* var198 /* : AbstractCompiler */;
192 val* var200 /* : AbstractCompiler */;
193 val* var201 /* : CodeWriter */;
194 val* var203 /* : CodeWriter */;
195 static val* varonce204;
196 val* var205 /* : String */;
197 char* var206 /* : NativeString */;
198 long var207 /* : Int */;
199 val* var208 /* : FlatString */;
200 static val* varonce209;
201 val* var210 /* : String */;
202 char* var211 /* : NativeString */;
203 long var212 /* : Int */;
204 val* var213 /* : FlatString */;
205 val* var214 /* : Array[Object] */;
206 long var215 /* : Int */;
207 val* var216 /* : NativeArray[Object] */;
208 val* var217 /* : String */;
209 val* var219 /* : ModelBuilder */;
210 val* var221 /* : ModelBuilder */;
211 val* var222 /* : ToolContext */;
212 val* var224 /* : ToolContext */;
213 val* var225 /* : OptionBool */;
214 val* var227 /* : OptionBool */;
215 val* var228 /* : nullable Object */;
216 val* var230 /* : nullable Object */;
217 short int var231 /* : Bool */;
218 static val* varonce232;
219 val* var233 /* : String */;
220 char* var234 /* : NativeString */;
221 long var235 /* : Int */;
222 val* var236 /* : FlatString */;
223 static val* varonce237;
224 val* var238 /* : String */;
225 char* var239 /* : NativeString */;
226 long var240 /* : Int */;
227 val* var241 /* : FlatString */;
228 static val* varonce242;
229 val* var243 /* : String */;
230 char* var244 /* : NativeString */;
231 long var245 /* : Int */;
232 val* var246 /* : FlatString */;
233 val* var247 /* : AbstractCompiler */;
234 val* var249 /* : AbstractCompiler */;
235 val* var250 /* : CodeWriter */;
236 val* var252 /* : CodeWriter */;
237 static val* varonce253;
238 val* var254 /* : String */;
239 char* var255 /* : NativeString */;
240 long var256 /* : Int */;
241 val* var257 /* : FlatString */;
242 val* var258 /* : AbstractCompiler */;
243 val* var260 /* : AbstractCompiler */;
244 val* var261 /* : CodeWriter */;
245 val* var263 /* : CodeWriter */;
246 static val* varonce264;
247 val* var265 /* : String */;
248 char* var266 /* : NativeString */;
249 long var267 /* : Int */;
250 val* var268 /* : FlatString */;
251 val* var269 /* : AbstractCompiler */;
252 val* var271 /* : AbstractCompiler */;
253 val* var272 /* : CodeWriter */;
254 val* var274 /* : CodeWriter */;
255 static val* varonce275;
256 val* var276 /* : String */;
257 char* var277 /* : NativeString */;
258 long var278 /* : Int */;
259 val* var279 /* : FlatString */;
260 val* var280 /* : ModelBuilder */;
261 val* var282 /* : ModelBuilder */;
262 val* var283 /* : ToolContext */;
263 val* var285 /* : ToolContext */;
264 val* var286 /* : OptionBool */;
265 val* var288 /* : OptionBool */;
266 val* var289 /* : nullable Object */;
267 val* var291 /* : nullable Object */;
268 short int var292 /* : Bool */;
269 static val* varonce293;
270 val* var294 /* : String */;
271 char* var295 /* : NativeString */;
272 long var296 /* : Int */;
273 val* var297 /* : FlatString */;
274 static val* varonce298;
275 val* var299 /* : String */;
276 char* var300 /* : NativeString */;
277 long var301 /* : Int */;
278 val* var302 /* : FlatString */;
279 val* var303 /* : AbstractCompiler */;
280 val* var305 /* : AbstractCompiler */;
281 val* var306 /* : CodeWriter */;
282 val* var308 /* : CodeWriter */;
283 static val* varonce309;
284 val* var310 /* : String */;
285 char* var311 /* : NativeString */;
286 long var312 /* : Int */;
287 val* var313 /* : FlatString */;
288 val* var314 /* : AbstractCompiler */;
289 val* var316 /* : AbstractCompiler */;
290 val* var317 /* : CodeWriter */;
291 val* var319 /* : CodeWriter */;
292 static val* varonce320;
293 val* var321 /* : String */;
294 char* var322 /* : NativeString */;
295 long var323 /* : Int */;
296 val* var324 /* : FlatString */;
297 static val* varonce325;
298 val* var326 /* : String */;
299 char* var327 /* : NativeString */;
300 long var328 /* : Int */;
301 val* var329 /* : FlatString */;
302 static val* varonce330;
303 val* var331 /* : String */;
304 char* var332 /* : NativeString */;
305 long var333 /* : Int */;
306 val* var334 /* : FlatString */;
307 static val* varonce335;
308 val* var336 /* : String */;
309 char* var337 /* : NativeString */;
310 long var338 /* : Int */;
311 val* var339 /* : FlatString */;
312 static val* varonce340;
313 val* var341 /* : String */;
314 char* var342 /* : NativeString */;
315 long var343 /* : Int */;
316 val* var344 /* : FlatString */;
317 static val* varonce345;
318 val* var346 /* : String */;
319 char* var347 /* : NativeString */;
320 long var348 /* : Int */;
321 val* var349 /* : FlatString */;
322 short int var350 /* : Bool */;
323 static val* varonce351;
324 val* var352 /* : String */;
325 char* var353 /* : NativeString */;
326 long var354 /* : Int */;
327 val* var355 /* : FlatString */;
328 short int var356 /* : Bool */;
329 short int var357 /* : Bool */;
330 short int var_358 /* var : Bool */;
331 static val* varonce359;
332 val* var360 /* : String */;
333 char* var361 /* : NativeString */;
334 long var362 /* : Int */;
335 val* var363 /* : FlatString */;
336 short int var364 /* : Bool */;
337 short int var365 /* : Bool */;
338 static val* varonce366;
339 val* var367 /* : String */;
340 char* var368 /* : NativeString */;
341 long var369 /* : Int */;
342 val* var370 /* : FlatString */;
343 static val* varonce371;
344 val* var372 /* : String */;
345 char* var373 /* : NativeString */;
346 long var374 /* : Int */;
347 val* var375 /* : FlatString */;
348 static val* varonce376;
349 val* var377 /* : String */;
350 char* var378 /* : NativeString */;
351 long var379 /* : Int */;
352 val* var380 /* : FlatString */;
353 static val* varonce381;
354 val* var382 /* : String */;
355 char* var383 /* : NativeString */;
356 long var384 /* : Int */;
357 val* var385 /* : FlatString */;
358 static val* varonce386;
359 val* var387 /* : String */;
360 char* var388 /* : NativeString */;
361 long var389 /* : Int */;
362 val* var390 /* : FlatString */;
363 static val* varonce391;
364 val* var392 /* : String */;
365 char* var393 /* : NativeString */;
366 long var394 /* : Int */;
367 val* var395 /* : FlatString */;
368 static val* varonce396;
369 val* var397 /* : String */;
370 char* var398 /* : NativeString */;
371 long var399 /* : Int */;
372 val* var400 /* : FlatString */;
373 static val* varonce401;
374 val* var402 /* : String */;
375 char* var403 /* : NativeString */;
376 long var404 /* : Int */;
377 val* var405 /* : FlatString */;
378 static val* varonce406;
379 val* var407 /* : String */;
380 char* var408 /* : NativeString */;
381 long var409 /* : Int */;
382 val* var410 /* : FlatString */;
383 static val* varonce411;
384 val* var412 /* : String */;
385 char* var413 /* : NativeString */;
386 long var414 /* : Int */;
387 val* var415 /* : FlatString */;
388 static val* varonce416;
389 val* var417 /* : String */;
390 char* var418 /* : NativeString */;
391 long var419 /* : Int */;
392 val* var420 /* : FlatString */;
393 static val* varonce421;
394 val* var422 /* : String */;
395 char* var423 /* : NativeString */;
396 long var424 /* : Int */;
397 val* var425 /* : FlatString */;
398 static val* varonce426;
399 val* var427 /* : String */;
400 char* var428 /* : NativeString */;
401 long var429 /* : Int */;
402 val* var430 /* : FlatString */;
403 static val* varonce431;
404 val* var432 /* : String */;
405 char* var433 /* : NativeString */;
406 long var434 /* : Int */;
407 val* var435 /* : FlatString */;
408 short int var436 /* : Bool */;
409 short int var437 /* : Bool */;
410 static val* varonce438;
411 val* var439 /* : String */;
412 char* var440 /* : NativeString */;
413 long var441 /* : Int */;
414 val* var442 /* : FlatString */;
415 static val* varonce443;
416 val* var444 /* : String */;
417 char* var445 /* : NativeString */;
418 long var446 /* : Int */;
419 val* var447 /* : FlatString */;
420 static val* varonce448;
421 val* var449 /* : String */;
422 char* var450 /* : NativeString */;
423 long var451 /* : Int */;
424 val* var452 /* : FlatString */;
425 static val* varonce453;
426 val* var454 /* : String */;
427 char* var455 /* : NativeString */;
428 long var456 /* : Int */;
429 val* var457 /* : FlatString */;
430 static val* varonce458;
431 val* var459 /* : String */;
432 char* var460 /* : NativeString */;
433 long var461 /* : Int */;
434 val* var462 /* : FlatString */;
435 static val* varonce463;
436 val* var464 /* : String */;
437 char* var465 /* : NativeString */;
438 long var466 /* : Int */;
439 val* var467 /* : FlatString */;
440 static val* varonce468;
441 val* var469 /* : String */;
442 char* var470 /* : NativeString */;
443 long var471 /* : Int */;
444 val* var472 /* : FlatString */;
445 static val* varonce473;
446 val* var474 /* : String */;
447 char* var475 /* : NativeString */;
448 long var476 /* : Int */;
449 val* var477 /* : FlatString */;
450 static val* varonce478;
451 val* var479 /* : String */;
452 char* var480 /* : NativeString */;
453 long var481 /* : Int */;
454 val* var482 /* : FlatString */;
455 static val* varonce483;
456 val* var484 /* : String */;
457 char* var485 /* : NativeString */;
458 long var486 /* : Int */;
459 val* var487 /* : FlatString */;
460 static val* varonce488;
461 val* var489 /* : String */;
462 char* var490 /* : NativeString */;
463 long var491 /* : Int */;
464 val* var492 /* : FlatString */;
465 static val* varonce493;
466 val* var494 /* : String */;
467 char* var495 /* : NativeString */;
468 long var496 /* : Int */;
469 val* var497 /* : FlatString */;
470 static val* varonce498;
471 val* var499 /* : String */;
472 char* var500 /* : NativeString */;
473 long var501 /* : Int */;
474 val* var502 /* : FlatString */;
475 static val* varonce503;
476 val* var504 /* : String */;
477 char* var505 /* : NativeString */;
478 long var506 /* : Int */;
479 val* var507 /* : FlatString */;
480 static val* varonce508;
481 val* var509 /* : String */;
482 char* var510 /* : NativeString */;
483 long var511 /* : Int */;
484 val* var512 /* : FlatString */;
485 static val* varonce513;
486 val* var514 /* : String */;
487 char* var515 /* : NativeString */;
488 long var516 /* : Int */;
489 val* var517 /* : FlatString */;
490 static val* varonce518;
491 val* var519 /* : String */;
492 char* var520 /* : NativeString */;
493 long var521 /* : Int */;
494 val* var522 /* : FlatString */;
495 static val* varonce523;
496 val* var524 /* : String */;
497 char* var525 /* : NativeString */;
498 long var526 /* : Int */;
499 val* var527 /* : FlatString */;
500 static val* varonce528;
501 val* var529 /* : String */;
502 char* var530 /* : NativeString */;
503 long var531 /* : Int */;
504 val* var532 /* : FlatString */;
505 static val* varonce533;
506 val* var534 /* : String */;
507 char* var535 /* : NativeString */;
508 long var536 /* : Int */;
509 val* var537 /* : FlatString */;
510 static val* varonce538;
511 val* var539 /* : String */;
512 char* var540 /* : NativeString */;
513 long var541 /* : Int */;
514 val* var542 /* : FlatString */;
515 static val* varonce543;
516 val* var544 /* : String */;
517 char* var545 /* : NativeString */;
518 long var546 /* : Int */;
519 val* var547 /* : FlatString */;
520 static val* varonce548;
521 val* var549 /* : String */;
522 char* var550 /* : NativeString */;
523 long var551 /* : Int */;
524 val* var552 /* : FlatString */;
525 static val* varonce553;
526 val* var554 /* : String */;
527 char* var555 /* : NativeString */;
528 long var556 /* : Int */;
529 val* var557 /* : FlatString */;
530 static val* varonce558;
531 val* var559 /* : String */;
532 char* var560 /* : NativeString */;
533 long var561 /* : Int */;
534 val* var562 /* : FlatString */;
535 val* var563 /* : MModule */;
536 val* var565 /* : MModule */;
537 val* var566 /* : nullable MClassType */;
538 val* var_main_type /* var main_type: nullable MClassType */;
539 val* var567 /* : null */;
540 short int var568 /* : Bool */;
541 short int var569 /* : Bool */;
542 val* var_other /* var other: nullable Object */;
543 short int var571 /* : Bool */;
544 short int var572 /* : Bool */;
545 val* var573 /* : AbstractCompiler */;
546 val* var575 /* : AbstractCompiler */;
547 val* var576 /* : MModule */;
548 val* var578 /* : MModule */;
549 val* var_mainmodule /* var mainmodule: MModule */;
550 val* var579 /* : RuntimeVariable */;
551 val* var_glob_sys /* var glob_sys: RuntimeVariable */;
552 static val* varonce580;
553 val* var581 /* : String */;
554 char* var582 /* : NativeString */;
555 long var583 /* : Int */;
556 val* var584 /* : FlatString */;
557 static val* varonce585;
558 val* var586 /* : String */;
559 char* var587 /* : NativeString */;
560 long var588 /* : Int */;
561 val* var589 /* : FlatString */;
562 val* var590 /* : Array[Object] */;
563 long var591 /* : Int */;
564 val* var592 /* : NativeArray[Object] */;
565 val* var593 /* : String */;
566 static val* varonce594;
567 val* var595 /* : String */;
568 char* var596 /* : NativeString */;
569 long var597 /* : Int */;
570 val* var598 /* : FlatString */;
571 val* var599 /* : MClass */;
572 val* var601 /* : MClass */;
573 val* var602 /* : nullable MMethod */;
574 val* var_main_init /* var main_init: nullable MMethod */;
575 val* var603 /* : null */;
576 short int var604 /* : Bool */;
577 short int var605 /* : Bool */;
578 short int var607 /* : Bool */;
579 short int var608 /* : Bool */;
580 val* var609 /* : Array[RuntimeVariable] */;
581 long var610 /* : Int */;
582 val* var_611 /* var : Array[RuntimeVariable] */;
583 val* var612 /* : nullable RuntimeVariable */;
584 val* var613 /* : nullable MMethod */;
585 static val* varonce614;
586 val* var615 /* : String */;
587 char* var616 /* : NativeString */;
588 long var617 /* : Int */;
589 val* var618 /* : FlatString */;
590 val* var619 /* : MClass */;
591 val* var621 /* : MClass */;
592 val* var622 /* : nullable MMethod */;
593 static val* varonce623;
594 val* var624 /* : String */;
595 char* var625 /* : NativeString */;
596 long var626 /* : Int */;
597 val* var627 /* : FlatString */;
598 val* var628 /* : MClass */;
599 val* var630 /* : MClass */;
600 val* var631 /* : nullable MMethod */;
601 val* var_main_method /* var main_method: nullable MMethod */;
602 val* var632 /* : null */;
603 short int var633 /* : Bool */;
604 short int var634 /* : Bool */;
605 short int var636 /* : Bool */;
606 short int var637 /* : Bool */;
607 val* var638 /* : Array[RuntimeVariable] */;
608 long var639 /* : Int */;
609 val* var_640 /* var : Array[RuntimeVariable] */;
610 val* var641 /* : nullable RuntimeVariable */;
611 val* var642 /* : ModelBuilder */;
612 val* var644 /* : ModelBuilder */;
613 val* var645 /* : ToolContext */;
614 val* var647 /* : ToolContext */;
615 val* var648 /* : OptionBool */;
616 val* var650 /* : OptionBool */;
617 val* var651 /* : nullable Object */;
618 val* var653 /* : nullable Object */;
619 short int var654 /* : Bool */;
620 static val* varonce655;
621 val* var656 /* : String */;
622 char* var657 /* : NativeString */;
623 long var658 /* : Int */;
624 val* var659 /* : FlatString */;
625 static val* varonce660;
626 val* var661 /* : String */;
627 char* var662 /* : NativeString */;
628 long var663 /* : Int */;
629 val* var664 /* : FlatString */;
630 static val* varonce665;
631 val* var666 /* : String */;
632 char* var667 /* : NativeString */;
633 long var668 /* : Int */;
634 val* var669 /* : FlatString */;
635 static val* varonce670;
636 val* var671 /* : String */;
637 char* var672 /* : NativeString */;
638 long var673 /* : Int */;
639 val* var674 /* : FlatString */;
640 val* var675 /* : Array[String] */;
641 val* var677 /* : Array[String] */;
642 val* var_678 /* var : Array[String] */;
643 val* var679 /* : ArrayIterator[nullable Object] */;
644 val* var_680 /* var : ArrayIterator[String] */;
645 short int var681 /* : Bool */;
646 val* var682 /* : nullable Object */;
647 val* var_tag683 /* var tag: String */;
648 static val* varonce684;
649 val* var685 /* : String */;
650 char* var686 /* : NativeString */;
651 long var687 /* : Int */;
652 val* var688 /* : FlatString */;
653 static val* varonce689;
654 val* var690 /* : String */;
655 char* var691 /* : NativeString */;
656 long var692 /* : Int */;
657 val* var693 /* : FlatString */;
658 val* var694 /* : Array[Object] */;
659 long var695 /* : Int */;
660 val* var696 /* : NativeArray[Object] */;
661 val* var697 /* : String */;
662 static val* varonce698;
663 val* var699 /* : String */;
664 char* var700 /* : NativeString */;
665 long var701 /* : Int */;
666 val* var702 /* : FlatString */;
667 static val* varonce703;
668 val* var704 /* : String */;
669 char* var705 /* : NativeString */;
670 long var706 /* : Int */;
671 val* var707 /* : FlatString */;
672 static val* varonce708;
673 val* var709 /* : String */;
674 char* var710 /* : NativeString */;
675 long var711 /* : Int */;
676 val* var712 /* : FlatString */;
677 static val* varonce713;
678 val* var714 /* : String */;
679 char* var715 /* : NativeString */;
680 long var716 /* : Int */;
681 val* var717 /* : FlatString */;
682 static val* varonce718;
683 val* var719 /* : String */;
684 char* var720 /* : NativeString */;
685 long var721 /* : Int */;
686 val* var722 /* : FlatString */;
687 val* var723 /* : Array[Object] */;
688 long var724 /* : Int */;
689 val* var725 /* : NativeArray[Object] */;
690 val* var726 /* : String */;
691 static val* varonce727;
692 val* var728 /* : String */;
693 char* var729 /* : NativeString */;
694 long var730 /* : Int */;
695 val* var731 /* : FlatString */;
696 static val* varonce732;
697 val* var733 /* : String */;
698 char* var734 /* : NativeString */;
699 long var735 /* : Int */;
700 val* var736 /* : FlatString */;
701 val* var737 /* : Array[Object] */;
702 long var738 /* : Int */;
703 val* var739 /* : NativeArray[Object] */;
704 val* var740 /* : String */;
705 static val* varonce741;
706 val* var742 /* : String */;
707 char* var743 /* : NativeString */;
708 long var744 /* : Int */;
709 val* var745 /* : FlatString */;
710 static val* varonce746;
711 val* var747 /* : String */;
712 char* var748 /* : NativeString */;
713 long var749 /* : Int */;
714 val* var750 /* : FlatString */;
715 val* var751 /* : Array[Object] */;
716 long var752 /* : Int */;
717 val* var753 /* : NativeArray[Object] */;
718 val* var754 /* : String */;
719 static val* varonce755;
720 val* var756 /* : String */;
721 char* var757 /* : NativeString */;
722 long var758 /* : Int */;
723 val* var759 /* : FlatString */;
724 static val* varonce760;
725 val* var761 /* : String */;
726 char* var762 /* : NativeString */;
727 long var763 /* : Int */;
728 val* var764 /* : FlatString */;
729 val* var765 /* : Array[Object] */;
730 long var766 /* : Int */;
731 val* var767 /* : NativeArray[Object] */;
732 val* var768 /* : String */;
733 static val* varonce769;
734 val* var770 /* : String */;
735 char* var771 /* : NativeString */;
736 long var772 /* : Int */;
737 val* var773 /* : FlatString */;
738 static val* varonce774;
739 val* var775 /* : String */;
740 char* var776 /* : NativeString */;
741 long var777 /* : Int */;
742 val* var778 /* : FlatString */;
743 val* var779 /* : Array[Object] */;
744 long var780 /* : Int */;
745 val* var781 /* : NativeArray[Object] */;
746 val* var782 /* : String */;
747 static val* varonce785;
748 val* var786 /* : String */;
749 char* var787 /* : NativeString */;
750 long var788 /* : Int */;
751 val* var789 /* : FlatString */;
752 static val* varonce790;
753 val* var791 /* : String */;
754 char* var792 /* : NativeString */;
755 long var793 /* : Int */;
756 val* var794 /* : FlatString */;
757 val* var795 /* : Array[String] */;
758 val* var797 /* : Array[String] */;
759 val* var798 /* : Array[nullable Object] */;
760 val* var_tags /* var tags: Array[String] */;
761 static val* varonce799;
762 val* var800 /* : String */;
763 char* var801 /* : NativeString */;
764 long var802 /* : Int */;
765 val* var803 /* : FlatString */;
766 val* var_804 /* var : Array[String] */;
767 val* var805 /* : ArrayIterator[nullable Object] */;
768 val* var_806 /* var : ArrayIterator[String] */;
769 short int var807 /* : Bool */;
770 val* var808 /* : nullable Object */;
771 val* var_tag809 /* var tag: String */;
772 static val* varonce810;
773 val* var811 /* : String */;
774 char* var812 /* : NativeString */;
775 long var813 /* : Int */;
776 val* var814 /* : FlatString */;
777 static val* varonce815;
778 val* var816 /* : String */;
779 char* var817 /* : NativeString */;
780 long var818 /* : Int */;
781 val* var819 /* : FlatString */;
782 val* var820 /* : Array[Object] */;
783 long var821 /* : Int */;
784 val* var822 /* : NativeArray[Object] */;
785 val* var823 /* : String */;
786 static val* varonce824;
787 val* var825 /* : String */;
788 char* var826 /* : NativeString */;
789 long var827 /* : Int */;
790 val* var828 /* : FlatString */;
791 static val* varonce829;
792 val* var830 /* : String */;
793 char* var831 /* : NativeString */;
794 long var832 /* : Int */;
795 val* var833 /* : FlatString */;
796 static val* varonce834;
797 val* var835 /* : String */;
798 char* var836 /* : NativeString */;
799 long var837 /* : Int */;
800 val* var838 /* : FlatString */;
801 val* var839 /* : Array[Object] */;
802 long var840 /* : Int */;
803 val* var841 /* : NativeArray[Object] */;
804 val* var842 /* : String */;
805 static val* varonce843;
806 val* var844 /* : String */;
807 char* var845 /* : NativeString */;
808 long var846 /* : Int */;
809 val* var847 /* : FlatString */;
810 static val* varonce848;
811 val* var849 /* : String */;
812 char* var850 /* : NativeString */;
813 long var851 /* : Int */;
814 val* var852 /* : FlatString */;
815 static val* varonce853;
816 val* var854 /* : String */;
817 char* var855 /* : NativeString */;
818 long var856 /* : Int */;
819 val* var857 /* : FlatString */;
820 val* var858 /* : Array[Object] */;
821 long var859 /* : Int */;
822 val* var860 /* : NativeArray[Object] */;
823 val* var861 /* : String */;
824 static val* varonce862;
825 val* var863 /* : String */;
826 char* var864 /* : NativeString */;
827 long var865 /* : Int */;
828 val* var866 /* : FlatString */;
829 static val* varonce867;
830 val* var868 /* : String */;
831 char* var869 /* : NativeString */;
832 long var870 /* : Int */;
833 val* var871 /* : FlatString */;
834 static val* varonce872;
835 val* var873 /* : String */;
836 char* var874 /* : NativeString */;
837 long var875 /* : Int */;
838 val* var876 /* : FlatString */;
839 val* var877 /* : Array[Object] */;
840 long var878 /* : Int */;
841 val* var879 /* : NativeArray[Object] */;
842 val* var880 /* : String */;
843 static val* varonce881;
844 val* var882 /* : String */;
845 char* var883 /* : NativeString */;
846 long var884 /* : Int */;
847 val* var885 /* : FlatString */;
848 static val* varonce886;
849 val* var887 /* : String */;
850 char* var888 /* : NativeString */;
851 long var889 /* : Int */;
852 val* var890 /* : FlatString */;
853 static val* varonce891;
854 val* var892 /* : String */;
855 char* var893 /* : NativeString */;
856 long var894 /* : Int */;
857 val* var895 /* : FlatString */;
858 val* var896 /* : Array[Object] */;
859 long var897 /* : Int */;
860 val* var898 /* : NativeArray[Object] */;
861 val* var899 /* : String */;
862 val* var902 /* : ModelBuilder */;
863 val* var904 /* : ModelBuilder */;
864 val* var905 /* : ToolContext */;
865 val* var907 /* : ToolContext */;
866 val* var908 /* : OptionBool */;
867 val* var910 /* : OptionBool */;
868 val* var911 /* : nullable Object */;
869 val* var913 /* : nullable Object */;
870 short int var914 /* : Bool */;
871 static val* varonce915;
872 val* var916 /* : String */;
873 char* var917 /* : NativeString */;
874 long var918 /* : Int */;
875 val* var919 /* : FlatString */;
876 static val* varonce920;
877 val* var921 /* : String */;
878 char* var922 /* : NativeString */;
879 long var923 /* : Int */;
880 val* var924 /* : FlatString */;
881 static val* varonce925;
882 val* var926 /* : String */;
883 char* var927 /* : NativeString */;
884 long var928 /* : Int */;
885 val* var929 /* : FlatString */;
886 static val* varonce930;
887 val* var931 /* : String */;
888 char* var932 /* : NativeString */;
889 long var933 /* : Int */;
890 val* var934 /* : FlatString */;
891 static val* varonce935;
892 val* var936 /* : String */;
893 char* var937 /* : NativeString */;
894 long var938 /* : Int */;
895 val* var939 /* : FlatString */;
896 static val* varonce940;
897 val* var941 /* : String */;
898 char* var942 /* : NativeString */;
899 long var943 /* : Int */;
900 val* var944 /* : FlatString */;
901 val* var945 /* : ModelBuilder */;
902 val* var947 /* : ModelBuilder */;
903 val* var948 /* : ToolContext */;
904 val* var950 /* : ToolContext */;
905 val* var951 /* : OptionBool */;
906 val* var953 /* : OptionBool */;
907 val* var954 /* : nullable Object */;
908 val* var956 /* : nullable Object */;
909 short int var957 /* : Bool */;
910 static val* varonce958;
911 val* var959 /* : String */;
912 char* var960 /* : NativeString */;
913 long var961 /* : Int */;
914 val* var962 /* : FlatString */;
915 static val* varonce963;
916 val* var964 /* : String */;
917 char* var965 /* : NativeString */;
918 long var966 /* : Int */;
919 val* var967 /* : FlatString */;
920 static val* varonce968;
921 val* var969 /* : String */;
922 char* var970 /* : NativeString */;
923 long var971 /* : Int */;
924 val* var972 /* : FlatString */;
925 static val* varonce973;
926 val* var974 /* : String */;
927 char* var975 /* : NativeString */;
928 long var976 /* : Int */;
929 val* var977 /* : FlatString */;
930 val* var978 /* : MModule */;
931 val* var980 /* : MModule */;
932 val* var981 /* : POSetElement[MModule] */;
933 val* var983 /* : POSetElement[MModule] */;
934 val* var984 /* : Collection[nullable Object] */;
935 val* var_985 /* var : Collection[MModule] */;
936 val* var986 /* : Iterator[nullable Object] */;
937 val* var_987 /* var : Iterator[MModule] */;
938 short int var988 /* : Bool */;
939 val* var989 /* : nullable Object */;
940 val* var_m /* var m: MModule */;
941 static val* varonce990;
942 val* var991 /* : String */;
943 char* var992 /* : NativeString */;
944 long var993 /* : Int */;
945 val* var994 /* : FlatString */;
946 val* var995 /* : String */;
947 val* var996 /* : String */;
948 val* var_f /* var f: String */;
949 static val* varonce997;
950 val* var998 /* : String */;
951 char* var999 /* : NativeString */;
952 long var1000 /* : Int */;
953 val* var1001 /* : FlatString */;
954 static val* varonce1002;
955 val* var1003 /* : String */;
956 char* var1004 /* : NativeString */;
957 long var1005 /* : Int */;
958 val* var1006 /* : FlatString */;
959 val* var1007 /* : Location */;
960 val* var1009 /* : Location */;
961 val* var1010 /* : nullable SourceFile */;
962 val* var1012 /* : nullable SourceFile */;
963 val* var1013 /* : String */;
964 val* var1015 /* : String */;
965 val* var1016 /* : String */;
966 static val* varonce1017;
967 val* var1018 /* : String */;
968 char* var1019 /* : NativeString */;
969 long var1020 /* : Int */;
970 val* var1021 /* : FlatString */;
971 val* var1022 /* : Array[Object] */;
972 long var1023 /* : Int */;
973 val* var1024 /* : NativeArray[Object] */;
974 val* var1025 /* : String */;
975 static val* varonce1026;
976 val* var1027 /* : String */;
977 char* var1028 /* : NativeString */;
978 long var1029 /* : Int */;
979 val* var1030 /* : FlatString */;
980 static val* varonce1031;
981 val* var1032 /* : String */;
982 char* var1033 /* : NativeString */;
983 long var1034 /* : Int */;
984 val* var1035 /* : FlatString */;
985 val* var1036 /* : Array[Object] */;
986 long var1037 /* : Int */;
987 val* var1038 /* : NativeArray[Object] */;
988 val* var1039 /* : String */;
989 {
990 var = ((val* (*)(val* self))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on <self:AbstractCompiler>*/;
991 }
992 var_v = var;
993 if (varonce) {
994 var1 = varonce;
995 } else {
996 var2 = "#include <signal.h>";
997 var3 = 19;
998 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
999 var1 = var4;
1000 varonce = var1;
1001 }
1002 {
1003 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var1); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1004 }
1005 {
1006 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
1007 var7 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
1008 if (unlikely(var7 == NULL)) {
1009 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1010 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
1011 show_backtrace(1);
1012 }
1013 var5 = var7;
1014 RET_LABEL6:(void)0;
1015 }
1016 }
1017 {
1018 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var5) on <var5:ModelBuilder> */
1019 var10 = var5->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var5:ModelBuilder> */
1020 if (unlikely(var10 == NULL)) {
1021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1022 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1023 show_backtrace(1);
1024 }
1025 var8 = var10;
1026 RET_LABEL9:(void)0;
1027 }
1028 }
1029 {
1030 { /* Inline abstract_compiler#ToolContext#opt_stacktrace (var8) on <var8:ToolContext> */
1031 var13 = var8->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_stacktrace].val; /* _opt_stacktrace on <var8:ToolContext> */
1032 if (unlikely(var13 == NULL)) {
1033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_stacktrace");
1034 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 65);
1035 show_backtrace(1);
1036 }
1037 var11 = var13;
1038 RET_LABEL12:(void)0;
1039 }
1040 }
1041 {
1042 { /* Inline opts#Option#value (var11) on <var11:OptionString> */
1043 var16 = var11->attrs[COLOR_opts__Option___value].val; /* _value on <var11:OptionString> */
1044 var14 = var16;
1045 RET_LABEL15:(void)0;
1046 }
1047 }
1048 var_ost = var14;
1049 {
1050 { /* Inline abstract_compiler#AbstractCompiler#target_platform (self) on <self:AbstractCompiler> */
1051 var19 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___target_platform].val; /* _target_platform on <self:AbstractCompiler> */
1052 if (unlikely(var19 == NULL)) {
1053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _target_platform");
1054 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 487);
1055 show_backtrace(1);
1056 }
1057 var17 = var19;
1058 RET_LABEL18:(void)0;
1059 }
1060 }
1061 var_platform = var17;
1062 {
1063 var20 = nit___nit__Platform___supports_libunwind(var_platform);
1064 }
1065 var21 = !var20;
1066 if (var21){
1067 if (varonce22) {
1068 var23 = varonce22;
1069 } else {
1070 var24 = "none";
1071 var25 = 4;
1072 var26 = standard___standard__NativeString___to_s_with_length(var24, var25);
1073 var23 = var26;
1074 varonce22 = var23;
1075 }
1076 var_ost = var23;
1077 } else {
1078 }
1079 {
1080 var28 = nit___nit__Platform___no_main(var_platform);
1081 }
1082 var_ = var28;
1083 if (var28){
1084 var27 = var_;
1085 } else {
1086 {
1087 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
1088 var31 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
1089 if (unlikely(var31 == NULL)) {
1090 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1091 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
1092 show_backtrace(1);
1093 }
1094 var29 = var31;
1095 RET_LABEL30:(void)0;
1096 }
1097 }
1098 {
1099 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var29) on <var29:ModelBuilder> */
1100 var34 = var29->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var29:ModelBuilder> */
1101 if (unlikely(var34 == NULL)) {
1102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1103 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1104 show_backtrace(1);
1105 }
1106 var32 = var34;
1107 RET_LABEL33:(void)0;
1108 }
1109 }
1110 {
1111 { /* Inline abstract_compiler#ToolContext#opt_no_main (var32) on <var32:ToolContext> */
1112 var37 = var32->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_main].val; /* _opt_no_main on <var32:ToolContext> */
1113 if (unlikely(var37 == NULL)) {
1114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_main");
1115 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 35);
1116 show_backtrace(1);
1117 }
1118 var35 = var37;
1119 RET_LABEL36:(void)0;
1120 }
1121 }
1122 {
1123 { /* Inline opts#Option#value (var35) on <var35:OptionBool> */
1124 var40 = var35->attrs[COLOR_opts__Option___value].val; /* _value on <var35:OptionBool> */
1125 var38 = var40;
1126 RET_LABEL39:(void)0;
1127 }
1128 }
1129 var41 = ((struct instance_standard__Bool*)var38)->value; /* autounbox from nullable Object to Bool */;
1130 var27 = var41;
1131 }
1132 var_no_main = var27;
1133 if (varonce43) {
1134 var44 = varonce43;
1135 } else {
1136 var45 = "nitstack";
1137 var46 = 8;
1138 var47 = standard___standard__NativeString___to_s_with_length(var45, var46);
1139 var44 = var47;
1140 varonce43 = var44;
1141 }
1142 if (var_ost == NULL) {
1143 var48 = 0; /* <var44:String> cannot be null */
1144 } else {
1145 var49 = ((short int (*)(val* self, val* p0))(var_ost->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ost, var44) /* == on <var_ost:nullable String>*/;
1146 var48 = var49;
1147 }
1148 var_50 = var48;
1149 if (var48){
1150 var42 = var_50;
1151 } else {
1152 if (varonce51) {
1153 var52 = varonce51;
1154 } else {
1155 var53 = "libunwind";
1156 var54 = 9;
1157 var55 = standard___standard__NativeString___to_s_with_length(var53, var54);
1158 var52 = var55;
1159 varonce51 = var52;
1160 }
1161 if (var_ost == NULL) {
1162 var56 = 0; /* <var52:String> cannot be null */
1163 } else {
1164 var57 = ((short int (*)(val* self, val* p0))(var_ost->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ost, var52) /* == on <var_ost:nullable String>*/;
1165 var56 = var57;
1166 }
1167 var42 = var56;
1168 }
1169 if (var42){
1170 if (varonce58) {
1171 var59 = varonce58;
1172 } else {
1173 var60 = "#define UNW_LOCAL_ONLY";
1174 var61 = 22;
1175 var62 = standard___standard__NativeString___to_s_with_length(var60, var61);
1176 var59 = var62;
1177 varonce58 = var59;
1178 }
1179 {
1180 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var59); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1181 }
1182 if (varonce63) {
1183 var64 = varonce63;
1184 } else {
1185 var65 = "#include <libunwind.h>";
1186 var66 = 22;
1187 var67 = standard___standard__NativeString___to_s_with_length(var65, var66);
1188 var64 = var67;
1189 varonce63 = var64;
1190 }
1191 {
1192 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var64); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1193 }
1194 if (varonce68) {
1195 var69 = varonce68;
1196 } else {
1197 var70 = "nitstack";
1198 var71 = 8;
1199 var72 = standard___standard__NativeString___to_s_with_length(var70, var71);
1200 var69 = var72;
1201 varonce68 = var69;
1202 }
1203 if (var_ost == NULL) {
1204 var73 = 0; /* <var69:String> cannot be null */
1205 } else {
1206 var74 = ((short int (*)(val* self, val* p0))(var_ost->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ost, var69) /* == on <var_ost:nullable String>*/;
1207 var73 = var74;
1208 }
1209 if (var73){
1210 if (varonce75) {
1211 var76 = varonce75;
1212 } else {
1213 var77 = "#include \"c_functions_hash.h\"";
1214 var78 = 29;
1215 var79 = standard___standard__NativeString___to_s_with_length(var77, var78);
1216 var76 = var79;
1217 varonce75 = var76;
1218 }
1219 {
1220 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var76); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1221 }
1222 } else {
1223 }
1224 } else {
1225 }
1226 if (varonce80) {
1227 var81 = varonce80;
1228 } else {
1229 var82 = "int glob_argc;";
1230 var83 = 14;
1231 var84 = standard___standard__NativeString___to_s_with_length(var82, var83);
1232 var81 = var84;
1233 varonce80 = var81;
1234 }
1235 {
1236 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var81); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1237 }
1238 if (varonce85) {
1239 var86 = varonce85;
1240 } else {
1241 var87 = "char **glob_argv;";
1242 var88 = 17;
1243 var89 = standard___standard__NativeString___to_s_with_length(var87, var88);
1244 var86 = var89;
1245 varonce85 = var86;
1246 }
1247 {
1248 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var86); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1249 }
1250 if (varonce90) {
1251 var91 = varonce90;
1252 } else {
1253 var92 = "val *glob_sys;";
1254 var93 = 14;
1255 var94 = standard___standard__NativeString___to_s_with_length(var92, var93);
1256 var91 = var94;
1257 varonce90 = var91;
1258 }
1259 {
1260 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var91); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1261 }
1262 {
1263 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
1264 var97 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
1265 if (unlikely(var97 == NULL)) {
1266 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1267 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
1268 show_backtrace(1);
1269 }
1270 var95 = var97;
1271 RET_LABEL96:(void)0;
1272 }
1273 }
1274 {
1275 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var95) on <var95:ModelBuilder> */
1276 var100 = var95->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var95:ModelBuilder> */
1277 if (unlikely(var100 == NULL)) {
1278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1279 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1280 show_backtrace(1);
1281 }
1282 var98 = var100;
1283 RET_LABEL99:(void)0;
1284 }
1285 }
1286 {
1287 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var98) on <var98:ToolContext> */
1288 var103 = var98->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on <var98:ToolContext> */
1289 if (unlikely(var103 == NULL)) {
1290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
1291 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 59);
1292 show_backtrace(1);
1293 }
1294 var101 = var103;
1295 RET_LABEL102:(void)0;
1296 }
1297 }
1298 {
1299 { /* Inline opts#Option#value (var101) on <var101:OptionBool> */
1300 var106 = var101->attrs[COLOR_opts__Option___value].val; /* _value on <var101:OptionBool> */
1301 var104 = var106;
1302 RET_LABEL105:(void)0;
1303 }
1304 }
1305 var107 = ((struct instance_standard__Bool*)var104)->value; /* autounbox from nullable Object to Bool */;
1306 if (var107){
1307 {
1308 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_tags (self) on <self:AbstractCompiler> */
1309 var110 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_tags].val; /* _count_type_test_tags on <self:AbstractCompiler> */
1310 if (unlikely(var110 == NULL)) {
1311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_tags");
1312 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 963);
1313 show_backtrace(1);
1314 }
1315 var108 = var110;
1316 RET_LABEL109:(void)0;
1317 }
1318 }
1319 var_111 = var108;
1320 {
1321 var112 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_111);
1322 }
1323 var_113 = var112;
1324 for(;;) {
1325 {
1326 var114 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_113);
1327 }
1328 if (var114){
1329 {
1330 var115 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_113);
1331 }
1332 var_tag = var115;
1333 if (varonce116) {
1334 var117 = varonce116;
1335 } else {
1336 var118 = "long count_type_test_resolved_";
1337 var119 = 30;
1338 var120 = standard___standard__NativeString___to_s_with_length(var118, var119);
1339 var117 = var120;
1340 varonce116 = var117;
1341 }
1342 if (varonce121) {
1343 var122 = varonce121;
1344 } else {
1345 var123 = ";";
1346 var124 = 1;
1347 var125 = standard___standard__NativeString___to_s_with_length(var123, var124);
1348 var122 = var125;
1349 varonce121 = var122;
1350 }
1351 var126 = NEW_standard__Array(&type_standard__Array__standard__Object);
1352 { /* var126 = array_instance Array[Object] */
1353 var127 = 3;
1354 var128 = NEW_standard__NativeArray(var127, &type_standard__NativeArray__standard__Object);
1355 ((struct instance_standard__NativeArray*)var128)->values[0] = (val*) var117;
1356 ((struct instance_standard__NativeArray*)var128)->values[1] = (val*) var_tag;
1357 ((struct instance_standard__NativeArray*)var128)->values[2] = (val*) var122;
1358 {
1359 ((void (*)(val* self, val* p0, long p1))(var126->class->vft[COLOR_standard__array__Array__with_native]))(var126, var128, var127) /* with_native on <var126:Array[Object]>*/;
1360 }
1361 }
1362 {
1363 var129 = ((val* (*)(val* self))(var126->class->vft[COLOR_standard__string__Object__to_s]))(var126) /* to_s on <var126:Array[Object]>*/;
1364 }
1365 {
1366 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var129); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1367 }
1368 if (varonce130) {
1369 var131 = varonce130;
1370 } else {
1371 var132 = "long count_type_test_unresolved_";
1372 var133 = 32;
1373 var134 = standard___standard__NativeString___to_s_with_length(var132, var133);
1374 var131 = var134;
1375 varonce130 = var131;
1376 }
1377 if (varonce135) {
1378 var136 = varonce135;
1379 } else {
1380 var137 = ";";
1381 var138 = 1;
1382 var139 = standard___standard__NativeString___to_s_with_length(var137, var138);
1383 var136 = var139;
1384 varonce135 = var136;
1385 }
1386 var140 = NEW_standard__Array(&type_standard__Array__standard__Object);
1387 { /* var140 = array_instance Array[Object] */
1388 var141 = 3;
1389 var142 = NEW_standard__NativeArray(var141, &type_standard__NativeArray__standard__Object);
1390 ((struct instance_standard__NativeArray*)var142)->values[0] = (val*) var131;
1391 ((struct instance_standard__NativeArray*)var142)->values[1] = (val*) var_tag;
1392 ((struct instance_standard__NativeArray*)var142)->values[2] = (val*) var136;
1393 {
1394 ((void (*)(val* self, val* p0, long p1))(var140->class->vft[COLOR_standard__array__Array__with_native]))(var140, var142, var141) /* with_native on <var140:Array[Object]>*/;
1395 }
1396 }
1397 {
1398 var143 = ((val* (*)(val* self))(var140->class->vft[COLOR_standard__string__Object__to_s]))(var140) /* to_s on <var140:Array[Object]>*/;
1399 }
1400 {
1401 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var143); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1402 }
1403 if (varonce144) {
1404 var145 = varonce144;
1405 } else {
1406 var146 = "long count_type_test_skipped_";
1407 var147 = 29;
1408 var148 = standard___standard__NativeString___to_s_with_length(var146, var147);
1409 var145 = var148;
1410 varonce144 = var145;
1411 }
1412 if (varonce149) {
1413 var150 = varonce149;
1414 } else {
1415 var151 = ";";
1416 var152 = 1;
1417 var153 = standard___standard__NativeString___to_s_with_length(var151, var152);
1418 var150 = var153;
1419 varonce149 = var150;
1420 }
1421 var154 = NEW_standard__Array(&type_standard__Array__standard__Object);
1422 { /* var154 = array_instance Array[Object] */
1423 var155 = 3;
1424 var156 = NEW_standard__NativeArray(var155, &type_standard__NativeArray__standard__Object);
1425 ((struct instance_standard__NativeArray*)var156)->values[0] = (val*) var145;
1426 ((struct instance_standard__NativeArray*)var156)->values[1] = (val*) var_tag;
1427 ((struct instance_standard__NativeArray*)var156)->values[2] = (val*) var150;
1428 {
1429 ((void (*)(val* self, val* p0, long p1))(var154->class->vft[COLOR_standard__array__Array__with_native]))(var154, var156, var155) /* with_native on <var154:Array[Object]>*/;
1430 }
1431 }
1432 {
1433 var157 = ((val* (*)(val* self))(var154->class->vft[COLOR_standard__string__Object__to_s]))(var154) /* to_s on <var154:Array[Object]>*/;
1434 }
1435 {
1436 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var157); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1437 }
1438 {
1439 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1440 var160 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1441 if (unlikely(var160 == NULL)) {
1442 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1443 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1444 show_backtrace(1);
1445 }
1446 var158 = var160;
1447 RET_LABEL159:(void)0;
1448 }
1449 }
1450 {
1451 { /* Inline abstract_compiler#AbstractCompiler#header (var158) on <var158:AbstractCompiler> */
1452 var163 = var158->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var158:AbstractCompiler> */
1453 if (unlikely(var163 == NULL)) {
1454 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1455 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1456 show_backtrace(1);
1457 }
1458 var161 = var163;
1459 RET_LABEL162:(void)0;
1460 }
1461 }
1462 if (varonce164) {
1463 var165 = varonce164;
1464 } else {
1465 var166 = "extern long count_type_test_resolved_";
1466 var167 = 37;
1467 var168 = standard___standard__NativeString___to_s_with_length(var166, var167);
1468 var165 = var168;
1469 varonce164 = var165;
1470 }
1471 if (varonce169) {
1472 var170 = varonce169;
1473 } else {
1474 var171 = ";";
1475 var172 = 1;
1476 var173 = standard___standard__NativeString___to_s_with_length(var171, var172);
1477 var170 = var173;
1478 varonce169 = var170;
1479 }
1480 var174 = NEW_standard__Array(&type_standard__Array__standard__Object);
1481 { /* var174 = array_instance Array[Object] */
1482 var175 = 3;
1483 var176 = NEW_standard__NativeArray(var175, &type_standard__NativeArray__standard__Object);
1484 ((struct instance_standard__NativeArray*)var176)->values[0] = (val*) var165;
1485 ((struct instance_standard__NativeArray*)var176)->values[1] = (val*) var_tag;
1486 ((struct instance_standard__NativeArray*)var176)->values[2] = (val*) var170;
1487 {
1488 ((void (*)(val* self, val* p0, long p1))(var174->class->vft[COLOR_standard__array__Array__with_native]))(var174, var176, var175) /* with_native on <var174:Array[Object]>*/;
1489 }
1490 }
1491 {
1492 var177 = ((val* (*)(val* self))(var174->class->vft[COLOR_standard__string__Object__to_s]))(var174) /* to_s on <var174:Array[Object]>*/;
1493 }
1494 {
1495 nit___nit__CodeWriter___add_decl(var161, var177); /* Direct call abstract_compiler#CodeWriter#add_decl on <var161:CodeWriter>*/
1496 }
1497 {
1498 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1499 var180 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1500 if (unlikely(var180 == NULL)) {
1501 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1502 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1503 show_backtrace(1);
1504 }
1505 var178 = var180;
1506 RET_LABEL179:(void)0;
1507 }
1508 }
1509 {
1510 { /* Inline abstract_compiler#AbstractCompiler#header (var178) on <var178:AbstractCompiler> */
1511 var183 = var178->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var178:AbstractCompiler> */
1512 if (unlikely(var183 == NULL)) {
1513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1514 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1515 show_backtrace(1);
1516 }
1517 var181 = var183;
1518 RET_LABEL182:(void)0;
1519 }
1520 }
1521 if (varonce184) {
1522 var185 = varonce184;
1523 } else {
1524 var186 = "extern long count_type_test_unresolved_";
1525 var187 = 39;
1526 var188 = standard___standard__NativeString___to_s_with_length(var186, var187);
1527 var185 = var188;
1528 varonce184 = var185;
1529 }
1530 if (varonce189) {
1531 var190 = varonce189;
1532 } else {
1533 var191 = ";";
1534 var192 = 1;
1535 var193 = standard___standard__NativeString___to_s_with_length(var191, var192);
1536 var190 = var193;
1537 varonce189 = var190;
1538 }
1539 var194 = NEW_standard__Array(&type_standard__Array__standard__Object);
1540 { /* var194 = array_instance Array[Object] */
1541 var195 = 3;
1542 var196 = NEW_standard__NativeArray(var195, &type_standard__NativeArray__standard__Object);
1543 ((struct instance_standard__NativeArray*)var196)->values[0] = (val*) var185;
1544 ((struct instance_standard__NativeArray*)var196)->values[1] = (val*) var_tag;
1545 ((struct instance_standard__NativeArray*)var196)->values[2] = (val*) var190;
1546 {
1547 ((void (*)(val* self, val* p0, long p1))(var194->class->vft[COLOR_standard__array__Array__with_native]))(var194, var196, var195) /* with_native on <var194:Array[Object]>*/;
1548 }
1549 }
1550 {
1551 var197 = ((val* (*)(val* self))(var194->class->vft[COLOR_standard__string__Object__to_s]))(var194) /* to_s on <var194:Array[Object]>*/;
1552 }
1553 {
1554 nit___nit__CodeWriter___add_decl(var181, var197); /* Direct call abstract_compiler#CodeWriter#add_decl on <var181:CodeWriter>*/
1555 }
1556 {
1557 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1558 var200 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1559 if (unlikely(var200 == NULL)) {
1560 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1561 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1562 show_backtrace(1);
1563 }
1564 var198 = var200;
1565 RET_LABEL199:(void)0;
1566 }
1567 }
1568 {
1569 { /* Inline abstract_compiler#AbstractCompiler#header (var198) on <var198:AbstractCompiler> */
1570 var203 = var198->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var198:AbstractCompiler> */
1571 if (unlikely(var203 == NULL)) {
1572 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1573 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1574 show_backtrace(1);
1575 }
1576 var201 = var203;
1577 RET_LABEL202:(void)0;
1578 }
1579 }
1580 if (varonce204) {
1581 var205 = varonce204;
1582 } else {
1583 var206 = "extern long count_type_test_skipped_";
1584 var207 = 36;
1585 var208 = standard___standard__NativeString___to_s_with_length(var206, var207);
1586 var205 = var208;
1587 varonce204 = var205;
1588 }
1589 if (varonce209) {
1590 var210 = varonce209;
1591 } else {
1592 var211 = ";";
1593 var212 = 1;
1594 var213 = standard___standard__NativeString___to_s_with_length(var211, var212);
1595 var210 = var213;
1596 varonce209 = var210;
1597 }
1598 var214 = NEW_standard__Array(&type_standard__Array__standard__Object);
1599 { /* var214 = array_instance Array[Object] */
1600 var215 = 3;
1601 var216 = NEW_standard__NativeArray(var215, &type_standard__NativeArray__standard__Object);
1602 ((struct instance_standard__NativeArray*)var216)->values[0] = (val*) var205;
1603 ((struct instance_standard__NativeArray*)var216)->values[1] = (val*) var_tag;
1604 ((struct instance_standard__NativeArray*)var216)->values[2] = (val*) var210;
1605 {
1606 ((void (*)(val* self, val* p0, long p1))(var214->class->vft[COLOR_standard__array__Array__with_native]))(var214, var216, var215) /* with_native on <var214:Array[Object]>*/;
1607 }
1608 }
1609 {
1610 var217 = ((val* (*)(val* self))(var214->class->vft[COLOR_standard__string__Object__to_s]))(var214) /* to_s on <var214:Array[Object]>*/;
1611 }
1612 {
1613 nit___nit__CodeWriter___add_decl(var201, var217); /* Direct call abstract_compiler#CodeWriter#add_decl on <var201:CodeWriter>*/
1614 }
1615 {
1616 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_113); /* Direct call array#ArrayIterator#next on <var_113:ArrayIterator[String]>*/
1617 }
1618 } else {
1619 goto BREAK_label;
1620 }
1621 }
1622 BREAK_label: (void)0;
1623 {
1624 { /* Inline abstract_collection#Iterator#finish (var_113) on <var_113:ArrayIterator[String]> */
1625 RET_LABEL218:(void)0;
1626 }
1627 }
1628 } else {
1629 }
1630 {
1631 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
1632 var221 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
1633 if (unlikely(var221 == NULL)) {
1634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1635 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
1636 show_backtrace(1);
1637 }
1638 var219 = var221;
1639 RET_LABEL220:(void)0;
1640 }
1641 }
1642 {
1643 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var219) on <var219:ModelBuilder> */
1644 var224 = var219->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var219:ModelBuilder> */
1645 if (unlikely(var224 == NULL)) {
1646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1647 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1648 show_backtrace(1);
1649 }
1650 var222 = var224;
1651 RET_LABEL223:(void)0;
1652 }
1653 }
1654 {
1655 { /* Inline abstract_compiler#ToolContext#opt_invocation_metrics (var222) on <var222:ToolContext> */
1656 var227 = var222->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_invocation_metrics].val; /* _opt_invocation_metrics on <var222:ToolContext> */
1657 if (unlikely(var227 == NULL)) {
1658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
1659 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 61);
1660 show_backtrace(1);
1661 }
1662 var225 = var227;
1663 RET_LABEL226:(void)0;
1664 }
1665 }
1666 {
1667 { /* Inline opts#Option#value (var225) on <var225:OptionBool> */
1668 var230 = var225->attrs[COLOR_opts__Option___value].val; /* _value on <var225:OptionBool> */
1669 var228 = var230;
1670 RET_LABEL229:(void)0;
1671 }
1672 }
1673 var231 = ((struct instance_standard__Bool*)var228)->value; /* autounbox from nullable Object to Bool */;
1674 if (var231){
1675 if (varonce232) {
1676 var233 = varonce232;
1677 } else {
1678 var234 = "long count_invoke_by_tables;";
1679 var235 = 28;
1680 var236 = standard___standard__NativeString___to_s_with_length(var234, var235);
1681 var233 = var236;
1682 varonce232 = var233;
1683 }
1684 {
1685 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var233); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1686 }
1687 if (varonce237) {
1688 var238 = varonce237;
1689 } else {
1690 var239 = "long count_invoke_by_direct;";
1691 var240 = 28;
1692 var241 = standard___standard__NativeString___to_s_with_length(var239, var240);
1693 var238 = var241;
1694 varonce237 = var238;
1695 }
1696 {
1697 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var238); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1698 }
1699 if (varonce242) {
1700 var243 = varonce242;
1701 } else {
1702 var244 = "long count_invoke_by_inline;";
1703 var245 = 28;
1704 var246 = standard___standard__NativeString___to_s_with_length(var244, var245);
1705 var243 = var246;
1706 varonce242 = var243;
1707 }
1708 {
1709 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var243); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1710 }
1711 {
1712 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1713 var249 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1714 if (unlikely(var249 == NULL)) {
1715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1716 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1717 show_backtrace(1);
1718 }
1719 var247 = var249;
1720 RET_LABEL248:(void)0;
1721 }
1722 }
1723 {
1724 { /* Inline abstract_compiler#AbstractCompiler#header (var247) on <var247:AbstractCompiler> */
1725 var252 = var247->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var247:AbstractCompiler> */
1726 if (unlikely(var252 == NULL)) {
1727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1728 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1729 show_backtrace(1);
1730 }
1731 var250 = var252;
1732 RET_LABEL251:(void)0;
1733 }
1734 }
1735 if (varonce253) {
1736 var254 = varonce253;
1737 } else {
1738 var255 = "extern long count_invoke_by_tables;";
1739 var256 = 35;
1740 var257 = standard___standard__NativeString___to_s_with_length(var255, var256);
1741 var254 = var257;
1742 varonce253 = var254;
1743 }
1744 {
1745 nit___nit__CodeWriter___add_decl(var250, var254); /* Direct call abstract_compiler#CodeWriter#add_decl on <var250:CodeWriter>*/
1746 }
1747 {
1748 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1749 var260 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1750 if (unlikely(var260 == NULL)) {
1751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1752 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1753 show_backtrace(1);
1754 }
1755 var258 = var260;
1756 RET_LABEL259:(void)0;
1757 }
1758 }
1759 {
1760 { /* Inline abstract_compiler#AbstractCompiler#header (var258) on <var258:AbstractCompiler> */
1761 var263 = var258->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var258:AbstractCompiler> */
1762 if (unlikely(var263 == NULL)) {
1763 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1764 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1765 show_backtrace(1);
1766 }
1767 var261 = var263;
1768 RET_LABEL262:(void)0;
1769 }
1770 }
1771 if (varonce264) {
1772 var265 = varonce264;
1773 } else {
1774 var266 = "extern long count_invoke_by_direct;";
1775 var267 = 35;
1776 var268 = standard___standard__NativeString___to_s_with_length(var266, var267);
1777 var265 = var268;
1778 varonce264 = var265;
1779 }
1780 {
1781 nit___nit__CodeWriter___add_decl(var261, var265); /* Direct call abstract_compiler#CodeWriter#add_decl on <var261:CodeWriter>*/
1782 }
1783 {
1784 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1785 var271 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1786 if (unlikely(var271 == NULL)) {
1787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1788 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1789 show_backtrace(1);
1790 }
1791 var269 = var271;
1792 RET_LABEL270:(void)0;
1793 }
1794 }
1795 {
1796 { /* Inline abstract_compiler#AbstractCompiler#header (var269) on <var269:AbstractCompiler> */
1797 var274 = var269->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var269:AbstractCompiler> */
1798 if (unlikely(var274 == NULL)) {
1799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1800 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1801 show_backtrace(1);
1802 }
1803 var272 = var274;
1804 RET_LABEL273:(void)0;
1805 }
1806 }
1807 if (varonce275) {
1808 var276 = varonce275;
1809 } else {
1810 var277 = "extern long count_invoke_by_inline;";
1811 var278 = 35;
1812 var279 = standard___standard__NativeString___to_s_with_length(var277, var278);
1813 var276 = var279;
1814 varonce275 = var276;
1815 }
1816 {
1817 nit___nit__CodeWriter___add_decl(var272, var276); /* Direct call abstract_compiler#CodeWriter#add_decl on <var272:CodeWriter>*/
1818 }
1819 } else {
1820 }
1821 {
1822 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
1823 var282 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
1824 if (unlikely(var282 == NULL)) {
1825 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1826 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
1827 show_backtrace(1);
1828 }
1829 var280 = var282;
1830 RET_LABEL281:(void)0;
1831 }
1832 }
1833 {
1834 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var280) on <var280:ModelBuilder> */
1835 var285 = var280->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var280:ModelBuilder> */
1836 if (unlikely(var285 == NULL)) {
1837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1838 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
1839 show_backtrace(1);
1840 }
1841 var283 = var285;
1842 RET_LABEL284:(void)0;
1843 }
1844 }
1845 {
1846 { /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (var283) on <var283:ToolContext> */
1847 var288 = var283->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on <var283:ToolContext> */
1848 if (unlikely(var288 == NULL)) {
1849 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
1850 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 63);
1851 show_backtrace(1);
1852 }
1853 var286 = var288;
1854 RET_LABEL287:(void)0;
1855 }
1856 }
1857 {
1858 { /* Inline opts#Option#value (var286) on <var286:OptionBool> */
1859 var291 = var286->attrs[COLOR_opts__Option___value].val; /* _value on <var286:OptionBool> */
1860 var289 = var291;
1861 RET_LABEL290:(void)0;
1862 }
1863 }
1864 var292 = ((struct instance_standard__Bool*)var289)->value; /* autounbox from nullable Object to Bool */;
1865 if (var292){
1866 if (varonce293) {
1867 var294 = varonce293;
1868 } else {
1869 var295 = "long count_attr_reads = 0;";
1870 var296 = 26;
1871 var297 = standard___standard__NativeString___to_s_with_length(var295, var296);
1872 var294 = var297;
1873 varonce293 = var294;
1874 }
1875 {
1876 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var294); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1877 }
1878 if (varonce298) {
1879 var299 = varonce298;
1880 } else {
1881 var300 = "long count_isset_checks = 0;";
1882 var301 = 28;
1883 var302 = standard___standard__NativeString___to_s_with_length(var300, var301);
1884 var299 = var302;
1885 varonce298 = var299;
1886 }
1887 {
1888 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var299); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1889 }
1890 {
1891 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1892 var305 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1893 if (unlikely(var305 == NULL)) {
1894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1895 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1896 show_backtrace(1);
1897 }
1898 var303 = var305;
1899 RET_LABEL304:(void)0;
1900 }
1901 }
1902 {
1903 { /* Inline abstract_compiler#AbstractCompiler#header (var303) on <var303:AbstractCompiler> */
1904 var308 = var303->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var303:AbstractCompiler> */
1905 if (unlikely(var308 == NULL)) {
1906 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1907 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1908 show_backtrace(1);
1909 }
1910 var306 = var308;
1911 RET_LABEL307:(void)0;
1912 }
1913 }
1914 if (varonce309) {
1915 var310 = varonce309;
1916 } else {
1917 var311 = "extern long count_attr_reads;";
1918 var312 = 29;
1919 var313 = standard___standard__NativeString___to_s_with_length(var311, var312);
1920 var310 = var313;
1921 varonce309 = var310;
1922 }
1923 {
1924 nit___nit__CodeWriter___add_decl(var306, var310); /* Direct call abstract_compiler#CodeWriter#add_decl on <var306:CodeWriter>*/
1925 }
1926 {
1927 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
1928 var316 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
1929 if (unlikely(var316 == NULL)) {
1930 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1931 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
1932 show_backtrace(1);
1933 }
1934 var314 = var316;
1935 RET_LABEL315:(void)0;
1936 }
1937 }
1938 {
1939 { /* Inline abstract_compiler#AbstractCompiler#header (var314) on <var314:AbstractCompiler> */
1940 var319 = var314->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___header].val; /* _header on <var314:AbstractCompiler> */
1941 if (unlikely(var319 == NULL)) {
1942 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
1943 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 523);
1944 show_backtrace(1);
1945 }
1946 var317 = var319;
1947 RET_LABEL318:(void)0;
1948 }
1949 }
1950 if (varonce320) {
1951 var321 = varonce320;
1952 } else {
1953 var322 = "extern long count_isset_checks;";
1954 var323 = 31;
1955 var324 = standard___standard__NativeString___to_s_with_length(var322, var323);
1956 var321 = var324;
1957 varonce320 = var321;
1958 }
1959 {
1960 nit___nit__CodeWriter___add_decl(var317, var321); /* Direct call abstract_compiler#CodeWriter#add_decl on <var317:CodeWriter>*/
1961 }
1962 } else {
1963 }
1964 if (varonce325) {
1965 var326 = varonce325;
1966 } else {
1967 var327 = "void sig_handler(int signo){";
1968 var328 = 28;
1969 var329 = standard___standard__NativeString___to_s_with_length(var327, var328);
1970 var326 = var329;
1971 varonce325 = var326;
1972 }
1973 {
1974 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var326); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1975 }
1976 if (varonce330) {
1977 var331 = varonce330;
1978 } else {
1979 var332 = "PRINT_ERROR(\"Caught signal : %s\\n\", strsignal(signo));";
1980 var333 = 54;
1981 var334 = standard___standard__NativeString___to_s_with_length(var332, var333);
1982 var331 = var334;
1983 varonce330 = var331;
1984 }
1985 {
1986 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var331); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1987 }
1988 if (varonce335) {
1989 var336 = varonce335;
1990 } else {
1991 var337 = "show_backtrace(signo);";
1992 var338 = 22;
1993 var339 = standard___standard__NativeString___to_s_with_length(var337, var338);
1994 var336 = var339;
1995 varonce335 = var336;
1996 }
1997 {
1998 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var336); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
1999 }
2000 if (varonce340) {
2001 var341 = varonce340;
2002 } else {
2003 var342 = "}";
2004 var343 = 1;
2005 var344 = standard___standard__NativeString___to_s_with_length(var342, var343);
2006 var341 = var344;
2007 varonce340 = var341;
2008 }
2009 {
2010 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var341); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2011 }
2012 if (varonce345) {
2013 var346 = varonce345;
2014 } else {
2015 var347 = "void show_backtrace (int signo) {";
2016 var348 = 33;
2017 var349 = standard___standard__NativeString___to_s_with_length(var347, var348);
2018 var346 = var349;
2019 varonce345 = var346;
2020 }
2021 {
2022 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var346); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2023 }
2024 if (varonce351) {
2025 var352 = varonce351;
2026 } else {
2027 var353 = "nitstack";
2028 var354 = 8;
2029 var355 = standard___standard__NativeString___to_s_with_length(var353, var354);
2030 var352 = var355;
2031 varonce351 = var352;
2032 }
2033 if (var_ost == NULL) {
2034 var356 = 0; /* <var352:String> cannot be null */
2035 } else {
2036 var357 = ((short int (*)(val* self, val* p0))(var_ost->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ost, var352) /* == on <var_ost:nullable String>*/;
2037 var356 = var357;
2038 }
2039 var_358 = var356;
2040 if (var356){
2041 var350 = var_358;
2042 } else {
2043 if (varonce359) {
2044 var360 = varonce359;
2045 } else {
2046 var361 = "libunwind";
2047 var362 = 9;
2048 var363 = standard___standard__NativeString___to_s_with_length(var361, var362);
2049 var360 = var363;
2050 varonce359 = var360;
2051 }
2052 if (var_ost == NULL) {
2053 var364 = 0; /* <var360:String> cannot be null */
2054 } else {
2055 var365 = ((short int (*)(val* self, val* p0))(var_ost->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ost, var360) /* == on <var_ost:nullable String>*/;
2056 var364 = var365;
2057 }
2058 var350 = var364;
2059 }
2060 if (var350){
2061 if (varonce366) {
2062 var367 = varonce366;
2063 } else {
2064 var368 = "char* opt = getenv(\"NIT_NO_STACK\");";
2065 var369 = 35;
2066 var370 = standard___standard__NativeString___to_s_with_length(var368, var369);
2067 var367 = var370;
2068 varonce366 = var367;
2069 }
2070 {
2071 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var367); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2072 }
2073 if (varonce371) {
2074 var372 = varonce371;
2075 } else {
2076 var373 = "unw_cursor_t cursor;";
2077 var374 = 20;
2078 var375 = standard___standard__NativeString___to_s_with_length(var373, var374);
2079 var372 = var375;
2080 varonce371 = var372;
2081 }
2082 {
2083 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var372); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2084 }
2085 if (varonce376) {
2086 var377 = varonce376;
2087 } else {
2088 var378 = "if(opt==NULL){";
2089 var379 = 14;
2090 var380 = standard___standard__NativeString___to_s_with_length(var378, var379);
2091 var377 = var380;
2092 varonce376 = var377;
2093 }
2094 {
2095 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var377); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2096 }
2097 if (varonce381) {
2098 var382 = varonce381;
2099 } else {
2100 var383 = "unw_context_t uc;";
2101 var384 = 17;
2102 var385 = standard___standard__NativeString___to_s_with_length(var383, var384);
2103 var382 = var385;
2104 varonce381 = var382;
2105 }
2106 {
2107 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var382); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2108 }
2109 if (varonce386) {
2110 var387 = varonce386;
2111 } else {
2112 var388 = "unw_word_t ip;";
2113 var389 = 14;
2114 var390 = standard___standard__NativeString___to_s_with_length(var388, var389);
2115 var387 = var390;
2116 varonce386 = var387;
2117 }
2118 {
2119 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var387); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2120 }
2121 if (varonce391) {
2122 var392 = varonce391;
2123 } else {
2124 var393 = "char* procname = malloc(sizeof(char) * 100);";
2125 var394 = 44;
2126 var395 = standard___standard__NativeString___to_s_with_length(var393, var394);
2127 var392 = var395;
2128 varonce391 = var392;
2129 }
2130 {
2131 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var392); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2132 }
2133 if (varonce396) {
2134 var397 = varonce396;
2135 } else {
2136 var398 = "unw_getcontext(&uc);";
2137 var399 = 20;
2138 var400 = standard___standard__NativeString___to_s_with_length(var398, var399);
2139 var397 = var400;
2140 varonce396 = var397;
2141 }
2142 {
2143 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var397); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2144 }
2145 if (varonce401) {
2146 var402 = varonce401;
2147 } else {
2148 var403 = "unw_init_local(&cursor, &uc);";
2149 var404 = 29;
2150 var405 = standard___standard__NativeString___to_s_with_length(var403, var404);
2151 var402 = var405;
2152 varonce401 = var402;
2153 }
2154 {
2155 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var402); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2156 }
2157 if (varonce406) {
2158 var407 = varonce406;
2159 } else {
2160 var408 = "PRINT_ERROR(\"-------------------------------------------------\\n\");";
2161 var409 = 67;
2162 var410 = standard___standard__NativeString___to_s_with_length(var408, var409);
2163 var407 = var410;
2164 varonce406 = var407;
2165 }
2166 {
2167 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var407); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2168 }
2169 if (varonce411) {
2170 var412 = varonce411;
2171 } else {
2172 var413 = "PRINT_ERROR(\"-- Stack Trace ------------------------------\\n\");";
2173 var414 = 67;
2174 var415 = standard___standard__NativeString___to_s_with_length(var413, var414);
2175 var412 = var415;
2176 varonce411 = var412;
2177 }
2178 {
2179 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var412); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2180 }
2181 if (varonce416) {
2182 var417 = varonce416;
2183 } else {
2184 var418 = "PRINT_ERROR(\"-------------------------------------------------\\n\");";
2185 var419 = 67;
2186 var420 = standard___standard__NativeString___to_s_with_length(var418, var419);
2187 var417 = var420;
2188 varonce416 = var417;
2189 }
2190 {
2191 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var417); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2192 }
2193 if (varonce421) {
2194 var422 = varonce421;
2195 } else {
2196 var423 = "while (unw_step(&cursor) > 0) {";
2197 var424 = 31;
2198 var425 = standard___standard__NativeString___to_s_with_length(var423, var424);
2199 var422 = var425;
2200 varonce421 = var422;
2201 }
2202 {
2203 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var422); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2204 }
2205 if (varonce426) {
2206 var427 = varonce426;
2207 } else {
2208 var428 = "\11unw_get_proc_name(&cursor, procname, 100, &ip);";
2209 var429 = 48;
2210 var430 = standard___standard__NativeString___to_s_with_length(var428, var429);
2211 var427 = var430;
2212 varonce426 = var427;
2213 }
2214 {
2215 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var427); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2216 }
2217 if (varonce431) {
2218 var432 = varonce431;
2219 } else {
2220 var433 = "nitstack";
2221 var434 = 8;
2222 var435 = standard___standard__NativeString___to_s_with_length(var433, var434);
2223 var432 = var435;
2224 varonce431 = var432;
2225 }
2226 if (var_ost == NULL) {
2227 var436 = 0; /* <var432:String> cannot be null */
2228 } else {
2229 var437 = ((short int (*)(val* self, val* p0))(var_ost->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ost, var432) /* == on <var_ost:nullable String>*/;
2230 var436 = var437;
2231 }
2232 if (var436){
2233 if (varonce438) {
2234 var439 = varonce438;
2235 } else {
2236 var440 = "\11const char* recv = get_nit_name(procname, strlen(procname));";
2237 var441 = 61;
2238 var442 = standard___standard__NativeString___to_s_with_length(var440, var441);
2239 var439 = var442;
2240 varonce438 = var439;
2241 }
2242 {
2243 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var439); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2244 }
2245 if (varonce443) {
2246 var444 = varonce443;
2247 } else {
2248 var445 = "\11if (recv != NULL){";
2249 var446 = 19;
2250 var447 = standard___standard__NativeString___to_s_with_length(var445, var446);
2251 var444 = var447;
2252 varonce443 = var444;
2253 }
2254 {
2255 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var444); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2256 }
2257 if (varonce448) {
2258 var449 = varonce448;
2259 } else {
2260 var450 = "\11\11PRINT_ERROR(\"` %s\\n\", recv);";
2261 var451 = 30;
2262 var452 = standard___standard__NativeString___to_s_with_length(var450, var451);
2263 var449 = var452;
2264 varonce448 = var449;
2265 }
2266 {
2267 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var449); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2268 }
2269 if (varonce453) {
2270 var454 = varonce453;
2271 } else {
2272 var455 = "\11}else{";
2273 var456 = 7;
2274 var457 = standard___standard__NativeString___to_s_with_length(var455, var456);
2275 var454 = var457;
2276 varonce453 = var454;
2277 }
2278 {
2279 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var454); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2280 }
2281 if (varonce458) {
2282 var459 = varonce458;
2283 } else {
2284 var460 = "\11\11PRINT_ERROR(\"` %s\\n\", procname);";
2285 var461 = 34;
2286 var462 = standard___standard__NativeString___to_s_with_length(var460, var461);
2287 var459 = var462;
2288 varonce458 = var459;
2289 }
2290 {
2291 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var459); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2292 }
2293 if (varonce463) {
2294 var464 = varonce463;
2295 } else {
2296 var465 = "\11}";
2297 var466 = 2;
2298 var467 = standard___standard__NativeString___to_s_with_length(var465, var466);
2299 var464 = var467;
2300 varonce463 = var464;
2301 }
2302 {
2303 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var464); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2304 }
2305 } else {
2306 if (varonce468) {
2307 var469 = varonce468;
2308 } else {
2309 var470 = "\11PRINT_ERROR(\"` %s \\n\",procname);";
2310 var471 = 33;
2311 var472 = standard___standard__NativeString___to_s_with_length(var470, var471);
2312 var469 = var472;
2313 varonce468 = var469;
2314 }
2315 {
2316 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var469); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2317 }
2318 }
2319 if (varonce473) {
2320 var474 = varonce473;
2321 } else {
2322 var475 = "}";
2323 var476 = 1;
2324 var477 = standard___standard__NativeString___to_s_with_length(var475, var476);
2325 var474 = var477;
2326 varonce473 = var474;
2327 }
2328 {
2329 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var474); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2330 }
2331 if (varonce478) {
2332 var479 = varonce478;
2333 } else {
2334 var480 = "PRINT_ERROR(\"-------------------------------------------------\\n\");";
2335 var481 = 67;
2336 var482 = standard___standard__NativeString___to_s_with_length(var480, var481);
2337 var479 = var482;
2338 varonce478 = var479;
2339 }
2340 {
2341 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var479); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2342 }
2343 if (varonce483) {
2344 var484 = varonce483;
2345 } else {
2346 var485 = "free(procname);";
2347 var486 = 15;
2348 var487 = standard___standard__NativeString___to_s_with_length(var485, var486);
2349 var484 = var487;
2350 varonce483 = var484;
2351 }
2352 {
2353 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var484); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2354 }
2355 if (varonce488) {
2356 var489 = varonce488;
2357 } else {
2358 var490 = "}";
2359 var491 = 1;
2360 var492 = standard___standard__NativeString___to_s_with_length(var490, var491);
2361 var489 = var492;
2362 varonce488 = var489;
2363 }
2364 {
2365 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var489); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2366 }
2367 } else {
2368 }
2369 if (varonce493) {
2370 var494 = varonce493;
2371 } else {
2372 var495 = "exit(signo);";
2373 var496 = 12;
2374 var497 = standard___standard__NativeString___to_s_with_length(var495, var496);
2375 var494 = var497;
2376 varonce493 = var494;
2377 }
2378 {
2379 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var494); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2380 }
2381 if (varonce498) {
2382 var499 = varonce498;
2383 } else {
2384 var500 = "}";
2385 var501 = 1;
2386 var502 = standard___standard__NativeString___to_s_with_length(var500, var501);
2387 var499 = var502;
2388 varonce498 = var499;
2389 }
2390 {
2391 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var499); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2392 }
2393 if (var_no_main){
2394 if (varonce503) {
2395 var504 = varonce503;
2396 } else {
2397 var505 = "int nit_main(int argc, char** argv) {";
2398 var506 = 37;
2399 var507 = standard___standard__NativeString___to_s_with_length(var505, var506);
2400 var504 = var507;
2401 varonce503 = var504;
2402 }
2403 {
2404 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var504); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2405 }
2406 } else {
2407 if (varonce508) {
2408 var509 = varonce508;
2409 } else {
2410 var510 = "int main(int argc, char** argv) {";
2411 var511 = 33;
2412 var512 = standard___standard__NativeString___to_s_with_length(var510, var511);
2413 var509 = var512;
2414 varonce508 = var509;
2415 }
2416 {
2417 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var509); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2418 }
2419 }
2420 if (varonce513) {
2421 var514 = varonce513;
2422 } else {
2423 var515 = "signal(SIGABRT, sig_handler);";
2424 var516 = 29;
2425 var517 = standard___standard__NativeString___to_s_with_length(var515, var516);
2426 var514 = var517;
2427 varonce513 = var514;
2428 }
2429 {
2430 nit___nit__AbstractCompilerVisitor___add(var_v, var514); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2431 }
2432 if (varonce518) {
2433 var519 = varonce518;
2434 } else {
2435 var520 = "signal(SIGFPE, sig_handler);";
2436 var521 = 28;
2437 var522 = standard___standard__NativeString___to_s_with_length(var520, var521);
2438 var519 = var522;
2439 varonce518 = var519;
2440 }
2441 {
2442 nit___nit__AbstractCompilerVisitor___add(var_v, var519); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2443 }
2444 if (varonce523) {
2445 var524 = varonce523;
2446 } else {
2447 var525 = "signal(SIGILL, sig_handler);";
2448 var526 = 28;
2449 var527 = standard___standard__NativeString___to_s_with_length(var525, var526);
2450 var524 = var527;
2451 varonce523 = var524;
2452 }
2453 {
2454 nit___nit__AbstractCompilerVisitor___add(var_v, var524); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2455 }
2456 if (varonce528) {
2457 var529 = varonce528;
2458 } else {
2459 var530 = "signal(SIGINT, sig_handler);";
2460 var531 = 28;
2461 var532 = standard___standard__NativeString___to_s_with_length(var530, var531);
2462 var529 = var532;
2463 varonce528 = var529;
2464 }
2465 {
2466 nit___nit__AbstractCompilerVisitor___add(var_v, var529); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2467 }
2468 if (varonce533) {
2469 var534 = varonce533;
2470 } else {
2471 var535 = "signal(SIGTERM, sig_handler);";
2472 var536 = 29;
2473 var537 = standard___standard__NativeString___to_s_with_length(var535, var536);
2474 var534 = var537;
2475 varonce533 = var534;
2476 }
2477 {
2478 nit___nit__AbstractCompilerVisitor___add(var_v, var534); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2479 }
2480 if (varonce538) {
2481 var539 = varonce538;
2482 } else {
2483 var540 = "signal(SIGSEGV, sig_handler);";
2484 var541 = 29;
2485 var542 = standard___standard__NativeString___to_s_with_length(var540, var541);
2486 var539 = var542;
2487 varonce538 = var539;
2488 }
2489 {
2490 nit___nit__AbstractCompilerVisitor___add(var_v, var539); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2491 }
2492 if (varonce543) {
2493 var544 = varonce543;
2494 } else {
2495 var545 = "signal(SIGPIPE, sig_handler);";
2496 var546 = 29;
2497 var547 = standard___standard__NativeString___to_s_with_length(var545, var546);
2498 var544 = var547;
2499 varonce543 = var544;
2500 }
2501 {
2502 nit___nit__AbstractCompilerVisitor___add(var_v, var544); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2503 }
2504 if (varonce548) {
2505 var549 = varonce548;
2506 } else {
2507 var550 = "glob_argc = argc; glob_argv = argv;";
2508 var551 = 35;
2509 var552 = standard___standard__NativeString___to_s_with_length(var550, var551);
2510 var549 = var552;
2511 varonce548 = var549;
2512 }
2513 {
2514 nit___nit__AbstractCompilerVisitor___add(var_v, var549); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2515 }
2516 if (varonce553) {
2517 var554 = varonce553;
2518 } else {
2519 var555 = "initialize_gc_option();";
2520 var556 = 23;
2521 var557 = standard___standard__NativeString___to_s_with_length(var555, var556);
2522 var554 = var557;
2523 varonce553 = var554;
2524 }
2525 {
2526 nit___nit__AbstractCompilerVisitor___add(var_v, var554); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2527 }
2528 if (varonce558) {
2529 var559 = varonce558;
2530 } else {
2531 var560 = "initialize_nitni_global_refs();";
2532 var561 = 31;
2533 var562 = standard___standard__NativeString___to_s_with_length(var560, var561);
2534 var559 = var562;
2535 varonce558 = var559;
2536 }
2537 {
2538 nit___nit__AbstractCompilerVisitor___add(var_v, var559); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2539 }
2540 {
2541 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:AbstractCompiler> */
2542 var565 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:AbstractCompiler> */
2543 if (unlikely(var565 == NULL)) {
2544 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2545 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
2546 show_backtrace(1);
2547 }
2548 var563 = var565;
2549 RET_LABEL564:(void)0;
2550 }
2551 }
2552 {
2553 var566 = nit__model___MModule___sys_type(var563);
2554 }
2555 var_main_type = var566;
2556 var567 = NULL;
2557 if (var_main_type == NULL) {
2558 var568 = 0; /* is null */
2559 } else {
2560 var568 = 1; /* arg is null and recv is not */
2561 }
2562 if (0) {
2563 { /* Inline kernel#Object#!= (var_main_type,var567) on <var_main_type:nullable MClassType> */
2564 var_other = var567;
2565 {
2566 var571 = ((short int (*)(val* self, val* p0))(var_main_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_main_type, var_other) /* == on <var_main_type:nullable MClassType(MClassType)>*/;
2567 }
2568 var572 = !var571;
2569 var569 = var572;
2570 goto RET_LABEL570;
2571 RET_LABEL570:(void)0;
2572 }
2573 var568 = var569;
2574 }
2575 if (var568){
2576 {
2577 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (var_v) on <var_v:AbstractCompilerVisitor> */
2578 var575 = var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
2579 if (unlikely(var575 == NULL)) {
2580 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2581 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
2582 show_backtrace(1);
2583 }
2584 var573 = var575;
2585 RET_LABEL574:(void)0;
2586 }
2587 }
2588 {
2589 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var573) on <var573:AbstractCompiler> */
2590 var578 = var573->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var573:AbstractCompiler> */
2591 if (unlikely(var578 == NULL)) {
2592 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
2593 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
2594 show_backtrace(1);
2595 }
2596 var576 = var578;
2597 RET_LABEL577:(void)0;
2598 }
2599 }
2600 var_mainmodule = var576;
2601 {
2602 var579 = ((val* (*)(val* self, val* p0))(var_v->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(var_v, var_main_type) /* init_instance on <var_v:AbstractCompilerVisitor>*/;
2603 }
2604 var_glob_sys = var579;
2605 if (varonce580) {
2606 var581 = varonce580;
2607 } else {
2608 var582 = "glob_sys = ";
2609 var583 = 11;
2610 var584 = standard___standard__NativeString___to_s_with_length(var582, var583);
2611 var581 = var584;
2612 varonce580 = var581;
2613 }
2614 if (varonce585) {
2615 var586 = varonce585;
2616 } else {
2617 var587 = ";";
2618 var588 = 1;
2619 var589 = standard___standard__NativeString___to_s_with_length(var587, var588);
2620 var586 = var589;
2621 varonce585 = var586;
2622 }
2623 var590 = NEW_standard__Array(&type_standard__Array__standard__Object);
2624 { /* var590 = array_instance Array[Object] */
2625 var591 = 3;
2626 var592 = NEW_standard__NativeArray(var591, &type_standard__NativeArray__standard__Object);
2627 ((struct instance_standard__NativeArray*)var592)->values[0] = (val*) var581;
2628 ((struct instance_standard__NativeArray*)var592)->values[1] = (val*) var_glob_sys;
2629 ((struct instance_standard__NativeArray*)var592)->values[2] = (val*) var586;
2630 {
2631 ((void (*)(val* self, val* p0, long p1))(var590->class->vft[COLOR_standard__array__Array__with_native]))(var590, var592, var591) /* with_native on <var590:Array[Object]>*/;
2632 }
2633 }
2634 {
2635 var593 = ((val* (*)(val* self))(var590->class->vft[COLOR_standard__string__Object__to_s]))(var590) /* to_s on <var590:Array[Object]>*/;
2636 }
2637 {
2638 nit___nit__AbstractCompilerVisitor___add(var_v, var593); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
2639 }
2640 if (varonce594) {
2641 var595 = varonce594;
2642 } else {
2643 var596 = "init";
2644 var597 = 4;
2645 var598 = standard___standard__NativeString___to_s_with_length(var596, var597);
2646 var595 = var598;
2647 varonce594 = var595;
2648 }
2649 {
2650 { /* Inline model#MClassType#mclass (var_main_type) on <var_main_type:nullable MClassType(MClassType)> */
2651 var601 = var_main_type->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_main_type:nullable MClassType(MClassType)> */
2652 if (unlikely(var601 == NULL)) {
2653 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2654 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
2655 show_backtrace(1);
2656 }
2657 var599 = var601;
2658 RET_LABEL600:(void)0;
2659 }
2660 }
2661 {
2662 var602 = nit__model___MModule___try_get_primitive_method(var_mainmodule, var595, var599);
2663 }
2664 var_main_init = var602;
2665 var603 = NULL;
2666 if (var_main_init == NULL) {
2667 var604 = 0; /* is null */
2668 } else {
2669 var604 = 1; /* arg is null and recv is not */
2670 }
2671 if (0) {
2672 { /* Inline kernel#Object#!= (var_main_init,var603) on <var_main_init:nullable MMethod> */
2673 var_other = var603;
2674 {
2675 var607 = ((short int (*)(val* self, val* p0))(var_main_init->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_main_init, var_other) /* == on <var_main_init:nullable MMethod(MMethod)>*/;
2676 }
2677 var608 = !var607;
2678 var605 = var608;
2679 goto RET_LABEL606;
2680 RET_LABEL606:(void)0;
2681 }
2682 var604 = var605;
2683 }
2684 if (var604){
2685 var609 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
2686 var610 = 1;
2687 {
2688 standard___standard__Array___with_capacity(var609, var610); /* Direct call array#Array#with_capacity on <var609:Array[RuntimeVariable]>*/
2689 }
2690 var_611 = var609;
2691 {
2692 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_611, var_glob_sys); /* Direct call array#AbstractArray#push on <var_611:Array[RuntimeVariable]>*/
2693 }
2694 {
2695 var612 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(var_v, var_main_init, var_611);
2696 }
2697 } else {
2698 }
2699 if (varonce614) {
2700 var615 = varonce614;
2701 } else {
2702 var616 = "run";
2703 var617 = 3;
2704 var618 = standard___standard__NativeString___to_s_with_length(var616, var617);
2705 var615 = var618;
2706 varonce614 = var615;
2707 }
2708 {
2709 { /* Inline model#MClassType#mclass (var_main_type) on <var_main_type:nullable MClassType(MClassType)> */
2710 var621 = var_main_type->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_main_type:nullable MClassType(MClassType)> */
2711 if (unlikely(var621 == NULL)) {
2712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2713 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
2714 show_backtrace(1);
2715 }
2716 var619 = var621;
2717 RET_LABEL620:(void)0;
2718 }
2719 }
2720 {
2721 var622 = nit__model___MModule___try_get_primitive_method(var_mainmodule, var615, var619);
2722 }
2723 if (var622!=NULL) {
2724 var613 = var622;
2725 } else {
2726 if (varonce623) {
2727 var624 = varonce623;
2728 } else {
2729 var625 = "main";
2730 var626 = 4;
2731 var627 = standard___standard__NativeString___to_s_with_length(var625, var626);
2732 var624 = var627;
2733 varonce623 = var624;
2734 }
2735 {
2736 { /* Inline model#MClassType#mclass (var_main_type) on <var_main_type:nullable MClassType(MClassType)> */
2737 var630 = var_main_type->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_main_type:nullable MClassType(MClassType)> */
2738 if (unlikely(var630 == NULL)) {
2739 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2740 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
2741 show_backtrace(1);
2742 }
2743 var628 = var630;
2744 RET_LABEL629:(void)0;
2745 }
2746 }
2747 {
2748 var631 = nit__model___MModule___try_get_primitive_method(var_mainmodule, var624, var628);
2749 }
2750 var613 = var631;
2751 }
2752 var_main_method = var613;
2753 var632 = NULL;
2754 if (var_main_method == NULL) {
2755 var633 = 0; /* is null */
2756 } else {
2757 var633 = 1; /* arg is null and recv is not */
2758 }
2759 if (0) {
2760 { /* Inline kernel#Object#!= (var_main_method,var632) on <var_main_method:nullable MMethod> */
2761 var_other = var632;
2762 {
2763 var636 = ((short int (*)(val* self, val* p0))(var_main_method->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_main_method, var_other) /* == on <var_main_method:nullable MMethod(MMethod)>*/;
2764 }
2765 var637 = !var636;
2766 var634 = var637;
2767 goto RET_LABEL635;
2768 RET_LABEL635:(void)0;
2769 }
2770 var633 = var634;
2771 }
2772 if (var633){
2773 var638 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
2774 var639 = 1;
2775 {
2776 standard___standard__Array___with_capacity(var638, var639); /* Direct call array#Array#with_capacity on <var638:Array[RuntimeVariable]>*/
2777 }
2778 var_640 = var638;
2779 {
2780 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_640, var_glob_sys); /* Direct call array#AbstractArray#push on <var_640:Array[RuntimeVariable]>*/
2781 }
2782 {
2783 var641 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(var_v, var_main_method, var_640);
2784 }
2785 } else {
2786 }
2787 } else {
2788 }
2789 {
2790 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
2791 var644 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
2792 if (unlikely(var644 == NULL)) {
2793 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2794 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
2795 show_backtrace(1);
2796 }
2797 var642 = var644;
2798 RET_LABEL643:(void)0;
2799 }
2800 }
2801 {
2802 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var642) on <var642:ModelBuilder> */
2803 var647 = var642->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var642:ModelBuilder> */
2804 if (unlikely(var647 == NULL)) {
2805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2806 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
2807 show_backtrace(1);
2808 }
2809 var645 = var647;
2810 RET_LABEL646:(void)0;
2811 }
2812 }
2813 {
2814 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var645) on <var645:ToolContext> */
2815 var650 = var645->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on <var645:ToolContext> */
2816 if (unlikely(var650 == NULL)) {
2817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
2818 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 59);
2819 show_backtrace(1);
2820 }
2821 var648 = var650;
2822 RET_LABEL649:(void)0;
2823 }
2824 }
2825 {
2826 { /* Inline opts#Option#value (var648) on <var648:OptionBool> */
2827 var653 = var648->attrs[COLOR_opts__Option___value].val; /* _value on <var648:OptionBool> */
2828 var651 = var653;
2829 RET_LABEL652:(void)0;
2830 }
2831 }
2832 var654 = ((struct instance_standard__Bool*)var651)->value; /* autounbox from nullable Object to Bool */;
2833 if (var654){
2834 if (varonce655) {
2835 var656 = varonce655;
2836 } else {
2837 var657 = "long count_type_test_resolved_total = 0;";
2838 var658 = 40;
2839 var659 = standard___standard__NativeString___to_s_with_length(var657, var658);
2840 var656 = var659;
2841 varonce655 = var656;
2842 }
2843 {
2844 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var656); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2845 }
2846 if (varonce660) {
2847 var661 = varonce660;
2848 } else {
2849 var662 = "long count_type_test_unresolved_total = 0;";
2850 var663 = 42;
2851 var664 = standard___standard__NativeString___to_s_with_length(var662, var663);
2852 var661 = var664;
2853 varonce660 = var661;
2854 }
2855 {
2856 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var661); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2857 }
2858 if (varonce665) {
2859 var666 = varonce665;
2860 } else {
2861 var667 = "long count_type_test_skipped_total = 0;";
2862 var668 = 39;
2863 var669 = standard___standard__NativeString___to_s_with_length(var667, var668);
2864 var666 = var669;
2865 varonce665 = var666;
2866 }
2867 {
2868 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var666); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2869 }
2870 if (varonce670) {
2871 var671 = varonce670;
2872 } else {
2873 var672 = "long count_type_test_total_total = 0;";
2874 var673 = 37;
2875 var674 = standard___standard__NativeString___to_s_with_length(var672, var673);
2876 var671 = var674;
2877 varonce670 = var671;
2878 }
2879 {
2880 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var671); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2881 }
2882 {
2883 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_tags (self) on <self:AbstractCompiler> */
2884 var677 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_tags].val; /* _count_type_test_tags on <self:AbstractCompiler> */
2885 if (unlikely(var677 == NULL)) {
2886 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_tags");
2887 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 963);
2888 show_backtrace(1);
2889 }
2890 var675 = var677;
2891 RET_LABEL676:(void)0;
2892 }
2893 }
2894 var_678 = var675;
2895 {
2896 var679 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_678);
2897 }
2898 var_680 = var679;
2899 for(;;) {
2900 {
2901 var681 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_680);
2902 }
2903 if (var681){
2904 {
2905 var682 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_680);
2906 }
2907 var_tag683 = var682;
2908 if (varonce684) {
2909 var685 = varonce684;
2910 } else {
2911 var686 = "long count_type_test_total_";
2912 var687 = 27;
2913 var688 = standard___standard__NativeString___to_s_with_length(var686, var687);
2914 var685 = var688;
2915 varonce684 = var685;
2916 }
2917 if (varonce689) {
2918 var690 = varonce689;
2919 } else {
2920 var691 = ";";
2921 var692 = 1;
2922 var693 = standard___standard__NativeString___to_s_with_length(var691, var692);
2923 var690 = var693;
2924 varonce689 = var690;
2925 }
2926 var694 = NEW_standard__Array(&type_standard__Array__standard__Object);
2927 { /* var694 = array_instance Array[Object] */
2928 var695 = 3;
2929 var696 = NEW_standard__NativeArray(var695, &type_standard__NativeArray__standard__Object);
2930 ((struct instance_standard__NativeArray*)var696)->values[0] = (val*) var685;
2931 ((struct instance_standard__NativeArray*)var696)->values[1] = (val*) var_tag683;
2932 ((struct instance_standard__NativeArray*)var696)->values[2] = (val*) var690;
2933 {
2934 ((void (*)(val* self, val* p0, long p1))(var694->class->vft[COLOR_standard__array__Array__with_native]))(var694, var696, var695) /* with_native on <var694:Array[Object]>*/;
2935 }
2936 }
2937 {
2938 var697 = ((val* (*)(val* self))(var694->class->vft[COLOR_standard__string__Object__to_s]))(var694) /* to_s on <var694:Array[Object]>*/;
2939 }
2940 {
2941 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var697); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
2942 }
2943 if (varonce698) {
2944 var699 = varonce698;
2945 } else {
2946 var700 = "count_type_test_total_";
2947 var701 = 22;
2948 var702 = standard___standard__NativeString___to_s_with_length(var700, var701);
2949 var699 = var702;
2950 varonce698 = var699;
2951 }
2952 if (varonce703) {
2953 var704 = varonce703;
2954 } else {
2955 var705 = " = count_type_test_resolved_";
2956 var706 = 28;
2957 var707 = standard___standard__NativeString___to_s_with_length(var705, var706);
2958 var704 = var707;
2959 varonce703 = var704;
2960 }
2961 if (varonce708) {
2962 var709 = varonce708;
2963 } else {
2964 var710 = " + count_type_test_unresolved_";
2965 var711 = 30;
2966 var712 = standard___standard__NativeString___to_s_with_length(var710, var711);
2967 var709 = var712;
2968 varonce708 = var709;
2969 }
2970 if (varonce713) {
2971 var714 = varonce713;
2972 } else {
2973 var715 = " + count_type_test_skipped_";
2974 var716 = 27;
2975 var717 = standard___standard__NativeString___to_s_with_length(var715, var716);
2976 var714 = var717;
2977 varonce713 = var714;
2978 }
2979 if (varonce718) {
2980 var719 = varonce718;
2981 } else {
2982 var720 = ";";
2983 var721 = 1;
2984 var722 = standard___standard__NativeString___to_s_with_length(var720, var721);
2985 var719 = var722;
2986 varonce718 = var719;
2987 }
2988 var723 = NEW_standard__Array(&type_standard__Array__standard__Object);
2989 { /* var723 = array_instance Array[Object] */
2990 var724 = 9;
2991 var725 = NEW_standard__NativeArray(var724, &type_standard__NativeArray__standard__Object);
2992 ((struct instance_standard__NativeArray*)var725)->values[0] = (val*) var699;
2993 ((struct instance_standard__NativeArray*)var725)->values[1] = (val*) var_tag683;
2994 ((struct instance_standard__NativeArray*)var725)->values[2] = (val*) var704;
2995 ((struct instance_standard__NativeArray*)var725)->values[3] = (val*) var_tag683;
2996 ((struct instance_standard__NativeArray*)var725)->values[4] = (val*) var709;
2997 ((struct instance_standard__NativeArray*)var725)->values[5] = (val*) var_tag683;
2998 ((struct instance_standard__NativeArray*)var725)->values[6] = (val*) var714;
2999 ((struct instance_standard__NativeArray*)var725)->values[7] = (val*) var_tag683;
3000 ((struct instance_standard__NativeArray*)var725)->values[8] = (val*) var719;
3001 {
3002 ((void (*)(val* self, val* p0, long p1))(var723->class->vft[COLOR_standard__array__Array__with_native]))(var723, var725, var724) /* with_native on <var723:Array[Object]>*/;
3003 }
3004 }
3005 {
3006 var726 = ((val* (*)(val* self))(var723->class->vft[COLOR_standard__string__Object__to_s]))(var723) /* to_s on <var723:Array[Object]>*/;
3007 }
3008 {
3009 nit___nit__AbstractCompilerVisitor___add(var_v, var726); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3010 }
3011 if (varonce727) {
3012 var728 = varonce727;
3013 } else {
3014 var729 = "count_type_test_resolved_total += count_type_test_resolved_";
3015 var730 = 59;
3016 var731 = standard___standard__NativeString___to_s_with_length(var729, var730);
3017 var728 = var731;
3018 varonce727 = var728;
3019 }
3020 if (varonce732) {
3021 var733 = varonce732;
3022 } else {
3023 var734 = ";";
3024 var735 = 1;
3025 var736 = standard___standard__NativeString___to_s_with_length(var734, var735);
3026 var733 = var736;
3027 varonce732 = var733;
3028 }
3029 var737 = NEW_standard__Array(&type_standard__Array__standard__Object);
3030 { /* var737 = array_instance Array[Object] */
3031 var738 = 3;
3032 var739 = NEW_standard__NativeArray(var738, &type_standard__NativeArray__standard__Object);
3033 ((struct instance_standard__NativeArray*)var739)->values[0] = (val*) var728;
3034 ((struct instance_standard__NativeArray*)var739)->values[1] = (val*) var_tag683;
3035 ((struct instance_standard__NativeArray*)var739)->values[2] = (val*) var733;
3036 {
3037 ((void (*)(val* self, val* p0, long p1))(var737->class->vft[COLOR_standard__array__Array__with_native]))(var737, var739, var738) /* with_native on <var737:Array[Object]>*/;
3038 }
3039 }
3040 {
3041 var740 = ((val* (*)(val* self))(var737->class->vft[COLOR_standard__string__Object__to_s]))(var737) /* to_s on <var737:Array[Object]>*/;
3042 }
3043 {
3044 nit___nit__AbstractCompilerVisitor___add(var_v, var740); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3045 }
3046 if (varonce741) {
3047 var742 = varonce741;
3048 } else {
3049 var743 = "count_type_test_unresolved_total += count_type_test_unresolved_";
3050 var744 = 63;
3051 var745 = standard___standard__NativeString___to_s_with_length(var743, var744);
3052 var742 = var745;
3053 varonce741 = var742;
3054 }
3055 if (varonce746) {
3056 var747 = varonce746;
3057 } else {
3058 var748 = ";";
3059 var749 = 1;
3060 var750 = standard___standard__NativeString___to_s_with_length(var748, var749);
3061 var747 = var750;
3062 varonce746 = var747;
3063 }
3064 var751 = NEW_standard__Array(&type_standard__Array__standard__Object);
3065 { /* var751 = array_instance Array[Object] */
3066 var752 = 3;
3067 var753 = NEW_standard__NativeArray(var752, &type_standard__NativeArray__standard__Object);
3068 ((struct instance_standard__NativeArray*)var753)->values[0] = (val*) var742;
3069 ((struct instance_standard__NativeArray*)var753)->values[1] = (val*) var_tag683;
3070 ((struct instance_standard__NativeArray*)var753)->values[2] = (val*) var747;
3071 {
3072 ((void (*)(val* self, val* p0, long p1))(var751->class->vft[COLOR_standard__array__Array__with_native]))(var751, var753, var752) /* with_native on <var751:Array[Object]>*/;
3073 }
3074 }
3075 {
3076 var754 = ((val* (*)(val* self))(var751->class->vft[COLOR_standard__string__Object__to_s]))(var751) /* to_s on <var751:Array[Object]>*/;
3077 }
3078 {
3079 nit___nit__AbstractCompilerVisitor___add(var_v, var754); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3080 }
3081 if (varonce755) {
3082 var756 = varonce755;
3083 } else {
3084 var757 = "count_type_test_skipped_total += count_type_test_skipped_";
3085 var758 = 57;
3086 var759 = standard___standard__NativeString___to_s_with_length(var757, var758);
3087 var756 = var759;
3088 varonce755 = var756;
3089 }
3090 if (varonce760) {
3091 var761 = varonce760;
3092 } else {
3093 var762 = ";";
3094 var763 = 1;
3095 var764 = standard___standard__NativeString___to_s_with_length(var762, var763);
3096 var761 = var764;
3097 varonce760 = var761;
3098 }
3099 var765 = NEW_standard__Array(&type_standard__Array__standard__Object);
3100 { /* var765 = array_instance Array[Object] */
3101 var766 = 3;
3102 var767 = NEW_standard__NativeArray(var766, &type_standard__NativeArray__standard__Object);
3103 ((struct instance_standard__NativeArray*)var767)->values[0] = (val*) var756;
3104 ((struct instance_standard__NativeArray*)var767)->values[1] = (val*) var_tag683;
3105 ((struct instance_standard__NativeArray*)var767)->values[2] = (val*) var761;
3106 {
3107 ((void (*)(val* self, val* p0, long p1))(var765->class->vft[COLOR_standard__array__Array__with_native]))(var765, var767, var766) /* with_native on <var765:Array[Object]>*/;
3108 }
3109 }
3110 {
3111 var768 = ((val* (*)(val* self))(var765->class->vft[COLOR_standard__string__Object__to_s]))(var765) /* to_s on <var765:Array[Object]>*/;
3112 }
3113 {
3114 nit___nit__AbstractCompilerVisitor___add(var_v, var768); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3115 }
3116 if (varonce769) {
3117 var770 = varonce769;
3118 } else {
3119 var771 = "count_type_test_total_total += count_type_test_total_";
3120 var772 = 53;
3121 var773 = standard___standard__NativeString___to_s_with_length(var771, var772);
3122 var770 = var773;
3123 varonce769 = var770;
3124 }
3125 if (varonce774) {
3126 var775 = varonce774;
3127 } else {
3128 var776 = ";";
3129 var777 = 1;
3130 var778 = standard___standard__NativeString___to_s_with_length(var776, var777);
3131 var775 = var778;
3132 varonce774 = var775;
3133 }
3134 var779 = NEW_standard__Array(&type_standard__Array__standard__Object);
3135 { /* var779 = array_instance Array[Object] */
3136 var780 = 3;
3137 var781 = NEW_standard__NativeArray(var780, &type_standard__NativeArray__standard__Object);
3138 ((struct instance_standard__NativeArray*)var781)->values[0] = (val*) var770;
3139 ((struct instance_standard__NativeArray*)var781)->values[1] = (val*) var_tag683;
3140 ((struct instance_standard__NativeArray*)var781)->values[2] = (val*) var775;
3141 {
3142 ((void (*)(val* self, val* p0, long p1))(var779->class->vft[COLOR_standard__array__Array__with_native]))(var779, var781, var780) /* with_native on <var779:Array[Object]>*/;
3143 }
3144 }
3145 {
3146 var782 = ((val* (*)(val* self))(var779->class->vft[COLOR_standard__string__Object__to_s]))(var779) /* to_s on <var779:Array[Object]>*/;
3147 }
3148 {
3149 nit___nit__AbstractCompilerVisitor___add(var_v, var782); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3150 }
3151 {
3152 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_680); /* Direct call array#ArrayIterator#next on <var_680:ArrayIterator[String]>*/
3153 }
3154 } else {
3155 goto BREAK_label783;
3156 }
3157 }
3158 BREAK_label783: (void)0;
3159 {
3160 { /* Inline abstract_collection#Iterator#finish (var_680) on <var_680:ArrayIterator[String]> */
3161 RET_LABEL784:(void)0;
3162 }
3163 }
3164 if (varonce785) {
3165 var786 = varonce785;
3166 } else {
3167 var787 = "printf(\"# dynamic count_type_test: total %l\\n\");";
3168 var788 = 48;
3169 var789 = standard___standard__NativeString___to_s_with_length(var787, var788);
3170 var786 = var789;
3171 varonce785 = var786;
3172 }
3173 {
3174 nit___nit__AbstractCompilerVisitor___add(var_v, var786); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3175 }
3176 if (varonce790) {
3177 var791 = varonce790;
3178 } else {
3179 var792 = "printf(\"\\tresolved\\tunresolved\\tskipped\\ttotal\\n\");";
3180 var793 = 51;
3181 var794 = standard___standard__NativeString___to_s_with_length(var792, var793);
3182 var791 = var794;
3183 varonce790 = var791;
3184 }
3185 {
3186 nit___nit__AbstractCompilerVisitor___add(var_v, var791); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3187 }
3188 {
3189 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_tags (self) on <self:AbstractCompiler> */
3190 var797 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_tags].val; /* _count_type_test_tags on <self:AbstractCompiler> */
3191 if (unlikely(var797 == NULL)) {
3192 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_tags");
3193 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 963);
3194 show_backtrace(1);
3195 }
3196 var795 = var797;
3197 RET_LABEL796:(void)0;
3198 }
3199 }
3200 {
3201 var798 = standard__array___Collection___to_a(var795);
3202 }
3203 var_tags = var798;
3204 if (varonce799) {
3205 var800 = varonce799;
3206 } else {
3207 var801 = "total";
3208 var802 = 5;
3209 var803 = standard___standard__NativeString___to_s_with_length(var801, var802);
3210 var800 = var803;
3211 varonce799 = var800;
3212 }
3213 {
3214 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_tags, var800); /* Direct call array#Array#add on <var_tags:Array[String]>*/
3215 }
3216 var_804 = var_tags;
3217 {
3218 var805 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_804);
3219 }
3220 var_806 = var805;
3221 for(;;) {
3222 {
3223 var807 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_806);
3224 }
3225 if (var807){
3226 {
3227 var808 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_806);
3228 }
3229 var_tag809 = var808;
3230 if (varonce810) {
3231 var811 = varonce810;
3232 } else {
3233 var812 = "printf(\"";
3234 var813 = 8;
3235 var814 = standard___standard__NativeString___to_s_with_length(var812, var813);
3236 var811 = var814;
3237 varonce810 = var811;
3238 }
3239 if (varonce815) {
3240 var816 = varonce815;
3241 } else {
3242 var817 = "\");";
3243 var818 = 3;
3244 var819 = standard___standard__NativeString___to_s_with_length(var817, var818);
3245 var816 = var819;
3246 varonce815 = var816;
3247 }
3248 var820 = NEW_standard__Array(&type_standard__Array__standard__Object);
3249 { /* var820 = array_instance Array[Object] */
3250 var821 = 3;
3251 var822 = NEW_standard__NativeArray(var821, &type_standard__NativeArray__standard__Object);
3252 ((struct instance_standard__NativeArray*)var822)->values[0] = (val*) var811;
3253 ((struct instance_standard__NativeArray*)var822)->values[1] = (val*) var_tag809;
3254 ((struct instance_standard__NativeArray*)var822)->values[2] = (val*) var816;
3255 {
3256 ((void (*)(val* self, val* p0, long p1))(var820->class->vft[COLOR_standard__array__Array__with_native]))(var820, var822, var821) /* with_native on <var820:Array[Object]>*/;
3257 }
3258 }
3259 {
3260 var823 = ((val* (*)(val* self))(var820->class->vft[COLOR_standard__string__Object__to_s]))(var820) /* to_s on <var820:Array[Object]>*/;
3261 }
3262 {
3263 nit___nit__AbstractCompilerVisitor___add(var_v, var823); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3264 }
3265 if (varonce824) {
3266 var825 = varonce824;
3267 } else {
3268 var826 = "printf(\"\\t%ld (%.2f%%)\", count_type_test_resolved_";
3269 var827 = 50;
3270 var828 = standard___standard__NativeString___to_s_with_length(var826, var827);
3271 var825 = var828;
3272 varonce824 = var825;
3273 }
3274 if (varonce829) {
3275 var830 = varonce829;
3276 } else {
3277 var831 = ", 100.0*count_type_test_resolved_";
3278 var832 = 33;
3279 var833 = standard___standard__NativeString___to_s_with_length(var831, var832);
3280 var830 = var833;
3281 varonce829 = var830;
3282 }
3283 if (varonce834) {
3284 var835 = varonce834;
3285 } else {
3286 var836 = "/count_type_test_total_total);";
3287 var837 = 30;
3288 var838 = standard___standard__NativeString___to_s_with_length(var836, var837);
3289 var835 = var838;
3290 varonce834 = var835;
3291 }
3292 var839 = NEW_standard__Array(&type_standard__Array__standard__Object);
3293 { /* var839 = array_instance Array[Object] */
3294 var840 = 5;
3295 var841 = NEW_standard__NativeArray(var840, &type_standard__NativeArray__standard__Object);
3296 ((struct instance_standard__NativeArray*)var841)->values[0] = (val*) var825;
3297 ((struct instance_standard__NativeArray*)var841)->values[1] = (val*) var_tag809;
3298 ((struct instance_standard__NativeArray*)var841)->values[2] = (val*) var830;
3299 ((struct instance_standard__NativeArray*)var841)->values[3] = (val*) var_tag809;
3300 ((struct instance_standard__NativeArray*)var841)->values[4] = (val*) var835;
3301 {
3302 ((void (*)(val* self, val* p0, long p1))(var839->class->vft[COLOR_standard__array__Array__with_native]))(var839, var841, var840) /* with_native on <var839:Array[Object]>*/;
3303 }
3304 }
3305 {
3306 var842 = ((val* (*)(val* self))(var839->class->vft[COLOR_standard__string__Object__to_s]))(var839) /* to_s on <var839:Array[Object]>*/;
3307 }
3308 {
3309 nit___nit__AbstractCompilerVisitor___add(var_v, var842); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3310 }
3311 if (varonce843) {
3312 var844 = varonce843;
3313 } else {
3314 var845 = "printf(\"\\t%ld (%.2f%%)\", count_type_test_unresolved_";
3315 var846 = 52;
3316 var847 = standard___standard__NativeString___to_s_with_length(var845, var846);
3317 var844 = var847;
3318 varonce843 = var844;
3319 }
3320 if (varonce848) {
3321 var849 = varonce848;
3322 } else {
3323 var850 = ", 100.0*count_type_test_unresolved_";
3324 var851 = 35;
3325 var852 = standard___standard__NativeString___to_s_with_length(var850, var851);
3326 var849 = var852;
3327 varonce848 = var849;
3328 }
3329 if (varonce853) {
3330 var854 = varonce853;
3331 } else {
3332 var855 = "/count_type_test_total_total);";
3333 var856 = 30;
3334 var857 = standard___standard__NativeString___to_s_with_length(var855, var856);
3335 var854 = var857;
3336 varonce853 = var854;
3337 }
3338 var858 = NEW_standard__Array(&type_standard__Array__standard__Object);
3339 { /* var858 = array_instance Array[Object] */
3340 var859 = 5;
3341 var860 = NEW_standard__NativeArray(var859, &type_standard__NativeArray__standard__Object);
3342 ((struct instance_standard__NativeArray*)var860)->values[0] = (val*) var844;
3343 ((struct instance_standard__NativeArray*)var860)->values[1] = (val*) var_tag809;
3344 ((struct instance_standard__NativeArray*)var860)->values[2] = (val*) var849;
3345 ((struct instance_standard__NativeArray*)var860)->values[3] = (val*) var_tag809;
3346 ((struct instance_standard__NativeArray*)var860)->values[4] = (val*) var854;
3347 {
3348 ((void (*)(val* self, val* p0, long p1))(var858->class->vft[COLOR_standard__array__Array__with_native]))(var858, var860, var859) /* with_native on <var858:Array[Object]>*/;
3349 }
3350 }
3351 {
3352 var861 = ((val* (*)(val* self))(var858->class->vft[COLOR_standard__string__Object__to_s]))(var858) /* to_s on <var858:Array[Object]>*/;
3353 }
3354 {
3355 nit___nit__AbstractCompilerVisitor___add(var_v, var861); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3356 }
3357 if (varonce862) {
3358 var863 = varonce862;
3359 } else {
3360 var864 = "printf(\"\\t%ld (%.2f%%)\", count_type_test_skipped_";
3361 var865 = 49;
3362 var866 = standard___standard__NativeString___to_s_with_length(var864, var865);
3363 var863 = var866;
3364 varonce862 = var863;
3365 }
3366 if (varonce867) {
3367 var868 = varonce867;
3368 } else {
3369 var869 = ", 100.0*count_type_test_skipped_";
3370 var870 = 32;
3371 var871 = standard___standard__NativeString___to_s_with_length(var869, var870);
3372 var868 = var871;
3373 varonce867 = var868;
3374 }
3375 if (varonce872) {
3376 var873 = varonce872;
3377 } else {
3378 var874 = "/count_type_test_total_total);";
3379 var875 = 30;
3380 var876 = standard___standard__NativeString___to_s_with_length(var874, var875);
3381 var873 = var876;
3382 varonce872 = var873;
3383 }
3384 var877 = NEW_standard__Array(&type_standard__Array__standard__Object);
3385 { /* var877 = array_instance Array[Object] */
3386 var878 = 5;
3387 var879 = NEW_standard__NativeArray(var878, &type_standard__NativeArray__standard__Object);
3388 ((struct instance_standard__NativeArray*)var879)->values[0] = (val*) var863;
3389 ((struct instance_standard__NativeArray*)var879)->values[1] = (val*) var_tag809;
3390 ((struct instance_standard__NativeArray*)var879)->values[2] = (val*) var868;
3391 ((struct instance_standard__NativeArray*)var879)->values[3] = (val*) var_tag809;
3392 ((struct instance_standard__NativeArray*)var879)->values[4] = (val*) var873;
3393 {
3394 ((void (*)(val* self, val* p0, long p1))(var877->class->vft[COLOR_standard__array__Array__with_native]))(var877, var879, var878) /* with_native on <var877:Array[Object]>*/;
3395 }
3396 }
3397 {
3398 var880 = ((val* (*)(val* self))(var877->class->vft[COLOR_standard__string__Object__to_s]))(var877) /* to_s on <var877:Array[Object]>*/;
3399 }
3400 {
3401 nit___nit__AbstractCompilerVisitor___add(var_v, var880); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3402 }
3403 if (varonce881) {
3404 var882 = varonce881;
3405 } else {
3406 var883 = "printf(\"\\t%ld (%.2f%%)\\n\", count_type_test_total_";
3407 var884 = 49;
3408 var885 = standard___standard__NativeString___to_s_with_length(var883, var884);
3409 var882 = var885;
3410 varonce881 = var882;
3411 }
3412 if (varonce886) {
3413 var887 = varonce886;
3414 } else {
3415 var888 = ", 100.0*count_type_test_total_";
3416 var889 = 30;
3417 var890 = standard___standard__NativeString___to_s_with_length(var888, var889);
3418 var887 = var890;
3419 varonce886 = var887;
3420 }
3421 if (varonce891) {
3422 var892 = varonce891;
3423 } else {
3424 var893 = "/count_type_test_total_total);";
3425 var894 = 30;
3426 var895 = standard___standard__NativeString___to_s_with_length(var893, var894);
3427 var892 = var895;
3428 varonce891 = var892;
3429 }
3430 var896 = NEW_standard__Array(&type_standard__Array__standard__Object);
3431 { /* var896 = array_instance Array[Object] */
3432 var897 = 5;
3433 var898 = NEW_standard__NativeArray(var897, &type_standard__NativeArray__standard__Object);
3434 ((struct instance_standard__NativeArray*)var898)->values[0] = (val*) var882;
3435 ((struct instance_standard__NativeArray*)var898)->values[1] = (val*) var_tag809;
3436 ((struct instance_standard__NativeArray*)var898)->values[2] = (val*) var887;
3437 ((struct instance_standard__NativeArray*)var898)->values[3] = (val*) var_tag809;
3438 ((struct instance_standard__NativeArray*)var898)->values[4] = (val*) var892;
3439 {
3440 ((void (*)(val* self, val* p0, long p1))(var896->class->vft[COLOR_standard__array__Array__with_native]))(var896, var898, var897) /* with_native on <var896:Array[Object]>*/;
3441 }
3442 }
3443 {
3444 var899 = ((val* (*)(val* self))(var896->class->vft[COLOR_standard__string__Object__to_s]))(var896) /* to_s on <var896:Array[Object]>*/;
3445 }
3446 {
3447 nit___nit__AbstractCompilerVisitor___add(var_v, var899); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3448 }
3449 {
3450 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_806); /* Direct call array#ArrayIterator#next on <var_806:ArrayIterator[String]>*/
3451 }
3452 } else {
3453 goto BREAK_label900;
3454 }
3455 }
3456 BREAK_label900: (void)0;
3457 {
3458 { /* Inline abstract_collection#Iterator#finish (var_806) on <var_806:ArrayIterator[String]> */
3459 RET_LABEL901:(void)0;
3460 }
3461 }
3462 } else {
3463 }
3464 {
3465 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
3466 var904 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
3467 if (unlikely(var904 == NULL)) {
3468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3469 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
3470 show_backtrace(1);
3471 }
3472 var902 = var904;
3473 RET_LABEL903:(void)0;
3474 }
3475 }
3476 {
3477 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var902) on <var902:ModelBuilder> */
3478 var907 = var902->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var902:ModelBuilder> */
3479 if (unlikely(var907 == NULL)) {
3480 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3481 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
3482 show_backtrace(1);
3483 }
3484 var905 = var907;
3485 RET_LABEL906:(void)0;
3486 }
3487 }
3488 {
3489 { /* Inline abstract_compiler#ToolContext#opt_invocation_metrics (var905) on <var905:ToolContext> */
3490 var910 = var905->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_invocation_metrics].val; /* _opt_invocation_metrics on <var905:ToolContext> */
3491 if (unlikely(var910 == NULL)) {
3492 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
3493 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 61);
3494 show_backtrace(1);
3495 }
3496 var908 = var910;
3497 RET_LABEL909:(void)0;
3498 }
3499 }
3500 {
3501 { /* Inline opts#Option#value (var908) on <var908:OptionBool> */
3502 var913 = var908->attrs[COLOR_opts__Option___value].val; /* _value on <var908:OptionBool> */
3503 var911 = var913;
3504 RET_LABEL912:(void)0;
3505 }
3506 }
3507 var914 = ((struct instance_standard__Bool*)var911)->value; /* autounbox from nullable Object to Bool */;
3508 if (var914){
3509 if (varonce915) {
3510 var916 = varonce915;
3511 } else {
3512 var917 = "long count_invoke_total;";
3513 var918 = 24;
3514 var919 = standard___standard__NativeString___to_s_with_length(var917, var918);
3515 var916 = var919;
3516 varonce915 = var916;
3517 }
3518 {
3519 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var916); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
3520 }
3521 if (varonce920) {
3522 var921 = varonce920;
3523 } else {
3524 var922 = "count_invoke_total = count_invoke_by_tables + count_invoke_by_direct + count_invoke_by_inline;";
3525 var923 = 94;
3526 var924 = standard___standard__NativeString___to_s_with_length(var922, var923);
3527 var921 = var924;
3528 varonce920 = var921;
3529 }
3530 {
3531 nit___nit__AbstractCompilerVisitor___add(var_v, var921); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3532 }
3533 if (varonce925) {
3534 var926 = varonce925;
3535 } else {
3536 var927 = "printf(\"# dynamic count_invocation: total %ld\\n\", count_invoke_total);";
3537 var928 = 70;
3538 var929 = standard___standard__NativeString___to_s_with_length(var927, var928);
3539 var926 = var929;
3540 varonce925 = var926;
3541 }
3542 {
3543 nit___nit__AbstractCompilerVisitor___add(var_v, var926); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3544 }
3545 if (varonce930) {
3546 var931 = varonce930;
3547 } else {
3548 var932 = "printf(\"by table: %ld (%.2f%%)\\n\", count_invoke_by_tables, 100.0*count_invoke_by_tables/count_invoke_total);";
3549 var933 = 108;
3550 var934 = standard___standard__NativeString___to_s_with_length(var932, var933);
3551 var931 = var934;
3552 varonce930 = var931;
3553 }
3554 {
3555 nit___nit__AbstractCompilerVisitor___add(var_v, var931); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3556 }
3557 if (varonce935) {
3558 var936 = varonce935;
3559 } else {
3560 var937 = "printf(\"direct: %ld (%.2f%%)\\n\", count_invoke_by_direct, 100.0*count_invoke_by_direct/count_invoke_total);";
3561 var938 = 108;
3562 var939 = standard___standard__NativeString___to_s_with_length(var937, var938);
3563 var936 = var939;
3564 varonce935 = var936;
3565 }
3566 {
3567 nit___nit__AbstractCompilerVisitor___add(var_v, var936); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3568 }
3569 if (varonce940) {
3570 var941 = varonce940;
3571 } else {
3572 var942 = "printf(\"inlined: %ld (%.2f%%)\\n\", count_invoke_by_inline, 100.0*count_invoke_by_inline/count_invoke_total);";
3573 var943 = 108;
3574 var944 = standard___standard__NativeString___to_s_with_length(var942, var943);
3575 var941 = var944;
3576 varonce940 = var941;
3577 }
3578 {
3579 nit___nit__AbstractCompilerVisitor___add(var_v, var941); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3580 }
3581 } else {
3582 }
3583 {
3584 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
3585 var947 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
3586 if (unlikely(var947 == NULL)) {
3587 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3588 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
3589 show_backtrace(1);
3590 }
3591 var945 = var947;
3592 RET_LABEL946:(void)0;
3593 }
3594 }
3595 {
3596 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var945) on <var945:ModelBuilder> */
3597 var950 = var945->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var945:ModelBuilder> */
3598 if (unlikely(var950 == NULL)) {
3599 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3600 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
3601 show_backtrace(1);
3602 }
3603 var948 = var950;
3604 RET_LABEL949:(void)0;
3605 }
3606 }
3607 {
3608 { /* Inline abstract_compiler#ToolContext#opt_isset_checks_metrics (var948) on <var948:ToolContext> */
3609 var953 = var948->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on <var948:ToolContext> */
3610 if (unlikely(var953 == NULL)) {
3611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
3612 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 63);
3613 show_backtrace(1);
3614 }
3615 var951 = var953;
3616 RET_LABEL952:(void)0;
3617 }
3618 }
3619 {
3620 { /* Inline opts#Option#value (var951) on <var951:OptionBool> */
3621 var956 = var951->attrs[COLOR_opts__Option___value].val; /* _value on <var951:OptionBool> */
3622 var954 = var956;
3623 RET_LABEL955:(void)0;
3624 }
3625 }
3626 var957 = ((struct instance_standard__Bool*)var954)->value; /* autounbox from nullable Object to Bool */;
3627 if (var957){
3628 if (varonce958) {
3629 var959 = varonce958;
3630 } else {
3631 var960 = "printf(\"# dynamic attribute reads: %ld\\n\", count_attr_reads);";
3632 var961 = 61;
3633 var962 = standard___standard__NativeString___to_s_with_length(var960, var961);
3634 var959 = var962;
3635 varonce958 = var959;
3636 }
3637 {
3638 nit___nit__AbstractCompilerVisitor___add(var_v, var959); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3639 }
3640 if (varonce963) {
3641 var964 = varonce963;
3642 } else {
3643 var965 = "printf(\"# dynamic isset checks: %ld\\n\", count_isset_checks);";
3644 var966 = 60;
3645 var967 = standard___standard__NativeString___to_s_with_length(var965, var966);
3646 var964 = var967;
3647 varonce963 = var964;
3648 }
3649 {
3650 nit___nit__AbstractCompilerVisitor___add(var_v, var964); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3651 }
3652 } else {
3653 }
3654 if (varonce968) {
3655 var969 = varonce968;
3656 } else {
3657 var970 = "return 0;";
3658 var971 = 9;
3659 var972 = standard___standard__NativeString___to_s_with_length(var970, var971);
3660 var969 = var972;
3661 varonce968 = var969;
3662 }
3663 {
3664 nit___nit__AbstractCompilerVisitor___add(var_v, var969); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3665 }
3666 if (varonce973) {
3667 var974 = varonce973;
3668 } else {
3669 var975 = "}";
3670 var976 = 1;
3671 var977 = standard___standard__NativeString___to_s_with_length(var975, var976);
3672 var974 = var977;
3673 varonce973 = var974;
3674 }
3675 {
3676 nit___nit__AbstractCompilerVisitor___add(var_v, var974); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3677 }
3678 {
3679 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:AbstractCompiler> */
3680 var980 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:AbstractCompiler> */
3681 if (unlikely(var980 == NULL)) {
3682 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3683 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
3684 show_backtrace(1);
3685 }
3686 var978 = var980;
3687 RET_LABEL979:(void)0;
3688 }
3689 }
3690 {
3691 { /* Inline mmodule#MModule#in_importation (var978) on <var978:MModule> */
3692 var983 = var978->attrs[COLOR_nit__mmodule__MModule___in_importation].val; /* _in_importation on <var978:MModule> */
3693 if (unlikely(var983 == NULL)) {
3694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _in_importation");
3695 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 96);
3696 show_backtrace(1);
3697 }
3698 var981 = var983;
3699 RET_LABEL982:(void)0;
3700 }
3701 }
3702 {
3703 var984 = poset___poset__POSetElement___greaters(var981);
3704 }
3705 var_985 = var984;
3706 {
3707 var986 = ((val* (*)(val* self))(var_985->class->vft[COLOR_standard__abstract_collection__Collection__iterator]))(var_985) /* iterator on <var_985:Collection[MModule]>*/;
3708 }
3709 var_987 = var986;
3710 for(;;) {
3711 {
3712 var988 = ((short int (*)(val* self))(var_987->class->vft[COLOR_standard__abstract_collection__Iterator__is_ok]))(var_987) /* is_ok on <var_987:Iterator[MModule]>*/;
3713 }
3714 if (var988){
3715 {
3716 var989 = ((val* (*)(val* self))(var_987->class->vft[COLOR_standard__abstract_collection__Iterator__item]))(var_987) /* item on <var_987:Iterator[MModule]>*/;
3717 }
3718 var_m = var989;
3719 if (varonce990) {
3720 var991 = varonce990;
3721 } else {
3722 var992 = "FILE_";
3723 var993 = 5;
3724 var994 = standard___standard__NativeString___to_s_with_length(var992, var993);
3725 var991 = var994;
3726 varonce990 = var991;
3727 }
3728 {
3729 var995 = nit___nit__MModule___nit__model_base__MEntity__c_name(var_m);
3730 }
3731 {
3732 var996 = ((val* (*)(val* self, val* p0))(var991->class->vft[COLOR_standard__string__String___43d]))(var991, var995) /* + on <var991:String>*/;
3733 }
3734 var_f = var996;
3735 if (varonce997) {
3736 var998 = varonce997;
3737 } else {
3738 var999 = "const char ";
3739 var1000 = 11;
3740 var1001 = standard___standard__NativeString___to_s_with_length(var999, var1000);
3741 var998 = var1001;
3742 varonce997 = var998;
3743 }
3744 if (varonce1002) {
3745 var1003 = varonce1002;
3746 } else {
3747 var1004 = "[] = \"";
3748 var1005 = 6;
3749 var1006 = standard___standard__NativeString___to_s_with_length(var1004, var1005);
3750 var1003 = var1006;
3751 varonce1002 = var1003;
3752 }
3753 {
3754 { /* Inline mmodule#MModule#location (var_m) on <var_m:MModule> */
3755 var1009 = var_m->attrs[COLOR_nit__mmodule__MModule___location].val; /* _location on <var_m:MModule> */
3756 if (unlikely(var1009 == NULL)) {
3757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
3758 PRINT_ERROR(" (%s:%d)\n", FILE_nit__mmodule, 90);
3759 show_backtrace(1);
3760 }
3761 var1007 = var1009;
3762 RET_LABEL1008:(void)0;
3763 }
3764 }
3765 {
3766 { /* Inline location#Location#file (var1007) on <var1007:Location> */
3767 var1012 = var1007->attrs[COLOR_nit__location__Location___file].val; /* _file on <var1007:Location> */
3768 var1010 = var1012;
3769 RET_LABEL1011:(void)0;
3770 }
3771 }
3772 if (var1010 == NULL) {
3773 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3774 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 862);
3775 show_backtrace(1);
3776 } else {
3777 { /* Inline location#SourceFile#filename (var1010) on <var1010:nullable SourceFile> */
3778 if (unlikely(var1010 == NULL)) {
3779 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3780 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
3781 show_backtrace(1);
3782 }
3783 var1015 = var1010->attrs[COLOR_nit__location__SourceFile___filename].val; /* _filename on <var1010:nullable SourceFile> */
3784 if (unlikely(var1015 == NULL)) {
3785 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
3786 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
3787 show_backtrace(1);
3788 }
3789 var1013 = var1015;
3790 RET_LABEL1014:(void)0;
3791 }
3792 }
3793 {
3794 var1016 = standard___standard__Text___escape_to_c(var1013);
3795 }
3796 if (varonce1017) {
3797 var1018 = varonce1017;
3798 } else {
3799 var1019 = "\";";
3800 var1020 = 2;
3801 var1021 = standard___standard__NativeString___to_s_with_length(var1019, var1020);
3802 var1018 = var1021;
3803 varonce1017 = var1018;
3804 }
3805 var1022 = NEW_standard__Array(&type_standard__Array__standard__Object);
3806 { /* var1022 = array_instance Array[Object] */
3807 var1023 = 5;
3808 var1024 = NEW_standard__NativeArray(var1023, &type_standard__NativeArray__standard__Object);
3809 ((struct instance_standard__NativeArray*)var1024)->values[0] = (val*) var998;
3810 ((struct instance_standard__NativeArray*)var1024)->values[1] = (val*) var_f;
3811 ((struct instance_standard__NativeArray*)var1024)->values[2] = (val*) var1003;
3812 ((struct instance_standard__NativeArray*)var1024)->values[3] = (val*) var1016;
3813 ((struct instance_standard__NativeArray*)var1024)->values[4] = (val*) var1018;
3814 {
3815 ((void (*)(val* self, val* p0, long p1))(var1022->class->vft[COLOR_standard__array__Array__with_native]))(var1022, var1024, var1023) /* with_native on <var1022:Array[Object]>*/;
3816 }
3817 }
3818 {
3819 var1025 = ((val* (*)(val* self))(var1022->class->vft[COLOR_standard__string__Object__to_s]))(var1022) /* to_s on <var1022:Array[Object]>*/;
3820 }
3821 {
3822 nit___nit__AbstractCompilerVisitor___add(var_v, var1025); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3823 }
3824 if (varonce1026) {
3825 var1027 = varonce1026;
3826 } else {
3827 var1028 = "extern const char ";
3828 var1029 = 18;
3829 var1030 = standard___standard__NativeString___to_s_with_length(var1028, var1029);
3830 var1027 = var1030;
3831 varonce1026 = var1027;
3832 }
3833 if (varonce1031) {
3834 var1032 = varonce1031;
3835 } else {
3836 var1033 = "[];";
3837 var1034 = 3;
3838 var1035 = standard___standard__NativeString___to_s_with_length(var1033, var1034);
3839 var1032 = var1035;
3840 varonce1031 = var1032;
3841 }
3842 var1036 = NEW_standard__Array(&type_standard__Array__standard__Object);
3843 { /* var1036 = array_instance Array[Object] */
3844 var1037 = 3;
3845 var1038 = NEW_standard__NativeArray(var1037, &type_standard__NativeArray__standard__Object);
3846 ((struct instance_standard__NativeArray*)var1038)->values[0] = (val*) var1027;
3847 ((struct instance_standard__NativeArray*)var1038)->values[1] = (val*) var_f;
3848 ((struct instance_standard__NativeArray*)var1038)->values[2] = (val*) var1032;
3849 {
3850 ((void (*)(val* self, val* p0, long p1))(var1036->class->vft[COLOR_standard__array__Array__with_native]))(var1036, var1038, var1037) /* with_native on <var1036:Array[Object]>*/;
3851 }
3852 }
3853 {
3854 var1039 = ((val* (*)(val* self))(var1036->class->vft[COLOR_standard__string__Object__to_s]))(var1036) /* to_s on <var1036:Array[Object]>*/;
3855 }
3856 {
3857 nit___nit__AbstractCompiler___provide_declaration(self, var_f, var1039); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <self:AbstractCompiler>*/
3858 }
3859 {
3860 ((void (*)(val* self))(var_987->class->vft[COLOR_standard__abstract_collection__Iterator__next]))(var_987) /* next on <var_987:Iterator[MModule]>*/;
3861 }
3862 } else {
3863 goto BREAK_label1040;
3864 }
3865 }
3866 BREAK_label1040: (void)0;
3867 {
3868 { /* Inline abstract_collection#Iterator#finish (var_987) on <var_987:Iterator[MModule]> */
3869 RET_LABEL1041:(void)0;
3870 }
3871 }
3872 RET_LABEL:;
3873 }
3874 /* method abstract_compiler#AbstractCompiler#compile_nitni_global_ref_functions for (self: AbstractCompiler) */
3875 void nit___nit__AbstractCompiler___compile_nitni_global_ref_functions(val* self) {
3876 val* var /* : AbstractCompilerVisitor */;
3877 val* var_v /* var v: AbstractCompilerVisitor */;
3878 static val* varonce;
3879 val* var1 /* : String */;
3880 char* var2 /* : NativeString */;
3881 long var3 /* : Int */;
3882 val* var4 /* : FlatString */;
3883 {
3884 var = ((val* (*)(val* self))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompiler__new_visitor]))(self) /* new_visitor on <self:AbstractCompiler>*/;
3885 }
3886 var_v = var;
3887 if (varonce) {
3888 var1 = varonce;
3889 } else {
3890 var2 = "struct nitni_global_ref_list_t *nitni_global_ref_list;\nvoid initialize_nitni_global_refs() {\n\11nitni_global_ref_list = (struct nitni_global_ref_list_t*)nit_alloc(sizeof(struct nitni_global_ref_list_t));\n\11nitni_global_ref_list->head = NULL;\n\11nitni_global_ref_list->tail = NULL;\n}\n\nvoid nitni_global_ref_add( struct nitni_ref *ref ) {\n\11if ( nitni_global_ref_list->head == NULL ) {\n\11\11nitni_global_ref_list->head = ref;\n\11\11ref->prev = NULL;\n\11} else {\n\11\11nitni_global_ref_list->tail->next = ref;\n\11\11ref->prev = nitni_global_ref_list->tail;\n\11}\n\11nitni_global_ref_list->tail = ref;\n\n\11ref->next = NULL;\n}\n\nvoid nitni_global_ref_remove( struct nitni_ref *ref ) {\n\11if ( ref->prev == NULL ) {\n\11\11nitni_global_ref_list->head = ref->next;\n\11} else {\n\11\11ref->prev->next = ref->next;\n\11}\n\n\11if ( ref->next == NULL ) {\n\11\11nitni_global_ref_list->tail = ref->prev;\n\11} else {\n\11\11ref->next->prev = ref->prev;\n\11}\n}\n\nextern void nitni_global_ref_incr( struct nitni_ref *ref ) {\n\11if ( ref->count == 0 ) /* not registered */\n\11{\n\11\11/* add to list */\n\11\11nitni_global_ref_add( ref );\n\11}\n\n\11ref->count ++;\n}\n\nextern void nitni_global_ref_decr( struct nitni_ref *ref ) {\n\11if ( ref->count == 1 ) /* was last reference */\n\11{\n\11\11/* remove from list */\n\11\11nitni_global_ref_remove( ref );\n\11}\n\n\11ref->count --;\n}\n";
3891 var3 = 1260;
3892 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
3893 var1 = var4;
3894 varonce = var1;
3895 }
3896 {
3897 nit___nit__AbstractCompilerVisitor___add(var_v, var1); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
3898 }
3899 RET_LABEL:;
3900 }
3901 /* method abstract_compiler#AbstractCompiler#extern_bodies for (self: AbstractCompiler): Array[ExternFile] */
3902 val* nit___nit__AbstractCompiler___extern_bodies(val* self) {
3903 val* var /* : Array[ExternFile] */;
3904 val* var1 /* : Array[ExternFile] */;
3905 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___extern_bodies].val; /* _extern_bodies on <self:AbstractCompiler> */
3906 if (unlikely(var1 == NULL)) {
3907 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _extern_bodies");
3908 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 928);
3909 show_backtrace(1);
3910 }
3911 var = var1;
3912 RET_LABEL:;
3913 return var;
3914 }
3915 /* method abstract_compiler#AbstractCompiler#files_to_copy for (self: AbstractCompiler): Array[String] */
3916 val* nit___nit__AbstractCompiler___files_to_copy(val* self) {
3917 val* var /* : Array[String] */;
3918 val* var1 /* : Array[String] */;
3919 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___files_to_copy].val; /* _files_to_copy on <self:AbstractCompiler> */
3920 if (unlikely(var1 == NULL)) {
3921 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files_to_copy");
3922 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 931);
3923 show_backtrace(1);
3924 }
3925 var = var1;
3926 RET_LABEL:;
3927 return var;
3928 }
3929 /* method abstract_compiler#AbstractCompiler#seen_extern for (self: AbstractCompiler): ArraySet[String] */
3930 val* nit___nit__AbstractCompiler___seen_extern(val* self) {
3931 val* var /* : ArraySet[String] */;
3932 val* var1 /* : ArraySet[String] */;
3933 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___seen_extern].val; /* _seen_extern on <self:AbstractCompiler> */
3934 if (unlikely(var1 == NULL)) {
3935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _seen_extern");
3936 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 934);
3937 show_backtrace(1);
3938 }
3939 var = var1;
3940 RET_LABEL:;
3941 return var;
3942 }
3943 /* method abstract_compiler#AbstractCompiler#generate_init_attr for (self: AbstractCompiler, AbstractCompilerVisitor, RuntimeVariable, MClassType) */
3944 void nit___nit__AbstractCompiler___generate_init_attr(val* self, val* p0, val* p1, val* p2) {
3945 short int var /* : Bool */;
3946 int cltype;
3947 int idtype;
3948 const struct type* type_struct;
3949 const char* var_class_name;
3950 val* var_v /* var v: AbstractCompilerVisitor */;
3951 val* var_recv /* var recv: RuntimeVariable */;
3952 val* var_mtype /* var mtype: MClassType */;
3953 val* var1 /* : MModule */;
3954 val* var3 /* : MModule */;
3955 val* var4 /* : Set[MClassDef] */;
3956 val* var5 /* : Array[nullable Object] */;
3957 val* var_cds /* var cds: Array[MClassDef] */;
3958 val* var6 /* : MModule */;
3959 val* var8 /* : MModule */;
3960 val* var_ /* var : Array[MClassDef] */;
3961 val* var9 /* : ArrayIterator[nullable Object] */;
3962 val* var_10 /* var : ArrayIterator[MClassDef] */;
3963 short int var11 /* : Bool */;
3964 val* var12 /* : nullable Object */;
3965 val* var_cd /* var cd: MClassDef */;
3966 val* var13 /* : ModelBuilder */;
3967 val* var15 /* : ModelBuilder */;
3968 val* var16 /* : Array[AAttrPropdef] */;
3969 val* var_17 /* var : Array[AAttrPropdef] */;
3970 val* var18 /* : ArrayIterator[nullable Object] */;
3971 val* var_19 /* var : ArrayIterator[AAttrPropdef] */;
3972 short int var20 /* : Bool */;
3973 val* var21 /* : nullable Object */;
3974 val* var_npropdef /* var npropdef: AAttrPropdef */;
3975 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
3976 /* <p0:AbstractCompilerVisitor> isa VISITOR */
3977 type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__AbstractCompiler__VISITOR];
3978 cltype = type_struct->color;
3979 idtype = type_struct->id;
3980 if(cltype >= p0->type->table_size) {
3981 var = 0;
3982 } else {
3983 var = p0->type->type_table[cltype] == idtype;
3984 }
3985 if (unlikely(!var)) {
3986 var_class_name = p0 == NULL ? "null" : p0->type->name;
3987 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
3988 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 937);
3989 show_backtrace(1);
3990 }
3991 var_v = p0;
3992 var_recv = p1;
3993 var_mtype = p2;
3994 {
3995 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:AbstractCompiler> */
3996 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:AbstractCompiler> */
3997 if (unlikely(var3 == NULL)) {
3998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3999 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
4000 show_backtrace(1);
4001 }
4002 var1 = var3;
4003 RET_LABEL2:(void)0;
4004 }
4005 }
4006 {
4007 var4 = nit___nit__MClassType___MType__collect_mclassdefs(var_mtype, var1);
4008 }
4009 {
4010 var5 = standard__array___Collection___to_a(var4);
4011 }
4012 var_cds = var5;
4013 {
4014 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (self) on <self:AbstractCompiler> */
4015 var8 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:AbstractCompiler> */
4016 if (unlikely(var8 == NULL)) {
4017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
4018 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
4019 show_backtrace(1);
4020 }
4021 var6 = var8;
4022 RET_LABEL7:(void)0;
4023 }
4024 }
4025 {
4026 nit__model___MModule___linearize_mclassdefs(var6, var_cds); /* Direct call model#MModule#linearize_mclassdefs on <var6:MModule>*/
4027 }
4028 var_ = var_cds;
4029 {
4030 var9 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
4031 }
4032 var_10 = var9;
4033 for(;;) {
4034 {
4035 var11 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_10);
4036 }
4037 if (var11){
4038 {
4039 var12 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_10);
4040 }
4041 var_cd = var12;
4042 {
4043 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
4044 var15 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
4045 if (unlikely(var15 == NULL)) {
4046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4047 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
4048 show_backtrace(1);
4049 }
4050 var13 = var15;
4051 RET_LABEL14:(void)0;
4052 }
4053 }
4054 {
4055 var16 = nit__modelize_property___ModelBuilder___collect_attr_propdef(var13, var_cd);
4056 }
4057 var_17 = var16;
4058 {
4059 var18 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_17);
4060 }
4061 var_19 = var18;
4062 for(;;) {
4063 {
4064 var20 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_19);
4065 }
4066 if (var20){
4067 {
4068 var21 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_19);
4069 }
4070 var_npropdef = var21;
4071 {
4072 nit__abstract_compiler___AAttrPropdef___init_expr(var_npropdef, var_v, var_recv); /* Direct call abstract_compiler#AAttrPropdef#init_expr on <var_npropdef:AAttrPropdef>*/
4073 }
4074 {
4075 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_19); /* Direct call array#ArrayIterator#next on <var_19:ArrayIterator[AAttrPropdef]>*/
4076 }
4077 } else {
4078 goto BREAK_label;
4079 }
4080 }
4081 BREAK_label: (void)0;
4082 {
4083 { /* Inline abstract_collection#Iterator#finish (var_19) on <var_19:ArrayIterator[AAttrPropdef]> */
4084 RET_LABEL22:(void)0;
4085 }
4086 }
4087 {
4088 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_10); /* Direct call array#ArrayIterator#next on <var_10:ArrayIterator[MClassDef]>*/
4089 }
4090 } else {
4091 goto BREAK_label23;
4092 }
4093 }
4094 BREAK_label23: (void)0;
4095 {
4096 { /* Inline abstract_collection#Iterator#finish (var_10) on <var_10:ArrayIterator[MClassDef]> */
4097 RET_LABEL24:(void)0;
4098 }
4099 }
4100 RET_LABEL:;
4101 }
4102 /* method abstract_compiler#AbstractCompiler#count_type_test_tags for (self: AbstractCompiler): Array[String] */
4103 val* nit___nit__AbstractCompiler___count_type_test_tags(val* self) {
4104 val* var /* : Array[String] */;
4105 val* var1 /* : Array[String] */;
4106 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_tags].val; /* _count_type_test_tags on <self:AbstractCompiler> */
4107 if (unlikely(var1 == NULL)) {
4108 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_tags");
4109 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 963);
4110 show_backtrace(1);
4111 }
4112 var = var1;
4113 RET_LABEL:;
4114 return var;
4115 }
4116 /* method abstract_compiler#AbstractCompiler#count_type_test_resolved for (self: AbstractCompiler): HashMap[String, Int] */
4117 val* nit___nit__AbstractCompiler___count_type_test_resolved(val* self) {
4118 val* var /* : HashMap[String, Int] */;
4119 val* var1 /* : HashMap[String, Int] */;
4120 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <self:AbstractCompiler> */
4121 if (unlikely(var1 == NULL)) {
4122 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
4123 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964);
4124 show_backtrace(1);
4125 }
4126 var = var1;
4127 RET_LABEL:;
4128 return var;
4129 }
4130 /* method abstract_compiler#AbstractCompiler#count_type_test_unresolved for (self: AbstractCompiler): HashMap[String, Int] */
4131 val* nit___nit__AbstractCompiler___count_type_test_unresolved(val* self) {
4132 val* var /* : HashMap[String, Int] */;
4133 val* var1 /* : HashMap[String, Int] */;
4134 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <self:AbstractCompiler> */
4135 if (unlikely(var1 == NULL)) {
4136 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
4137 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965);
4138 show_backtrace(1);
4139 }
4140 var = var1;
4141 RET_LABEL:;
4142 return var;
4143 }
4144 /* method abstract_compiler#AbstractCompiler#count_type_test_skipped for (self: AbstractCompiler): HashMap[String, Int] */
4145 val* nit___nit__AbstractCompiler___count_type_test_skipped(val* self) {
4146 val* var /* : HashMap[String, Int] */;
4147 val* var1 /* : HashMap[String, Int] */;
4148 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <self:AbstractCompiler> */
4149 if (unlikely(var1 == NULL)) {
4150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
4151 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966);
4152 show_backtrace(1);
4153 }
4154 var = var1;
4155 RET_LABEL:;
4156 return var;
4157 }
4158 /* method abstract_compiler#AbstractCompiler#init_count_type_test_tags for (self: AbstractCompiler): HashMap[String, Int] */
4159 val* nit___nit__AbstractCompiler___init_count_type_test_tags(val* self) {
4160 val* var /* : HashMap[String, Int] */;
4161 val* var1 /* : HashMap[String, Int] */;
4162 val* var_res /* var res: HashMap[String, Int] */;
4163 val* var2 /* : Array[String] */;
4164 val* var4 /* : Array[String] */;
4165 val* var_ /* var : Array[String] */;
4166 val* var5 /* : ArrayIterator[nullable Object] */;
4167 val* var_6 /* var : ArrayIterator[String] */;
4168 short int var7 /* : Bool */;
4169 val* var8 /* : nullable Object */;
4170 val* var_tag /* var tag: String */;
4171 long var9 /* : Int */;
4172 val* var10 /* : nullable Object */;
4173 var1 = NEW_standard__HashMap(&type_standard__HashMap__standard__String__standard__Int);
4174 {
4175 standard___standard__HashMap___standard__kernel__Object__init(var1); /* Direct call hash_collection#HashMap#init on <var1:HashMap[String, Int]>*/
4176 }
4177 var_res = var1;
4178 {
4179 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_tags (self) on <self:AbstractCompiler> */
4180 var4 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_tags].val; /* _count_type_test_tags on <self:AbstractCompiler> */
4181 if (unlikely(var4 == NULL)) {
4182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_tags");
4183 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 963);
4184 show_backtrace(1);
4185 }
4186 var2 = var4;
4187 RET_LABEL3:(void)0;
4188 }
4189 }
4190 var_ = var2;
4191 {
4192 var5 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
4193 }
4194 var_6 = var5;
4195 for(;;) {
4196 {
4197 var7 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_6);
4198 }
4199 if (var7){
4200 {
4201 var8 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_6);
4202 }
4203 var_tag = var8;
4204 var9 = 0;
4205 {
4206 var10 = BOX_standard__Int(var9); /* autobox from Int to nullable Object */
4207 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_res, var_tag, var10); /* Direct call hash_collection#HashMap#[]= on <var_res:HashMap[String, Int]>*/
4208 }
4209 {
4210 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_6); /* Direct call array#ArrayIterator#next on <var_6:ArrayIterator[String]>*/
4211 }
4212 } else {
4213 goto BREAK_label;
4214 }
4215 }
4216 BREAK_label: (void)0;
4217 {
4218 { /* Inline abstract_collection#Iterator#finish (var_6) on <var_6:ArrayIterator[String]> */
4219 RET_LABEL11:(void)0;
4220 }
4221 }
4222 var = var_res;
4223 goto RET_LABEL;
4224 RET_LABEL:;
4225 return var;
4226 }
4227 /* method abstract_compiler#AbstractCompiler#display_stats for (self: AbstractCompiler) */
4228 void nit___nit__AbstractCompiler___display_stats(val* self) {
4229 val* var /* : ModelBuilder */;
4230 val* var2 /* : ModelBuilder */;
4231 val* var3 /* : ToolContext */;
4232 val* var5 /* : ToolContext */;
4233 val* var6 /* : OptionBool */;
4234 val* var8 /* : OptionBool */;
4235 val* var9 /* : nullable Object */;
4236 val* var11 /* : nullable Object */;
4237 short int var12 /* : Bool */;
4238 static val* varonce;
4239 val* var13 /* : String */;
4240 char* var14 /* : NativeString */;
4241 long var15 /* : Int */;
4242 val* var16 /* : FlatString */;
4243 static val* varonce17;
4244 val* var18 /* : String */;
4245 char* var19 /* : NativeString */;
4246 long var20 /* : Int */;
4247 val* var21 /* : FlatString */;
4248 val* var22 /* : HashMap[String, Int] */;
4249 val* var_count_type_test_total /* var count_type_test_total: HashMap[String, Int] */;
4250 val* var23 /* : HashMap[String, Int] */;
4251 val* var25 /* : HashMap[String, Int] */;
4252 static val* varonce26;
4253 val* var27 /* : String */;
4254 char* var28 /* : NativeString */;
4255 long var29 /* : Int */;
4256 val* var30 /* : FlatString */;
4257 long var31 /* : Int */;
4258 val* var32 /* : nullable Object */;
4259 val* var33 /* : HashMap[String, Int] */;
4260 val* var35 /* : HashMap[String, Int] */;
4261 static val* varonce36;
4262 val* var37 /* : String */;
4263 char* var38 /* : NativeString */;
4264 long var39 /* : Int */;
4265 val* var40 /* : FlatString */;
4266 long var41 /* : Int */;
4267 val* var42 /* : nullable Object */;
4268 val* var43 /* : HashMap[String, Int] */;
4269 val* var45 /* : HashMap[String, Int] */;
4270 static val* varonce46;
4271 val* var47 /* : String */;
4272 char* var48 /* : NativeString */;
4273 long var49 /* : Int */;
4274 val* var50 /* : FlatString */;
4275 long var51 /* : Int */;
4276 val* var52 /* : nullable Object */;
4277 static val* varonce53;
4278 val* var54 /* : String */;
4279 char* var55 /* : NativeString */;
4280 long var56 /* : Int */;
4281 val* var57 /* : FlatString */;
4282 long var58 /* : Int */;
4283 val* var59 /* : nullable Object */;
4284 val* var60 /* : Array[String] */;
4285 val* var62 /* : Array[String] */;
4286 val* var_ /* var : Array[String] */;
4287 val* var63 /* : ArrayIterator[nullable Object] */;
4288 val* var_64 /* var : ArrayIterator[String] */;
4289 short int var65 /* : Bool */;
4290 val* var66 /* : nullable Object */;
4291 val* var_tag /* var tag: String */;
4292 val* var67 /* : HashMap[String, Int] */;
4293 val* var69 /* : HashMap[String, Int] */;
4294 val* var70 /* : nullable Object */;
4295 val* var71 /* : HashMap[String, Int] */;
4296 val* var73 /* : HashMap[String, Int] */;
4297 val* var74 /* : nullable Object */;
4298 long var75 /* : Int */;
4299 short int var77 /* : Bool */;
4300 int cltype;
4301 int idtype;
4302 const char* var_class_name;
4303 long var78 /* : Int */;
4304 long var79 /* : Int */;
4305 long var80 /* : Int */;
4306 val* var81 /* : HashMap[String, Int] */;
4307 val* var83 /* : HashMap[String, Int] */;
4308 val* var84 /* : nullable Object */;
4309 long var85 /* : Int */;
4310 short int var87 /* : Bool */;
4311 int cltype88;
4312 int idtype89;
4313 const char* var_class_name90;
4314 long var91 /* : Int */;
4315 long var92 /* : Int */;
4316 val* var93 /* : nullable Object */;
4317 val* var94 /* : HashMap[String, Int] */;
4318 val* var96 /* : HashMap[String, Int] */;
4319 val* var_97 /* var : HashMap[String, Int] */;
4320 static val* varonce98;
4321 val* var99 /* : String */;
4322 char* var100 /* : NativeString */;
4323 long var101 /* : Int */;
4324 val* var102 /* : FlatString */;
4325 val* var_103 /* var : String */;
4326 val* var104 /* : nullable Object */;
4327 val* var105 /* : HashMap[String, Int] */;
4328 val* var107 /* : HashMap[String, Int] */;
4329 val* var108 /* : nullable Object */;
4330 long var109 /* : Int */;
4331 short int var111 /* : Bool */;
4332 int cltype112;
4333 int idtype113;
4334 const char* var_class_name114;
4335 long var115 /* : Int */;
4336 long var116 /* : Int */;
4337 long var117 /* : Int */;
4338 val* var118 /* : nullable Object */;
4339 val* var119 /* : HashMap[String, Int] */;
4340 val* var121 /* : HashMap[String, Int] */;
4341 val* var_122 /* var : HashMap[String, Int] */;
4342 static val* varonce123;
4343 val* var124 /* : String */;
4344 char* var125 /* : NativeString */;
4345 long var126 /* : Int */;
4346 val* var127 /* : FlatString */;
4347 val* var_128 /* var : String */;
4348 val* var129 /* : nullable Object */;
4349 val* var130 /* : HashMap[String, Int] */;
4350 val* var132 /* : HashMap[String, Int] */;
4351 val* var133 /* : nullable Object */;
4352 long var134 /* : Int */;
4353 short int var136 /* : Bool */;
4354 int cltype137;
4355 int idtype138;
4356 const char* var_class_name139;
4357 long var140 /* : Int */;
4358 long var141 /* : Int */;
4359 long var142 /* : Int */;
4360 val* var143 /* : nullable Object */;
4361 val* var144 /* : HashMap[String, Int] */;
4362 val* var146 /* : HashMap[String, Int] */;
4363 val* var_147 /* var : HashMap[String, Int] */;
4364 static val* varonce148;
4365 val* var149 /* : String */;
4366 char* var150 /* : NativeString */;
4367 long var151 /* : Int */;
4368 val* var152 /* : FlatString */;
4369 val* var_153 /* var : String */;
4370 val* var154 /* : nullable Object */;
4371 val* var155 /* : HashMap[String, Int] */;
4372 val* var157 /* : HashMap[String, Int] */;
4373 val* var158 /* : nullable Object */;
4374 long var159 /* : Int */;
4375 short int var161 /* : Bool */;
4376 int cltype162;
4377 int idtype163;
4378 const char* var_class_name164;
4379 long var165 /* : Int */;
4380 long var166 /* : Int */;
4381 long var167 /* : Int */;
4382 val* var168 /* : nullable Object */;
4383 val* var_169 /* var : HashMap[String, Int] */;
4384 static val* varonce170;
4385 val* var171 /* : String */;
4386 char* var172 /* : NativeString */;
4387 long var173 /* : Int */;
4388 val* var174 /* : FlatString */;
4389 val* var_175 /* var : String */;
4390 val* var176 /* : nullable Object */;
4391 val* var177 /* : nullable Object */;
4392 long var178 /* : Int */;
4393 short int var180 /* : Bool */;
4394 int cltype181;
4395 int idtype182;
4396 const char* var_class_name183;
4397 long var184 /* : Int */;
4398 long var185 /* : Int */;
4399 long var186 /* : Int */;
4400 val* var187 /* : nullable Object */;
4401 static val* varonce189;
4402 val* var190 /* : String */;
4403 char* var191 /* : NativeString */;
4404 long var192 /* : Int */;
4405 val* var193 /* : FlatString */;
4406 val* var194 /* : nullable Object */;
4407 long var195 /* : Int */;
4408 long var_count_type_test /* var count_type_test: Int */;
4409 val* var196 /* : Array[String] */;
4410 val* var198 /* : Array[String] */;
4411 val* var199 /* : Array[nullable Object] */;
4412 val* var_tags /* var tags: Array[String] */;
4413 static val* varonce200;
4414 val* var201 /* : String */;
4415 char* var202 /* : NativeString */;
4416 long var203 /* : Int */;
4417 val* var204 /* : FlatString */;
4418 val* var_205 /* var : Array[String] */;
4419 val* var206 /* : ArrayIterator[nullable Object] */;
4420 val* var_207 /* var : ArrayIterator[String] */;
4421 short int var208 /* : Bool */;
4422 val* var209 /* : nullable Object */;
4423 val* var_tag210 /* var tag: String */;
4424 val* var211 /* : Array[Object] */;
4425 long var212 /* : Int */;
4426 val* var213 /* : NativeArray[Object] */;
4427 static val* varonce214;
4428 val* var215 /* : String */;
4429 char* var216 /* : NativeString */;
4430 long var217 /* : Int */;
4431 val* var218 /* : FlatString */;
4432 val* var219 /* : HashMap[String, Int] */;
4433 val* var221 /* : HashMap[String, Int] */;
4434 val* var222 /* : nullable Object */;
4435 static val* varonce223;
4436 val* var224 /* : String */;
4437 char* var225 /* : NativeString */;
4438 long var226 /* : Int */;
4439 val* var227 /* : FlatString */;
4440 val* var228 /* : HashMap[String, Int] */;
4441 val* var230 /* : HashMap[String, Int] */;
4442 val* var231 /* : nullable Object */;
4443 val* var232 /* : String */;
4444 long var233 /* : Int */;
4445 static val* varonce234;
4446 val* var235 /* : String */;
4447 char* var236 /* : NativeString */;
4448 long var237 /* : Int */;
4449 val* var238 /* : FlatString */;
4450 val* var239 /* : Array[Object] */;
4451 long var240 /* : Int */;
4452 val* var241 /* : NativeArray[Object] */;
4453 val* var242 /* : String */;
4454 val* var243 /* : Array[Object] */;
4455 long var244 /* : Int */;
4456 val* var245 /* : NativeArray[Object] */;
4457 static val* varonce246;
4458 val* var247 /* : String */;
4459 char* var248 /* : NativeString */;
4460 long var249 /* : Int */;
4461 val* var250 /* : FlatString */;
4462 val* var251 /* : HashMap[String, Int] */;
4463 val* var253 /* : HashMap[String, Int] */;
4464 val* var254 /* : nullable Object */;
4465 static val* varonce255;
4466 val* var256 /* : String */;
4467 char* var257 /* : NativeString */;
4468 long var258 /* : Int */;
4469 val* var259 /* : FlatString */;
4470 val* var260 /* : HashMap[String, Int] */;
4471 val* var262 /* : HashMap[String, Int] */;
4472 val* var263 /* : nullable Object */;
4473 val* var264 /* : String */;
4474 long var265 /* : Int */;
4475 static val* varonce266;
4476 val* var267 /* : String */;
4477 char* var268 /* : NativeString */;
4478 long var269 /* : Int */;
4479 val* var270 /* : FlatString */;
4480 val* var271 /* : Array[Object] */;
4481 long var272 /* : Int */;
4482 val* var273 /* : NativeArray[Object] */;
4483 val* var274 /* : String */;
4484 val* var275 /* : Array[Object] */;
4485 long var276 /* : Int */;
4486 val* var277 /* : NativeArray[Object] */;
4487 static val* varonce278;
4488 val* var279 /* : String */;
4489 char* var280 /* : NativeString */;
4490 long var281 /* : Int */;
4491 val* var282 /* : FlatString */;
4492 val* var283 /* : HashMap[String, Int] */;
4493 val* var285 /* : HashMap[String, Int] */;
4494 val* var286 /* : nullable Object */;
4495 static val* varonce287;
4496 val* var288 /* : String */;
4497 char* var289 /* : NativeString */;
4498 long var290 /* : Int */;
4499 val* var291 /* : FlatString */;
4500 val* var292 /* : HashMap[String, Int] */;
4501 val* var294 /* : HashMap[String, Int] */;
4502 val* var295 /* : nullable Object */;
4503 val* var296 /* : String */;
4504 long var297 /* : Int */;
4505 static val* varonce298;
4506 val* var299 /* : String */;
4507 char* var300 /* : NativeString */;
4508 long var301 /* : Int */;
4509 val* var302 /* : FlatString */;
4510 val* var303 /* : Array[Object] */;
4511 long var304 /* : Int */;
4512 val* var305 /* : NativeArray[Object] */;
4513 val* var306 /* : String */;
4514 val* var307 /* : Array[Object] */;
4515 long var308 /* : Int */;
4516 val* var309 /* : NativeArray[Object] */;
4517 static val* varonce310;
4518 val* var311 /* : String */;
4519 char* var312 /* : NativeString */;
4520 long var313 /* : Int */;
4521 val* var314 /* : FlatString */;
4522 val* var315 /* : nullable Object */;
4523 static val* varonce316;
4524 val* var317 /* : String */;
4525 char* var318 /* : NativeString */;
4526 long var319 /* : Int */;
4527 val* var320 /* : FlatString */;
4528 val* var321 /* : nullable Object */;
4529 val* var322 /* : String */;
4530 long var323 /* : Int */;
4531 static val* varonce324;
4532 val* var325 /* : String */;
4533 char* var326 /* : NativeString */;
4534 long var327 /* : Int */;
4535 val* var328 /* : FlatString */;
4536 val* var329 /* : Array[Object] */;
4537 long var330 /* : Int */;
4538 val* var331 /* : NativeArray[Object] */;
4539 val* var332 /* : String */;
4540 val* var333 /* : Array[Object] */;
4541 long var334 /* : Int */;
4542 val* var335 /* : NativeArray[Object] */;
4543 static val* varonce336;
4544 val* var337 /* : String */;
4545 char* var338 /* : NativeString */;
4546 long var339 /* : Int */;
4547 val* var340 /* : FlatString */;
4548 {
4549 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (self) on <self:AbstractCompiler> */
4550 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:AbstractCompiler> */
4551 if (unlikely(var2 == NULL)) {
4552 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4553 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
4554 show_backtrace(1);
4555 }
4556 var = var2;
4557 RET_LABEL1:(void)0;
4558 }
4559 }
4560 {
4561 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var) on <var:ModelBuilder> */
4562 var5 = var->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var:ModelBuilder> */
4563 if (unlikely(var5 == NULL)) {
4564 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4565 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
4566 show_backtrace(1);
4567 }
4568 var3 = var5;
4569 RET_LABEL4:(void)0;
4570 }
4571 }
4572 {
4573 { /* Inline abstract_compiler#ToolContext#opt_typing_test_metrics (var3) on <var3:ToolContext> */
4574 var8 = var3->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_typing_test_metrics].val; /* _opt_typing_test_metrics on <var3:ToolContext> */
4575 if (unlikely(var8 == NULL)) {
4576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_typing_test_metrics");
4577 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 59);
4578 show_backtrace(1);
4579 }
4580 var6 = var8;
4581 RET_LABEL7:(void)0;
4582 }
4583 }
4584 {
4585 { /* Inline opts#Option#value (var6) on <var6:OptionBool> */
4586 var11 = var6->attrs[COLOR_opts__Option___value].val; /* _value on <var6:OptionBool> */
4587 var9 = var11;
4588 RET_LABEL10:(void)0;
4589 }
4590 }
4591 var12 = ((struct instance_standard__Bool*)var9)->value; /* autounbox from nullable Object to Bool */;
4592 if (var12){
4593 if (varonce) {
4594 var13 = varonce;
4595 } else {
4596 var14 = "# static count_type_test";
4597 var15 = 24;
4598 var16 = standard___standard__NativeString___to_s_with_length(var14, var15);
4599 var13 = var16;
4600 varonce = var13;
4601 }
4602 {
4603 standard__file___Object___print(self, var13); /* Direct call file#Object#print on <self:AbstractCompiler>*/
4604 }
4605 if (varonce17) {
4606 var18 = varonce17;
4607 } else {
4608 var19 = "\11resolved:\11unresolved\11skipped\11total";
4609 var20 = 35;
4610 var21 = standard___standard__NativeString___to_s_with_length(var19, var20);
4611 var18 = var21;
4612 varonce17 = var18;
4613 }
4614 {
4615 standard__file___Object___print(self, var18); /* Direct call file#Object#print on <self:AbstractCompiler>*/
4616 }
4617 {
4618 var22 = nit___nit__AbstractCompiler___init_count_type_test_tags(self);
4619 }
4620 var_count_type_test_total = var22;
4621 {
4622 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (self) on <self:AbstractCompiler> */
4623 var25 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <self:AbstractCompiler> */
4624 if (unlikely(var25 == NULL)) {
4625 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
4626 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964);
4627 show_backtrace(1);
4628 }
4629 var23 = var25;
4630 RET_LABEL24:(void)0;
4631 }
4632 }
4633 if (varonce26) {
4634 var27 = varonce26;
4635 } else {
4636 var28 = "total";
4637 var29 = 5;
4638 var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
4639 var27 = var30;
4640 varonce26 = var27;
4641 }
4642 var31 = 0;
4643 {
4644 var32 = BOX_standard__Int(var31); /* autobox from Int to nullable Object */
4645 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var23, var27, var32); /* Direct call hash_collection#HashMap#[]= on <var23:HashMap[String, Int]>*/
4646 }
4647 {
4648 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (self) on <self:AbstractCompiler> */
4649 var35 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <self:AbstractCompiler> */
4650 if (unlikely(var35 == NULL)) {
4651 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
4652 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965);
4653 show_backtrace(1);
4654 }
4655 var33 = var35;
4656 RET_LABEL34:(void)0;
4657 }
4658 }
4659 if (varonce36) {
4660 var37 = varonce36;
4661 } else {
4662 var38 = "total";
4663 var39 = 5;
4664 var40 = standard___standard__NativeString___to_s_with_length(var38, var39);
4665 var37 = var40;
4666 varonce36 = var37;
4667 }
4668 var41 = 0;
4669 {
4670 var42 = BOX_standard__Int(var41); /* autobox from Int to nullable Object */
4671 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var33, var37, var42); /* Direct call hash_collection#HashMap#[]= on <var33:HashMap[String, Int]>*/
4672 }
4673 {
4674 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (self) on <self:AbstractCompiler> */
4675 var45 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <self:AbstractCompiler> */
4676 if (unlikely(var45 == NULL)) {
4677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
4678 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966);
4679 show_backtrace(1);
4680 }
4681 var43 = var45;
4682 RET_LABEL44:(void)0;
4683 }
4684 }
4685 if (varonce46) {
4686 var47 = varonce46;
4687 } else {
4688 var48 = "total";
4689 var49 = 5;
4690 var50 = standard___standard__NativeString___to_s_with_length(var48, var49);
4691 var47 = var50;
4692 varonce46 = var47;
4693 }
4694 var51 = 0;
4695 {
4696 var52 = BOX_standard__Int(var51); /* autobox from Int to nullable Object */
4697 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var43, var47, var52); /* Direct call hash_collection#HashMap#[]= on <var43:HashMap[String, Int]>*/
4698 }
4699 if (varonce53) {
4700 var54 = varonce53;
4701 } else {
4702 var55 = "total";
4703 var56 = 5;
4704 var57 = standard___standard__NativeString___to_s_with_length(var55, var56);
4705 var54 = var57;
4706 varonce53 = var54;
4707 }
4708 var58 = 0;
4709 {
4710 var59 = BOX_standard__Int(var58); /* autobox from Int to nullable Object */
4711 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_count_type_test_total, var54, var59); /* Direct call hash_collection#HashMap#[]= on <var_count_type_test_total:HashMap[String, Int]>*/
4712 }
4713 {
4714 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_tags (self) on <self:AbstractCompiler> */
4715 var62 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_tags].val; /* _count_type_test_tags on <self:AbstractCompiler> */
4716 if (unlikely(var62 == NULL)) {
4717 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_tags");
4718 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 963);
4719 show_backtrace(1);
4720 }
4721 var60 = var62;
4722 RET_LABEL61:(void)0;
4723 }
4724 }
4725 var_ = var60;
4726 {
4727 var63 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
4728 }
4729 var_64 = var63;
4730 for(;;) {
4731 {
4732 var65 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_64);
4733 }
4734 if (var65){
4735 {
4736 var66 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_64);
4737 }
4738 var_tag = var66;
4739 {
4740 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (self) on <self:AbstractCompiler> */
4741 var69 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <self:AbstractCompiler> */
4742 if (unlikely(var69 == NULL)) {
4743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
4744 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964);
4745 show_backtrace(1);
4746 }
4747 var67 = var69;
4748 RET_LABEL68:(void)0;
4749 }
4750 }
4751 {
4752 var70 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var67, var_tag);
4753 }
4754 {
4755 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (self) on <self:AbstractCompiler> */
4756 var73 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <self:AbstractCompiler> */
4757 if (unlikely(var73 == NULL)) {
4758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
4759 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965);
4760 show_backtrace(1);
4761 }
4762 var71 = var73;
4763 RET_LABEL72:(void)0;
4764 }
4765 }
4766 {
4767 var74 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var71, var_tag);
4768 }
4769 {
4770 { /* Inline kernel#Int#+ (var70,var74) on <var70:nullable Object(Int)> */
4771 /* Covariant cast for argument 0 (i) <var74:nullable Object(Int)> isa OTHER */
4772 /* <var74:nullable Object(Int)> isa OTHER */
4773 var77 = 1; /* easy <var74:nullable Object(Int)> isa OTHER*/
4774 if (unlikely(!var77)) {
4775 var_class_name = var74 == NULL ? "null" : var74->type->name;
4776 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4777 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
4778 show_backtrace(1);
4779 }
4780 var78 = ((struct instance_standard__Int*)var70)->value; /* autounbox from nullable Object to Int */;
4781 var79 = ((struct instance_standard__Int*)var74)->value; /* autounbox from nullable Object to Int */;
4782 var80 = var78 + var79;
4783 var75 = var80;
4784 goto RET_LABEL76;
4785 RET_LABEL76:(void)0;
4786 }
4787 }
4788 {
4789 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (self) on <self:AbstractCompiler> */
4790 var83 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <self:AbstractCompiler> */
4791 if (unlikely(var83 == NULL)) {
4792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
4793 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966);
4794 show_backtrace(1);
4795 }
4796 var81 = var83;
4797 RET_LABEL82:(void)0;
4798 }
4799 }
4800 {
4801 var84 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var81, var_tag);
4802 }
4803 {
4804 { /* Inline kernel#Int#+ (var75,var84) on <var75:Int> */
4805 /* Covariant cast for argument 0 (i) <var84:nullable Object(Int)> isa OTHER */
4806 /* <var84:nullable Object(Int)> isa OTHER */
4807 var87 = 1; /* easy <var84:nullable Object(Int)> isa OTHER*/
4808 if (unlikely(!var87)) {
4809 var_class_name90 = var84 == NULL ? "null" : var84->type->name;
4810 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name90);
4811 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
4812 show_backtrace(1);
4813 }
4814 var91 = ((struct instance_standard__Int*)var84)->value; /* autounbox from nullable Object to Int */;
4815 var92 = var75 + var91;
4816 var85 = var92;
4817 goto RET_LABEL86;
4818 RET_LABEL86:(void)0;
4819 }
4820 }
4821 {
4822 var93 = BOX_standard__Int(var85); /* autobox from Int to nullable Object */
4823 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_count_type_test_total, var_tag, var93); /* Direct call hash_collection#HashMap#[]= on <var_count_type_test_total:HashMap[String, Int]>*/
4824 }
4825 {
4826 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (self) on <self:AbstractCompiler> */
4827 var96 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <self:AbstractCompiler> */
4828 if (unlikely(var96 == NULL)) {
4829 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
4830 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964);
4831 show_backtrace(1);
4832 }
4833 var94 = var96;
4834 RET_LABEL95:(void)0;
4835 }
4836 }
4837 var_97 = var94;
4838 if (varonce98) {
4839 var99 = varonce98;
4840 } else {
4841 var100 = "total";
4842 var101 = 5;
4843 var102 = standard___standard__NativeString___to_s_with_length(var100, var101);
4844 var99 = var102;
4845 varonce98 = var99;
4846 }
4847 var_103 = var99;
4848 {
4849 var104 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_97, var_103);
4850 }
4851 {
4852 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (self) on <self:AbstractCompiler> */
4853 var107 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <self:AbstractCompiler> */
4854 if (unlikely(var107 == NULL)) {
4855 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
4856 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964);
4857 show_backtrace(1);
4858 }
4859 var105 = var107;
4860 RET_LABEL106:(void)0;
4861 }
4862 }
4863 {
4864 var108 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var105, var_tag);
4865 }
4866 {
4867 { /* Inline kernel#Int#+ (var104,var108) on <var104:nullable Object(Int)> */
4868 /* Covariant cast for argument 0 (i) <var108:nullable Object(Int)> isa OTHER */
4869 /* <var108:nullable Object(Int)> isa OTHER */
4870 var111 = 1; /* easy <var108:nullable Object(Int)> isa OTHER*/
4871 if (unlikely(!var111)) {
4872 var_class_name114 = var108 == NULL ? "null" : var108->type->name;
4873 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name114);
4874 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
4875 show_backtrace(1);
4876 }
4877 var115 = ((struct instance_standard__Int*)var104)->value; /* autounbox from nullable Object to Int */;
4878 var116 = ((struct instance_standard__Int*)var108)->value; /* autounbox from nullable Object to Int */;
4879 var117 = var115 + var116;
4880 var109 = var117;
4881 goto RET_LABEL110;
4882 RET_LABEL110:(void)0;
4883 }
4884 }
4885 {
4886 var118 = BOX_standard__Int(var109); /* autobox from Int to nullable Object */
4887 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_97, var_103, var118); /* Direct call hash_collection#HashMap#[]= on <var_97:HashMap[String, Int]>*/
4888 }
4889 {
4890 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (self) on <self:AbstractCompiler> */
4891 var121 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <self:AbstractCompiler> */
4892 if (unlikely(var121 == NULL)) {
4893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
4894 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965);
4895 show_backtrace(1);
4896 }
4897 var119 = var121;
4898 RET_LABEL120:(void)0;
4899 }
4900 }
4901 var_122 = var119;
4902 if (varonce123) {
4903 var124 = varonce123;
4904 } else {
4905 var125 = "total";
4906 var126 = 5;
4907 var127 = standard___standard__NativeString___to_s_with_length(var125, var126);
4908 var124 = var127;
4909 varonce123 = var124;
4910 }
4911 var_128 = var124;
4912 {
4913 var129 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_122, var_128);
4914 }
4915 {
4916 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (self) on <self:AbstractCompiler> */
4917 var132 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <self:AbstractCompiler> */
4918 if (unlikely(var132 == NULL)) {
4919 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
4920 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965);
4921 show_backtrace(1);
4922 }
4923 var130 = var132;
4924 RET_LABEL131:(void)0;
4925 }
4926 }
4927 {
4928 var133 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var130, var_tag);
4929 }
4930 {
4931 { /* Inline kernel#Int#+ (var129,var133) on <var129:nullable Object(Int)> */
4932 /* Covariant cast for argument 0 (i) <var133:nullable Object(Int)> isa OTHER */
4933 /* <var133:nullable Object(Int)> isa OTHER */
4934 var136 = 1; /* easy <var133:nullable Object(Int)> isa OTHER*/
4935 if (unlikely(!var136)) {
4936 var_class_name139 = var133 == NULL ? "null" : var133->type->name;
4937 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name139);
4938 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
4939 show_backtrace(1);
4940 }
4941 var140 = ((struct instance_standard__Int*)var129)->value; /* autounbox from nullable Object to Int */;
4942 var141 = ((struct instance_standard__Int*)var133)->value; /* autounbox from nullable Object to Int */;
4943 var142 = var140 + var141;
4944 var134 = var142;
4945 goto RET_LABEL135;
4946 RET_LABEL135:(void)0;
4947 }
4948 }
4949 {
4950 var143 = BOX_standard__Int(var134); /* autobox from Int to nullable Object */
4951 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_122, var_128, var143); /* Direct call hash_collection#HashMap#[]= on <var_122:HashMap[String, Int]>*/
4952 }
4953 {
4954 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (self) on <self:AbstractCompiler> */
4955 var146 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <self:AbstractCompiler> */
4956 if (unlikely(var146 == NULL)) {
4957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
4958 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966);
4959 show_backtrace(1);
4960 }
4961 var144 = var146;
4962 RET_LABEL145:(void)0;
4963 }
4964 }
4965 var_147 = var144;
4966 if (varonce148) {
4967 var149 = varonce148;
4968 } else {
4969 var150 = "total";
4970 var151 = 5;
4971 var152 = standard___standard__NativeString___to_s_with_length(var150, var151);
4972 var149 = var152;
4973 varonce148 = var149;
4974 }
4975 var_153 = var149;
4976 {
4977 var154 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_147, var_153);
4978 }
4979 {
4980 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (self) on <self:AbstractCompiler> */
4981 var157 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <self:AbstractCompiler> */
4982 if (unlikely(var157 == NULL)) {
4983 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
4984 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966);
4985 show_backtrace(1);
4986 }
4987 var155 = var157;
4988 RET_LABEL156:(void)0;
4989 }
4990 }
4991 {
4992 var158 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var155, var_tag);
4993 }
4994 {
4995 { /* Inline kernel#Int#+ (var154,var158) on <var154:nullable Object(Int)> */
4996 /* Covariant cast for argument 0 (i) <var158:nullable Object(Int)> isa OTHER */
4997 /* <var158:nullable Object(Int)> isa OTHER */
4998 var161 = 1; /* easy <var158:nullable Object(Int)> isa OTHER*/
4999 if (unlikely(!var161)) {
5000 var_class_name164 = var158 == NULL ? "null" : var158->type->name;
5001 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name164);
5002 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
5003 show_backtrace(1);
5004 }
5005 var165 = ((struct instance_standard__Int*)var154)->value; /* autounbox from nullable Object to Int */;
5006 var166 = ((struct instance_standard__Int*)var158)->value; /* autounbox from nullable Object to Int */;
5007 var167 = var165 + var166;
5008 var159 = var167;
5009 goto RET_LABEL160;
5010 RET_LABEL160:(void)0;
5011 }
5012 }
5013 {
5014 var168 = BOX_standard__Int(var159); /* autobox from Int to nullable Object */
5015 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_147, var_153, var168); /* Direct call hash_collection#HashMap#[]= on <var_147:HashMap[String, Int]>*/
5016 }
5017 var_169 = var_count_type_test_total;
5018 if (varonce170) {
5019 var171 = varonce170;
5020 } else {
5021 var172 = "total";
5022 var173 = 5;
5023 var174 = standard___standard__NativeString___to_s_with_length(var172, var173);
5024 var171 = var174;
5025 varonce170 = var171;
5026 }
5027 var_175 = var171;
5028 {
5029 var176 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_169, var_175);
5030 }
5031 {
5032 var177 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_count_type_test_total, var_tag);
5033 }
5034 {
5035 { /* Inline kernel#Int#+ (var176,var177) on <var176:nullable Object(Int)> */
5036 /* Covariant cast for argument 0 (i) <var177:nullable Object(Int)> isa OTHER */
5037 /* <var177:nullable Object(Int)> isa OTHER */
5038 var180 = 1; /* easy <var177:nullable Object(Int)> isa OTHER*/
5039 if (unlikely(!var180)) {
5040 var_class_name183 = var177 == NULL ? "null" : var177->type->name;
5041 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name183);
5042 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
5043 show_backtrace(1);
5044 }
5045 var184 = ((struct instance_standard__Int*)var176)->value; /* autounbox from nullable Object to Int */;
5046 var185 = ((struct instance_standard__Int*)var177)->value; /* autounbox from nullable Object to Int */;
5047 var186 = var184 + var185;
5048 var178 = var186;
5049 goto RET_LABEL179;
5050 RET_LABEL179:(void)0;
5051 }
5052 }
5053 {
5054 var187 = BOX_standard__Int(var178); /* autobox from Int to nullable Object */
5055 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var_169, var_175, var187); /* Direct call hash_collection#HashMap#[]= on <var_169:HashMap[String, Int]>*/
5056 }
5057 {
5058 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_64); /* Direct call array#ArrayIterator#next on <var_64:ArrayIterator[String]>*/
5059 }
5060 } else {
5061 goto BREAK_label;
5062 }
5063 }
5064 BREAK_label: (void)0;
5065 {
5066 { /* Inline abstract_collection#Iterator#finish (var_64) on <var_64:ArrayIterator[String]> */
5067 RET_LABEL188:(void)0;
5068 }
5069 }
5070 if (varonce189) {
5071 var190 = varonce189;
5072 } else {
5073 var191 = "total";
5074 var192 = 5;
5075 var193 = standard___standard__NativeString___to_s_with_length(var191, var192);
5076 var190 = var193;
5077 varonce189 = var190;
5078 }
5079 {
5080 var194 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_count_type_test_total, var190);
5081 }
5082 var195 = ((struct instance_standard__Int*)var194)->value; /* autounbox from nullable Object to Int */;
5083 var_count_type_test = var195;
5084 {
5085 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_tags (self) on <self:AbstractCompiler> */
5086 var198 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_tags].val; /* _count_type_test_tags on <self:AbstractCompiler> */
5087 if (unlikely(var198 == NULL)) {
5088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_tags");
5089 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 963);
5090 show_backtrace(1);
5091 }
5092 var196 = var198;
5093 RET_LABEL197:(void)0;
5094 }
5095 }
5096 {
5097 var199 = standard__array___Collection___to_a(var196);
5098 }
5099 var_tags = var199;
5100 if (varonce200) {
5101 var201 = varonce200;
5102 } else {
5103 var202 = "total";
5104 var203 = 5;
5105 var204 = standard___standard__NativeString___to_s_with_length(var202, var203);
5106 var201 = var204;
5107 varonce200 = var201;
5108 }
5109 {
5110 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_tags, var201); /* Direct call array#Array#add on <var_tags:Array[String]>*/
5111 }
5112 var_205 = var_tags;
5113 {
5114 var206 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_205);
5115 }
5116 var_207 = var206;
5117 for(;;) {
5118 {
5119 var208 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_207);
5120 }
5121 if (var208){
5122 {
5123 var209 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_207);
5124 }
5125 var_tag210 = var209;
5126 var211 = NEW_standard__Array(&type_standard__Array__standard__Object);
5127 { /* var211 = array_instance Array[Object] */
5128 var212 = 1;
5129 var213 = NEW_standard__NativeArray(var212, &type_standard__NativeArray__standard__Object);
5130 ((struct instance_standard__NativeArray*)var213)->values[0] = (val*) var_tag210;
5131 {
5132 ((void (*)(val* self, val* p0, long p1))(var211->class->vft[COLOR_standard__array__Array__with_native]))(var211, var213, var212) /* with_native on <var211:Array[Object]>*/;
5133 }
5134 }
5135 {
5136 standard__file___Object___printn(self, var211); /* Direct call file#Object#printn on <self:AbstractCompiler>*/
5137 }
5138 if (varonce214) {
5139 var215 = varonce214;
5140 } else {
5141 var216 = "\11";
5142 var217 = 1;
5143 var218 = standard___standard__NativeString___to_s_with_length(var216, var217);
5144 var215 = var218;
5145 varonce214 = var215;
5146 }
5147 {
5148 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (self) on <self:AbstractCompiler> */
5149 var221 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <self:AbstractCompiler> */
5150 if (unlikely(var221 == NULL)) {
5151 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
5152 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964);
5153 show_backtrace(1);
5154 }
5155 var219 = var221;
5156 RET_LABEL220:(void)0;
5157 }
5158 }
5159 {
5160 var222 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var219, var_tag210);
5161 }
5162 if (varonce223) {
5163 var224 = varonce223;
5164 } else {
5165 var225 = " (";
5166 var226 = 2;
5167 var227 = standard___standard__NativeString___to_s_with_length(var225, var226);
5168 var224 = var227;
5169 varonce223 = var224;
5170 }
5171 {
5172 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_resolved (self) on <self:AbstractCompiler> */
5173 var230 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_resolved].val; /* _count_type_test_resolved on <self:AbstractCompiler> */
5174 if (unlikely(var230 == NULL)) {
5175 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_resolved");
5176 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 964);
5177 show_backtrace(1);
5178 }
5179 var228 = var230;
5180 RET_LABEL229:(void)0;
5181 }
5182 }
5183 {
5184 var231 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var228, var_tag210);
5185 }
5186 {
5187 var233 = ((struct instance_standard__Int*)var231)->value; /* autounbox from nullable Object to Int */;
5188 var232 = nit___nit__AbstractCompiler___div(self, var233, var_count_type_test);
5189 }
5190 if (varonce234) {
5191 var235 = varonce234;
5192 } else {
5193 var236 = "%)";
5194 var237 = 2;
5195 var238 = standard___standard__NativeString___to_s_with_length(var236, var237);
5196 var235 = var238;
5197 varonce234 = var235;
5198 }
5199 var239 = NEW_standard__Array(&type_standard__Array__standard__Object);
5200 { /* var239 = array_instance Array[Object] */
5201 var240 = 5;
5202 var241 = NEW_standard__NativeArray(var240, &type_standard__NativeArray__standard__Object);
5203 ((struct instance_standard__NativeArray*)var241)->values[0] = (val*) var215;
5204 ((struct instance_standard__NativeArray*)var241)->values[1] = (val*) var222;
5205 ((struct instance_standard__NativeArray*)var241)->values[2] = (val*) var224;
5206 ((struct instance_standard__NativeArray*)var241)->values[3] = (val*) var232;
5207 ((struct instance_standard__NativeArray*)var241)->values[4] = (val*) var235;
5208 {
5209 ((void (*)(val* self, val* p0, long p1))(var239->class->vft[COLOR_standard__array__Array__with_native]))(var239, var241, var240) /* with_native on <var239:Array[Object]>*/;
5210 }
5211 }
5212 {
5213 var242 = ((val* (*)(val* self))(var239->class->vft[COLOR_standard__string__Object__to_s]))(var239) /* to_s on <var239:Array[Object]>*/;
5214 }
5215 var243 = NEW_standard__Array(&type_standard__Array__standard__Object);
5216 { /* var243 = array_instance Array[Object] */
5217 var244 = 1;
5218 var245 = NEW_standard__NativeArray(var244, &type_standard__NativeArray__standard__Object);
5219 ((struct instance_standard__NativeArray*)var245)->values[0] = (val*) var242;
5220 {
5221 ((void (*)(val* self, val* p0, long p1))(var243->class->vft[COLOR_standard__array__Array__with_native]))(var243, var245, var244) /* with_native on <var243:Array[Object]>*/;
5222 }
5223 }
5224 {
5225 standard__file___Object___printn(self, var243); /* Direct call file#Object#printn on <self:AbstractCompiler>*/
5226 }
5227 if (varonce246) {
5228 var247 = varonce246;
5229 } else {
5230 var248 = "\11";
5231 var249 = 1;
5232 var250 = standard___standard__NativeString___to_s_with_length(var248, var249);
5233 var247 = var250;
5234 varonce246 = var247;
5235 }
5236 {
5237 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (self) on <self:AbstractCompiler> */
5238 var253 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <self:AbstractCompiler> */
5239 if (unlikely(var253 == NULL)) {
5240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
5241 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965);
5242 show_backtrace(1);
5243 }
5244 var251 = var253;
5245 RET_LABEL252:(void)0;
5246 }
5247 }
5248 {
5249 var254 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var251, var_tag210);
5250 }
5251 if (varonce255) {
5252 var256 = varonce255;
5253 } else {
5254 var257 = " (";
5255 var258 = 2;
5256 var259 = standard___standard__NativeString___to_s_with_length(var257, var258);
5257 var256 = var259;
5258 varonce255 = var256;
5259 }
5260 {
5261 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_unresolved (self) on <self:AbstractCompiler> */
5262 var262 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_unresolved].val; /* _count_type_test_unresolved on <self:AbstractCompiler> */
5263 if (unlikely(var262 == NULL)) {
5264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_unresolved");
5265 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 965);
5266 show_backtrace(1);
5267 }
5268 var260 = var262;
5269 RET_LABEL261:(void)0;
5270 }
5271 }
5272 {
5273 var263 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var260, var_tag210);
5274 }
5275 {
5276 var265 = ((struct instance_standard__Int*)var263)->value; /* autounbox from nullable Object to Int */;
5277 var264 = nit___nit__AbstractCompiler___div(self, var265, var_count_type_test);
5278 }
5279 if (varonce266) {
5280 var267 = varonce266;
5281 } else {
5282 var268 = "%)";
5283 var269 = 2;
5284 var270 = standard___standard__NativeString___to_s_with_length(var268, var269);
5285 var267 = var270;
5286 varonce266 = var267;
5287 }
5288 var271 = NEW_standard__Array(&type_standard__Array__standard__Object);
5289 { /* var271 = array_instance Array[Object] */
5290 var272 = 5;
5291 var273 = NEW_standard__NativeArray(var272, &type_standard__NativeArray__standard__Object);
5292 ((struct instance_standard__NativeArray*)var273)->values[0] = (val*) var247;
5293 ((struct instance_standard__NativeArray*)var273)->values[1] = (val*) var254;
5294 ((struct instance_standard__NativeArray*)var273)->values[2] = (val*) var256;
5295 ((struct instance_standard__NativeArray*)var273)->values[3] = (val*) var264;
5296 ((struct instance_standard__NativeArray*)var273)->values[4] = (val*) var267;
5297 {
5298 ((void (*)(val* self, val* p0, long p1))(var271->class->vft[COLOR_standard__array__Array__with_native]))(var271, var273, var272) /* with_native on <var271:Array[Object]>*/;
5299 }
5300 }
5301 {
5302 var274 = ((val* (*)(val* self))(var271->class->vft[COLOR_standard__string__Object__to_s]))(var271) /* to_s on <var271:Array[Object]>*/;
5303 }
5304 var275 = NEW_standard__Array(&type_standard__Array__standard__Object);
5305 { /* var275 = array_instance Array[Object] */
5306 var276 = 1;
5307 var277 = NEW_standard__NativeArray(var276, &type_standard__NativeArray__standard__Object);
5308 ((struct instance_standard__NativeArray*)var277)->values[0] = (val*) var274;
5309 {
5310 ((void (*)(val* self, val* p0, long p1))(var275->class->vft[COLOR_standard__array__Array__with_native]))(var275, var277, var276) /* with_native on <var275:Array[Object]>*/;
5311 }
5312 }
5313 {
5314 standard__file___Object___printn(self, var275); /* Direct call file#Object#printn on <self:AbstractCompiler>*/
5315 }
5316 if (varonce278) {
5317 var279 = varonce278;
5318 } else {
5319 var280 = "\11";
5320 var281 = 1;
5321 var282 = standard___standard__NativeString___to_s_with_length(var280, var281);
5322 var279 = var282;
5323 varonce278 = var279;
5324 }
5325 {
5326 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (self) on <self:AbstractCompiler> */
5327 var285 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <self:AbstractCompiler> */
5328 if (unlikely(var285 == NULL)) {
5329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
5330 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966);
5331 show_backtrace(1);
5332 }
5333 var283 = var285;
5334 RET_LABEL284:(void)0;
5335 }
5336 }
5337 {
5338 var286 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var283, var_tag210);
5339 }
5340 if (varonce287) {
5341 var288 = varonce287;
5342 } else {
5343 var289 = " (";
5344 var290 = 2;
5345 var291 = standard___standard__NativeString___to_s_with_length(var289, var290);
5346 var288 = var291;
5347 varonce287 = var288;
5348 }
5349 {
5350 { /* Inline abstract_compiler#AbstractCompiler#count_type_test_skipped (self) on <self:AbstractCompiler> */
5351 var294 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___count_type_test_skipped].val; /* _count_type_test_skipped on <self:AbstractCompiler> */
5352 if (unlikely(var294 == NULL)) {
5353 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _count_type_test_skipped");
5354 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 966);
5355 show_backtrace(1);
5356 }
5357 var292 = var294;
5358 RET_LABEL293:(void)0;
5359 }
5360 }
5361 {
5362 var295 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var292, var_tag210);
5363 }
5364 {
5365 var297 = ((struct instance_standard__Int*)var295)->value; /* autounbox from nullable Object to Int */;
5366 var296 = nit___nit__AbstractCompiler___div(self, var297, var_count_type_test);
5367 }
5368 if (varonce298) {
5369 var299 = varonce298;
5370 } else {
5371 var300 = "%)";
5372 var301 = 2;
5373 var302 = standard___standard__NativeString___to_s_with_length(var300, var301);
5374 var299 = var302;
5375 varonce298 = var299;
5376 }
5377 var303 = NEW_standard__Array(&type_standard__Array__standard__Object);
5378 { /* var303 = array_instance Array[Object] */
5379 var304 = 5;
5380 var305 = NEW_standard__NativeArray(var304, &type_standard__NativeArray__standard__Object);
5381 ((struct instance_standard__NativeArray*)var305)->values[0] = (val*) var279;
5382 ((struct instance_standard__NativeArray*)var305)->values[1] = (val*) var286;
5383 ((struct instance_standard__NativeArray*)var305)->values[2] = (val*) var288;
5384 ((struct instance_standard__NativeArray*)var305)->values[3] = (val*) var296;
5385 ((struct instance_standard__NativeArray*)var305)->values[4] = (val*) var299;
5386 {
5387 ((void (*)(val* self, val* p0, long p1))(var303->class->vft[COLOR_standard__array__Array__with_native]))(var303, var305, var304) /* with_native on <var303:Array[Object]>*/;
5388 }
5389 }
5390 {
5391 var306 = ((val* (*)(val* self))(var303->class->vft[COLOR_standard__string__Object__to_s]))(var303) /* to_s on <var303:Array[Object]>*/;
5392 }
5393 var307 = NEW_standard__Array(&type_standard__Array__standard__Object);
5394 { /* var307 = array_instance Array[Object] */
5395 var308 = 1;
5396 var309 = NEW_standard__NativeArray(var308, &type_standard__NativeArray__standard__Object);
5397 ((struct instance_standard__NativeArray*)var309)->values[0] = (val*) var306;
5398 {
5399 ((void (*)(val* self, val* p0, long p1))(var307->class->vft[COLOR_standard__array__Array__with_native]))(var307, var309, var308) /* with_native on <var307:Array[Object]>*/;
5400 }
5401 }
5402 {
5403 standard__file___Object___printn(self, var307); /* Direct call file#Object#printn on <self:AbstractCompiler>*/
5404 }
5405 if (varonce310) {
5406 var311 = varonce310;
5407 } else {
5408 var312 = "\11";
5409 var313 = 1;
5410 var314 = standard___standard__NativeString___to_s_with_length(var312, var313);
5411 var311 = var314;
5412 varonce310 = var311;
5413 }
5414 {
5415 var315 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_count_type_test_total, var_tag210);
5416 }
5417 if (varonce316) {
5418 var317 = varonce316;
5419 } else {
5420 var318 = " (";
5421 var319 = 2;
5422 var320 = standard___standard__NativeString___to_s_with_length(var318, var319);
5423 var317 = var320;
5424 varonce316 = var317;
5425 }
5426 {
5427 var321 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var_count_type_test_total, var_tag210);
5428 }
5429 {
5430 var323 = ((struct instance_standard__Int*)var321)->value; /* autounbox from nullable Object to Int */;
5431 var322 = nit___nit__AbstractCompiler___div(self, var323, var_count_type_test);
5432 }
5433 if (varonce324) {
5434 var325 = varonce324;
5435 } else {
5436 var326 = "%)";
5437 var327 = 2;
5438 var328 = standard___standard__NativeString___to_s_with_length(var326, var327);
5439 var325 = var328;
5440 varonce324 = var325;
5441 }
5442 var329 = NEW_standard__Array(&type_standard__Array__standard__Object);
5443 { /* var329 = array_instance Array[Object] */
5444 var330 = 5;
5445 var331 = NEW_standard__NativeArray(var330, &type_standard__NativeArray__standard__Object);
5446 ((struct instance_standard__NativeArray*)var331)->values[0] = (val*) var311;
5447 ((struct instance_standard__NativeArray*)var331)->values[1] = (val*) var315;
5448 ((struct instance_standard__NativeArray*)var331)->values[2] = (val*) var317;
5449 ((struct instance_standard__NativeArray*)var331)->values[3] = (val*) var322;
5450 ((struct instance_standard__NativeArray*)var331)->values[4] = (val*) var325;
5451 {
5452 ((void (*)(val* self, val* p0, long p1))(var329->class->vft[COLOR_standard__array__Array__with_native]))(var329, var331, var330) /* with_native on <var329:Array[Object]>*/;
5453 }
5454 }
5455 {
5456 var332 = ((val* (*)(val* self))(var329->class->vft[COLOR_standard__string__Object__to_s]))(var329) /* to_s on <var329:Array[Object]>*/;
5457 }
5458 var333 = NEW_standard__Array(&type_standard__Array__standard__Object);
5459 { /* var333 = array_instance Array[Object] */
5460 var334 = 1;
5461 var335 = NEW_standard__NativeArray(var334, &type_standard__NativeArray__standard__Object);
5462 ((struct instance_standard__NativeArray*)var335)->values[0] = (val*) var332;
5463 {
5464 ((void (*)(val* self, val* p0, long p1))(var333->class->vft[COLOR_standard__array__Array__with_native]))(var333, var335, var334) /* with_native on <var333:Array[Object]>*/;
5465 }
5466 }
5467 {
5468 standard__file___Object___printn(self, var333); /* Direct call file#Object#printn on <self:AbstractCompiler>*/
5469 }
5470 if (varonce336) {
5471 var337 = varonce336;
5472 } else {
5473 var338 = "";
5474 var339 = 0;
5475 var340 = standard___standard__NativeString___to_s_with_length(var338, var339);
5476 var337 = var340;
5477 varonce336 = var337;
5478 }
5479 {
5480 standard__file___Object___print(self, var337); /* Direct call file#Object#print on <self:AbstractCompiler>*/
5481 }
5482 {
5483 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_207); /* Direct call array#ArrayIterator#next on <var_207:ArrayIterator[String]>*/
5484 }
5485 } else {
5486 goto BREAK_label341;
5487 }
5488 }
5489 BREAK_label341: (void)0;
5490 {
5491 { /* Inline abstract_collection#Iterator#finish (var_207) on <var_207:ArrayIterator[String]> */
5492 RET_LABEL342:(void)0;
5493 }
5494 }
5495 } else {
5496 }
5497 RET_LABEL:;
5498 }
5499 /* method abstract_compiler#AbstractCompiler#finalize_ffi_for_module for (self: AbstractCompiler, MModule) */
5500 void nit___nit__AbstractCompiler___finalize_ffi_for_module(val* self, val* p0) {
5501 val* var_mmodule /* var mmodule: MModule */;
5502 val* var_c /* var c: AbstractCompiler */;
5503 var_mmodule = p0;
5504 {
5505 { /* Inline abstract_compiler#MModule#finalize_ffi (var_mmodule,self) on <var_mmodule:MModule> */
5506 var_c = self;
5507 RET_LABEL1:(void)0;
5508 }
5509 }
5510 RET_LABEL:;
5511 }
5512 /* method abstract_compiler#AbstractCompiler#div for (self: AbstractCompiler, Int, Int): String */
5513 val* nit___nit__AbstractCompiler___div(val* self, long p0, long p1) {
5514 val* var /* : String */;
5515 long var_a /* var a: Int */;
5516 long var_b /* var b: Int */;
5517 long var1 /* : Int */;
5518 short int var2 /* : Bool */;
5519 short int var4 /* : Bool */;
5520 static val* varonce;
5521 val* var5 /* : String */;
5522 char* var6 /* : NativeString */;
5523 long var7 /* : Int */;
5524 val* var8 /* : FlatString */;
5525 long var9 /* : Int */;
5526 long var10 /* : Int */;
5527 short int var12 /* : Bool */;
5528 int cltype;
5529 int idtype;
5530 const char* var_class_name;
5531 long var13 /* : Int */;
5532 long var14 /* : Int */;
5533 short int var16 /* : Bool */;
5534 int cltype17;
5535 int idtype18;
5536 const char* var_class_name19;
5537 long var20 /* : Int */;
5538 double var21 /* : Float */;
5539 double var23 /* : Float */;
5540 double var24 /* : Float */;
5541 double var25 /* : Float */;
5542 short int var27 /* : Bool */;
5543 int cltype28;
5544 int idtype29;
5545 const char* var_class_name30;
5546 double var31 /* : Float */;
5547 long var32 /* : Int */;
5548 val* var33 /* : String */;
5549 var_a = p0;
5550 var_b = p1;
5551 var1 = 0;
5552 {
5553 { /* Inline kernel#Int#== (var_b,var1) on <var_b:Int> */
5554 var4 = var_b == var1;
5555 var2 = var4;
5556 goto RET_LABEL3;
5557 RET_LABEL3:(void)0;
5558 }
5559 }
5560 if (var2){
5561 if (varonce) {
5562 var5 = varonce;
5563 } else {
5564 var6 = "n/a";
5565 var7 = 3;
5566 var8 = standard___standard__NativeString___to_s_with_length(var6, var7);
5567 var5 = var8;
5568 varonce = var5;
5569 }
5570 var = var5;
5571 goto RET_LABEL;
5572 } else {
5573 }
5574 var9 = 10000;
5575 {
5576 { /* Inline kernel#Int#* (var_a,var9) on <var_a:Int> */
5577 /* Covariant cast for argument 0 (i) <var9:Int> isa OTHER */
5578 /* <var9:Int> isa OTHER */
5579 var12 = 1; /* easy <var9:Int> isa OTHER*/
5580 if (unlikely(!var12)) {
5581 var_class_name = type_standard__Int.name;
5582 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5583 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 417);
5584 show_backtrace(1);
5585 }
5586 var13 = var_a * var9;
5587 var10 = var13;
5588 goto RET_LABEL11;
5589 RET_LABEL11:(void)0;
5590 }
5591 }
5592 {
5593 { /* Inline kernel#Int#/ (var10,var_b) on <var10:Int> */
5594 /* Covariant cast for argument 0 (i) <var_b:Int> isa OTHER */
5595 /* <var_b:Int> isa OTHER */
5596 var16 = 1; /* easy <var_b:Int> isa OTHER*/
5597 if (unlikely(!var16)) {
5598 var_class_name19 = type_standard__Int.name;
5599 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name19);
5600 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 418);
5601 show_backtrace(1);
5602 }
5603 var20 = var10 / var_b;
5604 var14 = var20;
5605 goto RET_LABEL15;
5606 RET_LABEL15:(void)0;
5607 }
5608 }
5609 {
5610 { /* Inline kernel#Int#to_f (var14) on <var14:Int> */
5611 var23 = (double)var14;
5612 var21 = var23;
5613 goto RET_LABEL22;
5614 RET_LABEL22:(void)0;
5615 }
5616 }
5617 var24 = 100.0;
5618 {
5619 { /* Inline kernel#Float#/ (var21,var24) on <var21:Float> */
5620 /* Covariant cast for argument 0 (i) <var24:Float> isa OTHER */
5621 /* <var24:Float> isa OTHER */
5622 var27 = 1; /* easy <var24:Float> isa OTHER*/
5623 if (unlikely(!var27)) {
5624 var_class_name30 = type_standard__Float.name;
5625 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name30);
5626 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 330);
5627 show_backtrace(1);
5628 }
5629 var31 = var21 / var24;
5630 var25 = var31;
5631 goto RET_LABEL26;
5632 RET_LABEL26:(void)0;
5633 }
5634 }
5635 var32 = 2;
5636 {
5637 var33 = standard__string___Float___to_precision(var25, var32);
5638 }
5639 var = var33;
5640 goto RET_LABEL;
5641 RET_LABEL:;
5642 return var;
5643 }
5644 /* method abstract_compiler#CodeFile#name for (self: CodeFile): String */
5645 val* nit___nit__CodeFile___name(val* self) {
5646 val* var /* : String */;
5647 val* var1 /* : String */;
5648 var1 = self->attrs[COLOR_nit__abstract_compiler__CodeFile___name].val; /* _name on <self:CodeFile> */
5649 if (unlikely(var1 == NULL)) {
5650 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5651 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1030);
5652 show_backtrace(1);
5653 }
5654 var = var1;
5655 RET_LABEL:;
5656 return var;
5657 }
5658 /* method abstract_compiler#CodeFile#name= for (self: CodeFile, String) */
5659 void nit___nit__CodeFile___name_61d(val* self, val* p0) {
5660 self->attrs[COLOR_nit__abstract_compiler__CodeFile___name].val = p0; /* _name on <self:CodeFile> */
5661 RET_LABEL:;
5662 }
5663 /* method abstract_compiler#CodeFile#writers for (self: CodeFile): Array[CodeWriter] */
5664 val* nit___nit__CodeFile___writers(val* self) {
5665 val* var /* : Array[CodeWriter] */;
5666 val* var1 /* : Array[CodeWriter] */;
5667 var1 = self->attrs[COLOR_nit__abstract_compiler__CodeFile___writers].val; /* _writers on <self:CodeFile> */
5668 if (unlikely(var1 == NULL)) {
5669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writers");
5670 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1031);
5671 show_backtrace(1);
5672 }
5673 var = var1;
5674 RET_LABEL:;
5675 return var;
5676 }
5677 /* method abstract_compiler#CodeFile#required_declarations for (self: CodeFile): HashSet[String] */
5678 val* nit___nit__CodeFile___required_declarations(val* self) {
5679 val* var /* : HashSet[String] */;
5680 val* var1 /* : HashSet[String] */;
5681 var1 = self->attrs[COLOR_nit__abstract_compiler__CodeFile___required_declarations].val; /* _required_declarations on <self:CodeFile> */
5682 if (unlikely(var1 == NULL)) {
5683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _required_declarations");
5684 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1032);
5685 show_backtrace(1);
5686 }
5687 var = var1;
5688 RET_LABEL:;
5689 return var;
5690 }
5691 /* method abstract_compiler#CodeFile#init for (self: CodeFile) */
5692 void nit___nit__CodeFile___standard__kernel__Object__init(val* self) {
5693 {
5694 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__CodeFile___standard__kernel__Object__init]))(self) /* init on <self:CodeFile>*/;
5695 }
5696 RET_LABEL:;
5697 }
5698 /* method abstract_compiler#CodeWriter#file for (self: CodeWriter): CodeFile */
5699 val* nit___nit__CodeWriter___file(val* self) {
5700 val* var /* : CodeFile */;
5701 val* var1 /* : CodeFile */;
5702 var1 = self->attrs[COLOR_nit__abstract_compiler__CodeWriter___file].val; /* _file on <self:CodeWriter> */
5703 if (unlikely(var1 == NULL)) {
5704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
5705 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1037);
5706 show_backtrace(1);
5707 }
5708 var = var1;
5709 RET_LABEL:;
5710 return var;
5711 }
5712 /* method abstract_compiler#CodeWriter#file= for (self: CodeWriter, CodeFile) */
5713 void nit___nit__CodeWriter___file_61d(val* self, val* p0) {
5714 self->attrs[COLOR_nit__abstract_compiler__CodeWriter___file].val = p0; /* _file on <self:CodeWriter> */
5715 RET_LABEL:;
5716 }
5717 /* method abstract_compiler#CodeWriter#lines for (self: CodeWriter): List[String] */
5718 val* nit___nit__CodeWriter___lines(val* self) {
5719 val* var /* : List[String] */;
5720 val* var1 /* : List[String] */;
5721 var1 = self->attrs[COLOR_nit__abstract_compiler__CodeWriter___lines].val; /* _lines on <self:CodeWriter> */
5722 if (unlikely(var1 == NULL)) {
5723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _lines");
5724 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1038);
5725 show_backtrace(1);
5726 }
5727 var = var1;
5728 RET_LABEL:;
5729 return var;
5730 }
5731 /* method abstract_compiler#CodeWriter#decl_lines for (self: CodeWriter): List[String] */
5732 val* nit___nit__CodeWriter___decl_lines(val* self) {
5733 val* var /* : List[String] */;
5734 val* var1 /* : List[String] */;
5735 var1 = self->attrs[COLOR_nit__abstract_compiler__CodeWriter___decl_lines].val; /* _decl_lines on <self:CodeWriter> */
5736 if (unlikely(var1 == NULL)) {
5737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
5738 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1039);
5739 show_backtrace(1);
5740 }
5741 var = var1;
5742 RET_LABEL:;
5743 return var;
5744 }
5745 /* method abstract_compiler#CodeWriter#add_decl for (self: CodeWriter, String) */
5746 void nit___nit__CodeWriter___add_decl(val* self, val* p0) {
5747 val* var_s /* var s: String */;
5748 val* var /* : List[String] */;
5749 val* var2 /* : List[String] */;
5750 var_s = p0;
5751 {
5752 { /* Inline abstract_compiler#CodeWriter#decl_lines (self) on <self:CodeWriter> */
5753 var2 = self->attrs[COLOR_nit__abstract_compiler__CodeWriter___decl_lines].val; /* _decl_lines on <self:CodeWriter> */
5754 if (unlikely(var2 == NULL)) {
5755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _decl_lines");
5756 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1039);
5757 show_backtrace(1);
5758 }
5759 var = var2;
5760 RET_LABEL1:(void)0;
5761 }
5762 }
5763 {
5764 standard___standard__Sequence___SimpleCollection__add(var, var_s); /* Direct call abstract_collection#Sequence#add on <var:List[String]>*/
5765 }
5766 RET_LABEL:;
5767 }
5768 /* method abstract_compiler#CodeWriter#init for (self: CodeWriter) */
5769 void nit___nit__CodeWriter___standard__kernel__Object__init(val* self) {
5770 val* var /* : CodeFile */;
5771 val* var2 /* : CodeFile */;
5772 val* var3 /* : Array[CodeWriter] */;
5773 val* var5 /* : Array[CodeWriter] */;
5774 {
5775 { /* Inline abstract_compiler#CodeWriter#file (self) on <self:CodeWriter> */
5776 var2 = self->attrs[COLOR_nit__abstract_compiler__CodeWriter___file].val; /* _file on <self:CodeWriter> */
5777 if (unlikely(var2 == NULL)) {
5778 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _file");
5779 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1037);
5780 show_backtrace(1);
5781 }
5782 var = var2;
5783 RET_LABEL1:(void)0;
5784 }
5785 }
5786 {
5787 { /* Inline abstract_compiler#CodeFile#writers (var) on <var:CodeFile> */
5788 var5 = var->attrs[COLOR_nit__abstract_compiler__CodeFile___writers].val; /* _writers on <var:CodeFile> */
5789 if (unlikely(var5 == NULL)) {
5790 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writers");
5791 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1031);
5792 show_backtrace(1);
5793 }
5794 var3 = var5;
5795 RET_LABEL4:(void)0;
5796 }
5797 }
5798 {
5799 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var3, self); /* Direct call array#Array#add on <var3:Array[CodeWriter]>*/
5800 }
5801 RET_LABEL:;
5802 }
5803 /* method abstract_compiler#AbstractCompilerVisitor#compiler for (self: AbstractCompilerVisitor): AbstractCompiler */
5804 val* nit___nit__AbstractCompilerVisitor___compiler(val* self) {
5805 val* var /* : AbstractCompiler */;
5806 val* var1 /* : AbstractCompiler */;
5807 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
5808 if (unlikely(var1 == NULL)) {
5809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5810 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
5811 show_backtrace(1);
5812 }
5813 var = var1;
5814 RET_LABEL:;
5815 return var;
5816 }
5817 /* method abstract_compiler#AbstractCompilerVisitor#compiler= for (self: AbstractCompilerVisitor, AbstractCompiler) */
5818 void nit___nit__AbstractCompilerVisitor___compiler_61d(val* self, val* p0) {
5819 short int var /* : Bool */;
5820 int cltype;
5821 int idtype;
5822 const struct type* type_struct;
5823 const char* var_class_name;
5824 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
5825 /* <p0:AbstractCompiler> isa COMPILER */
5826 type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__COMPILER];
5827 cltype = type_struct->color;
5828 idtype = type_struct->id;
5829 if(cltype >= p0->type->table_size) {
5830 var = 0;
5831 } else {
5832 var = p0->type->type_table[cltype] == idtype;
5833 }
5834 if (unlikely(!var)) {
5835 var_class_name = p0 == NULL ? "null" : p0->type->name;
5836 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name);
5837 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
5838 show_backtrace(1);
5839 }
5840 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val = p0; /* _compiler on <self:AbstractCompilerVisitor> */
5841 RET_LABEL:;
5842 }
5843 /* method abstract_compiler#AbstractCompilerVisitor#current_node for (self: AbstractCompilerVisitor): nullable ANode */
5844 val* nit___nit__AbstractCompilerVisitor___current_node(val* self) {
5845 val* var /* : nullable ANode */;
5846 val* var1 /* : nullable ANode */;
5847 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
5848 var = var1;
5849 RET_LABEL:;
5850 return var;
5851 }
5852 /* method abstract_compiler#AbstractCompilerVisitor#current_node= for (self: AbstractCompilerVisitor, nullable ANode) */
5853 void nit___nit__AbstractCompilerVisitor___current_node_61d(val* self, val* p0) {
5854 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val = p0; /* _current_node on <self:AbstractCompilerVisitor> */
5855 RET_LABEL:;
5856 }
5857 /* method abstract_compiler#AbstractCompilerVisitor#frame for (self: AbstractCompilerVisitor): nullable StaticFrame */
5858 val* nit___nit__AbstractCompilerVisitor___frame(val* self) {
5859 val* var /* : nullable StaticFrame */;
5860 val* var1 /* : nullable StaticFrame */;
5861 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
5862 var = var1;
5863 RET_LABEL:;
5864 return var;
5865 }
5866 /* method abstract_compiler#AbstractCompilerVisitor#frame= for (self: AbstractCompilerVisitor, nullable StaticFrame) */
5867 void nit___nit__AbstractCompilerVisitor___frame_61d(val* self, val* p0) {
5868 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val = p0; /* _frame on <self:AbstractCompilerVisitor> */
5869 RET_LABEL:;
5870 }
5871 /* method abstract_compiler#AbstractCompilerVisitor#object_type for (self: AbstractCompilerVisitor): MClassType */
5872 val* nit___nit__AbstractCompilerVisitor___object_type(val* self) {
5873 val* var /* : MClassType */;
5874 val* var1 /* : AbstractCompiler */;
5875 val* var3 /* : AbstractCompiler */;
5876 val* var4 /* : MModule */;
5877 val* var6 /* : MModule */;
5878 val* var7 /* : MClassType */;
5879 {
5880 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
5881 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
5882 if (unlikely(var3 == NULL)) {
5883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5884 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
5885 show_backtrace(1);
5886 }
5887 var1 = var3;
5888 RET_LABEL2:(void)0;
5889 }
5890 }
5891 {
5892 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var1) on <var1:AbstractCompiler> */
5893 var6 = var1->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var1:AbstractCompiler> */
5894 if (unlikely(var6 == NULL)) {
5895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5896 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
5897 show_backtrace(1);
5898 }
5899 var4 = var6;
5900 RET_LABEL5:(void)0;
5901 }
5902 }
5903 {
5904 var7 = nit__model___MModule___object_type(var4);
5905 }
5906 var = var7;
5907 goto RET_LABEL;
5908 RET_LABEL:;
5909 return var;
5910 }
5911 /* method abstract_compiler#AbstractCompilerVisitor#bool_type for (self: AbstractCompilerVisitor): MClassType */
5912 val* nit___nit__AbstractCompilerVisitor___bool_type(val* self) {
5913 val* var /* : MClassType */;
5914 val* var1 /* : AbstractCompiler */;
5915 val* var3 /* : AbstractCompiler */;
5916 val* var4 /* : MModule */;
5917 val* var6 /* : MModule */;
5918 val* var7 /* : MClassType */;
5919 {
5920 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
5921 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
5922 if (unlikely(var3 == NULL)) {
5923 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5924 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
5925 show_backtrace(1);
5926 }
5927 var1 = var3;
5928 RET_LABEL2:(void)0;
5929 }
5930 }
5931 {
5932 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var1) on <var1:AbstractCompiler> */
5933 var6 = var1->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var1:AbstractCompiler> */
5934 if (unlikely(var6 == NULL)) {
5935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
5936 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
5937 show_backtrace(1);
5938 }
5939 var4 = var6;
5940 RET_LABEL5:(void)0;
5941 }
5942 }
5943 {
5944 var7 = nit__model___MModule___bool_type(var4);
5945 }
5946 var = var7;
5947 goto RET_LABEL;
5948 RET_LABEL:;
5949 return var;
5950 }
5951 /* method abstract_compiler#AbstractCompilerVisitor#writer for (self: AbstractCompilerVisitor): CodeWriter */
5952 val* nit___nit__AbstractCompilerVisitor___writer(val* self) {
5953 val* var /* : CodeWriter */;
5954 val* var1 /* : CodeWriter */;
5955 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val; /* _writer on <self:AbstractCompilerVisitor> */
5956 if (unlikely(var1 == NULL)) {
5957 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _writer");
5958 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1074);
5959 show_backtrace(1);
5960 }
5961 var = var1;
5962 RET_LABEL:;
5963 return var;
5964 }
5965 /* method abstract_compiler#AbstractCompilerVisitor#writer= for (self: AbstractCompilerVisitor, CodeWriter) */
5966 void nit___nit__AbstractCompilerVisitor___writer_61d(val* self, val* p0) {
5967 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val = p0; /* _writer on <self:AbstractCompilerVisitor> */
5968 RET_LABEL:;
5969 }
5970 /* method abstract_compiler#AbstractCompilerVisitor#init for (self: AbstractCompilerVisitor) */
5971 void nit___nit__AbstractCompilerVisitor___standard__kernel__Object__init(val* self) {
5972 val* var /* : CodeWriter */;
5973 val* var1 /* : AbstractCompiler */;
5974 val* var3 /* : AbstractCompiler */;
5975 val* var4 /* : List[CodeFile] */;
5976 val* var6 /* : List[CodeFile] */;
5977 val* var7 /* : nullable Object */;
5978 var = NEW_nit__CodeWriter(&type_nit__CodeWriter);
5979 {
5980 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
5981 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
5982 if (unlikely(var3 == NULL)) {
5983 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5984 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
5985 show_backtrace(1);
5986 }
5987 var1 = var3;
5988 RET_LABEL2:(void)0;
5989 }
5990 }
5991 {
5992 { /* Inline abstract_compiler#AbstractCompiler#files (var1) on <var1:AbstractCompiler> */
5993 var6 = var1->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___files].val; /* _files on <var1:AbstractCompiler> */
5994 if (unlikely(var6 == NULL)) {
5995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _files");
5996 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 516);
5997 show_backtrace(1);
5998 }
5999 var4 = var6;
6000 RET_LABEL5:(void)0;
6001 }
6002 }
6003 {
6004 var7 = standard___standard__List___standard__abstract_collection__SequenceRead__last(var4);
6005 }
6006 {
6007 ((void (*)(val* self, val* p0))(var->class->vft[COLOR_nit__abstract_compiler__CodeWriter__file_61d]))(var, var7) /* file= on <var:CodeWriter>*/;
6008 }
6009 {
6010 ((void (*)(val* self))(var->class->vft[COLOR_standard__kernel__Object__init]))(var) /* init on <var:CodeWriter>*/;
6011 }
6012 {
6013 { /* Inline abstract_compiler#AbstractCompilerVisitor#writer= (self,var) on <self:AbstractCompilerVisitor> */
6014 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___writer].val = var; /* _writer on <self:AbstractCompilerVisitor> */
6015 RET_LABEL8:(void)0;
6016 }
6017 }
6018 RET_LABEL:;
6019 }
6020 /* method abstract_compiler#AbstractCompilerVisitor#get_class for (self: AbstractCompilerVisitor, String): MClass */
6021 val* nit___nit__AbstractCompilerVisitor___get_class(val* self, val* p0) {
6022 val* var /* : MClass */;
6023 val* var_name /* var name: String */;
6024 val* var1 /* : AbstractCompiler */;
6025 val* var3 /* : AbstractCompiler */;
6026 val* var4 /* : MModule */;
6027 val* var6 /* : MModule */;
6028 val* var7 /* : MClass */;
6029 var_name = p0;
6030 {
6031 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
6032 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6033 if (unlikely(var3 == NULL)) {
6034 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6035 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
6036 show_backtrace(1);
6037 }
6038 var1 = var3;
6039 RET_LABEL2:(void)0;
6040 }
6041 }
6042 {
6043 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var1) on <var1:AbstractCompiler> */
6044 var6 = var1->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var1:AbstractCompiler> */
6045 if (unlikely(var6 == NULL)) {
6046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6047 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
6048 show_backtrace(1);
6049 }
6050 var4 = var6;
6051 RET_LABEL5:(void)0;
6052 }
6053 }
6054 {
6055 var7 = nit__model___MModule___get_primitive_class(var4, var_name);
6056 }
6057 var = var7;
6058 goto RET_LABEL;
6059 RET_LABEL:;
6060 return var;
6061 }
6062 /* method abstract_compiler#AbstractCompilerVisitor#get_property for (self: AbstractCompilerVisitor, String, MType): MMethod */
6063 val* nit___nit__AbstractCompilerVisitor___get_property(val* self, val* p0, val* p1) {
6064 val* var /* : MMethod */;
6065 val* var_name /* var name: String */;
6066 val* var_recv /* var recv: MType */;
6067 short int var1 /* : Bool */;
6068 int cltype;
6069 int idtype;
6070 val* var2 /* : AbstractCompiler */;
6071 val* var4 /* : AbstractCompiler */;
6072 val* var5 /* : ModelBuilder */;
6073 val* var7 /* : ModelBuilder */;
6074 val* var8 /* : nullable ANode */;
6075 val* var10 /* : nullable ANode */;
6076 val* var11 /* : MClass */;
6077 val* var13 /* : MClass */;
6078 val* var14 /* : AbstractCompiler */;
6079 val* var16 /* : AbstractCompiler */;
6080 val* var17 /* : MModule */;
6081 val* var19 /* : MModule */;
6082 val* var20 /* : MMethod */;
6083 var_name = p0;
6084 var_recv = p1;
6085 /* <var_recv:MType> isa MClassType */
6086 cltype = type_nit__MClassType.color;
6087 idtype = type_nit__MClassType.id;
6088 if(cltype >= var_recv->type->table_size) {
6089 var1 = 0;
6090 } else {
6091 var1 = var_recv->type->type_table[cltype] == idtype;
6092 }
6093 if (unlikely(!var1)) {
6094 PRINT_ERROR("Runtime error: %s", "Assert failed");
6095 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1087);
6096 show_backtrace(1);
6097 }
6098 {
6099 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
6100 var4 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6101 if (unlikely(var4 == NULL)) {
6102 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6103 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
6104 show_backtrace(1);
6105 }
6106 var2 = var4;
6107 RET_LABEL3:(void)0;
6108 }
6109 }
6110 {
6111 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var2) on <var2:AbstractCompiler> */
6112 var7 = var2->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var2:AbstractCompiler> */
6113 if (unlikely(var7 == NULL)) {
6114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6115 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
6116 show_backtrace(1);
6117 }
6118 var5 = var7;
6119 RET_LABEL6:(void)0;
6120 }
6121 }
6122 {
6123 { /* Inline abstract_compiler#AbstractCompilerVisitor#current_node (self) on <self:AbstractCompilerVisitor> */
6124 var10 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <self:AbstractCompilerVisitor> */
6125 var8 = var10;
6126 RET_LABEL9:(void)0;
6127 }
6128 }
6129 {
6130 { /* Inline model#MClassType#mclass (var_recv) on <var_recv:MType(MClassType)> */
6131 var13 = var_recv->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_recv:MType(MClassType)> */
6132 if (unlikely(var13 == NULL)) {
6133 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6134 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
6135 show_backtrace(1);
6136 }
6137 var11 = var13;
6138 RET_LABEL12:(void)0;
6139 }
6140 }
6141 {
6142 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
6143 var16 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
6144 if (unlikely(var16 == NULL)) {
6145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6146 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
6147 show_backtrace(1);
6148 }
6149 var14 = var16;
6150 RET_LABEL15:(void)0;
6151 }
6152 }
6153 {
6154 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var14) on <var14:AbstractCompiler> */
6155 var19 = var14->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var14:AbstractCompiler> */
6156 if (unlikely(var19 == NULL)) {
6157 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6158 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
6159 show_backtrace(1);
6160 }
6161 var17 = var19;
6162 RET_LABEL18:(void)0;
6163 }
6164 }
6165 {
6166 var20 = nit___nit__ModelBuilder___force_get_primitive_method(var5, var8, var_name, var11, var17);
6167 }
6168 var = var20;
6169 goto RET_LABEL;
6170 RET_LABEL:;
6171 return var;
6172 }
6173 /* method abstract_compiler#AbstractCompilerVisitor#compile_callsite for (self: AbstractCompilerVisitor, CallSite, Array[RuntimeVariable]): nullable RuntimeVariable */
6174 val* nit___nit__AbstractCompilerVisitor___compile_callsite(val* self, val* p0, val* p1) {
6175 val* var /* : nullable RuntimeVariable */;
6176 val* var_callsite /* var callsite: CallSite */;
6177 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
6178 val* var1 /* : MMethodDef */;
6179 val* var3 /* : MMethodDef */;
6180 val* var4 /* : Array[MProperty] */;
6181 val* var6 /* : Array[MProperty] */;
6182 val* var_initializers /* var initializers: Array[MProperty] */;
6183 short int var7 /* : Bool */;
6184 short int var8 /* : Bool */;
6185 val* var9 /* : nullable Object */;
6186 val* var_recv /* var recv: RuntimeVariable */;
6187 long var10 /* : Int */;
6188 long var_i /* var i: Int */;
6189 val* var_ /* var : Array[MProperty] */;
6190 val* var11 /* : ArrayIterator[nullable Object] */;
6191 val* var_12 /* var : ArrayIterator[MProperty] */;
6192 short int var13 /* : Bool */;
6193 val* var14 /* : nullable Object */;
6194 val* var_p /* var p: MProperty */;
6195 short int var15 /* : Bool */;
6196 int cltype;
6197 int idtype;
6198 val* var16 /* : Array[RuntimeVariable] */;
6199 long var17 /* : Int */;
6200 val* var_18 /* var : Array[RuntimeVariable] */;
6201 val* var_args /* var args: Array[RuntimeVariable] */;
6202 val* var19 /* : MPropDef */;
6203 val* var21 /* : MPropDef */;
6204 val* var22 /* : nullable MSignature */;
6205 val* var24 /* : nullable MSignature */;
6206 val* var25 /* : Array[MParameter] */;
6207 val* var27 /* : Array[MParameter] */;
6208 val* var_28 /* var : Array[MParameter] */;
6209 val* var29 /* : ArrayIterator[nullable Object] */;
6210 val* var_30 /* var : ArrayIterator[MParameter] */;
6211 short int var31 /* : Bool */;
6212 val* var32 /* : nullable Object */;
6213 val* var_x /* var x: MParameter */;
6214 val* var33 /* : nullable Object */;
6215 long var34 /* : Int */;
6216 long var35 /* : Int */;
6217 short int var37 /* : Bool */;
6218 int cltype38;
6219 int idtype39;
6220 const char* var_class_name;
6221 long var40 /* : Int */;
6222 val* var42 /* : nullable RuntimeVariable */;
6223 short int var43 /* : Bool */;
6224 int cltype44;
6225 int idtype45;
6226 val* var46 /* : nullable Object */;
6227 long var47 /* : Int */;
6228 long var48 /* : Int */;
6229 short int var50 /* : Bool */;
6230 int cltype51;
6231 int idtype52;
6232 const char* var_class_name53;
6233 long var54 /* : Int */;
6234 long var57 /* : Int */;
6235 long var59 /* : Int */;
6236 short int var60 /* : Bool */;
6237 short int var62 /* : Bool */;
6238 val* var63 /* : MMethod */;
6239 val* var65 /* : MMethod */;
6240 val* var66 /* : Array[RuntimeVariable] */;
6241 long var67 /* : Int */;
6242 val* var_68 /* var : Array[RuntimeVariable] */;
6243 val* var69 /* : nullable RuntimeVariable */;
6244 val* var70 /* : MMethod */;
6245 val* var72 /* : MMethod */;
6246 val* var73 /* : nullable RuntimeVariable */;
6247 var_callsite = p0;
6248 var_arguments = p1;
6249 {
6250 { /* Inline typing#CallSite#mpropdef (var_callsite) on <var_callsite:CallSite> */
6251 var3 = var_callsite->attrs[COLOR_nit__typing__CallSite___mpropdef].val; /* _mpropdef on <var_callsite:CallSite> */
6252 if (unlikely(var3 == NULL)) {
6253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
6254 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 490);
6255 show_backtrace(1);
6256 }
6257 var1 = var3;
6258 RET_LABEL2:(void)0;
6259 }
6260 }
6261 {
6262 { /* Inline model#MMethodDef#initializers (var1) on <var1:MMethodDef> */
6263 var6 = var1->attrs[COLOR_nit__model__MMethodDef___initializers].val; /* _initializers on <var1:MMethodDef> */
6264 if (unlikely(var6 == NULL)) {
6265 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _initializers");
6266 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2146);
6267 show_backtrace(1);
6268 }
6269 var4 = var6;
6270 RET_LABEL5:(void)0;
6271 }
6272 }
6273 var_initializers = var4;
6274 {
6275 var7 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var_initializers);
6276 }
6277 var8 = !var7;
6278 if (var8){
6279 {
6280 var9 = standard___standard__SequenceRead___Collection__first(var_arguments);
6281 }
6282 var_recv = var9;
6283 var10 = 1;
6284 var_i = var10;
6285 var_ = var_initializers;
6286 {
6287 var11 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_);
6288 }
6289 var_12 = var11;
6290 for(;;) {
6291 {
6292 var13 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_12);
6293 }
6294 if (var13){
6295 {
6296 var14 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_12);
6297 }
6298 var_p = var14;
6299 /* <var_p:MProperty> isa MMethod */
6300 cltype = type_nit__MMethod.color;
6301 idtype = type_nit__MMethod.id;
6302 if(cltype >= var_p->type->table_size) {
6303 var15 = 0;
6304 } else {
6305 var15 = var_p->type->type_table[cltype] == idtype;
6306 }
6307 if (var15){
6308 var16 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
6309 var17 = 1;
6310 {
6311 standard___standard__Array___with_capacity(var16, var17); /* Direct call array#Array#with_capacity on <var16:Array[RuntimeVariable]>*/
6312 }
6313 var_18 = var16;
6314 {
6315 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_18, var_recv); /* Direct call array#AbstractArray#push on <var_18:Array[RuntimeVariable]>*/
6316 }
6317 var_args = var_18;
6318 {
6319 { /* Inline model#MProperty#intro (var_p) on <var_p:MProperty(MMethod)> */
6320 var21 = var_p->attrs[COLOR_nit__model__MProperty___intro].val; /* _intro on <var_p:MProperty(MMethod)> */
6321 if (unlikely(var21 == NULL)) {
6322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6323 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1773);
6324 show_backtrace(1);
6325 }
6326 var19 = var21;
6327 RET_LABEL20:(void)0;
6328 }
6329 }
6330 {
6331 { /* Inline model#MMethodDef#msignature (var19) on <var19:MPropDef(MMethodDef)> */
6332 var24 = var19->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var19:MPropDef(MMethodDef)> */
6333 var22 = var24;
6334 RET_LABEL23:(void)0;
6335 }
6336 }
6337 if (var22 == NULL) {
6338 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6339 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1101);
6340 show_backtrace(1);
6341 } else {
6342 { /* Inline model#MSignature#mparameters (var22) on <var22:nullable MSignature> */
6343 if (unlikely(var22 == NULL)) {
6344 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6345 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
6346 show_backtrace(1);
6347 }
6348 var27 = var22->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var22:nullable MSignature> */
6349 if (unlikely(var27 == NULL)) {
6350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6351 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
6352 show_backtrace(1);
6353 }
6354 var25 = var27;
6355 RET_LABEL26:(void)0;
6356 }
6357 }
6358 var_28 = var25;
6359 {
6360 var29 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__iterator(var_28);
6361 }
6362 var_30 = var29;
6363 for(;;) {
6364 {
6365 var31 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__is_ok(var_30);
6366 }
6367 if (var31){
6368 {
6369 var32 = standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__item(var_30);
6370 }
6371 var_x = var32;
6372 {
6373 var33 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var_i);
6374 }
6375 {
6376 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_args, var33); /* Direct call array#Array#add on <var_args:Array[RuntimeVariable]>*/
6377 }
6378 var34 = 1;
6379 {
6380 { /* Inline kernel#Int#+ (var_i,var34) on <var_i:Int> */
6381 /* Covariant cast for argument 0 (i) <var34:Int> isa OTHER */
6382 /* <var34:Int> isa OTHER */
6383 var37 = 1; /* easy <var34:Int> isa OTHER*/
6384 if (unlikely(!var37)) {
6385 var_class_name = type_standard__Int.name;
6386 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6387 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
6388 show_backtrace(1);
6389 }
6390 var40 = var_i + var34;
6391 var35 = var40;
6392 goto RET_LABEL36;
6393 RET_LABEL36:(void)0;
6394 }
6395 }
6396 var_i = var35;
6397 {
6398 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_30); /* Direct call array#ArrayIterator#next on <var_30:ArrayIterator[MParameter]>*/
6399 }
6400 } else {
6401 goto BREAK_label;
6402 }
6403 }
6404 BREAK_label: (void)0;
6405 {
6406 { /* Inline abstract_collection#Iterator#finish (var_30) on <var_30:ArrayIterator[MParameter]> */
6407 RET_LABEL41:(void)0;
6408 }
6409 }
6410 {
6411 var42 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(self, var_p, var_args);
6412 }
6413 } else {
6414 /* <var_p:MProperty> isa MAttribute */
6415 cltype44 = type_nit__MAttribute.color;
6416 idtype45 = type_nit__MAttribute.id;
6417 if(cltype44 >= var_p->type->table_size) {
6418 var43 = 0;
6419 } else {
6420 var43 = var_p->type->type_table[cltype44] == idtype45;
6421 }
6422 if (var43){
6423 {
6424 var46 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var_arguments, var_i);
6425 }
6426 {
6427 nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__write_attribute(self, var_p, var_recv, var46); /* Direct call separate_compiler#SeparateCompilerVisitor#write_attribute on <self:AbstractCompilerVisitor>*/
6428 }
6429 var47 = 1;
6430 {
6431 { /* Inline kernel#Int#+ (var_i,var47) on <var_i:Int> */
6432 /* Covariant cast for argument 0 (i) <var47:Int> isa OTHER */
6433 /* <var47:Int> isa OTHER */
6434 var50 = 1; /* easy <var47:Int> isa OTHER*/
6435 if (unlikely(!var50)) {
6436 var_class_name53 = type_standard__Int.name;
6437 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
6438 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
6439 show_backtrace(1);
6440 }
6441 var54 = var_i + var47;
6442 var48 = var54;
6443 goto RET_LABEL49;
6444 RET_LABEL49:(void)0;
6445 }
6446 }
6447 var_i = var48;
6448 } else {
6449 PRINT_ERROR("Runtime error: %s", "Aborted");
6450 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1109);
6451 show_backtrace(1);
6452 }
6453 }
6454 {
6455 standard__array___standard__array__ArrayIterator___standard__abstract_collection__Iterator__next(var_12); /* Direct call array#ArrayIterator#next on <var_12:ArrayIterator[MProperty]>*/
6456 }
6457 } else {
6458 goto BREAK_label55;
6459 }
6460 }
6461 BREAK_label55: (void)0;
6462 {
6463 { /* Inline abstract_collection#Iterator#finish (var_12) on <var_12:ArrayIterator[MProperty]> */
6464 RET_LABEL56:(void)0;
6465 }
6466 }
6467 {
6468 { /* Inline array#AbstractArrayRead#length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
6469 var59 = var_arguments->attrs[COLOR_standard__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
6470 var57 = var59;
6471 RET_LABEL58:(void)0;
6472 }
6473 }
6474 {
6475 { /* Inline kernel#Int#== (var_i,var57) on <var_i:Int> */
6476 var62 = var_i == var57;
6477 var60 = var62;
6478 goto RET_LABEL61;
6479 RET_LABEL61:(void)0;
6480 }
6481 }
6482 if (unlikely(!var60)) {
6483 PRINT_ERROR("Runtime error: %s", "Assert failed");
6484 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1111);
6485 show_backtrace(1);
6486 }
6487 {
6488 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
6489 var65 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:CallSite> */
6490 if (unlikely(var65 == NULL)) {
6491 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6492 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487);
6493 show_backtrace(1);
6494 }
6495 var63 = var65;
6496 RET_LABEL64:(void)0;
6497 }
6498 }
6499 var66 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
6500 var67 = 1;
6501 {
6502 standard___standard__Array___with_capacity(var66, var67); /* Direct call array#Array#with_capacity on <var66:Array[RuntimeVariable]>*/
6503 }
6504 var_68 = var66;
6505 {
6506 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_68, var_recv); /* Direct call array#AbstractArray#push on <var_68:Array[RuntimeVariable]>*/
6507 }
6508 {
6509 var69 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(self, var63, var_68);
6510 }
6511 var = var69;
6512 goto RET_LABEL;
6513 } else {
6514 }
6515 {
6516 { /* Inline typing#CallSite#mproperty (var_callsite) on <var_callsite:CallSite> */
6517 var72 = var_callsite->attrs[COLOR_nit__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:CallSite> */
6518 if (unlikely(var72 == NULL)) {
6519 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6520 PRINT_ERROR(" (%s:%d)\n", FILE_nit__typing, 487);
6521 show_backtrace(1);
6522 }
6523 var70 = var72;
6524 RET_LABEL71:(void)0;
6525 }
6526 }
6527 {
6528 var73 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__send(self, var70, var_arguments);
6529 }
6530 var = var73;
6531 goto RET_LABEL;
6532 RET_LABEL:;
6533 return var;
6534 }
6535 /* method abstract_compiler#AbstractCompilerVisitor#varargize for (self: AbstractCompilerVisitor, MMethodDef, RuntimeVariable, SequenceRead[AExpr]): Array[RuntimeVariable] */
6536 val* nit___nit__AbstractCompilerVisitor___varargize(val* self, val* p0, val* p1, val* p2) {
6537 val* var /* : Array[RuntimeVariable] */;
6538 val* var_mpropdef /* var mpropdef: MMethodDef */;
6539 val* var_recv /* var recv: RuntimeVariable */;
6540 val* var_args /* var args: SequenceRead[AExpr] */;
6541 val* var1 /* : MSignature */;
6542 val* var2 /* : nullable MSignature */;
6543 val* var4 /* : nullable MSignature */;
6544 val* var5 /* : nullable MSignature */;
6545 val* var7 /* : nullable MSignature */;
6546 val* var_msignature /* var msignature: MSignature */;
6547 val* var8 /* : Array[RuntimeVariable] */;
6548 val* var_res /* var res: Array[RuntimeVariable] */;
6549 short int var9 /* : Bool */;
6550 long var10 /* : Int */;
6551 long var12 /* : Int */;
6552 long var_vararg_rank /* var vararg_rank: Int */;
6553 long var13 /* : Int */;
6554 long var14 /* : Int */;
6555 long var15 /* : Int */;
6556 short int var17 /* : Bool */;
6557 int cltype;
6558 int idtype;
6559 const char* var_class_name;
6560 long var18 /* : Int */;
6561 long var_vararg_len /* var vararg_len: Int */;
6562 long var19 /* : Int */;
6563 short int var20 /* : Bool */;
6564 short int var22 /* : Bool */;
6565 int cltype23;
6566 int idtype24;
6567 const char* var_class_name25;
6568 short int var26 /* : Bool */;
6569 long var27 /* : Int */;
6570 long var28 /* : Int */;
6571 long var_i /* var i: Int */;
6572 long var29 /* : Int */;
6573 long var_ /* var : Int */;
6574 short int var30 /* : Bool */;
6575 short int var32 /* : Bool */;
6576 int cltype33;
6577 int idtype34;
6578 const char* var_class_name35;
6579 short int var36 /* : Bool */;
6580 short int var37 /* : Bool */;
6581 short int var39 /* : Bool */;
6582 val* var40 /* : nullable Object */;
6583 val* var_ne /* var ne: AExpr */;
6584 short int var41 /* : Bool */;
6585 int cltype42;
6586 int idtype43;
6587 val* var44 /* : AExpr */;
6588 val* var46 /* : AExpr */;
6589 val* var47 /* : null */;
6590 val* var48 /* : RuntimeVariable */;
6591 val* var_e /* var e: RuntimeVariable */;
6592 val* var49 /* : Array[RuntimeVariable] */;
6593 val* var_vararg /* var vararg: Array[RuntimeVariable] */;
6594 long var_j /* var j: Int */;
6595 long var50 /* : Int */;
6596 short int var52 /* : Bool */;
6597 int cltype53;
6598 int idtype54;
6599 const char* var_class_name55;
6600 long var56 /* : Int */;
6601 long var_57 /* var : Int */;
6602 short int var58 /* : Bool */;
6603 short int var60 /* : Bool */;
6604 int cltype61;
6605 int idtype62;
6606 const char* var_class_name63;
6607 short int var64 /* : Bool */;
6608 val* var65 /* : nullable Object */;
6609 val* var66 /* : null */;
6610 val* var67 /* : RuntimeVariable */;
6611 val* var_e68 /* var e: RuntimeVariable */;
6612 long var69 /* : Int */;
6613 long var70 /* : Int */;
6614 val* var72 /* : Array[MParameter] */;
6615 val* var74 /* : Array[MParameter] */;
6616 val* var75 /* : nullable Object */;
6617 val* var76 /* : MType */;
6618 val* var78 /* : MType */;
6619 val* var_elttype /* var elttype: MType */;
6620 val* var79 /* : RuntimeVariable */;
6621 val* var_arg /* var arg: RuntimeVariable */;
6622 long var_j80 /* var j: Int */;
6623 short int var81 /* : Bool */;
6624 short int var83 /* : Bool */;
6625 int cltype84;
6626 int idtype85;
6627 const char* var_class_name86;
6628 short int var87 /* : Bool */;
6629 long var88 /* : Int */;
6630 short int var90 /* : Bool */;
6631 int cltype91;
6632 int idtype92;
6633 const char* var_class_name93;
6634 long var94 /* : Int */;
6635 val* var95 /* : nullable Object */;
6636 val* var96 /* : null */;
6637 val* var97 /* : RuntimeVariable */;
6638 val* var_e98 /* var e: RuntimeVariable */;
6639 long var99 /* : Int */;
6640 long var100 /* : Int */;
6641 var_mpropdef = p0;
6642 var_recv = p1;
6643 var_args = p2;
6644 {
6645 { /* Inline model#MMethodDef#new_msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
6646 var4 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_mpropdef:MMethodDef> */
6647 var2 = var4;
6648 RET_LABEL3:(void)0;
6649 }
6650 }
6651 if (var2!=NULL) {
6652 var1 = var2;
6653 } else {
6654 {
6655 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
6656 var7 = var_mpropdef->attrs[COLOR_nit__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
6657 var5 = var7;
6658 RET_LABEL6:(void)0;
6659 }
6660 }
6661 if (unlikely(var5 == NULL)) {
6662 PRINT_ERROR("Runtime error: %s", "Cast failed");
6663 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1130);
6664 show_backtrace(1);
6665 }
6666 var1 = var5;
6667 }
6668 var_msignature = var1;
6669 var8 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
6670 {
6671 standard___standard__Array___standard__kernel__Object__init(var8); /* Direct call array#Array#init on <var8:Array[RuntimeVariable]>*/
6672 }
6673 var_res = var8;
6674 {
6675 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var_recv); /* Direct call array#Array#add on <var_res:Array[RuntimeVariable]>*/
6676 }
6677 {
6678 var9 = ((short int (*)(val* self))(var_args->class->vft[COLOR_standard__abstract_collection__Collection__is_empty]))(var_args) /* is_empty on <var_args:SequenceRead[AExpr]>*/;
6679 }
6680 if (var9){
6681 var = var_res;
6682 goto RET_LABEL;
6683 } else {
6684 }
6685 {
6686 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
6687 var12 = var_msignature->attrs[COLOR_nit__model__MSignature___vararg_rank].l; /* _vararg_rank on <var_msignature:MSignature> */
6688 var10 = var12;
6689 RET_LABEL11:(void)0;
6690 }
6691 }
6692 var_vararg_rank = var10;
6693 {
6694 var13 = ((long (*)(val* self))(var_args->class->vft[COLOR_standard__abstract_collection__Collection__length]))(var_args) /* length on <var_args:SequenceRead[AExpr]>*/;
6695 }
6696 {
6697 var14 = nit___nit__MSignature___arity(var_msignature);
6698 }
6699 {
6700 { /* Inline kernel#Int#- (var13,var14) on <var13:Int> */
6701 /* Covariant cast for argument 0 (i) <var14:Int> isa OTHER */
6702 /* <var14:Int> isa OTHER */
6703 var17 = 1; /* easy <var14:Int> isa OTHER*/
6704 if (unlikely(!var17)) {
6705 var_class_name = type_standard__Int.name;
6706 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
6707 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 416);
6708 show_backtrace(1);
6709 }
6710 var18 = var13 - var14;
6711 var15 = var18;
6712 goto RET_LABEL16;
6713 RET_LABEL16:(void)0;
6714 }
6715 }
6716 var_vararg_len = var15;
6717 var19 = 0;
6718 {
6719 { /* Inline kernel#Int#< (var_vararg_len,var19) on <var_vararg_len:Int> */
6720 /* Covariant cast for argument 0 (i) <var19:Int> isa OTHER */
6721 /* <var19:Int> isa OTHER */
6722 var22 = 1; /* easy <var19:Int> isa OTHER*/
6723 if (unlikely(!var22)) {
6724 var_class_name25 = type_standard__Int.name;
6725 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name25);
6726 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
6727 show_backtrace(1);
6728 }
6729 var26 = var_vararg_len < var19;
6730 var20 = var26;
6731 goto RET_LABEL21;
6732 RET_LABEL21:(void)0;
6733 }
6734 }
6735 if (var20){
6736 var27 = 0;
6737 var_vararg_len = var27;
6738 } else {
6739 }
6740 var28 = 0;
6741 var_i = var28;
6742 {
6743 var29 = nit___nit__MSignature___arity(var_msignature);
6744 }
6745 var_ = var29;
6746 for(;;) {
6747 {
6748 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
6749 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
6750 /* <var_:Int> isa OTHER */
6751 var32 = 1; /* easy <var_:Int> isa OTHER*/
6752 if (unlikely(!var32)) {
6753 var_class_name35 = type_standard__Int.name;
6754 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name35);
6755 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
6756 show_backtrace(1);
6757 }
6758 var36 = var_i < var_;
6759 var30 = var36;
6760 goto RET_LABEL31;
6761 RET_LABEL31:(void)0;
6762 }
6763 }
6764 if (var30){
6765 {
6766 { /* Inline kernel#Int#== (var_i,var_vararg_rank) on <var_i:Int> */
6767 var39 = var_i == var_vararg_rank;
6768 var37 = var39;
6769 goto RET_LABEL38;
6770 RET_LABEL38:(void)0;
6771 }
6772 }
6773 if (var37){
6774 {
6775 var40 = ((val* (*)(val* self, long p0))(var_args->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var_args, var_i) /* [] on <var_args:SequenceRead[AExpr]>*/;
6776 }
6777 var_ne = var40;
6778 /* <var_ne:AExpr> isa AVarargExpr */
6779 cltype42 = type_nit__AVarargExpr.color;
6780 idtype43 = type_nit__AVarargExpr.id;
6781 if(cltype42 >= var_ne->type->table_size) {
6782 var41 = 0;
6783 } else {
6784 var41 = var_ne->type->type_table[cltype42] == idtype43;
6785 }
6786 if (var41){
6787 {
6788 { /* Inline parser_nodes#AVarargExpr#n_expr (var_ne) on <var_ne:AExpr(AVarargExpr)> */
6789 var46 = var_ne->attrs[COLOR_nit__parser_nodes__AVarargExpr___n_expr].val; /* _n_expr on <var_ne:AExpr(AVarargExpr)> */
6790 if (unlikely(var46 == NULL)) {
6791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6792 PRINT_ERROR(" (%s:%d)\n", FILE_nit__parser_nodes, 2343);
6793 show_backtrace(1);
6794 }
6795 var44 = var46;
6796 RET_LABEL45:(void)0;
6797 }
6798 }
6799 var47 = NULL;
6800 {
6801 var48 = nit___nit__AbstractCompilerVisitor___expr(self, var44, var47);
6802 }
6803 var_e = var48;
6804 {
6805 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var_e); /* Direct call array#Array#add on <var_res:Array[RuntimeVariable]>*/
6806 }
6807 goto BREAK_label;
6808 } else {
6809 }
6810 var49 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
6811 {
6812 standard___standard__Array___standard__kernel__Object__init(var49); /* Direct call array#Array#init on <var49:Array[RuntimeVariable]>*/
6813 }
6814 var_vararg = var49;
6815 var_j = var_vararg_rank;
6816 {
6817 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_len) on <var_vararg_rank:Int> */
6818 /* Covariant cast for argument 0 (i) <var_vararg_len:Int> isa OTHER */
6819 /* <var_vararg_len:Int> isa OTHER */
6820 var52 = 1; /* easy <var_vararg_len:Int> isa OTHER*/
6821 if (unlikely(!var52)) {
6822 var_class_name55 = type_standard__Int.name;
6823 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name55);
6824 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
6825 show_backtrace(1);
6826 }
6827 var56 = var_vararg_rank + var_vararg_len;
6828 var50 = var56;
6829 goto RET_LABEL51;
6830 RET_LABEL51:(void)0;
6831 }
6832 }
6833 var_57 = var50;
6834 for(;;) {
6835 {
6836 { /* Inline kernel#Int#<= (var_j,var_57) on <var_j:Int> */
6837 /* Covariant cast for argument 0 (i) <var_57:Int> isa OTHER */
6838 /* <var_57:Int> isa OTHER */
6839 var60 = 1; /* easy <var_57:Int> isa OTHER*/
6840 if (unlikely(!var60)) {
6841 var_class_name63 = type_standard__Int.name;
6842 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name63);
6843 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 409);
6844 show_backtrace(1);
6845 }
6846 var64 = var_j <= var_57;
6847 var58 = var64;
6848 goto RET_LABEL59;
6849 RET_LABEL59:(void)0;
6850 }
6851 }
6852 if (var58){
6853 {
6854 var65 = ((val* (*)(val* self, long p0))(var_args->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var_args, var_j) /* [] on <var_args:SequenceRead[AExpr]>*/;
6855 }
6856 var66 = NULL;
6857 {
6858 var67 = nit___nit__AbstractCompilerVisitor___expr(self, var65, var66);
6859 }
6860 var_e68 = var67;
6861 {
6862 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_vararg, var_e68); /* Direct call array#Array#add on <var_vararg:Array[RuntimeVariable]>*/
6863 }
6864 var69 = 1;
6865 {
6866 var70 = standard___standard__Int___Discrete__successor(var_j, var69);
6867 }
6868 var_j = var70;
6869 } else {
6870 goto BREAK_label71;
6871 }
6872 }
6873 BREAK_label71: (void)0;
6874 {
6875 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
6876 var74 = var_msignature->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:MSignature> */
6877 if (unlikely(var74 == NULL)) {
6878 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6879 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
6880 show_backtrace(1);
6881 }
6882 var72 = var74;
6883 RET_LABEL73:(void)0;
6884 }
6885 }
6886 {
6887 var75 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var72, var_vararg_rank);
6888 }
6889 {
6890 { /* Inline model#MParameter#mtype (var75) on <var75:nullable Object(MParameter)> */
6891 var78 = var75->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var75:nullable Object(MParameter)> */
6892 if (unlikely(var78 == NULL)) {
6893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6894 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
6895 show_backtrace(1);
6896 }
6897 var76 = var78;
6898 RET_LABEL77:(void)0;
6899 }
6900 }
6901 var_elttype = var76;
6902 {
6903 var79 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__vararg_instance(self, var_mpropdef, var_recv, var_vararg, var_elttype);
6904 }
6905 var_arg = var79;
6906 {
6907 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var_arg); /* Direct call array#Array#add on <var_res:Array[RuntimeVariable]>*/
6908 }
6909 } else {
6910 var_j80 = var_i;
6911 {
6912 { /* Inline kernel#Int#> (var_i,var_vararg_rank) on <var_i:Int> */
6913 /* Covariant cast for argument 0 (i) <var_vararg_rank:Int> isa OTHER */
6914 /* <var_vararg_rank:Int> isa OTHER */
6915 var83 = 1; /* easy <var_vararg_rank:Int> isa OTHER*/
6916 if (unlikely(!var83)) {
6917 var_class_name86 = type_standard__Int.name;
6918 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name86);
6919 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 412);
6920 show_backtrace(1);
6921 }
6922 var87 = var_i > var_vararg_rank;
6923 var81 = var87;
6924 goto RET_LABEL82;
6925 RET_LABEL82:(void)0;
6926 }
6927 }
6928 if (var81){
6929 {
6930 { /* Inline kernel#Int#+ (var_j80,var_vararg_len) on <var_j80:Int> */
6931 /* Covariant cast for argument 0 (i) <var_vararg_len:Int> isa OTHER */
6932 /* <var_vararg_len:Int> isa OTHER */
6933 var90 = 1; /* easy <var_vararg_len:Int> isa OTHER*/
6934 if (unlikely(!var90)) {
6935 var_class_name93 = type_standard__Int.name;
6936 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name93);
6937 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
6938 show_backtrace(1);
6939 }
6940 var94 = var_j80 + var_vararg_len;
6941 var88 = var94;
6942 goto RET_LABEL89;
6943 RET_LABEL89:(void)0;
6944 }
6945 }
6946 var_j80 = var88;
6947 } else {
6948 }
6949 {
6950 var95 = ((val* (*)(val* self, long p0))(var_args->class->vft[COLOR_standard__abstract_collection__SequenceRead___91d_93d]))(var_args, var_j80) /* [] on <var_args:SequenceRead[AExpr]>*/;
6951 }
6952 var96 = NULL;
6953 {
6954 var97 = nit___nit__AbstractCompilerVisitor___expr(self, var95, var96);
6955 }
6956 var_e98 = var97;
6957 {
6958 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_res, var_e98); /* Direct call array#Array#add on <var_res:Array[RuntimeVariable]>*/
6959 }
6960 }
6961 BREAK_label: (void)0;
6962 var99 = 1;
6963 {
6964 var100 = standard___standard__Int___Discrete__successor(var_i, var99);
6965 }
6966 var_i = var100;
6967 } else {
6968 goto BREAK_label101;
6969 }
6970 }
6971 BREAK_label101: (void)0;
6972 var = var_res;
6973 goto RET_LABEL;
6974 RET_LABEL:;
6975 return var;
6976 }
6977 /* method abstract_compiler#AbstractCompilerVisitor#anchor for (self: AbstractCompilerVisitor, MType): MType */
6978 val* nit___nit__AbstractCompilerVisitor___anchor(val* self, val* p0) {
6979 val* var /* : MType */;
6980 val* var_mtype /* var mtype: MType */;
6981 short int var1 /* : Bool */;
6982 short int var2 /* : Bool */;
6983 val* var3 /* : AbstractCompiler */;
6984 val* var5 /* : AbstractCompiler */;
6985 val* var6 /* : MModule */;
6986 val* var8 /* : MModule */;
6987 val* var9 /* : nullable StaticFrame */;
6988 val* var11 /* : nullable StaticFrame */;
6989 val* var12 /* : MClassType */;
6990 val* var14 /* : MClassType */;
6991 val* var15 /* : MType */;
6992 var_mtype = p0;
6993 {
6994 var1 = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
6995 }
6996 var2 = !var1;
6997 if (var2){
6998 var = var_mtype;
6999 goto RET_LABEL;
7000 } else {
7001 }
7002 {
7003 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
7004 var5 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
7005 if (unlikely(var5 == NULL)) {
7006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7007 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
7008 show_backtrace(1);
7009 }
7010 var3 = var5;
7011 RET_LABEL4:(void)0;
7012 }
7013 }
7014 {
7015 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var3) on <var3:AbstractCompiler> */
7016 var8 = var3->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var3:AbstractCompiler> */
7017 if (unlikely(var8 == NULL)) {
7018 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7019 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
7020 show_backtrace(1);
7021 }
7022 var6 = var8;
7023 RET_LABEL7:(void)0;
7024 }
7025 }
7026 {
7027 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
7028 var11 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
7029 var9 = var11;
7030 RET_LABEL10:(void)0;
7031 }
7032 }
7033 if (var9 == NULL) {
7034 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7035 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1172);
7036 show_backtrace(1);
7037 } else {
7038 { /* Inline abstract_compiler#StaticFrame#receiver (var9) on <var9:nullable StaticFrame> */
7039 if (unlikely(var9 == NULL)) {
7040 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7041 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1728);
7042 show_backtrace(1);
7043 }
7044 var14 = var9->attrs[COLOR_nit__abstract_compiler__StaticFrame___receiver].val; /* _receiver on <var9:nullable StaticFrame> */
7045 if (unlikely(var14 == NULL)) {
7046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
7047 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1728);
7048 show_backtrace(1);
7049 }
7050 var12 = var14;
7051 RET_LABEL13:(void)0;
7052 }
7053 }
7054 {
7055 var15 = ((val* (*)(val* self, val* p0, val* p1))(var_mtype->class->vft[COLOR_nit__model__MType__anchor_to]))(var_mtype, var6, var12) /* anchor_to on <var_mtype:MType>*/;
7056 }
7057 var = var15;
7058 goto RET_LABEL;
7059 RET_LABEL:;
7060 return var;
7061 }
7062 /* method abstract_compiler#AbstractCompilerVisitor#resolve_for for (self: AbstractCompilerVisitor, MType, RuntimeVariable): MType */
7063 val* nit___nit__AbstractCompilerVisitor___resolve_for(val* self, val* p0, val* p1) {
7064 val* var /* : MType */;
7065 val* var_mtype /* var mtype: MType */;
7066 val* var_recv /* var recv: RuntimeVariable */;
7067 short int var1 /* : Bool */;
7068 short int var2 /* : Bool */;
7069 val* var3 /* : MType */;
7070 val* var5 /* : MType */;
7071 val* var6 /* : nullable StaticFrame */;
7072 val* var8 /* : nullable StaticFrame */;
7073 val* var9 /* : MClassType */;
7074 val* var11 /* : MClassType */;
7075 val* var12 /* : AbstractCompiler */;
7076 val* var14 /* : AbstractCompiler */;
7077 val* var15 /* : MModule */;
7078 val* var17 /* : MModule */;
7079 short int var18 /* : Bool */;
7080 val* var19 /* : MType */;
7081 var_mtype = p0;
7082 var_recv = p1;
7083 {
7084 var1 = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
7085 }
7086 var2 = !var1;
7087 if (var2){
7088 var = var_mtype;
7089 goto RET_LABEL;
7090 } else {
7091 }
7092 {
7093 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_recv) on <var_recv:RuntimeVariable> */
7094 var5 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
7095 if (unlikely(var5 == NULL)) {
7096 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
7097 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
7098 show_backtrace(1);
7099 }
7100 var3 = var5;
7101 RET_LABEL4:(void)0;
7102 }
7103 }
7104 {
7105 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
7106 var8 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
7107 var6 = var8;
7108 RET_LABEL7:(void)0;
7109 }
7110 }
7111 if (var6 == NULL) {
7112 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7113 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1178);
7114 show_backtrace(1);
7115 } else {
7116 { /* Inline abstract_compiler#StaticFrame#receiver (var6) on <var6:nullable StaticFrame> */
7117 if (unlikely(var6 == NULL)) {
7118 PRINT_ERROR("Runtime error: %s", "Receiver is null");
7119 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1728);
7120 show_backtrace(1);
7121 }
7122 var11 = var6->attrs[COLOR_nit__abstract_compiler__StaticFrame___receiver].val; /* _receiver on <var6:nullable StaticFrame> */
7123 if (unlikely(var11 == NULL)) {
7124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _receiver");
7125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1728);
7126 show_backtrace(1);
7127 }
7128 var9 = var11;
7129 RET_LABEL10:(void)0;
7130 }
7131 }
7132 {
7133 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
7134 var14 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
7135 if (unlikely(var14 == NULL)) {
7136 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7137 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
7138 show_backtrace(1);
7139 }
7140 var12 = var14;
7141 RET_LABEL13:(void)0;
7142 }
7143 }
7144 {
7145 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var12) on <var12:AbstractCompiler> */
7146 var17 = var12->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var12:AbstractCompiler> */
7147 if (unlikely(var17 == NULL)) {
7148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7149 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
7150 show_backtrace(1);
7151 }
7152 var15 = var17;
7153 RET_LABEL16:(void)0;
7154 }
7155 }
7156 var18 = 1;
7157 {
7158 var19 = ((val* (*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nit__model__MType__resolve_for]))(var_mtype, var3, var9, var15, var18) /* resolve_for on <var_mtype:MType>*/;
7159 }
7160 var = var19;
7161 goto RET_LABEL;
7162 RET_LABEL:;
7163 return var;
7164 }
7165 /* method abstract_compiler#AbstractCompilerVisitor#autoadapt for (self: AbstractCompilerVisitor, RuntimeVariable, MType): RuntimeVariable */
7166 val* nit___nit__AbstractCompilerVisitor___autoadapt(val* self, val* p0, val* p1) {
7167 val* var /* : RuntimeVariable */;
7168 val* var_value /* var value: RuntimeVariable */;
7169 val* var_mtype /* var mtype: MType */;
7170 val* var1 /* : MType */;
7171 val* var2 /* : MType */;
7172 val* var4 /* : MType */;
7173 val* var_valmtype /* var valmtype: MType */;
7174 val* var5 /* : AbstractCompiler */;
7175 val* var7 /* : AbstractCompiler */;
7176 val* var8 /* : MModule */;
7177 val* var10 /* : MModule */;
7178 val* var11 /* : null */;
7179 short int var12 /* : Bool */;
7180 short int var13 /* : Bool */;
7181 short int var14 /* : Bool */;
7182 int cltype;
7183 int idtype;
7184 short int var_ /* var : Bool */;
7185 val* var15 /* : MType */;
7186 val* var17 /* : MType */;
7187 val* var18 /* : AbstractCompiler */;
7188 val* var20 /* : AbstractCompiler */;
7189 val* var21 /* : MModule */;
7190 val* var23 /* : MModule */;
7191 val* var24 /* : null */;
7192 short int var25 /* : Bool */;
7193 val* var26 /* : RuntimeVariable */;
7194 val* var27 /* : String */;
7195 val* var29 /* : String */;
7196 val* var30 /* : MType */;
7197 val* var32 /* : MType */;
7198 val* var_res /* var res: RuntimeVariable */;
7199 val* var33 /* : RuntimeVariable */;
7200 val* var34 /* : String */;
7201 val* var36 /* : String */;
7202 val* var_res37 /* var res: RuntimeVariable */;
7203 var_value = p0;
7204 var_mtype = p1;
7205 {
7206 var1 = nit___nit__AbstractCompilerVisitor___anchor(self, var_mtype);
7207 }
7208 var_mtype = var1;
7209 {
7210 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_value) on <var_value:RuntimeVariable> */
7211 var4 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_value:RuntimeVariable> */
7212 if (unlikely(var4 == NULL)) {
7213 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
7214 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
7215 show_backtrace(1);
7216 }
7217 var2 = var4;
7218 RET_LABEL3:(void)0;
7219 }
7220 }
7221 var_valmtype = var2;
7222 {
7223 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
7224 var7 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
7225 if (unlikely(var7 == NULL)) {
7226 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7227 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
7228 show_backtrace(1);
7229 }
7230 var5 = var7;
7231 RET_LABEL6:(void)0;
7232 }
7233 }
7234 {
7235 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var5) on <var5:AbstractCompiler> */
7236 var10 = var5->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var5:AbstractCompiler> */
7237 if (unlikely(var10 == NULL)) {
7238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7239 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
7240 show_backtrace(1);
7241 }
7242 var8 = var10;
7243 RET_LABEL9:(void)0;
7244 }
7245 }
7246 var11 = NULL;
7247 {
7248 var12 = nit___nit__MType___is_subtype(var_valmtype, var8, var11, var_mtype);
7249 }
7250 if (var12){
7251 var = var_value;
7252 goto RET_LABEL;
7253 } else {
7254 }
7255 /* <var_valmtype:MType> isa MNullableType */
7256 cltype = type_nit__MNullableType.color;
7257 idtype = type_nit__MNullableType.id;
7258 if(cltype >= var_valmtype->type->table_size) {
7259 var14 = 0;
7260 } else {
7261 var14 = var_valmtype->type->type_table[cltype] == idtype;
7262 }
7263 var_ = var14;
7264 if (var14){
7265 {
7266 { /* Inline model#MNullableType#mtype (var_valmtype) on <var_valmtype:MType(MNullableType)> */
7267 var17 = var_valmtype->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on <var_valmtype:MType(MNullableType)> */
7268 if (unlikely(var17 == NULL)) {
7269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7270 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506);
7271 show_backtrace(1);
7272 }
7273 var15 = var17;
7274 RET_LABEL16:(void)0;
7275 }
7276 }
7277 {
7278 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
7279 var20 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
7280 if (unlikely(var20 == NULL)) {
7281 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7282 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
7283 show_backtrace(1);
7284 }
7285 var18 = var20;
7286 RET_LABEL19:(void)0;
7287 }
7288 }
7289 {
7290 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var18) on <var18:AbstractCompiler> */
7291 var23 = var18->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var18:AbstractCompiler> */
7292 if (unlikely(var23 == NULL)) {
7293 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7294 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
7295 show_backtrace(1);
7296 }
7297 var21 = var23;
7298 RET_LABEL22:(void)0;
7299 }
7300 }
7301 var24 = NULL;
7302 {
7303 var25 = nit___nit__MType___is_subtype(var15, var21, var24, var_mtype);
7304 }
7305 var13 = var25;
7306 } else {
7307 var13 = var_;
7308 }
7309 if (var13){
7310 var26 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
7311 {
7312 { /* Inline abstract_compiler#RuntimeVariable#name (var_value) on <var_value:RuntimeVariable> */
7313 var29 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___name].val; /* _name on <var_value:RuntimeVariable> */
7314 if (unlikely(var29 == NULL)) {
7315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7316 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1677);
7317 show_backtrace(1);
7318 }
7319 var27 = var29;
7320 RET_LABEL28:(void)0;
7321 }
7322 }
7323 {
7324 { /* Inline model#MNullableType#mtype (var_valmtype) on <var_valmtype:MType(MNullableType)> */
7325 var32 = var_valmtype->attrs[COLOR_nit__model__MNullableType___mtype].val; /* _mtype on <var_valmtype:MType(MNullableType)> */
7326 if (unlikely(var32 == NULL)) {
7327 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
7328 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1506);
7329 show_backtrace(1);
7330 }
7331 var30 = var32;
7332 RET_LABEL31:(void)0;
7333 }
7334 }
7335 {
7336 ((void (*)(val* self, val* p0))(var26->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var26, var27) /* name= on <var26:RuntimeVariable>*/;
7337 }
7338 {
7339 ((void (*)(val* self, val* p0))(var26->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var26, var_valmtype) /* mtype= on <var26:RuntimeVariable>*/;
7340 }
7341 {
7342 ((void (*)(val* self, val* p0))(var26->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var26, var30) /* mcasttype= on <var26:RuntimeVariable>*/;
7343 }
7344 {
7345 ((void (*)(val* self))(var26->class->vft[COLOR_standard__kernel__Object__init]))(var26) /* init on <var26:RuntimeVariable>*/;
7346 }
7347 var_res = var26;
7348 var = var_res;
7349 goto RET_LABEL;
7350 } else {
7351 var33 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
7352 {
7353 { /* Inline abstract_compiler#RuntimeVariable#name (var_value) on <var_value:RuntimeVariable> */
7354 var36 = var_value->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___name].val; /* _name on <var_value:RuntimeVariable> */
7355 if (unlikely(var36 == NULL)) {
7356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7357 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1677);
7358 show_backtrace(1);
7359 }
7360 var34 = var36;
7361 RET_LABEL35:(void)0;
7362 }
7363 }
7364 {
7365 ((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var33, var34) /* name= on <var33:RuntimeVariable>*/;
7366 }
7367 {
7368 ((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var33, var_valmtype) /* mtype= on <var33:RuntimeVariable>*/;
7369 }
7370 {
7371 ((void (*)(val* self, val* p0))(var33->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var33, var_mtype) /* mcasttype= on <var33:RuntimeVariable>*/;
7372 }
7373 {
7374 ((void (*)(val* self))(var33->class->vft[COLOR_standard__kernel__Object__init]))(var33) /* init on <var33:RuntimeVariable>*/;
7375 }
7376 var_res37 = var33;
7377 var = var_res37;
7378 goto RET_LABEL;
7379 }
7380 RET_LABEL:;
7381 return var;
7382 }
7383 /* method abstract_compiler#AbstractCompilerVisitor#monomorphic_send for (self: AbstractCompilerVisitor, MMethod, MType, Array[RuntimeVariable]): nullable RuntimeVariable */
7384 val* nit___nit__AbstractCompilerVisitor___monomorphic_send(val* self, val* p0, val* p1, val* p2) {
7385 val* var /* : nullable RuntimeVariable */;
7386 val* var_m /* var m: MMethod */;
7387 val* var_t /* var t: MType */;
7388 val* var_args /* var args: Array[RuntimeVariable] */;
7389 short int var1 /* : Bool */;
7390 int cltype;
7391 int idtype;
7392 val* var2 /* : AbstractCompiler */;
7393 val* var4 /* : AbstractCompiler */;
7394 val* var5 /* : MModule */;
7395 val* var7 /* : MModule */;
7396 val* var8 /* : MPropDef */;
7397 val* var_propdef /* var propdef: MMethodDef */;
7398 val* var9 /* : nullable RuntimeVariable */;
7399 var_m = p0;
7400 var_t = p1;
7401 var_args = p2;
7402 /* <var_t:MType> isa MClassType */
7403 cltype = type_nit__MClassType.color;
7404 idtype = type_nit__MClassType.id;
7405 if(cltype >= var_t->type->table_size) {
7406 var1 = 0;
7407 } else {
7408 var1 = var_t->type->type_table[cltype] == idtype;
7409 }
7410 if (unlikely(!var1)) {
7411 PRINT_ERROR("Runtime error: %s", "Assert failed");
7412 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1241);
7413 show_backtrace(1);
7414 }
7415 {
7416 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
7417 var4 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
7418 if (unlikely(var4 == NULL)) {
7419 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7420 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
7421 show_backtrace(1);
7422 }
7423 var2 = var4;
7424 RET_LABEL3:(void)0;
7425 }
7426 }
7427 {
7428 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var2) on <var2:AbstractCompiler> */
7429 var7 = var2->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var2:AbstractCompiler> */
7430 if (unlikely(var7 == NULL)) {
7431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7432 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
7433 show_backtrace(1);
7434 }
7435 var5 = var7;
7436 RET_LABEL6:(void)0;
7437 }
7438 }
7439 {
7440 var8 = nit___nit__MProperty___lookup_first_definition(var_m, var5, var_t);
7441 }
7442 var_propdef = var8;
7443 {
7444 var9 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__call(self, var_propdef, var_t, var_args);
7445 }
7446 var = var9;
7447 goto RET_LABEL;
7448 RET_LABEL:;
7449 return var;
7450 }
7451 /* method abstract_compiler#AbstractCompilerVisitor#monomorphic_super_send for (self: AbstractCompilerVisitor, MMethodDef, MType, Array[RuntimeVariable]): nullable RuntimeVariable */
7452 val* nit___nit__AbstractCompilerVisitor___monomorphic_super_send(val* self, val* p0, val* p1, val* p2) {
7453 val* var /* : nullable RuntimeVariable */;
7454 val* var_m /* var m: MMethodDef */;
7455 val* var_t /* var t: MType */;
7456 val* var_args /* var args: Array[RuntimeVariable] */;
7457 short int var1 /* : Bool */;
7458 int cltype;
7459 int idtype;
7460 val* var2 /* : AbstractCompiler */;
7461 val* var4 /* : AbstractCompiler */;
7462 val* var5 /* : MModule */;
7463 val* var7 /* : MModule */;
7464 val* var8 /* : MPropDef */;
7465 val* var9 /* : nullable RuntimeVariable */;
7466 var_m = p0;
7467 var_t = p1;
7468 var_args = p2;
7469 /* <var_t:MType> isa MClassType */
7470 cltype = type_nit__MClassType.color;
7471 idtype = type_nit__MClassType.id;
7472 if(cltype >= var_t->type->table_size) {
7473 var1 = 0;
7474 } else {
7475 var1 = var_t->type->type_table[cltype] == idtype;
7476 }
7477 if (unlikely(!var1)) {
7478 PRINT_ERROR("Runtime error: %s", "Assert failed");
7479 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1249);
7480 show_backtrace(1);
7481 }
7482 {
7483 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
7484 var4 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
7485 if (unlikely(var4 == NULL)) {
7486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7487 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
7488 show_backtrace(1);
7489 }
7490 var2 = var4;
7491 RET_LABEL3:(void)0;
7492 }
7493 }
7494 {
7495 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var2) on <var2:AbstractCompiler> */
7496 var7 = var2->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var2:AbstractCompiler> */
7497 if (unlikely(var7 == NULL)) {
7498 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7499 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
7500 show_backtrace(1);
7501 }
7502 var5 = var7;
7503 RET_LABEL6:(void)0;
7504 }
7505 }
7506 {
7507 var8 = nit___nit__MPropDef___lookup_next_definition(var_m, var5, var_t);
7508 }
7509 var_m = var8;
7510 {
7511 var9 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__call(self, var_m, var_t, var_args);
7512 }
7513 var = var9;
7514 goto RET_LABEL;
7515 RET_LABEL:;
7516 return var;
7517 }
7518 /* method abstract_compiler#AbstractCompilerVisitor#check_recv_notnull for (self: AbstractCompilerVisitor, RuntimeVariable) */
7519 void nit___nit__AbstractCompilerVisitor___check_recv_notnull(val* self, val* p0) {
7520 val* var_recv /* var recv: RuntimeVariable */;
7521 val* var /* : AbstractCompiler */;
7522 val* var2 /* : AbstractCompiler */;
7523 val* var3 /* : ModelBuilder */;
7524 val* var5 /* : ModelBuilder */;
7525 val* var6 /* : ToolContext */;
7526 val* var8 /* : ToolContext */;
7527 val* var9 /* : OptionBool */;
7528 val* var11 /* : OptionBool */;
7529 val* var12 /* : nullable Object */;
7530 val* var14 /* : nullable Object */;
7531 short int var15 /* : Bool */;
7532 short int var16 /* : Bool */;
7533 val* var17 /* : MType */;
7534 val* var19 /* : MType */;
7535 short int var20 /* : Bool */;
7536 int cltype;
7537 int idtype;
7538 short int var_ /* var : Bool */;
7539 val* var21 /* : MType */;
7540 val* var23 /* : MType */;
7541 short int var24 /* : Bool */;
7542 int cltype25;
7543 int idtype26;
7544 short int var_maybenull /* var maybenull: Bool */;
7545 static val* varonce;
7546 val* var27 /* : String */;
7547 char* var28 /* : NativeString */;
7548 long var29 /* : Int */;
7549 val* var30 /* : FlatString */;
7550 static val* varonce31;
7551 val* var32 /* : String */;
7552 char* var33 /* : NativeString */;
7553 long var34 /* : Int */;
7554 val* var35 /* : FlatString */;
7555 val* var36 /* : Array[Object] */;
7556 long var37 /* : Int */;
7557 val* var38 /* : NativeArray[Object] */;
7558 val* var39 /* : String */;
7559 static val* varonce40;
7560 val* var41 /* : String */;
7561 char* var42 /* : NativeString */;
7562 long var43 /* : Int */;
7563 val* var44 /* : FlatString */;
7564 static val* varonce45;
7565 val* var46 /* : String */;
7566 char* var47 /* : NativeString */;
7567 long var48 /* : Int */;
7568 val* var49 /* : FlatString */;
7569 var_recv = p0;
7570 {
7571 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
7572 var2 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
7573 if (unlikely(var2 == NULL)) {
7574 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7575 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
7576 show_backtrace(1);
7577 }
7578 var = var2;
7579 RET_LABEL1:(void)0;
7580 }
7581 }
7582 {
7583 { /* Inline abstract_compiler#AbstractCompiler#modelbuilder (var) on <var:AbstractCompiler> */
7584 var5 = var->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var:AbstractCompiler> */
7585 if (unlikely(var5 == NULL)) {
7586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7587 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 481);
7588 show_backtrace(1);
7589 }
7590 var3 = var5;
7591 RET_LABEL4:(void)0;
7592 }
7593 }
7594 {
7595 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var3) on <var3:ModelBuilder> */
7596 var8 = var3->attrs[COLOR_nit__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var3:ModelBuilder> */
7597 if (unlikely(var8 == NULL)) {
7598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7599 PRINT_ERROR(" (%s:%d)\n", FILE_nit__modelbuilder_base, 47);
7600 show_backtrace(1);
7601 }
7602 var6 = var8;
7603 RET_LABEL7:(void)0;
7604 }
7605 }
7606 {
7607 { /* Inline abstract_compiler#ToolContext#opt_no_check_null (var6) on <var6:ToolContext> */
7608 var11 = var6->attrs[COLOR_nit__abstract_compiler__ToolContext___opt_no_check_null].val; /* _opt_no_check_null on <var6:ToolContext> */
7609 if (unlikely(var11 == NULL)) {
7610 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_null");
7611 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 55);
7612 show_backtrace(1);
7613 }
7614 var9 = var11;
7615 RET_LABEL10:(void)0;
7616 }
7617 }
7618 {
7619 { /* Inline opts#Option#value (var9) on <var9:OptionBool> */
7620 var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on <var9:OptionBool> */
7621 var12 = var14;
7622 RET_LABEL13:(void)0;
7623 }
7624 }
7625 var15 = ((struct instance_standard__Bool*)var12)->value; /* autounbox from nullable Object to Bool */;
7626 if (var15){
7627 goto RET_LABEL;
7628 } else {
7629 }
7630 {
7631 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_recv) on <var_recv:RuntimeVariable> */
7632 var19 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
7633 if (unlikely(var19 == NULL)) {
7634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
7635 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
7636 show_backtrace(1);
7637 }
7638 var17 = var19;
7639 RET_LABEL18:(void)0;
7640 }
7641 }
7642 /* <var17:MType> isa MNullableType */
7643 cltype = type_nit__MNullableType.color;
7644 idtype = type_nit__MNullableType.id;
7645 if(cltype >= var17->type->table_size) {
7646 var20 = 0;
7647 } else {
7648 var20 = var17->type->type_table[cltype] == idtype;
7649 }
7650 var_ = var20;
7651 if (var20){
7652 var16 = var_;
7653 } else {
7654 {
7655 { /* Inline abstract_compiler#RuntimeVariable#mcasttype (var_recv) on <var_recv:RuntimeVariable> */
7656 var23 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var_recv:RuntimeVariable> */
7657 if (unlikely(var23 == NULL)) {
7658 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
7659 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1683);
7660 show_backtrace(1);
7661 }
7662 var21 = var23;
7663 RET_LABEL22:(void)0;
7664 }
7665 }
7666 /* <var21:MType> isa MNullType */
7667 cltype25 = type_nit__MNullType.color;
7668 idtype26 = type_nit__MNullType.id;
7669 if(cltype25 >= var21->type->table_size) {
7670 var24 = 0;
7671 } else {
7672 var24 = var21->type->type_table[cltype25] == idtype26;
7673 }
7674 var16 = var24;
7675 }
7676 var_maybenull = var16;
7677 if (var_maybenull){
7678 if (varonce) {
7679 var27 = varonce;
7680 } else {
7681 var28 = "if (unlikely(";
7682 var29 = 13;
7683 var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
7684 var27 = var30;
7685 varonce = var27;
7686 }
7687 if (varonce31) {
7688 var32 = varonce31;
7689 } else {
7690 var33 = " == NULL)) {";
7691 var34 = 12;
7692 var35 = standard___standard__NativeString___to_s_with_length(var33, var34);
7693 var32 = var35;
7694 varonce31 = var32;
7695 }
7696 var36 = NEW_standard__Array(&type_standard__Array__standard__Object);
7697 { /* var36 = array_instance Array[Object] */
7698 var37 = 3;
7699 var38 = NEW_standard__NativeArray(var37, &type_standard__NativeArray__standard__Object);
7700 ((struct instance_standard__NativeArray*)var38)->values[0] = (val*) var27;
7701 ((struct instance_standard__NativeArray*)var38)->values[1] = (val*) var_recv;
7702 ((struct instance_standard__NativeArray*)var38)->values[2] = (val*) var32;
7703 {
7704 ((void (*)(val* self, val* p0, long p1))(var36->class->vft[COLOR_standard__array__Array__with_native]))(var36, var38, var37) /* with_native on <var36:Array[Object]>*/;
7705 }
7706 }
7707 {
7708 var39 = ((val* (*)(val* self))(var36->class->vft[COLOR_standard__string__Object__to_s]))(var36) /* to_s on <var36:Array[Object]>*/;
7709 }
7710 {
7711 nit___nit__AbstractCompilerVisitor___add(self, var39); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
7712 }
7713 if (varonce40) {
7714 var41 = varonce40;
7715 } else {
7716 var42 = "Receiver is null";
7717 var43 = 16;
7718 var44 = standard___standard__NativeString___to_s_with_length(var42, var43);
7719 var41 = var44;
7720 varonce40 = var41;
7721 }
7722 {
7723 nit___nit__AbstractCompilerVisitor___add_abort(self, var41); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_abort on <self:AbstractCompilerVisitor>*/
7724 }
7725 if (varonce45) {
7726 var46 = varonce45;
7727 } else {
7728 var47 = "}";
7729 var48 = 1;
7730 var49 = standard___standard__NativeString___to_s_with_length(var47, var48);
7731 var46 = var49;
7732 varonce45 = var46;
7733 }
7734 {
7735 nit___nit__AbstractCompilerVisitor___add(self, var46); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
7736 }
7737 } else {
7738 }
7739 RET_LABEL:;
7740 }
7741 /* method abstract_compiler#AbstractCompilerVisitor#names for (self: AbstractCompilerVisitor): HashSet[String] */
7742 val* nit___nit__AbstractCompilerVisitor___names(val* self) {
7743 val* var /* : HashSet[String] */;
7744 val* var1 /* : HashSet[String] */;
7745 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
7746 if (unlikely(var1 == NULL)) {
7747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7748 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1282);
7749 show_backtrace(1);
7750 }
7751 var = var1;
7752 RET_LABEL:;
7753 return var;
7754 }
7755 /* method abstract_compiler#AbstractCompilerVisitor#last for (self: AbstractCompilerVisitor): Int */
7756 long nit___nit__AbstractCompilerVisitor___last(val* self) {
7757 long var /* : Int */;
7758 long var1 /* : Int */;
7759 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___last].l; /* _last on <self:AbstractCompilerVisitor> */
7760 var = var1;
7761 RET_LABEL:;
7762 return var;
7763 }
7764 /* method abstract_compiler#AbstractCompilerVisitor#last= for (self: AbstractCompilerVisitor, Int) */
7765 void nit___nit__AbstractCompilerVisitor___last_61d(val* self, long p0) {
7766 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___last].l = p0; /* _last on <self:AbstractCompilerVisitor> */
7767 RET_LABEL:;
7768 }
7769 /* method abstract_compiler#AbstractCompilerVisitor#get_name for (self: AbstractCompilerVisitor, String): String */
7770 val* nit___nit__AbstractCompilerVisitor___get_name(val* self, val* p0) {
7771 val* var /* : String */;
7772 val* var_s /* var s: String */;
7773 val* var1 /* : HashSet[String] */;
7774 val* var3 /* : HashSet[String] */;
7775 short int var4 /* : Bool */;
7776 short int var5 /* : Bool */;
7777 val* var6 /* : HashSet[String] */;
7778 val* var8 /* : HashSet[String] */;
7779 long var9 /* : Int */;
7780 long var11 /* : Int */;
7781 long var12 /* : Int */;
7782 long var13 /* : Int */;
7783 short int var15 /* : Bool */;
7784 int cltype;
7785 int idtype;
7786 const char* var_class_name;
7787 long var16 /* : Int */;
7788 long var_i /* var i: Int */;
7789 val* var17 /* : String */;
7790 val* var18 /* : String */;
7791 val* var_s2 /* var s2: String */;
7792 val* var19 /* : HashSet[String] */;
7793 val* var21 /* : HashSet[String] */;
7794 short int var22 /* : Bool */;
7795 short int var23 /* : Bool */;
7796 val* var25 /* : HashSet[String] */;
7797 val* var27 /* : HashSet[String] */;
7798 long var28 /* : Int */;
7799 long var29 /* : Int */;
7800 short int var31 /* : Bool */;
7801 int cltype32;
7802 int idtype33;
7803 const char* var_class_name34;
7804 long var35 /* : Int */;
7805 var_s = p0;
7806 {
7807 { /* Inline abstract_compiler#AbstractCompilerVisitor#names (self) on <self:AbstractCompilerVisitor> */
7808 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
7809 if (unlikely(var3 == NULL)) {
7810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7811 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1282);
7812 show_backtrace(1);
7813 }
7814 var1 = var3;
7815 RET_LABEL2:(void)0;
7816 }
7817 }
7818 {
7819 var4 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var1, var_s);
7820 }
7821 var5 = !var4;
7822 if (var5){
7823 {
7824 { /* Inline abstract_compiler#AbstractCompilerVisitor#names (self) on <self:AbstractCompilerVisitor> */
7825 var8 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
7826 if (unlikely(var8 == NULL)) {
7827 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7828 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1282);
7829 show_backtrace(1);
7830 }
7831 var6 = var8;
7832 RET_LABEL7:(void)0;
7833 }
7834 }
7835 {
7836 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var6, var_s); /* Direct call hash_collection#HashSet#add on <var6:HashSet[String]>*/
7837 }
7838 var = var_s;
7839 goto RET_LABEL;
7840 } else {
7841 }
7842 {
7843 { /* Inline abstract_compiler#AbstractCompilerVisitor#last (self) on <self:AbstractCompilerVisitor> */
7844 var11 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___last].l; /* _last on <self:AbstractCompilerVisitor> */
7845 var9 = var11;
7846 RET_LABEL10:(void)0;
7847 }
7848 }
7849 var12 = 1;
7850 {
7851 { /* Inline kernel#Int#+ (var9,var12) on <var9:Int> */
7852 /* Covariant cast for argument 0 (i) <var12:Int> isa OTHER */
7853 /* <var12:Int> isa OTHER */
7854 var15 = 1; /* easy <var12:Int> isa OTHER*/
7855 if (unlikely(!var15)) {
7856 var_class_name = type_standard__Int.name;
7857 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
7858 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
7859 show_backtrace(1);
7860 }
7861 var16 = var9 + var12;
7862 var13 = var16;
7863 goto RET_LABEL14;
7864 RET_LABEL14:(void)0;
7865 }
7866 }
7867 var_i = var13;
7868 for(;;) {
7869 {
7870 var17 = standard__string___Int___Object__to_s(var_i);
7871 }
7872 {
7873 var18 = ((val* (*)(val* self, val* p0))(var_s->class->vft[COLOR_standard__string__String___43d]))(var_s, var17) /* + on <var_s:String>*/;
7874 }
7875 var_s2 = var18;
7876 {
7877 { /* Inline abstract_compiler#AbstractCompilerVisitor#names (self) on <self:AbstractCompilerVisitor> */
7878 var21 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
7879 if (unlikely(var21 == NULL)) {
7880 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7881 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1282);
7882 show_backtrace(1);
7883 }
7884 var19 = var21;
7885 RET_LABEL20:(void)0;
7886 }
7887 }
7888 {
7889 var22 = standard___standard__HashSet___standard__abstract_collection__Collection__has(var19, var_s2);
7890 }
7891 var23 = !var22;
7892 if (var23){
7893 {
7894 { /* Inline abstract_compiler#AbstractCompilerVisitor#last= (self,var_i) on <self:AbstractCompilerVisitor> */
7895 self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___last].l = var_i; /* _last on <self:AbstractCompilerVisitor> */
7896 RET_LABEL24:(void)0;
7897 }
7898 }
7899 {
7900 { /* Inline abstract_compiler#AbstractCompilerVisitor#names (self) on <self:AbstractCompilerVisitor> */
7901 var27 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___names].val; /* _names on <self:AbstractCompilerVisitor> */
7902 if (unlikely(var27 == NULL)) {
7903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
7904 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1282);
7905 show_backtrace(1);
7906 }
7907 var25 = var27;
7908 RET_LABEL26:(void)0;
7909 }
7910 }
7911 {
7912 standard___standard__HashSet___standard__abstract_collection__SimpleCollection__add(var25, var_s2); /* Direct call hash_collection#HashSet#add on <var25:HashSet[String]>*/
7913 }
7914 var = var_s2;
7915 goto RET_LABEL;
7916 } else {
7917 }
7918 var28 = 1;
7919 {
7920 { /* Inline kernel#Int#+ (var_i,var28) on <var_i:Int> */
7921 /* Covariant cast for argument 0 (i) <var28:Int> isa OTHER */
7922 /* <var28:Int> isa OTHER */
7923 var31 = 1; /* easy <var28:Int> isa OTHER*/
7924 if (unlikely(!var31)) {
7925 var_class_name34 = type_standard__Int.name;
7926 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name34);
7927 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 413);
7928 show_backtrace(1);
7929 }
7930 var35 = var_i + var28;
7931 var29 = var35;
7932 goto RET_LABEL30;
7933 RET_LABEL30:(void)0;
7934 }
7935 }
7936 var_i = var29;
7937 }
7938 RET_LABEL:;
7939 return var;
7940 }
7941 /* method abstract_compiler#AbstractCompilerVisitor#escapemark_name for (self: AbstractCompilerVisitor, nullable EscapeMark): String */
7942 val* nit___nit__AbstractCompilerVisitor___escapemark_name(val* self, val* p0) {
7943 val* var /* : String */;
7944 val* var_e /* var e: nullable EscapeMark */;
7945 val* var1 /* : null */;
7946 short int var2 /* : Bool */;
7947 short int var3 /* : Bool */;
7948 val* var_other /* var other: nullable Object */;
7949 short int var5 /* : Bool */;
7950 short int var6 /* : Bool */;
7951 val* var7 /* : nullable StaticFrame */;
7952 val* var9 /* : nullable StaticFrame */;
7953 val* var10 /* : HashMap[EscapeMark, String] */;
7954 val* var12 /* : HashMap[EscapeMark, String] */;
7955 short int var13 /* : Bool */;
7956 val* var14 /* : nullable StaticFrame */;
7957 val* var16 /* : nullable StaticFrame */;
7958 val* var17 /* : HashMap[EscapeMark, String] */;
7959 val* var19 /* : HashMap[EscapeMark, String] */;
7960 val* var20 /* : nullable Object */;
7961 val* var21 /* : nullable String */;
7962 val* var23 /* : nullable String */;
7963 val* var_name /* var name: nullable String */;
7964 val* var24 /* : null */;
7965 short int var25 /* : Bool */;
7966 short int var26 /* : Bool */;
7967 static val* varonce;
7968 val* var27 /* : String */;
7969 char* var28 /* : NativeString */;
7970 long var29 /* : Int */;
7971 val* var30 /* : FlatString */;
7972 val* var31 /* : String */;
7973 val* var32 /* : nullable StaticFrame */;
7974 val* var34 /* : nullable StaticFrame */;
7975 val* var35 /* : HashMap[EscapeMark, String] */;
7976 val* var37 /* : HashMap[EscapeMark, String] */;
7977 var_e = p0;
7978 var1 = NULL;
7979 if (var_e == NULL) {
7980 var2 = 0; /* is null */
7981 } else {
7982 var2 = 1; /* arg is null and recv is not */
7983 }
7984 if (0) {
7985 { /* Inline kernel#Object#!= (var_e,var1) on <var_e:nullable EscapeMark> */
7986 var_other = var1;
7987 {
7988 var5 = ((short int (*)(val* self, val* p0))(var_e->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_e, var_other) /* == on <var_e:nullable EscapeMark(EscapeMark)>*/;
7989 }
7990 var6 = !var5;
7991 var3 = var6;
7992 goto RET_LABEL4;
7993 RET_LABEL4:(void)0;
7994 }
7995 var2 = var3;
7996 }
7997 if (unlikely(!var2)) {
7998 PRINT_ERROR("Runtime error: %s", "Assert failed");
7999 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1307);
8000 show_backtrace(1);
8001 }
8002 {
8003 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
8004 var9 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
8005 var7 = var9;
8006 RET_LABEL8:(void)0;
8007 }
8008 }
8009 if (var7 == NULL) {
8010 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8011 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1308);
8012 show_backtrace(1);
8013 } else {
8014 { /* Inline abstract_compiler#StaticFrame#escapemark_names (var7) on <var7:nullable StaticFrame> */
8015 if (unlikely(var7 == NULL)) {
8016 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8017 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1740);
8018 show_backtrace(1);
8019 }
8020 var12 = var7->attrs[COLOR_nit__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <var7:nullable StaticFrame> */
8021 if (unlikely(var12 == NULL)) {
8022 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
8023 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1740);
8024 show_backtrace(1);
8025 }
8026 var10 = var12;
8027 RET_LABEL11:(void)0;
8028 }
8029 }
8030 {
8031 var13 = standard___standard__MapRead___has_key(var10, var_e);
8032 }
8033 if (var13){
8034 {
8035 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
8036 var16 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
8037 var14 = var16;
8038 RET_LABEL15:(void)0;
8039 }
8040 }
8041 if (var14 == NULL) {
8042 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8043 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1308);
8044 show_backtrace(1);
8045 } else {
8046 { /* Inline abstract_compiler#StaticFrame#escapemark_names (var14) on <var14:nullable StaticFrame> */
8047 if (unlikely(var14 == NULL)) {
8048 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8049 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1740);
8050 show_backtrace(1);
8051 }
8052 var19 = var14->attrs[COLOR_nit__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <var14:nullable StaticFrame> */
8053 if (unlikely(var19 == NULL)) {
8054 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
8055 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1740);
8056 show_backtrace(1);
8057 }
8058 var17 = var19;
8059 RET_LABEL18:(void)0;
8060 }
8061 }
8062 {
8063 var20 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var17, var_e);
8064 }
8065 var = var20;
8066 goto RET_LABEL;
8067 } else {
8068 }
8069 {
8070 { /* Inline scope#EscapeMark#name (var_e) on <var_e:nullable EscapeMark(EscapeMark)> */
8071 var23 = var_e->attrs[COLOR_nit__scope__EscapeMark___name].val; /* _name on <var_e:nullable EscapeMark(EscapeMark)> */
8072 var21 = var23;
8073 RET_LABEL22:(void)0;
8074 }
8075 }
8076 var_name = var21;
8077 var24 = NULL;
8078 if (var_name == NULL) {
8079 var25 = 1; /* is null */
8080 } else {
8081 var25 = 0; /* arg is null but recv is not */
8082 }
8083 if (0) {
8084 var26 = ((short int (*)(val* self, val* p0))(var_name->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_name, var24) /* == on <var_name:nullable String>*/;
8085 var25 = var26;
8086 }
8087 if (var25){
8088 if (varonce) {
8089 var27 = varonce;
8090 } else {
8091 var28 = "label";
8092 var29 = 5;
8093 var30 = standard___standard__NativeString___to_s_with_length(var28, var29);
8094 var27 = var30;
8095 varonce = var27;
8096 }
8097 var_name = var27;
8098 } else {
8099 }
8100 {
8101 var31 = nit___nit__AbstractCompilerVisitor___get_name(self, var_name);
8102 }
8103 var_name = var31;
8104 {
8105 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame (self) on <self:AbstractCompilerVisitor> */
8106 var34 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:AbstractCompilerVisitor> */
8107 var32 = var34;
8108 RET_LABEL33:(void)0;
8109 }
8110 }
8111 if (var32 == NULL) {
8112 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8113 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1312);
8114 show_backtrace(1);
8115 } else {
8116 { /* Inline abstract_compiler#StaticFrame#escapemark_names (var32) on <var32:nullable StaticFrame> */
8117 if (unlikely(var32 == NULL)) {
8118 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8119 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1740);
8120 show_backtrace(1);
8121 }
8122 var37 = var32->attrs[COLOR_nit__abstract_compiler__StaticFrame___escapemark_names].val; /* _escapemark_names on <var32:nullable StaticFrame> */
8123 if (unlikely(var37 == NULL)) {
8124 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapemark_names");
8125 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1740);
8126 show_backtrace(1);
8127 }
8128 var35 = var37;
8129 RET_LABEL36:(void)0;
8130 }
8131 }
8132 {
8133 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var35, var_e, var_name); /* Direct call hash_collection#HashMap#[]= on <var35:HashMap[EscapeMark, String]>*/
8134 }
8135 var = var_name;
8136 goto RET_LABEL;
8137 RET_LABEL:;
8138 return var;
8139 }
8140 /* method abstract_compiler#AbstractCompilerVisitor#add_escape_label for (self: AbstractCompilerVisitor, nullable EscapeMark) */
8141 void nit___nit__AbstractCompilerVisitor___add_escape_label(val* self, val* p0) {
8142 val* var_e /* var e: nullable EscapeMark */;
8143 val* var /* : null */;
8144 short int var1 /* : Bool */;
8145 short int var2 /* : Bool */;
8146 val* var_other /* var other: nullable Object */;
8147 short int var4 /* : Bool */;
8148 short int var6 /* : Bool */;
8149 val* var7 /* : Array[AEscapeExpr] */;
8150 val* var9 /* : Array[AEscapeExpr] */;
8151 short int var10 /* : Bool */;
8152 static val* varonce;
8153 val* var11 /* : String */;
8154 char* var12 /* : NativeString */;
8155 long var13 /* : Int */;
8156 val* var14 /* : FlatString */;
8157 val* var15 /* : String */;
8158 static val* varonce16;
8159 val* var17 /* : String */;
8160 char* var18 /* : NativeString */;
8161 long var19 /* : Int */;
8162 val* var20 /* : FlatString */;
8163 val* var21 /* : Array[Object] */;
8164 long var22 /* : Int */;
8165 val* var23 /* : NativeArray[Object] */;
8166 val* var24 /* : String */;
8167 var_e = p0;
8168 var = NULL;
8169 if (var_e == NULL) {
8170 var1 = 1; /* is null */
8171 } else {
8172 var1 = 0; /* arg is null but recv is not */
8173 }
8174 if (0) {
8175 { /* Inline kernel#Object#== (var_e,var) on <var_e:nullable EscapeMark> */
8176 var_other = var;
8177 {
8178 { /* Inline kernel#Object#is_same_instance (var_e,var_other) on <var_e:nullable EscapeMark(EscapeMark)> */
8179 var6 = var_e == var_other;
8180 var4 = var6;
8181 goto RET_LABEL5;
8182 RET_LABEL5:(void)0;
8183 }
8184 }
8185 var2 = var4;
8186 goto RET_LABEL3;
8187 RET_LABEL3:(void)0;
8188 }
8189 var1 = var2;
8190 }
8191 if (var1){
8192 goto RET_LABEL;
8193 } else {
8194 }
8195 {
8196 { /* Inline scope#EscapeMark#escapes (var_e) on <var_e:nullable EscapeMark(EscapeMark)> */
8197 var9 = var_e->attrs[COLOR_nit__scope__EscapeMark___escapes].val; /* _escapes on <var_e:nullable EscapeMark(EscapeMark)> */
8198 if (unlikely(var9 == NULL)) {
8199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _escapes");
8200 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 58);
8201 show_backtrace(1);
8202 }
8203 var7 = var9;
8204 RET_LABEL8:(void)0;
8205 }
8206 }
8207 {
8208 var10 = standard___standard__AbstractArrayRead___standard__abstract_collection__Collection__is_empty(var7);
8209 }
8210 if (var10){
8211 goto RET_LABEL;
8212 } else {
8213 }
8214 if (varonce) {
8215 var11 = varonce;
8216 } else {
8217 var12 = "BREAK_";
8218 var13 = 6;
8219 var14 = standard___standard__NativeString___to_s_with_length(var12, var13);
8220 var11 = var14;
8221 varonce = var11;
8222 }
8223 {
8224 var15 = nit___nit__AbstractCompilerVisitor___escapemark_name(self, var_e);
8225 }
8226 if (varonce16) {
8227 var17 = varonce16;
8228 } else {
8229 var18 = ": (void)0;";
8230 var19 = 10;
8231 var20 = standard___standard__NativeString___to_s_with_length(var18, var19);
8232 var17 = var20;
8233 varonce16 = var17;
8234 }
8235 var21 = NEW_standard__Array(&type_standard__Array__standard__Object);
8236 { /* var21 = array_instance Array[Object] */
8237 var22 = 3;
8238 var23 = NEW_standard__NativeArray(var22, &type_standard__NativeArray__standard__Object);
8239 ((struct instance_standard__NativeArray*)var23)->values[0] = (val*) var11;
8240 ((struct instance_standard__NativeArray*)var23)->values[1] = (val*) var15;
8241 ((struct instance_standard__NativeArray*)var23)->values[2] = (val*) var17;
8242 {
8243 ((void (*)(val* self, val* p0, long p1))(var21->class->vft[COLOR_standard__array__Array__with_native]))(var21, var23, var22) /* with_native on <var21:Array[Object]>*/;
8244 }
8245 }
8246 {
8247 var24 = ((val* (*)(val* self))(var21->class->vft[COLOR_standard__string__Object__to_s]))(var21) /* to_s on <var21:Array[Object]>*/;
8248 }
8249 {
8250 nit___nit__AbstractCompilerVisitor___add(self, var24); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
8251 }
8252 RET_LABEL:;
8253 }
8254 /* method abstract_compiler#AbstractCompilerVisitor#variables for (self: AbstractCompilerVisitor): HashMap[Variable, RuntimeVariable] */
8255 val* nit___nit__AbstractCompilerVisitor___variables(val* self) {
8256 val* var /* : HashMap[Variable, RuntimeVariable] */;
8257 val* var1 /* : HashMap[Variable, RuntimeVariable] */;
8258 var1 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
8259 if (unlikely(var1 == NULL)) {
8260 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
8261 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1330);
8262 show_backtrace(1);
8263 }
8264 var = var1;
8265 RET_LABEL:;
8266 return var;
8267 }
8268 /* method abstract_compiler#AbstractCompilerVisitor#variable for (self: AbstractCompilerVisitor, Variable): RuntimeVariable */
8269 val* nit___nit__AbstractCompilerVisitor___variable(val* self, val* p0) {
8270 val* var /* : RuntimeVariable */;
8271 val* var_variable /* var variable: Variable */;
8272 val* var1 /* : HashMap[Variable, RuntimeVariable] */;
8273 val* var3 /* : HashMap[Variable, RuntimeVariable] */;
8274 short int var4 /* : Bool */;
8275 val* var5 /* : HashMap[Variable, RuntimeVariable] */;
8276 val* var7 /* : HashMap[Variable, RuntimeVariable] */;
8277 val* var8 /* : nullable Object */;
8278 static val* varonce;
8279 val* var9 /* : String */;
8280 char* var10 /* : NativeString */;
8281 long var11 /* : Int */;
8282 val* var12 /* : FlatString */;
8283 val* var13 /* : String */;
8284 val* var15 /* : String */;
8285 val* var16 /* : Array[Object] */;
8286 long var17 /* : Int */;
8287 val* var18 /* : NativeArray[Object] */;
8288 val* var19 /* : String */;
8289 val* var20 /* : String */;
8290 val* var_name /* var name: String */;
8291 val* var21 /* : nullable MType */;
8292 val* var23 /* : nullable MType */;
8293 val* var_mtype /* var mtype: MType */;
8294 val* var24 /* : MType */;
8295 val* var25 /* : RuntimeVariable */;
8296 val* var_res /* var res: RuntimeVariable */;
8297 val* var26 /* : String */;
8298 static val* varonce27;
8299 val* var28 /* : String */;
8300 char* var29 /* : NativeString */;
8301 long var30 /* : Int */;
8302 val* var31 /* : FlatString */;
8303 static val* varonce32;
8304 val* var33 /* : String */;
8305 char* var34 /* : NativeString */;
8306 long var35 /* : Int */;
8307 val* var36 /* : FlatString */;
8308 static val* varonce37;
8309 val* var38 /* : String */;
8310 char* var39 /* : NativeString */;
8311 long var40 /* : Int */;
8312 val* var41 /* : FlatString */;
8313 static val* varonce42;
8314 val* var43 /* : String */;
8315 char* var44 /* : NativeString */;
8316 long var45 /* : Int */;
8317 val* var46 /* : FlatString */;
8318 val* var47 /* : Array[Object] */;
8319 long var48 /* : Int */;
8320 val* var49 /* : NativeArray[Object] */;
8321 val* var50 /* : String */;
8322 val* var51 /* : HashMap[Variable, RuntimeVariable] */;
8323 val* var53 /* : HashMap[Variable, RuntimeVariable] */;
8324 var_variable = p0;
8325 {
8326 { /* Inline abstract_compiler#AbstractCompilerVisitor#variables (self) on <self:AbstractCompilerVisitor> */
8327 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
8328 if (unlikely(var3 == NULL)) {
8329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
8330 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1330);
8331 show_backtrace(1);
8332 }
8333 var1 = var3;
8334 RET_LABEL2:(void)0;
8335 }
8336 }
8337 {
8338 var4 = standard___standard__MapRead___has_key(var1, var_variable);
8339 }
8340 if (var4){
8341 {
8342 { /* Inline abstract_compiler#AbstractCompilerVisitor#variables (self) on <self:AbstractCompilerVisitor> */
8343 var7 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
8344 if (unlikely(var7 == NULL)) {
8345 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
8346 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1330);
8347 show_backtrace(1);
8348 }
8349 var5 = var7;
8350 RET_LABEL6:(void)0;
8351 }
8352 }
8353 {
8354 var8 = standard___standard__HashMap___standard__abstract_collection__MapRead___91d_93d(var5, var_variable);
8355 }
8356 var = var8;
8357 goto RET_LABEL;
8358 } else {
8359 if (varonce) {
8360 var9 = varonce;
8361 } else {
8362 var10 = "var_";
8363 var11 = 4;
8364 var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
8365 var9 = var12;
8366 varonce = var9;
8367 }
8368 {
8369 { /* Inline scope#Variable#name (var_variable) on <var_variable:Variable> */
8370 var15 = var_variable->attrs[COLOR_nit__scope__Variable___name].val; /* _name on <var_variable:Variable> */
8371 if (unlikely(var15 == NULL)) {
8372 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8373 PRINT_ERROR(" (%s:%d)\n", FILE_nit__scope, 35);
8374 show_backtrace(1);
8375 }
8376 var13 = var15;
8377 RET_LABEL14:(void)0;
8378 }
8379 }
8380 var16 = NEW_standard__Array(&type_standard__Array__standard__Object);
8381 { /* var16 = array_instance Array[Object] */
8382 var17 = 2;
8383 var18 = NEW_standard__NativeArray(var17, &type_standard__NativeArray__standard__Object);
8384 ((struct instance_standard__NativeArray*)var18)->values[0] = (val*) var9;
8385 ((struct instance_standard__NativeArray*)var18)->values[1] = (val*) var13;
8386 {
8387 ((void (*)(val* self, val* p0, long p1))(var16->class->vft[COLOR_standard__array__Array__with_native]))(var16, var18, var17) /* with_native on <var16:Array[Object]>*/;
8388 }
8389 }
8390 {
8391 var19 = ((val* (*)(val* self))(var16->class->vft[COLOR_standard__string__Object__to_s]))(var16) /* to_s on <var16:Array[Object]>*/;
8392 }
8393 {
8394 var20 = nit___nit__AbstractCompilerVisitor___get_name(self, var19);
8395 }
8396 var_name = var20;
8397 {
8398 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
8399 var23 = var_variable->attrs[COLOR_nit__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
8400 var21 = var23;
8401 RET_LABEL22:(void)0;
8402 }
8403 }
8404 if (unlikely(var21 == NULL)) {
8405 PRINT_ERROR("Runtime error: %s", "Cast failed");
8406 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1339);
8407 show_backtrace(1);
8408 }
8409 var_mtype = var21;
8410 {
8411 var24 = nit___nit__AbstractCompilerVisitor___anchor(self, var_mtype);
8412 }
8413 var_mtype = var24;
8414 var25 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
8415 {
8416 ((void (*)(val* self, val* p0))(var25->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var25, var_name) /* name= on <var25:RuntimeVariable>*/;
8417 }
8418 {
8419 ((void (*)(val* self, val* p0))(var25->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var25, var_mtype) /* mtype= on <var25:RuntimeVariable>*/;
8420 }
8421 {
8422 ((void (*)(val* self, val* p0))(var25->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var25, var_mtype) /* mcasttype= on <var25:RuntimeVariable>*/;
8423 }
8424 {
8425 ((void (*)(val* self))(var25->class->vft[COLOR_standard__kernel__Object__init]))(var25) /* init on <var25:RuntimeVariable>*/;
8426 }
8427 var_res = var25;
8428 {
8429 var26 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MType>*/;
8430 }
8431 if (varonce27) {
8432 var28 = varonce27;
8433 } else {
8434 var29 = " ";
8435 var30 = 1;
8436 var31 = standard___standard__NativeString___to_s_with_length(var29, var30);
8437 var28 = var31;
8438 varonce27 = var28;
8439 }
8440 if (varonce32) {
8441 var33 = varonce32;
8442 } else {
8443 var34 = " /* var ";
8444 var35 = 8;
8445 var36 = standard___standard__NativeString___to_s_with_length(var34, var35);
8446 var33 = var36;
8447 varonce32 = var33;
8448 }
8449 if (varonce37) {
8450 var38 = varonce37;
8451 } else {
8452 var39 = ": ";
8453 var40 = 2;
8454 var41 = standard___standard__NativeString___to_s_with_length(var39, var40);
8455 var38 = var41;
8456 varonce37 = var38;
8457 }
8458 if (varonce42) {
8459 var43 = varonce42;
8460 } else {
8461 var44 = " */;";
8462 var45 = 4;
8463 var46 = standard___standard__NativeString___to_s_with_length(var44, var45);
8464 var43 = var46;
8465 varonce42 = var43;
8466 }
8467 var47 = NEW_standard__Array(&type_standard__Array__standard__Object);
8468 { /* var47 = array_instance Array[Object] */
8469 var48 = 8;
8470 var49 = NEW_standard__NativeArray(var48, &type_standard__NativeArray__standard__Object);
8471 ((struct instance_standard__NativeArray*)var49)->values[0] = (val*) var26;
8472 ((struct instance_standard__NativeArray*)var49)->values[1] = (val*) var28;
8473 ((struct instance_standard__NativeArray*)var49)->values[2] = (val*) var_name;
8474 ((struct instance_standard__NativeArray*)var49)->values[3] = (val*) var33;
8475 ((struct instance_standard__NativeArray*)var49)->values[4] = (val*) var_variable;
8476 ((struct instance_standard__NativeArray*)var49)->values[5] = (val*) var38;
8477 ((struct instance_standard__NativeArray*)var49)->values[6] = (val*) var_mtype;
8478 ((struct instance_standard__NativeArray*)var49)->values[7] = (val*) var43;
8479 {
8480 ((void (*)(val* self, val* p0, long p1))(var47->class->vft[COLOR_standard__array__Array__with_native]))(var47, var49, var48) /* with_native on <var47:Array[Object]>*/;
8481 }
8482 }
8483 {
8484 var50 = ((val* (*)(val* self))(var47->class->vft[COLOR_standard__string__Object__to_s]))(var47) /* to_s on <var47:Array[Object]>*/;
8485 }
8486 {
8487 nit___nit__AbstractCompilerVisitor___add_decl(self, var50); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:AbstractCompilerVisitor>*/
8488 }
8489 {
8490 { /* Inline abstract_compiler#AbstractCompilerVisitor#variables (self) on <self:AbstractCompilerVisitor> */
8491 var53 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___variables].val; /* _variables on <self:AbstractCompilerVisitor> */
8492 if (unlikely(var53 == NULL)) {
8493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _variables");
8494 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1330);
8495 show_backtrace(1);
8496 }
8497 var51 = var53;
8498 RET_LABEL52:(void)0;
8499 }
8500 }
8501 {
8502 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var51, var_variable, var_res); /* Direct call hash_collection#HashMap#[]= on <var51:HashMap[Variable, RuntimeVariable]>*/
8503 }
8504 var = var_res;
8505 goto RET_LABEL;
8506 }
8507 RET_LABEL:;
8508 return var;
8509 }
8510 /* method abstract_compiler#AbstractCompilerVisitor#new_var for (self: AbstractCompilerVisitor, MType): RuntimeVariable */
8511 val* nit___nit__AbstractCompilerVisitor___new_var(val* self, val* p0) {
8512 val* var /* : RuntimeVariable */;
8513 val* var_mtype /* var mtype: MType */;
8514 val* var1 /* : MType */;
8515 static val* varonce;
8516 val* var2 /* : String */;
8517 char* var3 /* : NativeString */;
8518 long var4 /* : Int */;
8519 val* var5 /* : FlatString */;
8520 val* var6 /* : String */;
8521 val* var_name /* var name: String */;
8522 val* var7 /* : RuntimeVariable */;
8523 val* var_res /* var res: RuntimeVariable */;
8524 val* var8 /* : String */;
8525 static val* varonce9;
8526 val* var10 /* : String */;
8527 char* var11 /* : NativeString */;
8528 long var12 /* : Int */;
8529 val* var13 /* : FlatString */;
8530 static val* varonce14;
8531 val* var15 /* : String */;
8532 char* var16 /* : NativeString */;
8533 long var17 /* : Int */;
8534 val* var18 /* : FlatString */;
8535 static val* varonce19;
8536 val* var20 /* : String */;
8537 char* var21 /* : NativeString */;
8538 long var22 /* : Int */;
8539 val* var23 /* : FlatString */;
8540 val* var24 /* : Array[Object] */;
8541 long var25 /* : Int */;
8542 val* var26 /* : NativeArray[Object] */;
8543 val* var27 /* : String */;
8544 var_mtype = p0;
8545 {
8546 var1 = nit___nit__AbstractCompilerVisitor___anchor(self, var_mtype);
8547 }
8548 var_mtype = var1;
8549 if (varonce) {
8550 var2 = varonce;
8551 } else {
8552 var3 = "var";
8553 var4 = 3;
8554 var5 = standard___standard__NativeString___to_s_with_length(var3, var4);
8555 var2 = var5;
8556 varonce = var2;
8557 }
8558 {
8559 var6 = nit___nit__AbstractCompilerVisitor___get_name(self, var2);
8560 }
8561 var_name = var6;
8562 var7 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
8563 {
8564 ((void (*)(val* self, val* p0))(var7->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var7, var_name) /* name= on <var7:RuntimeVariable>*/;
8565 }
8566 {
8567 ((void (*)(val* self, val* p0))(var7->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var7, var_mtype) /* mtype= on <var7:RuntimeVariable>*/;
8568 }
8569 {
8570 ((void (*)(val* self, val* p0))(var7->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var7, var_mtype) /* mcasttype= on <var7:RuntimeVariable>*/;
8571 }
8572 {
8573 ((void (*)(val* self))(var7->class->vft[COLOR_standard__kernel__Object__init]))(var7) /* init on <var7:RuntimeVariable>*/;
8574 }
8575 var_res = var7;
8576 {
8577 var8 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MType>*/;
8578 }
8579 if (varonce9) {
8580 var10 = varonce9;
8581 } else {
8582 var11 = " ";
8583 var12 = 1;
8584 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
8585 var10 = var13;
8586 varonce9 = var10;
8587 }
8588 if (varonce14) {
8589 var15 = varonce14;
8590 } else {
8591 var16 = " /* : ";
8592 var17 = 6;
8593 var18 = standard___standard__NativeString___to_s_with_length(var16, var17);
8594 var15 = var18;
8595 varonce14 = var15;
8596 }
8597 if (varonce19) {
8598 var20 = varonce19;
8599 } else {
8600 var21 = " */;";
8601 var22 = 4;
8602 var23 = standard___standard__NativeString___to_s_with_length(var21, var22);
8603 var20 = var23;
8604 varonce19 = var20;
8605 }
8606 var24 = NEW_standard__Array(&type_standard__Array__standard__Object);
8607 { /* var24 = array_instance Array[Object] */
8608 var25 = 6;
8609 var26 = NEW_standard__NativeArray(var25, &type_standard__NativeArray__standard__Object);
8610 ((struct instance_standard__NativeArray*)var26)->values[0] = (val*) var8;
8611 ((struct instance_standard__NativeArray*)var26)->values[1] = (val*) var10;
8612 ((struct instance_standard__NativeArray*)var26)->values[2] = (val*) var_name;
8613 ((struct instance_standard__NativeArray*)var26)->values[3] = (val*) var15;
8614 ((struct instance_standard__NativeArray*)var26)->values[4] = (val*) var_mtype;
8615 ((struct instance_standard__NativeArray*)var26)->values[5] = (val*) var20;
8616 {
8617 ((void (*)(val* self, val* p0, long p1))(var24->class->vft[COLOR_standard__array__Array__with_native]))(var24, var26, var25) /* with_native on <var24:Array[Object]>*/;
8618 }
8619 }
8620 {
8621 var27 = ((val* (*)(val* self))(var24->class->vft[COLOR_standard__string__Object__to_s]))(var24) /* to_s on <var24:Array[Object]>*/;
8622 }
8623 {
8624 nit___nit__AbstractCompilerVisitor___add_decl(self, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:AbstractCompilerVisitor>*/
8625 }
8626 var = var_res;
8627 goto RET_LABEL;
8628 RET_LABEL:;
8629 return var;
8630 }
8631 /* method abstract_compiler#AbstractCompilerVisitor#new_var_extern for (self: AbstractCompilerVisitor, MType): RuntimeVariable */
8632 val* nit___nit__AbstractCompilerVisitor___new_var_extern(val* self, val* p0) {
8633 val* var /* : RuntimeVariable */;
8634 val* var_mtype /* var mtype: MType */;
8635 val* var1 /* : MType */;
8636 static val* varonce;
8637 val* var2 /* : String */;
8638 char* var3 /* : NativeString */;
8639 long var4 /* : Int */;
8640 val* var5 /* : FlatString */;
8641 val* var6 /* : String */;
8642 val* var_name /* var name: String */;
8643 val* var7 /* : RuntimeVariable */;
8644 val* var_res /* var res: RuntimeVariable */;
8645 val* var8 /* : String */;
8646 static val* varonce9;
8647 val* var10 /* : String */;
8648 char* var11 /* : NativeString */;
8649 long var12 /* : Int */;
8650 val* var13 /* : FlatString */;
8651 static val* varonce14;
8652 val* var15 /* : String */;
8653 char* var16 /* : NativeString */;
8654 long var17 /* : Int */;
8655 val* var18 /* : FlatString */;
8656 static val* varonce19;
8657 val* var20 /* : String */;
8658 char* var21 /* : NativeString */;
8659 long var22 /* : Int */;
8660 val* var23 /* : FlatString */;
8661 val* var24 /* : Array[Object] */;
8662 long var25 /* : Int */;
8663 val* var26 /* : NativeArray[Object] */;
8664 val* var27 /* : String */;
8665 var_mtype = p0;
8666 {
8667 var1 = nit___nit__AbstractCompilerVisitor___anchor(self, var_mtype);
8668 }
8669 var_mtype = var1;
8670 if (varonce) {
8671 var2 = varonce;
8672 } else {
8673 var3 = "var";
8674 var4 = 3;
8675 var5 = standard___standard__NativeString___to_s_with_length(var3, var4);
8676 var2 = var5;
8677 varonce = var2;
8678 }
8679 {
8680 var6 = nit___nit__AbstractCompilerVisitor___get_name(self, var2);
8681 }
8682 var_name = var6;
8683 var7 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
8684 {
8685 ((void (*)(val* self, val* p0))(var7->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var7, var_name) /* name= on <var7:RuntimeVariable>*/;
8686 }
8687 {
8688 ((void (*)(val* self, val* p0))(var7->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var7, var_mtype) /* mtype= on <var7:RuntimeVariable>*/;
8689 }
8690 {
8691 ((void (*)(val* self, val* p0))(var7->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var7, var_mtype) /* mcasttype= on <var7:RuntimeVariable>*/;
8692 }
8693 {
8694 ((void (*)(val* self))(var7->class->vft[COLOR_standard__kernel__Object__init]))(var7) /* init on <var7:RuntimeVariable>*/;
8695 }
8696 var_res = var7;
8697 {
8698 var8 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctype_extern]))(var_mtype) /* ctype_extern on <var_mtype:MType>*/;
8699 }
8700 if (varonce9) {
8701 var10 = varonce9;
8702 } else {
8703 var11 = " ";
8704 var12 = 1;
8705 var13 = standard___standard__NativeString___to_s_with_length(var11, var12);
8706 var10 = var13;
8707 varonce9 = var10;
8708 }
8709 if (varonce14) {
8710 var15 = varonce14;
8711 } else {
8712 var16 = " /* : ";
8713 var17 = 6;
8714 var18 = standard___standard__NativeString___to_s_with_length(var16, var17);
8715 var15 = var18;
8716 varonce14 = var15;
8717 }
8718 if (varonce19) {
8719 var20 = varonce19;
8720 } else {
8721 var21 = " for extern */;";
8722 var22 = 15;
8723 var23 = standard___standard__NativeString___to_s_with_length(var21, var22);
8724 var20 = var23;
8725 varonce19 = var20;
8726 }
8727 var24 = NEW_standard__Array(&type_standard__Array__standard__Object);
8728 { /* var24 = array_instance Array[Object] */
8729 var25 = 6;
8730 var26 = NEW_standard__NativeArray(var25, &type_standard__NativeArray__standard__Object);
8731 ((struct instance_standard__NativeArray*)var26)->values[0] = (val*) var8;
8732 ((struct instance_standard__NativeArray*)var26)->values[1] = (val*) var10;
8733 ((struct instance_standard__NativeArray*)var26)->values[2] = (val*) var_name;
8734 ((struct instance_standard__NativeArray*)var26)->values[3] = (val*) var15;
8735 ((struct instance_standard__NativeArray*)var26)->values[4] = (val*) var_mtype;
8736 ((struct instance_standard__NativeArray*)var26)->values[5] = (val*) var20;
8737 {
8738 ((void (*)(val* self, val* p0, long p1))(var24->class->vft[COLOR_standard__array__Array__with_native]))(var24, var26, var25) /* with_native on <var24:Array[Object]>*/;
8739 }
8740 }
8741 {
8742 var27 = ((val* (*)(val* self))(var24->class->vft[COLOR_standard__string__Object__to_s]))(var24) /* to_s on <var24:Array[Object]>*/;
8743 }
8744 {
8745 nit___nit__AbstractCompilerVisitor___add_decl(self, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:AbstractCompilerVisitor>*/
8746 }
8747 var = var_res;
8748 goto RET_LABEL;
8749 RET_LABEL:;
8750 return var;
8751 }
8752 /* method abstract_compiler#AbstractCompilerVisitor#new_named_var for (self: AbstractCompilerVisitor, MType, String): RuntimeVariable */
8753 val* nit___nit__AbstractCompilerVisitor___new_named_var(val* self, val* p0, val* p1) {
8754 val* var /* : RuntimeVariable */;
8755 val* var_mtype /* var mtype: MType */;
8756 val* var_name /* var name: String */;
8757 val* var1 /* : MType */;
8758 val* var2 /* : RuntimeVariable */;
8759 val* var_res /* var res: RuntimeVariable */;
8760 val* var3 /* : String */;
8761 static val* varonce;
8762 val* var4 /* : String */;
8763 char* var5 /* : NativeString */;
8764 long var6 /* : Int */;
8765 val* var7 /* : FlatString */;
8766 static val* varonce8;
8767 val* var9 /* : String */;
8768 char* var10 /* : NativeString */;
8769 long var11 /* : Int */;
8770 val* var12 /* : FlatString */;
8771 static val* varonce13;
8772 val* var14 /* : String */;
8773 char* var15 /* : NativeString */;
8774 long var16 /* : Int */;
8775 val* var17 /* : FlatString */;
8776 val* var18 /* : Array[Object] */;
8777 long var19 /* : Int */;
8778 val* var20 /* : NativeArray[Object] */;
8779 val* var21 /* : String */;
8780 var_mtype = p0;
8781 var_name = p1;
8782 {
8783 var1 = nit___nit__AbstractCompilerVisitor___anchor(self, var_mtype);
8784 }
8785 var_mtype = var1;
8786 var2 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
8787 {
8788 ((void (*)(val* self, val* p0))(var2->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var2, var_name) /* name= on <var2:RuntimeVariable>*/;
8789 }
8790 {
8791 ((void (*)(val* self, val* p0))(var2->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var2, var_mtype) /* mtype= on <var2:RuntimeVariable>*/;
8792 }
8793 {
8794 ((void (*)(val* self, val* p0))(var2->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var2, var_mtype) /* mcasttype= on <var2:RuntimeVariable>*/;
8795 }
8796 {
8797 ((void (*)(val* self))(var2->class->vft[COLOR_standard__kernel__Object__init]))(var2) /* init on <var2:RuntimeVariable>*/;
8798 }
8799 var_res = var2;
8800 {
8801 var3 = ((val* (*)(val* self))(var_mtype->class->vft[COLOR_nit__abstract_compiler__MType__ctype]))(var_mtype) /* ctype on <var_mtype:MType>*/;
8802 }
8803 if (varonce) {
8804 var4 = varonce;
8805 } else {
8806 var5 = " ";
8807 var6 = 1;
8808 var7 = standard___standard__NativeString___to_s_with_length(var5, var6);
8809 var4 = var7;
8810 varonce = var4;
8811 }
8812 if (varonce8) {
8813 var9 = varonce8;
8814 } else {
8815 var10 = " /* : ";
8816 var11 = 6;
8817 var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
8818 var9 = var12;
8819 varonce8 = var9;
8820 }
8821 if (varonce13) {
8822 var14 = varonce13;
8823 } else {
8824 var15 = " */;";
8825 var16 = 4;
8826 var17 = standard___standard__NativeString___to_s_with_length(var15, var16);
8827 var14 = var17;
8828 varonce13 = var14;
8829 }
8830 var18 = NEW_standard__Array(&type_standard__Array__standard__Object);
8831 { /* var18 = array_instance Array[Object] */
8832 var19 = 6;
8833 var20 = NEW_standard__NativeArray(var19, &type_standard__NativeArray__standard__Object);
8834 ((struct instance_standard__NativeArray*)var20)->values[0] = (val*) var3;
8835 ((struct instance_standard__NativeArray*)var20)->values[1] = (val*) var4;
8836 ((struct instance_standard__NativeArray*)var20)->values[2] = (val*) var_name;
8837 ((struct instance_standard__NativeArray*)var20)->values[3] = (val*) var9;
8838 ((struct instance_standard__NativeArray*)var20)->values[4] = (val*) var_mtype;
8839 ((struct instance_standard__NativeArray*)var20)->values[5] = (val*) var14;
8840 {
8841 ((void (*)(val* self, val* p0, long p1))(var18->class->vft[COLOR_standard__array__Array__with_native]))(var18, var20, var19) /* with_native on <var18:Array[Object]>*/;
8842 }
8843 }
8844 {
8845 var21 = ((val* (*)(val* self))(var18->class->vft[COLOR_standard__string__Object__to_s]))(var18) /* to_s on <var18:Array[Object]>*/;
8846 }
8847 {
8848 nit___nit__AbstractCompilerVisitor___add_decl(self, var21); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <self:AbstractCompilerVisitor>*/
8849 }
8850 var = var_res;
8851 goto RET_LABEL;
8852 RET_LABEL:;
8853 return var;
8854 }
8855 /* method abstract_compiler#AbstractCompilerVisitor#assign for (self: AbstractCompilerVisitor, RuntimeVariable, RuntimeVariable) */
8856 void nit___nit__AbstractCompilerVisitor___assign(val* self, val* p0, val* p1) {
8857 val* var_left /* var left: RuntimeVariable */;
8858 val* var_right /* var right: RuntimeVariable */;
8859 val* var /* : MType */;
8860 val* var2 /* : MType */;
8861 val* var3 /* : RuntimeVariable */;
8862 static val* varonce;
8863 val* var4 /* : String */;
8864 char* var5 /* : NativeString */;
8865 long var6 /* : Int */;
8866 val* var7 /* : FlatString */;
8867 static val* varonce8;
8868 val* var9 /* : String */;
8869 char* var10 /* : NativeString */;
8870 long var11 /* : Int */;
8871 val* var12 /* : FlatString */;
8872 val* var13 /* : Array[Object] */;
8873 long var14 /* : Int */;
8874 val* var15 /* : NativeArray[Object] */;
8875 val* var16 /* : String */;
8876 var_left = p0;
8877 var_right = p1;
8878 {
8879 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_left) on <var_left:RuntimeVariable> */
8880 var2 = var_left->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_left:RuntimeVariable> */
8881 if (unlikely(var2 == NULL)) {
8882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8883 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
8884 show_backtrace(1);
8885 }
8886 var = var2;
8887 RET_LABEL1:(void)0;
8888 }
8889 }
8890 {
8891 var3 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_right, var);
8892 }
8893 var_right = var3;
8894 if (varonce) {
8895 var4 = varonce;
8896 } else {
8897 var5 = " = ";
8898 var6 = 3;
8899 var7 = standard___standard__NativeString___to_s_with_length(var5, var6);
8900 var4 = var7;
8901 varonce = var4;
8902 }
8903 if (varonce8) {
8904 var9 = varonce8;
8905 } else {
8906 var10 = ";";
8907 var11 = 1;
8908 var12 = standard___standard__NativeString___to_s_with_length(var10, var11);
8909 var9 = var12;
8910 varonce8 = var9;
8911 }
8912 var13 = NEW_standard__Array(&type_standard__Array__standard__Object);
8913 { /* var13 = array_instance Array[Object] */
8914 var14 = 4;
8915 var15 = NEW_standard__NativeArray(var14, &type_standard__NativeArray__standard__Object);
8916 ((struct instance_standard__NativeArray*)var15)->values[0] = (val*) var_left;
8917 ((struct instance_standard__NativeArray*)var15)->values[1] = (val*) var4;
8918 ((struct instance_standard__NativeArray*)var15)->values[2] = (val*) var_right;
8919 ((struct instance_standard__NativeArray*)var15)->values[3] = (val*) var9;
8920 {
8921 ((void (*)(val* self, val* p0, long p1))(var13->class->vft[COLOR_standard__array__Array__with_native]))(var13, var15, var14) /* with_native on <var13:Array[Object]>*/;
8922 }
8923 }
8924 {
8925 var16 = ((val* (*)(val* self))(var13->class->vft[COLOR_standard__string__Object__to_s]))(var13) /* to_s on <var13:Array[Object]>*/;
8926 }
8927 {
8928 nit___nit__AbstractCompilerVisitor___add(self, var16); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
8929 }
8930 RET_LABEL:;
8931 }
8932 /* method abstract_compiler#AbstractCompilerVisitor#init_instance_or_extern for (self: AbstractCompilerVisitor, MClassType): RuntimeVariable */
8933 val* nit___nit__AbstractCompilerVisitor___init_instance_or_extern(val* self, val* p0) {
8934 val* var /* : RuntimeVariable */;
8935 val* var_mtype /* var mtype: MClassType */;
8936 val* var1 /* : String */;
8937 val* var_ctype /* var ctype: String */;
8938 val* var2 /* : MClass */;
8939 val* var4 /* : MClass */;
8940 val* var5 /* : String */;
8941 val* var7 /* : String */;
8942 static val* varonce;
8943 val* var8 /* : String */;
8944 char* var9 /* : NativeString */;
8945 long var10 /* : Int */;
8946 val* var11 /* : FlatString */;
8947 short int var12 /* : Bool */;
8948 val* var_other /* var other: nullable Object */;
8949 short int var14 /* : Bool */;
8950 short int var15 /* : Bool */;
8951 static val* varonce16;
8952 val* var17 /* : String */;
8953 char* var18 /* : NativeString */;
8954 long var19 /* : Int */;
8955 val* var20 /* : FlatString */;
8956 short int var21 /* : Bool */;
8957 val* var22 /* : RuntimeVariable */;
8958 val* var_recv /* var recv: nullable Object */;
8959 static val* varonce23;
8960 val* var24 /* : String */;
8961 char* var25 /* : NativeString */;
8962 long var26 /* : Int */;
8963 val* var27 /* : FlatString */;
8964 short int var28 /* : Bool */;
8965 static val* varonce29;
8966 val* var30 /* : String */;
8967 char* var31 /* : NativeString */;
8968 long var32 /* : Int */;
8969 val* var33 /* : FlatString */;
8970 val* var34 /* : RuntimeVariable */;
8971 static val* varonce35;
8972 val* var36 /* : String */;
8973 char* var37 /* : NativeString */;
8974 long var38 /* : Int */;
8975 val* var39 /* : FlatString */;
8976 static val* varonce40;
8977 val* var41 /* : String */;
8978 char* var42 /* : NativeString */;
8979 long var43 /* : Int */;
8980 val* var44 /* : FlatString */;
8981 val* var45 /* : Array[Object] */;
8982 long var46 /* : Int */;
8983 val* var47 /* : NativeArray[Object] */;
8984 val* var48 /* : String */;
8985 val* var49 /* : RuntimeVariable */;
8986 var_mtype = p0;
8987 {
8988 var1 = nit__abstract_compiler___MClassType___MType__ctype(var_mtype);
8989 }
8990 var_ctype = var1;
8991 {
8992 { /* Inline model#MClassType#mclass (var_mtype) on <var_mtype:MClassType> */
8993 var4 = var_mtype->attrs[COLOR_nit__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
8994 if (unlikely(var4 == NULL)) {
8995 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8996 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1058);
8997 show_backtrace(1);
8998 }
8999 var2 = var4;
9000 RET_LABEL3:(void)0;
9001 }
9002 }
9003 {
9004 { /* Inline model#MClass#name (var2) on <var2:MClass> */
9005 var7 = var2->attrs[COLOR_nit__model__MClass___name].val; /* _name on <var2:MClass> */
9006 if (unlikely(var7 == NULL)) {
9007 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9008 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 348);
9009 show_backtrace(1);
9010 }
9011 var5 = var7;
9012 RET_LABEL6:(void)0;
9013 }
9014 }
9015 if (varonce) {
9016 var8 = varonce;
9017 } else {
9018 var9 = "NativeArray";
9019 var10 = 11;
9020 var11 = standard___standard__NativeString___to_s_with_length(var9, var10);
9021 var8 = var11;
9022 varonce = var8;
9023 }
9024 {
9025 { /* Inline kernel#Object#!= (var5,var8) on <var5:String> */
9026 var_other = var8;
9027 {
9028 var14 = ((short int (*)(val* self, val* p0))(var5->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var5, var_other) /* == on <var5:String>*/;
9029 }
9030 var15 = !var14;
9031 var12 = var15;
9032 goto RET_LABEL13;
9033 RET_LABEL13:(void)0;
9034 }
9035 }
9036 if (unlikely(!var12)) {
9037 PRINT_ERROR("Runtime error: %s", "Assert failed");
9038 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1397);
9039 show_backtrace(1);
9040 }
9041 if (varonce16) {
9042 var17 = varonce16;
9043 } else {
9044 var18 = "val*";
9045 var19 = 4;
9046 var20 = standard___standard__NativeString___to_s_with_length(var18, var19);
9047 var17 = var20;
9048 varonce16 = var17;
9049 }
9050 {
9051 var21 = ((short int (*)(val* self, val* p0))(var_ctype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ctype, var17) /* == on <var_ctype:String>*/;
9052 }
9053 if (var21){
9054 {
9055 var22 = ((val* (*)(val* self, val* p0))(self->class->vft[COLOR_nit__abstract_compiler__AbstractCompilerVisitor__init_instance]))(self, var_mtype) /* init_instance on <self:AbstractCompilerVisitor>*/;
9056 }
9057 var_recv = var22;
9058 } else {
9059 if (varonce23) {
9060 var24 = varonce23;
9061 } else {
9062 var25 = "char*";
9063 var26 = 5;
9064 var27 = standard___standard__NativeString___to_s_with_length(var25, var26);
9065 var24 = var27;
9066 varonce23 = var24;
9067 }
9068 {
9069 var28 = ((short int (*)(val* self, val* p0))(var_ctype->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_ctype, var24) /* == on <var_ctype:String>*/;
9070 }
9071 if (var28){
9072 if (varonce29) {
9073 var30 = varonce29;
9074 } else {
9075 var31 = "NULL/*special!*/";
9076 var32 = 16;
9077 var33 = standard___standard__NativeString___to_s_with_length(var31, var32);
9078 var30 = var33;
9079 varonce29 = var30;
9080 }
9081 {
9082 var34 = nit___nit__AbstractCompilerVisitor___new_expr(self, var30, var_mtype);
9083 }
9084 var_recv = var34;
9085 } else {
9086 if (varonce35) {
9087 var36 = varonce35;
9088 } else {
9089 var37 = "(";
9090 var38 = 1;
9091 var39 = standard___standard__NativeString___to_s_with_length(var37, var38);
9092 var36 = var39;
9093 varonce35 = var36;
9094 }
9095 if (varonce40) {
9096 var41 = varonce40;
9097 } else {
9098 var42 = ")0/*special!*/";
9099 var43 = 14;
9100 var44 = standard___standard__NativeString___to_s_with_length(var42, var43);
9101 var41 = var44;
9102 varonce40 = var41;
9103 }
9104 var45 = NEW_standard__Array(&type_standard__Array__standard__Object);
9105 { /* var45 = array_instance Array[Object] */
9106 var46 = 3;
9107 var47 = NEW_standard__NativeArray(var46, &type_standard__NativeArray__standard__Object);
9108 ((struct instance_standard__NativeArray*)var47)->values[0] = (val*) var36;
9109 ((struct instance_standard__NativeArray*)var47)->values[1] = (val*) var_ctype;
9110 ((struct instance_standard__NativeArray*)var47)->values[2] = (val*) var41;
9111 {
9112 ((void (*)(val* self, val* p0, long p1))(var45->class->vft[COLOR_standard__array__Array__with_native]))(var45, var47, var46) /* with_native on <var45:Array[Object]>*/;
9113 }
9114 }
9115 {
9116 var48 = ((val* (*)(val* self))(var45->class->vft[COLOR_standard__string__Object__to_s]))(var45) /* to_s on <var45:Array[Object]>*/;
9117 }
9118 {
9119 var49 = nit___nit__AbstractCompilerVisitor___new_expr(self, var48, var_mtype);
9120 }
9121 var_recv = var49;
9122 }
9123 }
9124 var = var_recv;
9125 goto RET_LABEL;
9126 RET_LABEL:;
9127 return var;
9128 }
9129 /* method abstract_compiler#AbstractCompilerVisitor#set_finalizer for (self: AbstractCompilerVisitor, RuntimeVariable) */
9130 void nit___nit__AbstractCompilerVisitor___set_finalizer(val* self, val* p0) {
9131 val* var_recv /* var recv: RuntimeVariable */;
9132 val* var /* : MType */;
9133 val* var2 /* : MType */;
9134 val* var_mtype /* var mtype: MType */;
9135 val* var3 /* : AbstractCompiler */;
9136 val* var5 /* : AbstractCompiler */;
9137 val* var6 /* : MModule */;
9138 val* var8 /* : MModule */;
9139 val* var9 /* : nullable MClassType */;
9140 val* var_finalizable_type /* var finalizable_type: nullable MClassType */;
9141 short int var10 /* : Bool */;
9142 short int var11 /* : Bool */;
9143 val* var12 /* : null */;
9144 short int var13 /* : Bool */;
9145 short int var14 /* : Bool */;
9146 val* var_other /* var other: nullable Object */;
9147 short int var16 /* : Bool */;
9148 short int var17 /* : Bool */;
9149 short int var_ /* var : Bool */;
9150 short int var18 /* : Bool */;
9151 short int var19 /* : Bool */;
9152 short int var_20 /* var : Bool */;
9153 val* var21 /* : AbstractCompiler */;
9154 val* var23 /* : AbstractCompiler */;
9155 val* var24 /* : MModule */;
9156 val* var26 /* : MModule */;
9157 val* var27 /* : null */;
9158 short int var28 /* : Bool */;
9159 static val* varonce;
9160 val* var29 /* : String */;
9161 char* var30 /* : NativeString */;
9162 long var31 /* : Int */;
9163 val* var32 /* : FlatString */;
9164 static val* varonce33;
9165 val* var34 /* : String */;
9166 char* var35 /* : NativeString */;
9167 long var36 /* : Int */;
9168 val* var37 /* : FlatString */;
9169 val* var38 /* : Array[Object] */;
9170 long var39 /* : Int */;
9171 val* var40 /* : NativeArray[Object] */;
9172 val* var41 /* : String */;
9173 var_recv = p0;
9174 {
9175 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_recv) on <var_recv:RuntimeVariable> */
9176 var2 = var_recv->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_recv:RuntimeVariable> */
9177 if (unlikely(var2 == NULL)) {
9178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
9179 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
9180 show_backtrace(1);
9181 }
9182 var = var2;
9183 RET_LABEL1:(void)0;
9184 }
9185 }
9186 var_mtype = var;
9187 {
9188 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
9189 var5 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
9190 if (unlikely(var5 == NULL)) {
9191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
9192 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
9193 show_backtrace(1);
9194 }
9195 var3 = var5;
9196 RET_LABEL4:(void)0;
9197 }
9198 }
9199 {
9200 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var3) on <var3:AbstractCompiler> */
9201 var8 = var3->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var3:AbstractCompiler> */
9202 if (unlikely(var8 == NULL)) {
9203 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
9204 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
9205 show_backtrace(1);
9206 }
9207 var6 = var8;
9208 RET_LABEL7:(void)0;
9209 }
9210 }
9211 {
9212 var9 = nit__model___MModule___finalizable_type(var6);
9213 }
9214 var_finalizable_type = var9;
9215 var12 = NULL;
9216 if (var_finalizable_type == NULL) {
9217 var13 = 0; /* is null */
9218 } else {
9219 var13 = 1; /* arg is null and recv is not */
9220 }
9221 if (0) {
9222 { /* Inline kernel#Object#!= (var_finalizable_type,var12) on <var_finalizable_type:nullable MClassType> */
9223 var_other = var12;
9224 {
9225 var16 = ((short int (*)(val* self, val* p0))(var_finalizable_type->class->vft[COLOR_standard__kernel__Object___61d_61d]))(var_finalizable_type, var_other) /* == on <var_finalizable_type:nullable MClassType(MClassType)>*/;
9226 }
9227 var17 = !var16;
9228 var14 = var17;
9229 goto RET_LABEL15;
9230 RET_LABEL15:(void)0;
9231 }
9232 var13 = var14;
9233 }
9234 var_ = var13;
9235 if (var13){
9236 {
9237 var18 = ((short int (*)(val* self))(var_mtype->class->vft[COLOR_nit__model__MType__need_anchor]))(var_mtype) /* need_anchor on <var_mtype:MType>*/;
9238 }
9239 var19 = !var18;
9240 var11 = var19;
9241 } else {
9242 var11 = var_;
9243 }
9244 var_20 = var11;
9245 if (var11){
9246 {
9247 { /* Inline abstract_compiler#AbstractCompilerVisitor#compiler (self) on <self:AbstractCompilerVisitor> */
9248 var23 = self->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:AbstractCompilerVisitor> */
9249 if (unlikely(var23 == NULL)) {
9250 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
9251 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1059);
9252 show_backtrace(1);
9253 }
9254 var21 = var23;
9255 RET_LABEL22:(void)0;
9256 }
9257 }
9258 {
9259 { /* Inline abstract_compiler#AbstractCompiler#mainmodule (var21) on <var21:AbstractCompiler> */
9260 var26 = var21->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var21:AbstractCompiler> */
9261 if (unlikely(var26 == NULL)) {
9262 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
9263 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 474);
9264 show_backtrace(1);
9265 }
9266 var24 = var26;
9267 RET_LABEL25:(void)0;
9268 }
9269 }
9270 var27 = NULL;
9271 {
9272 var28 = nit___nit__MType___is_subtype(var_mtype, var24, var27, var_finalizable_type);
9273 }
9274 var10 = var28;
9275 } else {
9276 var10 = var_20;
9277 }
9278 if (var10){
9279 if (varonce) {
9280 var29 = varonce;
9281 } else {
9282 var30 = "gc_register_finalizer(";
9283 var31 = 22;
9284 var32 = standard___standard__NativeString___to_s_with_length(var30, var31);
9285 var29 = var32;
9286 varonce = var29;
9287 }
9288 if (varonce33) {
9289 var34 = varonce33;
9290 } else {
9291 var35 = ");";
9292 var36 = 2;
9293 var37 = standard___standard__NativeString___to_s_with_length(var35, var36);
9294 var34 = var37;
9295 varonce33 = var34;
9296 }
9297 var38 = NEW_standard__Array(&type_standard__Array__standard__Object);
9298 { /* var38 = array_instance Array[Object] */
9299 var39 = 3;
9300 var40 = NEW_standard__NativeArray(var39, &type_standard__NativeArray__standard__Object);
9301 ((struct instance_standard__NativeArray*)var40)->values[0] = (val*) var29;
9302 ((struct instance_standard__NativeArray*)var40)->values[1] = (val*) var_recv;
9303 ((struct instance_standard__NativeArray*)var40)->values[2] = (val*) var34;
9304 {
9305 ((void (*)(val* self, val* p0, long p1))(var38->class->vft[COLOR_standard__array__Array__with_native]))(var38, var40, var39) /* with_native on <var38:Array[Object]>*/;
9306 }
9307 }
9308 {
9309 var41 = ((val* (*)(val* self))(var38->class->vft[COLOR_standard__string__Object__to_s]))(var38) /* to_s on <var38:Array[Object]>*/;
9310 }
9311 {
9312 nit___nit__AbstractCompilerVisitor___add(self, var41); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
9313 }
9314 } else {
9315 }
9316 RET_LABEL:;
9317 }
9318 /* method abstract_compiler#AbstractCompilerVisitor#int_instance for (self: AbstractCompilerVisitor, Int): RuntimeVariable */
9319 val* nit___nit__AbstractCompilerVisitor___int_instance(val* self, long p0) {
9320 val* var /* : RuntimeVariable */;
9321 long var_value /* var value: Int */;
9322 static val* varonce;
9323 val* var1 /* : String */;
9324 char* var2 /* : NativeString */;
9325 long var3 /* : Int */;
9326 val* var4 /* : FlatString */;
9327 val* var5 /* : MClass */;
9328 val* var6 /* : MClassType */;
9329 val* var8 /* : MClassType */;
9330 val* var9 /* : RuntimeVariable */;
9331 val* var_res /* var res: RuntimeVariable */;
9332 static val* varonce10;
9333 val* var11 /* : String */;
9334 char* var12 /* : NativeString */;
9335 long var13 /* : Int */;
9336 val* var14 /* : FlatString */;
9337 static val* varonce15;
9338 val* var16 /* : String */;
9339 char* var17 /* : NativeString */;
9340 long var18 /* : Int */;
9341 val* var19 /* : FlatString */;
9342 val* var20 /* : Array[Object] */;
9343 long var21 /* : Int */;
9344 val* var22 /* : NativeArray[Object] */;
9345 val* var23 /* : Object */;
9346 val* var24 /* : String */;
9347 var_value = p0;
9348 if (varonce) {
9349 var1 = varonce;
9350 } else {
9351 var2 = "Int";
9352 var3 = 3;
9353 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
9354 var1 = var4;
9355 varonce = var1;
9356 }
9357 {
9358 var5 = nit___nit__AbstractCompilerVisitor___get_class(self, var1);
9359 }
9360 {
9361 { /* Inline model#MClass#mclass_type (var5) on <var5:MClass> */
9362 var8 = var5->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on <var5:MClass> */
9363 if (unlikely(var8 == NULL)) {
9364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9365 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438);
9366 show_backtrace(1);
9367 }
9368 var6 = var8;
9369 RET_LABEL7:(void)0;
9370 }
9371 }
9372 {
9373 var9 = nit___nit__AbstractCompilerVisitor___new_var(self, var6);
9374 }
9375 var_res = var9;
9376 if (varonce10) {
9377 var11 = varonce10;
9378 } else {
9379 var12 = " = ";
9380 var13 = 3;
9381 var14 = standard___standard__NativeString___to_s_with_length(var12, var13);
9382 var11 = var14;
9383 varonce10 = var11;
9384 }
9385 if (varonce15) {
9386 var16 = varonce15;
9387 } else {
9388 var17 = ";";
9389 var18 = 1;
9390 var19 = standard___standard__NativeString___to_s_with_length(var17, var18);
9391 var16 = var19;
9392 varonce15 = var16;
9393 }
9394 var20 = NEW_standard__Array(&type_standard__Array__standard__Object);
9395 { /* var20 = array_instance Array[Object] */
9396 var21 = 4;
9397 var22 = NEW_standard__NativeArray(var21, &type_standard__NativeArray__standard__Object);
9398 ((struct instance_standard__NativeArray*)var22)->values[0] = (val*) var_res;
9399 ((struct instance_standard__NativeArray*)var22)->values[1] = (val*) var11;
9400 var23 = BOX_standard__Int(var_value); /* autobox from Int to Object */
9401 ((struct instance_standard__NativeArray*)var22)->values[2] = (val*) var23;
9402 ((struct instance_standard__NativeArray*)var22)->values[3] = (val*) var16;
9403 {
9404 ((void (*)(val* self, val* p0, long p1))(var20->class->vft[COLOR_standard__array__Array__with_native]))(var20, var22, var21) /* with_native on <var20:Array[Object]>*/;
9405 }
9406 }
9407 {
9408 var24 = ((val* (*)(val* self))(var20->class->vft[COLOR_standard__string__Object__to_s]))(var20) /* to_s on <var20:Array[Object]>*/;
9409 }
9410 {
9411 nit___nit__AbstractCompilerVisitor___add(self, var24); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
9412 }
9413 var = var_res;
9414 goto RET_LABEL;
9415 RET_LABEL:;
9416 return var;
9417 }
9418 /* method abstract_compiler#AbstractCompilerVisitor#bool_instance for (self: AbstractCompilerVisitor, Bool): RuntimeVariable */
9419 val* nit___nit__AbstractCompilerVisitor___bool_instance(val* self, short int p0) {
9420 val* var /* : RuntimeVariable */;
9421 short int var_value /* var value: Bool */;
9422 static val* varonce;
9423 val* var1 /* : String */;
9424 char* var2 /* : NativeString */;
9425 long var3 /* : Int */;
9426 val* var4 /* : FlatString */;
9427 val* var5 /* : MClass */;
9428 val* var6 /* : MClassType */;
9429 val* var8 /* : MClassType */;
9430 val* var9 /* : RuntimeVariable */;
9431 val* var_res /* var res: RuntimeVariable */;
9432 static val* varonce10;
9433 val* var11 /* : String */;
9434 char* var12 /* : NativeString */;
9435 long var13 /* : Int */;
9436 val* var14 /* : FlatString */;
9437 val* var15 /* : Array[Object] */;
9438 long var16 /* : Int */;
9439 val* var17 /* : NativeArray[Object] */;
9440 val* var18 /* : String */;
9441 static val* varonce19;
9442 val* var20 /* : String */;
9443 char* var21 /* : NativeString */;
9444 long var22 /* : Int */;
9445 val* var23 /* : FlatString */;
9446 val* var24 /* : Array[Object] */;
9447 long var25 /* : Int */;
9448 val* var26 /* : NativeArray[Object] */;
9449 val* var27 /* : String */;
9450 var_value = p0;
9451 if (varonce) {
9452 var1 = varonce;
9453 } else {
9454 var2 = "Bool";
9455 var3 = 4;
9456 var4 = standard___standard__NativeString___to_s_with_length(var2, var3);
9457 var1 = var4;
9458 varonce = var1;
9459 }
9460 {
9461 var5 = nit___nit__AbstractCompilerVisitor___get_class(self, var1);
9462 }
9463 {
9464 { /* Inline model#MClass#mclass_type (var5) on <var5:MClass> */
9465 var8 = var5->attrs[COLOR_nit__model__MClass___mclass_type].val; /* _mclass_type on <var5:MClass> */
9466 if (unlikely(var8 == NULL)) {
9467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9468 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 438);
9469 show_backtrace(1);
9470 }
9471 var6 = var8;
9472 RET_LABEL7:(void)0;
9473 }
9474 }
9475 {
9476 var9 = nit___nit__AbstractCompilerVisitor___new_var(self, var6);
9477 }
9478 var_res = var9;
9479 if (var_value){
9480 if (varonce10) {
9481 var11 = varonce10;
9482 } else {
9483 var12 = " = 1;";
9484 var13 = 5;
9485 var14 = standard___standard__NativeString___to_s_with_length(var12, var13);
9486 var11 = var14;
9487 varonce10 = var11;
9488 }
9489 var15 = NEW_standard__Array(&type_standard__Array__standard__Object);
9490 { /* var15 = array_instance Array[Object] */
9491 var16 = 2;
9492 var17 = NEW_standard__NativeArray(var16, &type_standard__NativeArray__standard__Object);
9493 ((struct instance_standard__NativeArray*)var17)->values[0] = (val*) var_res;
9494 ((struct instance_standard__NativeArray*)var17)->values[1] = (val*) var11;
9495 {
9496 ((void (*)(val* self, val* p0, long p1))(var15->class->vft[COLOR_standard__array__Array__with_native]))(var15, var17, var16) /* with_native on <var15:Array[Object]>*/;
9497 }
9498 }
9499 {
9500 var18 = ((val* (*)(val* self))(var15->class->vft[COLOR_standard__string__Object__to_s]))(var15) /* to_s on <var15:Array[Object]>*/;
9501 }
9502 {
9503 nit___nit__AbstractCompilerVisitor___add(self, var18); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
9504 }
9505 } else {
9506 if (varonce19) {
9507 var20 = varonce19;
9508 } else {
9509 var21 = " = 0;";
9510 var22 = 5;
9511 var23 = standard___standard__NativeString___to_s_with_length(var21, var22);
9512 var20 = var23;
9513 varonce19 = var20;
9514 }
9515 var24 = NEW_standard__Array(&type_standard__Array__standard__Object);
9516 { /* var24 = array_instance Array[Object] */
9517 var25 = 2;
9518 var26 = NEW_standard__NativeArray(var25, &type_standard__NativeArray__standard__Object);
9519 ((struct instance_standard__NativeArray*)var26)->values[0] = (val*) var_res;
9520 ((struct instance_standard__NativeArray*)var26)->values[1] = (val*) var20;
9521 {
9522 ((void (*)(val* self, val* p0, long p1))(var24->class->vft[COLOR_standard__array__Array__with_native]))(var24, var26, var25) /* with_native on <var24:Array[Object]>*/;
9523 }
9524 }
9525 {
9526 var27 = ((val* (*)(val* self))(var24->class->vft[COLOR_standard__string__Object__to_s]))(var24) /* to_s on <var24:Array[Object]>*/;
9527 }
9528 {
9529 nit___nit__AbstractCompilerVisitor___add(self, var27); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <self:AbstractCompilerVisitor>*/
9530 }
9531 }
9532 var = var_res;
9533 goto RET_LABEL;
9534 RET_LABEL:;
9535 return var;
9536 }