Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__separate_compiler.sep.4.c
1 #include "nitc__separate_compiler.sep.0.h"
2 /* method separate_compiler$SeparateCompilerVisitor$table_send for (self: SeparateCompilerVisitor, MMethod, Array[RuntimeVariable], MEntity): nullable RuntimeVariable */
3 val* nitc___nitc__SeparateCompilerVisitor___table_send(val* self, val* p0, val* p1, val* p2) {
4 val* var /* : nullable RuntimeVariable */;
5 val* var_mmethod /* var mmethod: MMethod */;
6 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
7 val* var_mentity /* var mentity: MEntity */;
8 val* var1 /* : AbstractCompiler */;
9 val* var3 /* : AbstractCompiler */;
10 val* var4 /* : ModelBuilder */;
11 val* var6 /* : ModelBuilder */;
12 val* var_ /* var : ModelBuilder */;
13 long var7 /* : Int */;
14 long var9 /* : Int */;
15 long var10 /* : Int */;
16 short int var12 /* : Bool */;
17 int cltype;
18 int idtype;
19 const char* var_class_name;
20 long var13 /* : Int */;
21 val* var15 /* : AbstractCompiler */;
22 val* var17 /* : AbstractCompiler */;
23 val* var18 /* : ModelBuilder */;
24 val* var20 /* : ModelBuilder */;
25 val* var21 /* : ToolContext */;
26 val* var23 /* : ToolContext */;
27 val* var24 /* : OptionBool */;
28 val* var26 /* : OptionBool */;
29 val* var27 /* : nullable Object */;
30 val* var29 /* : nullable Object */;
31 short int var30 /* : Bool */;
32 static val* varonce;
33 val* var31 /* : String */;
34 char* var32 /* : CString */;
35 val* var33 /* : String */;
36 val* var34 /* : nullable Int */;
37 val* var35 /* : nullable Int */;
38 val* var36 /* : nullable Bool */;
39 val* var37 /* : nullable Bool */;
40 long var38 /* : Int */;
41 long var40 /* : Int */;
42 val* var41 /* : MPropDef */;
43 val* var43 /* : MPropDef */;
44 val* var44 /* : nullable MSignature */;
45 val* var46 /* : nullable MSignature */;
46 long var47 /* : Int */;
47 long var48 /* : Int */;
48 short int var50 /* : Bool */;
49 int cltype51;
50 int idtype52;
51 const char* var_class_name53;
52 long var54 /* : Int */;
53 short int var55 /* : Bool */;
54 short int var57 /* : Bool */;
55 val* var59 /* : NativeArray[String] */;
56 static val* varonce58;
57 static val* varonce60;
58 val* var61 /* : String */;
59 char* var62 /* : CString */;
60 val* var63 /* : String */;
61 val* var64 /* : nullable Int */;
62 val* var65 /* : nullable Int */;
63 val* var66 /* : nullable Bool */;
64 val* var67 /* : nullable Bool */;
65 static val* varonce68;
66 val* var69 /* : String */;
67 char* var70 /* : CString */;
68 val* var71 /* : String */;
69 val* var72 /* : nullable Int */;
70 val* var73 /* : nullable Int */;
71 val* var74 /* : nullable Bool */;
72 val* var75 /* : nullable Bool */;
73 static val* varonce76;
74 val* var77 /* : String */;
75 char* var78 /* : CString */;
76 val* var79 /* : String */;
77 val* var80 /* : nullable Int */;
78 val* var81 /* : nullable Int */;
79 val* var82 /* : nullable Bool */;
80 val* var83 /* : nullable Bool */;
81 val* var84 /* : String */;
82 long var85 /* : Int */;
83 long var87 /* : Int */;
84 val* var88 /* : String */;
85 val* var89 /* : String */;
86 val* var90 /* : nullable RuntimeVariable */;
87 val* var_res0 /* var res0: nullable RuntimeVariable */;
88 val* var91 /* : MPropDef */;
89 val* var93 /* : MPropDef */;
90 val* var94 /* : SeparateRuntimeFunction */;
91 val* var_runtime_function /* var runtime_function: SeparateRuntimeFunction */;
92 val* var95 /* : MSignature */;
93 val* var97 /* : MSignature */;
94 val* var_msignature /* var msignature: MSignature */;
95 val* var98 /* : MPropDef */;
96 val* var100 /* : MPropDef */;
97 val* var101 /* : nullable MType */;
98 val* var103 /* : nullable MType */;
99 val* var_ret /* var ret: nullable MType */;
100 short int var104 /* : Bool */;
101 short int var105 /* : Bool */;
102 val* var_other /* var other: nullable Object */;
103 short int var107 /* : Bool */;
104 short int var109 /* : Bool */;
105 val* var_res /* var res: nullable RuntimeVariable */;
106 val* var110 /* : RuntimeVariable */;
107 static val* varonce111;
108 val* var112 /* : String */;
109 char* var113 /* : CString */;
110 val* var114 /* : String */;
111 val* var115 /* : nullable Int */;
112 val* var116 /* : nullable Int */;
113 val* var117 /* : nullable Bool */;
114 val* var118 /* : nullable Bool */;
115 val* var119 /* : String */;
116 val* var_ss /* var ss: String */;
117 val* var120 /* : String */;
118 val* var_const_color /* var const_color: String */;
119 short int var121 /* : Bool */;
120 short int var122 /* : Bool */;
121 val* var_other124 /* var other: nullable Object */;
122 short int var125 /* : Bool */;
123 short int var126 /* : Bool */;
124 val* var128 /* : NativeArray[String] */;
125 static val* varonce127;
126 static val* varonce129;
127 val* var130 /* : String */;
128 char* var131 /* : CString */;
129 val* var132 /* : String */;
130 val* var133 /* : nullable Int */;
131 val* var134 /* : nullable Int */;
132 val* var135 /* : nullable Bool */;
133 val* var136 /* : nullable Bool */;
134 val* var137 /* : String */;
135 val* var138 /* : String */;
136 val* var_ress /* var ress: nullable Object */;
137 static val* varonce139;
138 val* var140 /* : String */;
139 char* var141 /* : CString */;
140 val* var142 /* : String */;
141 val* var143 /* : nullable Int */;
142 val* var144 /* : nullable Int */;
143 val* var145 /* : nullable Bool */;
144 val* var146 /* : nullable Bool */;
145 short int var147 /* : Bool */;
146 short int var148 /* : Bool */;
147 int cltype149;
148 int idtype150;
149 short int var_151 /* var : Bool */;
150 val* var152 /* : AbstractCompiler */;
151 val* var154 /* : AbstractCompiler */;
152 val* var155 /* : ModelBuilder */;
153 val* var157 /* : ModelBuilder */;
154 val* var158 /* : ToolContext */;
155 val* var160 /* : ToolContext */;
156 val* var161 /* : OptionBool */;
157 val* var163 /* : OptionBool */;
158 val* var164 /* : nullable Object */;
159 val* var166 /* : nullable Object */;
160 short int var167 /* : Bool */;
161 val* var168 /* : AbstractCompiler */;
162 val* var170 /* : AbstractCompiler */;
163 val* var171 /* : nullable MMethodDef */;
164 val* var_md /* var md: nullable MMethodDef */;
165 short int var172 /* : Bool */;
166 short int var173 /* : Bool */;
167 short int var175 /* : Bool */;
168 short int var176 /* : Bool */;
169 val* var177 /* : SeparateRuntimeFunction */;
170 val* var178 /* : String */;
171 val* var_callsym /* var callsym: String */;
172 val* var180 /* : NativeArray[String] */;
173 static val* varonce179;
174 static val* varonce181;
175 val* var182 /* : String */;
176 char* var183 /* : CString */;
177 val* var184 /* : String */;
178 val* var185 /* : nullable Int */;
179 val* var186 /* : nullable Int */;
180 val* var187 /* : nullable Bool */;
181 val* var188 /* : nullable Bool */;
182 static val* varonce189;
183 val* var190 /* : String */;
184 char* var191 /* : CString */;
185 val* var192 /* : String */;
186 val* var193 /* : nullable Int */;
187 val* var194 /* : nullable Int */;
188 val* var195 /* : nullable Bool */;
189 val* var196 /* : nullable Bool */;
190 static val* varonce197;
191 val* var198 /* : String */;
192 char* var199 /* : CString */;
193 val* var200 /* : String */;
194 val* var201 /* : nullable Int */;
195 val* var202 /* : nullable Int */;
196 val* var203 /* : nullable Bool */;
197 val* var204 /* : nullable Bool */;
198 static val* varonce205;
199 val* var206 /* : String */;
200 char* var207 /* : CString */;
201 val* var208 /* : String */;
202 val* var209 /* : nullable Int */;
203 val* var210 /* : nullable Int */;
204 val* var211 /* : nullable Bool */;
205 val* var212 /* : nullable Bool */;
206 val* var213 /* : String */;
207 val* var214 /* : nullable Object */;
208 val* var215 /* : String */;
209 val* var216 /* : String */;
210 val* var218 /* : NativeArray[String] */;
211 static val* varonce217;
212 static val* varonce219;
213 val* var220 /* : String */;
214 char* var221 /* : CString */;
215 val* var222 /* : String */;
216 val* var223 /* : nullable Int */;
217 val* var224 /* : nullable Int */;
218 val* var225 /* : nullable Bool */;
219 val* var226 /* : nullable Bool */;
220 static val* varonce227;
221 val* var228 /* : String */;
222 char* var229 /* : CString */;
223 val* var230 /* : String */;
224 val* var231 /* : nullable Int */;
225 val* var232 /* : nullable Int */;
226 val* var233 /* : nullable Bool */;
227 val* var234 /* : nullable Bool */;
228 static val* varonce235;
229 val* var236 /* : String */;
230 char* var237 /* : CString */;
231 val* var238 /* : String */;
232 val* var239 /* : nullable Int */;
233 val* var240 /* : nullable Int */;
234 val* var241 /* : nullable Bool */;
235 val* var242 /* : nullable Bool */;
236 static val* varonce243;
237 val* var244 /* : String */;
238 char* var245 /* : CString */;
239 val* var246 /* : String */;
240 val* var247 /* : nullable Int */;
241 val* var248 /* : nullable Int */;
242 val* var249 /* : nullable Bool */;
243 val* var250 /* : nullable Bool */;
244 static val* varonce251;
245 val* var252 /* : String */;
246 char* var253 /* : CString */;
247 val* var254 /* : String */;
248 val* var255 /* : nullable Int */;
249 val* var256 /* : nullable Int */;
250 val* var257 /* : nullable Bool */;
251 val* var258 /* : nullable Bool */;
252 static val* varonce259;
253 val* var260 /* : String */;
254 char* var261 /* : CString */;
255 val* var262 /* : String */;
256 val* var263 /* : nullable Int */;
257 val* var264 /* : nullable Int */;
258 val* var265 /* : nullable Bool */;
259 val* var266 /* : nullable Bool */;
260 static val* varonce267;
261 val* var268 /* : String */;
262 char* var269 /* : CString */;
263 val* var270 /* : String */;
264 val* var271 /* : nullable Int */;
265 val* var272 /* : nullable Int */;
266 val* var273 /* : nullable Bool */;
267 val* var274 /* : nullable Bool */;
268 val* var275 /* : String */;
269 val* var276 /* : nullable Object */;
270 val* var277 /* : String */;
271 val* var278 /* : String */;
272 val* var279 /* : nullable Object */;
273 val* var280 /* : String */;
274 val* var281 /* : String */;
275 short int var282 /* : Bool */;
276 short int var283 /* : Bool */;
277 int cltype284;
278 int idtype285;
279 short int var_286 /* var : Bool */;
280 val* var287 /* : AbstractCompiler */;
281 val* var289 /* : AbstractCompiler */;
282 val* var290 /* : ModelBuilder */;
283 val* var292 /* : ModelBuilder */;
284 val* var293 /* : ToolContext */;
285 val* var295 /* : ToolContext */;
286 val* var296 /* : OptionBool */;
287 val* var298 /* : OptionBool */;
288 val* var299 /* : nullable Object */;
289 val* var301 /* : nullable Object */;
290 short int var302 /* : Bool */;
291 static val* varonce303;
292 val* var304 /* : String */;
293 char* var305 /* : CString */;
294 val* var306 /* : String */;
295 val* var307 /* : nullable Int */;
296 val* var308 /* : nullable Int */;
297 val* var309 /* : nullable Bool */;
298 val* var310 /* : nullable Bool */;
299 val* var311 /* : Text */;
300 val* var_callsym312 /* var callsym: String */;
301 val* var314 /* : NativeArray[String] */;
302 static val* varonce313;
303 static val* varonce315;
304 val* var316 /* : String */;
305 char* var317 /* : CString */;
306 val* var318 /* : String */;
307 val* var319 /* : nullable Int */;
308 val* var320 /* : nullable Int */;
309 val* var321 /* : nullable Bool */;
310 val* var322 /* : nullable Bool */;
311 static val* varonce323;
312 val* var324 /* : String */;
313 char* var325 /* : CString */;
314 val* var326 /* : String */;
315 val* var327 /* : nullable Int */;
316 val* var328 /* : nullable Int */;
317 val* var329 /* : nullable Bool */;
318 val* var330 /* : nullable Bool */;
319 val* var331 /* : String */;
320 val* var333 /* : NativeArray[String] */;
321 static val* varonce332;
322 static val* varonce334;
323 val* var335 /* : String */;
324 char* var336 /* : CString */;
325 val* var337 /* : String */;
326 val* var338 /* : nullable Int */;
327 val* var339 /* : nullable Int */;
328 val* var340 /* : nullable Bool */;
329 val* var341 /* : nullable Bool */;
330 static val* varonce342;
331 val* var343 /* : String */;
332 char* var344 /* : CString */;
333 val* var345 /* : String */;
334 val* var346 /* : nullable Int */;
335 val* var347 /* : nullable Int */;
336 val* var348 /* : nullable Bool */;
337 val* var349 /* : nullable Bool */;
338 static val* varonce350;
339 val* var351 /* : String */;
340 char* var352 /* : CString */;
341 val* var353 /* : String */;
342 val* var354 /* : nullable Int */;
343 val* var355 /* : nullable Int */;
344 val* var356 /* : nullable Bool */;
345 val* var357 /* : nullable Bool */;
346 static val* varonce358;
347 val* var359 /* : String */;
348 char* var360 /* : CString */;
349 val* var361 /* : String */;
350 val* var362 /* : nullable Int */;
351 val* var363 /* : nullable Int */;
352 val* var364 /* : nullable Bool */;
353 val* var365 /* : nullable Bool */;
354 static val* varonce366;
355 val* var367 /* : String */;
356 char* var368 /* : CString */;
357 val* var369 /* : String */;
358 val* var370 /* : nullable Int */;
359 val* var371 /* : nullable Int */;
360 val* var372 /* : nullable Bool */;
361 val* var373 /* : nullable Bool */;
362 static val* varonce374;
363 val* var375 /* : String */;
364 char* var376 /* : CString */;
365 val* var377 /* : String */;
366 val* var378 /* : nullable Int */;
367 val* var379 /* : nullable Int */;
368 val* var380 /* : nullable Bool */;
369 val* var381 /* : nullable Bool */;
370 static val* varonce382;
371 val* var383 /* : String */;
372 char* var384 /* : CString */;
373 val* var385 /* : String */;
374 val* var386 /* : nullable Int */;
375 val* var387 /* : nullable Int */;
376 val* var388 /* : nullable Bool */;
377 val* var389 /* : nullable Bool */;
378 val* var390 /* : String */;
379 val* var391 /* : nullable Object */;
380 val* var392 /* : String */;
381 val* var393 /* : String */;
382 val* var394 /* : nullable Object */;
383 val* var395 /* : String */;
384 val* var396 /* : String */;
385 static val* varonce397;
386 val* var398 /* : String */;
387 char* var399 /* : CString */;
388 val* var400 /* : String */;
389 val* var401 /* : nullable Int */;
390 val* var402 /* : nullable Int */;
391 val* var403 /* : nullable Bool */;
392 val* var404 /* : nullable Bool */;
393 val* var406 /* : NativeArray[String] */;
394 static val* varonce405;
395 static val* varonce407;
396 val* var408 /* : String */;
397 char* var409 /* : CString */;
398 val* var410 /* : String */;
399 val* var411 /* : nullable Int */;
400 val* var412 /* : nullable Int */;
401 val* var413 /* : nullable Bool */;
402 val* var414 /* : nullable Bool */;
403 static val* varonce415;
404 val* var416 /* : String */;
405 char* var417 /* : CString */;
406 val* var418 /* : String */;
407 val* var419 /* : nullable Int */;
408 val* var420 /* : nullable Int */;
409 val* var421 /* : nullable Bool */;
410 val* var422 /* : nullable Bool */;
411 static val* varonce423;
412 val* var424 /* : String */;
413 char* var425 /* : CString */;
414 val* var426 /* : String */;
415 val* var427 /* : nullable Int */;
416 val* var428 /* : nullable Int */;
417 val* var429 /* : nullable Bool */;
418 val* var430 /* : nullable Bool */;
419 static val* varonce431;
420 val* var432 /* : String */;
421 char* var433 /* : CString */;
422 val* var434 /* : String */;
423 val* var435 /* : nullable Int */;
424 val* var436 /* : nullable Int */;
425 val* var437 /* : nullable Bool */;
426 val* var438 /* : nullable Bool */;
427 val* var439 /* : String */;
428 val* var440 /* : nullable Object */;
429 val* var441 /* : String */;
430 val* var442 /* : String */;
431 static val* varonce443;
432 val* var444 /* : String */;
433 char* var445 /* : CString */;
434 val* var446 /* : String */;
435 val* var447 /* : nullable Int */;
436 val* var448 /* : nullable Int */;
437 val* var449 /* : nullable Bool */;
438 val* var450 /* : nullable Bool */;
439 short int var451 /* : Bool */;
440 short int var452 /* : Bool */;
441 int cltype453;
442 int idtype454;
443 short int var_455 /* var : Bool */;
444 val* var456 /* : AbstractCompiler */;
445 val* var458 /* : AbstractCompiler */;
446 val* var459 /* : ModelBuilder */;
447 val* var461 /* : ModelBuilder */;
448 val* var462 /* : ToolContext */;
449 val* var464 /* : ToolContext */;
450 val* var465 /* : OptionBool */;
451 val* var467 /* : OptionBool */;
452 val* var468 /* : nullable Object */;
453 val* var470 /* : nullable Object */;
454 short int var471 /* : Bool */;
455 static val* varonce472;
456 val* var473 /* : String */;
457 char* var474 /* : CString */;
458 val* var475 /* : String */;
459 val* var476 /* : nullable Int */;
460 val* var477 /* : nullable Int */;
461 val* var478 /* : nullable Bool */;
462 val* var479 /* : nullable Bool */;
463 val* var480 /* : Text */;
464 val* var_callsym481 /* var callsym: String */;
465 val* var483 /* : NativeArray[String] */;
466 static val* varonce482;
467 static val* varonce484;
468 val* var485 /* : String */;
469 char* var486 /* : CString */;
470 val* var487 /* : String */;
471 val* var488 /* : nullable Int */;
472 val* var489 /* : nullable Int */;
473 val* var490 /* : nullable Bool */;
474 val* var491 /* : nullable Bool */;
475 static val* varonce492;
476 val* var493 /* : String */;
477 char* var494 /* : CString */;
478 val* var495 /* : String */;
479 val* var496 /* : nullable Int */;
480 val* var497 /* : nullable Int */;
481 val* var498 /* : nullable Bool */;
482 val* var499 /* : nullable Bool */;
483 static val* varonce500;
484 val* var501 /* : String */;
485 char* var502 /* : CString */;
486 val* var503 /* : String */;
487 val* var504 /* : nullable Int */;
488 val* var505 /* : nullable Int */;
489 val* var506 /* : nullable Bool */;
490 val* var507 /* : nullable Bool */;
491 static val* varonce508;
492 val* var509 /* : String */;
493 char* var510 /* : CString */;
494 val* var511 /* : String */;
495 val* var512 /* : nullable Int */;
496 val* var513 /* : nullable Int */;
497 val* var514 /* : nullable Bool */;
498 val* var515 /* : nullable Bool */;
499 val* var516 /* : String */;
500 val* var517 /* : nullable Object */;
501 val* var518 /* : String */;
502 val* var519 /* : String */;
503 val* var521 /* : NativeArray[String] */;
504 static val* varonce520;
505 static val* varonce522;
506 val* var523 /* : String */;
507 char* var524 /* : CString */;
508 val* var525 /* : String */;
509 val* var526 /* : nullable Int */;
510 val* var527 /* : nullable Int */;
511 val* var528 /* : nullable Bool */;
512 val* var529 /* : nullable Bool */;
513 static val* varonce530;
514 val* var531 /* : String */;
515 char* var532 /* : CString */;
516 val* var533 /* : String */;
517 val* var534 /* : nullable Int */;
518 val* var535 /* : nullable Int */;
519 val* var536 /* : nullable Bool */;
520 val* var537 /* : nullable Bool */;
521 static val* varonce538;
522 val* var539 /* : String */;
523 char* var540 /* : CString */;
524 val* var541 /* : String */;
525 val* var542 /* : nullable Int */;
526 val* var543 /* : nullable Int */;
527 val* var544 /* : nullable Bool */;
528 val* var545 /* : nullable Bool */;
529 static val* varonce546;
530 val* var547 /* : String */;
531 char* var548 /* : CString */;
532 val* var549 /* : String */;
533 val* var550 /* : nullable Int */;
534 val* var551 /* : nullable Int */;
535 val* var552 /* : nullable Bool */;
536 val* var553 /* : nullable Bool */;
537 static val* varonce554;
538 val* var555 /* : String */;
539 char* var556 /* : CString */;
540 val* var557 /* : String */;
541 val* var558 /* : nullable Int */;
542 val* var559 /* : nullable Int */;
543 val* var560 /* : nullable Bool */;
544 val* var561 /* : nullable Bool */;
545 static val* varonce562;
546 val* var563 /* : String */;
547 char* var564 /* : CString */;
548 val* var565 /* : String */;
549 val* var566 /* : nullable Int */;
550 val* var567 /* : nullable Int */;
551 val* var568 /* : nullable Bool */;
552 val* var569 /* : nullable Bool */;
553 static val* varonce570;
554 val* var571 /* : String */;
555 char* var572 /* : CString */;
556 val* var573 /* : String */;
557 val* var574 /* : nullable Int */;
558 val* var575 /* : nullable Int */;
559 val* var576 /* : nullable Bool */;
560 val* var577 /* : nullable Bool */;
561 val* var578 /* : String */;
562 val* var579 /* : nullable Object */;
563 val* var580 /* : String */;
564 val* var581 /* : String */;
565 val* var582 /* : nullable Object */;
566 val* var583 /* : String */;
567 val* var584 /* : String */;
568 short int var585 /* : Bool */;
569 short int var586 /* : Bool */;
570 short int var588 /* : Bool */;
571 short int var589 /* : Bool */;
572 short int var590 /* : Bool */;
573 short int var591 /* : Bool */;
574 short int var593 /* : Bool */;
575 short int var594 /* : Bool */;
576 static val* varonce595;
577 val* var596 /* : String */;
578 char* var597 /* : CString */;
579 val* var598 /* : String */;
580 val* var599 /* : nullable Int */;
581 val* var600 /* : nullable Int */;
582 val* var601 /* : nullable Bool */;
583 val* var602 /* : nullable Bool */;
584 var_mmethod = p0;
585 var_arguments = p1;
586 var_mentity = p2;
587 {
588 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
589 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
590 if (unlikely(var3 == NULL)) {
591 if(catchStack.cursor >= 0){
592 longjmp(catchStack.envs[catchStack.cursor], 1);
593 }
594 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
595 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
596 fatal_exit(1);
597 }
598 var1 = var3;
599 RET_LABEL2:(void)0;
600 }
601 }
602 {
603 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var1) on <var1:AbstractCompiler(SeparateCompiler)> */
604 var6 = var1->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var1:AbstractCompiler(SeparateCompiler)> */
605 if (unlikely(var6 == NULL)) {
606 if(catchStack.cursor >= 0){
607 longjmp(catchStack.envs[catchStack.cursor], 1);
608 }
609 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
610 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
611 fatal_exit(1);
612 }
613 var4 = var6;
614 RET_LABEL5:(void)0;
615 }
616 }
617 var_ = var4;
618 {
619 { /* Inline separate_compiler$ModelBuilder$nb_invok_by_tables (var_) on <var_:ModelBuilder> */
620 var9 = var_->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_tables].l; /* _nb_invok_by_tables on <var_:ModelBuilder> */
621 var7 = var9;
622 RET_LABEL8:(void)0;
623 }
624 }
625 {
626 { /* Inline kernel$Int$+ (var7,1l) on <var7:Int> */
627 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
628 /* <1l:Int> isa OTHER */
629 var12 = 1; /* easy <1l:Int> isa OTHER*/
630 if (unlikely(!var12)) {
631 var_class_name = type_core__Int.name;
632 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
633 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
634 fatal_exit(1);
635 }
636 var13 = var7 + 1l;
637 var10 = var13;
638 goto RET_LABEL11;
639 RET_LABEL11:(void)0;
640 }
641 }
642 {
643 { /* Inline separate_compiler$ModelBuilder$nb_invok_by_tables= (var_,var10) on <var_:ModelBuilder> */
644 var_->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_tables].l = var10; /* _nb_invok_by_tables on <var_:ModelBuilder> */
645 RET_LABEL14:(void)0;
646 }
647 }
648 {
649 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
650 var17 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
651 if (unlikely(var17 == NULL)) {
652 if(catchStack.cursor >= 0){
653 longjmp(catchStack.envs[catchStack.cursor], 1);
654 }
655 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
656 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
657 fatal_exit(1);
658 }
659 var15 = var17;
660 RET_LABEL16:(void)0;
661 }
662 }
663 {
664 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var15) on <var15:AbstractCompiler(SeparateCompiler)> */
665 var20 = var15->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var15:AbstractCompiler(SeparateCompiler)> */
666 if (unlikely(var20 == NULL)) {
667 if(catchStack.cursor >= 0){
668 longjmp(catchStack.envs[catchStack.cursor], 1);
669 }
670 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
671 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
672 fatal_exit(1);
673 }
674 var18 = var20;
675 RET_LABEL19:(void)0;
676 }
677 }
678 {
679 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var18) on <var18:ModelBuilder> */
680 var23 = var18->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var18:ModelBuilder> */
681 if (unlikely(var23 == NULL)) {
682 if(catchStack.cursor >= 0){
683 longjmp(catchStack.envs[catchStack.cursor], 1);
684 }
685 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
687 fatal_exit(1);
688 }
689 var21 = var23;
690 RET_LABEL22:(void)0;
691 }
692 }
693 {
694 { /* Inline abstract_compiler$ToolContext$opt_invocation_metrics (var21) on <var21:ToolContext> */
695 var26 = var21->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_invocation_metrics].val; /* _opt_invocation_metrics on <var21:ToolContext> */
696 if (unlikely(var26 == NULL)) {
697 if(catchStack.cursor >= 0){
698 longjmp(catchStack.envs[catchStack.cursor], 1);
699 }
700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
701 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 62);
702 fatal_exit(1);
703 }
704 var24 = var26;
705 RET_LABEL25:(void)0;
706 }
707 }
708 {
709 { /* Inline opts$Option$value (var24) on <var24:OptionBool> */
710 var29 = var24->attrs[COLOR_opts__Option___value].val; /* _value on <var24:OptionBool> */
711 var27 = var29;
712 RET_LABEL28:(void)0;
713 }
714 }
715 var30 = (short int)((long)(var27)>>2);
716 if (var30){
717 if (likely(varonce!=NULL)) {
718 var31 = varonce;
719 } else {
720 var32 = "count_invoke_by_tables++;";
721 var34 = (val*)(25l<<2|1);
722 var35 = (val*)(25l<<2|1);
723 var36 = (val*)((long)(0)<<2|3);
724 var37 = (val*)((long)(0)<<2|3);
725 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
726 var31 = var33;
727 varonce = var31;
728 }
729 {
730 nitc___nitc__AbstractCompilerVisitor___add(self, var31); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
731 }
732 } else {
733 }
734 {
735 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
736 var40 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
737 var38 = var40;
738 RET_LABEL39:(void)0;
739 }
740 }
741 {
742 { /* Inline model$MProperty$intro (var_mmethod) on <var_mmethod:MMethod> */
743 var43 = var_mmethod->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_mmethod:MMethod> */
744 if (unlikely(var43 == NULL)) {
745 if(catchStack.cursor >= 0){
746 longjmp(catchStack.envs[catchStack.cursor], 1);
747 }
748 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
749 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
750 fatal_exit(1);
751 }
752 var41 = var43;
753 RET_LABEL42:(void)0;
754 }
755 }
756 {
757 { /* Inline model$MMethodDef$msignature (var41) on <var41:MPropDef(MMethodDef)> */
758 var46 = var41->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var41:MPropDef(MMethodDef)> */
759 var44 = var46;
760 RET_LABEL45:(void)0;
761 }
762 }
763 if (var44 == NULL) {
764 if(catchStack.cursor >= 0){
765 longjmp(catchStack.envs[catchStack.cursor], 1);
766 }
767 PRINT_ERROR("Runtime error: %s", "Receiver is null");
768 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1459);
769 fatal_exit(1);
770 } else {
771 var47 = nitc___nitc__MSignature___arity(var44);
772 }
773 {
774 { /* Inline kernel$Int$+ (var47,1l) on <var47:Int> */
775 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
776 /* <1l:Int> isa OTHER */
777 var50 = 1; /* easy <1l:Int> isa OTHER*/
778 if (unlikely(!var50)) {
779 var_class_name53 = type_core__Int.name;
780 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name53);
781 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
782 fatal_exit(1);
783 }
784 var54 = var47 + 1l;
785 var48 = var54;
786 goto RET_LABEL49;
787 RET_LABEL49:(void)0;
788 }
789 }
790 {
791 { /* Inline kernel$Int$== (var38,var48) on <var38:Int> */
792 var57 = var38 == var48;
793 var55 = var57;
794 goto RET_LABEL56;
795 RET_LABEL56:(void)0;
796 }
797 }
798 if (unlikely(!var55)) {
799 if (unlikely(varonce58==NULL)) {
800 var59 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
801 if (likely(varonce60!=NULL)) {
802 var61 = varonce60;
803 } else {
804 var62 = "Invalid arity for ";
805 var64 = (val*)(18l<<2|1);
806 var65 = (val*)(18l<<2|1);
807 var66 = (val*)((long)(0)<<2|3);
808 var67 = (val*)((long)(0)<<2|3);
809 var63 = core__flat___CString___to_s_unsafe(var62, var64, var65, var66, var67);
810 var61 = var63;
811 varonce60 = var61;
812 }
813 ((struct instance_core__NativeArray*)var59)->values[0]=var61;
814 if (likely(varonce68!=NULL)) {
815 var69 = varonce68;
816 } else {
817 var70 = ". ";
818 var72 = (val*)(2l<<2|1);
819 var73 = (val*)(2l<<2|1);
820 var74 = (val*)((long)(0)<<2|3);
821 var75 = (val*)((long)(0)<<2|3);
822 var71 = core__flat___CString___to_s_unsafe(var70, var72, var73, var74, var75);
823 var69 = var71;
824 varonce68 = var69;
825 }
826 ((struct instance_core__NativeArray*)var59)->values[2]=var69;
827 if (likely(varonce76!=NULL)) {
828 var77 = varonce76;
829 } else {
830 var78 = " arguments given.";
831 var80 = (val*)(17l<<2|1);
832 var81 = (val*)(17l<<2|1);
833 var82 = (val*)((long)(0)<<2|3);
834 var83 = (val*)((long)(0)<<2|3);
835 var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83);
836 var77 = var79;
837 varonce76 = var77;
838 }
839 ((struct instance_core__NativeArray*)var59)->values[4]=var77;
840 } else {
841 var59 = varonce58;
842 varonce58 = NULL;
843 }
844 {
845 var84 = ((val*(*)(val* self))(var_mmethod->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethod); /* to_s on <var_mmethod:MMethod>*/
846 }
847 ((struct instance_core__NativeArray*)var59)->values[1]=var84;
848 {
849 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
850 var87 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
851 var85 = var87;
852 RET_LABEL86:(void)0;
853 }
854 }
855 var88 = core__flat___Int___core__abstract_text__Object__to_s(var85);
856 ((struct instance_core__NativeArray*)var59)->values[3]=var88;
857 {
858 var89 = ((val*(*)(val* self))(var59->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var59); /* native_to_s on <var59:NativeArray[String]>*/
859 }
860 varonce58 = var59;
861 {
862 nitc___nitc__AbstractCompilerVisitor___debug(self, var89); /* Direct call abstract_compiler$AbstractCompilerVisitor$debug on <self:SeparateCompilerVisitor>*/
863 }
864 if(catchStack.cursor >= 0){
865 longjmp(catchStack.envs[catchStack.cursor], 1);
866 }
867 PRINT_ERROR("Runtime error: %s", "Assert failed");
868 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1459);
869 fatal_exit(1);
870 }
871 {
872 var90 = nitc___nitc__SeparateCompilerVisitor___before_send(self, var_mmethod, var_arguments);
873 }
874 var_res0 = var90;
875 {
876 { /* Inline model$MProperty$intro (var_mmethod) on <var_mmethod:MMethod> */
877 var93 = var_mmethod->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_mmethod:MMethod> */
878 if (unlikely(var93 == NULL)) {
879 if(catchStack.cursor >= 0){
880 longjmp(catchStack.envs[catchStack.cursor], 1);
881 }
882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
883 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
884 fatal_exit(1);
885 }
886 var91 = var93;
887 RET_LABEL92:(void)0;
888 }
889 }
890 {
891 var94 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var91);
892 }
893 var_runtime_function = var94;
894 {
895 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (var_runtime_function) on <var_runtime_function:SeparateRuntimeFunction> */
896 var97 = var_runtime_function->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <var_runtime_function:SeparateRuntimeFunction> */
897 if (unlikely(var97 == NULL)) {
898 if(catchStack.cursor >= 0){
899 longjmp(catchStack.envs[catchStack.cursor], 1);
900 }
901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
902 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
903 fatal_exit(1);
904 }
905 var95 = var97;
906 RET_LABEL96:(void)0;
907 }
908 }
909 var_msignature = var95;
910 {
911 { /* Inline model$MProperty$intro (var_mmethod) on <var_mmethod:MMethod> */
912 var100 = var_mmethod->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_mmethod:MMethod> */
913 if (unlikely(var100 == NULL)) {
914 if(catchStack.cursor >= 0){
915 longjmp(catchStack.envs[catchStack.cursor], 1);
916 }
917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
918 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
919 fatal_exit(1);
920 }
921 var98 = var100;
922 RET_LABEL99:(void)0;
923 }
924 }
925 {
926 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__adapt_signature(self, var98, var_arguments); /* Direct call separate_compiler$SeparateCompilerVisitor$adapt_signature on <self:SeparateCompilerVisitor>*/
927 }
928 {
929 { /* Inline model$MSignature$return_mtype (var_msignature) on <var_msignature:MSignature> */
930 var103 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_msignature:MSignature> */
931 var101 = var103;
932 RET_LABEL102:(void)0;
933 }
934 }
935 var_ret = var101;
936 if (var_ret == NULL) {
937 var104 = 1; /* is null */
938 } else {
939 var104 = 0; /* arg is null but recv is not */
940 }
941 if (0) {
942 { /* Inline kernel$Object$== (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
943 var_other = ((val*)NULL);
944 {
945 { /* Inline kernel$Object$is_same_instance (var_ret,var_other) on <var_ret:nullable MType(MType)> */
946 var109 = var_ret == var_other;
947 var107 = var109;
948 goto RET_LABEL108;
949 RET_LABEL108:(void)0;
950 }
951 }
952 var105 = var107;
953 goto RET_LABEL106;
954 RET_LABEL106:(void)0;
955 }
956 var104 = var105;
957 }
958 if (var104){
959 var_res = ((val*)NULL);
960 } else {
961 {
962 var110 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_ret);
963 }
964 var_res = var110;
965 }
966 if (likely(varonce111!=NULL)) {
967 var112 = varonce111;
968 } else {
969 var113 = ", ";
970 var115 = (val*)(2l<<2|1);
971 var116 = (val*)(2l<<2|1);
972 var117 = (val*)((long)(0)<<2|3);
973 var118 = (val*)((long)(0)<<2|3);
974 var114 = core__flat___CString___to_s_unsafe(var113, var115, var116, var117, var118);
975 var112 = var114;
976 varonce111 = var112;
977 }
978 {
979 var119 = core__abstract_text___Collection___join(var_arguments, var112, ((val*)NULL));
980 }
981 var_ss = var119;
982 {
983 var120 = nitc__separate_compiler___MEntity___const_color(var_mentity);
984 }
985 var_const_color = var120;
986 if (var_res == NULL) {
987 var121 = 0; /* is null */
988 } else {
989 var121 = 1; /* arg is null and recv is not */
990 }
991 if (0) {
992 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
993 var_other124 = ((val*)NULL);
994 {
995 var125 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other124); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
996 }
997 var126 = !var125;
998 var122 = var126;
999 goto RET_LABEL123;
1000 RET_LABEL123:(void)0;
1001 }
1002 var121 = var122;
1003 }
1004 if (var121){
1005 if (unlikely(varonce127==NULL)) {
1006 var128 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
1007 if (likely(varonce129!=NULL)) {
1008 var130 = varonce129;
1009 } else {
1010 var131 = " = ";
1011 var133 = (val*)(3l<<2|1);
1012 var134 = (val*)(3l<<2|1);
1013 var135 = (val*)((long)(0)<<2|3);
1014 var136 = (val*)((long)(0)<<2|3);
1015 var132 = core__flat___CString___to_s_unsafe(var131, var133, var134, var135, var136);
1016 var130 = var132;
1017 varonce129 = var130;
1018 }
1019 ((struct instance_core__NativeArray*)var128)->values[1]=var130;
1020 } else {
1021 var128 = varonce127;
1022 varonce127 = NULL;
1023 }
1024 {
1025 var137 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
1026 }
1027 ((struct instance_core__NativeArray*)var128)->values[0]=var137;
1028 {
1029 var138 = ((val*(*)(val* self))(var128->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var128); /* native_to_s on <var128:NativeArray[String]>*/
1030 }
1031 varonce127 = var128;
1032 var_ress = var138;
1033 } else {
1034 if (likely(varonce139!=NULL)) {
1035 var140 = varonce139;
1036 } else {
1037 var141 = "";
1038 var143 = (val*)(0l<<2|1);
1039 var144 = (val*)(0l<<2|1);
1040 var145 = (val*)((long)(0)<<2|3);
1041 var146 = (val*)((long)(0)<<2|3);
1042 var142 = core__flat___CString___to_s_unsafe(var141, var143, var144, var145, var146);
1043 var140 = var142;
1044 varonce139 = var140;
1045 }
1046 var_ress = var140;
1047 }
1048 /* <var_mentity:MEntity> isa MMethod */
1049 cltype149 = type_nitc__MMethod.color;
1050 idtype150 = type_nitc__MMethod.id;
1051 if(cltype149 >= var_mentity->type->table_size) {
1052 var148 = 0;
1053 } else {
1054 var148 = var_mentity->type->type_table[cltype149] == idtype150;
1055 }
1056 var_151 = var148;
1057 if (var148){
1058 {
1059 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
1060 var154 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
1061 if (unlikely(var154 == NULL)) {
1062 if(catchStack.cursor >= 0){
1063 longjmp(catchStack.envs[catchStack.cursor], 1);
1064 }
1065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1066 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1067 fatal_exit(1);
1068 }
1069 var152 = var154;
1070 RET_LABEL153:(void)0;
1071 }
1072 }
1073 {
1074 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var152) on <var152:AbstractCompiler(SeparateCompiler)> */
1075 var157 = var152->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var152:AbstractCompiler(SeparateCompiler)> */
1076 if (unlikely(var157 == NULL)) {
1077 if(catchStack.cursor >= 0){
1078 longjmp(catchStack.envs[catchStack.cursor], 1);
1079 }
1080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1081 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
1082 fatal_exit(1);
1083 }
1084 var155 = var157;
1085 RET_LABEL156:(void)0;
1086 }
1087 }
1088 {
1089 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var155) on <var155:ModelBuilder> */
1090 var160 = var155->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var155:ModelBuilder> */
1091 if (unlikely(var160 == NULL)) {
1092 if(catchStack.cursor >= 0){
1093 longjmp(catchStack.envs[catchStack.cursor], 1);
1094 }
1095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1096 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1097 fatal_exit(1);
1098 }
1099 var158 = var160;
1100 RET_LABEL159:(void)0;
1101 }
1102 }
1103 {
1104 { /* Inline separate_compiler$ToolContext$opt_direct_call_monomorph0 (var158) on <var158:ToolContext> */
1105 var163 = var158->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_direct_call_monomorph0].val; /* _opt_direct_call_monomorph0 on <var158:ToolContext> */
1106 if (unlikely(var163 == NULL)) {
1107 if(catchStack.cursor >= 0){
1108 longjmp(catchStack.envs[catchStack.cursor], 1);
1109 }
1110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_direct_call_monomorph0");
1111 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 52);
1112 fatal_exit(1);
1113 }
1114 var161 = var163;
1115 RET_LABEL162:(void)0;
1116 }
1117 }
1118 {
1119 { /* Inline opts$Option$value (var161) on <var161:OptionBool> */
1120 var166 = var161->attrs[COLOR_opts__Option___value].val; /* _value on <var161:OptionBool> */
1121 var164 = var166;
1122 RET_LABEL165:(void)0;
1123 }
1124 }
1125 var167 = (short int)((long)(var164)>>2);
1126 var147 = var167;
1127 } else {
1128 var147 = var_151;
1129 }
1130 if (var147){
1131 {
1132 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
1133 var170 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
1134 if (unlikely(var170 == NULL)) {
1135 if(catchStack.cursor >= 0){
1136 longjmp(catchStack.envs[catchStack.cursor], 1);
1137 }
1138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1140 fatal_exit(1);
1141 }
1142 var168 = var170;
1143 RET_LABEL169:(void)0;
1144 }
1145 }
1146 {
1147 var171 = nitc___nitc__SeparateCompiler___is_monomorphic(var168, var_mentity);
1148 }
1149 var_md = var171;
1150 if (var_md == NULL) {
1151 var172 = 0; /* is null */
1152 } else {
1153 var172 = 1; /* arg is null and recv is not */
1154 }
1155 if (0) {
1156 { /* Inline kernel$Object$!= (var_md,((val*)NULL)) on <var_md:nullable MMethodDef> */
1157 var_other124 = ((val*)NULL);
1158 {
1159 var175 = ((short int(*)(val* self, val* p0))(var_md->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_md, var_other124); /* == on <var_md:nullable MMethodDef(MMethodDef)>*/
1160 }
1161 var176 = !var175;
1162 var173 = var176;
1163 goto RET_LABEL174;
1164 RET_LABEL174:(void)0;
1165 }
1166 var172 = var173;
1167 }
1168 if (var172){
1169 {
1170 var177 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_md);
1171 }
1172 {
1173 var178 = nitc___nitc__AbstractRuntimeFunction___c_name(var177);
1174 }
1175 var_callsym = var178;
1176 {
1177 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_callsym); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
1178 }
1179 if (unlikely(varonce179==NULL)) {
1180 var180 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
1181 if (likely(varonce181!=NULL)) {
1182 var182 = varonce181;
1183 } else {
1184 var183 = "(";
1185 var185 = (val*)(1l<<2|1);
1186 var186 = (val*)(1l<<2|1);
1187 var187 = (val*)((long)(0)<<2|3);
1188 var188 = (val*)((long)(0)<<2|3);
1189 var184 = core__flat___CString___to_s_unsafe(var183, var185, var186, var187, var188);
1190 var182 = var184;
1191 varonce181 = var182;
1192 }
1193 ((struct instance_core__NativeArray*)var180)->values[2]=var182;
1194 if (likely(varonce189!=NULL)) {
1195 var190 = varonce189;
1196 } else {
1197 var191 = "); /* ";
1198 var193 = (val*)(6l<<2|1);
1199 var194 = (val*)(6l<<2|1);
1200 var195 = (val*)((long)(0)<<2|3);
1201 var196 = (val*)((long)(0)<<2|3);
1202 var192 = core__flat___CString___to_s_unsafe(var191, var193, var194, var195, var196);
1203 var190 = var192;
1204 varonce189 = var190;
1205 }
1206 ((struct instance_core__NativeArray*)var180)->values[4]=var190;
1207 if (likely(varonce197!=NULL)) {
1208 var198 = varonce197;
1209 } else {
1210 var199 = " on ";
1211 var201 = (val*)(4l<<2|1);
1212 var202 = (val*)(4l<<2|1);
1213 var203 = (val*)((long)(0)<<2|3);
1214 var204 = (val*)((long)(0)<<2|3);
1215 var200 = core__flat___CString___to_s_unsafe(var199, var201, var202, var203, var204);
1216 var198 = var200;
1217 varonce197 = var198;
1218 }
1219 ((struct instance_core__NativeArray*)var180)->values[6]=var198;
1220 if (likely(varonce205!=NULL)) {
1221 var206 = varonce205;
1222 } else {
1223 var207 = "*/";
1224 var209 = (val*)(2l<<2|1);
1225 var210 = (val*)(2l<<2|1);
1226 var211 = (val*)((long)(0)<<2|3);
1227 var212 = (val*)((long)(0)<<2|3);
1228 var208 = core__flat___CString___to_s_unsafe(var207, var209, var210, var211, var212);
1229 var206 = var208;
1230 varonce205 = var206;
1231 }
1232 ((struct instance_core__NativeArray*)var180)->values[8]=var206;
1233 } else {
1234 var180 = varonce179;
1235 varonce179 = NULL;
1236 }
1237 ((struct instance_core__NativeArray*)var180)->values[0]=var_ress;
1238 ((struct instance_core__NativeArray*)var180)->values[1]=var_callsym;
1239 ((struct instance_core__NativeArray*)var180)->values[3]=var_ss;
1240 {
1241 var213 = ((val*(*)(val* self))(var_mmethod->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethod); /* to_s on <var_mmethod:MMethod>*/
1242 }
1243 ((struct instance_core__NativeArray*)var180)->values[5]=var213;
1244 {
1245 var214 = core___core__SequenceRead___Collection__first(var_arguments);
1246 }
1247 {
1248 var215 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var214);
1249 }
1250 ((struct instance_core__NativeArray*)var180)->values[7]=var215;
1251 {
1252 var216 = ((val*(*)(val* self))(var180->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var180); /* native_to_s on <var180:NativeArray[String]>*/
1253 }
1254 varonce179 = var180;
1255 {
1256 nitc___nitc__AbstractCompilerVisitor___add(self, var216); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1257 }
1258 } else {
1259 {
1260 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_const_color); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
1261 }
1262 if (unlikely(varonce217==NULL)) {
1263 var218 = NEW_core__NativeArray((int)14l, &type_core__NativeArray__core__String);
1264 if (likely(varonce219!=NULL)) {
1265 var220 = varonce219;
1266 } else {
1267 var221 = "((";
1268 var223 = (val*)(2l<<2|1);
1269 var224 = (val*)(2l<<2|1);
1270 var225 = (val*)((long)(0)<<2|3);
1271 var226 = (val*)((long)(0)<<2|3);
1272 var222 = core__flat___CString___to_s_unsafe(var221, var223, var224, var225, var226);
1273 var220 = var222;
1274 varonce219 = var220;
1275 }
1276 ((struct instance_core__NativeArray*)var218)->values[1]=var220;
1277 if (likely(varonce227!=NULL)) {
1278 var228 = varonce227;
1279 } else {
1280 var229 = ")(";
1281 var231 = (val*)(2l<<2|1);
1282 var232 = (val*)(2l<<2|1);
1283 var233 = (val*)((long)(0)<<2|3);
1284 var234 = (val*)((long)(0)<<2|3);
1285 var230 = core__flat___CString___to_s_unsafe(var229, var231, var232, var233, var234);
1286 var228 = var230;
1287 varonce227 = var228;
1288 }
1289 ((struct instance_core__NativeArray*)var218)->values[3]=var228;
1290 if (likely(varonce235!=NULL)) {
1291 var236 = varonce235;
1292 } else {
1293 var237 = "->vft[";
1294 var239 = (val*)(6l<<2|1);
1295 var240 = (val*)(6l<<2|1);
1296 var241 = (val*)((long)(0)<<2|3);
1297 var242 = (val*)((long)(0)<<2|3);
1298 var238 = core__flat___CString___to_s_unsafe(var237, var239, var240, var241, var242);
1299 var236 = var238;
1300 varonce235 = var236;
1301 }
1302 ((struct instance_core__NativeArray*)var218)->values[5]=var236;
1303 if (likely(varonce243!=NULL)) {
1304 var244 = varonce243;
1305 } else {
1306 var245 = "]))(";
1307 var247 = (val*)(4l<<2|1);
1308 var248 = (val*)(4l<<2|1);
1309 var249 = (val*)((long)(0)<<2|3);
1310 var250 = (val*)((long)(0)<<2|3);
1311 var246 = core__flat___CString___to_s_unsafe(var245, var247, var248, var249, var250);
1312 var244 = var246;
1313 varonce243 = var244;
1314 }
1315 ((struct instance_core__NativeArray*)var218)->values[7]=var244;
1316 if (likely(varonce251!=NULL)) {
1317 var252 = varonce251;
1318 } else {
1319 var253 = "); /* ";
1320 var255 = (val*)(6l<<2|1);
1321 var256 = (val*)(6l<<2|1);
1322 var257 = (val*)((long)(0)<<2|3);
1323 var258 = (val*)((long)(0)<<2|3);
1324 var254 = core__flat___CString___to_s_unsafe(var253, var255, var256, var257, var258);
1325 var252 = var254;
1326 varonce251 = var252;
1327 }
1328 ((struct instance_core__NativeArray*)var218)->values[9]=var252;
1329 if (likely(varonce259!=NULL)) {
1330 var260 = varonce259;
1331 } else {
1332 var261 = " on ";
1333 var263 = (val*)(4l<<2|1);
1334 var264 = (val*)(4l<<2|1);
1335 var265 = (val*)((long)(0)<<2|3);
1336 var266 = (val*)((long)(0)<<2|3);
1337 var262 = core__flat___CString___to_s_unsafe(var261, var263, var264, var265, var266);
1338 var260 = var262;
1339 varonce259 = var260;
1340 }
1341 ((struct instance_core__NativeArray*)var218)->values[11]=var260;
1342 if (likely(varonce267!=NULL)) {
1343 var268 = varonce267;
1344 } else {
1345 var269 = "*/";
1346 var271 = (val*)(2l<<2|1);
1347 var272 = (val*)(2l<<2|1);
1348 var273 = (val*)((long)(0)<<2|3);
1349 var274 = (val*)((long)(0)<<2|3);
1350 var270 = core__flat___CString___to_s_unsafe(var269, var271, var272, var273, var274);
1351 var268 = var270;
1352 varonce267 = var268;
1353 }
1354 ((struct instance_core__NativeArray*)var218)->values[13]=var268;
1355 } else {
1356 var218 = varonce217;
1357 varonce217 = NULL;
1358 }
1359 ((struct instance_core__NativeArray*)var218)->values[0]=var_ress;
1360 {
1361 var275 = nitc___nitc__SeparateRuntimeFunction___c_funptrtype(var_runtime_function);
1362 }
1363 ((struct instance_core__NativeArray*)var218)->values[2]=var275;
1364 {
1365 var276 = core___core__SequenceRead___Collection__first(var_arguments);
1366 }
1367 {
1368 var277 = nitc___nitc__SeparateCompilerVisitor___class_info(self, var276);
1369 }
1370 ((struct instance_core__NativeArray*)var218)->values[4]=var277;
1371 ((struct instance_core__NativeArray*)var218)->values[6]=var_const_color;
1372 ((struct instance_core__NativeArray*)var218)->values[8]=var_ss;
1373 {
1374 var278 = ((val*(*)(val* self))(var_mmethod->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethod); /* to_s on <var_mmethod:MMethod>*/
1375 }
1376 ((struct instance_core__NativeArray*)var218)->values[10]=var278;
1377 {
1378 var279 = core___core__SequenceRead___Collection__first(var_arguments);
1379 }
1380 {
1381 var280 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var279);
1382 }
1383 ((struct instance_core__NativeArray*)var218)->values[12]=var280;
1384 {
1385 var281 = ((val*(*)(val* self))(var218->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var218); /* native_to_s on <var218:NativeArray[String]>*/
1386 }
1387 varonce217 = var218;
1388 {
1389 nitc___nitc__AbstractCompilerVisitor___add(self, var281); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1390 }
1391 }
1392 } else {
1393 /* <var_mentity:MEntity> isa MMethod */
1394 cltype284 = type_nitc__MMethod.color;
1395 idtype285 = type_nitc__MMethod.id;
1396 if(cltype284 >= var_mentity->type->table_size) {
1397 var283 = 0;
1398 } else {
1399 var283 = var_mentity->type->type_table[cltype284] == idtype285;
1400 }
1401 var_286 = var283;
1402 if (var283){
1403 {
1404 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
1405 var289 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
1406 if (unlikely(var289 == NULL)) {
1407 if(catchStack.cursor >= 0){
1408 longjmp(catchStack.envs[catchStack.cursor], 1);
1409 }
1410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1412 fatal_exit(1);
1413 }
1414 var287 = var289;
1415 RET_LABEL288:(void)0;
1416 }
1417 }
1418 {
1419 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var287) on <var287:AbstractCompiler(SeparateCompiler)> */
1420 var292 = var287->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var287:AbstractCompiler(SeparateCompiler)> */
1421 if (unlikely(var292 == NULL)) {
1422 if(catchStack.cursor >= 0){
1423 longjmp(catchStack.envs[catchStack.cursor], 1);
1424 }
1425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1426 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
1427 fatal_exit(1);
1428 }
1429 var290 = var292;
1430 RET_LABEL291:(void)0;
1431 }
1432 }
1433 {
1434 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var290) on <var290:ModelBuilder> */
1435 var295 = var290->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var290:ModelBuilder> */
1436 if (unlikely(var295 == NULL)) {
1437 if(catchStack.cursor >= 0){
1438 longjmp(catchStack.envs[catchStack.cursor], 1);
1439 }
1440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1441 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1442 fatal_exit(1);
1443 }
1444 var293 = var295;
1445 RET_LABEL294:(void)0;
1446 }
1447 }
1448 {
1449 { /* Inline separate_compiler$ToolContext$opt_guard_call (var293) on <var293:ToolContext> */
1450 var298 = var293->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_guard_call].val; /* _opt_guard_call on <var293:ToolContext> */
1451 if (unlikely(var298 == NULL)) {
1452 if(catchStack.cursor >= 0){
1453 longjmp(catchStack.envs[catchStack.cursor], 1);
1454 }
1455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_guard_call");
1456 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 39);
1457 fatal_exit(1);
1458 }
1459 var296 = var298;
1460 RET_LABEL297:(void)0;
1461 }
1462 }
1463 {
1464 { /* Inline opts$Option$value (var296) on <var296:OptionBool> */
1465 var301 = var296->attrs[COLOR_opts__Option___value].val; /* _value on <var296:OptionBool> */
1466 var299 = var301;
1467 RET_LABEL300:(void)0;
1468 }
1469 }
1470 var302 = (short int)((long)(var299)>>2);
1471 var282 = var302;
1472 } else {
1473 var282 = var_286;
1474 }
1475 if (var282){
1476 if (likely(varonce303!=NULL)) {
1477 var304 = varonce303;
1478 } else {
1479 var305 = "CALL_";
1480 var307 = (val*)(5l<<2|1);
1481 var308 = (val*)(5l<<2|1);
1482 var309 = (val*)((long)(0)<<2|3);
1483 var310 = (val*)((long)(0)<<2|3);
1484 var306 = core__flat___CString___to_s_unsafe(var305, var307, var308, var309, var310);
1485 var304 = var306;
1486 varonce303 = var304;
1487 }
1488 {
1489 var311 = ((val*(*)(val* self, val* p0))(var304->class->vft[COLOR_core__abstract_text__Text___43d]))(var304, var_const_color); /* + on <var304:String>*/
1490 }
1491 var_callsym312 = var311;
1492 {
1493 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_callsym312); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
1494 }
1495 if (unlikely(varonce313==NULL)) {
1496 var314 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1497 if (likely(varonce315!=NULL)) {
1498 var316 = varonce315;
1499 } else {
1500 var317 = "if (!";
1501 var319 = (val*)(5l<<2|1);
1502 var320 = (val*)(5l<<2|1);
1503 var321 = (val*)((long)(0)<<2|3);
1504 var322 = (val*)((long)(0)<<2|3);
1505 var318 = core__flat___CString___to_s_unsafe(var317, var319, var320, var321, var322);
1506 var316 = var318;
1507 varonce315 = var316;
1508 }
1509 ((struct instance_core__NativeArray*)var314)->values[0]=var316;
1510 if (likely(varonce323!=NULL)) {
1511 var324 = varonce323;
1512 } else {
1513 var325 = ") {";
1514 var327 = (val*)(3l<<2|1);
1515 var328 = (val*)(3l<<2|1);
1516 var329 = (val*)((long)(0)<<2|3);
1517 var330 = (val*)((long)(0)<<2|3);
1518 var326 = core__flat___CString___to_s_unsafe(var325, var327, var328, var329, var330);
1519 var324 = var326;
1520 varonce323 = var324;
1521 }
1522 ((struct instance_core__NativeArray*)var314)->values[2]=var324;
1523 } else {
1524 var314 = varonce313;
1525 varonce313 = NULL;
1526 }
1527 ((struct instance_core__NativeArray*)var314)->values[1]=var_callsym312;
1528 {
1529 var331 = ((val*(*)(val* self))(var314->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var314); /* native_to_s on <var314:NativeArray[String]>*/
1530 }
1531 varonce313 = var314;
1532 {
1533 nitc___nitc__AbstractCompilerVisitor___add(self, var331); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1534 }
1535 {
1536 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_const_color); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
1537 }
1538 if (unlikely(varonce332==NULL)) {
1539 var333 = NEW_core__NativeArray((int)14l, &type_core__NativeArray__core__String);
1540 if (likely(varonce334!=NULL)) {
1541 var335 = varonce334;
1542 } else {
1543 var336 = "((";
1544 var338 = (val*)(2l<<2|1);
1545 var339 = (val*)(2l<<2|1);
1546 var340 = (val*)((long)(0)<<2|3);
1547 var341 = (val*)((long)(0)<<2|3);
1548 var337 = core__flat___CString___to_s_unsafe(var336, var338, var339, var340, var341);
1549 var335 = var337;
1550 varonce334 = var335;
1551 }
1552 ((struct instance_core__NativeArray*)var333)->values[1]=var335;
1553 if (likely(varonce342!=NULL)) {
1554 var343 = varonce342;
1555 } else {
1556 var344 = ")(";
1557 var346 = (val*)(2l<<2|1);
1558 var347 = (val*)(2l<<2|1);
1559 var348 = (val*)((long)(0)<<2|3);
1560 var349 = (val*)((long)(0)<<2|3);
1561 var345 = core__flat___CString___to_s_unsafe(var344, var346, var347, var348, var349);
1562 var343 = var345;
1563 varonce342 = var343;
1564 }
1565 ((struct instance_core__NativeArray*)var333)->values[3]=var343;
1566 if (likely(varonce350!=NULL)) {
1567 var351 = varonce350;
1568 } else {
1569 var352 = "->vft[";
1570 var354 = (val*)(6l<<2|1);
1571 var355 = (val*)(6l<<2|1);
1572 var356 = (val*)((long)(0)<<2|3);
1573 var357 = (val*)((long)(0)<<2|3);
1574 var353 = core__flat___CString___to_s_unsafe(var352, var354, var355, var356, var357);
1575 var351 = var353;
1576 varonce350 = var351;
1577 }
1578 ((struct instance_core__NativeArray*)var333)->values[5]=var351;
1579 if (likely(varonce358!=NULL)) {
1580 var359 = varonce358;
1581 } else {
1582 var360 = "]))(";
1583 var362 = (val*)(4l<<2|1);
1584 var363 = (val*)(4l<<2|1);
1585 var364 = (val*)((long)(0)<<2|3);
1586 var365 = (val*)((long)(0)<<2|3);
1587 var361 = core__flat___CString___to_s_unsafe(var360, var362, var363, var364, var365);
1588 var359 = var361;
1589 varonce358 = var359;
1590 }
1591 ((struct instance_core__NativeArray*)var333)->values[7]=var359;
1592 if (likely(varonce366!=NULL)) {
1593 var367 = varonce366;
1594 } else {
1595 var368 = "); /* ";
1596 var370 = (val*)(6l<<2|1);
1597 var371 = (val*)(6l<<2|1);
1598 var372 = (val*)((long)(0)<<2|3);
1599 var373 = (val*)((long)(0)<<2|3);
1600 var369 = core__flat___CString___to_s_unsafe(var368, var370, var371, var372, var373);
1601 var367 = var369;
1602 varonce366 = var367;
1603 }
1604 ((struct instance_core__NativeArray*)var333)->values[9]=var367;
1605 if (likely(varonce374!=NULL)) {
1606 var375 = varonce374;
1607 } else {
1608 var376 = " on ";
1609 var378 = (val*)(4l<<2|1);
1610 var379 = (val*)(4l<<2|1);
1611 var380 = (val*)((long)(0)<<2|3);
1612 var381 = (val*)((long)(0)<<2|3);
1613 var377 = core__flat___CString___to_s_unsafe(var376, var378, var379, var380, var381);
1614 var375 = var377;
1615 varonce374 = var375;
1616 }
1617 ((struct instance_core__NativeArray*)var333)->values[11]=var375;
1618 if (likely(varonce382!=NULL)) {
1619 var383 = varonce382;
1620 } else {
1621 var384 = "*/";
1622 var386 = (val*)(2l<<2|1);
1623 var387 = (val*)(2l<<2|1);
1624 var388 = (val*)((long)(0)<<2|3);
1625 var389 = (val*)((long)(0)<<2|3);
1626 var385 = core__flat___CString___to_s_unsafe(var384, var386, var387, var388, var389);
1627 var383 = var385;
1628 varonce382 = var383;
1629 }
1630 ((struct instance_core__NativeArray*)var333)->values[13]=var383;
1631 } else {
1632 var333 = varonce332;
1633 varonce332 = NULL;
1634 }
1635 ((struct instance_core__NativeArray*)var333)->values[0]=var_ress;
1636 {
1637 var390 = nitc___nitc__SeparateRuntimeFunction___c_funptrtype(var_runtime_function);
1638 }
1639 ((struct instance_core__NativeArray*)var333)->values[2]=var390;
1640 {
1641 var391 = core___core__SequenceRead___Collection__first(var_arguments);
1642 }
1643 {
1644 var392 = nitc___nitc__SeparateCompilerVisitor___class_info(self, var391);
1645 }
1646 ((struct instance_core__NativeArray*)var333)->values[4]=var392;
1647 ((struct instance_core__NativeArray*)var333)->values[6]=var_const_color;
1648 ((struct instance_core__NativeArray*)var333)->values[8]=var_ss;
1649 {
1650 var393 = ((val*(*)(val* self))(var_mmethod->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethod); /* to_s on <var_mmethod:MMethod>*/
1651 }
1652 ((struct instance_core__NativeArray*)var333)->values[10]=var393;
1653 {
1654 var394 = core___core__SequenceRead___Collection__first(var_arguments);
1655 }
1656 {
1657 var395 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var394);
1658 }
1659 ((struct instance_core__NativeArray*)var333)->values[12]=var395;
1660 {
1661 var396 = ((val*(*)(val* self))(var333->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var333); /* native_to_s on <var333:NativeArray[String]>*/
1662 }
1663 varonce332 = var333;
1664 {
1665 nitc___nitc__AbstractCompilerVisitor___add(self, var396); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1666 }
1667 if (likely(varonce397!=NULL)) {
1668 var398 = varonce397;
1669 } else {
1670 var399 = "} else {";
1671 var401 = (val*)(8l<<2|1);
1672 var402 = (val*)(8l<<2|1);
1673 var403 = (val*)((long)(0)<<2|3);
1674 var404 = (val*)((long)(0)<<2|3);
1675 var400 = core__flat___CString___to_s_unsafe(var399, var401, var402, var403, var404);
1676 var398 = var400;
1677 varonce397 = var398;
1678 }
1679 {
1680 nitc___nitc__AbstractCompilerVisitor___add(self, var398); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1681 }
1682 if (unlikely(varonce405==NULL)) {
1683 var406 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
1684 if (likely(varonce407!=NULL)) {
1685 var408 = varonce407;
1686 } else {
1687 var409 = "(";
1688 var411 = (val*)(1l<<2|1);
1689 var412 = (val*)(1l<<2|1);
1690 var413 = (val*)((long)(0)<<2|3);
1691 var414 = (val*)((long)(0)<<2|3);
1692 var410 = core__flat___CString___to_s_unsafe(var409, var411, var412, var413, var414);
1693 var408 = var410;
1694 varonce407 = var408;
1695 }
1696 ((struct instance_core__NativeArray*)var406)->values[2]=var408;
1697 if (likely(varonce415!=NULL)) {
1698 var416 = varonce415;
1699 } else {
1700 var417 = "); /* ";
1701 var419 = (val*)(6l<<2|1);
1702 var420 = (val*)(6l<<2|1);
1703 var421 = (val*)((long)(0)<<2|3);
1704 var422 = (val*)((long)(0)<<2|3);
1705 var418 = core__flat___CString___to_s_unsafe(var417, var419, var420, var421, var422);
1706 var416 = var418;
1707 varonce415 = var416;
1708 }
1709 ((struct instance_core__NativeArray*)var406)->values[4]=var416;
1710 if (likely(varonce423!=NULL)) {
1711 var424 = varonce423;
1712 } else {
1713 var425 = " on ";
1714 var427 = (val*)(4l<<2|1);
1715 var428 = (val*)(4l<<2|1);
1716 var429 = (val*)((long)(0)<<2|3);
1717 var430 = (val*)((long)(0)<<2|3);
1718 var426 = core__flat___CString___to_s_unsafe(var425, var427, var428, var429, var430);
1719 var424 = var426;
1720 varonce423 = var424;
1721 }
1722 ((struct instance_core__NativeArray*)var406)->values[6]=var424;
1723 if (likely(varonce431!=NULL)) {
1724 var432 = varonce431;
1725 } else {
1726 var433 = "*/";
1727 var435 = (val*)(2l<<2|1);
1728 var436 = (val*)(2l<<2|1);
1729 var437 = (val*)((long)(0)<<2|3);
1730 var438 = (val*)((long)(0)<<2|3);
1731 var434 = core__flat___CString___to_s_unsafe(var433, var435, var436, var437, var438);
1732 var432 = var434;
1733 varonce431 = var432;
1734 }
1735 ((struct instance_core__NativeArray*)var406)->values[8]=var432;
1736 } else {
1737 var406 = varonce405;
1738 varonce405 = NULL;
1739 }
1740 ((struct instance_core__NativeArray*)var406)->values[0]=var_ress;
1741 ((struct instance_core__NativeArray*)var406)->values[1]=var_callsym312;
1742 ((struct instance_core__NativeArray*)var406)->values[3]=var_ss;
1743 {
1744 var439 = ((val*(*)(val* self))(var_mmethod->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethod); /* to_s on <var_mmethod:MMethod>*/
1745 }
1746 ((struct instance_core__NativeArray*)var406)->values[5]=var439;
1747 {
1748 var440 = core___core__SequenceRead___Collection__first(var_arguments);
1749 }
1750 {
1751 var441 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var440);
1752 }
1753 ((struct instance_core__NativeArray*)var406)->values[7]=var441;
1754 {
1755 var442 = ((val*(*)(val* self))(var406->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var406); /* native_to_s on <var406:NativeArray[String]>*/
1756 }
1757 varonce405 = var406;
1758 {
1759 nitc___nitc__AbstractCompilerVisitor___add(self, var442); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1760 }
1761 if (likely(varonce443!=NULL)) {
1762 var444 = varonce443;
1763 } else {
1764 var445 = "}";
1765 var447 = (val*)(1l<<2|1);
1766 var448 = (val*)(1l<<2|1);
1767 var449 = (val*)((long)(0)<<2|3);
1768 var450 = (val*)((long)(0)<<2|3);
1769 var446 = core__flat___CString___to_s_unsafe(var445, var447, var448, var449, var450);
1770 var444 = var446;
1771 varonce443 = var444;
1772 }
1773 {
1774 nitc___nitc__AbstractCompilerVisitor___add(self, var444); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1775 }
1776 } else {
1777 /* <var_mentity:MEntity> isa MMethod */
1778 cltype453 = type_nitc__MMethod.color;
1779 idtype454 = type_nitc__MMethod.id;
1780 if(cltype453 >= var_mentity->type->table_size) {
1781 var452 = 0;
1782 } else {
1783 var452 = var_mentity->type->type_table[cltype453] == idtype454;
1784 }
1785 var_455 = var452;
1786 if (var452){
1787 {
1788 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
1789 var458 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
1790 if (unlikely(var458 == NULL)) {
1791 if(catchStack.cursor >= 0){
1792 longjmp(catchStack.envs[catchStack.cursor], 1);
1793 }
1794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1795 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1796 fatal_exit(1);
1797 }
1798 var456 = var458;
1799 RET_LABEL457:(void)0;
1800 }
1801 }
1802 {
1803 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var456) on <var456:AbstractCompiler(SeparateCompiler)> */
1804 var461 = var456->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var456:AbstractCompiler(SeparateCompiler)> */
1805 if (unlikely(var461 == NULL)) {
1806 if(catchStack.cursor >= 0){
1807 longjmp(catchStack.envs[catchStack.cursor], 1);
1808 }
1809 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1810 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
1811 fatal_exit(1);
1812 }
1813 var459 = var461;
1814 RET_LABEL460:(void)0;
1815 }
1816 }
1817 {
1818 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var459) on <var459:ModelBuilder> */
1819 var464 = var459->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var459:ModelBuilder> */
1820 if (unlikely(var464 == NULL)) {
1821 if(catchStack.cursor >= 0){
1822 longjmp(catchStack.envs[catchStack.cursor], 1);
1823 }
1824 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
1825 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
1826 fatal_exit(1);
1827 }
1828 var462 = var464;
1829 RET_LABEL463:(void)0;
1830 }
1831 }
1832 {
1833 { /* Inline separate_compiler$ToolContext$opt_trampoline_call (var462) on <var462:ToolContext> */
1834 var467 = var462->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_trampoline_call].val; /* _opt_trampoline_call on <var462:ToolContext> */
1835 if (unlikely(var467 == NULL)) {
1836 if(catchStack.cursor >= 0){
1837 longjmp(catchStack.envs[catchStack.cursor], 1);
1838 }
1839 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_trampoline_call");
1840 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 37);
1841 fatal_exit(1);
1842 }
1843 var465 = var467;
1844 RET_LABEL466:(void)0;
1845 }
1846 }
1847 {
1848 { /* Inline opts$Option$value (var465) on <var465:OptionBool> */
1849 var470 = var465->attrs[COLOR_opts__Option___value].val; /* _value on <var465:OptionBool> */
1850 var468 = var470;
1851 RET_LABEL469:(void)0;
1852 }
1853 }
1854 var471 = (short int)((long)(var468)>>2);
1855 var451 = var471;
1856 } else {
1857 var451 = var_455;
1858 }
1859 if (var451){
1860 if (likely(varonce472!=NULL)) {
1861 var473 = varonce472;
1862 } else {
1863 var474 = "CALL_";
1864 var476 = (val*)(5l<<2|1);
1865 var477 = (val*)(5l<<2|1);
1866 var478 = (val*)((long)(0)<<2|3);
1867 var479 = (val*)((long)(0)<<2|3);
1868 var475 = core__flat___CString___to_s_unsafe(var474, var476, var477, var478, var479);
1869 var473 = var475;
1870 varonce472 = var473;
1871 }
1872 {
1873 var480 = ((val*(*)(val* self, val* p0))(var473->class->vft[COLOR_core__abstract_text__Text___43d]))(var473, var_const_color); /* + on <var473:String>*/
1874 }
1875 var_callsym481 = var480;
1876 {
1877 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_callsym481); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
1878 }
1879 if (unlikely(varonce482==NULL)) {
1880 var483 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
1881 if (likely(varonce484!=NULL)) {
1882 var485 = varonce484;
1883 } else {
1884 var486 = "(";
1885 var488 = (val*)(1l<<2|1);
1886 var489 = (val*)(1l<<2|1);
1887 var490 = (val*)((long)(0)<<2|3);
1888 var491 = (val*)((long)(0)<<2|3);
1889 var487 = core__flat___CString___to_s_unsafe(var486, var488, var489, var490, var491);
1890 var485 = var487;
1891 varonce484 = var485;
1892 }
1893 ((struct instance_core__NativeArray*)var483)->values[2]=var485;
1894 if (likely(varonce492!=NULL)) {
1895 var493 = varonce492;
1896 } else {
1897 var494 = "); /* ";
1898 var496 = (val*)(6l<<2|1);
1899 var497 = (val*)(6l<<2|1);
1900 var498 = (val*)((long)(0)<<2|3);
1901 var499 = (val*)((long)(0)<<2|3);
1902 var495 = core__flat___CString___to_s_unsafe(var494, var496, var497, var498, var499);
1903 var493 = var495;
1904 varonce492 = var493;
1905 }
1906 ((struct instance_core__NativeArray*)var483)->values[4]=var493;
1907 if (likely(varonce500!=NULL)) {
1908 var501 = varonce500;
1909 } else {
1910 var502 = " on ";
1911 var504 = (val*)(4l<<2|1);
1912 var505 = (val*)(4l<<2|1);
1913 var506 = (val*)((long)(0)<<2|3);
1914 var507 = (val*)((long)(0)<<2|3);
1915 var503 = core__flat___CString___to_s_unsafe(var502, var504, var505, var506, var507);
1916 var501 = var503;
1917 varonce500 = var501;
1918 }
1919 ((struct instance_core__NativeArray*)var483)->values[6]=var501;
1920 if (likely(varonce508!=NULL)) {
1921 var509 = varonce508;
1922 } else {
1923 var510 = "*/";
1924 var512 = (val*)(2l<<2|1);
1925 var513 = (val*)(2l<<2|1);
1926 var514 = (val*)((long)(0)<<2|3);
1927 var515 = (val*)((long)(0)<<2|3);
1928 var511 = core__flat___CString___to_s_unsafe(var510, var512, var513, var514, var515);
1929 var509 = var511;
1930 varonce508 = var509;
1931 }
1932 ((struct instance_core__NativeArray*)var483)->values[8]=var509;
1933 } else {
1934 var483 = varonce482;
1935 varonce482 = NULL;
1936 }
1937 ((struct instance_core__NativeArray*)var483)->values[0]=var_ress;
1938 ((struct instance_core__NativeArray*)var483)->values[1]=var_callsym481;
1939 ((struct instance_core__NativeArray*)var483)->values[3]=var_ss;
1940 {
1941 var516 = ((val*(*)(val* self))(var_mmethod->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethod); /* to_s on <var_mmethod:MMethod>*/
1942 }
1943 ((struct instance_core__NativeArray*)var483)->values[5]=var516;
1944 {
1945 var517 = core___core__SequenceRead___Collection__first(var_arguments);
1946 }
1947 {
1948 var518 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var517);
1949 }
1950 ((struct instance_core__NativeArray*)var483)->values[7]=var518;
1951 {
1952 var519 = ((val*(*)(val* self))(var483->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var483); /* native_to_s on <var483:NativeArray[String]>*/
1953 }
1954 varonce482 = var483;
1955 {
1956 nitc___nitc__AbstractCompilerVisitor___add(self, var519); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1957 }
1958 } else {
1959 {
1960 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var_const_color); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
1961 }
1962 if (unlikely(varonce520==NULL)) {
1963 var521 = NEW_core__NativeArray((int)14l, &type_core__NativeArray__core__String);
1964 if (likely(varonce522!=NULL)) {
1965 var523 = varonce522;
1966 } else {
1967 var524 = "((";
1968 var526 = (val*)(2l<<2|1);
1969 var527 = (val*)(2l<<2|1);
1970 var528 = (val*)((long)(0)<<2|3);
1971 var529 = (val*)((long)(0)<<2|3);
1972 var525 = core__flat___CString___to_s_unsafe(var524, var526, var527, var528, var529);
1973 var523 = var525;
1974 varonce522 = var523;
1975 }
1976 ((struct instance_core__NativeArray*)var521)->values[1]=var523;
1977 if (likely(varonce530!=NULL)) {
1978 var531 = varonce530;
1979 } else {
1980 var532 = ")(";
1981 var534 = (val*)(2l<<2|1);
1982 var535 = (val*)(2l<<2|1);
1983 var536 = (val*)((long)(0)<<2|3);
1984 var537 = (val*)((long)(0)<<2|3);
1985 var533 = core__flat___CString___to_s_unsafe(var532, var534, var535, var536, var537);
1986 var531 = var533;
1987 varonce530 = var531;
1988 }
1989 ((struct instance_core__NativeArray*)var521)->values[3]=var531;
1990 if (likely(varonce538!=NULL)) {
1991 var539 = varonce538;
1992 } else {
1993 var540 = "->vft[";
1994 var542 = (val*)(6l<<2|1);
1995 var543 = (val*)(6l<<2|1);
1996 var544 = (val*)((long)(0)<<2|3);
1997 var545 = (val*)((long)(0)<<2|3);
1998 var541 = core__flat___CString___to_s_unsafe(var540, var542, var543, var544, var545);
1999 var539 = var541;
2000 varonce538 = var539;
2001 }
2002 ((struct instance_core__NativeArray*)var521)->values[5]=var539;
2003 if (likely(varonce546!=NULL)) {
2004 var547 = varonce546;
2005 } else {
2006 var548 = "]))(";
2007 var550 = (val*)(4l<<2|1);
2008 var551 = (val*)(4l<<2|1);
2009 var552 = (val*)((long)(0)<<2|3);
2010 var553 = (val*)((long)(0)<<2|3);
2011 var549 = core__flat___CString___to_s_unsafe(var548, var550, var551, var552, var553);
2012 var547 = var549;
2013 varonce546 = var547;
2014 }
2015 ((struct instance_core__NativeArray*)var521)->values[7]=var547;
2016 if (likely(varonce554!=NULL)) {
2017 var555 = varonce554;
2018 } else {
2019 var556 = "); /* ";
2020 var558 = (val*)(6l<<2|1);
2021 var559 = (val*)(6l<<2|1);
2022 var560 = (val*)((long)(0)<<2|3);
2023 var561 = (val*)((long)(0)<<2|3);
2024 var557 = core__flat___CString___to_s_unsafe(var556, var558, var559, var560, var561);
2025 var555 = var557;
2026 varonce554 = var555;
2027 }
2028 ((struct instance_core__NativeArray*)var521)->values[9]=var555;
2029 if (likely(varonce562!=NULL)) {
2030 var563 = varonce562;
2031 } else {
2032 var564 = " on ";
2033 var566 = (val*)(4l<<2|1);
2034 var567 = (val*)(4l<<2|1);
2035 var568 = (val*)((long)(0)<<2|3);
2036 var569 = (val*)((long)(0)<<2|3);
2037 var565 = core__flat___CString___to_s_unsafe(var564, var566, var567, var568, var569);
2038 var563 = var565;
2039 varonce562 = var563;
2040 }
2041 ((struct instance_core__NativeArray*)var521)->values[11]=var563;
2042 if (likely(varonce570!=NULL)) {
2043 var571 = varonce570;
2044 } else {
2045 var572 = "*/";
2046 var574 = (val*)(2l<<2|1);
2047 var575 = (val*)(2l<<2|1);
2048 var576 = (val*)((long)(0)<<2|3);
2049 var577 = (val*)((long)(0)<<2|3);
2050 var573 = core__flat___CString___to_s_unsafe(var572, var574, var575, var576, var577);
2051 var571 = var573;
2052 varonce570 = var571;
2053 }
2054 ((struct instance_core__NativeArray*)var521)->values[13]=var571;
2055 } else {
2056 var521 = varonce520;
2057 varonce520 = NULL;
2058 }
2059 ((struct instance_core__NativeArray*)var521)->values[0]=var_ress;
2060 {
2061 var578 = nitc___nitc__SeparateRuntimeFunction___c_funptrtype(var_runtime_function);
2062 }
2063 ((struct instance_core__NativeArray*)var521)->values[2]=var578;
2064 {
2065 var579 = core___core__SequenceRead___Collection__first(var_arguments);
2066 }
2067 {
2068 var580 = nitc___nitc__SeparateCompilerVisitor___class_info(self, var579);
2069 }
2070 ((struct instance_core__NativeArray*)var521)->values[4]=var580;
2071 ((struct instance_core__NativeArray*)var521)->values[6]=var_const_color;
2072 ((struct instance_core__NativeArray*)var521)->values[8]=var_ss;
2073 {
2074 var581 = ((val*(*)(val* self))(var_mmethod->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethod); /* to_s on <var_mmethod:MMethod>*/
2075 }
2076 ((struct instance_core__NativeArray*)var521)->values[10]=var581;
2077 {
2078 var582 = core___core__SequenceRead___Collection__first(var_arguments);
2079 }
2080 {
2081 var583 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var582);
2082 }
2083 ((struct instance_core__NativeArray*)var521)->values[12]=var583;
2084 {
2085 var584 = ((val*(*)(val* self))(var521->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var521); /* native_to_s on <var521:NativeArray[String]>*/
2086 }
2087 varonce520 = var521;
2088 {
2089 nitc___nitc__AbstractCompilerVisitor___add(self, var584); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
2090 }
2091 }
2092 }
2093 }
2094 if (var_res0 == NULL) {
2095 var585 = 0; /* is null */
2096 } else {
2097 var585 = 1; /* arg is null and recv is not */
2098 }
2099 if (0) {
2100 { /* Inline kernel$Object$!= (var_res0,((val*)NULL)) on <var_res0:nullable RuntimeVariable> */
2101 var_other124 = ((val*)NULL);
2102 {
2103 var588 = ((short int(*)(val* self, val* p0))(var_res0->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res0, var_other124); /* == on <var_res0:nullable RuntimeVariable(RuntimeVariable)>*/
2104 }
2105 var589 = !var588;
2106 var586 = var589;
2107 goto RET_LABEL587;
2108 RET_LABEL587:(void)0;
2109 }
2110 var585 = var586;
2111 }
2112 if (var585){
2113 if (var_res == NULL) {
2114 var590 = 0; /* is null */
2115 } else {
2116 var590 = 1; /* arg is null and recv is not */
2117 }
2118 if (0) {
2119 { /* Inline kernel$Object$!= (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
2120 var_other124 = ((val*)NULL);
2121 {
2122 var593 = ((short int(*)(val* self, val* p0))(var_res->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_res, var_other124); /* == on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
2123 }
2124 var594 = !var593;
2125 var591 = var594;
2126 goto RET_LABEL592;
2127 RET_LABEL592:(void)0;
2128 }
2129 var590 = var591;
2130 }
2131 if (unlikely(!var590)) {
2132 if(catchStack.cursor >= 0){
2133 longjmp(catchStack.envs[catchStack.cursor], 1);
2134 }
2135 PRINT_ERROR("Runtime error: %s", "Assert failed");
2136 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1517);
2137 fatal_exit(1);
2138 }
2139 {
2140 nitc___nitc__AbstractCompilerVisitor___assign(self, var_res0, var_res); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <self:SeparateCompilerVisitor>*/
2141 }
2142 var_res = var_res0;
2143 } else {
2144 }
2145 if (likely(varonce595!=NULL)) {
2146 var596 = varonce595;
2147 } else {
2148 var597 = "}";
2149 var599 = (val*)(1l<<2|1);
2150 var600 = (val*)(1l<<2|1);
2151 var601 = (val*)((long)(0)<<2|3);
2152 var602 = (val*)((long)(0)<<2|3);
2153 var598 = core__flat___CString___to_s_unsafe(var597, var599, var600, var601, var602);
2154 var596 = var598;
2155 varonce595 = var596;
2156 }
2157 {
2158 nitc___nitc__AbstractCompilerVisitor___add(self, var596); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
2159 }
2160 var = var_res;
2161 goto RET_LABEL;
2162 RET_LABEL:;
2163 return var;
2164 }
2165 /* method separate_compiler$SeparateCompilerVisitor$call for (self: SeparateCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
2166 val* nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__call(val* self, val* p0, val* p1, val* p2) {
2167 val* var /* : nullable RuntimeVariable */;
2168 val* var_mmethoddef /* var mmethoddef: MMethodDef */;
2169 val* var_recvtype /* var recvtype: MClassType */;
2170 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
2171 long var1 /* : Int */;
2172 long var3 /* : Int */;
2173 val* var4 /* : nullable MSignature */;
2174 val* var6 /* : nullable MSignature */;
2175 long var7 /* : Int */;
2176 long var8 /* : Int */;
2177 short int var10 /* : Bool */;
2178 int cltype;
2179 int idtype;
2180 const char* var_class_name;
2181 long var11 /* : Int */;
2182 short int var12 /* : Bool */;
2183 short int var14 /* : Bool */;
2184 val* var15 /* : NativeArray[String] */;
2185 static val* varonce;
2186 static val* varonce16;
2187 val* var17 /* : String */;
2188 char* var18 /* : CString */;
2189 val* var19 /* : String */;
2190 val* var20 /* : nullable Int */;
2191 val* var21 /* : nullable Int */;
2192 val* var22 /* : nullable Bool */;
2193 val* var23 /* : nullable Bool */;
2194 static val* varonce24;
2195 val* var25 /* : String */;
2196 char* var26 /* : CString */;
2197 val* var27 /* : String */;
2198 val* var28 /* : nullable Int */;
2199 val* var29 /* : nullable Int */;
2200 val* var30 /* : nullable Bool */;
2201 val* var31 /* : nullable Bool */;
2202 static val* varonce32;
2203 val* var33 /* : String */;
2204 char* var34 /* : CString */;
2205 val* var35 /* : String */;
2206 val* var36 /* : nullable Int */;
2207 val* var37 /* : nullable Int */;
2208 val* var38 /* : nullable Bool */;
2209 val* var39 /* : nullable Bool */;
2210 val* var40 /* : String */;
2211 long var41 /* : Int */;
2212 long var43 /* : Int */;
2213 val* var44 /* : String */;
2214 val* var45 /* : String */;
2215 val* var46 /* : nullable MSignature */;
2216 val* var48 /* : nullable MSignature */;
2217 val* var49 /* : nullable MType */;
2218 val* var51 /* : nullable MType */;
2219 val* var_ret /* var ret: nullable MType */;
2220 short int var52 /* : Bool */;
2221 short int var53 /* : Bool */;
2222 val* var_other /* var other: nullable Object */;
2223 short int var55 /* : Bool */;
2224 short int var57 /* : Bool */;
2225 val* var_res /* var res: nullable RuntimeVariable */;
2226 val* var58 /* : MClassDef */;
2227 val* var60 /* : MClassDef */;
2228 val* var61 /* : MClassType */;
2229 val* var63 /* : MClassType */;
2230 val* var64 /* : MClassDef */;
2231 val* var66 /* : MClassDef */;
2232 val* var67 /* : MClassType */;
2233 val* var69 /* : MClassType */;
2234 val* var70 /* : MClassDef */;
2235 val* var72 /* : MClassDef */;
2236 val* var73 /* : MModule */;
2237 val* var75 /* : MModule */;
2238 val* var76 /* : MType */;
2239 val* var77 /* : RuntimeVariable */;
2240 short int var78 /* : Bool */;
2241 short int var79 /* : Bool */;
2242 short int var80 /* : Bool */;
2243 short int var82 /* : Bool */;
2244 short int var_ /* var : Bool */;
2245 val* var83 /* : AbstractCompiler */;
2246 val* var85 /* : AbstractCompiler */;
2247 val* var86 /* : ModelBuilder */;
2248 val* var88 /* : ModelBuilder */;
2249 val* var89 /* : ToolContext */;
2250 val* var91 /* : ToolContext */;
2251 val* var92 /* : OptionBool */;
2252 val* var94 /* : OptionBool */;
2253 val* var95 /* : nullable Object */;
2254 val* var97 /* : nullable Object */;
2255 short int var98 /* : Bool */;
2256 short int var99 /* : Bool */;
2257 short int var_100 /* var : Bool */;
2258 short int var101 /* : Bool */;
2259 val* var102 /* : AbstractCompiler */;
2260 val* var104 /* : AbstractCompiler */;
2261 val* var105 /* : ModelBuilder */;
2262 val* var107 /* : ModelBuilder */;
2263 val* var108 /* : ToolContext */;
2264 val* var110 /* : ToolContext */;
2265 val* var111 /* : OptionBool */;
2266 val* var113 /* : OptionBool */;
2267 val* var114 /* : nullable Object */;
2268 val* var116 /* : nullable Object */;
2269 short int var117 /* : Bool */;
2270 short int var_118 /* var : Bool */;
2271 short int var119 /* : Bool */;
2272 val* var120 /* : AbstractCompiler */;
2273 val* var122 /* : AbstractCompiler */;
2274 val* var123 /* : ModelBuilder */;
2275 val* var125 /* : ModelBuilder */;
2276 val* var_126 /* var : ModelBuilder */;
2277 long var127 /* : Int */;
2278 long var129 /* : Int */;
2279 long var130 /* : Int */;
2280 short int var132 /* : Bool */;
2281 int cltype133;
2282 int idtype134;
2283 const char* var_class_name135;
2284 long var136 /* : Int */;
2285 val* var138 /* : AbstractCompiler */;
2286 val* var140 /* : AbstractCompiler */;
2287 val* var141 /* : ModelBuilder */;
2288 val* var143 /* : ModelBuilder */;
2289 val* var144 /* : ToolContext */;
2290 val* var146 /* : ToolContext */;
2291 val* var147 /* : OptionBool */;
2292 val* var149 /* : OptionBool */;
2293 val* var150 /* : nullable Object */;
2294 val* var152 /* : nullable Object */;
2295 short int var153 /* : Bool */;
2296 static val* varonce154;
2297 val* var155 /* : String */;
2298 char* var156 /* : CString */;
2299 val* var157 /* : String */;
2300 val* var158 /* : nullable Int */;
2301 val* var159 /* : nullable Int */;
2302 val* var160 /* : nullable Bool */;
2303 val* var161 /* : nullable Bool */;
2304 val* var162 /* : StaticFrame */;
2305 val* var_frame /* var frame: StaticFrame */;
2306 static val* varonce163;
2307 val* var164 /* : String */;
2308 char* var165 /* : CString */;
2309 val* var166 /* : String */;
2310 val* var167 /* : nullable Int */;
2311 val* var168 /* : nullable Int */;
2312 val* var169 /* : nullable Bool */;
2313 val* var170 /* : nullable Bool */;
2314 val* var171 /* : String */;
2315 val* var174 /* : nullable StaticFrame */;
2316 val* var176 /* : nullable StaticFrame */;
2317 val* var_old_frame /* var old_frame: nullable StaticFrame */;
2318 val* var179 /* : NativeArray[String] */;
2319 static val* varonce178;
2320 static val* varonce180;
2321 val* var181 /* : String */;
2322 char* var182 /* : CString */;
2323 val* var183 /* : String */;
2324 val* var184 /* : nullable Int */;
2325 val* var185 /* : nullable Int */;
2326 val* var186 /* : nullable Bool */;
2327 val* var187 /* : nullable Bool */;
2328 static val* varonce188;
2329 val* var189 /* : String */;
2330 char* var190 /* : CString */;
2331 val* var191 /* : String */;
2332 val* var192 /* : nullable Int */;
2333 val* var193 /* : nullable Int */;
2334 val* var194 /* : nullable Bool */;
2335 val* var195 /* : nullable Bool */;
2336 static val* varonce196;
2337 val* var197 /* : String */;
2338 char* var198 /* : CString */;
2339 val* var199 /* : String */;
2340 val* var200 /* : nullable Int */;
2341 val* var201 /* : nullable Int */;
2342 val* var202 /* : nullable Bool */;
2343 val* var203 /* : nullable Bool */;
2344 static val* varonce204;
2345 val* var205 /* : String */;
2346 char* var206 /* : CString */;
2347 val* var207 /* : String */;
2348 val* var208 /* : nullable Int */;
2349 val* var209 /* : nullable Int */;
2350 val* var210 /* : nullable Bool */;
2351 val* var211 /* : nullable Bool */;
2352 val* var212 /* : String */;
2353 static val* varonce213;
2354 val* var214 /* : String */;
2355 char* var215 /* : CString */;
2356 val* var216 /* : String */;
2357 val* var217 /* : nullable Int */;
2358 val* var218 /* : nullable Int */;
2359 val* var219 /* : nullable Bool */;
2360 val* var220 /* : nullable Bool */;
2361 val* var221 /* : String */;
2362 val* var222 /* : nullable Object */;
2363 val* var223 /* : String */;
2364 val* var224 /* : String */;
2365 val* var225 /* : nullable RuntimeVariable */;
2366 val* var227 /* : NativeArray[String] */;
2367 static val* varonce226;
2368 static val* varonce228;
2369 val* var229 /* : String */;
2370 char* var230 /* : CString */;
2371 val* var231 /* : String */;
2372 val* var232 /* : nullable Int */;
2373 val* var233 /* : nullable Int */;
2374 val* var234 /* : nullable Bool */;
2375 val* var235 /* : nullable Bool */;
2376 val* var236 /* : nullable String */;
2377 val* var238 /* : nullable String */;
2378 val* var239 /* : String */;
2379 static val* varonce240;
2380 val* var241 /* : String */;
2381 char* var242 /* : CString */;
2382 val* var243 /* : String */;
2383 val* var244 /* : nullable Int */;
2384 val* var245 /* : nullable Int */;
2385 val* var246 /* : nullable Bool */;
2386 val* var247 /* : nullable Bool */;
2387 val* var249 /* : AbstractCompiler */;
2388 val* var251 /* : AbstractCompiler */;
2389 val* var252 /* : ModelBuilder */;
2390 val* var254 /* : ModelBuilder */;
2391 val* var_255 /* var : ModelBuilder */;
2392 long var256 /* : Int */;
2393 long var258 /* : Int */;
2394 long var259 /* : Int */;
2395 short int var261 /* : Bool */;
2396 int cltype262;
2397 int idtype263;
2398 const char* var_class_name264;
2399 long var265 /* : Int */;
2400 val* var267 /* : AbstractCompiler */;
2401 val* var269 /* : AbstractCompiler */;
2402 val* var270 /* : ModelBuilder */;
2403 val* var272 /* : ModelBuilder */;
2404 val* var273 /* : ToolContext */;
2405 val* var275 /* : ToolContext */;
2406 val* var276 /* : OptionBool */;
2407 val* var278 /* : OptionBool */;
2408 val* var279 /* : nullable Object */;
2409 val* var281 /* : nullable Object */;
2410 short int var282 /* : Bool */;
2411 static val* varonce283;
2412 val* var284 /* : String */;
2413 char* var285 /* : CString */;
2414 val* var286 /* : String */;
2415 val* var287 /* : nullable Int */;
2416 val* var288 /* : nullable Int */;
2417 val* var289 /* : nullable Bool */;
2418 val* var290 /* : nullable Bool */;
2419 val* var291 /* : String */;
2420 short int var292 /* : Bool */;
2421 short int var293 /* : Bool */;
2422 short int var295 /* : Bool */;
2423 short int var297 /* : Bool */;
2424 val* var299 /* : NativeArray[String] */;
2425 static val* varonce298;
2426 static val* varonce300;
2427 val* var301 /* : String */;
2428 char* var302 /* : CString */;
2429 val* var303 /* : String */;
2430 val* var304 /* : nullable Int */;
2431 val* var305 /* : nullable Int */;
2432 val* var306 /* : nullable Bool */;
2433 val* var307 /* : nullable Bool */;
2434 static val* varonce308;
2435 val* var309 /* : String */;
2436 char* var310 /* : CString */;
2437 val* var311 /* : String */;
2438 val* var312 /* : nullable Int */;
2439 val* var313 /* : nullable Int */;
2440 val* var314 /* : nullable Bool */;
2441 val* var315 /* : nullable Bool */;
2442 static val* varonce316;
2443 val* var317 /* : String */;
2444 char* var318 /* : CString */;
2445 val* var319 /* : String */;
2446 val* var320 /* : nullable Int */;
2447 val* var321 /* : nullable Int */;
2448 val* var322 /* : nullable Bool */;
2449 val* var323 /* : nullable Bool */;
2450 static val* varonce324;
2451 val* var325 /* : String */;
2452 char* var326 /* : CString */;
2453 val* var327 /* : String */;
2454 val* var328 /* : nullable Int */;
2455 val* var329 /* : nullable Int */;
2456 val* var330 /* : nullable Bool */;
2457 val* var331 /* : nullable Bool */;
2458 val* var332 /* : String */;
2459 static val* varonce333;
2460 val* var334 /* : String */;
2461 char* var335 /* : CString */;
2462 val* var336 /* : String */;
2463 val* var337 /* : nullable Int */;
2464 val* var338 /* : nullable Int */;
2465 val* var339 /* : nullable Bool */;
2466 val* var340 /* : nullable Bool */;
2467 val* var341 /* : String */;
2468 val* var342 /* : String */;
2469 val* var343 /* : nullable Object */;
2470 val* var344 /* : String */;
2471 val* var345 /* : String */;
2472 val* var347 /* : NativeArray[String] */;
2473 static val* varonce346;
2474 static val* varonce348;
2475 val* var349 /* : String */;
2476 char* var350 /* : CString */;
2477 val* var351 /* : String */;
2478 val* var352 /* : nullable Int */;
2479 val* var353 /* : nullable Int */;
2480 val* var354 /* : nullable Bool */;
2481 val* var355 /* : nullable Bool */;
2482 static val* varonce356;
2483 val* var357 /* : String */;
2484 char* var358 /* : CString */;
2485 val* var359 /* : String */;
2486 val* var360 /* : nullable Int */;
2487 val* var361 /* : nullable Int */;
2488 val* var362 /* : nullable Bool */;
2489 val* var363 /* : nullable Bool */;
2490 static val* varonce364;
2491 val* var365 /* : String */;
2492 char* var366 /* : CString */;
2493 val* var367 /* : String */;
2494 val* var368 /* : nullable Int */;
2495 val* var369 /* : nullable Int */;
2496 val* var370 /* : nullable Bool */;
2497 val* var371 /* : nullable Bool */;
2498 val* var372 /* : String */;
2499 val* var373 /* : String */;
2500 static val* varonce374;
2501 val* var375 /* : String */;
2502 char* var376 /* : CString */;
2503 val* var377 /* : String */;
2504 val* var378 /* : nullable Int */;
2505 val* var379 /* : nullable Int */;
2506 val* var380 /* : nullable Bool */;
2507 val* var381 /* : nullable Bool */;
2508 val* var382 /* : String */;
2509 val* var383 /* : String */;
2510 var_mmethoddef = p0;
2511 var_recvtype = p1;
2512 var_arguments = p2;
2513 {
2514 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
2515 var3 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
2516 var1 = var3;
2517 RET_LABEL2:(void)0;
2518 }
2519 }
2520 {
2521 { /* Inline model$MMethodDef$msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2522 var6 = var_mmethoddef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
2523 var4 = var6;
2524 RET_LABEL5:(void)0;
2525 }
2526 }
2527 if (var4 == NULL) {
2528 if(catchStack.cursor >= 0){
2529 longjmp(catchStack.envs[catchStack.cursor], 1);
2530 }
2531 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2532 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1529);
2533 fatal_exit(1);
2534 } else {
2535 var7 = nitc___nitc__MSignature___arity(var4);
2536 }
2537 {
2538 { /* Inline kernel$Int$+ (var7,1l) on <var7:Int> */
2539 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2540 /* <1l:Int> isa OTHER */
2541 var10 = 1; /* easy <1l:Int> isa OTHER*/
2542 if (unlikely(!var10)) {
2543 var_class_name = type_core__Int.name;
2544 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2545 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
2546 fatal_exit(1);
2547 }
2548 var11 = var7 + 1l;
2549 var8 = var11;
2550 goto RET_LABEL9;
2551 RET_LABEL9:(void)0;
2552 }
2553 }
2554 {
2555 { /* Inline kernel$Int$== (var1,var8) on <var1:Int> */
2556 var14 = var1 == var8;
2557 var12 = var14;
2558 goto RET_LABEL13;
2559 RET_LABEL13:(void)0;
2560 }
2561 }
2562 if (unlikely(!var12)) {
2563 if (unlikely(varonce==NULL)) {
2564 var15 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2565 if (likely(varonce16!=NULL)) {
2566 var17 = varonce16;
2567 } else {
2568 var18 = "Invalid arity for ";
2569 var20 = (val*)(18l<<2|1);
2570 var21 = (val*)(18l<<2|1);
2571 var22 = (val*)((long)(0)<<2|3);
2572 var23 = (val*)((long)(0)<<2|3);
2573 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
2574 var17 = var19;
2575 varonce16 = var17;
2576 }
2577 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
2578 if (likely(varonce24!=NULL)) {
2579 var25 = varonce24;
2580 } else {
2581 var26 = ". ";
2582 var28 = (val*)(2l<<2|1);
2583 var29 = (val*)(2l<<2|1);
2584 var30 = (val*)((long)(0)<<2|3);
2585 var31 = (val*)((long)(0)<<2|3);
2586 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
2587 var25 = var27;
2588 varonce24 = var25;
2589 }
2590 ((struct instance_core__NativeArray*)var15)->values[2]=var25;
2591 if (likely(varonce32!=NULL)) {
2592 var33 = varonce32;
2593 } else {
2594 var34 = " arguments given.";
2595 var36 = (val*)(17l<<2|1);
2596 var37 = (val*)(17l<<2|1);
2597 var38 = (val*)((long)(0)<<2|3);
2598 var39 = (val*)((long)(0)<<2|3);
2599 var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
2600 var33 = var35;
2601 varonce32 = var33;
2602 }
2603 ((struct instance_core__NativeArray*)var15)->values[4]=var33;
2604 } else {
2605 var15 = varonce;
2606 varonce = NULL;
2607 }
2608 {
2609 var40 = ((val*(*)(val* self))(var_mmethoddef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethoddef); /* to_s on <var_mmethoddef:MMethodDef>*/
2610 }
2611 ((struct instance_core__NativeArray*)var15)->values[1]=var40;
2612 {
2613 { /* Inline array$AbstractArrayRead$length (var_arguments) on <var_arguments:Array[RuntimeVariable]> */
2614 var43 = var_arguments->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_arguments:Array[RuntimeVariable]> */
2615 var41 = var43;
2616 RET_LABEL42:(void)0;
2617 }
2618 }
2619 var44 = core__flat___Int___core__abstract_text__Object__to_s(var41);
2620 ((struct instance_core__NativeArray*)var15)->values[3]=var44;
2621 {
2622 var45 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
2623 }
2624 varonce = var15;
2625 {
2626 nitc___nitc__AbstractCompilerVisitor___debug(self, var45); /* Direct call abstract_compiler$AbstractCompilerVisitor$debug on <self:SeparateCompilerVisitor>*/
2627 }
2628 if(catchStack.cursor >= 0){
2629 longjmp(catchStack.envs[catchStack.cursor], 1);
2630 }
2631 PRINT_ERROR("Runtime error: %s", "Assert failed");
2632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1529);
2633 fatal_exit(1);
2634 }
2635 {
2636 { /* Inline model$MMethodDef$msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2637 var48 = var_mmethoddef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
2638 var46 = var48;
2639 RET_LABEL47:(void)0;
2640 }
2641 }
2642 if (var46 == NULL) {
2643 if(catchStack.cursor >= 0){
2644 longjmp(catchStack.envs[catchStack.cursor], 1);
2645 }
2646 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2647 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1532);
2648 fatal_exit(1);
2649 } else {
2650 { /* Inline model$MSignature$return_mtype (var46) on <var46:nullable MSignature> */
2651 if (unlikely(var46 == NULL)) {
2652 if(catchStack.cursor >= 0){
2653 longjmp(catchStack.envs[catchStack.cursor], 1);
2654 }
2655 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2656 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1891);
2657 fatal_exit(1);
2658 }
2659 var51 = var46->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var46:nullable MSignature> */
2660 var49 = var51;
2661 RET_LABEL50:(void)0;
2662 }
2663 }
2664 var_ret = var49;
2665 if (var_ret == NULL) {
2666 var52 = 1; /* is null */
2667 } else {
2668 var52 = 0; /* arg is null but recv is not */
2669 }
2670 if (0) {
2671 { /* Inline kernel$Object$== (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
2672 var_other = ((val*)NULL);
2673 {
2674 { /* Inline kernel$Object$is_same_instance (var_ret,var_other) on <var_ret:nullable MType(MType)> */
2675 var57 = var_ret == var_other;
2676 var55 = var57;
2677 goto RET_LABEL56;
2678 RET_LABEL56:(void)0;
2679 }
2680 }
2681 var53 = var55;
2682 goto RET_LABEL54;
2683 RET_LABEL54:(void)0;
2684 }
2685 var52 = var53;
2686 }
2687 if (var52){
2688 var_res = ((val*)NULL);
2689 } else {
2690 {
2691 { /* Inline model$MPropDef$mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2692 var60 = var_mmethoddef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mmethoddef:MMethodDef> */
2693 if (unlikely(var60 == NULL)) {
2694 if(catchStack.cursor >= 0){
2695 longjmp(catchStack.envs[catchStack.cursor], 1);
2696 }
2697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2698 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
2699 fatal_exit(1);
2700 }
2701 var58 = var60;
2702 RET_LABEL59:(void)0;
2703 }
2704 }
2705 {
2706 { /* Inline model$MClassDef$bound_mtype (var58) on <var58:MClassDef> */
2707 var63 = var58->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var58:MClassDef> */
2708 if (unlikely(var63 == NULL)) {
2709 if(catchStack.cursor >= 0){
2710 longjmp(catchStack.envs[catchStack.cursor], 1);
2711 }
2712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2713 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
2714 fatal_exit(1);
2715 }
2716 var61 = var63;
2717 RET_LABEL62:(void)0;
2718 }
2719 }
2720 {
2721 { /* Inline model$MPropDef$mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2722 var66 = var_mmethoddef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mmethoddef:MMethodDef> */
2723 if (unlikely(var66 == NULL)) {
2724 if(catchStack.cursor >= 0){
2725 longjmp(catchStack.envs[catchStack.cursor], 1);
2726 }
2727 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2728 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
2729 fatal_exit(1);
2730 }
2731 var64 = var66;
2732 RET_LABEL65:(void)0;
2733 }
2734 }
2735 {
2736 { /* Inline model$MClassDef$bound_mtype (var64) on <var64:MClassDef> */
2737 var69 = var64->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var64:MClassDef> */
2738 if (unlikely(var69 == NULL)) {
2739 if(catchStack.cursor >= 0){
2740 longjmp(catchStack.envs[catchStack.cursor], 1);
2741 }
2742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
2743 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
2744 fatal_exit(1);
2745 }
2746 var67 = var69;
2747 RET_LABEL68:(void)0;
2748 }
2749 }
2750 {
2751 { /* Inline model$MPropDef$mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2752 var72 = var_mmethoddef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mmethoddef:MMethodDef> */
2753 if (unlikely(var72 == NULL)) {
2754 if(catchStack.cursor >= 0){
2755 longjmp(catchStack.envs[catchStack.cursor], 1);
2756 }
2757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
2758 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
2759 fatal_exit(1);
2760 }
2761 var70 = var72;
2762 RET_LABEL71:(void)0;
2763 }
2764 }
2765 {
2766 { /* Inline model$MClassDef$mmodule (var70) on <var70:MClassDef> */
2767 var75 = var70->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var70:MClassDef> */
2768 if (unlikely(var75 == NULL)) {
2769 if(catchStack.cursor >= 0){
2770 longjmp(catchStack.envs[catchStack.cursor], 1);
2771 }
2772 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2773 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
2774 fatal_exit(1);
2775 }
2776 var73 = var75;
2777 RET_LABEL74:(void)0;
2778 }
2779 }
2780 {
2781 var76 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_ret->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_ret, var61, var67, var73, 1); /* resolve_for on <var_ret:nullable MType(MType)>*/
2782 }
2783 var_ret = var76;
2784 {
2785 var77 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_ret);
2786 }
2787 var_res = var77;
2788 }
2789 {
2790 { /* Inline model$MMethodDef$is_intern (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
2791 var82 = var_mmethoddef->attrs[COLOR_nitc__model__MMethodDef___is_intern].s; /* _is_intern on <var_mmethoddef:MMethodDef> */
2792 var80 = var82;
2793 RET_LABEL81:(void)0;
2794 }
2795 }
2796 var_ = var80;
2797 if (var80){
2798 {
2799 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
2800 var85 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
2801 if (unlikely(var85 == NULL)) {
2802 if(catchStack.cursor >= 0){
2803 longjmp(catchStack.envs[catchStack.cursor], 1);
2804 }
2805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2806 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
2807 fatal_exit(1);
2808 }
2809 var83 = var85;
2810 RET_LABEL84:(void)0;
2811 }
2812 }
2813 {
2814 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var83) on <var83:AbstractCompiler(SeparateCompiler)> */
2815 var88 = var83->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var83:AbstractCompiler(SeparateCompiler)> */
2816 if (unlikely(var88 == NULL)) {
2817 if(catchStack.cursor >= 0){
2818 longjmp(catchStack.envs[catchStack.cursor], 1);
2819 }
2820 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2821 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
2822 fatal_exit(1);
2823 }
2824 var86 = var88;
2825 RET_LABEL87:(void)0;
2826 }
2827 }
2828 {
2829 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var86) on <var86:ModelBuilder> */
2830 var91 = var86->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var86:ModelBuilder> */
2831 if (unlikely(var91 == NULL)) {
2832 if(catchStack.cursor >= 0){
2833 longjmp(catchStack.envs[catchStack.cursor], 1);
2834 }
2835 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2836 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2837 fatal_exit(1);
2838 }
2839 var89 = var91;
2840 RET_LABEL90:(void)0;
2841 }
2842 }
2843 {
2844 { /* Inline separate_compiler$ToolContext$opt_no_inline_intern (var89) on <var89:ToolContext> */
2845 var94 = var89->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_inline_intern].val; /* _opt_no_inline_intern on <var89:ToolContext> */
2846 if (unlikely(var94 == NULL)) {
2847 if(catchStack.cursor >= 0){
2848 longjmp(catchStack.envs[catchStack.cursor], 1);
2849 }
2850 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_inline_intern");
2851 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 26);
2852 fatal_exit(1);
2853 }
2854 var92 = var94;
2855 RET_LABEL93:(void)0;
2856 }
2857 }
2858 {
2859 { /* Inline opts$Option$value (var92) on <var92:OptionBool> */
2860 var97 = var92->attrs[COLOR_opts__Option___value].val; /* _value on <var92:OptionBool> */
2861 var95 = var97;
2862 RET_LABEL96:(void)0;
2863 }
2864 }
2865 var98 = (short int)((long)(var95)>>2);
2866 var99 = !var98;
2867 var79 = var99;
2868 } else {
2869 var79 = var_;
2870 }
2871 var_100 = var79;
2872 if (var79){
2873 var78 = var_100;
2874 } else {
2875 {
2876 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
2877 var104 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
2878 if (unlikely(var104 == NULL)) {
2879 if(catchStack.cursor >= 0){
2880 longjmp(catchStack.envs[catchStack.cursor], 1);
2881 }
2882 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2883 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
2884 fatal_exit(1);
2885 }
2886 var102 = var104;
2887 RET_LABEL103:(void)0;
2888 }
2889 }
2890 {
2891 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var102) on <var102:AbstractCompiler(SeparateCompiler)> */
2892 var107 = var102->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var102:AbstractCompiler(SeparateCompiler)> */
2893 if (unlikely(var107 == NULL)) {
2894 if(catchStack.cursor >= 0){
2895 longjmp(catchStack.envs[catchStack.cursor], 1);
2896 }
2897 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2898 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
2899 fatal_exit(1);
2900 }
2901 var105 = var107;
2902 RET_LABEL106:(void)0;
2903 }
2904 }
2905 {
2906 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var105) on <var105:ModelBuilder> */
2907 var110 = var105->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var105:ModelBuilder> */
2908 if (unlikely(var110 == NULL)) {
2909 if(catchStack.cursor >= 0){
2910 longjmp(catchStack.envs[catchStack.cursor], 1);
2911 }
2912 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2913 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2914 fatal_exit(1);
2915 }
2916 var108 = var110;
2917 RET_LABEL109:(void)0;
2918 }
2919 }
2920 {
2921 { /* Inline separate_compiler$ToolContext$opt_inline_some_methods (var108) on <var108:ToolContext> */
2922 var113 = var108->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_inline_some_methods].val; /* _opt_inline_some_methods on <var108:ToolContext> */
2923 if (unlikely(var113 == NULL)) {
2924 if(catchStack.cursor >= 0){
2925 longjmp(catchStack.envs[catchStack.cursor], 1);
2926 }
2927 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_inline_some_methods");
2928 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 48);
2929 fatal_exit(1);
2930 }
2931 var111 = var113;
2932 RET_LABEL112:(void)0;
2933 }
2934 }
2935 {
2936 { /* Inline opts$Option$value (var111) on <var111:OptionBool> */
2937 var116 = var111->attrs[COLOR_opts__Option___value].val; /* _value on <var111:OptionBool> */
2938 var114 = var116;
2939 RET_LABEL115:(void)0;
2940 }
2941 }
2942 var117 = (short int)((long)(var114)>>2);
2943 var_118 = var117;
2944 if (var117){
2945 {
2946 var119 = nitc__abstract_compiler___MMethodDef___can_inline(var_mmethoddef, self);
2947 }
2948 var101 = var119;
2949 } else {
2950 var101 = var_118;
2951 }
2952 var78 = var101;
2953 }
2954 if (var78){
2955 {
2956 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
2957 var122 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
2958 if (unlikely(var122 == NULL)) {
2959 if(catchStack.cursor >= 0){
2960 longjmp(catchStack.envs[catchStack.cursor], 1);
2961 }
2962 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2963 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
2964 fatal_exit(1);
2965 }
2966 var120 = var122;
2967 RET_LABEL121:(void)0;
2968 }
2969 }
2970 {
2971 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var120) on <var120:AbstractCompiler(SeparateCompiler)> */
2972 var125 = var120->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var120:AbstractCompiler(SeparateCompiler)> */
2973 if (unlikely(var125 == NULL)) {
2974 if(catchStack.cursor >= 0){
2975 longjmp(catchStack.envs[catchStack.cursor], 1);
2976 }
2977 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2978 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
2979 fatal_exit(1);
2980 }
2981 var123 = var125;
2982 RET_LABEL124:(void)0;
2983 }
2984 }
2985 var_126 = var123;
2986 {
2987 { /* Inline separate_compiler$ModelBuilder$nb_invok_by_inline (var_126) on <var_126:ModelBuilder> */
2988 var129 = var_126->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_inline].l; /* _nb_invok_by_inline on <var_126:ModelBuilder> */
2989 var127 = var129;
2990 RET_LABEL128:(void)0;
2991 }
2992 }
2993 {
2994 { /* Inline kernel$Int$+ (var127,1l) on <var127:Int> */
2995 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
2996 /* <1l:Int> isa OTHER */
2997 var132 = 1; /* easy <1l:Int> isa OTHER*/
2998 if (unlikely(!var132)) {
2999 var_class_name135 = type_core__Int.name;
3000 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name135);
3001 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3002 fatal_exit(1);
3003 }
3004 var136 = var127 + 1l;
3005 var130 = var136;
3006 goto RET_LABEL131;
3007 RET_LABEL131:(void)0;
3008 }
3009 }
3010 {
3011 { /* Inline separate_compiler$ModelBuilder$nb_invok_by_inline= (var_126,var130) on <var_126:ModelBuilder> */
3012 var_126->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_inline].l = var130; /* _nb_invok_by_inline on <var_126:ModelBuilder> */
3013 RET_LABEL137:(void)0;
3014 }
3015 }
3016 {
3017 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
3018 var140 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
3019 if (unlikely(var140 == NULL)) {
3020 if(catchStack.cursor >= 0){
3021 longjmp(catchStack.envs[catchStack.cursor], 1);
3022 }
3023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3024 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3025 fatal_exit(1);
3026 }
3027 var138 = var140;
3028 RET_LABEL139:(void)0;
3029 }
3030 }
3031 {
3032 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var138) on <var138:AbstractCompiler(SeparateCompiler)> */
3033 var143 = var138->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var138:AbstractCompiler(SeparateCompiler)> */
3034 if (unlikely(var143 == NULL)) {
3035 if(catchStack.cursor >= 0){
3036 longjmp(catchStack.envs[catchStack.cursor], 1);
3037 }
3038 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3039 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
3040 fatal_exit(1);
3041 }
3042 var141 = var143;
3043 RET_LABEL142:(void)0;
3044 }
3045 }
3046 {
3047 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var141) on <var141:ModelBuilder> */
3048 var146 = var141->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var141:ModelBuilder> */
3049 if (unlikely(var146 == NULL)) {
3050 if(catchStack.cursor >= 0){
3051 longjmp(catchStack.envs[catchStack.cursor], 1);
3052 }
3053 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3054 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
3055 fatal_exit(1);
3056 }
3057 var144 = var146;
3058 RET_LABEL145:(void)0;
3059 }
3060 }
3061 {
3062 { /* Inline abstract_compiler$ToolContext$opt_invocation_metrics (var144) on <var144:ToolContext> */
3063 var149 = var144->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_invocation_metrics].val; /* _opt_invocation_metrics on <var144:ToolContext> */
3064 if (unlikely(var149 == NULL)) {
3065 if(catchStack.cursor >= 0){
3066 longjmp(catchStack.envs[catchStack.cursor], 1);
3067 }
3068 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
3069 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 62);
3070 fatal_exit(1);
3071 }
3072 var147 = var149;
3073 RET_LABEL148:(void)0;
3074 }
3075 }
3076 {
3077 { /* Inline opts$Option$value (var147) on <var147:OptionBool> */
3078 var152 = var147->attrs[COLOR_opts__Option___value].val; /* _value on <var147:OptionBool> */
3079 var150 = var152;
3080 RET_LABEL151:(void)0;
3081 }
3082 }
3083 var153 = (short int)((long)(var150)>>2);
3084 if (var153){
3085 if (likely(varonce154!=NULL)) {
3086 var155 = varonce154;
3087 } else {
3088 var156 = "count_invoke_by_inline++;";
3089 var158 = (val*)(25l<<2|1);
3090 var159 = (val*)(25l<<2|1);
3091 var160 = (val*)((long)(0)<<2|3);
3092 var161 = (val*)((long)(0)<<2|3);
3093 var157 = core__flat___CString___to_s_unsafe(var156, var158, var159, var160, var161);
3094 var155 = var157;
3095 varonce154 = var155;
3096 }
3097 {
3098 nitc___nitc__AbstractCompilerVisitor___add(self, var155); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
3099 }
3100 } else {
3101 }
3102 var162 = NEW_nitc__StaticFrame(&type_nitc__StaticFrame);
3103 {
3104 ((void(*)(val* self, val* p0))(var162->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__visitor_61d]))(var162, self); /* visitor= on <var162:StaticFrame>*/
3105 }
3106 {
3107 ((void(*)(val* self, val* p0))(var162->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__mpropdef_61d]))(var162, var_mmethoddef); /* mpropdef= on <var162:StaticFrame>*/
3108 }
3109 {
3110 ((void(*)(val* self, val* p0))(var162->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__receiver_61d]))(var162, var_recvtype); /* receiver= on <var162:StaticFrame>*/
3111 }
3112 {
3113 ((void(*)(val* self, val* p0))(var162->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__arguments_61d]))(var162, var_arguments); /* arguments= on <var162:StaticFrame>*/
3114 }
3115 {
3116 ((void(*)(val* self))(var162->class->vft[COLOR_core__kernel__Object__init]))(var162); /* init on <var162:StaticFrame>*/
3117 }
3118 var_frame = var162;
3119 if (likely(varonce163!=NULL)) {
3120 var164 = varonce163;
3121 } else {
3122 var165 = "RET_LABEL";
3123 var167 = (val*)(9l<<2|1);
3124 var168 = (val*)(9l<<2|1);
3125 var169 = (val*)((long)(0)<<2|3);
3126 var170 = (val*)((long)(0)<<2|3);
3127 var166 = core__flat___CString___to_s_unsafe(var165, var167, var168, var169, var170);
3128 var164 = var166;
3129 varonce163 = var164;
3130 }
3131 {
3132 var171 = nitc___nitc__AbstractCompilerVisitor___get_name(self, var164);
3133 }
3134 {
3135 { /* Inline abstract_compiler$StaticFrame$returnlabel= (var_frame,var171) on <var_frame:StaticFrame> */
3136 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val = var171; /* _returnlabel on <var_frame:StaticFrame> */
3137 RET_LABEL172:(void)0;
3138 }
3139 }
3140 {
3141 { /* Inline abstract_compiler$StaticFrame$returnvar= (var_frame,var_res) on <var_frame:StaticFrame> */
3142 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val = var_res; /* _returnvar on <var_frame:StaticFrame> */
3143 RET_LABEL173:(void)0;
3144 }
3145 }
3146 {
3147 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:SeparateCompilerVisitor> */
3148 var176 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateCompilerVisitor> */
3149 var174 = var176;
3150 RET_LABEL175:(void)0;
3151 }
3152 }
3153 var_old_frame = var174;
3154 {
3155 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame= (self,var_frame) on <self:SeparateCompilerVisitor> */
3156 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <self:SeparateCompilerVisitor> */
3157 RET_LABEL177:(void)0;
3158 }
3159 }
3160 if (unlikely(varonce178==NULL)) {
3161 var179 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
3162 if (likely(varonce180!=NULL)) {
3163 var181 = varonce180;
3164 } else {
3165 var182 = "{ /* Inline ";
3166 var184 = (val*)(12l<<2|1);
3167 var185 = (val*)(12l<<2|1);
3168 var186 = (val*)((long)(0)<<2|3);
3169 var187 = (val*)((long)(0)<<2|3);
3170 var183 = core__flat___CString___to_s_unsafe(var182, var184, var185, var186, var187);
3171 var181 = var183;
3172 varonce180 = var181;
3173 }
3174 ((struct instance_core__NativeArray*)var179)->values[0]=var181;
3175 if (likely(varonce188!=NULL)) {
3176 var189 = varonce188;
3177 } else {
3178 var190 = " (";
3179 var192 = (val*)(2l<<2|1);
3180 var193 = (val*)(2l<<2|1);
3181 var194 = (val*)((long)(0)<<2|3);
3182 var195 = (val*)((long)(0)<<2|3);
3183 var191 = core__flat___CString___to_s_unsafe(var190, var192, var193, var194, var195);
3184 var189 = var191;
3185 varonce188 = var189;
3186 }
3187 ((struct instance_core__NativeArray*)var179)->values[2]=var189;
3188 if (likely(varonce196!=NULL)) {
3189 var197 = varonce196;
3190 } else {
3191 var198 = ") on ";
3192 var200 = (val*)(5l<<2|1);
3193 var201 = (val*)(5l<<2|1);
3194 var202 = (val*)((long)(0)<<2|3);
3195 var203 = (val*)((long)(0)<<2|3);
3196 var199 = core__flat___CString___to_s_unsafe(var198, var200, var201, var202, var203);
3197 var197 = var199;
3198 varonce196 = var197;
3199 }
3200 ((struct instance_core__NativeArray*)var179)->values[4]=var197;
3201 if (likely(varonce204!=NULL)) {
3202 var205 = varonce204;
3203 } else {
3204 var206 = " */";
3205 var208 = (val*)(3l<<2|1);
3206 var209 = (val*)(3l<<2|1);
3207 var210 = (val*)((long)(0)<<2|3);
3208 var211 = (val*)((long)(0)<<2|3);
3209 var207 = core__flat___CString___to_s_unsafe(var206, var208, var209, var210, var211);
3210 var205 = var207;
3211 varonce204 = var205;
3212 }
3213 ((struct instance_core__NativeArray*)var179)->values[6]=var205;
3214 } else {
3215 var179 = varonce178;
3216 varonce178 = NULL;
3217 }
3218 {
3219 var212 = ((val*(*)(val* self))(var_mmethoddef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethoddef); /* to_s on <var_mmethoddef:MMethodDef>*/
3220 }
3221 ((struct instance_core__NativeArray*)var179)->values[1]=var212;
3222 if (likely(varonce213!=NULL)) {
3223 var214 = varonce213;
3224 } else {
3225 var215 = ",";
3226 var217 = (val*)(1l<<2|1);
3227 var218 = (val*)(1l<<2|1);
3228 var219 = (val*)((long)(0)<<2|3);
3229 var220 = (val*)((long)(0)<<2|3);
3230 var216 = core__flat___CString___to_s_unsafe(var215, var217, var218, var219, var220);
3231 var214 = var216;
3232 varonce213 = var214;
3233 }
3234 {
3235 var221 = core__abstract_text___Collection___join(var_arguments, var214, ((val*)NULL));
3236 }
3237 ((struct instance_core__NativeArray*)var179)->values[3]=var221;
3238 {
3239 var222 = core___core__SequenceRead___Collection__first(var_arguments);
3240 }
3241 {
3242 var223 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var222);
3243 }
3244 ((struct instance_core__NativeArray*)var179)->values[5]=var223;
3245 {
3246 var224 = ((val*(*)(val* self))(var179->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var179); /* native_to_s on <var179:NativeArray[String]>*/
3247 }
3248 varonce178 = var179;
3249 {
3250 nitc___nitc__AbstractCompilerVisitor___add(self, var224); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
3251 }
3252 {
3253 var225 = nitc__abstract_compiler___MMethodDef___compile_inside_to_c(var_mmethoddef, self, var_arguments);
3254 }
3255 if (unlikely(varonce226==NULL)) {
3256 var227 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
3257 if (likely(varonce228!=NULL)) {
3258 var229 = varonce228;
3259 } else {
3260 var230 = ":(void)0;";
3261 var232 = (val*)(9l<<2|1);
3262 var233 = (val*)(9l<<2|1);
3263 var234 = (val*)((long)(0)<<2|3);
3264 var235 = (val*)((long)(0)<<2|3);
3265 var231 = core__flat___CString___to_s_unsafe(var230, var232, var233, var234, var235);
3266 var229 = var231;
3267 varonce228 = var229;
3268 }
3269 ((struct instance_core__NativeArray*)var227)->values[1]=var229;
3270 } else {
3271 var227 = varonce226;
3272 varonce226 = NULL;
3273 }
3274 {
3275 { /* Inline abstract_compiler$StaticFrame$returnlabel (var_frame) on <var_frame:StaticFrame> */
3276 var238 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var_frame:StaticFrame> */
3277 var236 = var238;
3278 RET_LABEL237:(void)0;
3279 }
3280 }
3281 if (unlikely(var236 == NULL)) {
3282 if(catchStack.cursor >= 0){
3283 longjmp(catchStack.envs[catchStack.cursor], 1);
3284 }
3285 PRINT_ERROR("Runtime error: %s", "Cast failed");
3286 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1551);
3287 fatal_exit(1);
3288 }
3289 ((struct instance_core__NativeArray*)var227)->values[0]=var236;
3290 {
3291 var239 = ((val*(*)(val* self))(var227->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var227); /* native_to_s on <var227:NativeArray[String]>*/
3292 }
3293 varonce226 = var227;
3294 {
3295 nitc___nitc__AbstractCompilerVisitor___add(self, var239); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
3296 }
3297 if (likely(varonce240!=NULL)) {
3298 var241 = varonce240;
3299 } else {
3300 var242 = "}";
3301 var244 = (val*)(1l<<2|1);
3302 var245 = (val*)(1l<<2|1);
3303 var246 = (val*)((long)(0)<<2|3);
3304 var247 = (val*)((long)(0)<<2|3);
3305 var243 = core__flat___CString___to_s_unsafe(var242, var244, var245, var246, var247);
3306 var241 = var243;
3307 varonce240 = var241;
3308 }
3309 {
3310 nitc___nitc__AbstractCompilerVisitor___add(self, var241); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
3311 }
3312 {
3313 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame= (self,var_old_frame) on <self:SeparateCompilerVisitor> */
3314 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_old_frame; /* _frame on <self:SeparateCompilerVisitor> */
3315 RET_LABEL248:(void)0;
3316 }
3317 }
3318 var = var_res;
3319 goto RET_LABEL;
3320 } else {
3321 }
3322 {
3323 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
3324 var251 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
3325 if (unlikely(var251 == NULL)) {
3326 if(catchStack.cursor >= 0){
3327 longjmp(catchStack.envs[catchStack.cursor], 1);
3328 }
3329 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3330 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3331 fatal_exit(1);
3332 }
3333 var249 = var251;
3334 RET_LABEL250:(void)0;
3335 }
3336 }
3337 {
3338 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var249) on <var249:AbstractCompiler(SeparateCompiler)> */
3339 var254 = var249->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var249:AbstractCompiler(SeparateCompiler)> */
3340 if (unlikely(var254 == NULL)) {
3341 if(catchStack.cursor >= 0){
3342 longjmp(catchStack.envs[catchStack.cursor], 1);
3343 }
3344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
3346 fatal_exit(1);
3347 }
3348 var252 = var254;
3349 RET_LABEL253:(void)0;
3350 }
3351 }
3352 var_255 = var252;
3353 {
3354 { /* Inline separate_compiler$ModelBuilder$nb_invok_by_direct (var_255) on <var_255:ModelBuilder> */
3355 var258 = var_255->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_direct].l; /* _nb_invok_by_direct on <var_255:ModelBuilder> */
3356 var256 = var258;
3357 RET_LABEL257:(void)0;
3358 }
3359 }
3360 {
3361 { /* Inline kernel$Int$+ (var256,1l) on <var256:Int> */
3362 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3363 /* <1l:Int> isa OTHER */
3364 var261 = 1; /* easy <1l:Int> isa OTHER*/
3365 if (unlikely(!var261)) {
3366 var_class_name264 = type_core__Int.name;
3367 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name264);
3368 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3369 fatal_exit(1);
3370 }
3371 var265 = var256 + 1l;
3372 var259 = var265;
3373 goto RET_LABEL260;
3374 RET_LABEL260:(void)0;
3375 }
3376 }
3377 {
3378 { /* Inline separate_compiler$ModelBuilder$nb_invok_by_direct= (var_255,var259) on <var_255:ModelBuilder> */
3379 var_255->attrs[COLOR_nitc__separate_compiler__ModelBuilder___nb_invok_by_direct].l = var259; /* _nb_invok_by_direct on <var_255:ModelBuilder> */
3380 RET_LABEL266:(void)0;
3381 }
3382 }
3383 {
3384 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
3385 var269 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
3386 if (unlikely(var269 == NULL)) {
3387 if(catchStack.cursor >= 0){
3388 longjmp(catchStack.envs[catchStack.cursor], 1);
3389 }
3390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3391 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3392 fatal_exit(1);
3393 }
3394 var267 = var269;
3395 RET_LABEL268:(void)0;
3396 }
3397 }
3398 {
3399 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var267) on <var267:AbstractCompiler(SeparateCompiler)> */
3400 var272 = var267->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var267:AbstractCompiler(SeparateCompiler)> */
3401 if (unlikely(var272 == NULL)) {
3402 if(catchStack.cursor >= 0){
3403 longjmp(catchStack.envs[catchStack.cursor], 1);
3404 }
3405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3406 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
3407 fatal_exit(1);
3408 }
3409 var270 = var272;
3410 RET_LABEL271:(void)0;
3411 }
3412 }
3413 {
3414 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var270) on <var270:ModelBuilder> */
3415 var275 = var270->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var270:ModelBuilder> */
3416 if (unlikely(var275 == NULL)) {
3417 if(catchStack.cursor >= 0){
3418 longjmp(catchStack.envs[catchStack.cursor], 1);
3419 }
3420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
3422 fatal_exit(1);
3423 }
3424 var273 = var275;
3425 RET_LABEL274:(void)0;
3426 }
3427 }
3428 {
3429 { /* Inline abstract_compiler$ToolContext$opt_invocation_metrics (var273) on <var273:ToolContext> */
3430 var278 = var273->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_invocation_metrics].val; /* _opt_invocation_metrics on <var273:ToolContext> */
3431 if (unlikely(var278 == NULL)) {
3432 if(catchStack.cursor >= 0){
3433 longjmp(catchStack.envs[catchStack.cursor], 1);
3434 }
3435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_invocation_metrics");
3436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 62);
3437 fatal_exit(1);
3438 }
3439 var276 = var278;
3440 RET_LABEL277:(void)0;
3441 }
3442 }
3443 {
3444 { /* Inline opts$Option$value (var276) on <var276:OptionBool> */
3445 var281 = var276->attrs[COLOR_opts__Option___value].val; /* _value on <var276:OptionBool> */
3446 var279 = var281;
3447 RET_LABEL280:(void)0;
3448 }
3449 }
3450 var282 = (short int)((long)(var279)>>2);
3451 if (var282){
3452 if (likely(varonce283!=NULL)) {
3453 var284 = varonce283;
3454 } else {
3455 var285 = "count_invoke_by_direct++;";
3456 var287 = (val*)(25l<<2|1);
3457 var288 = (val*)(25l<<2|1);
3458 var289 = (val*)((long)(0)<<2|3);
3459 var290 = (val*)((long)(0)<<2|3);
3460 var286 = core__flat___CString___to_s_unsafe(var285, var287, var288, var289, var290);
3461 var284 = var286;
3462 varonce283 = var284;
3463 }
3464 {
3465 nitc___nitc__AbstractCompilerVisitor___add(self, var284); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
3466 }
3467 } else {
3468 }
3469 {
3470 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__adapt_signature(self, var_mmethoddef, var_arguments); /* Direct call separate_compiler$SeparateCompilerVisitor$adapt_signature on <self:SeparateCompilerVisitor>*/
3471 }
3472 {
3473 var291 = nitc___nitc__MPropDef___nitc__model_base__MEntity__c_name(var_mmethoddef);
3474 }
3475 {
3476 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var291); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
3477 }
3478 if (var_res == NULL) {
3479 var292 = 1; /* is null */
3480 } else {
3481 var292 = 0; /* arg is null but recv is not */
3482 }
3483 if (0) {
3484 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable RuntimeVariable> */
3485 var_other = ((val*)NULL);
3486 {
3487 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable RuntimeVariable(RuntimeVariable)> */
3488 var297 = var_res == var_other;
3489 var295 = var297;
3490 goto RET_LABEL296;
3491 RET_LABEL296:(void)0;
3492 }
3493 }
3494 var293 = var295;
3495 goto RET_LABEL294;
3496 RET_LABEL294:(void)0;
3497 }
3498 var292 = var293;
3499 }
3500 if (var292){
3501 if (unlikely(varonce298==NULL)) {
3502 var299 = NEW_core__NativeArray((int)8l, &type_core__NativeArray__core__String);
3503 if (likely(varonce300!=NULL)) {
3504 var301 = varonce300;
3505 } else {
3506 var302 = "(";
3507 var304 = (val*)(1l<<2|1);
3508 var305 = (val*)(1l<<2|1);
3509 var306 = (val*)((long)(0)<<2|3);
3510 var307 = (val*)((long)(0)<<2|3);
3511 var303 = core__flat___CString___to_s_unsafe(var302, var304, var305, var306, var307);
3512 var301 = var303;
3513 varonce300 = var301;
3514 }
3515 ((struct instance_core__NativeArray*)var299)->values[1]=var301;
3516 if (likely(varonce308!=NULL)) {
3517 var309 = varonce308;
3518 } else {
3519 var310 = "); /* Direct call ";
3520 var312 = (val*)(18l<<2|1);
3521 var313 = (val*)(18l<<2|1);
3522 var314 = (val*)((long)(0)<<2|3);
3523 var315 = (val*)((long)(0)<<2|3);
3524 var311 = core__flat___CString___to_s_unsafe(var310, var312, var313, var314, var315);
3525 var309 = var311;
3526 varonce308 = var309;
3527 }
3528 ((struct instance_core__NativeArray*)var299)->values[3]=var309;
3529 if (likely(varonce316!=NULL)) {
3530 var317 = varonce316;
3531 } else {
3532 var318 = " on ";
3533 var320 = (val*)(4l<<2|1);
3534 var321 = (val*)(4l<<2|1);
3535 var322 = (val*)((long)(0)<<2|3);
3536 var323 = (val*)((long)(0)<<2|3);
3537 var319 = core__flat___CString___to_s_unsafe(var318, var320, var321, var322, var323);
3538 var317 = var319;
3539 varonce316 = var317;
3540 }
3541 ((struct instance_core__NativeArray*)var299)->values[5]=var317;
3542 if (likely(varonce324!=NULL)) {
3543 var325 = varonce324;
3544 } else {
3545 var326 = "*/";
3546 var328 = (val*)(2l<<2|1);
3547 var329 = (val*)(2l<<2|1);
3548 var330 = (val*)((long)(0)<<2|3);
3549 var331 = (val*)((long)(0)<<2|3);
3550 var327 = core__flat___CString___to_s_unsafe(var326, var328, var329, var330, var331);
3551 var325 = var327;
3552 varonce324 = var325;
3553 }
3554 ((struct instance_core__NativeArray*)var299)->values[7]=var325;
3555 } else {
3556 var299 = varonce298;
3557 varonce298 = NULL;
3558 }
3559 {
3560 var332 = nitc___nitc__MPropDef___nitc__model_base__MEntity__c_name(var_mmethoddef);
3561 }
3562 ((struct instance_core__NativeArray*)var299)->values[0]=var332;
3563 if (likely(varonce333!=NULL)) {
3564 var334 = varonce333;
3565 } else {
3566 var335 = ", ";
3567 var337 = (val*)(2l<<2|1);
3568 var338 = (val*)(2l<<2|1);
3569 var339 = (val*)((long)(0)<<2|3);
3570 var340 = (val*)((long)(0)<<2|3);
3571 var336 = core__flat___CString___to_s_unsafe(var335, var337, var338, var339, var340);
3572 var334 = var336;
3573 varonce333 = var334;
3574 }
3575 {
3576 var341 = core__abstract_text___Collection___join(var_arguments, var334, ((val*)NULL));
3577 }
3578 ((struct instance_core__NativeArray*)var299)->values[2]=var341;
3579 {
3580 var342 = ((val*(*)(val* self))(var_mmethoddef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mmethoddef); /* to_s on <var_mmethoddef:MMethodDef>*/
3581 }
3582 ((struct instance_core__NativeArray*)var299)->values[4]=var342;
3583 {
3584 var343 = core___core__SequenceRead___Collection__first(var_arguments);
3585 }
3586 {
3587 var344 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var343);
3588 }
3589 ((struct instance_core__NativeArray*)var299)->values[6]=var344;
3590 {
3591 var345 = ((val*(*)(val* self))(var299->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var299); /* native_to_s on <var299:NativeArray[String]>*/
3592 }
3593 varonce298 = var299;
3594 {
3595 nitc___nitc__AbstractCompilerVisitor___add(self, var345); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
3596 }
3597 var = ((val*)NULL);
3598 goto RET_LABEL;
3599 } else {
3600 if (unlikely(varonce346==NULL)) {
3601 var347 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
3602 if (likely(varonce348!=NULL)) {
3603 var349 = varonce348;
3604 } else {
3605 var350 = " = ";
3606 var352 = (val*)(3l<<2|1);
3607 var353 = (val*)(3l<<2|1);
3608 var354 = (val*)((long)(0)<<2|3);
3609 var355 = (val*)((long)(0)<<2|3);
3610 var351 = core__flat___CString___to_s_unsafe(var350, var352, var353, var354, var355);
3611 var349 = var351;
3612 varonce348 = var349;
3613 }
3614 ((struct instance_core__NativeArray*)var347)->values[1]=var349;
3615 if (likely(varonce356!=NULL)) {
3616 var357 = varonce356;
3617 } else {
3618 var358 = "(";
3619 var360 = (val*)(1l<<2|1);
3620 var361 = (val*)(1l<<2|1);
3621 var362 = (val*)((long)(0)<<2|3);
3622 var363 = (val*)((long)(0)<<2|3);
3623 var359 = core__flat___CString___to_s_unsafe(var358, var360, var361, var362, var363);
3624 var357 = var359;
3625 varonce356 = var357;
3626 }
3627 ((struct instance_core__NativeArray*)var347)->values[3]=var357;
3628 if (likely(varonce364!=NULL)) {
3629 var365 = varonce364;
3630 } else {
3631 var366 = ");";
3632 var368 = (val*)(2l<<2|1);
3633 var369 = (val*)(2l<<2|1);
3634 var370 = (val*)((long)(0)<<2|3);
3635 var371 = (val*)((long)(0)<<2|3);
3636 var367 = core__flat___CString___to_s_unsafe(var366, var368, var369, var370, var371);
3637 var365 = var367;
3638 varonce364 = var365;
3639 }
3640 ((struct instance_core__NativeArray*)var347)->values[5]=var365;
3641 } else {
3642 var347 = varonce346;
3643 varonce346 = NULL;
3644 }
3645 {
3646 var372 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:nullable RuntimeVariable(RuntimeVariable)>*/
3647 }
3648 ((struct instance_core__NativeArray*)var347)->values[0]=var372;
3649 {
3650 var373 = nitc___nitc__MPropDef___nitc__model_base__MEntity__c_name(var_mmethoddef);
3651 }
3652 ((struct instance_core__NativeArray*)var347)->values[2]=var373;
3653 if (likely(varonce374!=NULL)) {
3654 var375 = varonce374;
3655 } else {
3656 var376 = ", ";
3657 var378 = (val*)(2l<<2|1);
3658 var379 = (val*)(2l<<2|1);
3659 var380 = (val*)((long)(0)<<2|3);
3660 var381 = (val*)((long)(0)<<2|3);
3661 var377 = core__flat___CString___to_s_unsafe(var376, var378, var379, var380, var381);
3662 var375 = var377;
3663 varonce374 = var375;
3664 }
3665 {
3666 var382 = core__abstract_text___Collection___join(var_arguments, var375, ((val*)NULL));
3667 }
3668 ((struct instance_core__NativeArray*)var347)->values[4]=var382;
3669 {
3670 var383 = ((val*(*)(val* self))(var347->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var347); /* native_to_s on <var347:NativeArray[String]>*/
3671 }
3672 varonce346 = var347;
3673 {
3674 nitc___nitc__AbstractCompilerVisitor___add(self, var383); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
3675 }
3676 }
3677 var = var_res;
3678 goto RET_LABEL;
3679 RET_LABEL:;
3680 return var;
3681 }
3682 /* method separate_compiler$SeparateCompilerVisitor$supercall for (self: SeparateCompilerVisitor, MMethodDef, MClassType, Array[RuntimeVariable]): nullable RuntimeVariable */
3683 val* nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__supercall(val* self, val* p0, val* p1, val* p2) {
3684 val* var /* : nullable RuntimeVariable */;
3685 val* var_m /* var m: MMethodDef */;
3686 val* var_recvtype /* var recvtype: MClassType */;
3687 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
3688 val* var1 /* : nullable Object */;
3689 val* var2 /* : MType */;
3690 val* var4 /* : MType */;
3691 short int var5 /* : Bool */;
3692 val* var6 /* : AbstractCompiler */;
3693 val* var8 /* : AbstractCompiler */;
3694 val* var9 /* : MModule */;
3695 val* var11 /* : MModule */;
3696 val* var_main /* var main: MModule */;
3697 val* var12 /* : AbstractCompiler */;
3698 val* var14 /* : AbstractCompiler */;
3699 val* var15 /* : AbstractCompiler */;
3700 val* var17 /* : AbstractCompiler */;
3701 val* var18 /* : MModule */;
3702 val* var20 /* : MModule */;
3703 val* var22 /* : nullable RuntimeVariable */;
3704 val* var_res /* var res: nullable RuntimeVariable */;
3705 val* var23 /* : AbstractCompiler */;
3706 val* var25 /* : AbstractCompiler */;
3707 val* var27 /* : MProperty */;
3708 val* var29 /* : MProperty */;
3709 val* var30 /* : nullable RuntimeVariable */;
3710 var_m = p0;
3711 var_recvtype = p1;
3712 var_arguments = p2;
3713 {
3714 var1 = core___core__SequenceRead___Collection__first(var_arguments);
3715 }
3716 {
3717 { /* Inline abstract_compiler$RuntimeVariable$mcasttype (var1) on <var1:nullable Object(RuntimeVariable)> */
3718 var4 = var1->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val; /* _mcasttype on <var1:nullable Object(RuntimeVariable)> */
3719 if (unlikely(var4 == NULL)) {
3720 if(catchStack.cursor >= 0){
3721 longjmp(catchStack.envs[catchStack.cursor], 1);
3722 }
3723 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mcasttype");
3724 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1986);
3725 fatal_exit(1);
3726 }
3727 var2 = var4;
3728 RET_LABEL3:(void)0;
3729 }
3730 }
3731 {
3732 var5 = ((short int(*)(val* self))(var2->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var2); /* is_c_primitive on <var2:MType>*/
3733 }
3734 if (var5){
3735 {
3736 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
3737 var8 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
3738 if (unlikely(var8 == NULL)) {
3739 if(catchStack.cursor >= 0){
3740 longjmp(catchStack.envs[catchStack.cursor], 1);
3741 }
3742 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3743 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3744 fatal_exit(1);
3745 }
3746 var6 = var8;
3747 RET_LABEL7:(void)0;
3748 }
3749 }
3750 {
3751 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var6) on <var6:AbstractCompiler(SeparateCompiler)> */
3752 var11 = var6->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var6:AbstractCompiler(SeparateCompiler)> */
3753 if (unlikely(var11 == NULL)) {
3754 if(catchStack.cursor >= 0){
3755 longjmp(catchStack.envs[catchStack.cursor], 1);
3756 }
3757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
3758 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
3759 fatal_exit(1);
3760 }
3761 var9 = var11;
3762 RET_LABEL10:(void)0;
3763 }
3764 }
3765 var_main = var9;
3766 {
3767 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
3768 var14 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
3769 if (unlikely(var14 == NULL)) {
3770 if(catchStack.cursor >= 0){
3771 longjmp(catchStack.envs[catchStack.cursor], 1);
3772 }
3773 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3774 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3775 fatal_exit(1);
3776 }
3777 var12 = var14;
3778 RET_LABEL13:(void)0;
3779 }
3780 }
3781 {
3782 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
3783 var17 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
3784 if (unlikely(var17 == NULL)) {
3785 if(catchStack.cursor >= 0){
3786 longjmp(catchStack.envs[catchStack.cursor], 1);
3787 }
3788 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3789 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3790 fatal_exit(1);
3791 }
3792 var15 = var17;
3793 RET_LABEL16:(void)0;
3794 }
3795 }
3796 {
3797 { /* Inline abstract_compiler$AbstractCompiler$realmainmodule (var15) on <var15:AbstractCompiler(SeparateCompiler)> */
3798 var20 = var15->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___realmainmodule].val; /* _realmainmodule on <var15:AbstractCompiler(SeparateCompiler)> */
3799 if (unlikely(var20 == NULL)) {
3800 if(catchStack.cursor >= 0){
3801 longjmp(catchStack.envs[catchStack.cursor], 1);
3802 }
3803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _realmainmodule");
3804 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 549);
3805 fatal_exit(1);
3806 }
3807 var18 = var20;
3808 RET_LABEL19:(void)0;
3809 }
3810 }
3811 {
3812 { /* Inline abstract_compiler$AbstractCompiler$mainmodule= (var12,var18) on <var12:AbstractCompiler(SeparateCompiler)> */
3813 var12->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val = var18; /* _mainmodule on <var12:AbstractCompiler(SeparateCompiler)> */
3814 RET_LABEL21:(void)0;
3815 }
3816 }
3817 {
3818 var22 = nitc___nitc__AbstractCompilerVisitor___monomorphic_super_send(self, var_m, var_recvtype, var_arguments);
3819 }
3820 var_res = var22;
3821 {
3822 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
3823 var25 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
3824 if (unlikely(var25 == NULL)) {
3825 if(catchStack.cursor >= 0){
3826 longjmp(catchStack.envs[catchStack.cursor], 1);
3827 }
3828 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
3829 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
3830 fatal_exit(1);
3831 }
3832 var23 = var25;
3833 RET_LABEL24:(void)0;
3834 }
3835 }
3836 {
3837 { /* Inline abstract_compiler$AbstractCompiler$mainmodule= (var23,var_main) on <var23:AbstractCompiler(SeparateCompiler)> */
3838 var23->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val = var_main; /* _mainmodule on <var23:AbstractCompiler(SeparateCompiler)> */
3839 RET_LABEL26:(void)0;
3840 }
3841 }
3842 var = var_res;
3843 goto RET_LABEL;
3844 } else {
3845 }
3846 {
3847 { /* Inline model$MPropDef$mproperty (var_m) on <var_m:MMethodDef> */
3848 var29 = var_m->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_m:MMethodDef> */
3849 if (unlikely(var29 == NULL)) {
3850 if(catchStack.cursor >= 0){
3851 longjmp(catchStack.envs[catchStack.cursor], 1);
3852 }
3853 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3854 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3855 fatal_exit(1);
3856 }
3857 var27 = var29;
3858 RET_LABEL28:(void)0;
3859 }
3860 }
3861 {
3862 var30 = nitc___nitc__SeparateCompilerVisitor___table_send(self, var27, var_arguments, var_m);
3863 }
3864 var = var30;
3865 goto RET_LABEL;
3866 RET_LABEL:;
3867 return var;
3868 }
3869 /* method separate_compiler$SeparateCompilerVisitor$vararg_instance for (self: SeparateCompilerVisitor, MPropDef, RuntimeVariable, Array[RuntimeVariable], MType): RuntimeVariable */
3870 val* nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__vararg_instance(val* self, val* p0, val* p1, val* p2, val* p3) {
3871 val* var /* : RuntimeVariable */;
3872 val* var_mpropdef /* var mpropdef: MPropDef */;
3873 val* var_recv /* var recv: RuntimeVariable */;
3874 val* var_varargs /* var varargs: Array[RuntimeVariable] */;
3875 val* var_elttype /* var elttype: MType */;
3876 val* var1 /* : nullable StaticFrame */;
3877 val* var3 /* : nullable StaticFrame */;
3878 val* var_old_frame /* var old_frame: nullable StaticFrame */;
3879 val* var4 /* : StaticFrame */;
3880 val* var5 /* : MClassDef */;
3881 val* var7 /* : MClassDef */;
3882 val* var8 /* : MClassType */;
3883 val* var10 /* : MClassType */;
3884 val* var11 /* : Array[RuntimeVariable] */;
3885 val* var_ /* var : Array[RuntimeVariable] */;
3886 val* var_frame /* var frame: StaticFrame */;
3887 val* var13 /* : RuntimeVariable */;
3888 val* var_res /* var res: RuntimeVariable */;
3889 var_mpropdef = p0;
3890 var_recv = p1;
3891 var_varargs = p2;
3892 var_elttype = p3;
3893 {
3894 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:SeparateCompilerVisitor> */
3895 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateCompilerVisitor> */
3896 var1 = var3;
3897 RET_LABEL2:(void)0;
3898 }
3899 }
3900 var_old_frame = var1;
3901 var4 = NEW_nitc__StaticFrame(&type_nitc__StaticFrame);
3902 {
3903 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:MPropDef> */
3904 var7 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:MPropDef> */
3905 if (unlikely(var7 == NULL)) {
3906 if(catchStack.cursor >= 0){
3907 longjmp(catchStack.envs[catchStack.cursor], 1);
3908 }
3909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3910 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
3911 fatal_exit(1);
3912 }
3913 var5 = var7;
3914 RET_LABEL6:(void)0;
3915 }
3916 }
3917 {
3918 { /* Inline model$MClassDef$bound_mtype (var5) on <var5:MClassDef> */
3919 var10 = var5->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var5:MClassDef> */
3920 if (unlikely(var10 == NULL)) {
3921 if(catchStack.cursor >= 0){
3922 longjmp(catchStack.envs[catchStack.cursor], 1);
3923 }
3924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3925 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
3926 fatal_exit(1);
3927 }
3928 var8 = var10;
3929 RET_LABEL9:(void)0;
3930 }
3931 }
3932 var11 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
3933 {
3934 core___core__Array___with_capacity(var11, 1l); /* Direct call array$Array$with_capacity on <var11:Array[RuntimeVariable]>*/
3935 }
3936 var_ = var11;
3937 {
3938 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var_recv); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
3939 }
3940 {
3941 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__visitor_61d]))(var4, self); /* visitor= on <var4:StaticFrame>*/
3942 }
3943 {
3944 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__mpropdef_61d]))(var4, var_mpropdef); /* mpropdef= on <var4:StaticFrame>*/
3945 }
3946 {
3947 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__receiver_61d]))(var4, var8); /* receiver= on <var4:StaticFrame>*/
3948 }
3949 {
3950 ((void(*)(val* self, val* p0))(var4->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__arguments_61d]))(var4, var_); /* arguments= on <var4:StaticFrame>*/
3951 }
3952 {
3953 ((void(*)(val* self))(var4->class->vft[COLOR_core__kernel__Object__init]))(var4); /* init on <var4:StaticFrame>*/
3954 }
3955 var_frame = var4;
3956 {
3957 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame= (self,var_frame) on <self:SeparateCompilerVisitor> */
3958 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <self:SeparateCompilerVisitor> */
3959 RET_LABEL12:(void)0;
3960 }
3961 }
3962 {
3963 var13 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__array_instance(self, var_varargs, var_elttype);
3964 }
3965 var_res = var13;
3966 {
3967 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame= (self,var_old_frame) on <self:SeparateCompilerVisitor> */
3968 self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_old_frame; /* _frame on <self:SeparateCompilerVisitor> */
3969 RET_LABEL14:(void)0;
3970 }
3971 }
3972 var = var_res;
3973 goto RET_LABEL;
3974 RET_LABEL:;
3975 return var;
3976 }
3977 /* method separate_compiler$SeparateCompilerVisitor$isset_attribute for (self: SeparateCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
3978 val* nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__isset_attribute(val* self, val* p0, val* p1) {
3979 val* var /* : RuntimeVariable */;
3980 val* var_a /* var a: MAttribute */;
3981 val* var_recv /* var recv: RuntimeVariable */;
3982 val* var1 /* : MClassType */;
3983 val* var2 /* : RuntimeVariable */;
3984 val* var_res /* var res: RuntimeVariable */;
3985 val* var3 /* : MPropDef */;
3986 val* var5 /* : MPropDef */;
3987 val* var6 /* : nullable MType */;
3988 val* var8 /* : nullable MType */;
3989 val* var_mtype /* var mtype: MType */;
3990 val* var9 /* : MPropDef */;
3991 val* var11 /* : MPropDef */;
3992 val* var12 /* : MClassDef */;
3993 val* var14 /* : MClassDef */;
3994 val* var_intromclassdef /* var intromclassdef: MClassDef */;
3995 val* var15 /* : MClassType */;
3996 val* var17 /* : MClassType */;
3997 val* var18 /* : MClassType */;
3998 val* var20 /* : MClassType */;
3999 val* var21 /* : MModule */;
4000 val* var23 /* : MModule */;
4001 val* var24 /* : MType */;
4002 short int var25 /* : Bool */;
4003 int cltype;
4004 int idtype;
4005 val* var26 /* : NativeArray[String] */;
4006 static val* varonce;
4007 static val* varonce27;
4008 val* var28 /* : String */;
4009 char* var29 /* : CString */;
4010 val* var30 /* : String */;
4011 val* var31 /* : nullable Int */;
4012 val* var32 /* : nullable Int */;
4013 val* var33 /* : nullable Bool */;
4014 val* var34 /* : nullable Bool */;
4015 static val* varonce35;
4016 val* var36 /* : String */;
4017 char* var37 /* : CString */;
4018 val* var38 /* : String */;
4019 val* var39 /* : nullable Int */;
4020 val* var40 /* : nullable Int */;
4021 val* var41 /* : nullable Bool */;
4022 val* var42 /* : nullable Bool */;
4023 static val* varonce43;
4024 val* var44 /* : String */;
4025 char* var45 /* : CString */;
4026 val* var46 /* : String */;
4027 val* var47 /* : nullable Int */;
4028 val* var48 /* : nullable Int */;
4029 val* var49 /* : nullable Bool */;
4030 val* var50 /* : nullable Bool */;
4031 val* var51 /* : String */;
4032 val* var52 /* : String */;
4033 val* var53 /* : String */;
4034 val* var54 /* : String */;
4035 val* var55 /* : String */;
4036 val* var56 /* : AbstractCompiler */;
4037 val* var58 /* : AbstractCompiler */;
4038 val* var59 /* : ModelBuilder */;
4039 val* var61 /* : ModelBuilder */;
4040 val* var62 /* : ToolContext */;
4041 val* var64 /* : ToolContext */;
4042 val* var65 /* : OptionBool */;
4043 val* var67 /* : OptionBool */;
4044 val* var68 /* : nullable Object */;
4045 val* var70 /* : nullable Object */;
4046 short int var71 /* : Bool */;
4047 val* var73 /* : NativeArray[String] */;
4048 static val* varonce72;
4049 static val* varonce74;
4050 val* var75 /* : String */;
4051 char* var76 /* : CString */;
4052 val* var77 /* : String */;
4053 val* var78 /* : nullable Int */;
4054 val* var79 /* : nullable Int */;
4055 val* var80 /* : nullable Bool */;
4056 val* var81 /* : nullable Bool */;
4057 static val* varonce82;
4058 val* var83 /* : String */;
4059 char* var84 /* : CString */;
4060 val* var85 /* : String */;
4061 val* var86 /* : nullable Int */;
4062 val* var87 /* : nullable Int */;
4063 val* var88 /* : nullable Bool */;
4064 val* var89 /* : nullable Bool */;
4065 static val* varonce90;
4066 val* var91 /* : String */;
4067 char* var92 /* : CString */;
4068 val* var93 /* : String */;
4069 val* var94 /* : nullable Int */;
4070 val* var95 /* : nullable Int */;
4071 val* var96 /* : nullable Bool */;
4072 val* var97 /* : nullable Bool */;
4073 static val* varonce98;
4074 val* var99 /* : String */;
4075 char* var100 /* : CString */;
4076 val* var101 /* : String */;
4077 val* var102 /* : nullable Int */;
4078 val* var103 /* : nullable Int */;
4079 val* var104 /* : nullable Bool */;
4080 val* var105 /* : nullable Bool */;
4081 static val* varonce106;
4082 val* var107 /* : String */;
4083 char* var108 /* : CString */;
4084 val* var109 /* : String */;
4085 val* var110 /* : nullable Int */;
4086 val* var111 /* : nullable Int */;
4087 val* var112 /* : nullable Bool */;
4088 val* var113 /* : nullable Bool */;
4089 val* var114 /* : String */;
4090 val* var115 /* : String */;
4091 val* var116 /* : String */;
4092 val* var117 /* : String */;
4093 val* var118 /* : String */;
4094 val* var119 /* : String */;
4095 short int var120 /* : Bool */;
4096 short int var121 /* : Bool */;
4097 short int var122 /* : Bool */;
4098 short int var_ /* var : Bool */;
4099 short int var123 /* : Bool */;
4100 short int var125 /* : Bool */;
4101 short int var126 /* : Bool */;
4102 val* var128 /* : NativeArray[String] */;
4103 static val* varonce127;
4104 static val* varonce129;
4105 val* var130 /* : String */;
4106 char* var131 /* : CString */;
4107 val* var132 /* : String */;
4108 val* var133 /* : nullable Int */;
4109 val* var134 /* : nullable Int */;
4110 val* var135 /* : nullable Bool */;
4111 val* var136 /* : nullable Bool */;
4112 static val* varonce137;
4113 val* var138 /* : String */;
4114 char* var139 /* : CString */;
4115 val* var140 /* : String */;
4116 val* var141 /* : nullable Int */;
4117 val* var142 /* : nullable Int */;
4118 val* var143 /* : nullable Bool */;
4119 val* var144 /* : nullable Bool */;
4120 static val* varonce145;
4121 val* var146 /* : String */;
4122 char* var147 /* : CString */;
4123 val* var148 /* : String */;
4124 val* var149 /* : nullable Int */;
4125 val* var150 /* : nullable Int */;
4126 val* var151 /* : nullable Bool */;
4127 val* var152 /* : nullable Bool */;
4128 static val* varonce153;
4129 val* var154 /* : String */;
4130 char* var155 /* : CString */;
4131 val* var156 /* : String */;
4132 val* var157 /* : nullable Int */;
4133 val* var158 /* : nullable Int */;
4134 val* var159 /* : nullable Bool */;
4135 val* var160 /* : nullable Bool */;
4136 static val* varonce161;
4137 val* var162 /* : String */;
4138 char* var163 /* : CString */;
4139 val* var164 /* : String */;
4140 val* var165 /* : nullable Int */;
4141 val* var166 /* : nullable Int */;
4142 val* var167 /* : nullable Bool */;
4143 val* var168 /* : nullable Bool */;
4144 val* var169 /* : String */;
4145 val* var170 /* : String */;
4146 val* var171 /* : String */;
4147 val* var172 /* : String */;
4148 val* var173 /* : String */;
4149 val* var174 /* : String */;
4150 val* var176 /* : NativeArray[String] */;
4151 static val* varonce175;
4152 static val* varonce177;
4153 val* var178 /* : String */;
4154 char* var179 /* : CString */;
4155 val* var180 /* : String */;
4156 val* var181 /* : nullable Int */;
4157 val* var182 /* : nullable Int */;
4158 val* var183 /* : nullable Bool */;
4159 val* var184 /* : nullable Bool */;
4160 static val* varonce185;
4161 val* var186 /* : String */;
4162 char* var187 /* : CString */;
4163 val* var188 /* : String */;
4164 val* var189 /* : nullable Int */;
4165 val* var190 /* : nullable Int */;
4166 val* var191 /* : nullable Bool */;
4167 val* var192 /* : nullable Bool */;
4168 static val* varonce193;
4169 val* var194 /* : String */;
4170 char* var195 /* : CString */;
4171 val* var196 /* : String */;
4172 val* var197 /* : nullable Int */;
4173 val* var198 /* : nullable Int */;
4174 val* var199 /* : nullable Bool */;
4175 val* var200 /* : nullable Bool */;
4176 val* var201 /* : String */;
4177 val* var202 /* : String */;
4178 val* var203 /* : String */;
4179 val* var204 /* : String */;
4180 var_a = p0;
4181 var_recv = p1;
4182 {
4183 nitc___nitc__AbstractCompilerVisitor___check_recv_notnull(self, var_recv); /* Direct call abstract_compiler$AbstractCompilerVisitor$check_recv_notnull on <self:SeparateCompilerVisitor>*/
4184 }
4185 {
4186 var1 = nitc___nitc__AbstractCompilerVisitor___bool_type(self);
4187 }
4188 {
4189 var2 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var1);
4190 }
4191 var_res = var2;
4192 {
4193 { /* Inline model$MProperty$intro (var_a) on <var_a:MAttribute> */
4194 var5 = var_a->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_a:MAttribute> */
4195 if (unlikely(var5 == NULL)) {
4196 if(catchStack.cursor >= 0){
4197 longjmp(catchStack.envs[catchStack.cursor], 1);
4198 }
4199 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4200 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
4201 fatal_exit(1);
4202 }
4203 var3 = var5;
4204 RET_LABEL4:(void)0;
4205 }
4206 }
4207 {
4208 { /* Inline model$MAttributeDef$static_mtype (var3) on <var3:MPropDef(MAttributeDef)> */
4209 var8 = var3->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var3:MPropDef(MAttributeDef)> */
4210 var6 = var8;
4211 RET_LABEL7:(void)0;
4212 }
4213 }
4214 if (unlikely(var6 == NULL)) {
4215 if(catchStack.cursor >= 0){
4216 longjmp(catchStack.envs[catchStack.cursor], 1);
4217 }
4218 PRINT_ERROR("Runtime error: %s", "Cast failed");
4219 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1612);
4220 fatal_exit(1);
4221 }
4222 var_mtype = var6;
4223 {
4224 { /* Inline model$MProperty$intro (var_a) on <var_a:MAttribute> */
4225 var11 = var_a->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_a:MAttribute> */
4226 if (unlikely(var11 == NULL)) {
4227 if(catchStack.cursor >= 0){
4228 longjmp(catchStack.envs[catchStack.cursor], 1);
4229 }
4230 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4231 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
4232 fatal_exit(1);
4233 }
4234 var9 = var11;
4235 RET_LABEL10:(void)0;
4236 }
4237 }
4238 {
4239 { /* Inline model$MPropDef$mclassdef (var9) on <var9:MPropDef(MAttributeDef)> */
4240 var14 = var9->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var9:MPropDef(MAttributeDef)> */
4241 if (unlikely(var14 == NULL)) {
4242 if(catchStack.cursor >= 0){
4243 longjmp(catchStack.envs[catchStack.cursor], 1);
4244 }
4245 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4246 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
4247 fatal_exit(1);
4248 }
4249 var12 = var14;
4250 RET_LABEL13:(void)0;
4251 }
4252 }
4253 var_intromclassdef = var12;
4254 {
4255 { /* Inline model$MClassDef$bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
4256 var17 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intromclassdef:MClassDef> */
4257 if (unlikely(var17 == NULL)) {
4258 if(catchStack.cursor >= 0){
4259 longjmp(catchStack.envs[catchStack.cursor], 1);
4260 }
4261 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4262 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
4263 fatal_exit(1);
4264 }
4265 var15 = var17;
4266 RET_LABEL16:(void)0;
4267 }
4268 }
4269 {
4270 { /* Inline model$MClassDef$bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
4271 var20 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intromclassdef:MClassDef> */
4272 if (unlikely(var20 == NULL)) {
4273 if(catchStack.cursor >= 0){
4274 longjmp(catchStack.envs[catchStack.cursor], 1);
4275 }
4276 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
4277 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
4278 fatal_exit(1);
4279 }
4280 var18 = var20;
4281 RET_LABEL19:(void)0;
4282 }
4283 }
4284 {
4285 { /* Inline model$MClassDef$mmodule (var_intromclassdef) on <var_intromclassdef:MClassDef> */
4286 var23 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_intromclassdef:MClassDef> */
4287 if (unlikely(var23 == NULL)) {
4288 if(catchStack.cursor >= 0){
4289 longjmp(catchStack.envs[catchStack.cursor], 1);
4290 }
4291 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4292 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
4293 fatal_exit(1);
4294 }
4295 var21 = var23;
4296 RET_LABEL22:(void)0;
4297 }
4298 }
4299 {
4300 var24 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_mtype, var15, var18, var21, 1); /* resolve_for on <var_mtype:MType>*/
4301 }
4302 var_mtype = var24;
4303 /* <var_mtype:MType> isa MNullableType */
4304 cltype = type_nitc__MNullableType.color;
4305 idtype = type_nitc__MNullableType.id;
4306 if(cltype >= var_mtype->type->table_size) {
4307 var25 = 0;
4308 } else {
4309 var25 = var_mtype->type->type_table[cltype] == idtype;
4310 }
4311 if (var25){
4312 if (unlikely(varonce==NULL)) {
4313 var26 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
4314 if (likely(varonce27!=NULL)) {
4315 var28 = varonce27;
4316 } else {
4317 var29 = " = 1; /* easy isset: ";
4318 var31 = (val*)(21l<<2|1);
4319 var32 = (val*)(21l<<2|1);
4320 var33 = (val*)((long)(0)<<2|3);
4321 var34 = (val*)((long)(0)<<2|3);
4322 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
4323 var28 = var30;
4324 varonce27 = var28;
4325 }
4326 ((struct instance_core__NativeArray*)var26)->values[1]=var28;
4327 if (likely(varonce35!=NULL)) {
4328 var36 = varonce35;
4329 } else {
4330 var37 = " on ";
4331 var39 = (val*)(4l<<2|1);
4332 var40 = (val*)(4l<<2|1);
4333 var41 = (val*)((long)(0)<<2|3);
4334 var42 = (val*)((long)(0)<<2|3);
4335 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
4336 var36 = var38;
4337 varonce35 = var36;
4338 }
4339 ((struct instance_core__NativeArray*)var26)->values[3]=var36;
4340 if (likely(varonce43!=NULL)) {
4341 var44 = varonce43;
4342 } else {
4343 var45 = " */";
4344 var47 = (val*)(3l<<2|1);
4345 var48 = (val*)(3l<<2|1);
4346 var49 = (val*)((long)(0)<<2|3);
4347 var50 = (val*)((long)(0)<<2|3);
4348 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
4349 var44 = var46;
4350 varonce43 = var44;
4351 }
4352 ((struct instance_core__NativeArray*)var26)->values[5]=var44;
4353 } else {
4354 var26 = varonce;
4355 varonce = NULL;
4356 }
4357 {
4358 var51 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
4359 }
4360 ((struct instance_core__NativeArray*)var26)->values[0]=var51;
4361 {
4362 var52 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
4363 }
4364 ((struct instance_core__NativeArray*)var26)->values[2]=var52;
4365 {
4366 var53 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
4367 }
4368 ((struct instance_core__NativeArray*)var26)->values[4]=var53;
4369 {
4370 var54 = ((val*(*)(val* self))(var26->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var26); /* native_to_s on <var26:NativeArray[String]>*/
4371 }
4372 varonce = var26;
4373 {
4374 nitc___nitc__AbstractCompilerVisitor___add(self, var54); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
4375 }
4376 var = var_res;
4377 goto RET_LABEL;
4378 } else {
4379 }
4380 {
4381 var55 = nitc__separate_compiler___MEntity___const_color(var_a);
4382 }
4383 {
4384 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var55); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
4385 }
4386 {
4387 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
4388 var58 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
4389 if (unlikely(var58 == NULL)) {
4390 if(catchStack.cursor >= 0){
4391 longjmp(catchStack.envs[catchStack.cursor], 1);
4392 }
4393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
4394 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
4395 fatal_exit(1);
4396 }
4397 var56 = var58;
4398 RET_LABEL57:(void)0;
4399 }
4400 }
4401 {
4402 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var56) on <var56:AbstractCompiler(SeparateCompiler)> */
4403 var61 = var56->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var56:AbstractCompiler(SeparateCompiler)> */
4404 if (unlikely(var61 == NULL)) {
4405 if(catchStack.cursor >= 0){
4406 longjmp(catchStack.envs[catchStack.cursor], 1);
4407 }
4408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4409 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
4410 fatal_exit(1);
4411 }
4412 var59 = var61;
4413 RET_LABEL60:(void)0;
4414 }
4415 }
4416 {
4417 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var59) on <var59:ModelBuilder> */
4418 var64 = var59->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var59:ModelBuilder> */
4419 if (unlikely(var64 == NULL)) {
4420 if(catchStack.cursor >= 0){
4421 longjmp(catchStack.envs[catchStack.cursor], 1);
4422 }
4423 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
4424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
4425 fatal_exit(1);
4426 }
4427 var62 = var64;
4428 RET_LABEL63:(void)0;
4429 }
4430 }
4431 {
4432 { /* Inline separate_compiler$ToolContext$opt_no_union_attribute (var62) on <var62:ToolContext> */
4433 var67 = var62->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on <var62:ToolContext> */
4434 if (unlikely(var67 == NULL)) {
4435 if(catchStack.cursor >= 0){
4436 longjmp(catchStack.envs[catchStack.cursor], 1);
4437 }
4438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
4439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 28);
4440 fatal_exit(1);
4441 }
4442 var65 = var67;
4443 RET_LABEL66:(void)0;
4444 }
4445 }
4446 {
4447 { /* Inline opts$Option$value (var65) on <var65:OptionBool> */
4448 var70 = var65->attrs[COLOR_opts__Option___value].val; /* _value on <var65:OptionBool> */
4449 var68 = var70;
4450 RET_LABEL69:(void)0;
4451 }
4452 }
4453 var71 = (short int)((long)(var68)>>2);
4454 if (var71){
4455 if (unlikely(varonce72==NULL)) {
4456 var73 = NEW_core__NativeArray((int)10l, &type_core__NativeArray__core__String);
4457 if (likely(varonce74!=NULL)) {
4458 var75 = varonce74;
4459 } else {
4460 var76 = " = ";
4461 var78 = (val*)(3l<<2|1);
4462 var79 = (val*)(3l<<2|1);
4463 var80 = (val*)((long)(0)<<2|3);
4464 var81 = (val*)((long)(0)<<2|3);
4465 var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81);
4466 var75 = var77;
4467 varonce74 = var75;
4468 }
4469 ((struct instance_core__NativeArray*)var73)->values[1]=var75;
4470 if (likely(varonce82!=NULL)) {
4471 var83 = varonce82;
4472 } else {
4473 var84 = "->attrs[";
4474 var86 = (val*)(8l<<2|1);
4475 var87 = (val*)(8l<<2|1);
4476 var88 = (val*)((long)(0)<<2|3);
4477 var89 = (val*)((long)(0)<<2|3);
4478 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
4479 var83 = var85;
4480 varonce82 = var83;
4481 }
4482 ((struct instance_core__NativeArray*)var73)->values[3]=var83;
4483 if (likely(varonce90!=NULL)) {
4484 var91 = varonce90;
4485 } else {
4486 var92 = "] != NULL; /* ";
4487 var94 = (val*)(14l<<2|1);
4488 var95 = (val*)(14l<<2|1);
4489 var96 = (val*)((long)(0)<<2|3);
4490 var97 = (val*)((long)(0)<<2|3);
4491 var93 = core__flat___CString___to_s_unsafe(var92, var94, var95, var96, var97);
4492 var91 = var93;
4493 varonce90 = var91;
4494 }
4495 ((struct instance_core__NativeArray*)var73)->values[5]=var91;
4496 if (likely(varonce98!=NULL)) {
4497 var99 = varonce98;
4498 } else {
4499 var100 = " on ";
4500 var102 = (val*)(4l<<2|1);
4501 var103 = (val*)(4l<<2|1);
4502 var104 = (val*)((long)(0)<<2|3);
4503 var105 = (val*)((long)(0)<<2|3);
4504 var101 = core__flat___CString___to_s_unsafe(var100, var102, var103, var104, var105);
4505 var99 = var101;
4506 varonce98 = var99;
4507 }
4508 ((struct instance_core__NativeArray*)var73)->values[7]=var99;
4509 if (likely(varonce106!=NULL)) {
4510 var107 = varonce106;
4511 } else {
4512 var108 = "*/";
4513 var110 = (val*)(2l<<2|1);
4514 var111 = (val*)(2l<<2|1);
4515 var112 = (val*)((long)(0)<<2|3);
4516 var113 = (val*)((long)(0)<<2|3);
4517 var109 = core__flat___CString___to_s_unsafe(var108, var110, var111, var112, var113);
4518 var107 = var109;
4519 varonce106 = var107;
4520 }
4521 ((struct instance_core__NativeArray*)var73)->values[9]=var107;
4522 } else {
4523 var73 = varonce72;
4524 varonce72 = NULL;
4525 }
4526 {
4527 var114 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
4528 }
4529 ((struct instance_core__NativeArray*)var73)->values[0]=var114;
4530 {
4531 var115 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
4532 }
4533 ((struct instance_core__NativeArray*)var73)->values[2]=var115;
4534 {
4535 var116 = nitc__separate_compiler___MEntity___const_color(var_a);
4536 }
4537 ((struct instance_core__NativeArray*)var73)->values[4]=var116;
4538 {
4539 var117 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
4540 }
4541 ((struct instance_core__NativeArray*)var73)->values[6]=var117;
4542 {
4543 var118 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
4544 }
4545 ((struct instance_core__NativeArray*)var73)->values[8]=var118;
4546 {
4547 var119 = ((val*(*)(val* self))(var73->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var73); /* native_to_s on <var73:NativeArray[String]>*/
4548 }
4549 varonce72 = var73;
4550 {
4551 nitc___nitc__AbstractCompilerVisitor___add(self, var119); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
4552 }
4553 } else {
4554 {
4555 var121 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var_mtype); /* is_c_primitive on <var_mtype:MType>*/
4556 }
4557 var122 = !var121;
4558 var_ = var122;
4559 if (var122){
4560 {
4561 { /* Inline separate_compiler$MType$is_tagged (var_mtype) on <var_mtype:MType> */
4562 var125 = var_mtype->attrs[COLOR_nitc__separate_compiler__MType___is_tagged].s; /* _is_tagged on <var_mtype:MType> */
4563 var123 = var125;
4564 RET_LABEL124:(void)0;
4565 }
4566 }
4567 var126 = !var123;
4568 var120 = var126;
4569 } else {
4570 var120 = var_;
4571 }
4572 if (var120){
4573 if (unlikely(varonce127==NULL)) {
4574 var128 = NEW_core__NativeArray((int)10l, &type_core__NativeArray__core__String);
4575 if (likely(varonce129!=NULL)) {
4576 var130 = varonce129;
4577 } else {
4578 var131 = " = ";
4579 var133 = (val*)(3l<<2|1);
4580 var134 = (val*)(3l<<2|1);
4581 var135 = (val*)((long)(0)<<2|3);
4582 var136 = (val*)((long)(0)<<2|3);
4583 var132 = core__flat___CString___to_s_unsafe(var131, var133, var134, var135, var136);
4584 var130 = var132;
4585 varonce129 = var130;
4586 }
4587 ((struct instance_core__NativeArray*)var128)->values[1]=var130;
4588 if (likely(varonce137!=NULL)) {
4589 var138 = varonce137;
4590 } else {
4591 var139 = "->attrs[";
4592 var141 = (val*)(8l<<2|1);
4593 var142 = (val*)(8l<<2|1);
4594 var143 = (val*)((long)(0)<<2|3);
4595 var144 = (val*)((long)(0)<<2|3);
4596 var140 = core__flat___CString___to_s_unsafe(var139, var141, var142, var143, var144);
4597 var138 = var140;
4598 varonce137 = var138;
4599 }
4600 ((struct instance_core__NativeArray*)var128)->values[3]=var138;
4601 if (likely(varonce145!=NULL)) {
4602 var146 = varonce145;
4603 } else {
4604 var147 = "].val != NULL; /* ";
4605 var149 = (val*)(18l<<2|1);
4606 var150 = (val*)(18l<<2|1);
4607 var151 = (val*)((long)(0)<<2|3);
4608 var152 = (val*)((long)(0)<<2|3);
4609 var148 = core__flat___CString___to_s_unsafe(var147, var149, var150, var151, var152);
4610 var146 = var148;
4611 varonce145 = var146;
4612 }
4613 ((struct instance_core__NativeArray*)var128)->values[5]=var146;
4614 if (likely(varonce153!=NULL)) {
4615 var154 = varonce153;
4616 } else {
4617 var155 = " on ";
4618 var157 = (val*)(4l<<2|1);
4619 var158 = (val*)(4l<<2|1);
4620 var159 = (val*)((long)(0)<<2|3);
4621 var160 = (val*)((long)(0)<<2|3);
4622 var156 = core__flat___CString___to_s_unsafe(var155, var157, var158, var159, var160);
4623 var154 = var156;
4624 varonce153 = var154;
4625 }
4626 ((struct instance_core__NativeArray*)var128)->values[7]=var154;
4627 if (likely(varonce161!=NULL)) {
4628 var162 = varonce161;
4629 } else {
4630 var163 = " */";
4631 var165 = (val*)(3l<<2|1);
4632 var166 = (val*)(3l<<2|1);
4633 var167 = (val*)((long)(0)<<2|3);
4634 var168 = (val*)((long)(0)<<2|3);
4635 var164 = core__flat___CString___to_s_unsafe(var163, var165, var166, var167, var168);
4636 var162 = var164;
4637 varonce161 = var162;
4638 }
4639 ((struct instance_core__NativeArray*)var128)->values[9]=var162;
4640 } else {
4641 var128 = varonce127;
4642 varonce127 = NULL;
4643 }
4644 {
4645 var169 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
4646 }
4647 ((struct instance_core__NativeArray*)var128)->values[0]=var169;
4648 {
4649 var170 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
4650 }
4651 ((struct instance_core__NativeArray*)var128)->values[2]=var170;
4652 {
4653 var171 = nitc__separate_compiler___MEntity___const_color(var_a);
4654 }
4655 ((struct instance_core__NativeArray*)var128)->values[4]=var171;
4656 {
4657 var172 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
4658 }
4659 ((struct instance_core__NativeArray*)var128)->values[6]=var172;
4660 {
4661 var173 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
4662 }
4663 ((struct instance_core__NativeArray*)var128)->values[8]=var173;
4664 {
4665 var174 = ((val*(*)(val* self))(var128->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var128); /* native_to_s on <var128:NativeArray[String]>*/
4666 }
4667 varonce127 = var128;
4668 {
4669 nitc___nitc__AbstractCompilerVisitor___add(self, var174); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
4670 }
4671 } else {
4672 if (unlikely(varonce175==NULL)) {
4673 var176 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
4674 if (likely(varonce177!=NULL)) {
4675 var178 = varonce177;
4676 } else {
4677 var179 = " = 1; /* NOT YET IMPLEMENTED: isset of primitives: ";
4678 var181 = (val*)(51l<<2|1);
4679 var182 = (val*)(51l<<2|1);
4680 var183 = (val*)((long)(0)<<2|3);
4681 var184 = (val*)((long)(0)<<2|3);
4682 var180 = core__flat___CString___to_s_unsafe(var179, var181, var182, var183, var184);
4683 var178 = var180;
4684 varonce177 = var178;
4685 }
4686 ((struct instance_core__NativeArray*)var176)->values[1]=var178;
4687 if (likely(varonce185!=NULL)) {
4688 var186 = varonce185;
4689 } else {
4690 var187 = " on ";
4691 var189 = (val*)(4l<<2|1);
4692 var190 = (val*)(4l<<2|1);
4693 var191 = (val*)((long)(0)<<2|3);
4694 var192 = (val*)((long)(0)<<2|3);
4695 var188 = core__flat___CString___to_s_unsafe(var187, var189, var190, var191, var192);
4696 var186 = var188;
4697 varonce185 = var186;
4698 }
4699 ((struct instance_core__NativeArray*)var176)->values[3]=var186;
4700 if (likely(varonce193!=NULL)) {
4701 var194 = varonce193;
4702 } else {
4703 var195 = " */";
4704 var197 = (val*)(3l<<2|1);
4705 var198 = (val*)(3l<<2|1);
4706 var199 = (val*)((long)(0)<<2|3);
4707 var200 = (val*)((long)(0)<<2|3);
4708 var196 = core__flat___CString___to_s_unsafe(var195, var197, var198, var199, var200);
4709 var194 = var196;
4710 varonce193 = var194;
4711 }
4712 ((struct instance_core__NativeArray*)var176)->values[5]=var194;
4713 } else {
4714 var176 = varonce175;
4715 varonce175 = NULL;
4716 }
4717 {
4718 var201 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
4719 }
4720 ((struct instance_core__NativeArray*)var176)->values[0]=var201;
4721 {
4722 var202 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
4723 }
4724 ((struct instance_core__NativeArray*)var176)->values[2]=var202;
4725 {
4726 var203 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
4727 }
4728 ((struct instance_core__NativeArray*)var176)->values[4]=var203;
4729 {
4730 var204 = ((val*(*)(val* self))(var176->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var176); /* native_to_s on <var176:NativeArray[String]>*/
4731 }
4732 varonce175 = var176;
4733 {
4734 nitc___nitc__AbstractCompilerVisitor___add(self, var204); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
4735 }
4736 }
4737 }
4738 var = var_res;
4739 goto RET_LABEL;
4740 RET_LABEL:;
4741 return var;
4742 }
4743 /* method separate_compiler$SeparateCompilerVisitor$read_attribute for (self: SeparateCompilerVisitor, MAttribute, RuntimeVariable): RuntimeVariable */
4744 val* nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__read_attribute(val* self, val* p0, val* p1) {
4745 val* var /* : RuntimeVariable */;
4746 val* var_a /* var a: MAttribute */;
4747 val* var_recv /* var recv: RuntimeVariable */;
4748 val* var1 /* : MPropDef */;
4749 val* var3 /* : MPropDef */;
4750 val* var4 /* : nullable MType */;
4751 val* var6 /* : nullable MType */;
4752 val* var_ret /* var ret: MType */;
4753 val* var7 /* : MPropDef */;
4754 val* var9 /* : MPropDef */;
4755 val* var10 /* : MClassDef */;
4756 val* var12 /* : MClassDef */;
4757 val* var_intromclassdef /* var intromclassdef: MClassDef */;
4758 val* var13 /* : MClassType */;
4759 val* var15 /* : MClassType */;
4760 val* var16 /* : MClassType */;
4761 val* var18 /* : MClassType */;
4762 val* var19 /* : MModule */;
4763 val* var21 /* : MModule */;
4764 val* var22 /* : MType */;
4765 val* var23 /* : AbstractCompiler */;
4766 val* var25 /* : AbstractCompiler */;
4767 val* var26 /* : ModelBuilder */;
4768 val* var28 /* : ModelBuilder */;
4769 val* var29 /* : ToolContext */;
4770 val* var31 /* : ToolContext */;
4771 val* var32 /* : OptionBool */;
4772 val* var34 /* : OptionBool */;
4773 val* var35 /* : nullable Object */;
4774 val* var37 /* : nullable Object */;
4775 short int var38 /* : Bool */;
4776 val* var39 /* : AbstractCompiler */;
4777 val* var41 /* : AbstractCompiler */;
4778 val* var_ /* var : SeparateCompiler */;
4779 long var42 /* : Int */;
4780 long var44 /* : Int */;
4781 long var45 /* : Int */;
4782 short int var47 /* : Bool */;
4783 int cltype;
4784 int idtype;
4785 const char* var_class_name;
4786 long var48 /* : Int */;
4787 static val* varonce;
4788 val* var50 /* : String */;
4789 char* var51 /* : CString */;
4790 val* var52 /* : String */;
4791 val* var53 /* : nullable Int */;
4792 val* var54 /* : nullable Int */;
4793 val* var55 /* : nullable Bool */;
4794 val* var56 /* : nullable Bool */;
4795 val* var57 /* : String */;
4796 val* var58 /* : AbstractCompiler */;
4797 val* var60 /* : AbstractCompiler */;
4798 val* var61 /* : ModelBuilder */;
4799 val* var63 /* : ModelBuilder */;
4800 val* var64 /* : ToolContext */;
4801 val* var66 /* : ToolContext */;
4802 val* var67 /* : OptionBool */;
4803 val* var69 /* : OptionBool */;
4804 val* var70 /* : nullable Object */;
4805 val* var72 /* : nullable Object */;
4806 short int var73 /* : Bool */;
4807 val* var74 /* : MClassType */;
4808 val* var75 /* : MType */;
4809 val* var_cret /* var cret: MType */;
4810 val* var76 /* : RuntimeVariable */;
4811 val* var_res /* var res: RuntimeVariable */;
4812 val* var79 /* : NativeArray[String] */;
4813 static val* varonce78;
4814 static val* varonce80;
4815 val* var81 /* : String */;
4816 char* var82 /* : CString */;
4817 val* var83 /* : String */;
4818 val* var84 /* : nullable Int */;
4819 val* var85 /* : nullable Int */;
4820 val* var86 /* : nullable Bool */;
4821 val* var87 /* : nullable Bool */;
4822 static val* varonce88;
4823 val* var89 /* : String */;
4824 char* var90 /* : CString */;
4825 val* var91 /* : String */;
4826 val* var92 /* : nullable Int */;
4827 val* var93 /* : nullable Int */;
4828 val* var94 /* : nullable Bool */;
4829 val* var95 /* : nullable Bool */;
4830 static val* varonce96;
4831 val* var97 /* : String */;
4832 char* var98 /* : CString */;
4833 val* var99 /* : String */;
4834 val* var100 /* : nullable Int */;
4835 val* var101 /* : nullable Int */;
4836 val* var102 /* : nullable Bool */;
4837 val* var103 /* : nullable Bool */;
4838 static val* varonce104;
4839 val* var105 /* : String */;
4840 char* var106 /* : CString */;
4841 val* var107 /* : String */;
4842 val* var108 /* : nullable Int */;
4843 val* var109 /* : nullable Int */;
4844 val* var110 /* : nullable Bool */;
4845 val* var111 /* : nullable Bool */;
4846 static val* varonce112;
4847 val* var113 /* : String */;
4848 char* var114 /* : CString */;
4849 val* var115 /* : String */;
4850 val* var116 /* : nullable Int */;
4851 val* var117 /* : nullable Int */;
4852 val* var118 /* : nullable Bool */;
4853 val* var119 /* : nullable Bool */;
4854 val* var120 /* : String */;
4855 val* var121 /* : String */;
4856 val* var122 /* : String */;
4857 val* var123 /* : String */;
4858 val* var124 /* : String */;
4859 val* var125 /* : String */;
4860 short int var126 /* : Bool */;
4861 short int var127 /* : Bool */;
4862 int cltype128;
4863 int idtype129;
4864 short int var130 /* : Bool */;
4865 short int var_131 /* var : Bool */;
4866 val* var132 /* : AbstractCompiler */;
4867 val* var134 /* : AbstractCompiler */;
4868 val* var135 /* : ModelBuilder */;
4869 val* var137 /* : ModelBuilder */;
4870 val* var138 /* : ToolContext */;
4871 val* var140 /* : ToolContext */;
4872 val* var141 /* : OptionBool */;
4873 val* var143 /* : OptionBool */;
4874 val* var144 /* : nullable Object */;
4875 val* var146 /* : nullable Object */;
4876 short int var147 /* : Bool */;
4877 short int var148 /* : Bool */;
4878 val* var150 /* : NativeArray[String] */;
4879 static val* varonce149;
4880 static val* varonce151;
4881 val* var152 /* : String */;
4882 char* var153 /* : CString */;
4883 val* var154 /* : String */;
4884 val* var155 /* : nullable Int */;
4885 val* var156 /* : nullable Int */;
4886 val* var157 /* : nullable Bool */;
4887 val* var158 /* : nullable Bool */;
4888 static val* varonce159;
4889 val* var160 /* : String */;
4890 char* var161 /* : CString */;
4891 val* var162 /* : String */;
4892 val* var163 /* : nullable Int */;
4893 val* var164 /* : nullable Int */;
4894 val* var165 /* : nullable Bool */;
4895 val* var166 /* : nullable Bool */;
4896 val* var167 /* : String */;
4897 val* var168 /* : String */;
4898 val* var170 /* : NativeArray[String] */;
4899 static val* varonce169;
4900 static val* varonce171;
4901 val* var172 /* : String */;
4902 char* var173 /* : CString */;
4903 val* var174 /* : String */;
4904 val* var175 /* : nullable Int */;
4905 val* var176 /* : nullable Int */;
4906 val* var177 /* : nullable Bool */;
4907 val* var178 /* : nullable Bool */;
4908 val* var179 /* : String */;
4909 val* var181 /* : String */;
4910 val* var182 /* : String */;
4911 static val* varonce183;
4912 val* var184 /* : String */;
4913 char* var185 /* : CString */;
4914 val* var186 /* : String */;
4915 val* var187 /* : nullable Int */;
4916 val* var188 /* : nullable Int */;
4917 val* var189 /* : nullable Bool */;
4918 val* var190 /* : nullable Bool */;
4919 val* var191 /* : AbstractCompiler */;
4920 val* var193 /* : AbstractCompiler */;
4921 val* var194 /* : ModelBuilder */;
4922 val* var196 /* : ModelBuilder */;
4923 val* var197 /* : ToolContext */;
4924 val* var199 /* : ToolContext */;
4925 val* var200 /* : OptionBool */;
4926 val* var202 /* : OptionBool */;
4927 val* var203 /* : nullable Object */;
4928 val* var205 /* : nullable Object */;
4929 short int var206 /* : Bool */;
4930 val* var207 /* : AbstractCompiler */;
4931 val* var209 /* : AbstractCompiler */;
4932 val* var_210 /* var : SeparateCompiler */;
4933 long var211 /* : Int */;
4934 long var213 /* : Int */;
4935 long var214 /* : Int */;
4936 short int var216 /* : Bool */;
4937 int cltype217;
4938 int idtype218;
4939 const char* var_class_name219;
4940 long var220 /* : Int */;
4941 static val* varonce222;
4942 val* var223 /* : String */;
4943 char* var224 /* : CString */;
4944 val* var225 /* : String */;
4945 val* var226 /* : nullable Int */;
4946 val* var227 /* : nullable Int */;
4947 val* var228 /* : nullable Bool */;
4948 val* var229 /* : nullable Bool */;
4949 val* var230 /* : RuntimeVariable */;
4950 val* var231 /* : RuntimeVariable */;
4951 val* var_res232 /* var res: RuntimeVariable */;
4952 val* var234 /* : NativeArray[String] */;
4953 static val* varonce233;
4954 static val* varonce235;
4955 val* var236 /* : String */;
4956 char* var237 /* : CString */;
4957 val* var238 /* : String */;
4958 val* var239 /* : nullable Int */;
4959 val* var240 /* : nullable Int */;
4960 val* var241 /* : nullable Bool */;
4961 val* var242 /* : nullable Bool */;
4962 static val* varonce243;
4963 val* var244 /* : String */;
4964 char* var245 /* : CString */;
4965 val* var246 /* : String */;
4966 val* var247 /* : nullable Int */;
4967 val* var248 /* : nullable Int */;
4968 val* var249 /* : nullable Bool */;
4969 val* var250 /* : nullable Bool */;
4970 static val* varonce251;
4971 val* var252 /* : String */;
4972 char* var253 /* : CString */;
4973 val* var254 /* : String */;
4974 val* var255 /* : nullable Int */;
4975 val* var256 /* : nullable Int */;
4976 val* var257 /* : nullable Bool */;
4977 val* var258 /* : nullable Bool */;
4978 static val* varonce259;
4979 val* var260 /* : String */;
4980 char* var261 /* : CString */;
4981 val* var262 /* : String */;
4982 val* var263 /* : nullable Int */;
4983 val* var264 /* : nullable Int */;
4984 val* var265 /* : nullable Bool */;
4985 val* var266 /* : nullable Bool */;
4986 static val* varonce267;
4987 val* var268 /* : String */;
4988 char* var269 /* : CString */;
4989 val* var270 /* : String */;
4990 val* var271 /* : nullable Int */;
4991 val* var272 /* : nullable Int */;
4992 val* var273 /* : nullable Bool */;
4993 val* var274 /* : nullable Bool */;
4994 static val* varonce275;
4995 val* var276 /* : String */;
4996 char* var277 /* : CString */;
4997 val* var278 /* : String */;
4998 val* var279 /* : nullable Int */;
4999 val* var280 /* : nullable Int */;
5000 val* var281 /* : nullable Bool */;
5001 val* var282 /* : nullable Bool */;
5002 val* var283 /* : String */;
5003 val* var284 /* : String */;
5004 val* var285 /* : String */;
5005 val* var286 /* : String */;
5006 val* var287 /* : String */;
5007 val* var288 /* : String */;
5008 val* var289 /* : String */;
5009 short int var290 /* : Bool */;
5010 short int var291 /* : Bool */;
5011 short int var292 /* : Bool */;
5012 short int var293 /* : Bool */;
5013 short int var_294 /* var : Bool */;
5014 short int var295 /* : Bool */;
5015 int cltype296;
5016 int idtype297;
5017 short int var298 /* : Bool */;
5018 short int var_299 /* var : Bool */;
5019 val* var300 /* : AbstractCompiler */;
5020 val* var302 /* : AbstractCompiler */;
5021 val* var303 /* : ModelBuilder */;
5022 val* var305 /* : ModelBuilder */;
5023 val* var306 /* : ToolContext */;
5024 val* var308 /* : ToolContext */;
5025 val* var309 /* : OptionBool */;
5026 val* var311 /* : OptionBool */;
5027 val* var312 /* : nullable Object */;
5028 val* var314 /* : nullable Object */;
5029 short int var315 /* : Bool */;
5030 short int var316 /* : Bool */;
5031 val* var318 /* : NativeArray[String] */;
5032 static val* varonce317;
5033 static val* varonce319;
5034 val* var320 /* : String */;
5035 char* var321 /* : CString */;
5036 val* var322 /* : String */;
5037 val* var323 /* : nullable Int */;
5038 val* var324 /* : nullable Int */;
5039 val* var325 /* : nullable Bool */;
5040 val* var326 /* : nullable Bool */;
5041 static val* varonce327;
5042 val* var328 /* : String */;
5043 char* var329 /* : CString */;
5044 val* var330 /* : String */;
5045 val* var331 /* : nullable Int */;
5046 val* var332 /* : nullable Int */;
5047 val* var333 /* : nullable Bool */;
5048 val* var334 /* : nullable Bool */;
5049 val* var335 /* : String */;
5050 val* var336 /* : String */;
5051 val* var338 /* : NativeArray[String] */;
5052 static val* varonce337;
5053 static val* varonce339;
5054 val* var340 /* : String */;
5055 char* var341 /* : CString */;
5056 val* var342 /* : String */;
5057 val* var343 /* : nullable Int */;
5058 val* var344 /* : nullable Int */;
5059 val* var345 /* : nullable Bool */;
5060 val* var346 /* : nullable Bool */;
5061 val* var347 /* : String */;
5062 val* var349 /* : String */;
5063 val* var350 /* : String */;
5064 static val* varonce351;
5065 val* var352 /* : String */;
5066 char* var353 /* : CString */;
5067 val* var354 /* : String */;
5068 val* var355 /* : nullable Int */;
5069 val* var356 /* : nullable Int */;
5070 val* var357 /* : nullable Bool */;
5071 val* var358 /* : nullable Bool */;
5072 val* var359 /* : AbstractCompiler */;
5073 val* var361 /* : AbstractCompiler */;
5074 val* var362 /* : ModelBuilder */;
5075 val* var364 /* : ModelBuilder */;
5076 val* var365 /* : ToolContext */;
5077 val* var367 /* : ToolContext */;
5078 val* var368 /* : OptionBool */;
5079 val* var370 /* : OptionBool */;
5080 val* var371 /* : nullable Object */;
5081 val* var373 /* : nullable Object */;
5082 short int var374 /* : Bool */;
5083 val* var375 /* : AbstractCompiler */;
5084 val* var377 /* : AbstractCompiler */;
5085 val* var_378 /* var : SeparateCompiler */;
5086 long var379 /* : Int */;
5087 long var381 /* : Int */;
5088 long var382 /* : Int */;
5089 short int var384 /* : Bool */;
5090 int cltype385;
5091 int idtype386;
5092 const char* var_class_name387;
5093 long var388 /* : Int */;
5094 static val* varonce390;
5095 val* var391 /* : String */;
5096 char* var392 /* : CString */;
5097 val* var393 /* : String */;
5098 val* var394 /* : nullable Int */;
5099 val* var395 /* : nullable Int */;
5100 val* var396 /* : nullable Bool */;
5101 val* var397 /* : nullable Bool */;
5102 var_a = p0;
5103 var_recv = p1;
5104 {
5105 nitc___nitc__AbstractCompilerVisitor___check_recv_notnull(self, var_recv); /* Direct call abstract_compiler$AbstractCompilerVisitor$check_recv_notnull on <self:SeparateCompilerVisitor>*/
5106 }
5107 {
5108 { /* Inline model$MProperty$intro (var_a) on <var_a:MAttribute> */
5109 var3 = var_a->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_a:MAttribute> */
5110 if (unlikely(var3 == NULL)) {
5111 if(catchStack.cursor >= 0){
5112 longjmp(catchStack.envs[catchStack.cursor], 1);
5113 }
5114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
5115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
5116 fatal_exit(1);
5117 }
5118 var1 = var3;
5119 RET_LABEL2:(void)0;
5120 }
5121 }
5122 {
5123 { /* Inline model$MAttributeDef$static_mtype (var1) on <var1:MPropDef(MAttributeDef)> */
5124 var6 = var1->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var1:MPropDef(MAttributeDef)> */
5125 var4 = var6;
5126 RET_LABEL5:(void)0;
5127 }
5128 }
5129 if (unlikely(var4 == NULL)) {
5130 if(catchStack.cursor >= 0){
5131 longjmp(catchStack.envs[catchStack.cursor], 1);
5132 }
5133 PRINT_ERROR("Runtime error: %s", "Cast failed");
5134 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1640);
5135 fatal_exit(1);
5136 }
5137 var_ret = var4;
5138 {
5139 { /* Inline model$MProperty$intro (var_a) on <var_a:MAttribute> */
5140 var9 = var_a->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_a:MAttribute> */
5141 if (unlikely(var9 == NULL)) {
5142 if(catchStack.cursor >= 0){
5143 longjmp(catchStack.envs[catchStack.cursor], 1);
5144 }
5145 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
5146 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
5147 fatal_exit(1);
5148 }
5149 var7 = var9;
5150 RET_LABEL8:(void)0;
5151 }
5152 }
5153 {
5154 { /* Inline model$MPropDef$mclassdef (var7) on <var7:MPropDef(MAttributeDef)> */
5155 var12 = var7->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var7:MPropDef(MAttributeDef)> */
5156 if (unlikely(var12 == NULL)) {
5157 if(catchStack.cursor >= 0){
5158 longjmp(catchStack.envs[catchStack.cursor], 1);
5159 }
5160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
5162 fatal_exit(1);
5163 }
5164 var10 = var12;
5165 RET_LABEL11:(void)0;
5166 }
5167 }
5168 var_intromclassdef = var10;
5169 {
5170 { /* Inline model$MClassDef$bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
5171 var15 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intromclassdef:MClassDef> */
5172 if (unlikely(var15 == NULL)) {
5173 if(catchStack.cursor >= 0){
5174 longjmp(catchStack.envs[catchStack.cursor], 1);
5175 }
5176 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5177 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
5178 fatal_exit(1);
5179 }
5180 var13 = var15;
5181 RET_LABEL14:(void)0;
5182 }
5183 }
5184 {
5185 { /* Inline model$MClassDef$bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
5186 var18 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intromclassdef:MClassDef> */
5187 if (unlikely(var18 == NULL)) {
5188 if(catchStack.cursor >= 0){
5189 longjmp(catchStack.envs[catchStack.cursor], 1);
5190 }
5191 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5192 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
5193 fatal_exit(1);
5194 }
5195 var16 = var18;
5196 RET_LABEL17:(void)0;
5197 }
5198 }
5199 {
5200 { /* Inline model$MClassDef$mmodule (var_intromclassdef) on <var_intromclassdef:MClassDef> */
5201 var21 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_intromclassdef:MClassDef> */
5202 if (unlikely(var21 == NULL)) {
5203 if(catchStack.cursor >= 0){
5204 longjmp(catchStack.envs[catchStack.cursor], 1);
5205 }
5206 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
5207 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
5208 fatal_exit(1);
5209 }
5210 var19 = var21;
5211 RET_LABEL20:(void)0;
5212 }
5213 }
5214 {
5215 var22 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_ret->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_ret, var13, var16, var19, 1); /* resolve_for on <var_ret:MType>*/
5216 }
5217 var_ret = var22;
5218 {
5219 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
5220 var25 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
5221 if (unlikely(var25 == NULL)) {
5222 if(catchStack.cursor >= 0){
5223 longjmp(catchStack.envs[catchStack.cursor], 1);
5224 }
5225 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5226 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5227 fatal_exit(1);
5228 }
5229 var23 = var25;
5230 RET_LABEL24:(void)0;
5231 }
5232 }
5233 {
5234 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var23) on <var23:AbstractCompiler(SeparateCompiler)> */
5235 var28 = var23->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var23:AbstractCompiler(SeparateCompiler)> */
5236 if (unlikely(var28 == NULL)) {
5237 if(catchStack.cursor >= 0){
5238 longjmp(catchStack.envs[catchStack.cursor], 1);
5239 }
5240 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5241 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
5242 fatal_exit(1);
5243 }
5244 var26 = var28;
5245 RET_LABEL27:(void)0;
5246 }
5247 }
5248 {
5249 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var26) on <var26:ModelBuilder> */
5250 var31 = var26->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var26:ModelBuilder> */
5251 if (unlikely(var31 == NULL)) {
5252 if(catchStack.cursor >= 0){
5253 longjmp(catchStack.envs[catchStack.cursor], 1);
5254 }
5255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5256 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
5257 fatal_exit(1);
5258 }
5259 var29 = var31;
5260 RET_LABEL30:(void)0;
5261 }
5262 }
5263 {
5264 { /* Inline abstract_compiler$ToolContext$opt_isset_checks_metrics (var29) on <var29:ToolContext> */
5265 var34 = var29->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on <var29:ToolContext> */
5266 if (unlikely(var34 == NULL)) {
5267 if(catchStack.cursor >= 0){
5268 longjmp(catchStack.envs[catchStack.cursor], 1);
5269 }
5270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
5271 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 64);
5272 fatal_exit(1);
5273 }
5274 var32 = var34;
5275 RET_LABEL33:(void)0;
5276 }
5277 }
5278 {
5279 { /* Inline opts$Option$value (var32) on <var32:OptionBool> */
5280 var37 = var32->attrs[COLOR_opts__Option___value].val; /* _value on <var32:OptionBool> */
5281 var35 = var37;
5282 RET_LABEL36:(void)0;
5283 }
5284 }
5285 var38 = (short int)((long)(var35)>>2);
5286 if (var38){
5287 {
5288 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
5289 var41 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
5290 if (unlikely(var41 == NULL)) {
5291 if(catchStack.cursor >= 0){
5292 longjmp(catchStack.envs[catchStack.cursor], 1);
5293 }
5294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5295 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5296 fatal_exit(1);
5297 }
5298 var39 = var41;
5299 RET_LABEL40:(void)0;
5300 }
5301 }
5302 var_ = var39;
5303 {
5304 { /* Inline separate_compiler$SeparateCompiler$attr_read_count (var_) on <var_:SeparateCompiler> */
5305 var44 = var_->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_read_count].l; /* _attr_read_count on <var_:SeparateCompiler> */
5306 var42 = var44;
5307 RET_LABEL43:(void)0;
5308 }
5309 }
5310 {
5311 { /* Inline kernel$Int$+ (var42,1l) on <var42:Int> */
5312 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5313 /* <1l:Int> isa OTHER */
5314 var47 = 1; /* easy <1l:Int> isa OTHER*/
5315 if (unlikely(!var47)) {
5316 var_class_name = type_core__Int.name;
5317 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5318 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5319 fatal_exit(1);
5320 }
5321 var48 = var42 + 1l;
5322 var45 = var48;
5323 goto RET_LABEL46;
5324 RET_LABEL46:(void)0;
5325 }
5326 }
5327 {
5328 { /* Inline separate_compiler$SeparateCompiler$attr_read_count= (var_,var45) on <var_:SeparateCompiler> */
5329 var_->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_read_count].l = var45; /* _attr_read_count on <var_:SeparateCompiler> */
5330 RET_LABEL49:(void)0;
5331 }
5332 }
5333 if (likely(varonce!=NULL)) {
5334 var50 = varonce;
5335 } else {
5336 var51 = "count_attr_reads++;";
5337 var53 = (val*)(19l<<2|1);
5338 var54 = (val*)(19l<<2|1);
5339 var55 = (val*)((long)(0)<<2|3);
5340 var56 = (val*)((long)(0)<<2|3);
5341 var52 = core__flat___CString___to_s_unsafe(var51, var53, var54, var55, var56);
5342 var50 = var52;
5343 varonce = var50;
5344 }
5345 {
5346 nitc___nitc__AbstractCompilerVisitor___add(self, var50); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
5347 }
5348 } else {
5349 }
5350 {
5351 var57 = nitc__separate_compiler___MEntity___const_color(var_a);
5352 }
5353 {
5354 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var57); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
5355 }
5356 {
5357 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
5358 var60 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
5359 if (unlikely(var60 == NULL)) {
5360 if(catchStack.cursor >= 0){
5361 longjmp(catchStack.envs[catchStack.cursor], 1);
5362 }
5363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5364 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5365 fatal_exit(1);
5366 }
5367 var58 = var60;
5368 RET_LABEL59:(void)0;
5369 }
5370 }
5371 {
5372 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var58) on <var58:AbstractCompiler(SeparateCompiler)> */
5373 var63 = var58->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var58:AbstractCompiler(SeparateCompiler)> */
5374 if (unlikely(var63 == NULL)) {
5375 if(catchStack.cursor >= 0){
5376 longjmp(catchStack.envs[catchStack.cursor], 1);
5377 }
5378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
5380 fatal_exit(1);
5381 }
5382 var61 = var63;
5383 RET_LABEL62:(void)0;
5384 }
5385 }
5386 {
5387 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var61) on <var61:ModelBuilder> */
5388 var66 = var61->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var61:ModelBuilder> */
5389 if (unlikely(var66 == NULL)) {
5390 if(catchStack.cursor >= 0){
5391 longjmp(catchStack.envs[catchStack.cursor], 1);
5392 }
5393 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5394 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
5395 fatal_exit(1);
5396 }
5397 var64 = var66;
5398 RET_LABEL65:(void)0;
5399 }
5400 }
5401 {
5402 { /* Inline separate_compiler$ToolContext$opt_no_union_attribute (var64) on <var64:ToolContext> */
5403 var69 = var64->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on <var64:ToolContext> */
5404 if (unlikely(var69 == NULL)) {
5405 if(catchStack.cursor >= 0){
5406 longjmp(catchStack.envs[catchStack.cursor], 1);
5407 }
5408 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
5409 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 28);
5410 fatal_exit(1);
5411 }
5412 var67 = var69;
5413 RET_LABEL68:(void)0;
5414 }
5415 }
5416 {
5417 { /* Inline opts$Option$value (var67) on <var67:OptionBool> */
5418 var72 = var67->attrs[COLOR_opts__Option___value].val; /* _value on <var67:OptionBool> */
5419 var70 = var72;
5420 RET_LABEL71:(void)0;
5421 }
5422 }
5423 var73 = (short int)((long)(var70)>>2);
5424 if (var73){
5425 {
5426 var74 = nitc___nitc__AbstractCompilerVisitor___object_type(self);
5427 }
5428 {
5429 var75 = nitc___nitc__MType___as_nullable(var74);
5430 }
5431 var_cret = var75;
5432 {
5433 var76 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_cret);
5434 }
5435 var_res = var76;
5436 {
5437 { /* Inline abstract_compiler$RuntimeVariable$mcasttype= (var_res,var_ret) on <var_res:RuntimeVariable> */
5438 var_res->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val = var_ret; /* _mcasttype on <var_res:RuntimeVariable> */
5439 RET_LABEL77:(void)0;
5440 }
5441 }
5442 if (unlikely(varonce78==NULL)) {
5443 var79 = NEW_core__NativeArray((int)10l, &type_core__NativeArray__core__String);
5444 if (likely(varonce80!=NULL)) {
5445 var81 = varonce80;
5446 } else {
5447 var82 = " = ";
5448 var84 = (val*)(3l<<2|1);
5449 var85 = (val*)(3l<<2|1);
5450 var86 = (val*)((long)(0)<<2|3);
5451 var87 = (val*)((long)(0)<<2|3);
5452 var83 = core__flat___CString___to_s_unsafe(var82, var84, var85, var86, var87);
5453 var81 = var83;
5454 varonce80 = var81;
5455 }
5456 ((struct instance_core__NativeArray*)var79)->values[1]=var81;
5457 if (likely(varonce88!=NULL)) {
5458 var89 = varonce88;
5459 } else {
5460 var90 = "->attrs[";
5461 var92 = (val*)(8l<<2|1);
5462 var93 = (val*)(8l<<2|1);
5463 var94 = (val*)((long)(0)<<2|3);
5464 var95 = (val*)((long)(0)<<2|3);
5465 var91 = core__flat___CString___to_s_unsafe(var90, var92, var93, var94, var95);
5466 var89 = var91;
5467 varonce88 = var89;
5468 }
5469 ((struct instance_core__NativeArray*)var79)->values[3]=var89;
5470 if (likely(varonce96!=NULL)) {
5471 var97 = varonce96;
5472 } else {
5473 var98 = "]; /* ";
5474 var100 = (val*)(6l<<2|1);
5475 var101 = (val*)(6l<<2|1);
5476 var102 = (val*)((long)(0)<<2|3);
5477 var103 = (val*)((long)(0)<<2|3);
5478 var99 = core__flat___CString___to_s_unsafe(var98, var100, var101, var102, var103);
5479 var97 = var99;
5480 varonce96 = var97;
5481 }
5482 ((struct instance_core__NativeArray*)var79)->values[5]=var97;
5483 if (likely(varonce104!=NULL)) {
5484 var105 = varonce104;
5485 } else {
5486 var106 = " on ";
5487 var108 = (val*)(4l<<2|1);
5488 var109 = (val*)(4l<<2|1);
5489 var110 = (val*)((long)(0)<<2|3);
5490 var111 = (val*)((long)(0)<<2|3);
5491 var107 = core__flat___CString___to_s_unsafe(var106, var108, var109, var110, var111);
5492 var105 = var107;
5493 varonce104 = var105;
5494 }
5495 ((struct instance_core__NativeArray*)var79)->values[7]=var105;
5496 if (likely(varonce112!=NULL)) {
5497 var113 = varonce112;
5498 } else {
5499 var114 = " */";
5500 var116 = (val*)(3l<<2|1);
5501 var117 = (val*)(3l<<2|1);
5502 var118 = (val*)((long)(0)<<2|3);
5503 var119 = (val*)((long)(0)<<2|3);
5504 var115 = core__flat___CString___to_s_unsafe(var114, var116, var117, var118, var119);
5505 var113 = var115;
5506 varonce112 = var113;
5507 }
5508 ((struct instance_core__NativeArray*)var79)->values[9]=var113;
5509 } else {
5510 var79 = varonce78;
5511 varonce78 = NULL;
5512 }
5513 {
5514 var120 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5515 }
5516 ((struct instance_core__NativeArray*)var79)->values[0]=var120;
5517 {
5518 var121 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
5519 }
5520 ((struct instance_core__NativeArray*)var79)->values[2]=var121;
5521 {
5522 var122 = nitc__separate_compiler___MEntity___const_color(var_a);
5523 }
5524 ((struct instance_core__NativeArray*)var79)->values[4]=var122;
5525 {
5526 var123 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
5527 }
5528 ((struct instance_core__NativeArray*)var79)->values[6]=var123;
5529 {
5530 var124 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
5531 }
5532 ((struct instance_core__NativeArray*)var79)->values[8]=var124;
5533 {
5534 var125 = ((val*(*)(val* self))(var79->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var79); /* native_to_s on <var79:NativeArray[String]>*/
5535 }
5536 varonce78 = var79;
5537 {
5538 nitc___nitc__AbstractCompilerVisitor___add(self, var125); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
5539 }
5540 /* <var_ret:MType> isa MNullableType */
5541 cltype128 = type_nitc__MNullableType.color;
5542 idtype129 = type_nitc__MNullableType.id;
5543 if(cltype128 >= var_ret->type->table_size) {
5544 var127 = 0;
5545 } else {
5546 var127 = var_ret->type->type_table[cltype128] == idtype129;
5547 }
5548 var130 = !var127;
5549 var_131 = var130;
5550 if (var130){
5551 {
5552 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
5553 var134 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
5554 if (unlikely(var134 == NULL)) {
5555 if(catchStack.cursor >= 0){
5556 longjmp(catchStack.envs[catchStack.cursor], 1);
5557 }
5558 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5559 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5560 fatal_exit(1);
5561 }
5562 var132 = var134;
5563 RET_LABEL133:(void)0;
5564 }
5565 }
5566 {
5567 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var132) on <var132:AbstractCompiler(SeparateCompiler)> */
5568 var137 = var132->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var132:AbstractCompiler(SeparateCompiler)> */
5569 if (unlikely(var137 == NULL)) {
5570 if(catchStack.cursor >= 0){
5571 longjmp(catchStack.envs[catchStack.cursor], 1);
5572 }
5573 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5574 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
5575 fatal_exit(1);
5576 }
5577 var135 = var137;
5578 RET_LABEL136:(void)0;
5579 }
5580 }
5581 {
5582 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var135) on <var135:ModelBuilder> */
5583 var140 = var135->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var135:ModelBuilder> */
5584 if (unlikely(var140 == NULL)) {
5585 if(catchStack.cursor >= 0){
5586 longjmp(catchStack.envs[catchStack.cursor], 1);
5587 }
5588 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5589 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
5590 fatal_exit(1);
5591 }
5592 var138 = var140;
5593 RET_LABEL139:(void)0;
5594 }
5595 }
5596 {
5597 { /* Inline abstract_compiler$ToolContext$opt_no_check_attr_isset (var138) on <var138:ToolContext> */
5598 var143 = var138->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_attr_isset].val; /* _opt_no_check_attr_isset on <var138:ToolContext> */
5599 if (unlikely(var143 == NULL)) {
5600 if(catchStack.cursor >= 0){
5601 longjmp(catchStack.envs[catchStack.cursor], 1);
5602 }
5603 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
5604 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 50);
5605 fatal_exit(1);
5606 }
5607 var141 = var143;
5608 RET_LABEL142:(void)0;
5609 }
5610 }
5611 {
5612 { /* Inline opts$Option$value (var141) on <var141:OptionBool> */
5613 var146 = var141->attrs[COLOR_opts__Option___value].val; /* _value on <var141:OptionBool> */
5614 var144 = var146;
5615 RET_LABEL145:(void)0;
5616 }
5617 }
5618 var147 = (short int)((long)(var144)>>2);
5619 var148 = !var147;
5620 var126 = var148;
5621 } else {
5622 var126 = var_131;
5623 }
5624 if (var126){
5625 if (unlikely(varonce149==NULL)) {
5626 var150 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5627 if (likely(varonce151!=NULL)) {
5628 var152 = varonce151;
5629 } else {
5630 var153 = "if (unlikely(";
5631 var155 = (val*)(13l<<2|1);
5632 var156 = (val*)(13l<<2|1);
5633 var157 = (val*)((long)(0)<<2|3);
5634 var158 = (val*)((long)(0)<<2|3);
5635 var154 = core__flat___CString___to_s_unsafe(var153, var155, var156, var157, var158);
5636 var152 = var154;
5637 varonce151 = var152;
5638 }
5639 ((struct instance_core__NativeArray*)var150)->values[0]=var152;
5640 if (likely(varonce159!=NULL)) {
5641 var160 = varonce159;
5642 } else {
5643 var161 = " == NULL)) {";
5644 var163 = (val*)(12l<<2|1);
5645 var164 = (val*)(12l<<2|1);
5646 var165 = (val*)((long)(0)<<2|3);
5647 var166 = (val*)((long)(0)<<2|3);
5648 var162 = core__flat___CString___to_s_unsafe(var161, var163, var164, var165, var166);
5649 var160 = var162;
5650 varonce159 = var160;
5651 }
5652 ((struct instance_core__NativeArray*)var150)->values[2]=var160;
5653 } else {
5654 var150 = varonce149;
5655 varonce149 = NULL;
5656 }
5657 {
5658 var167 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5659 }
5660 ((struct instance_core__NativeArray*)var150)->values[1]=var167;
5661 {
5662 var168 = ((val*(*)(val* self))(var150->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var150); /* native_to_s on <var150:NativeArray[String]>*/
5663 }
5664 varonce149 = var150;
5665 {
5666 nitc___nitc__AbstractCompilerVisitor___add(self, var168); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
5667 }
5668 if (unlikely(varonce169==NULL)) {
5669 var170 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5670 if (likely(varonce171!=NULL)) {
5671 var172 = varonce171;
5672 } else {
5673 var173 = "Uninitialized attribute ";
5674 var175 = (val*)(24l<<2|1);
5675 var176 = (val*)(24l<<2|1);
5676 var177 = (val*)((long)(0)<<2|3);
5677 var178 = (val*)((long)(0)<<2|3);
5678 var174 = core__flat___CString___to_s_unsafe(var173, var175, var176, var177, var178);
5679 var172 = var174;
5680 varonce171 = var172;
5681 }
5682 ((struct instance_core__NativeArray*)var170)->values[0]=var172;
5683 } else {
5684 var170 = varonce169;
5685 varonce169 = NULL;
5686 }
5687 {
5688 { /* Inline model$MProperty$name (var_a) on <var_a:MAttribute> */
5689 var181 = var_a->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var_a:MAttribute> */
5690 if (unlikely(var181 == NULL)) {
5691 if(catchStack.cursor >= 0){
5692 longjmp(catchStack.envs[catchStack.cursor], 1);
5693 }
5694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5695 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
5696 fatal_exit(1);
5697 }
5698 var179 = var181;
5699 RET_LABEL180:(void)0;
5700 }
5701 }
5702 ((struct instance_core__NativeArray*)var170)->values[1]=var179;
5703 {
5704 var182 = ((val*(*)(val* self))(var170->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var170); /* native_to_s on <var170:NativeArray[String]>*/
5705 }
5706 varonce169 = var170;
5707 {
5708 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var182); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:SeparateCompilerVisitor>*/
5709 }
5710 if (likely(varonce183!=NULL)) {
5711 var184 = varonce183;
5712 } else {
5713 var185 = "}";
5714 var187 = (val*)(1l<<2|1);
5715 var188 = (val*)(1l<<2|1);
5716 var189 = (val*)((long)(0)<<2|3);
5717 var190 = (val*)((long)(0)<<2|3);
5718 var186 = core__flat___CString___to_s_unsafe(var185, var187, var188, var189, var190);
5719 var184 = var186;
5720 varonce183 = var184;
5721 }
5722 {
5723 nitc___nitc__AbstractCompilerVisitor___add(self, var184); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
5724 }
5725 {
5726 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
5727 var193 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
5728 if (unlikely(var193 == NULL)) {
5729 if(catchStack.cursor >= 0){
5730 longjmp(catchStack.envs[catchStack.cursor], 1);
5731 }
5732 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5733 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5734 fatal_exit(1);
5735 }
5736 var191 = var193;
5737 RET_LABEL192:(void)0;
5738 }
5739 }
5740 {
5741 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var191) on <var191:AbstractCompiler(SeparateCompiler)> */
5742 var196 = var191->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var191:AbstractCompiler(SeparateCompiler)> */
5743 if (unlikely(var196 == NULL)) {
5744 if(catchStack.cursor >= 0){
5745 longjmp(catchStack.envs[catchStack.cursor], 1);
5746 }
5747 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5748 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
5749 fatal_exit(1);
5750 }
5751 var194 = var196;
5752 RET_LABEL195:(void)0;
5753 }
5754 }
5755 {
5756 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var194) on <var194:ModelBuilder> */
5757 var199 = var194->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var194:ModelBuilder> */
5758 if (unlikely(var199 == NULL)) {
5759 if(catchStack.cursor >= 0){
5760 longjmp(catchStack.envs[catchStack.cursor], 1);
5761 }
5762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
5763 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
5764 fatal_exit(1);
5765 }
5766 var197 = var199;
5767 RET_LABEL198:(void)0;
5768 }
5769 }
5770 {
5771 { /* Inline abstract_compiler$ToolContext$opt_isset_checks_metrics (var197) on <var197:ToolContext> */
5772 var202 = var197->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on <var197:ToolContext> */
5773 if (unlikely(var202 == NULL)) {
5774 if(catchStack.cursor >= 0){
5775 longjmp(catchStack.envs[catchStack.cursor], 1);
5776 }
5777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
5778 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 64);
5779 fatal_exit(1);
5780 }
5781 var200 = var202;
5782 RET_LABEL201:(void)0;
5783 }
5784 }
5785 {
5786 { /* Inline opts$Option$value (var200) on <var200:OptionBool> */
5787 var205 = var200->attrs[COLOR_opts__Option___value].val; /* _value on <var200:OptionBool> */
5788 var203 = var205;
5789 RET_LABEL204:(void)0;
5790 }
5791 }
5792 var206 = (short int)((long)(var203)>>2);
5793 if (var206){
5794 {
5795 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
5796 var209 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
5797 if (unlikely(var209 == NULL)) {
5798 if(catchStack.cursor >= 0){
5799 longjmp(catchStack.envs[catchStack.cursor], 1);
5800 }
5801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5802 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5803 fatal_exit(1);
5804 }
5805 var207 = var209;
5806 RET_LABEL208:(void)0;
5807 }
5808 }
5809 var_210 = var207;
5810 {
5811 { /* Inline separate_compiler$SeparateCompiler$isset_checks_count (var_210) on <var_210:SeparateCompiler> */
5812 var213 = var_210->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___isset_checks_count].l; /* _isset_checks_count on <var_210:SeparateCompiler> */
5813 var211 = var213;
5814 RET_LABEL212:(void)0;
5815 }
5816 }
5817 {
5818 { /* Inline kernel$Int$+ (var211,1l) on <var211:Int> */
5819 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5820 /* <1l:Int> isa OTHER */
5821 var216 = 1; /* easy <1l:Int> isa OTHER*/
5822 if (unlikely(!var216)) {
5823 var_class_name219 = type_core__Int.name;
5824 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name219);
5825 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
5826 fatal_exit(1);
5827 }
5828 var220 = var211 + 1l;
5829 var214 = var220;
5830 goto RET_LABEL215;
5831 RET_LABEL215:(void)0;
5832 }
5833 }
5834 {
5835 { /* Inline separate_compiler$SeparateCompiler$isset_checks_count= (var_210,var214) on <var_210:SeparateCompiler> */
5836 var_210->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___isset_checks_count].l = var214; /* _isset_checks_count on <var_210:SeparateCompiler> */
5837 RET_LABEL221:(void)0;
5838 }
5839 }
5840 if (likely(varonce222!=NULL)) {
5841 var223 = varonce222;
5842 } else {
5843 var224 = "count_isset_checks++;";
5844 var226 = (val*)(21l<<2|1);
5845 var227 = (val*)(21l<<2|1);
5846 var228 = (val*)((long)(0)<<2|3);
5847 var229 = (val*)((long)(0)<<2|3);
5848 var225 = core__flat___CString___to_s_unsafe(var224, var226, var227, var228, var229);
5849 var223 = var225;
5850 varonce222 = var223;
5851 }
5852 {
5853 nitc___nitc__AbstractCompilerVisitor___add(self, var223); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
5854 }
5855 } else {
5856 }
5857 } else {
5858 }
5859 {
5860 var230 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_res, var_ret);
5861 }
5862 var = var230;
5863 goto RET_LABEL;
5864 } else {
5865 {
5866 var231 = nitc___nitc__AbstractCompilerVisitor___new_var(self, var_ret);
5867 }
5868 var_res232 = var231;
5869 if (unlikely(varonce233==NULL)) {
5870 var234 = NEW_core__NativeArray((int)12l, &type_core__NativeArray__core__String);
5871 if (likely(varonce235!=NULL)) {
5872 var236 = varonce235;
5873 } else {
5874 var237 = " = ";
5875 var239 = (val*)(3l<<2|1);
5876 var240 = (val*)(3l<<2|1);
5877 var241 = (val*)((long)(0)<<2|3);
5878 var242 = (val*)((long)(0)<<2|3);
5879 var238 = core__flat___CString___to_s_unsafe(var237, var239, var240, var241, var242);
5880 var236 = var238;
5881 varonce235 = var236;
5882 }
5883 ((struct instance_core__NativeArray*)var234)->values[1]=var236;
5884 if (likely(varonce243!=NULL)) {
5885 var244 = varonce243;
5886 } else {
5887 var245 = "->attrs[";
5888 var247 = (val*)(8l<<2|1);
5889 var248 = (val*)(8l<<2|1);
5890 var249 = (val*)((long)(0)<<2|3);
5891 var250 = (val*)((long)(0)<<2|3);
5892 var246 = core__flat___CString___to_s_unsafe(var245, var247, var248, var249, var250);
5893 var244 = var246;
5894 varonce243 = var244;
5895 }
5896 ((struct instance_core__NativeArray*)var234)->values[3]=var244;
5897 if (likely(varonce251!=NULL)) {
5898 var252 = varonce251;
5899 } else {
5900 var253 = "].";
5901 var255 = (val*)(2l<<2|1);
5902 var256 = (val*)(2l<<2|1);
5903 var257 = (val*)((long)(0)<<2|3);
5904 var258 = (val*)((long)(0)<<2|3);
5905 var254 = core__flat___CString___to_s_unsafe(var253, var255, var256, var257, var258);
5906 var252 = var254;
5907 varonce251 = var252;
5908 }
5909 ((struct instance_core__NativeArray*)var234)->values[5]=var252;
5910 if (likely(varonce259!=NULL)) {
5911 var260 = varonce259;
5912 } else {
5913 var261 = "; /* ";
5914 var263 = (val*)(5l<<2|1);
5915 var264 = (val*)(5l<<2|1);
5916 var265 = (val*)((long)(0)<<2|3);
5917 var266 = (val*)((long)(0)<<2|3);
5918 var262 = core__flat___CString___to_s_unsafe(var261, var263, var264, var265, var266);
5919 var260 = var262;
5920 varonce259 = var260;
5921 }
5922 ((struct instance_core__NativeArray*)var234)->values[7]=var260;
5923 if (likely(varonce267!=NULL)) {
5924 var268 = varonce267;
5925 } else {
5926 var269 = " on ";
5927 var271 = (val*)(4l<<2|1);
5928 var272 = (val*)(4l<<2|1);
5929 var273 = (val*)((long)(0)<<2|3);
5930 var274 = (val*)((long)(0)<<2|3);
5931 var270 = core__flat___CString___to_s_unsafe(var269, var271, var272, var273, var274);
5932 var268 = var270;
5933 varonce267 = var268;
5934 }
5935 ((struct instance_core__NativeArray*)var234)->values[9]=var268;
5936 if (likely(varonce275!=NULL)) {
5937 var276 = varonce275;
5938 } else {
5939 var277 = " */";
5940 var279 = (val*)(3l<<2|1);
5941 var280 = (val*)(3l<<2|1);
5942 var281 = (val*)((long)(0)<<2|3);
5943 var282 = (val*)((long)(0)<<2|3);
5944 var278 = core__flat___CString___to_s_unsafe(var277, var279, var280, var281, var282);
5945 var276 = var278;
5946 varonce275 = var276;
5947 }
5948 ((struct instance_core__NativeArray*)var234)->values[11]=var276;
5949 } else {
5950 var234 = varonce233;
5951 varonce233 = NULL;
5952 }
5953 {
5954 var283 = ((val*(*)(val* self))(var_res232->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res232); /* to_s on <var_res232:RuntimeVariable>*/
5955 }
5956 ((struct instance_core__NativeArray*)var234)->values[0]=var283;
5957 {
5958 var284 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
5959 }
5960 ((struct instance_core__NativeArray*)var234)->values[2]=var284;
5961 {
5962 var285 = nitc__separate_compiler___MEntity___const_color(var_a);
5963 }
5964 ((struct instance_core__NativeArray*)var234)->values[4]=var285;
5965 {
5966 var286 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_nitc__abstract_compiler__MType__ctypename]))(var_ret); /* ctypename on <var_ret:MType>*/
5967 }
5968 ((struct instance_core__NativeArray*)var234)->values[6]=var286;
5969 {
5970 var287 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
5971 }
5972 ((struct instance_core__NativeArray*)var234)->values[8]=var287;
5973 {
5974 var288 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
5975 }
5976 ((struct instance_core__NativeArray*)var234)->values[10]=var288;
5977 {
5978 var289 = ((val*(*)(val* self))(var234->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var234); /* native_to_s on <var234:NativeArray[String]>*/
5979 }
5980 varonce233 = var234;
5981 {
5982 nitc___nitc__AbstractCompilerVisitor___add(self, var289); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
5983 }
5984 {
5985 var292 = ((short int(*)(val* self))(var_ret->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var_ret); /* is_c_primitive on <var_ret:MType>*/
5986 }
5987 var293 = !var292;
5988 var_294 = var293;
5989 if (var293){
5990 /* <var_ret:MType> isa MNullableType */
5991 cltype296 = type_nitc__MNullableType.color;
5992 idtype297 = type_nitc__MNullableType.id;
5993 if(cltype296 >= var_ret->type->table_size) {
5994 var295 = 0;
5995 } else {
5996 var295 = var_ret->type->type_table[cltype296] == idtype297;
5997 }
5998 var298 = !var295;
5999 var291 = var298;
6000 } else {
6001 var291 = var_294;
6002 }
6003 var_299 = var291;
6004 if (var291){
6005 {
6006 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
6007 var302 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
6008 if (unlikely(var302 == NULL)) {
6009 if(catchStack.cursor >= 0){
6010 longjmp(catchStack.envs[catchStack.cursor], 1);
6011 }
6012 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6013 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6014 fatal_exit(1);
6015 }
6016 var300 = var302;
6017 RET_LABEL301:(void)0;
6018 }
6019 }
6020 {
6021 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var300) on <var300:AbstractCompiler(SeparateCompiler)> */
6022 var305 = var300->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var300:AbstractCompiler(SeparateCompiler)> */
6023 if (unlikely(var305 == NULL)) {
6024 if(catchStack.cursor >= 0){
6025 longjmp(catchStack.envs[catchStack.cursor], 1);
6026 }
6027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6028 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
6029 fatal_exit(1);
6030 }
6031 var303 = var305;
6032 RET_LABEL304:(void)0;
6033 }
6034 }
6035 {
6036 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var303) on <var303:ModelBuilder> */
6037 var308 = var303->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var303:ModelBuilder> */
6038 if (unlikely(var308 == NULL)) {
6039 if(catchStack.cursor >= 0){
6040 longjmp(catchStack.envs[catchStack.cursor], 1);
6041 }
6042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6043 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
6044 fatal_exit(1);
6045 }
6046 var306 = var308;
6047 RET_LABEL307:(void)0;
6048 }
6049 }
6050 {
6051 { /* Inline abstract_compiler$ToolContext$opt_no_check_attr_isset (var306) on <var306:ToolContext> */
6052 var311 = var306->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_attr_isset].val; /* _opt_no_check_attr_isset on <var306:ToolContext> */
6053 if (unlikely(var311 == NULL)) {
6054 if(catchStack.cursor >= 0){
6055 longjmp(catchStack.envs[catchStack.cursor], 1);
6056 }
6057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_attr_isset");
6058 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 50);
6059 fatal_exit(1);
6060 }
6061 var309 = var311;
6062 RET_LABEL310:(void)0;
6063 }
6064 }
6065 {
6066 { /* Inline opts$Option$value (var309) on <var309:OptionBool> */
6067 var314 = var309->attrs[COLOR_opts__Option___value].val; /* _value on <var309:OptionBool> */
6068 var312 = var314;
6069 RET_LABEL313:(void)0;
6070 }
6071 }
6072 var315 = (short int)((long)(var312)>>2);
6073 var316 = !var315;
6074 var290 = var316;
6075 } else {
6076 var290 = var_299;
6077 }
6078 if (var290){
6079 if (unlikely(varonce317==NULL)) {
6080 var318 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6081 if (likely(varonce319!=NULL)) {
6082 var320 = varonce319;
6083 } else {
6084 var321 = "if (unlikely(";
6085 var323 = (val*)(13l<<2|1);
6086 var324 = (val*)(13l<<2|1);
6087 var325 = (val*)((long)(0)<<2|3);
6088 var326 = (val*)((long)(0)<<2|3);
6089 var322 = core__flat___CString___to_s_unsafe(var321, var323, var324, var325, var326);
6090 var320 = var322;
6091 varonce319 = var320;
6092 }
6093 ((struct instance_core__NativeArray*)var318)->values[0]=var320;
6094 if (likely(varonce327!=NULL)) {
6095 var328 = varonce327;
6096 } else {
6097 var329 = " == NULL)) {";
6098 var331 = (val*)(12l<<2|1);
6099 var332 = (val*)(12l<<2|1);
6100 var333 = (val*)((long)(0)<<2|3);
6101 var334 = (val*)((long)(0)<<2|3);
6102 var330 = core__flat___CString___to_s_unsafe(var329, var331, var332, var333, var334);
6103 var328 = var330;
6104 varonce327 = var328;
6105 }
6106 ((struct instance_core__NativeArray*)var318)->values[2]=var328;
6107 } else {
6108 var318 = varonce317;
6109 varonce317 = NULL;
6110 }
6111 {
6112 var335 = ((val*(*)(val* self))(var_res232->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res232); /* to_s on <var_res232:RuntimeVariable>*/
6113 }
6114 ((struct instance_core__NativeArray*)var318)->values[1]=var335;
6115 {
6116 var336 = ((val*(*)(val* self))(var318->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var318); /* native_to_s on <var318:NativeArray[String]>*/
6117 }
6118 varonce317 = var318;
6119 {
6120 nitc___nitc__AbstractCompilerVisitor___add(self, var336); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
6121 }
6122 if (unlikely(varonce337==NULL)) {
6123 var338 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6124 if (likely(varonce339!=NULL)) {
6125 var340 = varonce339;
6126 } else {
6127 var341 = "Uninitialized attribute ";
6128 var343 = (val*)(24l<<2|1);
6129 var344 = (val*)(24l<<2|1);
6130 var345 = (val*)((long)(0)<<2|3);
6131 var346 = (val*)((long)(0)<<2|3);
6132 var342 = core__flat___CString___to_s_unsafe(var341, var343, var344, var345, var346);
6133 var340 = var342;
6134 varonce339 = var340;
6135 }
6136 ((struct instance_core__NativeArray*)var338)->values[0]=var340;
6137 } else {
6138 var338 = varonce337;
6139 varonce337 = NULL;
6140 }
6141 {
6142 { /* Inline model$MProperty$name (var_a) on <var_a:MAttribute> */
6143 var349 = var_a->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var_a:MAttribute> */
6144 if (unlikely(var349 == NULL)) {
6145 if(catchStack.cursor >= 0){
6146 longjmp(catchStack.envs[catchStack.cursor], 1);
6147 }
6148 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6149 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
6150 fatal_exit(1);
6151 }
6152 var347 = var349;
6153 RET_LABEL348:(void)0;
6154 }
6155 }
6156 ((struct instance_core__NativeArray*)var338)->values[1]=var347;
6157 {
6158 var350 = ((val*(*)(val* self))(var338->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var338); /* native_to_s on <var338:NativeArray[String]>*/
6159 }
6160 varonce337 = var338;
6161 {
6162 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var350); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:SeparateCompilerVisitor>*/
6163 }
6164 if (likely(varonce351!=NULL)) {
6165 var352 = varonce351;
6166 } else {
6167 var353 = "}";
6168 var355 = (val*)(1l<<2|1);
6169 var356 = (val*)(1l<<2|1);
6170 var357 = (val*)((long)(0)<<2|3);
6171 var358 = (val*)((long)(0)<<2|3);
6172 var354 = core__flat___CString___to_s_unsafe(var353, var355, var356, var357, var358);
6173 var352 = var354;
6174 varonce351 = var352;
6175 }
6176 {
6177 nitc___nitc__AbstractCompilerVisitor___add(self, var352); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
6178 }
6179 {
6180 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
6181 var361 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
6182 if (unlikely(var361 == NULL)) {
6183 if(catchStack.cursor >= 0){
6184 longjmp(catchStack.envs[catchStack.cursor], 1);
6185 }
6186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6187 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6188 fatal_exit(1);
6189 }
6190 var359 = var361;
6191 RET_LABEL360:(void)0;
6192 }
6193 }
6194 {
6195 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var359) on <var359:AbstractCompiler(SeparateCompiler)> */
6196 var364 = var359->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var359:AbstractCompiler(SeparateCompiler)> */
6197 if (unlikely(var364 == NULL)) {
6198 if(catchStack.cursor >= 0){
6199 longjmp(catchStack.envs[catchStack.cursor], 1);
6200 }
6201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6202 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
6203 fatal_exit(1);
6204 }
6205 var362 = var364;
6206 RET_LABEL363:(void)0;
6207 }
6208 }
6209 {
6210 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var362) on <var362:ModelBuilder> */
6211 var367 = var362->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var362:ModelBuilder> */
6212 if (unlikely(var367 == NULL)) {
6213 if(catchStack.cursor >= 0){
6214 longjmp(catchStack.envs[catchStack.cursor], 1);
6215 }
6216 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6217 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
6218 fatal_exit(1);
6219 }
6220 var365 = var367;
6221 RET_LABEL366:(void)0;
6222 }
6223 }
6224 {
6225 { /* Inline abstract_compiler$ToolContext$opt_isset_checks_metrics (var365) on <var365:ToolContext> */
6226 var370 = var365->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_isset_checks_metrics].val; /* _opt_isset_checks_metrics on <var365:ToolContext> */
6227 if (unlikely(var370 == NULL)) {
6228 if(catchStack.cursor >= 0){
6229 longjmp(catchStack.envs[catchStack.cursor], 1);
6230 }
6231 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_isset_checks_metrics");
6232 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 64);
6233 fatal_exit(1);
6234 }
6235 var368 = var370;
6236 RET_LABEL369:(void)0;
6237 }
6238 }
6239 {
6240 { /* Inline opts$Option$value (var368) on <var368:OptionBool> */
6241 var373 = var368->attrs[COLOR_opts__Option___value].val; /* _value on <var368:OptionBool> */
6242 var371 = var373;
6243 RET_LABEL372:(void)0;
6244 }
6245 }
6246 var374 = (short int)((long)(var371)>>2);
6247 if (var374){
6248 {
6249 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
6250 var377 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
6251 if (unlikely(var377 == NULL)) {
6252 if(catchStack.cursor >= 0){
6253 longjmp(catchStack.envs[catchStack.cursor], 1);
6254 }
6255 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6256 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6257 fatal_exit(1);
6258 }
6259 var375 = var377;
6260 RET_LABEL376:(void)0;
6261 }
6262 }
6263 var_378 = var375;
6264 {
6265 { /* Inline separate_compiler$SeparateCompiler$isset_checks_count (var_378) on <var_378:SeparateCompiler> */
6266 var381 = var_378->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___isset_checks_count].l; /* _isset_checks_count on <var_378:SeparateCompiler> */
6267 var379 = var381;
6268 RET_LABEL380:(void)0;
6269 }
6270 }
6271 {
6272 { /* Inline kernel$Int$+ (var379,1l) on <var379:Int> */
6273 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6274 /* <1l:Int> isa OTHER */
6275 var384 = 1; /* easy <1l:Int> isa OTHER*/
6276 if (unlikely(!var384)) {
6277 var_class_name387 = type_core__Int.name;
6278 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name387);
6279 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
6280 fatal_exit(1);
6281 }
6282 var388 = var379 + 1l;
6283 var382 = var388;
6284 goto RET_LABEL383;
6285 RET_LABEL383:(void)0;
6286 }
6287 }
6288 {
6289 { /* Inline separate_compiler$SeparateCompiler$isset_checks_count= (var_378,var382) on <var_378:SeparateCompiler> */
6290 var_378->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___isset_checks_count].l = var382; /* _isset_checks_count on <var_378:SeparateCompiler> */
6291 RET_LABEL389:(void)0;
6292 }
6293 }
6294 if (likely(varonce390!=NULL)) {
6295 var391 = varonce390;
6296 } else {
6297 var392 = "count_isset_checks++;";
6298 var394 = (val*)(21l<<2|1);
6299 var395 = (val*)(21l<<2|1);
6300 var396 = (val*)((long)(0)<<2|3);
6301 var397 = (val*)((long)(0)<<2|3);
6302 var393 = core__flat___CString___to_s_unsafe(var392, var394, var395, var396, var397);
6303 var391 = var393;
6304 varonce390 = var391;
6305 }
6306 {
6307 nitc___nitc__AbstractCompilerVisitor___add(self, var391); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
6308 }
6309 } else {
6310 }
6311 } else {
6312 }
6313 var = var_res232;
6314 goto RET_LABEL;
6315 }
6316 RET_LABEL:;
6317 return var;
6318 }
6319 /* method separate_compiler$SeparateCompilerVisitor$write_attribute for (self: SeparateCompilerVisitor, MAttribute, RuntimeVariable, RuntimeVariable) */
6320 void nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(val* self, val* p0, val* p1, val* p2) {
6321 val* var_a /* var a: MAttribute */;
6322 val* var_recv /* var recv: RuntimeVariable */;
6323 val* var_value /* var value: RuntimeVariable */;
6324 val* var /* : MPropDef */;
6325 val* var2 /* : MPropDef */;
6326 val* var3 /* : nullable MType */;
6327 val* var5 /* : nullable MType */;
6328 val* var_mtype /* var mtype: MType */;
6329 val* var6 /* : MPropDef */;
6330 val* var8 /* : MPropDef */;
6331 val* var9 /* : MClassDef */;
6332 val* var11 /* : MClassDef */;
6333 val* var_intromclassdef /* var intromclassdef: MClassDef */;
6334 val* var12 /* : MClassType */;
6335 val* var14 /* : MClassType */;
6336 val* var15 /* : MClassType */;
6337 val* var17 /* : MClassType */;
6338 val* var18 /* : MModule */;
6339 val* var20 /* : MModule */;
6340 val* var21 /* : MType */;
6341 val* var22 /* : RuntimeVariable */;
6342 val* var23 /* : String */;
6343 val* var24 /* : AbstractCompiler */;
6344 val* var26 /* : AbstractCompiler */;
6345 val* var27 /* : ModelBuilder */;
6346 val* var29 /* : ModelBuilder */;
6347 val* var30 /* : ToolContext */;
6348 val* var32 /* : ToolContext */;
6349 val* var33 /* : OptionBool */;
6350 val* var35 /* : OptionBool */;
6351 val* var36 /* : nullable Object */;
6352 val* var38 /* : nullable Object */;
6353 short int var39 /* : Bool */;
6354 val* var40 /* : NativeArray[String] */;
6355 static val* varonce;
6356 static val* varonce41;
6357 val* var42 /* : String */;
6358 char* var43 /* : CString */;
6359 val* var44 /* : String */;
6360 val* var45 /* : nullable Int */;
6361 val* var46 /* : nullable Int */;
6362 val* var47 /* : nullable Bool */;
6363 val* var48 /* : nullable Bool */;
6364 static val* varonce49;
6365 val* var50 /* : String */;
6366 char* var51 /* : CString */;
6367 val* var52 /* : String */;
6368 val* var53 /* : nullable Int */;
6369 val* var54 /* : nullable Int */;
6370 val* var55 /* : nullable Bool */;
6371 val* var56 /* : nullable Bool */;
6372 val* var57 /* : String */;
6373 val* var58 /* : String */;
6374 val* var59 /* : String */;
6375 val* var_attr /* var attr: String */;
6376 short int var60 /* : Bool */;
6377 short int var62 /* : Bool */;
6378 val* var63 /* : AbstractCompiler */;
6379 val* var65 /* : AbstractCompiler */;
6380 val* var66 /* : MModule */;
6381 val* var68 /* : MModule */;
6382 val* var69 /* : MClassType */;
6383 val* var70 /* : RuntimeVariable */;
6384 val* var_tv /* var tv: RuntimeVariable */;
6385 val* var72 /* : NativeArray[String] */;
6386 static val* varonce71;
6387 static val* varonce73;
6388 val* var74 /* : String */;
6389 char* var75 /* : CString */;
6390 val* var76 /* : String */;
6391 val* var77 /* : nullable Int */;
6392 val* var78 /* : nullable Int */;
6393 val* var79 /* : nullable Bool */;
6394 val* var80 /* : nullable Bool */;
6395 static val* varonce81;
6396 val* var82 /* : String */;
6397 char* var83 /* : CString */;
6398 val* var84 /* : String */;
6399 val* var85 /* : nullable Int */;
6400 val* var86 /* : nullable Int */;
6401 val* var87 /* : nullable Bool */;
6402 val* var88 /* : nullable Bool */;
6403 static val* varonce89;
6404 val* var90 /* : String */;
6405 char* var91 /* : CString */;
6406 val* var92 /* : String */;
6407 val* var93 /* : nullable Int */;
6408 val* var94 /* : nullable Int */;
6409 val* var95 /* : nullable Bool */;
6410 val* var96 /* : nullable Bool */;
6411 static val* varonce97;
6412 val* var98 /* : String */;
6413 char* var99 /* : CString */;
6414 val* var100 /* : String */;
6415 val* var101 /* : nullable Int */;
6416 val* var102 /* : nullable Int */;
6417 val* var103 /* : nullable Bool */;
6418 val* var104 /* : nullable Bool */;
6419 val* var105 /* : String */;
6420 val* var106 /* : String */;
6421 val* var107 /* : String */;
6422 val* var108 /* : String */;
6423 short int var109 /* : Bool */;
6424 short int var110 /* : Bool */;
6425 int cltype;
6426 int idtype;
6427 val* var112 /* : NativeArray[String] */;
6428 static val* varonce111;
6429 static val* varonce113;
6430 val* var114 /* : String */;
6431 char* var115 /* : CString */;
6432 val* var116 /* : String */;
6433 val* var117 /* : nullable Int */;
6434 val* var118 /* : nullable Int */;
6435 val* var119 /* : nullable Bool */;
6436 val* var120 /* : nullable Bool */;
6437 static val* varonce121;
6438 val* var122 /* : String */;
6439 char* var123 /* : CString */;
6440 val* var124 /* : String */;
6441 val* var125 /* : nullable Int */;
6442 val* var126 /* : nullable Int */;
6443 val* var127 /* : nullable Bool */;
6444 val* var128 /* : nullable Bool */;
6445 val* var129 /* : String */;
6446 val* var131 /* : NativeArray[String] */;
6447 static val* varonce130;
6448 static val* varonce132;
6449 val* var133 /* : String */;
6450 char* var134 /* : CString */;
6451 val* var135 /* : String */;
6452 val* var136 /* : nullable Int */;
6453 val* var137 /* : nullable Int */;
6454 val* var138 /* : nullable Bool */;
6455 val* var139 /* : nullable Bool */;
6456 static val* varonce140;
6457 val* var141 /* : String */;
6458 char* var142 /* : CString */;
6459 val* var143 /* : String */;
6460 val* var144 /* : nullable Int */;
6461 val* var145 /* : nullable Int */;
6462 val* var146 /* : nullable Bool */;
6463 val* var147 /* : nullable Bool */;
6464 static val* varonce148;
6465 val* var149 /* : String */;
6466 char* var150 /* : CString */;
6467 val* var151 /* : String */;
6468 val* var152 /* : nullable Int */;
6469 val* var153 /* : nullable Int */;
6470 val* var154 /* : nullable Bool */;
6471 val* var155 /* : nullable Bool */;
6472 static val* varonce156;
6473 val* var157 /* : String */;
6474 char* var158 /* : CString */;
6475 val* var159 /* : String */;
6476 val* var160 /* : nullable Int */;
6477 val* var161 /* : nullable Int */;
6478 val* var162 /* : nullable Bool */;
6479 val* var163 /* : nullable Bool */;
6480 static val* varonce164;
6481 val* var165 /* : String */;
6482 char* var166 /* : CString */;
6483 val* var167 /* : String */;
6484 val* var168 /* : nullable Int */;
6485 val* var169 /* : nullable Int */;
6486 val* var170 /* : nullable Bool */;
6487 val* var171 /* : nullable Bool */;
6488 static val* varonce172;
6489 val* var173 /* : String */;
6490 char* var174 /* : CString */;
6491 val* var175 /* : String */;
6492 val* var176 /* : nullable Int */;
6493 val* var177 /* : nullable Int */;
6494 val* var178 /* : nullable Bool */;
6495 val* var179 /* : nullable Bool */;
6496 val* var180 /* : String */;
6497 val* var181 /* : String */;
6498 val* var182 /* : String */;
6499 val* var183 /* : String */;
6500 val* var184 /* : String */;
6501 static val* varonce185;
6502 val* var186 /* : String */;
6503 char* var187 /* : CString */;
6504 val* var188 /* : String */;
6505 val* var189 /* : nullable Int */;
6506 val* var190 /* : nullable Int */;
6507 val* var191 /* : nullable Bool */;
6508 val* var192 /* : nullable Bool */;
6509 val* var193 /* : MClassType */;
6510 val* var194 /* : MType */;
6511 val* var195 /* : RuntimeVariable */;
6512 val* var197 /* : NativeArray[String] */;
6513 static val* varonce196;
6514 static val* varonce198;
6515 val* var199 /* : String */;
6516 char* var200 /* : CString */;
6517 val* var201 /* : String */;
6518 val* var202 /* : nullable Int */;
6519 val* var203 /* : nullable Int */;
6520 val* var204 /* : nullable Bool */;
6521 val* var205 /* : nullable Bool */;
6522 static val* varonce206;
6523 val* var207 /* : String */;
6524 char* var208 /* : CString */;
6525 val* var209 /* : String */;
6526 val* var210 /* : nullable Int */;
6527 val* var211 /* : nullable Int */;
6528 val* var212 /* : nullable Bool */;
6529 val* var213 /* : nullable Bool */;
6530 static val* varonce214;
6531 val* var215 /* : String */;
6532 char* var216 /* : CString */;
6533 val* var217 /* : String */;
6534 val* var218 /* : nullable Int */;
6535 val* var219 /* : nullable Int */;
6536 val* var220 /* : nullable Bool */;
6537 val* var221 /* : nullable Bool */;
6538 static val* varonce222;
6539 val* var223 /* : String */;
6540 char* var224 /* : CString */;
6541 val* var225 /* : String */;
6542 val* var226 /* : nullable Int */;
6543 val* var227 /* : nullable Int */;
6544 val* var228 /* : nullable Bool */;
6545 val* var229 /* : nullable Bool */;
6546 val* var230 /* : String */;
6547 val* var231 /* : String */;
6548 val* var232 /* : String */;
6549 val* var233 /* : String */;
6550 static val* varonce234;
6551 val* var235 /* : String */;
6552 char* var236 /* : CString */;
6553 val* var237 /* : String */;
6554 val* var238 /* : nullable Int */;
6555 val* var239 /* : nullable Int */;
6556 val* var240 /* : nullable Bool */;
6557 val* var241 /* : nullable Bool */;
6558 val* var243 /* : NativeArray[String] */;
6559 static val* varonce242;
6560 static val* varonce244;
6561 val* var245 /* : String */;
6562 char* var246 /* : CString */;
6563 val* var247 /* : String */;
6564 val* var248 /* : nullable Int */;
6565 val* var249 /* : nullable Int */;
6566 val* var250 /* : nullable Bool */;
6567 val* var251 /* : nullable Bool */;
6568 static val* varonce252;
6569 val* var253 /* : String */;
6570 char* var254 /* : CString */;
6571 val* var255 /* : String */;
6572 val* var256 /* : nullable Int */;
6573 val* var257 /* : nullable Int */;
6574 val* var258 /* : nullable Bool */;
6575 val* var259 /* : nullable Bool */;
6576 static val* varonce260;
6577 val* var261 /* : String */;
6578 char* var262 /* : CString */;
6579 val* var263 /* : String */;
6580 val* var264 /* : nullable Int */;
6581 val* var265 /* : nullable Int */;
6582 val* var266 /* : nullable Bool */;
6583 val* var267 /* : nullable Bool */;
6584 static val* varonce268;
6585 val* var269 /* : String */;
6586 char* var270 /* : CString */;
6587 val* var271 /* : String */;
6588 val* var272 /* : nullable Int */;
6589 val* var273 /* : nullable Int */;
6590 val* var274 /* : nullable Bool */;
6591 val* var275 /* : nullable Bool */;
6592 val* var276 /* : String */;
6593 val* var277 /* : String */;
6594 val* var278 /* : String */;
6595 val* var279 /* : String */;
6596 val* var281 /* : NativeArray[String] */;
6597 static val* varonce280;
6598 static val* varonce282;
6599 val* var283 /* : String */;
6600 char* var284 /* : CString */;
6601 val* var285 /* : String */;
6602 val* var286 /* : nullable Int */;
6603 val* var287 /* : nullable Int */;
6604 val* var288 /* : nullable Bool */;
6605 val* var289 /* : nullable Bool */;
6606 static val* varonce290;
6607 val* var291 /* : String */;
6608 char* var292 /* : CString */;
6609 val* var293 /* : String */;
6610 val* var294 /* : nullable Int */;
6611 val* var295 /* : nullable Int */;
6612 val* var296 /* : nullable Bool */;
6613 val* var297 /* : nullable Bool */;
6614 static val* varonce298;
6615 val* var299 /* : String */;
6616 char* var300 /* : CString */;
6617 val* var301 /* : String */;
6618 val* var302 /* : nullable Int */;
6619 val* var303 /* : nullable Int */;
6620 val* var304 /* : nullable Bool */;
6621 val* var305 /* : nullable Bool */;
6622 static val* varonce306;
6623 val* var307 /* : String */;
6624 char* var308 /* : CString */;
6625 val* var309 /* : String */;
6626 val* var310 /* : nullable Int */;
6627 val* var311 /* : nullable Int */;
6628 val* var312 /* : nullable Bool */;
6629 val* var313 /* : nullable Bool */;
6630 static val* varonce314;
6631 val* var315 /* : String */;
6632 char* var316 /* : CString */;
6633 val* var317 /* : String */;
6634 val* var318 /* : nullable Int */;
6635 val* var319 /* : nullable Int */;
6636 val* var320 /* : nullable Bool */;
6637 val* var321 /* : nullable Bool */;
6638 static val* varonce322;
6639 val* var323 /* : String */;
6640 char* var324 /* : CString */;
6641 val* var325 /* : String */;
6642 val* var326 /* : nullable Int */;
6643 val* var327 /* : nullable Int */;
6644 val* var328 /* : nullable Bool */;
6645 val* var329 /* : nullable Bool */;
6646 val* var330 /* : String */;
6647 val* var331 /* : String */;
6648 val* var332 /* : String */;
6649 val* var333 /* : String */;
6650 val* var334 /* : String */;
6651 val* var335 /* : String */;
6652 val* var336 /* : String */;
6653 var_a = p0;
6654 var_recv = p1;
6655 var_value = p2;
6656 {
6657 nitc___nitc__AbstractCompilerVisitor___check_recv_notnull(self, var_recv); /* Direct call abstract_compiler$AbstractCompilerVisitor$check_recv_notnull on <self:SeparateCompilerVisitor>*/
6658 }
6659 {
6660 { /* Inline model$MProperty$intro (var_a) on <var_a:MAttribute> */
6661 var2 = var_a->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_a:MAttribute> */
6662 if (unlikely(var2 == NULL)) {
6663 if(catchStack.cursor >= 0){
6664 longjmp(catchStack.envs[catchStack.cursor], 1);
6665 }
6666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6667 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
6668 fatal_exit(1);
6669 }
6670 var = var2;
6671 RET_LABEL1:(void)0;
6672 }
6673 }
6674 {
6675 { /* Inline model$MAttributeDef$static_mtype (var) on <var:MPropDef(MAttributeDef)> */
6676 var5 = var->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var:MPropDef(MAttributeDef)> */
6677 var3 = var5;
6678 RET_LABEL4:(void)0;
6679 }
6680 }
6681 if (unlikely(var3 == NULL)) {
6682 if(catchStack.cursor >= 0){
6683 longjmp(catchStack.envs[catchStack.cursor], 1);
6684 }
6685 PRINT_ERROR("Runtime error: %s", "Cast failed");
6686 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1697);
6687 fatal_exit(1);
6688 }
6689 var_mtype = var3;
6690 {
6691 { /* Inline model$MProperty$intro (var_a) on <var_a:MAttribute> */
6692 var8 = var_a->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var_a:MAttribute> */
6693 if (unlikely(var8 == NULL)) {
6694 if(catchStack.cursor >= 0){
6695 longjmp(catchStack.envs[catchStack.cursor], 1);
6696 }
6697 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
6698 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
6699 fatal_exit(1);
6700 }
6701 var6 = var8;
6702 RET_LABEL7:(void)0;
6703 }
6704 }
6705 {
6706 { /* Inline model$MPropDef$mclassdef (var6) on <var6:MPropDef(MAttributeDef)> */
6707 var11 = var6->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var6:MPropDef(MAttributeDef)> */
6708 if (unlikely(var11 == NULL)) {
6709 if(catchStack.cursor >= 0){
6710 longjmp(catchStack.envs[catchStack.cursor], 1);
6711 }
6712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
6713 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
6714 fatal_exit(1);
6715 }
6716 var9 = var11;
6717 RET_LABEL10:(void)0;
6718 }
6719 }
6720 var_intromclassdef = var9;
6721 {
6722 { /* Inline model$MClassDef$bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
6723 var14 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intromclassdef:MClassDef> */
6724 if (unlikely(var14 == NULL)) {
6725 if(catchStack.cursor >= 0){
6726 longjmp(catchStack.envs[catchStack.cursor], 1);
6727 }
6728 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
6730 fatal_exit(1);
6731 }
6732 var12 = var14;
6733 RET_LABEL13:(void)0;
6734 }
6735 }
6736 {
6737 { /* Inline model$MClassDef$bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
6738 var17 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intromclassdef:MClassDef> */
6739 if (unlikely(var17 == NULL)) {
6740 if(catchStack.cursor >= 0){
6741 longjmp(catchStack.envs[catchStack.cursor], 1);
6742 }
6743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
6744 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
6745 fatal_exit(1);
6746 }
6747 var15 = var17;
6748 RET_LABEL16:(void)0;
6749 }
6750 }
6751 {
6752 { /* Inline model$MClassDef$mmodule (var_intromclassdef) on <var_intromclassdef:MClassDef> */
6753 var20 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_intromclassdef:MClassDef> */
6754 if (unlikely(var20 == NULL)) {
6755 if(catchStack.cursor >= 0){
6756 longjmp(catchStack.envs[catchStack.cursor], 1);
6757 }
6758 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6759 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
6760 fatal_exit(1);
6761 }
6762 var18 = var20;
6763 RET_LABEL19:(void)0;
6764 }
6765 }
6766 {
6767 var21 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_mtype->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_mtype, var12, var15, var18, 1); /* resolve_for on <var_mtype:MType>*/
6768 }
6769 var_mtype = var21;
6770 {
6771 var22 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value, var_mtype);
6772 }
6773 var_value = var22;
6774 {
6775 var23 = nitc__separate_compiler___MEntity___const_color(var_a);
6776 }
6777 {
6778 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var23); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
6779 }
6780 {
6781 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
6782 var26 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
6783 if (unlikely(var26 == NULL)) {
6784 if(catchStack.cursor >= 0){
6785 longjmp(catchStack.envs[catchStack.cursor], 1);
6786 }
6787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6788 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6789 fatal_exit(1);
6790 }
6791 var24 = var26;
6792 RET_LABEL25:(void)0;
6793 }
6794 }
6795 {
6796 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var24) on <var24:AbstractCompiler(SeparateCompiler)> */
6797 var29 = var24->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var24:AbstractCompiler(SeparateCompiler)> */
6798 if (unlikely(var29 == NULL)) {
6799 if(catchStack.cursor >= 0){
6800 longjmp(catchStack.envs[catchStack.cursor], 1);
6801 }
6802 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6803 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
6804 fatal_exit(1);
6805 }
6806 var27 = var29;
6807 RET_LABEL28:(void)0;
6808 }
6809 }
6810 {
6811 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var27) on <var27:ModelBuilder> */
6812 var32 = var27->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var27:ModelBuilder> */
6813 if (unlikely(var32 == NULL)) {
6814 if(catchStack.cursor >= 0){
6815 longjmp(catchStack.envs[catchStack.cursor], 1);
6816 }
6817 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6818 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
6819 fatal_exit(1);
6820 }
6821 var30 = var32;
6822 RET_LABEL31:(void)0;
6823 }
6824 }
6825 {
6826 { /* Inline separate_compiler$ToolContext$opt_no_union_attribute (var30) on <var30:ToolContext> */
6827 var35 = var30->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on <var30:ToolContext> */
6828 if (unlikely(var35 == NULL)) {
6829 if(catchStack.cursor >= 0){
6830 longjmp(catchStack.envs[catchStack.cursor], 1);
6831 }
6832 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
6833 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 28);
6834 fatal_exit(1);
6835 }
6836 var33 = var35;
6837 RET_LABEL34:(void)0;
6838 }
6839 }
6840 {
6841 { /* Inline opts$Option$value (var33) on <var33:OptionBool> */
6842 var38 = var33->attrs[COLOR_opts__Option___value].val; /* _value on <var33:OptionBool> */
6843 var36 = var38;
6844 RET_LABEL37:(void)0;
6845 }
6846 }
6847 var39 = (short int)((long)(var36)>>2);
6848 if (var39){
6849 if (unlikely(varonce==NULL)) {
6850 var40 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6851 if (likely(varonce41!=NULL)) {
6852 var42 = varonce41;
6853 } else {
6854 var43 = "->attrs[";
6855 var45 = (val*)(8l<<2|1);
6856 var46 = (val*)(8l<<2|1);
6857 var47 = (val*)((long)(0)<<2|3);
6858 var48 = (val*)((long)(0)<<2|3);
6859 var44 = core__flat___CString___to_s_unsafe(var43, var45, var46, var47, var48);
6860 var42 = var44;
6861 varonce41 = var42;
6862 }
6863 ((struct instance_core__NativeArray*)var40)->values[1]=var42;
6864 if (likely(varonce49!=NULL)) {
6865 var50 = varonce49;
6866 } else {
6867 var51 = "]";
6868 var53 = (val*)(1l<<2|1);
6869 var54 = (val*)(1l<<2|1);
6870 var55 = (val*)((long)(0)<<2|3);
6871 var56 = (val*)((long)(0)<<2|3);
6872 var52 = core__flat___CString___to_s_unsafe(var51, var53, var54, var55, var56);
6873 var50 = var52;
6874 varonce49 = var50;
6875 }
6876 ((struct instance_core__NativeArray*)var40)->values[3]=var50;
6877 } else {
6878 var40 = varonce;
6879 varonce = NULL;
6880 }
6881 {
6882 var57 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
6883 }
6884 ((struct instance_core__NativeArray*)var40)->values[0]=var57;
6885 {
6886 var58 = nitc__separate_compiler___MEntity___const_color(var_a);
6887 }
6888 ((struct instance_core__NativeArray*)var40)->values[2]=var58;
6889 {
6890 var59 = ((val*(*)(val* self))(var40->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var40); /* native_to_s on <var40:NativeArray[String]>*/
6891 }
6892 varonce = var40;
6893 var_attr = var59;
6894 {
6895 { /* Inline separate_compiler$MType$is_tagged (var_mtype) on <var_mtype:MType> */
6896 var62 = var_mtype->attrs[COLOR_nitc__separate_compiler__MType___is_tagged].s; /* _is_tagged on <var_mtype:MType> */
6897 var60 = var62;
6898 RET_LABEL61:(void)0;
6899 }
6900 }
6901 if (var60){
6902 {
6903 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
6904 var65 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
6905 if (unlikely(var65 == NULL)) {
6906 if(catchStack.cursor >= 0){
6907 longjmp(catchStack.envs[catchStack.cursor], 1);
6908 }
6909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6910 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6911 fatal_exit(1);
6912 }
6913 var63 = var65;
6914 RET_LABEL64:(void)0;
6915 }
6916 }
6917 {
6918 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var63) on <var63:AbstractCompiler(SeparateCompiler)> */
6919 var68 = var63->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var63:AbstractCompiler(SeparateCompiler)> */
6920 if (unlikely(var68 == NULL)) {
6921 if(catchStack.cursor >= 0){
6922 longjmp(catchStack.envs[catchStack.cursor], 1);
6923 }
6924 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
6925 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
6926 fatal_exit(1);
6927 }
6928 var66 = var68;
6929 RET_LABEL67:(void)0;
6930 }
6931 }
6932 {
6933 var69 = nitc__model___MModule___object_type(var66);
6934 }
6935 {
6936 var70 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value, var69);
6937 }
6938 var_tv = var70;
6939 if (unlikely(varonce71==NULL)) {
6940 var72 = NEW_core__NativeArray((int)8l, &type_core__NativeArray__core__String);
6941 if (likely(varonce73!=NULL)) {
6942 var74 = varonce73;
6943 } else {
6944 var75 = " = ";
6945 var77 = (val*)(3l<<2|1);
6946 var78 = (val*)(3l<<2|1);
6947 var79 = (val*)((long)(0)<<2|3);
6948 var80 = (val*)((long)(0)<<2|3);
6949 var76 = core__flat___CString___to_s_unsafe(var75, var77, var78, var79, var80);
6950 var74 = var76;
6951 varonce73 = var74;
6952 }
6953 ((struct instance_core__NativeArray*)var72)->values[1]=var74;
6954 if (likely(varonce81!=NULL)) {
6955 var82 = varonce81;
6956 } else {
6957 var83 = "; /* ";
6958 var85 = (val*)(5l<<2|1);
6959 var86 = (val*)(5l<<2|1);
6960 var87 = (val*)((long)(0)<<2|3);
6961 var88 = (val*)((long)(0)<<2|3);
6962 var84 = core__flat___CString___to_s_unsafe(var83, var85, var86, var87, var88);
6963 var82 = var84;
6964 varonce81 = var82;
6965 }
6966 ((struct instance_core__NativeArray*)var72)->values[3]=var82;
6967 if (likely(varonce89!=NULL)) {
6968 var90 = varonce89;
6969 } else {
6970 var91 = " on ";
6971 var93 = (val*)(4l<<2|1);
6972 var94 = (val*)(4l<<2|1);
6973 var95 = (val*)((long)(0)<<2|3);
6974 var96 = (val*)((long)(0)<<2|3);
6975 var92 = core__flat___CString___to_s_unsafe(var91, var93, var94, var95, var96);
6976 var90 = var92;
6977 varonce89 = var90;
6978 }
6979 ((struct instance_core__NativeArray*)var72)->values[5]=var90;
6980 if (likely(varonce97!=NULL)) {
6981 var98 = varonce97;
6982 } else {
6983 var99 = " */";
6984 var101 = (val*)(3l<<2|1);
6985 var102 = (val*)(3l<<2|1);
6986 var103 = (val*)((long)(0)<<2|3);
6987 var104 = (val*)((long)(0)<<2|3);
6988 var100 = core__flat___CString___to_s_unsafe(var99, var101, var102, var103, var104);
6989 var98 = var100;
6990 varonce97 = var98;
6991 }
6992 ((struct instance_core__NativeArray*)var72)->values[7]=var98;
6993 } else {
6994 var72 = varonce71;
6995 varonce71 = NULL;
6996 }
6997 ((struct instance_core__NativeArray*)var72)->values[0]=var_attr;
6998 {
6999 var105 = ((val*(*)(val* self))(var_tv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_tv); /* to_s on <var_tv:RuntimeVariable>*/
7000 }
7001 ((struct instance_core__NativeArray*)var72)->values[2]=var105;
7002 {
7003 var106 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
7004 }
7005 ((struct instance_core__NativeArray*)var72)->values[4]=var106;
7006 {
7007 var107 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
7008 }
7009 ((struct instance_core__NativeArray*)var72)->values[6]=var107;
7010 {
7011 var108 = ((val*(*)(val* self))(var72->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var72); /* native_to_s on <var72:NativeArray[String]>*/
7012 }
7013 varonce71 = var72;
7014 {
7015 nitc___nitc__AbstractCompilerVisitor___add(self, var108); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7016 }
7017 } else {
7018 {
7019 var109 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__is_c_primitive]))(var_mtype); /* is_c_primitive on <var_mtype:MType>*/
7020 }
7021 if (var109){
7022 /* <var_mtype:MType> isa MClassType */
7023 cltype = type_nitc__MClassType.color;
7024 idtype = type_nitc__MClassType.id;
7025 if(cltype >= var_mtype->type->table_size) {
7026 var110 = 0;
7027 } else {
7028 var110 = var_mtype->type->type_table[cltype] == idtype;
7029 }
7030 if (unlikely(!var110)) {
7031 if(catchStack.cursor >= 0){
7032 longjmp(catchStack.envs[catchStack.cursor], 1);
7033 }
7034 PRINT_ERROR("Runtime error: %s", "Assert failed");
7035 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1712);
7036 fatal_exit(1);
7037 }
7038 if (unlikely(varonce111==NULL)) {
7039 var112 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7040 if (likely(varonce113!=NULL)) {
7041 var114 = varonce113;
7042 } else {
7043 var115 = "if (";
7044 var117 = (val*)(4l<<2|1);
7045 var118 = (val*)(4l<<2|1);
7046 var119 = (val*)((long)(0)<<2|3);
7047 var120 = (val*)((long)(0)<<2|3);
7048 var116 = core__flat___CString___to_s_unsafe(var115, var117, var118, var119, var120);
7049 var114 = var116;
7050 varonce113 = var114;
7051 }
7052 ((struct instance_core__NativeArray*)var112)->values[0]=var114;
7053 if (likely(varonce121!=NULL)) {
7054 var122 = varonce121;
7055 } else {
7056 var123 = " != NULL) {";
7057 var125 = (val*)(11l<<2|1);
7058 var126 = (val*)(11l<<2|1);
7059 var127 = (val*)((long)(0)<<2|3);
7060 var128 = (val*)((long)(0)<<2|3);
7061 var124 = core__flat___CString___to_s_unsafe(var123, var125, var126, var127, var128);
7062 var122 = var124;
7063 varonce121 = var122;
7064 }
7065 ((struct instance_core__NativeArray*)var112)->values[2]=var122;
7066 } else {
7067 var112 = varonce111;
7068 varonce111 = NULL;
7069 }
7070 ((struct instance_core__NativeArray*)var112)->values[1]=var_attr;
7071 {
7072 var129 = ((val*(*)(val* self))(var112->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var112); /* native_to_s on <var112:NativeArray[String]>*/
7073 }
7074 varonce111 = var112;
7075 {
7076 nitc___nitc__AbstractCompilerVisitor___add(self, var129); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7077 }
7078 if (unlikely(varonce130==NULL)) {
7079 var131 = NEW_core__NativeArray((int)11l, &type_core__NativeArray__core__String);
7080 if (likely(varonce132!=NULL)) {
7081 var133 = varonce132;
7082 } else {
7083 var134 = "((struct instance_";
7084 var136 = (val*)(18l<<2|1);
7085 var137 = (val*)(18l<<2|1);
7086 var138 = (val*)((long)(0)<<2|3);
7087 var139 = (val*)((long)(0)<<2|3);
7088 var135 = core__flat___CString___to_s_unsafe(var134, var136, var137, var138, var139);
7089 var133 = var135;
7090 varonce132 = var133;
7091 }
7092 ((struct instance_core__NativeArray*)var131)->values[0]=var133;
7093 if (likely(varonce140!=NULL)) {
7094 var141 = varonce140;
7095 } else {
7096 var142 = "*)";
7097 var144 = (val*)(2l<<2|1);
7098 var145 = (val*)(2l<<2|1);
7099 var146 = (val*)((long)(0)<<2|3);
7100 var147 = (val*)((long)(0)<<2|3);
7101 var143 = core__flat___CString___to_s_unsafe(var142, var144, var145, var146, var147);
7102 var141 = var143;
7103 varonce140 = var141;
7104 }
7105 ((struct instance_core__NativeArray*)var131)->values[2]=var141;
7106 if (likely(varonce148!=NULL)) {
7107 var149 = varonce148;
7108 } else {
7109 var150 = ")->value = ";
7110 var152 = (val*)(11l<<2|1);
7111 var153 = (val*)(11l<<2|1);
7112 var154 = (val*)((long)(0)<<2|3);
7113 var155 = (val*)((long)(0)<<2|3);
7114 var151 = core__flat___CString___to_s_unsafe(var150, var152, var153, var154, var155);
7115 var149 = var151;
7116 varonce148 = var149;
7117 }
7118 ((struct instance_core__NativeArray*)var131)->values[4]=var149;
7119 if (likely(varonce156!=NULL)) {
7120 var157 = varonce156;
7121 } else {
7122 var158 = "; /* ";
7123 var160 = (val*)(5l<<2|1);
7124 var161 = (val*)(5l<<2|1);
7125 var162 = (val*)((long)(0)<<2|3);
7126 var163 = (val*)((long)(0)<<2|3);
7127 var159 = core__flat___CString___to_s_unsafe(var158, var160, var161, var162, var163);
7128 var157 = var159;
7129 varonce156 = var157;
7130 }
7131 ((struct instance_core__NativeArray*)var131)->values[6]=var157;
7132 if (likely(varonce164!=NULL)) {
7133 var165 = varonce164;
7134 } else {
7135 var166 = " on ";
7136 var168 = (val*)(4l<<2|1);
7137 var169 = (val*)(4l<<2|1);
7138 var170 = (val*)((long)(0)<<2|3);
7139 var171 = (val*)((long)(0)<<2|3);
7140 var167 = core__flat___CString___to_s_unsafe(var166, var168, var169, var170, var171);
7141 var165 = var167;
7142 varonce164 = var165;
7143 }
7144 ((struct instance_core__NativeArray*)var131)->values[8]=var165;
7145 if (likely(varonce172!=NULL)) {
7146 var173 = varonce172;
7147 } else {
7148 var174 = " */";
7149 var176 = (val*)(3l<<2|1);
7150 var177 = (val*)(3l<<2|1);
7151 var178 = (val*)((long)(0)<<2|3);
7152 var179 = (val*)((long)(0)<<2|3);
7153 var175 = core__flat___CString___to_s_unsafe(var174, var176, var177, var178, var179);
7154 var173 = var175;
7155 varonce172 = var173;
7156 }
7157 ((struct instance_core__NativeArray*)var131)->values[10]=var173;
7158 } else {
7159 var131 = varonce130;
7160 varonce130 = NULL;
7161 }
7162 {
7163 var180 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType(MClassType)>*/
7164 }
7165 ((struct instance_core__NativeArray*)var131)->values[1]=var180;
7166 ((struct instance_core__NativeArray*)var131)->values[3]=var_attr;
7167 {
7168 var181 = ((val*(*)(val* self))(var_value->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
7169 }
7170 ((struct instance_core__NativeArray*)var131)->values[5]=var181;
7171 {
7172 var182 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
7173 }
7174 ((struct instance_core__NativeArray*)var131)->values[7]=var182;
7175 {
7176 var183 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
7177 }
7178 ((struct instance_core__NativeArray*)var131)->values[9]=var183;
7179 {
7180 var184 = ((val*(*)(val* self))(var131->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var131); /* native_to_s on <var131:NativeArray[String]>*/
7181 }
7182 varonce130 = var131;
7183 {
7184 nitc___nitc__AbstractCompilerVisitor___add(self, var184); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7185 }
7186 if (likely(varonce185!=NULL)) {
7187 var186 = varonce185;
7188 } else {
7189 var187 = "} else {";
7190 var189 = (val*)(8l<<2|1);
7191 var190 = (val*)(8l<<2|1);
7192 var191 = (val*)((long)(0)<<2|3);
7193 var192 = (val*)((long)(0)<<2|3);
7194 var188 = core__flat___CString___to_s_unsafe(var187, var189, var190, var191, var192);
7195 var186 = var188;
7196 varonce185 = var186;
7197 }
7198 {
7199 nitc___nitc__AbstractCompilerVisitor___add(self, var186); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7200 }
7201 {
7202 var193 = nitc___nitc__AbstractCompilerVisitor___object_type(self);
7203 }
7204 {
7205 var194 = nitc___nitc__MType___as_nullable(var193);
7206 }
7207 {
7208 var195 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__autobox(self, var_value, var194);
7209 }
7210 var_value = var195;
7211 if (unlikely(varonce196==NULL)) {
7212 var197 = NEW_core__NativeArray((int)8l, &type_core__NativeArray__core__String);
7213 if (likely(varonce198!=NULL)) {
7214 var199 = varonce198;
7215 } else {
7216 var200 = " = ";
7217 var202 = (val*)(3l<<2|1);
7218 var203 = (val*)(3l<<2|1);
7219 var204 = (val*)((long)(0)<<2|3);
7220 var205 = (val*)((long)(0)<<2|3);
7221 var201 = core__flat___CString___to_s_unsafe(var200, var202, var203, var204, var205);
7222 var199 = var201;
7223 varonce198 = var199;
7224 }
7225 ((struct instance_core__NativeArray*)var197)->values[1]=var199;
7226 if (likely(varonce206!=NULL)) {
7227 var207 = varonce206;
7228 } else {
7229 var208 = "; /* ";
7230 var210 = (val*)(5l<<2|1);
7231 var211 = (val*)(5l<<2|1);
7232 var212 = (val*)((long)(0)<<2|3);
7233 var213 = (val*)((long)(0)<<2|3);
7234 var209 = core__flat___CString___to_s_unsafe(var208, var210, var211, var212, var213);
7235 var207 = var209;
7236 varonce206 = var207;
7237 }
7238 ((struct instance_core__NativeArray*)var197)->values[3]=var207;
7239 if (likely(varonce214!=NULL)) {
7240 var215 = varonce214;
7241 } else {
7242 var216 = " on ";
7243 var218 = (val*)(4l<<2|1);
7244 var219 = (val*)(4l<<2|1);
7245 var220 = (val*)((long)(0)<<2|3);
7246 var221 = (val*)((long)(0)<<2|3);
7247 var217 = core__flat___CString___to_s_unsafe(var216, var218, var219, var220, var221);
7248 var215 = var217;
7249 varonce214 = var215;
7250 }
7251 ((struct instance_core__NativeArray*)var197)->values[5]=var215;
7252 if (likely(varonce222!=NULL)) {
7253 var223 = varonce222;
7254 } else {
7255 var224 = " */";
7256 var226 = (val*)(3l<<2|1);
7257 var227 = (val*)(3l<<2|1);
7258 var228 = (val*)((long)(0)<<2|3);
7259 var229 = (val*)((long)(0)<<2|3);
7260 var225 = core__flat___CString___to_s_unsafe(var224, var226, var227, var228, var229);
7261 var223 = var225;
7262 varonce222 = var223;
7263 }
7264 ((struct instance_core__NativeArray*)var197)->values[7]=var223;
7265 } else {
7266 var197 = varonce196;
7267 varonce196 = NULL;
7268 }
7269 ((struct instance_core__NativeArray*)var197)->values[0]=var_attr;
7270 {
7271 var230 = ((val*(*)(val* self))(var_value->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
7272 }
7273 ((struct instance_core__NativeArray*)var197)->values[2]=var230;
7274 {
7275 var231 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
7276 }
7277 ((struct instance_core__NativeArray*)var197)->values[4]=var231;
7278 {
7279 var232 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
7280 }
7281 ((struct instance_core__NativeArray*)var197)->values[6]=var232;
7282 {
7283 var233 = ((val*(*)(val* self))(var197->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var197); /* native_to_s on <var197:NativeArray[String]>*/
7284 }
7285 varonce196 = var197;
7286 {
7287 nitc___nitc__AbstractCompilerVisitor___add(self, var233); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7288 }
7289 if (likely(varonce234!=NULL)) {
7290 var235 = varonce234;
7291 } else {
7292 var236 = "}";
7293 var238 = (val*)(1l<<2|1);
7294 var239 = (val*)(1l<<2|1);
7295 var240 = (val*)((long)(0)<<2|3);
7296 var241 = (val*)((long)(0)<<2|3);
7297 var237 = core__flat___CString___to_s_unsafe(var236, var238, var239, var240, var241);
7298 var235 = var237;
7299 varonce234 = var235;
7300 }
7301 {
7302 nitc___nitc__AbstractCompilerVisitor___add(self, var235); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7303 }
7304 } else {
7305 if (unlikely(varonce242==NULL)) {
7306 var243 = NEW_core__NativeArray((int)8l, &type_core__NativeArray__core__String);
7307 if (likely(varonce244!=NULL)) {
7308 var245 = varonce244;
7309 } else {
7310 var246 = " = ";
7311 var248 = (val*)(3l<<2|1);
7312 var249 = (val*)(3l<<2|1);
7313 var250 = (val*)((long)(0)<<2|3);
7314 var251 = (val*)((long)(0)<<2|3);
7315 var247 = core__flat___CString___to_s_unsafe(var246, var248, var249, var250, var251);
7316 var245 = var247;
7317 varonce244 = var245;
7318 }
7319 ((struct instance_core__NativeArray*)var243)->values[1]=var245;
7320 if (likely(varonce252!=NULL)) {
7321 var253 = varonce252;
7322 } else {
7323 var254 = "; /* ";
7324 var256 = (val*)(5l<<2|1);
7325 var257 = (val*)(5l<<2|1);
7326 var258 = (val*)((long)(0)<<2|3);
7327 var259 = (val*)((long)(0)<<2|3);
7328 var255 = core__flat___CString___to_s_unsafe(var254, var256, var257, var258, var259);
7329 var253 = var255;
7330 varonce252 = var253;
7331 }
7332 ((struct instance_core__NativeArray*)var243)->values[3]=var253;
7333 if (likely(varonce260!=NULL)) {
7334 var261 = varonce260;
7335 } else {
7336 var262 = " on ";
7337 var264 = (val*)(4l<<2|1);
7338 var265 = (val*)(4l<<2|1);
7339 var266 = (val*)((long)(0)<<2|3);
7340 var267 = (val*)((long)(0)<<2|3);
7341 var263 = core__flat___CString___to_s_unsafe(var262, var264, var265, var266, var267);
7342 var261 = var263;
7343 varonce260 = var261;
7344 }
7345 ((struct instance_core__NativeArray*)var243)->values[5]=var261;
7346 if (likely(varonce268!=NULL)) {
7347 var269 = varonce268;
7348 } else {
7349 var270 = " */";
7350 var272 = (val*)(3l<<2|1);
7351 var273 = (val*)(3l<<2|1);
7352 var274 = (val*)((long)(0)<<2|3);
7353 var275 = (val*)((long)(0)<<2|3);
7354 var271 = core__flat___CString___to_s_unsafe(var270, var272, var273, var274, var275);
7355 var269 = var271;
7356 varonce268 = var269;
7357 }
7358 ((struct instance_core__NativeArray*)var243)->values[7]=var269;
7359 } else {
7360 var243 = varonce242;
7361 varonce242 = NULL;
7362 }
7363 ((struct instance_core__NativeArray*)var243)->values[0]=var_attr;
7364 {
7365 var276 = ((val*(*)(val* self))(var_value->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
7366 }
7367 ((struct instance_core__NativeArray*)var243)->values[2]=var276;
7368 {
7369 var277 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
7370 }
7371 ((struct instance_core__NativeArray*)var243)->values[4]=var277;
7372 {
7373 var278 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
7374 }
7375 ((struct instance_core__NativeArray*)var243)->values[6]=var278;
7376 {
7377 var279 = ((val*(*)(val* self))(var243->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var243); /* native_to_s on <var243:NativeArray[String]>*/
7378 }
7379 varonce242 = var243;
7380 {
7381 nitc___nitc__AbstractCompilerVisitor___add(self, var279); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7382 }
7383 }
7384 }
7385 } else {
7386 if (unlikely(varonce280==NULL)) {
7387 var281 = NEW_core__NativeArray((int)12l, &type_core__NativeArray__core__String);
7388 if (likely(varonce282!=NULL)) {
7389 var283 = varonce282;
7390 } else {
7391 var284 = "->attrs[";
7392 var286 = (val*)(8l<<2|1);
7393 var287 = (val*)(8l<<2|1);
7394 var288 = (val*)((long)(0)<<2|3);
7395 var289 = (val*)((long)(0)<<2|3);
7396 var285 = core__flat___CString___to_s_unsafe(var284, var286, var287, var288, var289);
7397 var283 = var285;
7398 varonce282 = var283;
7399 }
7400 ((struct instance_core__NativeArray*)var281)->values[1]=var283;
7401 if (likely(varonce290!=NULL)) {
7402 var291 = varonce290;
7403 } else {
7404 var292 = "].";
7405 var294 = (val*)(2l<<2|1);
7406 var295 = (val*)(2l<<2|1);
7407 var296 = (val*)((long)(0)<<2|3);
7408 var297 = (val*)((long)(0)<<2|3);
7409 var293 = core__flat___CString___to_s_unsafe(var292, var294, var295, var296, var297);
7410 var291 = var293;
7411 varonce290 = var291;
7412 }
7413 ((struct instance_core__NativeArray*)var281)->values[3]=var291;
7414 if (likely(varonce298!=NULL)) {
7415 var299 = varonce298;
7416 } else {
7417 var300 = " = ";
7418 var302 = (val*)(3l<<2|1);
7419 var303 = (val*)(3l<<2|1);
7420 var304 = (val*)((long)(0)<<2|3);
7421 var305 = (val*)((long)(0)<<2|3);
7422 var301 = core__flat___CString___to_s_unsafe(var300, var302, var303, var304, var305);
7423 var299 = var301;
7424 varonce298 = var299;
7425 }
7426 ((struct instance_core__NativeArray*)var281)->values[5]=var299;
7427 if (likely(varonce306!=NULL)) {
7428 var307 = varonce306;
7429 } else {
7430 var308 = "; /* ";
7431 var310 = (val*)(5l<<2|1);
7432 var311 = (val*)(5l<<2|1);
7433 var312 = (val*)((long)(0)<<2|3);
7434 var313 = (val*)((long)(0)<<2|3);
7435 var309 = core__flat___CString___to_s_unsafe(var308, var310, var311, var312, var313);
7436 var307 = var309;
7437 varonce306 = var307;
7438 }
7439 ((struct instance_core__NativeArray*)var281)->values[7]=var307;
7440 if (likely(varonce314!=NULL)) {
7441 var315 = varonce314;
7442 } else {
7443 var316 = " on ";
7444 var318 = (val*)(4l<<2|1);
7445 var319 = (val*)(4l<<2|1);
7446 var320 = (val*)((long)(0)<<2|3);
7447 var321 = (val*)((long)(0)<<2|3);
7448 var317 = core__flat___CString___to_s_unsafe(var316, var318, var319, var320, var321);
7449 var315 = var317;
7450 varonce314 = var315;
7451 }
7452 ((struct instance_core__NativeArray*)var281)->values[9]=var315;
7453 if (likely(varonce322!=NULL)) {
7454 var323 = varonce322;
7455 } else {
7456 var324 = " */";
7457 var326 = (val*)(3l<<2|1);
7458 var327 = (val*)(3l<<2|1);
7459 var328 = (val*)((long)(0)<<2|3);
7460 var329 = (val*)((long)(0)<<2|3);
7461 var325 = core__flat___CString___to_s_unsafe(var324, var326, var327, var328, var329);
7462 var323 = var325;
7463 varonce322 = var323;
7464 }
7465 ((struct instance_core__NativeArray*)var281)->values[11]=var323;
7466 } else {
7467 var281 = varonce280;
7468 varonce280 = NULL;
7469 }
7470 {
7471 var330 = ((val*(*)(val* self))(var_recv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recv); /* to_s on <var_recv:RuntimeVariable>*/
7472 }
7473 ((struct instance_core__NativeArray*)var281)->values[0]=var330;
7474 {
7475 var331 = nitc__separate_compiler___MEntity___const_color(var_a);
7476 }
7477 ((struct instance_core__NativeArray*)var281)->values[2]=var331;
7478 {
7479 var332 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctypename]))(var_mtype); /* ctypename on <var_mtype:MType>*/
7480 }
7481 ((struct instance_core__NativeArray*)var281)->values[4]=var332;
7482 {
7483 var333 = ((val*(*)(val* self))(var_value->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_value); /* to_s on <var_value:RuntimeVariable>*/
7484 }
7485 ((struct instance_core__NativeArray*)var281)->values[6]=var333;
7486 {
7487 var334 = ((val*(*)(val* self))(var_a->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_a); /* to_s on <var_a:MAttribute>*/
7488 }
7489 ((struct instance_core__NativeArray*)var281)->values[8]=var334;
7490 {
7491 var335 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var_recv);
7492 }
7493 ((struct instance_core__NativeArray*)var281)->values[10]=var335;
7494 {
7495 var336 = ((val*(*)(val* self))(var281->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var281); /* native_to_s on <var281:NativeArray[String]>*/
7496 }
7497 varonce280 = var281;
7498 {
7499 nitc___nitc__AbstractCompilerVisitor___add(self, var336); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7500 }
7501 }
7502 RET_LABEL:;
7503 }
7504 /* method separate_compiler$SeparateCompilerVisitor$hardening_live_open_type for (self: SeparateCompilerVisitor, MType) */
7505 void nitc___nitc__SeparateCompilerVisitor___hardening_live_open_type(val* self, val* p0) {
7506 val* var_mtype /* var mtype: MType */;
7507 val* var /* : AbstractCompiler */;
7508 val* var2 /* : AbstractCompiler */;
7509 val* var3 /* : ModelBuilder */;
7510 val* var5 /* : ModelBuilder */;
7511 val* var6 /* : ToolContext */;
7512 val* var8 /* : ToolContext */;
7513 val* var9 /* : OptionBool */;
7514 val* var11 /* : OptionBool */;
7515 val* var12 /* : nullable Object */;
7516 val* var14 /* : nullable Object */;
7517 short int var15 /* : Bool */;
7518 short int var16 /* : Bool */;
7519 val* var17 /* : String */;
7520 val* var18 /* : String */;
7521 val* var_col /* var col: String */;
7522 val* var19 /* : NativeArray[String] */;
7523 static val* varonce;
7524 static val* varonce20;
7525 val* var21 /* : String */;
7526 char* var22 /* : CString */;
7527 val* var23 /* : String */;
7528 val* var24 /* : nullable Int */;
7529 val* var25 /* : nullable Int */;
7530 val* var26 /* : nullable Bool */;
7531 val* var27 /* : nullable Bool */;
7532 static val* varonce28;
7533 val* var29 /* : String */;
7534 char* var30 /* : CString */;
7535 val* var31 /* : String */;
7536 val* var32 /* : nullable Int */;
7537 val* var33 /* : nullable Int */;
7538 val* var34 /* : nullable Bool */;
7539 val* var35 /* : nullable Bool */;
7540 val* var36 /* : String */;
7541 val* var38 /* : NativeArray[String] */;
7542 static val* varonce37;
7543 static val* varonce39;
7544 val* var40 /* : String */;
7545 char* var41 /* : CString */;
7546 val* var42 /* : String */;
7547 val* var43 /* : nullable Int */;
7548 val* var44 /* : nullable Int */;
7549 val* var45 /* : nullable Bool */;
7550 val* var46 /* : nullable Bool */;
7551 static val* varonce47;
7552 val* var48 /* : String */;
7553 char* var49 /* : CString */;
7554 val* var50 /* : String */;
7555 val* var51 /* : nullable Int */;
7556 val* var52 /* : nullable Int */;
7557 val* var53 /* : nullable Bool */;
7558 val* var54 /* : nullable Bool */;
7559 val* var55 /* : String */;
7560 val* var56 /* : String */;
7561 val* var57 /* : String */;
7562 static val* varonce58;
7563 val* var59 /* : String */;
7564 char* var60 /* : CString */;
7565 val* var61 /* : String */;
7566 val* var62 /* : nullable Int */;
7567 val* var63 /* : nullable Int */;
7568 val* var64 /* : nullable Bool */;
7569 val* var65 /* : nullable Bool */;
7570 static val* varonce66;
7571 val* var67 /* : String */;
7572 char* var68 /* : CString */;
7573 val* var69 /* : String */;
7574 val* var70 /* : nullable Int */;
7575 val* var71 /* : nullable Int */;
7576 val* var72 /* : nullable Bool */;
7577 val* var73 /* : nullable Bool */;
7578 var_mtype = p0;
7579 {
7580 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
7581 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
7582 if (unlikely(var2 == NULL)) {
7583 if(catchStack.cursor >= 0){
7584 longjmp(catchStack.envs[catchStack.cursor], 1);
7585 }
7586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7587 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
7588 fatal_exit(1);
7589 }
7590 var = var2;
7591 RET_LABEL1:(void)0;
7592 }
7593 }
7594 {
7595 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var) on <var:AbstractCompiler(SeparateCompiler)> */
7596 var5 = var->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var:AbstractCompiler(SeparateCompiler)> */
7597 if (unlikely(var5 == NULL)) {
7598 if(catchStack.cursor >= 0){
7599 longjmp(catchStack.envs[catchStack.cursor], 1);
7600 }
7601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
7603 fatal_exit(1);
7604 }
7605 var3 = var5;
7606 RET_LABEL4:(void)0;
7607 }
7608 }
7609 {
7610 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var3) on <var3:ModelBuilder> */
7611 var8 = var3->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var3:ModelBuilder> */
7612 if (unlikely(var8 == NULL)) {
7613 if(catchStack.cursor >= 0){
7614 longjmp(catchStack.envs[catchStack.cursor], 1);
7615 }
7616 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7617 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
7618 fatal_exit(1);
7619 }
7620 var6 = var8;
7621 RET_LABEL7:(void)0;
7622 }
7623 }
7624 {
7625 { /* Inline abstract_compiler$ToolContext$opt_hardening (var6) on <var6:ToolContext> */
7626 var11 = var6->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_hardening].val; /* _opt_hardening on <var6:ToolContext> */
7627 if (unlikely(var11 == NULL)) {
7628 if(catchStack.cursor >= 0){
7629 longjmp(catchStack.envs[catchStack.cursor], 1);
7630 }
7631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
7632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 46);
7633 fatal_exit(1);
7634 }
7635 var9 = var11;
7636 RET_LABEL10:(void)0;
7637 }
7638 }
7639 {
7640 { /* Inline opts$Option$value (var9) on <var9:OptionBool> */
7641 var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on <var9:OptionBool> */
7642 var12 = var14;
7643 RET_LABEL13:(void)0;
7644 }
7645 }
7646 var15 = (short int)((long)(var12)>>2);
7647 var16 = !var15;
7648 if (var16){
7649 goto RET_LABEL;
7650 } else {
7651 }
7652 {
7653 var17 = nitc__separate_compiler___MEntity___const_color(var_mtype);
7654 }
7655 {
7656 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var17); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
7657 }
7658 {
7659 var18 = nitc__separate_compiler___MEntity___const_color(var_mtype);
7660 }
7661 var_col = var18;
7662 if (unlikely(varonce==NULL)) {
7663 var19 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7664 if (likely(varonce20!=NULL)) {
7665 var21 = varonce20;
7666 } else {
7667 var22 = "if(";
7668 var24 = (val*)(3l<<2|1);
7669 var25 = (val*)(3l<<2|1);
7670 var26 = (val*)((long)(0)<<2|3);
7671 var27 = (val*)((long)(0)<<2|3);
7672 var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
7673 var21 = var23;
7674 varonce20 = var21;
7675 }
7676 ((struct instance_core__NativeArray*)var19)->values[0]=var21;
7677 if (likely(varonce28!=NULL)) {
7678 var29 = varonce28;
7679 } else {
7680 var30 = " == -1) {";
7681 var32 = (val*)(9l<<2|1);
7682 var33 = (val*)(9l<<2|1);
7683 var34 = (val*)((long)(0)<<2|3);
7684 var35 = (val*)((long)(0)<<2|3);
7685 var31 = core__flat___CString___to_s_unsafe(var30, var32, var33, var34, var35);
7686 var29 = var31;
7687 varonce28 = var29;
7688 }
7689 ((struct instance_core__NativeArray*)var19)->values[2]=var29;
7690 } else {
7691 var19 = varonce;
7692 varonce = NULL;
7693 }
7694 ((struct instance_core__NativeArray*)var19)->values[1]=var_col;
7695 {
7696 var36 = ((val*(*)(val* self))(var19->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
7697 }
7698 varonce = var19;
7699 {
7700 nitc___nitc__AbstractCompilerVisitor___add(self, var36); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7701 }
7702 if (unlikely(varonce37==NULL)) {
7703 var38 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7704 if (likely(varonce39!=NULL)) {
7705 var40 = varonce39;
7706 } else {
7707 var41 = "PRINT_ERROR(\"Resolution of a dead open type: %s\\n\", \"";
7708 var43 = (val*)(53l<<2|1);
7709 var44 = (val*)(53l<<2|1);
7710 var45 = (val*)((long)(0)<<2|3);
7711 var46 = (val*)((long)(0)<<2|3);
7712 var42 = core__flat___CString___to_s_unsafe(var41, var43, var44, var45, var46);
7713 var40 = var42;
7714 varonce39 = var40;
7715 }
7716 ((struct instance_core__NativeArray*)var38)->values[0]=var40;
7717 if (likely(varonce47!=NULL)) {
7718 var48 = varonce47;
7719 } else {
7720 var49 = "\");";
7721 var51 = (val*)(3l<<2|1);
7722 var52 = (val*)(3l<<2|1);
7723 var53 = (val*)((long)(0)<<2|3);
7724 var54 = (val*)((long)(0)<<2|3);
7725 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
7726 var48 = var50;
7727 varonce47 = var48;
7728 }
7729 ((struct instance_core__NativeArray*)var38)->values[2]=var48;
7730 } else {
7731 var38 = varonce37;
7732 varonce37 = NULL;
7733 }
7734 {
7735 var55 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
7736 }
7737 {
7738 var56 = ((val*(*)(val* self))(var55->class->vft[COLOR_core__abstract_text__Text__escape_to_c]))(var55); /* escape_to_c on <var55:String>*/
7739 }
7740 ((struct instance_core__NativeArray*)var38)->values[1]=var56;
7741 {
7742 var57 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
7743 }
7744 varonce37 = var38;
7745 {
7746 nitc___nitc__AbstractCompilerVisitor___add(self, var57); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7747 }
7748 if (likely(varonce58!=NULL)) {
7749 var59 = varonce58;
7750 } else {
7751 var60 = "open type dead";
7752 var62 = (val*)(14l<<2|1);
7753 var63 = (val*)(14l<<2|1);
7754 var64 = (val*)((long)(0)<<2|3);
7755 var65 = (val*)((long)(0)<<2|3);
7756 var61 = core__flat___CString___to_s_unsafe(var60, var62, var63, var64, var65);
7757 var59 = var61;
7758 varonce58 = var59;
7759 }
7760 {
7761 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var59); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:SeparateCompilerVisitor>*/
7762 }
7763 if (likely(varonce66!=NULL)) {
7764 var67 = varonce66;
7765 } else {
7766 var68 = "}";
7767 var70 = (val*)(1l<<2|1);
7768 var71 = (val*)(1l<<2|1);
7769 var72 = (val*)((long)(0)<<2|3);
7770 var73 = (val*)((long)(0)<<2|3);
7771 var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
7772 var67 = var69;
7773 varonce66 = var67;
7774 }
7775 {
7776 nitc___nitc__AbstractCompilerVisitor___add(self, var67); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
7777 }
7778 RET_LABEL:;
7779 }
7780 /* method separate_compiler$SeparateCompilerVisitor$hardening_cast_type for (self: SeparateCompilerVisitor, String) */
7781 void nitc___nitc__SeparateCompilerVisitor___hardening_cast_type(val* self, val* p0) {
7782 val* var_t /* var t: String */;
7783 val* var /* : AbstractCompiler */;
7784 val* var2 /* : AbstractCompiler */;
7785 val* var3 /* : ModelBuilder */;
7786 val* var5 /* : ModelBuilder */;
7787 val* var6 /* : ToolContext */;
7788 val* var8 /* : ToolContext */;
7789 val* var9 /* : OptionBool */;
7790 val* var11 /* : OptionBool */;
7791 val* var12 /* : nullable Object */;
7792 val* var14 /* : nullable Object */;
7793 short int var15 /* : Bool */;
7794 short int var16 /* : Bool */;
7795 val* var17 /* : NativeArray[String] */;
7796 static val* varonce;
7797 static val* varonce18;
7798 val* var19 /* : String */;
7799 char* var20 /* : CString */;
7800 val* var21 /* : String */;
7801 val* var22 /* : nullable Int */;
7802 val* var23 /* : nullable Int */;
7803 val* var24 /* : nullable Bool */;
7804 val* var25 /* : nullable Bool */;
7805 static val* varonce26;
7806 val* var27 /* : String */;
7807 char* var28 /* : CString */;
7808 val* var29 /* : String */;
7809 val* var30 /* : nullable Int */;
7810 val* var31 /* : nullable Int */;
7811 val* var32 /* : nullable Bool */;
7812 val* var33 /* : nullable Bool */;
7813 val* var34 /* : String */;
7814 static val* varonce35;
7815 val* var36 /* : String */;
7816 char* var37 /* : CString */;
7817 val* var38 /* : String */;
7818 val* var39 /* : nullable Int */;
7819 val* var40 /* : nullable Int */;
7820 val* var41 /* : nullable Bool */;
7821 val* var42 /* : nullable Bool */;
7822 static val* varonce43;
7823 val* var44 /* : String */;
7824 char* var45 /* : CString */;
7825 val* var46 /* : String */;
7826 val* var47 /* : nullable Int */;
7827 val* var48 /* : nullable Int */;
7828 val* var49 /* : nullable Bool */;
7829 val* var50 /* : nullable Bool */;
7830 val* var52 /* : NativeArray[String] */;
7831 static val* varonce51;
7832 static val* varonce53;
7833 val* var54 /* : String */;
7834 char* var55 /* : CString */;
7835 val* var56 /* : String */;
7836 val* var57 /* : nullable Int */;
7837 val* var58 /* : nullable Int */;
7838 val* var59 /* : nullable Bool */;
7839 val* var60 /* : nullable Bool */;
7840 static val* varonce61;
7841 val* var62 /* : String */;
7842 char* var63 /* : CString */;
7843 val* var64 /* : String */;
7844 val* var65 /* : nullable Int */;
7845 val* var66 /* : nullable Int */;
7846 val* var67 /* : nullable Bool */;
7847 val* var68 /* : nullable Bool */;
7848 static val* varonce69;
7849 val* var70 /* : String */;
7850 char* var71 /* : CString */;
7851 val* var72 /* : String */;
7852 val* var73 /* : nullable Int */;
7853 val* var74 /* : nullable Int */;
7854 val* var75 /* : nullable Bool */;
7855 val* var76 /* : nullable Bool */;
7856 val* var77 /* : String */;
7857 val* var79 /* : NativeArray[String] */;
7858 static val* varonce78;
7859 static val* varonce80;
7860 val* var81 /* : String */;
7861 char* var82 /* : CString */;
7862 val* var83 /* : String */;
7863 val* var84 /* : nullable Int */;
7864 val* var85 /* : nullable Int */;
7865 val* var86 /* : nullable Bool */;
7866 val* var87 /* : nullable Bool */;
7867 static val* varonce88;
7868 val* var89 /* : String */;
7869 char* var90 /* : CString */;
7870 val* var91 /* : String */;
7871 val* var92 /* : nullable Int */;
7872 val* var93 /* : nullable Int */;
7873 val* var94 /* : nullable Bool */;
7874 val* var95 /* : nullable Bool */;
7875 val* var96 /* : String */;
7876 static val* varonce97;
7877 val* var98 /* : String */;
7878 char* var99 /* : CString */;
7879 val* var100 /* : String */;
7880 val* var101 /* : nullable Int */;
7881 val* var102 /* : nullable Int */;
7882 val* var103 /* : nullable Bool */;
7883 val* var104 /* : nullable Bool */;
7884 static val* varonce105;
7885 val* var106 /* : String */;
7886 char* var107 /* : CString */;
7887 val* var108 /* : String */;
7888 val* var109 /* : nullable Int */;
7889 val* var110 /* : nullable Int */;
7890 val* var111 /* : nullable Bool */;
7891 val* var112 /* : nullable Bool */;
7892 var_t = p0;
7893 {
7894 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
7895 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
7896 if (unlikely(var2 == NULL)) {
7897 if(catchStack.cursor >= 0){
7898 longjmp(catchStack.envs[catchStack.cursor], 1);
7899 }
7900 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
7901 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
7902 fatal_exit(1);
7903 }
7904 var = var2;
7905 RET_LABEL1:(void)0;
7906 }
7907 }
7908 {
7909 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var) on <var:AbstractCompiler(SeparateCompiler)> */
7910 var5 = var->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var:AbstractCompiler(SeparateCompiler)> */
7911 if (unlikely(var5 == NULL)) {
7912 if(catchStack.cursor >= 0){
7913 longjmp(catchStack.envs[catchStack.cursor], 1);
7914 }
7915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
7916 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
7917 fatal_exit(1);
7918 }
7919 var3 = var5;
7920 RET_LABEL4:(void)0;
7921 }
7922 }
7923 {
7924 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var3) on <var3:ModelBuilder> */
7925 var8 = var3->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var3:ModelBuilder> */
7926 if (unlikely(var8 == NULL)) {
7927 if(catchStack.cursor >= 0){
7928 longjmp(catchStack.envs[catchStack.cursor], 1);
7929 }
7930 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
7931 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
7932 fatal_exit(1);
7933 }
7934 var6 = var8;
7935 RET_LABEL7:(void)0;
7936 }
7937 }
7938 {
7939 { /* Inline abstract_compiler$ToolContext$opt_hardening (var6) on <var6:ToolContext> */
7940 var11 = var6->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_hardening].val; /* _opt_hardening on <var6:ToolContext> */
7941 if (unlikely(var11 == NULL)) {
7942 if(catchStack.cursor >= 0){
7943 longjmp(catchStack.envs[catchStack.cursor], 1);
7944 }
7945 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
7946 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 46);
7947 fatal_exit(1);
7948 }
7949 var9 = var11;
7950 RET_LABEL10:(void)0;
7951 }
7952 }
7953 {
7954 { /* Inline opts$Option$value (var9) on <var9:OptionBool> */
7955 var14 = var9->attrs[COLOR_opts__Option___value].val; /* _value on <var9:OptionBool> */
7956 var12 = var14;
7957 RET_LABEL13:(void)0;
7958 }
7959 }
7960 var15 = (short int)((long)(var12)>>2);
7961 var16 = !var15;
7962 if (var16){
7963 goto RET_LABEL;
7964 } else {
7965 }
7966 if (unlikely(varonce==NULL)) {
7967 var17 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7968 if (likely(varonce18!=NULL)) {
7969 var19 = varonce18;
7970 } else {
7971 var20 = "if(";
7972 var22 = (val*)(3l<<2|1);
7973 var23 = (val*)(3l<<2|1);
7974 var24 = (val*)((long)(0)<<2|3);
7975 var25 = (val*)((long)(0)<<2|3);
7976 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
7977 var19 = var21;
7978 varonce18 = var19;
7979 }
7980 ((struct instance_core__NativeArray*)var17)->values[0]=var19;
7981 if (likely(varonce26!=NULL)) {
7982 var27 = varonce26;
7983 } else {
7984 var28 = " == NULL) {";
7985 var30 = (val*)(11l<<2|1);
7986 var31 = (val*)(11l<<2|1);
7987 var32 = (val*)((long)(0)<<2|3);
7988 var33 = (val*)((long)(0)<<2|3);
7989 var29 = core__flat___CString___to_s_unsafe(var28, var30, var31, var32, var33);
7990 var27 = var29;
7991 varonce26 = var27;
7992 }
7993 ((struct instance_core__NativeArray*)var17)->values[2]=var27;
7994 } else {
7995 var17 = varonce;
7996 varonce = NULL;
7997 }
7998 ((struct instance_core__NativeArray*)var17)->values[1]=var_t;
7999 {
8000 var34 = ((val*(*)(val* self))(var17->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var17); /* native_to_s on <var17:NativeArray[String]>*/
8001 }
8002 varonce = var17;
8003 {
8004 nitc___nitc__AbstractCompilerVisitor___add(self, var34); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
8005 }
8006 if (likely(varonce35!=NULL)) {
8007 var36 = varonce35;
8008 } else {
8009 var37 = "cast type null";
8010 var39 = (val*)(14l<<2|1);
8011 var40 = (val*)(14l<<2|1);
8012 var41 = (val*)((long)(0)<<2|3);
8013 var42 = (val*)((long)(0)<<2|3);
8014 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
8015 var36 = var38;
8016 varonce35 = var36;
8017 }
8018 {
8019 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var36); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:SeparateCompilerVisitor>*/
8020 }
8021 if (likely(varonce43!=NULL)) {
8022 var44 = varonce43;
8023 } else {
8024 var45 = "}";
8025 var47 = (val*)(1l<<2|1);
8026 var48 = (val*)(1l<<2|1);
8027 var49 = (val*)((long)(0)<<2|3);
8028 var50 = (val*)((long)(0)<<2|3);
8029 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
8030 var44 = var46;
8031 varonce43 = var44;
8032 }
8033 {
8034 nitc___nitc__AbstractCompilerVisitor___add(self, var44); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
8035 }
8036 if (unlikely(varonce51==NULL)) {
8037 var52 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
8038 if (likely(varonce53!=NULL)) {
8039 var54 = varonce53;
8040 } else {
8041 var55 = "if(";
8042 var57 = (val*)(3l<<2|1);
8043 var58 = (val*)(3l<<2|1);
8044 var59 = (val*)((long)(0)<<2|3);
8045 var60 = (val*)((long)(0)<<2|3);
8046 var56 = core__flat___CString___to_s_unsafe(var55, var57, var58, var59, var60);
8047 var54 = var56;
8048 varonce53 = var54;
8049 }
8050 ((struct instance_core__NativeArray*)var52)->values[0]=var54;
8051 if (likely(varonce61!=NULL)) {
8052 var62 = varonce61;
8053 } else {
8054 var63 = "->id == -1 || ";
8055 var65 = (val*)(14l<<2|1);
8056 var66 = (val*)(14l<<2|1);
8057 var67 = (val*)((long)(0)<<2|3);
8058 var68 = (val*)((long)(0)<<2|3);
8059 var64 = core__flat___CString___to_s_unsafe(var63, var65, var66, var67, var68);
8060 var62 = var64;
8061 varonce61 = var62;
8062 }
8063 ((struct instance_core__NativeArray*)var52)->values[2]=var62;
8064 if (likely(varonce69!=NULL)) {
8065 var70 = varonce69;
8066 } else {
8067 var71 = "->color == -1) {";
8068 var73 = (val*)(16l<<2|1);
8069 var74 = (val*)(16l<<2|1);
8070 var75 = (val*)((long)(0)<<2|3);
8071 var76 = (val*)((long)(0)<<2|3);
8072 var72 = core__flat___CString___to_s_unsafe(var71, var73, var74, var75, var76);
8073 var70 = var72;
8074 varonce69 = var70;
8075 }
8076 ((struct instance_core__NativeArray*)var52)->values[4]=var70;
8077 } else {
8078 var52 = varonce51;
8079 varonce51 = NULL;
8080 }
8081 ((struct instance_core__NativeArray*)var52)->values[1]=var_t;
8082 ((struct instance_core__NativeArray*)var52)->values[3]=var_t;
8083 {
8084 var77 = ((val*(*)(val* self))(var52->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var52); /* native_to_s on <var52:NativeArray[String]>*/
8085 }
8086 varonce51 = var52;
8087 {
8088 nitc___nitc__AbstractCompilerVisitor___add(self, var77); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
8089 }
8090 if (unlikely(varonce78==NULL)) {
8091 var79 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
8092 if (likely(varonce80!=NULL)) {
8093 var81 = varonce80;
8094 } else {
8095 var82 = "PRINT_ERROR(\"Try to cast on a dead cast type: %s\\n\", ";
8096 var84 = (val*)(53l<<2|1);
8097 var85 = (val*)(53l<<2|1);
8098 var86 = (val*)((long)(0)<<2|3);
8099 var87 = (val*)((long)(0)<<2|3);
8100 var83 = core__flat___CString___to_s_unsafe(var82, var84, var85, var86, var87);
8101 var81 = var83;
8102 varonce80 = var81;
8103 }
8104 ((struct instance_core__NativeArray*)var79)->values[0]=var81;
8105 if (likely(varonce88!=NULL)) {
8106 var89 = varonce88;
8107 } else {
8108 var90 = "->name);";
8109 var92 = (val*)(8l<<2|1);
8110 var93 = (val*)(8l<<2|1);
8111 var94 = (val*)((long)(0)<<2|3);
8112 var95 = (val*)((long)(0)<<2|3);
8113 var91 = core__flat___CString___to_s_unsafe(var90, var92, var93, var94, var95);
8114 var89 = var91;
8115 varonce88 = var89;
8116 }
8117 ((struct instance_core__NativeArray*)var79)->values[2]=var89;
8118 } else {
8119 var79 = varonce78;
8120 varonce78 = NULL;
8121 }
8122 ((struct instance_core__NativeArray*)var79)->values[1]=var_t;
8123 {
8124 var96 = ((val*(*)(val* self))(var79->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var79); /* native_to_s on <var79:NativeArray[String]>*/
8125 }
8126 varonce78 = var79;
8127 {
8128 nitc___nitc__AbstractCompilerVisitor___add(self, var96); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
8129 }
8130 if (likely(varonce97!=NULL)) {
8131 var98 = varonce97;
8132 } else {
8133 var99 = "cast type dead";
8134 var101 = (val*)(14l<<2|1);
8135 var102 = (val*)(14l<<2|1);
8136 var103 = (val*)((long)(0)<<2|3);
8137 var104 = (val*)((long)(0)<<2|3);
8138 var100 = core__flat___CString___to_s_unsafe(var99, var101, var102, var103, var104);
8139 var98 = var100;
8140 varonce97 = var98;
8141 }
8142 {
8143 nitc___nitc__AbstractCompilerVisitor___add_abort(self, var98); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <self:SeparateCompilerVisitor>*/
8144 }
8145 if (likely(varonce105!=NULL)) {
8146 var106 = varonce105;
8147 } else {
8148 var107 = "}";
8149 var109 = (val*)(1l<<2|1);
8150 var110 = (val*)(1l<<2|1);
8151 var111 = (val*)((long)(0)<<2|3);
8152 var112 = (val*)((long)(0)<<2|3);
8153 var108 = core__flat___CString___to_s_unsafe(var107, var109, var110, var111, var112);
8154 var106 = var108;
8155 varonce105 = var106;
8156 }
8157 {
8158 nitc___nitc__AbstractCompilerVisitor___add(self, var106); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
8159 }
8160 RET_LABEL:;
8161 }
8162 /* method separate_compiler$SeparateCompilerVisitor$init_instance for (self: SeparateCompilerVisitor, MClassType): RuntimeVariable */
8163 val* nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__init_instance(val* self, val* p0) {
8164 val* var /* : RuntimeVariable */;
8165 val* var_mtype /* var mtype: MClassType */;
8166 val* var1 /* : NativeArray[String] */;
8167 static val* varonce;
8168 static val* varonce2;
8169 val* var3 /* : String */;
8170 char* var4 /* : CString */;
8171 val* var5 /* : String */;
8172 val* var6 /* : nullable Int */;
8173 val* var7 /* : nullable Int */;
8174 val* var8 /* : nullable Bool */;
8175 val* var9 /* : nullable Bool */;
8176 val* var10 /* : MClass */;
8177 val* var12 /* : MClass */;
8178 val* var13 /* : String */;
8179 val* var14 /* : String */;
8180 val* var15 /* : AbstractCompiler */;
8181 val* var17 /* : AbstractCompiler */;
8182 val* var_compiler /* var compiler: SeparateCompiler */;
8183 short int var18 /* : Bool */;
8184 short int var19 /* : Bool */;
8185 int cltype;
8186 int idtype;
8187 short int var_ /* var : Bool */;
8188 short int var20 /* : Bool */;
8189 short int var22 /* : Bool */;
8190 val* var23 /* : nullable StaticFrame */;
8191 val* var25 /* : nullable StaticFrame */;
8192 val* var26 /* : MPropDef */;
8193 val* var28 /* : MPropDef */;
8194 val* var29 /* : MClassDef */;
8195 val* var31 /* : MClassDef */;
8196 val* var32 /* : nullable StaticFrame */;
8197 val* var34 /* : nullable StaticFrame */;
8198 val* var35 /* : Array[RuntimeVariable] */;
8199 val* var37 /* : Array[RuntimeVariable] */;
8200 val* var38 /* : nullable Object */;
8201 val* var_recv /* var recv: RuntimeVariable */;
8202 val* var39 /* : String */;
8203 val* var_recv_type_info /* var recv_type_info: String */;
8204 val* var40 /* : String */;
8205 val* var42 /* : NativeArray[String] */;
8206 static val* varonce41;
8207 static val* varonce43;
8208 val* var44 /* : String */;
8209 char* var45 /* : CString */;
8210 val* var46 /* : String */;
8211 val* var47 /* : nullable Int */;
8212 val* var48 /* : nullable Int */;
8213 val* var49 /* : nullable Bool */;
8214 val* var50 /* : nullable Bool */;
8215 static val* varonce51;
8216 val* var52 /* : String */;
8217 char* var53 /* : CString */;
8218 val* var54 /* : String */;
8219 val* var55 /* : nullable Int */;
8220 val* var56 /* : nullable Int */;
8221 val* var57 /* : nullable Bool */;
8222 val* var58 /* : nullable Bool */;
8223 static val* varonce59;
8224 val* var60 /* : String */;
8225 char* var61 /* : CString */;
8226 val* var62 /* : String */;
8227 val* var63 /* : nullable Int */;
8228 val* var64 /* : nullable Int */;
8229 val* var65 /* : nullable Bool */;
8230 val* var66 /* : nullable Bool */;
8231 static val* varonce67;
8232 val* var68 /* : String */;
8233 char* var69 /* : CString */;
8234 val* var70 /* : String */;
8235 val* var71 /* : nullable Int */;
8236 val* var72 /* : nullable Int */;
8237 val* var73 /* : nullable Bool */;
8238 val* var74 /* : nullable Bool */;
8239 val* var75 /* : MClass */;
8240 val* var77 /* : MClass */;
8241 val* var78 /* : String */;
8242 val* var79 /* : String */;
8243 val* var80 /* : String */;
8244 val* var81 /* : RuntimeVariable */;
8245 val* var82 /* : Set[MType] */;
8246 val* var84 /* : Set[MType] */;
8247 val* var86 /* : NativeArray[String] */;
8248 static val* varonce85;
8249 static val* varonce87;
8250 val* var88 /* : String */;
8251 char* var89 /* : CString */;
8252 val* var90 /* : String */;
8253 val* var91 /* : nullable Int */;
8254 val* var92 /* : nullable Int */;
8255 val* var93 /* : nullable Bool */;
8256 val* var94 /* : nullable Bool */;
8257 val* var95 /* : String */;
8258 val* var96 /* : String */;
8259 val* var98 /* : NativeArray[String] */;
8260 static val* varonce97;
8261 static val* varonce99;
8262 val* var100 /* : String */;
8263 char* var101 /* : CString */;
8264 val* var102 /* : String */;
8265 val* var103 /* : nullable Int */;
8266 val* var104 /* : nullable Int */;
8267 val* var105 /* : nullable Bool */;
8268 val* var106 /* : nullable Bool */;
8269 static val* varonce107;
8270 val* var108 /* : String */;
8271 char* var109 /* : CString */;
8272 val* var110 /* : String */;
8273 val* var111 /* : nullable Int */;
8274 val* var112 /* : nullable Int */;
8275 val* var113 /* : nullable Bool */;
8276 val* var114 /* : nullable Bool */;
8277 static val* varonce115;
8278 val* var116 /* : String */;
8279 char* var117 /* : CString */;
8280 val* var118 /* : String */;
8281 val* var119 /* : nullable Int */;
8282 val* var120 /* : nullable Int */;
8283 val* var121 /* : nullable Bool */;
8284 val* var122 /* : nullable Bool */;
8285 val* var123 /* : MClass */;
8286 val* var125 /* : MClass */;
8287 val* var126 /* : String */;
8288 val* var127 /* : String */;
8289 val* var128 /* : String */;
8290 val* var129 /* : RuntimeVariable */;
8291 var_mtype = p0;
8292 if (unlikely(varonce==NULL)) {
8293 var1 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8294 if (likely(varonce2!=NULL)) {
8295 var3 = varonce2;
8296 } else {
8297 var4 = "NEW_";
8298 var6 = (val*)(4l<<2|1);
8299 var7 = (val*)(4l<<2|1);
8300 var8 = (val*)((long)(0)<<2|3);
8301 var9 = (val*)((long)(0)<<2|3);
8302 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
8303 var3 = var5;
8304 varonce2 = var3;
8305 }
8306 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
8307 } else {
8308 var1 = varonce;
8309 varonce = NULL;
8310 }
8311 {
8312 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
8313 var12 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
8314 if (unlikely(var12 == NULL)) {
8315 if(catchStack.cursor >= 0){
8316 longjmp(catchStack.envs[catchStack.cursor], 1);
8317 }
8318 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8319 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
8320 fatal_exit(1);
8321 }
8322 var10 = var12;
8323 RET_LABEL11:(void)0;
8324 }
8325 }
8326 {
8327 var13 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var10);
8328 }
8329 ((struct instance_core__NativeArray*)var1)->values[1]=var13;
8330 {
8331 var14 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
8332 }
8333 varonce = var1;
8334 {
8335 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var14); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
8336 }
8337 {
8338 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
8339 var17 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
8340 if (unlikely(var17 == NULL)) {
8341 if(catchStack.cursor >= 0){
8342 longjmp(catchStack.envs[catchStack.cursor], 1);
8343 }
8344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
8345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
8346 fatal_exit(1);
8347 }
8348 var15 = var17;
8349 RET_LABEL16:(void)0;
8350 }
8351 }
8352 var_compiler = var15;
8353 /* <var_mtype:MClassType> isa MGenericType */
8354 cltype = type_nitc__MGenericType.color;
8355 idtype = type_nitc__MGenericType.id;
8356 if(cltype >= var_mtype->type->table_size) {
8357 var19 = 0;
8358 } else {
8359 var19 = var_mtype->type->type_table[cltype] == idtype;
8360 }
8361 var_ = var19;
8362 if (var19){
8363 {
8364 { /* Inline model$MGenericType$need_anchor (var_mtype) on <var_mtype:MClassType(MGenericType)> */
8365 var22 = var_mtype->attrs[COLOR_nitc__model__MGenericType___need_anchor].s; /* _need_anchor on <var_mtype:MClassType(MGenericType)> */
8366 var20 = var22;
8367 RET_LABEL21:(void)0;
8368 }
8369 }
8370 var18 = var20;
8371 } else {
8372 var18 = var_;
8373 }
8374 if (var18){
8375 {
8376 nitc___nitc__SeparateCompilerVisitor___hardening_live_open_type(self, var_mtype); /* Direct call separate_compiler$SeparateCompilerVisitor$hardening_live_open_type on <self:SeparateCompilerVisitor>*/
8377 }
8378 {
8379 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:SeparateCompilerVisitor> */
8380 var25 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateCompilerVisitor> */
8381 var23 = var25;
8382 RET_LABEL24:(void)0;
8383 }
8384 }
8385 if (var23 == NULL) {
8386 if(catchStack.cursor >= 0){
8387 longjmp(catchStack.envs[catchStack.cursor], 1);
8388 }
8389 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8390 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1761);
8391 fatal_exit(1);
8392 } else {
8393 { /* Inline abstract_compiler$StaticFrame$mpropdef (var23) on <var23:nullable StaticFrame> */
8394 if (unlikely(var23 == NULL)) {
8395 if(catchStack.cursor >= 0){
8396 longjmp(catchStack.envs[catchStack.cursor], 1);
8397 }
8398 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
8400 fatal_exit(1);
8401 }
8402 var28 = var23->attrs[COLOR_nitc__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var23:nullable StaticFrame> */
8403 if (unlikely(var28 == NULL)) {
8404 if(catchStack.cursor >= 0){
8405 longjmp(catchStack.envs[catchStack.cursor], 1);
8406 }
8407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
8408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
8409 fatal_exit(1);
8410 }
8411 var26 = var28;
8412 RET_LABEL27:(void)0;
8413 }
8414 }
8415 {
8416 { /* Inline model$MPropDef$mclassdef (var26) on <var26:MPropDef> */
8417 var31 = var26->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var26:MPropDef> */
8418 if (unlikely(var31 == NULL)) {
8419 if(catchStack.cursor >= 0){
8420 longjmp(catchStack.envs[catchStack.cursor], 1);
8421 }
8422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8423 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
8424 fatal_exit(1);
8425 }
8426 var29 = var31;
8427 RET_LABEL30:(void)0;
8428 }
8429 }
8430 {
8431 nitc___nitc__SeparateCompilerVisitor___link_unresolved_type(self, var29, var_mtype); /* Direct call separate_compiler$SeparateCompilerVisitor$link_unresolved_type on <self:SeparateCompilerVisitor>*/
8432 }
8433 {
8434 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:SeparateCompilerVisitor> */
8435 var34 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateCompilerVisitor> */
8436 var32 = var34;
8437 RET_LABEL33:(void)0;
8438 }
8439 }
8440 if (var32 == NULL) {
8441 if(catchStack.cursor >= 0){
8442 longjmp(catchStack.envs[catchStack.cursor], 1);
8443 }
8444 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1762);
8446 fatal_exit(1);
8447 } else {
8448 { /* Inline abstract_compiler$StaticFrame$arguments (var32) on <var32:nullable StaticFrame> */
8449 if (unlikely(var32 == NULL)) {
8450 if(catchStack.cursor >= 0){
8451 longjmp(catchStack.envs[catchStack.cursor], 1);
8452 }
8453 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
8455 fatal_exit(1);
8456 }
8457 var37 = var32->attrs[COLOR_nitc__abstract_compiler__StaticFrame___arguments].val; /* _arguments on <var32:nullable StaticFrame> */
8458 if (unlikely(var37 == NULL)) {
8459 if(catchStack.cursor >= 0){
8460 longjmp(catchStack.envs[catchStack.cursor], 1);
8461 }
8462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _arguments");
8463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2034);
8464 fatal_exit(1);
8465 }
8466 var35 = var37;
8467 RET_LABEL36:(void)0;
8468 }
8469 }
8470 {
8471 var38 = core___core__SequenceRead___Collection__first(var35);
8472 }
8473 var_recv = var38;
8474 {
8475 var39 = nitc___nitc__SeparateCompilerVisitor___type_info(self, var_recv);
8476 }
8477 var_recv_type_info = var39;
8478 {
8479 var40 = nitc__separate_compiler___MEntity___const_color(var_mtype);
8480 }
8481 {
8482 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var40); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
8483 }
8484 if (unlikely(varonce41==NULL)) {
8485 var42 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
8486 if (likely(varonce43!=NULL)) {
8487 var44 = varonce43;
8488 } else {
8489 var45 = "NEW_";
8490 var47 = (val*)(4l<<2|1);
8491 var48 = (val*)(4l<<2|1);
8492 var49 = (val*)((long)(0)<<2|3);
8493 var50 = (val*)((long)(0)<<2|3);
8494 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
8495 var44 = var46;
8496 varonce43 = var44;
8497 }
8498 ((struct instance_core__NativeArray*)var42)->values[0]=var44;
8499 if (likely(varonce51!=NULL)) {
8500 var52 = varonce51;
8501 } else {
8502 var53 = "(";
8503 var55 = (val*)(1l<<2|1);
8504 var56 = (val*)(1l<<2|1);
8505 var57 = (val*)((long)(0)<<2|3);
8506 var58 = (val*)((long)(0)<<2|3);
8507 var54 = core__flat___CString___to_s_unsafe(var53, var55, var56, var57, var58);
8508 var52 = var54;
8509 varonce51 = var52;
8510 }
8511 ((struct instance_core__NativeArray*)var42)->values[2]=var52;
8512 if (likely(varonce59!=NULL)) {
8513 var60 = varonce59;
8514 } else {
8515 var61 = "->resolution_table->types[";
8516 var63 = (val*)(26l<<2|1);
8517 var64 = (val*)(26l<<2|1);
8518 var65 = (val*)((long)(0)<<2|3);
8519 var66 = (val*)((long)(0)<<2|3);
8520 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
8521 var60 = var62;
8522 varonce59 = var60;
8523 }
8524 ((struct instance_core__NativeArray*)var42)->values[4]=var60;
8525 if (likely(varonce67!=NULL)) {
8526 var68 = varonce67;
8527 } else {
8528 var69 = "])";
8529 var71 = (val*)(2l<<2|1);
8530 var72 = (val*)(2l<<2|1);
8531 var73 = (val*)((long)(0)<<2|3);
8532 var74 = (val*)((long)(0)<<2|3);
8533 var70 = core__flat___CString___to_s_unsafe(var69, var71, var72, var73, var74);
8534 var68 = var70;
8535 varonce67 = var68;
8536 }
8537 ((struct instance_core__NativeArray*)var42)->values[6]=var68;
8538 } else {
8539 var42 = varonce41;
8540 varonce41 = NULL;
8541 }
8542 {
8543 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType(MGenericType)> */
8544 var77 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType(MGenericType)> */
8545 if (unlikely(var77 == NULL)) {
8546 if(catchStack.cursor >= 0){
8547 longjmp(catchStack.envs[catchStack.cursor], 1);
8548 }
8549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8550 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
8551 fatal_exit(1);
8552 }
8553 var75 = var77;
8554 RET_LABEL76:(void)0;
8555 }
8556 }
8557 {
8558 var78 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var75);
8559 }
8560 ((struct instance_core__NativeArray*)var42)->values[1]=var78;
8561 ((struct instance_core__NativeArray*)var42)->values[3]=var_recv_type_info;
8562 {
8563 var79 = nitc__separate_compiler___MEntity___const_color(var_mtype);
8564 }
8565 ((struct instance_core__NativeArray*)var42)->values[5]=var79;
8566 {
8567 var80 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var42); /* native_to_s on <var42:NativeArray[String]>*/
8568 }
8569 varonce41 = var42;
8570 {
8571 var81 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var80, var_mtype);
8572 }
8573 var = var81;
8574 goto RET_LABEL;
8575 } else {
8576 }
8577 {
8578 { /* Inline separate_compiler$SeparateCompiler$undead_types (var_compiler) on <var_compiler:SeparateCompiler> */
8579 var84 = var_compiler->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on <var_compiler:SeparateCompiler> */
8580 if (unlikely(var84 == NULL)) {
8581 if(catchStack.cursor >= 0){
8582 longjmp(catchStack.envs[catchStack.cursor], 1);
8583 }
8584 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
8585 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 146);
8586 fatal_exit(1);
8587 }
8588 var82 = var84;
8589 RET_LABEL83:(void)0;
8590 }
8591 }
8592 {
8593 ((void(*)(val* self, val* p0))((((long)var82&3)?class_info[((long)var82&3)]:var82->class)->vft[COLOR_core__abstract_collection__SimpleCollection__add]))(var82, var_mtype); /* add on <var82:Set[MType]>*/
8594 }
8595 if (unlikely(varonce85==NULL)) {
8596 var86 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8597 if (likely(varonce87!=NULL)) {
8598 var88 = varonce87;
8599 } else {
8600 var89 = "type_";
8601 var91 = (val*)(5l<<2|1);
8602 var92 = (val*)(5l<<2|1);
8603 var93 = (val*)((long)(0)<<2|3);
8604 var94 = (val*)((long)(0)<<2|3);
8605 var90 = core__flat___CString___to_s_unsafe(var89, var91, var92, var93, var94);
8606 var88 = var90;
8607 varonce87 = var88;
8608 }
8609 ((struct instance_core__NativeArray*)var86)->values[0]=var88;
8610 } else {
8611 var86 = varonce85;
8612 varonce85 = NULL;
8613 }
8614 {
8615 var95 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MClassType>*/
8616 }
8617 ((struct instance_core__NativeArray*)var86)->values[1]=var95;
8618 {
8619 var96 = ((val*(*)(val* self))(var86->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var86); /* native_to_s on <var86:NativeArray[String]>*/
8620 }
8621 varonce85 = var86;
8622 {
8623 nitc___nitc__AbstractCompilerVisitor___require_declaration(self, var96); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <self:SeparateCompilerVisitor>*/
8624 }
8625 if (unlikely(varonce97==NULL)) {
8626 var98 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
8627 if (likely(varonce99!=NULL)) {
8628 var100 = varonce99;
8629 } else {
8630 var101 = "NEW_";
8631 var103 = (val*)(4l<<2|1);
8632 var104 = (val*)(4l<<2|1);
8633 var105 = (val*)((long)(0)<<2|3);
8634 var106 = (val*)((long)(0)<<2|3);
8635 var102 = core__flat___CString___to_s_unsafe(var101, var103, var104, var105, var106);
8636 var100 = var102;
8637 varonce99 = var100;
8638 }
8639 ((struct instance_core__NativeArray*)var98)->values[0]=var100;
8640 if (likely(varonce107!=NULL)) {
8641 var108 = varonce107;
8642 } else {
8643 var109 = "(&type_";
8644 var111 = (val*)(7l<<2|1);
8645 var112 = (val*)(7l<<2|1);
8646 var113 = (val*)((long)(0)<<2|3);
8647 var114 = (val*)((long)(0)<<2|3);
8648 var110 = core__flat___CString___to_s_unsafe(var109, var111, var112, var113, var114);
8649 var108 = var110;
8650 varonce107 = var108;
8651 }
8652 ((struct instance_core__NativeArray*)var98)->values[2]=var108;
8653 if (likely(varonce115!=NULL)) {
8654 var116 = varonce115;
8655 } else {
8656 var117 = ")";
8657 var119 = (val*)(1l<<2|1);
8658 var120 = (val*)(1l<<2|1);
8659 var121 = (val*)((long)(0)<<2|3);
8660 var122 = (val*)((long)(0)<<2|3);
8661 var118 = core__flat___CString___to_s_unsafe(var117, var119, var120, var121, var122);
8662 var116 = var118;
8663 varonce115 = var116;
8664 }
8665 ((struct instance_core__NativeArray*)var98)->values[4]=var116;
8666 } else {
8667 var98 = varonce97;
8668 varonce97 = NULL;
8669 }
8670 {
8671 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
8672 var125 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
8673 if (unlikely(var125 == NULL)) {
8674 if(catchStack.cursor >= 0){
8675 longjmp(catchStack.envs[catchStack.cursor], 1);
8676 }
8677 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
8678 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
8679 fatal_exit(1);
8680 }
8681 var123 = var125;
8682 RET_LABEL124:(void)0;
8683 }
8684 }
8685 {
8686 var126 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var123);
8687 }
8688 ((struct instance_core__NativeArray*)var98)->values[1]=var126;
8689 {
8690 var127 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MClassType>*/
8691 }
8692 ((struct instance_core__NativeArray*)var98)->values[3]=var127;
8693 {
8694 var128 = ((val*(*)(val* self))(var98->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var98); /* native_to_s on <var98:NativeArray[String]>*/
8695 }
8696 varonce97 = var98;
8697 {
8698 var129 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var128, var_mtype);
8699 }
8700 var = var129;
8701 goto RET_LABEL;
8702 RET_LABEL:;
8703 return var;
8704 }