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