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