Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__separate_compiler.sep.2.c
1 #include "nitc__separate_compiler.sep.0.h"
2 /* method separate_compiler$SeparateCompiler$compile_type_to_c for (self: SeparateCompiler, MType) */
3 void nitc___nitc__SeparateCompiler___compile_type_to_c(val* self, val* p0) {
4 val* var_mtype /* var mtype: MType */;
5 short int var /* : Bool */;
6 short int var1 /* : Bool */;
7 short int var2 /* : Bool */;
8 short int var3 /* : Bool */;
9 int cltype;
10 int idtype;
11 short int var_ /* var : Bool */;
12 val* var4 /* : nullable RapidTypeAnalysis */;
13 val* var6 /* : nullable RapidTypeAnalysis */;
14 val* var7 /* : HashSet[MClassType] */;
15 val* var9 /* : HashSet[MClassType] */;
16 short int var10 /* : Bool */;
17 short int var_is_live /* var is_live: Bool */;
18 val* var11 /* : nullable RapidTypeAnalysis */;
19 val* var13 /* : nullable RapidTypeAnalysis */;
20 val* var14 /* : HashSet[MType] */;
21 val* var16 /* : HashSet[MType] */;
22 short int var17 /* : Bool */;
23 short int var_is_cast_live /* var is_cast_live: Bool */;
24 val* var18 /* : String */;
25 val* var_c_name /* var c_name: String */;
26 val* var19 /* : SeparateCompilerVisitor */;
27 val* var_v /* var v: SeparateCompilerVisitor */;
28 val* var20 /* : NativeArray[String] */;
29 static val* varonce;
30 static val* varonce21;
31 val* var22 /* : String */;
32 char* var23 /* : CString */;
33 val* var24 /* : String */;
34 val* var25 /* : nullable Int */;
35 val* var26 /* : nullable Int */;
36 val* var27 /* : nullable Bool */;
37 val* var28 /* : nullable Bool */;
38 static val* varonce29;
39 val* var30 /* : String */;
40 char* var31 /* : CString */;
41 val* var32 /* : String */;
42 val* var33 /* : nullable Int */;
43 val* var34 /* : nullable Int */;
44 val* var35 /* : nullable Bool */;
45 val* var36 /* : nullable Bool */;
46 val* var37 /* : String */;
47 val* var38 /* : String */;
48 val* var40 /* : NativeArray[String] */;
49 static val* varonce39;
50 static val* varonce41;
51 val* var42 /* : String */;
52 char* var43 /* : CString */;
53 val* var44 /* : String */;
54 val* var45 /* : nullable Int */;
55 val* var46 /* : nullable Int */;
56 val* var47 /* : nullable Bool */;
57 val* var48 /* : nullable Bool */;
58 val* var49 /* : String */;
59 val* var51 /* : NativeArray[String] */;
60 static val* varonce50;
61 static val* varonce52;
62 val* var53 /* : String */;
63 char* var54 /* : CString */;
64 val* var55 /* : String */;
65 val* var56 /* : nullable Int */;
66 val* var57 /* : nullable Int */;
67 val* var58 /* : nullable Bool */;
68 val* var59 /* : nullable Bool */;
69 static val* varonce60;
70 val* var61 /* : String */;
71 char* var62 /* : CString */;
72 val* var63 /* : String */;
73 val* var64 /* : nullable Int */;
74 val* var65 /* : nullable Int */;
75 val* var66 /* : nullable Bool */;
76 val* var67 /* : nullable Bool */;
77 val* var68 /* : String */;
78 val* var70 /* : NativeArray[String] */;
79 static val* varonce69;
80 static val* varonce71;
81 val* var72 /* : String */;
82 char* var73 /* : CString */;
83 val* var74 /* : String */;
84 val* var75 /* : nullable Int */;
85 val* var76 /* : nullable Int */;
86 val* var77 /* : nullable Bool */;
87 val* var78 /* : nullable Bool */;
88 static val* varonce79;
89 val* var80 /* : String */;
90 char* var81 /* : CString */;
91 val* var82 /* : String */;
92 val* var83 /* : nullable Int */;
93 val* var84 /* : nullable Int */;
94 val* var85 /* : nullable Bool */;
95 val* var86 /* : nullable Bool */;
96 val* var87 /* : String */;
97 val* var89 /* : NativeArray[String] */;
98 static val* varonce88;
99 static val* varonce90;
100 val* var91 /* : String */;
101 char* var92 /* : CString */;
102 val* var93 /* : String */;
103 val* var94 /* : nullable Int */;
104 val* var95 /* : nullable Int */;
105 val* var96 /* : nullable Bool */;
106 val* var97 /* : nullable Bool */;
107 val* var98 /* : Map[MType, Int] */;
108 val* var100 /* : Map[MType, Int] */;
109 val* var101 /* : nullable Object */;
110 val* var102 /* : String */;
111 long var103 /* : Int */;
112 val* var104 /* : String */;
113 static val* varonce105;
114 val* var106 /* : String */;
115 char* var107 /* : CString */;
116 val* var108 /* : String */;
117 val* var109 /* : nullable Int */;
118 val* var110 /* : nullable Int */;
119 val* var111 /* : nullable Bool */;
120 val* var112 /* : nullable Bool */;
121 val* var114 /* : NativeArray[String] */;
122 static val* varonce113;
123 static val* varonce115;
124 val* var116 /* : String */;
125 char* var117 /* : CString */;
126 val* var118 /* : String */;
127 val* var119 /* : nullable Int */;
128 val* var120 /* : nullable Int */;
129 val* var121 /* : nullable Bool */;
130 val* var122 /* : nullable Bool */;
131 static val* varonce123;
132 val* var124 /* : String */;
133 char* var125 /* : CString */;
134 val* var126 /* : String */;
135 val* var127 /* : nullable Int */;
136 val* var128 /* : nullable Int */;
137 val* var129 /* : nullable Bool */;
138 val* var130 /* : nullable Bool */;
139 val* var131 /* : String */;
140 val* var132 /* : String */;
141 val* var134 /* : NativeArray[String] */;
142 static val* varonce133;
143 static val* varonce135;
144 val* var136 /* : String */;
145 char* var137 /* : CString */;
146 val* var138 /* : String */;
147 val* var139 /* : nullable Int */;
148 val* var140 /* : nullable Int */;
149 val* var141 /* : nullable Bool */;
150 val* var142 /* : nullable Bool */;
151 val* var143 /* : Map[MType, Int] */;
152 val* var145 /* : Map[MType, Int] */;
153 val* var146 /* : nullable Object */;
154 val* var147 /* : String */;
155 long var148 /* : Int */;
156 val* var149 /* : String */;
157 static val* varonce150;
158 val* var151 /* : String */;
159 char* var152 /* : CString */;
160 val* var153 /* : String */;
161 val* var154 /* : nullable Int */;
162 val* var155 /* : nullable Int */;
163 val* var156 /* : nullable Bool */;
164 val* var157 /* : nullable Bool */;
165 short int var158 /* : Bool */;
166 int cltype159;
167 int idtype160;
168 static val* varonce161;
169 val* var162 /* : String */;
170 char* var163 /* : CString */;
171 val* var164 /* : String */;
172 val* var165 /* : nullable Int */;
173 val* var166 /* : nullable Int */;
174 val* var167 /* : nullable Bool */;
175 val* var168 /* : nullable Bool */;
176 static val* varonce169;
177 val* var170 /* : String */;
178 char* var171 /* : CString */;
179 val* var172 /* : String */;
180 val* var173 /* : nullable Int */;
181 val* var174 /* : nullable Int */;
182 val* var175 /* : nullable Bool */;
183 val* var176 /* : nullable Bool */;
184 val* var177 /* : MType */;
185 val* var_mclass_type /* var mclass_type: MType */;
186 short int var178 /* : Bool */;
187 int cltype179;
188 int idtype180;
189 val* var181 /* : Map[MClassType, Array[nullable MType]] */;
190 val* var183 /* : Map[MClassType, Array[nullable MType]] */;
191 val* var184 /* : nullable Object */;
192 short int var185 /* : Bool */;
193 static val* varonce186;
194 val* var187 /* : String */;
195 char* var188 /* : CString */;
196 val* var189 /* : String */;
197 val* var190 /* : nullable Int */;
198 val* var191 /* : nullable Int */;
199 val* var192 /* : nullable Bool */;
200 val* var193 /* : nullable Bool */;
201 val* var195 /* : NativeArray[String] */;
202 static val* varonce194;
203 static val* varonce196;
204 val* var197 /* : String */;
205 char* var198 /* : CString */;
206 val* var199 /* : String */;
207 val* var200 /* : nullable Int */;
208 val* var201 /* : nullable Int */;
209 val* var202 /* : nullable Bool */;
210 val* var203 /* : nullable Bool */;
211 val* var204 /* : String */;
212 val* var206 /* : NativeArray[String] */;
213 static val* varonce205;
214 static val* varonce207;
215 val* var208 /* : String */;
216 char* var209 /* : CString */;
217 val* var210 /* : String */;
218 val* var211 /* : nullable Int */;
219 val* var212 /* : nullable Int */;
220 val* var213 /* : nullable Bool */;
221 val* var214 /* : nullable Bool */;
222 static val* varonce215;
223 val* var216 /* : String */;
224 char* var217 /* : CString */;
225 val* var218 /* : String */;
226 val* var219 /* : nullable Int */;
227 val* var220 /* : nullable Int */;
228 val* var221 /* : nullable Bool */;
229 val* var222 /* : nullable Bool */;
230 val* var223 /* : String */;
231 static val* varonce224;
232 val* var225 /* : String */;
233 char* var226 /* : CString */;
234 val* var227 /* : String */;
235 val* var228 /* : nullable Int */;
236 val* var229 /* : nullable Int */;
237 val* var230 /* : nullable Bool */;
238 val* var231 /* : nullable Bool */;
239 val* var233 /* : NativeArray[String] */;
240 static val* varonce232;
241 static val* varonce234;
242 val* var235 /* : String */;
243 char* var236 /* : CString */;
244 val* var237 /* : String */;
245 val* var238 /* : nullable Int */;
246 val* var239 /* : nullable Int */;
247 val* var240 /* : nullable Bool */;
248 val* var241 /* : nullable Bool */;
249 val* var242 /* : Map[MType, Array[nullable MType]] */;
250 val* var244 /* : Map[MType, Array[nullable MType]] */;
251 val* var245 /* : nullable Object */;
252 long var246 /* : Int */;
253 long var248 /* : Int */;
254 val* var249 /* : String */;
255 val* var250 /* : String */;
256 static val* varonce251;
257 val* var252 /* : String */;
258 char* var253 /* : CString */;
259 val* var254 /* : String */;
260 val* var255 /* : nullable Int */;
261 val* var256 /* : nullable Int */;
262 val* var257 /* : nullable Bool */;
263 val* var258 /* : nullable Bool */;
264 val* var259 /* : Map[MType, Array[nullable MType]] */;
265 val* var261 /* : Map[MType, Array[nullable MType]] */;
266 val* var262 /* : nullable Object */;
267 val* var_263 /* var : Array[nullable MType] */;
268 val* var264 /* : IndexedIterator[nullable Object] */;
269 val* var_265 /* var : IndexedIterator[nullable MType] */;
270 short int var266 /* : Bool */;
271 val* var267 /* : nullable Object */;
272 val* var_stype /* var stype: nullable MType */;
273 short int var268 /* : Bool */;
274 short int var269 /* : Bool */;
275 val* var_other /* var other: nullable Object */;
276 short int var271 /* : Bool */;
277 short int var273 /* : Bool */;
278 static val* varonce274;
279 val* var275 /* : String */;
280 char* var276 /* : CString */;
281 val* var277 /* : String */;
282 val* var278 /* : nullable Int */;
283 val* var279 /* : nullable Int */;
284 val* var280 /* : nullable Bool */;
285 val* var281 /* : nullable Bool */;
286 val* var283 /* : NativeArray[String] */;
287 static val* varonce282;
288 static val* varonce284;
289 val* var285 /* : String */;
290 char* var286 /* : CString */;
291 val* var287 /* : String */;
292 val* var288 /* : nullable Int */;
293 val* var289 /* : nullable Int */;
294 val* var290 /* : nullable Bool */;
295 val* var291 /* : nullable Bool */;
296 static val* varonce292;
297 val* var293 /* : String */;
298 char* var294 /* : CString */;
299 val* var295 /* : String */;
300 val* var296 /* : nullable Int */;
301 val* var297 /* : nullable Int */;
302 val* var298 /* : nullable Bool */;
303 val* var299 /* : nullable Bool */;
304 val* var300 /* : Map[MType, Int] */;
305 val* var302 /* : Map[MType, Int] */;
306 val* var303 /* : nullable Object */;
307 val* var304 /* : String */;
308 long var305 /* : Int */;
309 val* var306 /* : String */;
310 val* var307 /* : String */;
311 static val* varonce308;
312 val* var309 /* : String */;
313 char* var310 /* : CString */;
314 val* var311 /* : String */;
315 val* var312 /* : nullable Int */;
316 val* var313 /* : nullable Int */;
317 val* var314 /* : nullable Bool */;
318 val* var315 /* : nullable Bool */;
319 static val* varonce316;
320 val* var317 /* : String */;
321 char* var318 /* : CString */;
322 val* var319 /* : String */;
323 val* var320 /* : nullable Int */;
324 val* var321 /* : nullable Int */;
325 val* var322 /* : nullable Bool */;
326 val* var323 /* : nullable Bool */;
327 static val* varonce324;
328 val* var325 /* : String */;
329 char* var326 /* : CString */;
330 val* var327 /* : String */;
331 val* var328 /* : nullable Int */;
332 val* var329 /* : nullable Int */;
333 val* var330 /* : nullable Bool */;
334 val* var331 /* : nullable Bool */;
335 var_mtype = p0;
336 {
337 var = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
338 }
339 var1 = !var;
340 if (unlikely(!var1)) {
341 if(catchStack.cursor >= 0){
342 longjmp(catchStack.envs[catchStack.cursor], 1);
343 }
344 PRINT_ERROR("Runtime error: %s", "Assert failed");
345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 708);
346 fatal_exit(1);
347 }
348 /* <var_mtype:MType> isa MClassType */
349 cltype = type_nitc__MClassType.color;
350 idtype = type_nitc__MClassType.id;
351 if(cltype >= var_mtype->type->table_size) {
352 var3 = 0;
353 } else {
354 var3 = var_mtype->type->type_table[cltype] == idtype;
355 }
356 var_ = var3;
357 if (var3){
358 {
359 { /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
360 var6 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
361 var4 = var6;
362 RET_LABEL5:(void)0;
363 }
364 }
365 if (var4 == NULL) {
366 if(catchStack.cursor >= 0){
367 longjmp(catchStack.envs[catchStack.cursor], 1);
368 }
369 PRINT_ERROR("Runtime error: %s", "Receiver is null");
370 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 709);
371 fatal_exit(1);
372 } else {
373 { /* Inline rapid_type_analysis$RapidTypeAnalysis$live_types (var4) on <var4:nullable RapidTypeAnalysis> */
374 if (unlikely(var4 == NULL)) {
375 if(catchStack.cursor >= 0){
376 longjmp(catchStack.envs[catchStack.cursor], 1);
377 }
378 PRINT_ERROR("Runtime error: %s", "Receiver is null");
379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
380 fatal_exit(1);
381 }
382 var9 = var4->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_types].val; /* _live_types on <var4:nullable RapidTypeAnalysis> */
383 if (unlikely(var9 == NULL)) {
384 if(catchStack.cursor >= 0){
385 longjmp(catchStack.envs[catchStack.cursor], 1);
386 }
387 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_types");
388 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 60);
389 fatal_exit(1);
390 }
391 var7 = var9;
392 RET_LABEL8:(void)0;
393 }
394 }
395 {
396 var10 = core___core__HashSet___core__abstract_collection__Collection__has(var7, var_mtype);
397 }
398 var2 = var10;
399 } else {
400 var2 = var_;
401 }
402 var_is_live = var2;
403 {
404 { /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
405 var13 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
406 var11 = var13;
407 RET_LABEL12:(void)0;
408 }
409 }
410 if (var11 == NULL) {
411 if(catchStack.cursor >= 0){
412 longjmp(catchStack.envs[catchStack.cursor], 1);
413 }
414 PRINT_ERROR("Runtime error: %s", "Receiver is null");
415 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 710);
416 fatal_exit(1);
417 } else {
418 { /* Inline rapid_type_analysis$RapidTypeAnalysis$live_cast_types (var11) on <var11:nullable RapidTypeAnalysis> */
419 if (unlikely(var11 == NULL)) {
420 if(catchStack.cursor >= 0){
421 longjmp(catchStack.envs[catchStack.cursor], 1);
422 }
423 PRINT_ERROR("Runtime error: %s", "Receiver is null");
424 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 72);
425 fatal_exit(1);
426 }
427 var16 = var11->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_cast_types].val; /* _live_cast_types on <var11:nullable RapidTypeAnalysis> */
428 if (unlikely(var16 == NULL)) {
429 if(catchStack.cursor >= 0){
430 longjmp(catchStack.envs[catchStack.cursor], 1);
431 }
432 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_cast_types");
433 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 72);
434 fatal_exit(1);
435 }
436 var14 = var16;
437 RET_LABEL15:(void)0;
438 }
439 }
440 {
441 var17 = core___core__HashSet___core__abstract_collection__Collection__has(var14, var_mtype);
442 }
443 var_is_cast_live = var17;
444 {
445 var18 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType>*/
446 }
447 var_c_name = var18;
448 var19 = NEW_nitc__SeparateCompilerVisitor(&type_nitc__SeparateCompilerVisitor);
449 {
450 ((void(*)(val* self, val* p0))(var19->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compiler_61d]))(var19, self); /* compiler= on <var19:SeparateCompilerVisitor>*/
451 }
452 {
453 ((void(*)(val* self))(var19->class->vft[COLOR_core__kernel__Object__init]))(var19); /* init on <var19:SeparateCompilerVisitor>*/
454 }
455 var_v = var19;
456 if (unlikely(varonce==NULL)) {
457 var20 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
458 if (likely(varonce21!=NULL)) {
459 var22 = varonce21;
460 } else {
461 var23 = "/* runtime type ";
462 var25 = (val*)(16l<<2|1);
463 var26 = (val*)(16l<<2|1);
464 var27 = (val*)((long)(0)<<2|3);
465 var28 = (val*)((long)(0)<<2|3);
466 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
467 var22 = var24;
468 varonce21 = var22;
469 }
470 ((struct instance_core__NativeArray*)var20)->values[0]=var22;
471 if (likely(varonce29!=NULL)) {
472 var30 = varonce29;
473 } else {
474 var31 = " */";
475 var33 = (val*)(3l<<2|1);
476 var34 = (val*)(3l<<2|1);
477 var35 = (val*)((long)(0)<<2|3);
478 var36 = (val*)((long)(0)<<2|3);
479 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
480 var30 = var32;
481 varonce29 = var30;
482 }
483 ((struct instance_core__NativeArray*)var20)->values[2]=var30;
484 } else {
485 var20 = varonce;
486 varonce = NULL;
487 }
488 {
489 var37 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
490 }
491 ((struct instance_core__NativeArray*)var20)->values[1]=var37;
492 {
493 var38 = ((val*(*)(val* self))(var20->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var20); /* native_to_s on <var20:NativeArray[String]>*/
494 }
495 varonce = var20;
496 {
497 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var38); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
498 }
499 if (unlikely(varonce39==NULL)) {
500 var40 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
501 if (likely(varonce41!=NULL)) {
502 var42 = varonce41;
503 } else {
504 var43 = "type_";
505 var45 = (val*)(5l<<2|1);
506 var46 = (val*)(5l<<2|1);
507 var47 = (val*)((long)(0)<<2|3);
508 var48 = (val*)((long)(0)<<2|3);
509 var44 = core__flat___CString___to_s_unsafe(var43, var45, var46, var47, var48);
510 var42 = var44;
511 varonce41 = var42;
512 }
513 ((struct instance_core__NativeArray*)var40)->values[0]=var42;
514 } else {
515 var40 = varonce39;
516 varonce39 = NULL;
517 }
518 ((struct instance_core__NativeArray*)var40)->values[1]=var_c_name;
519 {
520 var49 = ((val*(*)(val* self))(var40->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var40); /* native_to_s on <var40:NativeArray[String]>*/
521 }
522 varonce39 = var40;
523 if (unlikely(varonce50==NULL)) {
524 var51 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
525 if (likely(varonce52!=NULL)) {
526 var53 = varonce52;
527 } else {
528 var54 = "extern const struct type type_";
529 var56 = (val*)(30l<<2|1);
530 var57 = (val*)(30l<<2|1);
531 var58 = (val*)((long)(0)<<2|3);
532 var59 = (val*)((long)(0)<<2|3);
533 var55 = core__flat___CString___to_s_unsafe(var54, var56, var57, var58, var59);
534 var53 = var55;
535 varonce52 = var53;
536 }
537 ((struct instance_core__NativeArray*)var51)->values[0]=var53;
538 if (likely(varonce60!=NULL)) {
539 var61 = varonce60;
540 } else {
541 var62 = ";";
542 var64 = (val*)(1l<<2|1);
543 var65 = (val*)(1l<<2|1);
544 var66 = (val*)((long)(0)<<2|3);
545 var67 = (val*)((long)(0)<<2|3);
546 var63 = core__flat___CString___to_s_unsafe(var62, var64, var65, var66, var67);
547 var61 = var63;
548 varonce60 = var61;
549 }
550 ((struct instance_core__NativeArray*)var51)->values[2]=var61;
551 } else {
552 var51 = varonce50;
553 varonce50 = NULL;
554 }
555 ((struct instance_core__NativeArray*)var51)->values[1]=var_c_name;
556 {
557 var68 = ((val*(*)(val* self))(var51->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var51); /* native_to_s on <var51:NativeArray[String]>*/
558 }
559 varonce50 = var51;
560 {
561 nitc___nitc__AbstractCompiler___provide_declaration(self, var49, var68); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
562 }
563 if (unlikely(varonce69==NULL)) {
564 var70 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
565 if (likely(varonce71!=NULL)) {
566 var72 = varonce71;
567 } else {
568 var73 = "const struct type type_";
569 var75 = (val*)(23l<<2|1);
570 var76 = (val*)(23l<<2|1);
571 var77 = (val*)((long)(0)<<2|3);
572 var78 = (val*)((long)(0)<<2|3);
573 var74 = core__flat___CString___to_s_unsafe(var73, var75, var76, var77, var78);
574 var72 = var74;
575 varonce71 = var72;
576 }
577 ((struct instance_core__NativeArray*)var70)->values[0]=var72;
578 if (likely(varonce79!=NULL)) {
579 var80 = varonce79;
580 } else {
581 var81 = " = {";
582 var83 = (val*)(4l<<2|1);
583 var84 = (val*)(4l<<2|1);
584 var85 = (val*)((long)(0)<<2|3);
585 var86 = (val*)((long)(0)<<2|3);
586 var82 = core__flat___CString___to_s_unsafe(var81, var83, var84, var85, var86);
587 var80 = var82;
588 varonce79 = var80;
589 }
590 ((struct instance_core__NativeArray*)var70)->values[2]=var80;
591 } else {
592 var70 = varonce69;
593 varonce69 = NULL;
594 }
595 ((struct instance_core__NativeArray*)var70)->values[1]=var_c_name;
596 {
597 var87 = ((val*(*)(val* self))(var70->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var70); /* native_to_s on <var70:NativeArray[String]>*/
598 }
599 varonce69 = var70;
600 {
601 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var87); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
602 }
603 if (var_is_cast_live){
604 if (unlikely(varonce88==NULL)) {
605 var89 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
606 if (likely(varonce90!=NULL)) {
607 var91 = varonce90;
608 } else {
609 var92 = ",";
610 var94 = (val*)(1l<<2|1);
611 var95 = (val*)(1l<<2|1);
612 var96 = (val*)((long)(0)<<2|3);
613 var97 = (val*)((long)(0)<<2|3);
614 var93 = core__flat___CString___to_s_unsafe(var92, var94, var95, var96, var97);
615 var91 = var93;
616 varonce90 = var91;
617 }
618 ((struct instance_core__NativeArray*)var89)->values[1]=var91;
619 } else {
620 var89 = varonce88;
621 varonce88 = NULL;
622 }
623 {
624 { /* Inline separate_compiler$SeparateCompiler$type_ids (self) on <self:SeparateCompiler> */
625 var100 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
626 if (unlikely(var100 == NULL)) {
627 if(catchStack.cursor >= 0){
628 longjmp(catchStack.envs[catchStack.cursor], 1);
629 }
630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
631 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
632 fatal_exit(1);
633 }
634 var98 = var100;
635 RET_LABEL99:(void)0;
636 }
637 }
638 {
639 var101 = ((val*(*)(val* self, val* p0))((((long)var98&3)?class_info[((long)var98&3)]:var98->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var98, var_mtype); /* [] on <var98:Map[MType, Int]>*/
640 }
641 var103 = (long)(var101)>>2;
642 var102 = core__flat___Int___core__abstract_text__Object__to_s(var103);
643 ((struct instance_core__NativeArray*)var89)->values[0]=var102;
644 {
645 var104 = ((val*(*)(val* self))(var89->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var89); /* native_to_s on <var89:NativeArray[String]>*/
646 }
647 varonce88 = var89;
648 {
649 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var104); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
650 }
651 } else {
652 if (likely(varonce105!=NULL)) {
653 var106 = varonce105;
654 } else {
655 var107 = "-1, /*CAST DEAD*/";
656 var109 = (val*)(17l<<2|1);
657 var110 = (val*)(17l<<2|1);
658 var111 = (val*)((long)(0)<<2|3);
659 var112 = (val*)((long)(0)<<2|3);
660 var108 = core__flat___CString___to_s_unsafe(var107, var109, var110, var111, var112);
661 var106 = var108;
662 varonce105 = var106;
663 }
664 {
665 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var106); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
666 }
667 }
668 if (unlikely(varonce113==NULL)) {
669 var114 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
670 if (likely(varonce115!=NULL)) {
671 var116 = varonce115;
672 } else {
673 var117 = "\"";
674 var119 = (val*)(1l<<2|1);
675 var120 = (val*)(1l<<2|1);
676 var121 = (val*)((long)(0)<<2|3);
677 var122 = (val*)((long)(0)<<2|3);
678 var118 = core__flat___CString___to_s_unsafe(var117, var119, var120, var121, var122);
679 var116 = var118;
680 varonce115 = var116;
681 }
682 ((struct instance_core__NativeArray*)var114)->values[0]=var116;
683 if (likely(varonce123!=NULL)) {
684 var124 = varonce123;
685 } else {
686 var125 = "\", /* class_name_string */";
687 var127 = (val*)(26l<<2|1);
688 var128 = (val*)(26l<<2|1);
689 var129 = (val*)((long)(0)<<2|3);
690 var130 = (val*)((long)(0)<<2|3);
691 var126 = core__flat___CString___to_s_unsafe(var125, var127, var128, var129, var130);
692 var124 = var126;
693 varonce123 = var124;
694 }
695 ((struct instance_core__NativeArray*)var114)->values[2]=var124;
696 } else {
697 var114 = varonce113;
698 varonce113 = NULL;
699 }
700 {
701 var131 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
702 }
703 ((struct instance_core__NativeArray*)var114)->values[1]=var131;
704 {
705 var132 = ((val*(*)(val* self))(var114->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var114); /* native_to_s on <var114:NativeArray[String]>*/
706 }
707 varonce113 = var114;
708 {
709 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var132); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
710 }
711 if (var_is_cast_live){
712 if (unlikely(varonce133==NULL)) {
713 var134 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
714 if (likely(varonce135!=NULL)) {
715 var136 = varonce135;
716 } else {
717 var137 = ",";
718 var139 = (val*)(1l<<2|1);
719 var140 = (val*)(1l<<2|1);
720 var141 = (val*)((long)(0)<<2|3);
721 var142 = (val*)((long)(0)<<2|3);
722 var138 = core__flat___CString___to_s_unsafe(var137, var139, var140, var141, var142);
723 var136 = var138;
724 varonce135 = var136;
725 }
726 ((struct instance_core__NativeArray*)var134)->values[1]=var136;
727 } else {
728 var134 = varonce133;
729 varonce133 = NULL;
730 }
731 {
732 { /* Inline separate_compiler$SeparateCompiler$type_colors (self) on <self:SeparateCompiler> */
733 var145 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_colors].val; /* _type_colors on <self:SeparateCompiler> */
734 if (unlikely(var145 == NULL)) {
735 if(catchStack.cursor >= 0){
736 longjmp(catchStack.envs[catchStack.cursor], 1);
737 }
738 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_colors");
739 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 150);
740 fatal_exit(1);
741 }
742 var143 = var145;
743 RET_LABEL144:(void)0;
744 }
745 }
746 {
747 var146 = ((val*(*)(val* self, val* p0))((((long)var143&3)?class_info[((long)var143&3)]:var143->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var143, var_mtype); /* [] on <var143:Map[MType, Int]>*/
748 }
749 var148 = (long)(var146)>>2;
750 var147 = core__flat___Int___core__abstract_text__Object__to_s(var148);
751 ((struct instance_core__NativeArray*)var134)->values[0]=var147;
752 {
753 var149 = ((val*(*)(val* self))(var134->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var134); /* native_to_s on <var134:NativeArray[String]>*/
754 }
755 varonce133 = var134;
756 {
757 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var149); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
758 }
759 } else {
760 if (likely(varonce150!=NULL)) {
761 var151 = varonce150;
762 } else {
763 var152 = "-1, /*CAST DEAD*/";
764 var154 = (val*)(17l<<2|1);
765 var155 = (val*)(17l<<2|1);
766 var156 = (val*)((long)(0)<<2|3);
767 var157 = (val*)((long)(0)<<2|3);
768 var153 = core__flat___CString___to_s_unsafe(var152, var154, var155, var156, var157);
769 var151 = var153;
770 varonce150 = var151;
771 }
772 {
773 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var151); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
774 }
775 }
776 /* <var_mtype:MType> isa MNullableType */
777 cltype159 = type_nitc__MNullableType.color;
778 idtype160 = type_nitc__MNullableType.id;
779 if(cltype159 >= var_mtype->type->table_size) {
780 var158 = 0;
781 } else {
782 var158 = var_mtype->type->type_table[cltype159] == idtype160;
783 }
784 if (var158){
785 if (likely(varonce161!=NULL)) {
786 var162 = varonce161;
787 } else {
788 var163 = "1,";
789 var165 = (val*)(2l<<2|1);
790 var166 = (val*)(2l<<2|1);
791 var167 = (val*)((long)(0)<<2|3);
792 var168 = (val*)((long)(0)<<2|3);
793 var164 = core__flat___CString___to_s_unsafe(var163, var165, var166, var167, var168);
794 var162 = var164;
795 varonce161 = var162;
796 }
797 {
798 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var162); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
799 }
800 } else {
801 if (likely(varonce169!=NULL)) {
802 var170 = varonce169;
803 } else {
804 var171 = "0,";
805 var173 = (val*)(2l<<2|1);
806 var174 = (val*)(2l<<2|1);
807 var175 = (val*)((long)(0)<<2|3);
808 var176 = (val*)((long)(0)<<2|3);
809 var172 = core__flat___CString___to_s_unsafe(var171, var173, var174, var175, var176);
810 var170 = var172;
811 varonce169 = var170;
812 }
813 {
814 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var170); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
815 }
816 }
817 if (var_is_live){
818 {
819 var177 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
820 }
821 var_mclass_type = var177;
822 /* <var_mclass_type:MType> isa MClassType */
823 cltype179 = type_nitc__MClassType.color;
824 idtype180 = type_nitc__MClassType.id;
825 if(cltype179 >= var_mclass_type->type->table_size) {
826 var178 = 0;
827 } else {
828 var178 = var_mclass_type->type->type_table[cltype179] == idtype180;
829 }
830 if (unlikely(!var178)) {
831 if(catchStack.cursor >= 0){
832 longjmp(catchStack.envs[catchStack.cursor], 1);
833 }
834 PRINT_ERROR("Runtime error: %s", "Assert failed");
835 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 748);
836 fatal_exit(1);
837 }
838 {
839 { /* Inline separate_compiler$SeparateCompiler$resolution_tables (self) on <self:SeparateCompiler> */
840 var183 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables].val; /* _resolution_tables on <self:SeparateCompiler> */
841 if (unlikely(var183 == NULL)) {
842 if(catchStack.cursor >= 0){
843 longjmp(catchStack.envs[catchStack.cursor], 1);
844 }
845 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
846 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1072);
847 fatal_exit(1);
848 }
849 var181 = var183;
850 RET_LABEL182:(void)0;
851 }
852 }
853 {
854 var184 = ((val*(*)(val* self, val* p0))((((long)var181&3)?class_info[((long)var181&3)]:var181->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var181, var_mclass_type); /* [] on <var181:Map[MClassType, Array[nullable MType]]>*/
855 }
856 {
857 var185 = core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var184);
858 }
859 if (var185){
860 if (likely(varonce186!=NULL)) {
861 var187 = varonce186;
862 } else {
863 var188 = "NULL, /*NO RESOLUTIONS*/";
864 var190 = (val*)(24l<<2|1);
865 var191 = (val*)(24l<<2|1);
866 var192 = (val*)((long)(0)<<2|3);
867 var193 = (val*)((long)(0)<<2|3);
868 var189 = core__flat___CString___to_s_unsafe(var188, var190, var191, var192, var193);
869 var187 = var189;
870 varonce186 = var187;
871 }
872 {
873 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var187); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
874 }
875 } else {
876 {
877 nitc___nitc__SeparateCompiler___compile_type_resolution_table(self, var_mtype); /* Direct call separate_compiler$SeparateCompiler$compile_type_resolution_table on <self:SeparateCompiler>*/
878 }
879 if (unlikely(varonce194==NULL)) {
880 var195 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
881 if (likely(varonce196!=NULL)) {
882 var197 = varonce196;
883 } else {
884 var198 = "resolution_table_";
885 var200 = (val*)(17l<<2|1);
886 var201 = (val*)(17l<<2|1);
887 var202 = (val*)((long)(0)<<2|3);
888 var203 = (val*)((long)(0)<<2|3);
889 var199 = core__flat___CString___to_s_unsafe(var198, var200, var201, var202, var203);
890 var197 = var199;
891 varonce196 = var197;
892 }
893 ((struct instance_core__NativeArray*)var195)->values[0]=var197;
894 } else {
895 var195 = varonce194;
896 varonce194 = NULL;
897 }
898 ((struct instance_core__NativeArray*)var195)->values[1]=var_c_name;
899 {
900 var204 = ((val*(*)(val* self))(var195->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var195); /* native_to_s on <var195:NativeArray[String]>*/
901 }
902 varonce194 = var195;
903 {
904 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var204); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
905 }
906 if (unlikely(varonce205==NULL)) {
907 var206 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
908 if (likely(varonce207!=NULL)) {
909 var208 = varonce207;
910 } else {
911 var209 = "&resolution_table_";
912 var211 = (val*)(18l<<2|1);
913 var212 = (val*)(18l<<2|1);
914 var213 = (val*)((long)(0)<<2|3);
915 var214 = (val*)((long)(0)<<2|3);
916 var210 = core__flat___CString___to_s_unsafe(var209, var211, var212, var213, var214);
917 var208 = var210;
918 varonce207 = var208;
919 }
920 ((struct instance_core__NativeArray*)var206)->values[0]=var208;
921 if (likely(varonce215!=NULL)) {
922 var216 = varonce215;
923 } else {
924 var217 = ",";
925 var219 = (val*)(1l<<2|1);
926 var220 = (val*)(1l<<2|1);
927 var221 = (val*)((long)(0)<<2|3);
928 var222 = (val*)((long)(0)<<2|3);
929 var218 = core__flat___CString___to_s_unsafe(var217, var219, var220, var221, var222);
930 var216 = var218;
931 varonce215 = var216;
932 }
933 ((struct instance_core__NativeArray*)var206)->values[2]=var216;
934 } else {
935 var206 = varonce205;
936 varonce205 = NULL;
937 }
938 ((struct instance_core__NativeArray*)var206)->values[1]=var_c_name;
939 {
940 var223 = ((val*(*)(val* self))(var206->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var206); /* native_to_s on <var206:NativeArray[String]>*/
941 }
942 varonce205 = var206;
943 {
944 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var223); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
945 }
946 }
947 } else {
948 if (likely(varonce224!=NULL)) {
949 var225 = varonce224;
950 } else {
951 var226 = "NULL, /*DEAD*/";
952 var228 = (val*)(14l<<2|1);
953 var229 = (val*)(14l<<2|1);
954 var230 = (val*)((long)(0)<<2|3);
955 var231 = (val*)((long)(0)<<2|3);
956 var227 = core__flat___CString___to_s_unsafe(var226, var228, var229, var230, var231);
957 var225 = var227;
958 varonce224 = var225;
959 }
960 {
961 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var225); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
962 }
963 }
964 if (var_is_live){
965 if (unlikely(varonce232==NULL)) {
966 var233 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
967 if (likely(varonce234!=NULL)) {
968 var235 = varonce234;
969 } else {
970 var236 = ",";
971 var238 = (val*)(1l<<2|1);
972 var239 = (val*)(1l<<2|1);
973 var240 = (val*)((long)(0)<<2|3);
974 var241 = (val*)((long)(0)<<2|3);
975 var237 = core__flat___CString___to_s_unsafe(var236, var238, var239, var240, var241);
976 var235 = var237;
977 varonce234 = var235;
978 }
979 ((struct instance_core__NativeArray*)var233)->values[1]=var235;
980 } else {
981 var233 = varonce232;
982 varonce232 = NULL;
983 }
984 {
985 { /* Inline separate_compiler$SeparateCompiler$type_tables (self) on <self:SeparateCompiler> */
986 var244 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on <self:SeparateCompiler> */
987 if (unlikely(var244 == NULL)) {
988 if(catchStack.cursor >= 0){
989 longjmp(catchStack.envs[catchStack.cursor], 1);
990 }
991 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
992 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1071);
993 fatal_exit(1);
994 }
995 var242 = var244;
996 RET_LABEL243:(void)0;
997 }
998 }
999 {
1000 var245 = ((val*(*)(val* self, val* p0))((((long)var242&3)?class_info[((long)var242&3)]:var242->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var242, var_mtype); /* [] on <var242:Map[MType, Array[nullable MType]]>*/
1001 }
1002 {
1003 { /* Inline array$AbstractArrayRead$length (var245) on <var245:nullable Object(Array[nullable MType])> */
1004 var248 = var245->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var245:nullable Object(Array[nullable MType])> */
1005 var246 = var248;
1006 RET_LABEL247:(void)0;
1007 }
1008 }
1009 var249 = core__flat___Int___core__abstract_text__Object__to_s(var246);
1010 ((struct instance_core__NativeArray*)var233)->values[0]=var249;
1011 {
1012 var250 = ((val*(*)(val* self))(var233->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var233); /* native_to_s on <var233:NativeArray[String]>*/
1013 }
1014 varonce232 = var233;
1015 {
1016 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var250); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1017 }
1018 if (likely(varonce251!=NULL)) {
1019 var252 = varonce251;
1020 } else {
1021 var253 = "{";
1022 var255 = (val*)(1l<<2|1);
1023 var256 = (val*)(1l<<2|1);
1024 var257 = (val*)((long)(0)<<2|3);
1025 var258 = (val*)((long)(0)<<2|3);
1026 var254 = core__flat___CString___to_s_unsafe(var253, var255, var256, var257, var258);
1027 var252 = var254;
1028 varonce251 = var252;
1029 }
1030 {
1031 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var252); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1032 }
1033 {
1034 { /* Inline separate_compiler$SeparateCompiler$type_tables (self) on <self:SeparateCompiler> */
1035 var261 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on <self:SeparateCompiler> */
1036 if (unlikely(var261 == NULL)) {
1037 if(catchStack.cursor >= 0){
1038 longjmp(catchStack.envs[catchStack.cursor], 1);
1039 }
1040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
1041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1071);
1042 fatal_exit(1);
1043 }
1044 var259 = var261;
1045 RET_LABEL260:(void)0;
1046 }
1047 }
1048 {
1049 var262 = ((val*(*)(val* self, val* p0))((((long)var259&3)?class_info[((long)var259&3)]:var259->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var259, var_mtype); /* [] on <var259:Map[MType, Array[nullable MType]]>*/
1050 }
1051 var_263 = var262;
1052 {
1053 var264 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_263);
1054 }
1055 var_265 = var264;
1056 for(;;) {
1057 {
1058 var266 = ((short int(*)(val* self))((((long)var_265&3)?class_info[((long)var_265&3)]:var_265->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_265); /* is_ok on <var_265:IndexedIterator[nullable MType]>*/
1059 }
1060 if (var266){
1061 } else {
1062 goto BREAK_label;
1063 }
1064 {
1065 var267 = ((val*(*)(val* self))((((long)var_265&3)?class_info[((long)var_265&3)]:var_265->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_265); /* item on <var_265:IndexedIterator[nullable MType]>*/
1066 }
1067 var_stype = var267;
1068 if (var_stype == NULL) {
1069 var268 = 1; /* is null */
1070 } else {
1071 var268 = 0; /* arg is null but recv is not */
1072 }
1073 if (0) {
1074 { /* Inline kernel$Object$== (var_stype,((val*)NULL)) on <var_stype:nullable MType> */
1075 var_other = ((val*)NULL);
1076 {
1077 { /* Inline kernel$Object$is_same_instance (var_stype,var_other) on <var_stype:nullable MType(MType)> */
1078 var273 = var_stype == var_other;
1079 var271 = var273;
1080 goto RET_LABEL272;
1081 RET_LABEL272:(void)0;
1082 }
1083 }
1084 var269 = var271;
1085 goto RET_LABEL270;
1086 RET_LABEL270:(void)0;
1087 }
1088 var268 = var269;
1089 }
1090 if (var268){
1091 if (likely(varonce274!=NULL)) {
1092 var275 = varonce274;
1093 } else {
1094 var276 = "-1, /* empty */";
1095 var278 = (val*)(15l<<2|1);
1096 var279 = (val*)(15l<<2|1);
1097 var280 = (val*)((long)(0)<<2|3);
1098 var281 = (val*)((long)(0)<<2|3);
1099 var277 = core__flat___CString___to_s_unsafe(var276, var278, var279, var280, var281);
1100 var275 = var277;
1101 varonce274 = var275;
1102 }
1103 {
1104 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var275); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1105 }
1106 } else {
1107 if (unlikely(varonce282==NULL)) {
1108 var283 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
1109 if (likely(varonce284!=NULL)) {
1110 var285 = varonce284;
1111 } else {
1112 var286 = ", /* ";
1113 var288 = (val*)(5l<<2|1);
1114 var289 = (val*)(5l<<2|1);
1115 var290 = (val*)((long)(0)<<2|3);
1116 var291 = (val*)((long)(0)<<2|3);
1117 var287 = core__flat___CString___to_s_unsafe(var286, var288, var289, var290, var291);
1118 var285 = var287;
1119 varonce284 = var285;
1120 }
1121 ((struct instance_core__NativeArray*)var283)->values[1]=var285;
1122 if (likely(varonce292!=NULL)) {
1123 var293 = varonce292;
1124 } else {
1125 var294 = " */";
1126 var296 = (val*)(3l<<2|1);
1127 var297 = (val*)(3l<<2|1);
1128 var298 = (val*)((long)(0)<<2|3);
1129 var299 = (val*)((long)(0)<<2|3);
1130 var295 = core__flat___CString___to_s_unsafe(var294, var296, var297, var298, var299);
1131 var293 = var295;
1132 varonce292 = var293;
1133 }
1134 ((struct instance_core__NativeArray*)var283)->values[3]=var293;
1135 } else {
1136 var283 = varonce282;
1137 varonce282 = NULL;
1138 }
1139 {
1140 { /* Inline separate_compiler$SeparateCompiler$type_ids (self) on <self:SeparateCompiler> */
1141 var302 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
1142 if (unlikely(var302 == NULL)) {
1143 if(catchStack.cursor >= 0){
1144 longjmp(catchStack.envs[catchStack.cursor], 1);
1145 }
1146 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
1147 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
1148 fatal_exit(1);
1149 }
1150 var300 = var302;
1151 RET_LABEL301:(void)0;
1152 }
1153 }
1154 {
1155 var303 = ((val*(*)(val* self, val* p0))((((long)var300&3)?class_info[((long)var300&3)]:var300->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var300, var_stype); /* [] on <var300:Map[MType, Int]>*/
1156 }
1157 var305 = (long)(var303)>>2;
1158 var304 = core__flat___Int___core__abstract_text__Object__to_s(var305);
1159 ((struct instance_core__NativeArray*)var283)->values[0]=var304;
1160 {
1161 var306 = ((val*(*)(val* self))(var_stype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_stype); /* to_s on <var_stype:nullable MType(MType)>*/
1162 }
1163 ((struct instance_core__NativeArray*)var283)->values[2]=var306;
1164 {
1165 var307 = ((val*(*)(val* self))(var283->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var283); /* native_to_s on <var283:NativeArray[String]>*/
1166 }
1167 varonce282 = var283;
1168 {
1169 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var307); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1170 }
1171 }
1172 {
1173 ((void(*)(val* self))((((long)var_265&3)?class_info[((long)var_265&3)]:var_265->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_265); /* next on <var_265:IndexedIterator[nullable MType]>*/
1174 }
1175 }
1176 BREAK_label: (void)0;
1177 {
1178 ((void(*)(val* self))((((long)var_265&3)?class_info[((long)var_265&3)]:var_265->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_265); /* finish on <var_265:IndexedIterator[nullable MType]>*/
1179 }
1180 if (likely(varonce308!=NULL)) {
1181 var309 = varonce308;
1182 } else {
1183 var310 = "},";
1184 var312 = (val*)(2l<<2|1);
1185 var313 = (val*)(2l<<2|1);
1186 var314 = (val*)((long)(0)<<2|3);
1187 var315 = (val*)((long)(0)<<2|3);
1188 var311 = core__flat___CString___to_s_unsafe(var310, var312, var313, var314, var315);
1189 var309 = var311;
1190 varonce308 = var309;
1191 }
1192 {
1193 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var309); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1194 }
1195 } else {
1196 if (likely(varonce316!=NULL)) {
1197 var317 = varonce316;
1198 } else {
1199 var318 = "-1, {}, /*DEAD TYPE*/";
1200 var320 = (val*)(21l<<2|1);
1201 var321 = (val*)(21l<<2|1);
1202 var322 = (val*)((long)(0)<<2|3);
1203 var323 = (val*)((long)(0)<<2|3);
1204 var319 = core__flat___CString___to_s_unsafe(var318, var320, var321, var322, var323);
1205 var317 = var319;
1206 varonce316 = var317;
1207 }
1208 {
1209 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var317); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1210 }
1211 }
1212 if (likely(varonce324!=NULL)) {
1213 var325 = varonce324;
1214 } else {
1215 var326 = "};";
1216 var328 = (val*)(2l<<2|1);
1217 var329 = (val*)(2l<<2|1);
1218 var330 = (val*)((long)(0)<<2|3);
1219 var331 = (val*)((long)(0)<<2|3);
1220 var327 = core__flat___CString___to_s_unsafe(var326, var328, var329, var330, var331);
1221 var325 = var327;
1222 varonce324 = var325;
1223 }
1224 {
1225 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var325); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1226 }
1227 RET_LABEL:;
1228 }
1229 /* method separate_compiler$SeparateCompiler$compile_type_resolution_table for (self: SeparateCompiler, MType) */
1230 void nitc___nitc__SeparateCompiler___compile_type_resolution_table(val* self, val* p0) {
1231 val* var_mtype /* var mtype: MType */;
1232 val* var /* : MType */;
1233 short int var1 /* : Bool */;
1234 int cltype;
1235 int idtype;
1236 const char* var_class_name;
1237 val* var_mclass_type /* var mclass_type: MClassType */;
1238 val* var2 /* : NativeArray[String] */;
1239 static val* varonce;
1240 static val* varonce3;
1241 val* var4 /* : String */;
1242 char* var5 /* : CString */;
1243 val* var6 /* : String */;
1244 val* var7 /* : nullable Int */;
1245 val* var8 /* : nullable Int */;
1246 val* var9 /* : nullable Bool */;
1247 val* var10 /* : nullable Bool */;
1248 val* var11 /* : String */;
1249 val* var12 /* : String */;
1250 val* var14 /* : NativeArray[String] */;
1251 static val* varonce13;
1252 static val* varonce15;
1253 val* var16 /* : String */;
1254 char* var17 /* : CString */;
1255 val* var18 /* : String */;
1256 val* var19 /* : nullable Int */;
1257 val* var20 /* : nullable Int */;
1258 val* var21 /* : nullable Bool */;
1259 val* var22 /* : nullable Bool */;
1260 static val* varonce23;
1261 val* var24 /* : String */;
1262 char* var25 /* : CString */;
1263 val* var26 /* : String */;
1264 val* var27 /* : nullable Int */;
1265 val* var28 /* : nullable Int */;
1266 val* var29 /* : nullable Bool */;
1267 val* var30 /* : nullable Bool */;
1268 val* var31 /* : String */;
1269 val* var32 /* : String */;
1270 val* var33 /* : AbstractCompilerVisitor */;
1271 val* var_v /* var v: SeparateCompilerVisitor */;
1272 val* var35 /* : NativeArray[String] */;
1273 static val* varonce34;
1274 static val* varonce36;
1275 val* var37 /* : String */;
1276 char* var38 /* : CString */;
1277 val* var39 /* : String */;
1278 val* var40 /* : nullable Int */;
1279 val* var41 /* : nullable Int */;
1280 val* var42 /* : nullable Bool */;
1281 val* var43 /* : nullable Bool */;
1282 static val* varonce44;
1283 val* var45 /* : String */;
1284 char* var46 /* : CString */;
1285 val* var47 /* : String */;
1286 val* var48 /* : nullable Int */;
1287 val* var49 /* : nullable Int */;
1288 val* var50 /* : nullable Bool */;
1289 val* var51 /* : nullable Bool */;
1290 val* var52 /* : String */;
1291 val* var53 /* : String */;
1292 static val* varonce54;
1293 val* var55 /* : String */;
1294 char* var56 /* : CString */;
1295 val* var57 /* : String */;
1296 val* var58 /* : nullable Int */;
1297 val* var59 /* : nullable Int */;
1298 val* var60 /* : nullable Bool */;
1299 val* var61 /* : nullable Bool */;
1300 static val* varonce62;
1301 val* var63 /* : String */;
1302 char* var64 /* : CString */;
1303 val* var65 /* : String */;
1304 val* var66 /* : nullable Int */;
1305 val* var67 /* : nullable Int */;
1306 val* var68 /* : nullable Bool */;
1307 val* var69 /* : nullable Bool */;
1308 val* var70 /* : Map[MClassType, Array[nullable MType]] */;
1309 val* var72 /* : Map[MClassType, Array[nullable MType]] */;
1310 val* var73 /* : nullable Object */;
1311 val* var_ /* var : Array[nullable MType] */;
1312 val* var74 /* : IndexedIterator[nullable Object] */;
1313 val* var_75 /* var : IndexedIterator[nullable MType] */;
1314 short int var76 /* : Bool */;
1315 val* var77 /* : nullable Object */;
1316 val* var_t /* var t: nullable MType */;
1317 short int var78 /* : Bool */;
1318 short int var79 /* : Bool */;
1319 val* var_other /* var other: nullable Object */;
1320 short int var81 /* : Bool */;
1321 short int var83 /* : Bool */;
1322 static val* varonce84;
1323 val* var85 /* : String */;
1324 char* var86 /* : CString */;
1325 val* var87 /* : String */;
1326 val* var88 /* : nullable Int */;
1327 val* var89 /* : nullable Int */;
1328 val* var90 /* : nullable Bool */;
1329 val* var91 /* : nullable Bool */;
1330 val* var92 /* : MModule */;
1331 val* var94 /* : MModule */;
1332 val* var95 /* : MType */;
1333 val* var_tv /* var tv: MType */;
1334 val* var96 /* : Map[MType, Int] */;
1335 val* var98 /* : Map[MType, Int] */;
1336 short int var99 /* : Bool */;
1337 val* var101 /* : NativeArray[String] */;
1338 static val* varonce100;
1339 static val* varonce102;
1340 val* var103 /* : String */;
1341 char* var104 /* : CString */;
1342 val* var105 /* : String */;
1343 val* var106 /* : nullable Int */;
1344 val* var107 /* : nullable Int */;
1345 val* var108 /* : nullable Bool */;
1346 val* var109 /* : nullable Bool */;
1347 val* var110 /* : String */;
1348 val* var111 /* : String */;
1349 val* var113 /* : NativeArray[String] */;
1350 static val* varonce112;
1351 static val* varonce114;
1352 val* var115 /* : String */;
1353 char* var116 /* : CString */;
1354 val* var117 /* : String */;
1355 val* var118 /* : nullable Int */;
1356 val* var119 /* : nullable Int */;
1357 val* var120 /* : nullable Bool */;
1358 val* var121 /* : nullable Bool */;
1359 static val* varonce122;
1360 val* var123 /* : String */;
1361 char* var124 /* : CString */;
1362 val* var125 /* : String */;
1363 val* var126 /* : nullable Int */;
1364 val* var127 /* : nullable Int */;
1365 val* var128 /* : nullable Bool */;
1366 val* var129 /* : nullable Bool */;
1367 static val* varonce130;
1368 val* var131 /* : String */;
1369 char* var132 /* : CString */;
1370 val* var133 /* : String */;
1371 val* var134 /* : nullable Int */;
1372 val* var135 /* : nullable Int */;
1373 val* var136 /* : nullable Bool */;
1374 val* var137 /* : nullable Bool */;
1375 static val* varonce138;
1376 val* var139 /* : String */;
1377 char* var140 /* : CString */;
1378 val* var141 /* : String */;
1379 val* var142 /* : nullable Int */;
1380 val* var143 /* : nullable Int */;
1381 val* var144 /* : nullable Bool */;
1382 val* var145 /* : nullable Bool */;
1383 val* var146 /* : String */;
1384 val* var147 /* : String */;
1385 val* var148 /* : String */;
1386 val* var149 /* : String */;
1387 val* var151 /* : NativeArray[String] */;
1388 static val* varonce150;
1389 static val* varonce152;
1390 val* var153 /* : String */;
1391 char* var154 /* : CString */;
1392 val* var155 /* : String */;
1393 val* var156 /* : nullable Int */;
1394 val* var157 /* : nullable Int */;
1395 val* var158 /* : nullable Bool */;
1396 val* var159 /* : nullable Bool */;
1397 static val* varonce160;
1398 val* var161 /* : String */;
1399 char* var162 /* : CString */;
1400 val* var163 /* : String */;
1401 val* var164 /* : nullable Int */;
1402 val* var165 /* : nullable Int */;
1403 val* var166 /* : nullable Bool */;
1404 val* var167 /* : nullable Bool */;
1405 static val* varonce168;
1406 val* var169 /* : String */;
1407 char* var170 /* : CString */;
1408 val* var171 /* : String */;
1409 val* var172 /* : nullable Int */;
1410 val* var173 /* : nullable Int */;
1411 val* var174 /* : nullable Bool */;
1412 val* var175 /* : nullable Bool */;
1413 val* var176 /* : String */;
1414 val* var177 /* : String */;
1415 val* var178 /* : String */;
1416 static val* varonce179;
1417 val* var180 /* : String */;
1418 char* var181 /* : CString */;
1419 val* var182 /* : String */;
1420 val* var183 /* : nullable Int */;
1421 val* var184 /* : nullable Int */;
1422 val* var185 /* : nullable Bool */;
1423 val* var186 /* : nullable Bool */;
1424 static val* varonce187;
1425 val* var188 /* : String */;
1426 char* var189 /* : CString */;
1427 val* var190 /* : String */;
1428 val* var191 /* : nullable Int */;
1429 val* var192 /* : nullable Int */;
1430 val* var193 /* : nullable Bool */;
1431 val* var194 /* : nullable Bool */;
1432 var_mtype = p0;
1433 {
1434 var = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
1435 }
1436 /* <var:MType> isa MClassType */
1437 cltype = type_nitc__MClassType.color;
1438 idtype = type_nitc__MClassType.id;
1439 if(cltype >= var->type->table_size) {
1440 var1 = 0;
1441 } else {
1442 var1 = var->type->type_table[cltype] == idtype;
1443 }
1444 if (unlikely(!var1)) {
1445 var_class_name = var == NULL ? "null" : var->type->name;
1446 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
1447 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 781);
1448 fatal_exit(1);
1449 }
1450 var_mclass_type = var;
1451 if (unlikely(varonce==NULL)) {
1452 var2 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
1453 if (likely(varonce3!=NULL)) {
1454 var4 = varonce3;
1455 } else {
1456 var5 = "resolution_table_";
1457 var7 = (val*)(17l<<2|1);
1458 var8 = (val*)(17l<<2|1);
1459 var9 = (val*)((long)(0)<<2|3);
1460 var10 = (val*)((long)(0)<<2|3);
1461 var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10);
1462 var4 = var6;
1463 varonce3 = var4;
1464 }
1465 ((struct instance_core__NativeArray*)var2)->values[0]=var4;
1466 } else {
1467 var2 = varonce;
1468 varonce = NULL;
1469 }
1470 {
1471 var11 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType>*/
1472 }
1473 ((struct instance_core__NativeArray*)var2)->values[1]=var11;
1474 {
1475 var12 = ((val*(*)(val* self))(var2->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var2); /* native_to_s on <var2:NativeArray[String]>*/
1476 }
1477 varonce = var2;
1478 if (unlikely(varonce13==NULL)) {
1479 var14 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1480 if (likely(varonce15!=NULL)) {
1481 var16 = varonce15;
1482 } else {
1483 var17 = "extern const struct types resolution_table_";
1484 var19 = (val*)(43l<<2|1);
1485 var20 = (val*)(43l<<2|1);
1486 var21 = (val*)((long)(0)<<2|3);
1487 var22 = (val*)((long)(0)<<2|3);
1488 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
1489 var16 = var18;
1490 varonce15 = var16;
1491 }
1492 ((struct instance_core__NativeArray*)var14)->values[0]=var16;
1493 if (likely(varonce23!=NULL)) {
1494 var24 = varonce23;
1495 } else {
1496 var25 = ";";
1497 var27 = (val*)(1l<<2|1);
1498 var28 = (val*)(1l<<2|1);
1499 var29 = (val*)((long)(0)<<2|3);
1500 var30 = (val*)((long)(0)<<2|3);
1501 var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30);
1502 var24 = var26;
1503 varonce23 = var24;
1504 }
1505 ((struct instance_core__NativeArray*)var14)->values[2]=var24;
1506 } else {
1507 var14 = varonce13;
1508 varonce13 = NULL;
1509 }
1510 {
1511 var31 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType>*/
1512 }
1513 ((struct instance_core__NativeArray*)var14)->values[1]=var31;
1514 {
1515 var32 = ((val*(*)(val* self))(var14->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var14); /* native_to_s on <var14:NativeArray[String]>*/
1516 }
1517 varonce13 = var14;
1518 {
1519 nitc___nitc__AbstractCompiler___provide_declaration(self, var12, var32); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
1520 }
1521 {
1522 var33 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(self); /* new_visitor on <self:SeparateCompiler>*/
1523 }
1524 var_v = var33;
1525 if (unlikely(varonce34==NULL)) {
1526 var35 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1527 if (likely(varonce36!=NULL)) {
1528 var37 = varonce36;
1529 } else {
1530 var38 = "const struct types resolution_table_";
1531 var40 = (val*)(36l<<2|1);
1532 var41 = (val*)(36l<<2|1);
1533 var42 = (val*)((long)(0)<<2|3);
1534 var43 = (val*)((long)(0)<<2|3);
1535 var39 = core__flat___CString___to_s_unsafe(var38, var40, var41, var42, var43);
1536 var37 = var39;
1537 varonce36 = var37;
1538 }
1539 ((struct instance_core__NativeArray*)var35)->values[0]=var37;
1540 if (likely(varonce44!=NULL)) {
1541 var45 = varonce44;
1542 } else {
1543 var46 = " = {";
1544 var48 = (val*)(4l<<2|1);
1545 var49 = (val*)(4l<<2|1);
1546 var50 = (val*)((long)(0)<<2|3);
1547 var51 = (val*)((long)(0)<<2|3);
1548 var47 = core__flat___CString___to_s_unsafe(var46, var48, var49, var50, var51);
1549 var45 = var47;
1550 varonce44 = var45;
1551 }
1552 ((struct instance_core__NativeArray*)var35)->values[2]=var45;
1553 } else {
1554 var35 = varonce34;
1555 varonce34 = NULL;
1556 }
1557 {
1558 var52 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MType>*/
1559 }
1560 ((struct instance_core__NativeArray*)var35)->values[1]=var52;
1561 {
1562 var53 = ((val*(*)(val* self))(var35->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var35); /* native_to_s on <var35:NativeArray[String]>*/
1563 }
1564 varonce34 = var35;
1565 {
1566 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var53); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1567 }
1568 if (likely(varonce54!=NULL)) {
1569 var55 = varonce54;
1570 } else {
1571 var56 = "0, /* dummy */";
1572 var58 = (val*)(14l<<2|1);
1573 var59 = (val*)(14l<<2|1);
1574 var60 = (val*)((long)(0)<<2|3);
1575 var61 = (val*)((long)(0)<<2|3);
1576 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
1577 var55 = var57;
1578 varonce54 = var55;
1579 }
1580 {
1581 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var55); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1582 }
1583 if (likely(varonce62!=NULL)) {
1584 var63 = varonce62;
1585 } else {
1586 var64 = "{";
1587 var66 = (val*)(1l<<2|1);
1588 var67 = (val*)(1l<<2|1);
1589 var68 = (val*)((long)(0)<<2|3);
1590 var69 = (val*)((long)(0)<<2|3);
1591 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
1592 var63 = var65;
1593 varonce62 = var63;
1594 }
1595 {
1596 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var63); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1597 }
1598 {
1599 { /* Inline separate_compiler$SeparateCompiler$resolution_tables (self) on <self:SeparateCompiler> */
1600 var72 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables].val; /* _resolution_tables on <self:SeparateCompiler> */
1601 if (unlikely(var72 == NULL)) {
1602 if(catchStack.cursor >= 0){
1603 longjmp(catchStack.envs[catchStack.cursor], 1);
1604 }
1605 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
1606 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1072);
1607 fatal_exit(1);
1608 }
1609 var70 = var72;
1610 RET_LABEL71:(void)0;
1611 }
1612 }
1613 {
1614 var73 = ((val*(*)(val* self, val* p0))((((long)var70&3)?class_info[((long)var70&3)]:var70->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var70, var_mclass_type); /* [] on <var70:Map[MClassType, Array[nullable MType]]>*/
1615 }
1616 var_ = var73;
1617 {
1618 var74 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
1619 }
1620 var_75 = var74;
1621 for(;;) {
1622 {
1623 var76 = ((short int(*)(val* self))((((long)var_75&3)?class_info[((long)var_75&3)]:var_75->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_75); /* is_ok on <var_75:IndexedIterator[nullable MType]>*/
1624 }
1625 if (var76){
1626 } else {
1627 goto BREAK_label;
1628 }
1629 {
1630 var77 = ((val*(*)(val* self))((((long)var_75&3)?class_info[((long)var_75&3)]:var_75->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_75); /* item on <var_75:IndexedIterator[nullable MType]>*/
1631 }
1632 var_t = var77;
1633 if (var_t == NULL) {
1634 var78 = 1; /* is null */
1635 } else {
1636 var78 = 0; /* arg is null but recv is not */
1637 }
1638 if (0) {
1639 { /* Inline kernel$Object$== (var_t,((val*)NULL)) on <var_t:nullable MType> */
1640 var_other = ((val*)NULL);
1641 {
1642 { /* Inline kernel$Object$is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
1643 var83 = var_t == var_other;
1644 var81 = var83;
1645 goto RET_LABEL82;
1646 RET_LABEL82:(void)0;
1647 }
1648 }
1649 var79 = var81;
1650 goto RET_LABEL80;
1651 RET_LABEL80:(void)0;
1652 }
1653 var78 = var79;
1654 }
1655 if (var78){
1656 if (likely(varonce84!=NULL)) {
1657 var85 = varonce84;
1658 } else {
1659 var86 = "NULL, /* empty */";
1660 var88 = (val*)(17l<<2|1);
1661 var89 = (val*)(17l<<2|1);
1662 var90 = (val*)((long)(0)<<2|3);
1663 var91 = (val*)((long)(0)<<2|3);
1664 var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91);
1665 var85 = var87;
1666 varonce84 = var85;
1667 }
1668 {
1669 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var85); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1670 }
1671 } else {
1672 {
1673 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
1674 var94 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
1675 if (unlikely(var94 == NULL)) {
1676 if(catchStack.cursor >= 0){
1677 longjmp(catchStack.envs[catchStack.cursor], 1);
1678 }
1679 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
1680 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
1681 fatal_exit(1);
1682 }
1683 var92 = var94;
1684 RET_LABEL93:(void)0;
1685 }
1686 }
1687 {
1688 var95 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_t->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_t, var_mclass_type, var_mclass_type, var92, 1); /* resolve_for on <var_t:nullable MType(MType)>*/
1689 }
1690 var_tv = var95;
1691 {
1692 { /* Inline separate_compiler$SeparateCompiler$type_ids (self) on <self:SeparateCompiler> */
1693 var98 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_ids].val; /* _type_ids on <self:SeparateCompiler> */
1694 if (unlikely(var98 == NULL)) {
1695 if(catchStack.cursor >= 0){
1696 longjmp(catchStack.envs[catchStack.cursor], 1);
1697 }
1698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_ids");
1699 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 149);
1700 fatal_exit(1);
1701 }
1702 var96 = var98;
1703 RET_LABEL97:(void)0;
1704 }
1705 }
1706 {
1707 var99 = ((short int(*)(val* self, val* p0))((((long)var96&3)?class_info[((long)var96&3)]:var96->class)->vft[COLOR_core__abstract_collection__MapRead__has_key]))(var96, var_tv); /* has_key on <var96:Map[MType, Int]>*/
1708 }
1709 if (var99){
1710 if (unlikely(varonce100==NULL)) {
1711 var101 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
1712 if (likely(varonce102!=NULL)) {
1713 var103 = varonce102;
1714 } else {
1715 var104 = "type_";
1716 var106 = (val*)(5l<<2|1);
1717 var107 = (val*)(5l<<2|1);
1718 var108 = (val*)((long)(0)<<2|3);
1719 var109 = (val*)((long)(0)<<2|3);
1720 var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109);
1721 var103 = var105;
1722 varonce102 = var103;
1723 }
1724 ((struct instance_core__NativeArray*)var101)->values[0]=var103;
1725 } else {
1726 var101 = varonce100;
1727 varonce100 = NULL;
1728 }
1729 {
1730 var110 = ((val*(*)(val* self))(var_tv->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_tv); /* c_name on <var_tv:MType>*/
1731 }
1732 ((struct instance_core__NativeArray*)var101)->values[1]=var110;
1733 {
1734 var111 = ((val*(*)(val* self))(var101->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var101); /* native_to_s on <var101:NativeArray[String]>*/
1735 }
1736 varonce100 = var101;
1737 {
1738 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var111); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
1739 }
1740 if (unlikely(varonce112==NULL)) {
1741 var113 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
1742 if (likely(varonce114!=NULL)) {
1743 var115 = varonce114;
1744 } else {
1745 var116 = "&type_";
1746 var118 = (val*)(6l<<2|1);
1747 var119 = (val*)(6l<<2|1);
1748 var120 = (val*)((long)(0)<<2|3);
1749 var121 = (val*)((long)(0)<<2|3);
1750 var117 = core__flat___CString___to_s_unsafe(var116, var118, var119, var120, var121);
1751 var115 = var117;
1752 varonce114 = var115;
1753 }
1754 ((struct instance_core__NativeArray*)var113)->values[0]=var115;
1755 if (likely(varonce122!=NULL)) {
1756 var123 = varonce122;
1757 } else {
1758 var124 = ", /* ";
1759 var126 = (val*)(5l<<2|1);
1760 var127 = (val*)(5l<<2|1);
1761 var128 = (val*)((long)(0)<<2|3);
1762 var129 = (val*)((long)(0)<<2|3);
1763 var125 = core__flat___CString___to_s_unsafe(var124, var126, var127, var128, var129);
1764 var123 = var125;
1765 varonce122 = var123;
1766 }
1767 ((struct instance_core__NativeArray*)var113)->values[2]=var123;
1768 if (likely(varonce130!=NULL)) {
1769 var131 = varonce130;
1770 } else {
1771 var132 = ": ";
1772 var134 = (val*)(2l<<2|1);
1773 var135 = (val*)(2l<<2|1);
1774 var136 = (val*)((long)(0)<<2|3);
1775 var137 = (val*)((long)(0)<<2|3);
1776 var133 = core__flat___CString___to_s_unsafe(var132, var134, var135, var136, var137);
1777 var131 = var133;
1778 varonce130 = var131;
1779 }
1780 ((struct instance_core__NativeArray*)var113)->values[4]=var131;
1781 if (likely(varonce138!=NULL)) {
1782 var139 = varonce138;
1783 } else {
1784 var140 = " */";
1785 var142 = (val*)(3l<<2|1);
1786 var143 = (val*)(3l<<2|1);
1787 var144 = (val*)((long)(0)<<2|3);
1788 var145 = (val*)((long)(0)<<2|3);
1789 var141 = core__flat___CString___to_s_unsafe(var140, var142, var143, var144, var145);
1790 var139 = var141;
1791 varonce138 = var139;
1792 }
1793 ((struct instance_core__NativeArray*)var113)->values[6]=var139;
1794 } else {
1795 var113 = varonce112;
1796 varonce112 = NULL;
1797 }
1798 {
1799 var146 = ((val*(*)(val* self))(var_tv->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_tv); /* c_name on <var_tv:MType>*/
1800 }
1801 ((struct instance_core__NativeArray*)var113)->values[1]=var146;
1802 {
1803 var147 = ((val*(*)(val* self))(var_t->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t); /* to_s on <var_t:nullable MType(MType)>*/
1804 }
1805 ((struct instance_core__NativeArray*)var113)->values[3]=var147;
1806 {
1807 var148 = ((val*(*)(val* self))(var_tv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_tv); /* to_s on <var_tv:MType>*/
1808 }
1809 ((struct instance_core__NativeArray*)var113)->values[5]=var148;
1810 {
1811 var149 = ((val*(*)(val* self))(var113->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var113); /* native_to_s on <var113:NativeArray[String]>*/
1812 }
1813 varonce112 = var113;
1814 {
1815 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var149); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1816 }
1817 } else {
1818 if (unlikely(varonce150==NULL)) {
1819 var151 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
1820 if (likely(varonce152!=NULL)) {
1821 var153 = varonce152;
1822 } else {
1823 var154 = "NULL, /* empty (";
1824 var156 = (val*)(16l<<2|1);
1825 var157 = (val*)(16l<<2|1);
1826 var158 = (val*)((long)(0)<<2|3);
1827 var159 = (val*)((long)(0)<<2|3);
1828 var155 = core__flat___CString___to_s_unsafe(var154, var156, var157, var158, var159);
1829 var153 = var155;
1830 varonce152 = var153;
1831 }
1832 ((struct instance_core__NativeArray*)var151)->values[0]=var153;
1833 if (likely(varonce160!=NULL)) {
1834 var161 = varonce160;
1835 } else {
1836 var162 = ": ";
1837 var164 = (val*)(2l<<2|1);
1838 var165 = (val*)(2l<<2|1);
1839 var166 = (val*)((long)(0)<<2|3);
1840 var167 = (val*)((long)(0)<<2|3);
1841 var163 = core__flat___CString___to_s_unsafe(var162, var164, var165, var166, var167);
1842 var161 = var163;
1843 varonce160 = var161;
1844 }
1845 ((struct instance_core__NativeArray*)var151)->values[2]=var161;
1846 if (likely(varonce168!=NULL)) {
1847 var169 = varonce168;
1848 } else {
1849 var170 = " not a live type) */";
1850 var172 = (val*)(20l<<2|1);
1851 var173 = (val*)(20l<<2|1);
1852 var174 = (val*)((long)(0)<<2|3);
1853 var175 = (val*)((long)(0)<<2|3);
1854 var171 = core__flat___CString___to_s_unsafe(var170, var172, var173, var174, var175);
1855 var169 = var171;
1856 varonce168 = var169;
1857 }
1858 ((struct instance_core__NativeArray*)var151)->values[4]=var169;
1859 } else {
1860 var151 = varonce150;
1861 varonce150 = NULL;
1862 }
1863 {
1864 var176 = ((val*(*)(val* self))(var_t->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t); /* to_s on <var_t:nullable MType(MType)>*/
1865 }
1866 ((struct instance_core__NativeArray*)var151)->values[1]=var176;
1867 {
1868 var177 = ((val*(*)(val* self))(var_tv->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_tv); /* to_s on <var_tv:MType>*/
1869 }
1870 ((struct instance_core__NativeArray*)var151)->values[3]=var177;
1871 {
1872 var178 = ((val*(*)(val* self))(var151->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var151); /* native_to_s on <var151:NativeArray[String]>*/
1873 }
1874 varonce150 = var151;
1875 {
1876 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var178); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1877 }
1878 }
1879 }
1880 {
1881 ((void(*)(val* self))((((long)var_75&3)?class_info[((long)var_75&3)]:var_75->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_75); /* next on <var_75:IndexedIterator[nullable MType]>*/
1882 }
1883 }
1884 BREAK_label: (void)0;
1885 {
1886 ((void(*)(val* self))((((long)var_75&3)?class_info[((long)var_75&3)]:var_75->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_75); /* finish on <var_75:IndexedIterator[nullable MType]>*/
1887 }
1888 if (likely(varonce179!=NULL)) {
1889 var180 = varonce179;
1890 } else {
1891 var181 = "}";
1892 var183 = (val*)(1l<<2|1);
1893 var184 = (val*)(1l<<2|1);
1894 var185 = (val*)((long)(0)<<2|3);
1895 var186 = (val*)((long)(0)<<2|3);
1896 var182 = core__flat___CString___to_s_unsafe(var181, var183, var184, var185, var186);
1897 var180 = var182;
1898 varonce179 = var180;
1899 }
1900 {
1901 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var180); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1902 }
1903 if (likely(varonce187!=NULL)) {
1904 var188 = varonce187;
1905 } else {
1906 var189 = "};";
1907 var191 = (val*)(2l<<2|1);
1908 var192 = (val*)(2l<<2|1);
1909 var193 = (val*)((long)(0)<<2|3);
1910 var194 = (val*)((long)(0)<<2|3);
1911 var190 = core__flat___CString___to_s_unsafe(var189, var191, var192, var193, var194);
1912 var188 = var190;
1913 varonce187 = var188;
1914 }
1915 {
1916 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var188); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
1917 }
1918 RET_LABEL:;
1919 }
1920 /* method separate_compiler$SeparateCompiler$compile_class_to_c for (self: SeparateCompiler, MClass) */
1921 void nitc___nitc__SeparateCompiler___compile_class_to_c(val* self, val* p0) {
1922 val* var_mclass /* var mclass: MClass */;
1923 short int var /* : Bool */;
1924 short int var2 /* : Bool */;
1925 val* var3 /* : MClassDef */;
1926 val* var5 /* : MClassDef */;
1927 val* var6 /* : MClassType */;
1928 val* var8 /* : MClassType */;
1929 val* var_mtype /* var mtype: MClassType */;
1930 val* var9 /* : String */;
1931 val* var_c_name /* var c_name: String */;
1932 val* var10 /* : AbstractCompilerVisitor */;
1933 val* var_v /* var v: SeparateCompilerVisitor */;
1934 val* var11 /* : nullable RapidTypeAnalysis */;
1935 val* var13 /* : nullable RapidTypeAnalysis */;
1936 val* var_rta /* var rta: nullable RapidTypeAnalysis */;
1937 short int var14 /* : Bool */;
1938 short int var15 /* : Bool */;
1939 short int var16 /* : Bool */;
1940 val* var_other /* var other: nullable Object */;
1941 short int var18 /* : Bool */;
1942 short int var19 /* : Bool */;
1943 short int var_ /* var : Bool */;
1944 val* var20 /* : HashSet[MClass] */;
1945 val* var22 /* : HashSet[MClass] */;
1946 short int var23 /* : Bool */;
1947 short int var24 /* : Bool */;
1948 short int var_is_dead /* var is_dead: Bool */;
1949 short int var25 /* : Bool */;
1950 short int var26 /* : Bool */;
1951 short int var27 /* : Bool */;
1952 short int var_28 /* var : Bool */;
1953 short int var29 /* : Bool */;
1954 short int var_30 /* var : Bool */;
1955 val* var31 /* : MClassKind */;
1956 val* var33 /* : MClassKind */;
1957 val* var34 /* : Sys */;
1958 val* var35 /* : MClassKind */;
1959 short int var36 /* : Bool */;
1960 val* var_other38 /* var other: nullable Object */;
1961 short int var39 /* : Bool */;
1962 short int var41 /* : Bool */;
1963 short int var_42 /* var : Bool */;
1964 val* var43 /* : MClassKind */;
1965 val* var45 /* : MClassKind */;
1966 val* var46 /* : Sys */;
1967 val* var47 /* : MClassKind */;
1968 short int var48 /* : Bool */;
1969 short int var50 /* : Bool */;
1970 short int var52 /* : Bool */;
1971 short int var_need_corpse /* var need_corpse: Bool */;
1972 val* var53 /* : NativeArray[String] */;
1973 static val* varonce;
1974 static val* varonce54;
1975 val* var55 /* : String */;
1976 char* var56 /* : CString */;
1977 val* var57 /* : String */;
1978 val* var58 /* : nullable Int */;
1979 val* var59 /* : nullable Int */;
1980 val* var60 /* : nullable Bool */;
1981 val* var61 /* : nullable Bool */;
1982 static val* varonce62;
1983 val* var63 /* : String */;
1984 char* var64 /* : CString */;
1985 val* var65 /* : String */;
1986 val* var66 /* : nullable Int */;
1987 val* var67 /* : nullable Int */;
1988 val* var68 /* : nullable Bool */;
1989 val* var69 /* : nullable Bool */;
1990 static val* varonce70;
1991 val* var71 /* : String */;
1992 char* var72 /* : CString */;
1993 val* var73 /* : String */;
1994 val* var74 /* : nullable Int */;
1995 val* var75 /* : nullable Int */;
1996 val* var76 /* : nullable Bool */;
1997 val* var77 /* : nullable Bool */;
1998 static val* varonce78;
1999 val* var79 /* : String */;
2000 char* var80 /* : CString */;
2001 val* var81 /* : String */;
2002 val* var82 /* : nullable Int */;
2003 val* var83 /* : nullable Int */;
2004 val* var84 /* : nullable Bool */;
2005 val* var85 /* : nullable Bool */;
2006 static val* varonce86;
2007 val* var87 /* : String */;
2008 char* var88 /* : CString */;
2009 val* var89 /* : String */;
2010 val* var90 /* : nullable Int */;
2011 val* var91 /* : nullable Int */;
2012 val* var92 /* : nullable Bool */;
2013 val* var93 /* : nullable Bool */;
2014 val* var94 /* : String */;
2015 val* var95 /* : String */;
2016 val* var96 /* : String */;
2017 val* var97 /* : String */;
2018 short int var98 /* : Bool */;
2019 short int var99 /* : Bool */;
2020 short int var_100 /* var : Bool */;
2021 val* var102 /* : NativeArray[String] */;
2022 static val* varonce101;
2023 static val* varonce103;
2024 val* var104 /* : String */;
2025 char* var105 /* : CString */;
2026 val* var106 /* : String */;
2027 val* var107 /* : nullable Int */;
2028 val* var108 /* : nullable Int */;
2029 val* var109 /* : nullable Bool */;
2030 val* var110 /* : nullable Bool */;
2031 val* var111 /* : String */;
2032 val* var113 /* : NativeArray[String] */;
2033 static val* varonce112;
2034 static val* varonce114;
2035 val* var115 /* : String */;
2036 char* var116 /* : CString */;
2037 val* var117 /* : String */;
2038 val* var118 /* : nullable Int */;
2039 val* var119 /* : nullable Int */;
2040 val* var120 /* : nullable Bool */;
2041 val* var121 /* : nullable Bool */;
2042 static val* varonce122;
2043 val* var123 /* : String */;
2044 char* var124 /* : CString */;
2045 val* var125 /* : String */;
2046 val* var126 /* : nullable Int */;
2047 val* var127 /* : nullable Int */;
2048 val* var128 /* : nullable Bool */;
2049 val* var129 /* : nullable Bool */;
2050 val* var130 /* : String */;
2051 val* var132 /* : NativeArray[String] */;
2052 static val* varonce131;
2053 static val* varonce133;
2054 val* var134 /* : String */;
2055 char* var135 /* : CString */;
2056 val* var136 /* : String */;
2057 val* var137 /* : nullable Int */;
2058 val* var138 /* : nullable Int */;
2059 val* var139 /* : nullable Bool */;
2060 val* var140 /* : nullable Bool */;
2061 static val* varonce141;
2062 val* var142 /* : String */;
2063 char* var143 /* : CString */;
2064 val* var144 /* : String */;
2065 val* var145 /* : nullable Int */;
2066 val* var146 /* : nullable Int */;
2067 val* var147 /* : nullable Bool */;
2068 val* var148 /* : nullable Bool */;
2069 val* var149 /* : String */;
2070 val* var151 /* : NativeArray[String] */;
2071 static val* varonce150;
2072 static val* varonce152;
2073 val* var153 /* : String */;
2074 char* var154 /* : CString */;
2075 val* var155 /* : String */;
2076 val* var156 /* : nullable Int */;
2077 val* var157 /* : nullable Int */;
2078 val* var158 /* : nullable Bool */;
2079 val* var159 /* : nullable Bool */;
2080 long var160 /* : Int */;
2081 val* var161 /* : String */;
2082 val* var162 /* : String */;
2083 static val* varonce163;
2084 val* var164 /* : String */;
2085 char* var165 /* : CString */;
2086 val* var166 /* : String */;
2087 val* var167 /* : nullable Int */;
2088 val* var168 /* : nullable Int */;
2089 val* var169 /* : nullable Bool */;
2090 val* var170 /* : nullable Bool */;
2091 val* var171 /* : Map[MClass, Array[nullable MPropDef]] */;
2092 val* var173 /* : Map[MClass, Array[nullable MPropDef]] */;
2093 val* var174 /* : nullable Object */;
2094 val* var_vft /* var vft: nullable Array[nullable MPropDef] */;
2095 short int var175 /* : Bool */;
2096 short int var176 /* : Bool */;
2097 short int var178 /* : Bool */;
2098 short int var179 /* : Bool */;
2099 long var_i /* var i: Int */;
2100 long var180 /* : Int */;
2101 long var182 /* : Int */;
2102 long var_183 /* var : Int */;
2103 short int var184 /* : Bool */;
2104 short int var186 /* : Bool */;
2105 int cltype;
2106 int idtype;
2107 const char* var_class_name;
2108 short int var187 /* : Bool */;
2109 val* var188 /* : nullable Object */;
2110 val* var_mpropdef /* var mpropdef: nullable MPropDef */;
2111 short int var189 /* : Bool */;
2112 short int var190 /* : Bool */;
2113 short int var192 /* : Bool */;
2114 short int var194 /* : Bool */;
2115 static val* varonce195;
2116 val* var196 /* : String */;
2117 char* var197 /* : CString */;
2118 val* var198 /* : String */;
2119 val* var199 /* : nullable Int */;
2120 val* var200 /* : nullable Int */;
2121 val* var201 /* : nullable Bool */;
2122 val* var202 /* : nullable Bool */;
2123 short int var203 /* : Bool */;
2124 int cltype204;
2125 int idtype205;
2126 short int var206 /* : Bool */;
2127 short int var207 /* : Bool */;
2128 short int var208 /* : Bool */;
2129 short int var210 /* : Bool */;
2130 short int var211 /* : Bool */;
2131 short int var_212 /* var : Bool */;
2132 val* var213 /* : HashSet[MMethodDef] */;
2133 val* var215 /* : HashSet[MMethodDef] */;
2134 short int var216 /* : Bool */;
2135 short int var217 /* : Bool */;
2136 val* var219 /* : NativeArray[String] */;
2137 static val* varonce218;
2138 static val* varonce220;
2139 val* var221 /* : String */;
2140 char* var222 /* : CString */;
2141 val* var223 /* : String */;
2142 val* var224 /* : nullable Int */;
2143 val* var225 /* : nullable Int */;
2144 val* var226 /* : nullable Bool */;
2145 val* var227 /* : nullable Bool */;
2146 static val* varonce228;
2147 val* var229 /* : String */;
2148 char* var230 /* : CString */;
2149 val* var231 /* : String */;
2150 val* var232 /* : nullable Int */;
2151 val* var233 /* : nullable Int */;
2152 val* var234 /* : nullable Bool */;
2153 val* var235 /* : nullable Bool */;
2154 static val* varonce236;
2155 val* var237 /* : String */;
2156 char* var238 /* : CString */;
2157 val* var239 /* : String */;
2158 val* var240 /* : nullable Int */;
2159 val* var241 /* : nullable Int */;
2160 val* var242 /* : nullable Bool */;
2161 val* var243 /* : nullable Bool */;
2162 static val* varonce244;
2163 val* var245 /* : String */;
2164 char* var246 /* : CString */;
2165 val* var247 /* : String */;
2166 val* var248 /* : nullable Int */;
2167 val* var249 /* : nullable Int */;
2168 val* var250 /* : nullable Bool */;
2169 val* var251 /* : nullable Bool */;
2170 val* var252 /* : MModule */;
2171 val* var254 /* : MModule */;
2172 val* var255 /* : String */;
2173 val* var256 /* : String */;
2174 val* var257 /* : String */;
2175 val* var258 /* : String */;
2176 short int var260 /* : Bool */;
2177 short int var261 /* : Bool */;
2178 short int var262 /* : Bool */;
2179 short int var264 /* : Bool */;
2180 short int var_265 /* var : Bool */;
2181 val* var266 /* : nullable MSignature */;
2182 val* var268 /* : nullable MSignature */;
2183 short int var269 /* : Bool */;
2184 short int var270 /* : Bool */;
2185 short int var272 /* : Bool */;
2186 short int var274 /* : Bool */;
2187 short int var_275 /* var : Bool */;
2188 val* var276 /* : MProperty */;
2189 val* var278 /* : MProperty */;
2190 short int var279 /* : Bool */;
2191 short int var281 /* : Bool */;
2192 val* var283 /* : NativeArray[String] */;
2193 static val* varonce282;
2194 static val* varonce284;
2195 val* var285 /* : String */;
2196 char* var286 /* : CString */;
2197 val* var287 /* : String */;
2198 val* var288 /* : nullable Int */;
2199 val* var289 /* : nullable Int */;
2200 val* var290 /* : nullable Bool */;
2201 val* var291 /* : nullable Bool */;
2202 static val* varonce292;
2203 val* var293 /* : String */;
2204 char* var294 /* : CString */;
2205 val* var295 /* : String */;
2206 val* var296 /* : nullable Int */;
2207 val* var297 /* : nullable Int */;
2208 val* var298 /* : nullable Bool */;
2209 val* var299 /* : nullable Bool */;
2210 static val* varonce300;
2211 val* var301 /* : String */;
2212 char* var302 /* : CString */;
2213 val* var303 /* : String */;
2214 val* var304 /* : nullable Int */;
2215 val* var305 /* : nullable Int */;
2216 val* var306 /* : nullable Bool */;
2217 val* var307 /* : nullable Bool */;
2218 static val* varonce308;
2219 val* var309 /* : String */;
2220 char* var310 /* : CString */;
2221 val* var311 /* : String */;
2222 val* var312 /* : nullable Int */;
2223 val* var313 /* : nullable Int */;
2224 val* var314 /* : nullable Bool */;
2225 val* var315 /* : nullable Bool */;
2226 val* var316 /* : MModule */;
2227 val* var318 /* : MModule */;
2228 val* var319 /* : String */;
2229 val* var320 /* : String */;
2230 val* var321 /* : String */;
2231 val* var322 /* : String */;
2232 val* var323 /* : SeparateRuntimeFunction */;
2233 val* var_rf /* var rf: SeparateRuntimeFunction */;
2234 val* var324 /* : String */;
2235 val* var326 /* : NativeArray[String] */;
2236 static val* varonce325;
2237 static val* varonce327;
2238 val* var328 /* : String */;
2239 char* var329 /* : CString */;
2240 val* var330 /* : String */;
2241 val* var331 /* : nullable Int */;
2242 val* var332 /* : nullable Int */;
2243 val* var333 /* : nullable Bool */;
2244 val* var334 /* : nullable Bool */;
2245 static val* varonce335;
2246 val* var336 /* : String */;
2247 char* var337 /* : CString */;
2248 val* var338 /* : String */;
2249 val* var339 /* : nullable Int */;
2250 val* var340 /* : nullable Int */;
2251 val* var341 /* : nullable Bool */;
2252 val* var342 /* : nullable Bool */;
2253 static val* varonce343;
2254 val* var344 /* : String */;
2255 char* var345 /* : CString */;
2256 val* var346 /* : String */;
2257 val* var347 /* : nullable Int */;
2258 val* var348 /* : nullable Int */;
2259 val* var349 /* : nullable Bool */;
2260 val* var350 /* : nullable Bool */;
2261 static val* varonce351;
2262 val* var352 /* : String */;
2263 char* var353 /* : CString */;
2264 val* var354 /* : String */;
2265 val* var355 /* : nullable Int */;
2266 val* var356 /* : nullable Int */;
2267 val* var357 /* : nullable Bool */;
2268 val* var358 /* : nullable Bool */;
2269 static val* varonce359;
2270 val* var360 /* : String */;
2271 char* var361 /* : CString */;
2272 val* var362 /* : String */;
2273 val* var363 /* : nullable Int */;
2274 val* var364 /* : nullable Int */;
2275 val* var365 /* : nullable Bool */;
2276 val* var366 /* : nullable Bool */;
2277 val* var367 /* : String */;
2278 val* var368 /* : MModule */;
2279 val* var370 /* : MModule */;
2280 val* var371 /* : String */;
2281 val* var372 /* : String */;
2282 val* var373 /* : String */;
2283 val* var374 /* : String */;
2284 long var375 /* : Int */;
2285 static val* varonce376;
2286 val* var377 /* : String */;
2287 char* var378 /* : CString */;
2288 val* var379 /* : String */;
2289 val* var380 /* : nullable Int */;
2290 val* var381 /* : nullable Int */;
2291 val* var382 /* : nullable Bool */;
2292 val* var383 /* : nullable Bool */;
2293 static val* varonce384;
2294 val* var385 /* : String */;
2295 char* var386 /* : CString */;
2296 val* var387 /* : String */;
2297 val* var388 /* : nullable Int */;
2298 val* var389 /* : nullable Int */;
2299 val* var390 /* : nullable Bool */;
2300 val* var391 /* : nullable Bool */;
2301 short int var392 /* : Bool */;
2302 short int var393 /* : Bool */;
2303 short int var_394 /* var : Bool */;
2304 val* var395 /* : MClass */;
2305 val* var397 /* : MClass */;
2306 val* var398 /* : String */;
2307 val* var400 /* : String */;
2308 static val* varonce401;
2309 val* var402 /* : String */;
2310 char* var403 /* : CString */;
2311 val* var404 /* : String */;
2312 val* var405 /* : nullable Int */;
2313 val* var406 /* : nullable Int */;
2314 val* var407 /* : nullable Bool */;
2315 val* var408 /* : nullable Bool */;
2316 short int var409 /* : Bool */;
2317 short int var410 /* : Bool */;
2318 short int var412 /* : Bool */;
2319 val* var413 /* : CodeWriter */;
2320 val* var415 /* : CodeWriter */;
2321 val* var417 /* : NativeArray[String] */;
2322 static val* varonce416;
2323 static val* varonce418;
2324 val* var419 /* : String */;
2325 char* var420 /* : CString */;
2326 val* var421 /* : String */;
2327 val* var422 /* : nullable Int */;
2328 val* var423 /* : nullable Int */;
2329 val* var424 /* : nullable Bool */;
2330 val* var425 /* : nullable Bool */;
2331 static val* varonce426;
2332 val* var427 /* : String */;
2333 char* var428 /* : CString */;
2334 val* var429 /* : String */;
2335 val* var430 /* : nullable Int */;
2336 val* var431 /* : nullable Int */;
2337 val* var432 /* : nullable Bool */;
2338 val* var433 /* : nullable Bool */;
2339 val* var434 /* : String */;
2340 val* var435 /* : CodeWriter */;
2341 val* var437 /* : CodeWriter */;
2342 static val* varonce438;
2343 val* var439 /* : String */;
2344 char* var440 /* : CString */;
2345 val* var441 /* : String */;
2346 val* var442 /* : nullable Int */;
2347 val* var443 /* : nullable Int */;
2348 val* var444 /* : nullable Bool */;
2349 val* var445 /* : nullable Bool */;
2350 val* var446 /* : CodeWriter */;
2351 val* var448 /* : CodeWriter */;
2352 static val* varonce449;
2353 val* var450 /* : String */;
2354 char* var451 /* : CString */;
2355 val* var452 /* : String */;
2356 val* var453 /* : nullable Int */;
2357 val* var454 /* : nullable Int */;
2358 val* var455 /* : nullable Bool */;
2359 val* var456 /* : nullable Bool */;
2360 val* var457 /* : CodeWriter */;
2361 val* var459 /* : CodeWriter */;
2362 val* var461 /* : NativeArray[String] */;
2363 static val* varonce460;
2364 static val* varonce462;
2365 val* var463 /* : String */;
2366 char* var464 /* : CString */;
2367 val* var465 /* : String */;
2368 val* var466 /* : nullable Int */;
2369 val* var467 /* : nullable Int */;
2370 val* var468 /* : nullable Bool */;
2371 val* var469 /* : nullable Bool */;
2372 val* var470 /* : String */;
2373 val* var471 /* : String */;
2374 val* var472 /* : CodeWriter */;
2375 val* var474 /* : CodeWriter */;
2376 static val* varonce475;
2377 val* var476 /* : String */;
2378 char* var477 /* : CString */;
2379 val* var478 /* : String */;
2380 val* var479 /* : nullable Int */;
2381 val* var480 /* : nullable Int */;
2382 val* var481 /* : nullable Bool */;
2383 val* var482 /* : nullable Bool */;
2384 short int var483 /* : Bool */;
2385 short int var_484 /* var : Bool */;
2386 val* var485 /* : MClass */;
2387 val* var487 /* : MClass */;
2388 val* var488 /* : String */;
2389 val* var490 /* : String */;
2390 static val* varonce491;
2391 val* var492 /* : String */;
2392 char* var493 /* : CString */;
2393 val* var494 /* : String */;
2394 val* var495 /* : nullable Int */;
2395 val* var496 /* : nullable Int */;
2396 val* var497 /* : nullable Bool */;
2397 val* var498 /* : nullable Bool */;
2398 short int var499 /* : Bool */;
2399 short int var501 /* : Bool */;
2400 short int var502 /* : Bool */;
2401 val* var504 /* : NativeArray[String] */;
2402 static val* varonce503;
2403 static val* varonce505;
2404 val* var506 /* : String */;
2405 char* var507 /* : CString */;
2406 val* var508 /* : String */;
2407 val* var509 /* : nullable Int */;
2408 val* var510 /* : nullable Int */;
2409 val* var511 /* : nullable Bool */;
2410 val* var512 /* : nullable Bool */;
2411 val* var513 /* : String */;
2412 val* var515 /* : NativeArray[String] */;
2413 static val* varonce514;
2414 static val* varonce516;
2415 val* var517 /* : String */;
2416 char* var518 /* : CString */;
2417 val* var519 /* : String */;
2418 val* var520 /* : nullable Int */;
2419 val* var521 /* : nullable Int */;
2420 val* var522 /* : nullable Bool */;
2421 val* var523 /* : nullable Bool */;
2422 static val* varonce524;
2423 val* var525 /* : String */;
2424 char* var526 /* : CString */;
2425 val* var527 /* : String */;
2426 val* var528 /* : nullable Int */;
2427 val* var529 /* : nullable Int */;
2428 val* var530 /* : nullable Bool */;
2429 val* var531 /* : nullable Bool */;
2430 static val* varonce532;
2431 val* var533 /* : String */;
2432 char* var534 /* : CString */;
2433 val* var535 /* : String */;
2434 val* var536 /* : nullable Int */;
2435 val* var537 /* : nullable Int */;
2436 val* var538 /* : nullable Bool */;
2437 val* var539 /* : nullable Bool */;
2438 val* var540 /* : String */;
2439 val* var541 /* : String */;
2440 val* var543 /* : NativeArray[String] */;
2441 static val* varonce542;
2442 static val* varonce544;
2443 val* var545 /* : String */;
2444 char* var546 /* : CString */;
2445 val* var547 /* : String */;
2446 val* var548 /* : nullable Int */;
2447 val* var549 /* : nullable Int */;
2448 val* var550 /* : nullable Bool */;
2449 val* var551 /* : nullable Bool */;
2450 static val* varonce552;
2451 val* var553 /* : String */;
2452 char* var554 /* : CString */;
2453 val* var555 /* : String */;
2454 val* var556 /* : nullable Int */;
2455 val* var557 /* : nullable Int */;
2456 val* var558 /* : nullable Bool */;
2457 val* var559 /* : nullable Bool */;
2458 val* var560 /* : String */;
2459 val* var561 /* : String */;
2460 val* var563 /* : NativeArray[String] */;
2461 static val* varonce562;
2462 static val* varonce564;
2463 val* var565 /* : String */;
2464 char* var566 /* : CString */;
2465 val* var567 /* : String */;
2466 val* var568 /* : nullable Int */;
2467 val* var569 /* : nullable Int */;
2468 val* var570 /* : nullable Bool */;
2469 val* var571 /* : nullable Bool */;
2470 static val* varonce572;
2471 val* var573 /* : String */;
2472 char* var574 /* : CString */;
2473 val* var575 /* : String */;
2474 val* var576 /* : nullable Int */;
2475 val* var577 /* : nullable Int */;
2476 val* var578 /* : nullable Bool */;
2477 val* var579 /* : nullable Bool */;
2478 static val* varonce580;
2479 val* var581 /* : String */;
2480 char* var582 /* : CString */;
2481 val* var583 /* : String */;
2482 val* var584 /* : nullable Int */;
2483 val* var585 /* : nullable Int */;
2484 val* var586 /* : nullable Bool */;
2485 val* var587 /* : nullable Bool */;
2486 val* var588 /* : String */;
2487 val* var589 /* : String */;
2488 val* var590 /* : String */;
2489 val* var592 /* : NativeArray[String] */;
2490 static val* varonce591;
2491 static val* varonce593;
2492 val* var594 /* : String */;
2493 char* var595 /* : CString */;
2494 val* var596 /* : String */;
2495 val* var597 /* : nullable Int */;
2496 val* var598 /* : nullable Int */;
2497 val* var599 /* : nullable Bool */;
2498 val* var600 /* : nullable Bool */;
2499 static val* varonce601;
2500 val* var602 /* : String */;
2501 char* var603 /* : CString */;
2502 val* var604 /* : String */;
2503 val* var605 /* : nullable Int */;
2504 val* var606 /* : nullable Int */;
2505 val* var607 /* : nullable Bool */;
2506 val* var608 /* : nullable Bool */;
2507 val* var609 /* : String */;
2508 val* var610 /* : String */;
2509 val* var611 /* : String */;
2510 val* var_alloc /* var alloc: String */;
2511 val* var613 /* : NativeArray[String] */;
2512 static val* varonce612;
2513 static val* varonce614;
2514 val* var615 /* : String */;
2515 char* var616 /* : CString */;
2516 val* var617 /* : String */;
2517 val* var618 /* : nullable Int */;
2518 val* var619 /* : nullable Int */;
2519 val* var620 /* : nullable Bool */;
2520 val* var621 /* : nullable Bool */;
2521 static val* varonce622;
2522 val* var623 /* : String */;
2523 char* var624 /* : CString */;
2524 val* var625 /* : String */;
2525 val* var626 /* : nullable Int */;
2526 val* var627 /* : nullable Int */;
2527 val* var628 /* : nullable Bool */;
2528 val* var629 /* : nullable Bool */;
2529 static val* varonce630;
2530 val* var631 /* : String */;
2531 char* var632 /* : CString */;
2532 val* var633 /* : String */;
2533 val* var634 /* : nullable Int */;
2534 val* var635 /* : nullable Int */;
2535 val* var636 /* : nullable Bool */;
2536 val* var637 /* : nullable Bool */;
2537 val* var638 /* : String */;
2538 val* var639 /* : AbstractCompiler */;
2539 val* var641 /* : AbstractCompiler */;
2540 val* var642 /* : Set[MType] */;
2541 val* var644 /* : Set[MType] */;
2542 val* var646 /* : NativeArray[String] */;
2543 static val* varonce645;
2544 static val* varonce647;
2545 val* var648 /* : String */;
2546 char* var649 /* : CString */;
2547 val* var650 /* : String */;
2548 val* var651 /* : nullable Int */;
2549 val* var652 /* : nullable Int */;
2550 val* var653 /* : nullable Bool */;
2551 val* var654 /* : nullable Bool */;
2552 val* var655 /* : String */;
2553 val* var657 /* : NativeArray[String] */;
2554 static val* varonce656;
2555 static val* varonce658;
2556 val* var659 /* : String */;
2557 char* var660 /* : CString */;
2558 val* var661 /* : String */;
2559 val* var662 /* : nullable Int */;
2560 val* var663 /* : nullable Int */;
2561 val* var664 /* : nullable Bool */;
2562 val* var665 /* : nullable Bool */;
2563 static val* varonce666;
2564 val* var667 /* : String */;
2565 char* var668 /* : CString */;
2566 val* var669 /* : String */;
2567 val* var670 /* : nullable Int */;
2568 val* var671 /* : nullable Int */;
2569 val* var672 /* : nullable Bool */;
2570 val* var673 /* : nullable Bool */;
2571 val* var674 /* : String */;
2572 val* var676 /* : NativeArray[String] */;
2573 static val* varonce675;
2574 static val* varonce677;
2575 val* var678 /* : String */;
2576 char* var679 /* : CString */;
2577 val* var680 /* : String */;
2578 val* var681 /* : nullable Int */;
2579 val* var682 /* : nullable Int */;
2580 val* var683 /* : nullable Bool */;
2581 val* var684 /* : nullable Bool */;
2582 val* var685 /* : String */;
2583 val* var687 /* : NativeArray[String] */;
2584 static val* varonce686;
2585 static val* varonce688;
2586 val* var689 /* : String */;
2587 char* var690 /* : CString */;
2588 val* var691 /* : String */;
2589 val* var692 /* : nullable Int */;
2590 val* var693 /* : nullable Int */;
2591 val* var694 /* : nullable Bool */;
2592 val* var695 /* : nullable Bool */;
2593 static val* varonce696;
2594 val* var697 /* : String */;
2595 char* var698 /* : CString */;
2596 val* var699 /* : String */;
2597 val* var700 /* : nullable Int */;
2598 val* var701 /* : nullable Int */;
2599 val* var702 /* : nullable Bool */;
2600 val* var703 /* : nullable Bool */;
2601 val* var704 /* : String */;
2602 static val* varonce705;
2603 val* var706 /* : String */;
2604 char* var707 /* : CString */;
2605 val* var708 /* : String */;
2606 val* var709 /* : nullable Int */;
2607 val* var710 /* : nullable Int */;
2608 val* var711 /* : nullable Bool */;
2609 val* var712 /* : nullable Bool */;
2610 static val* varonce713;
2611 val* var714 /* : String */;
2612 char* var715 /* : CString */;
2613 val* var716 /* : String */;
2614 val* var717 /* : nullable Int */;
2615 val* var718 /* : nullable Int */;
2616 val* var719 /* : nullable Bool */;
2617 val* var720 /* : nullable Bool */;
2618 static val* varonce721;
2619 val* var722 /* : String */;
2620 char* var723 /* : CString */;
2621 val* var724 /* : String */;
2622 val* var725 /* : nullable Int */;
2623 val* var726 /* : nullable Int */;
2624 val* var727 /* : nullable Bool */;
2625 val* var728 /* : nullable Bool */;
2626 val* var729 /* : MClass */;
2627 val* var731 /* : MClass */;
2628 val* var732 /* : String */;
2629 val* var734 /* : String */;
2630 static val* varonce735;
2631 val* var736 /* : String */;
2632 char* var737 /* : CString */;
2633 val* var738 /* : String */;
2634 val* var739 /* : nullable Int */;
2635 val* var740 /* : nullable Int */;
2636 val* var741 /* : nullable Bool */;
2637 val* var742 /* : nullable Bool */;
2638 short int var743 /* : Bool */;
2639 short int var745 /* : Bool */;
2640 short int var746 /* : Bool */;
2641 val* var747 /* : AbstractCompilerVisitor */;
2642 val* var749 /* : NativeArray[String] */;
2643 static val* varonce748;
2644 static val* varonce750;
2645 val* var751 /* : String */;
2646 char* var752 /* : CString */;
2647 val* var753 /* : String */;
2648 val* var754 /* : nullable Int */;
2649 val* var755 /* : nullable Int */;
2650 val* var756 /* : nullable Bool */;
2651 val* var757 /* : nullable Bool */;
2652 val* var758 /* : String */;
2653 val* var760 /* : NativeArray[String] */;
2654 static val* varonce759;
2655 static val* varonce761;
2656 val* var762 /* : String */;
2657 char* var763 /* : CString */;
2658 val* var764 /* : String */;
2659 val* var765 /* : nullable Int */;
2660 val* var766 /* : nullable Int */;
2661 val* var767 /* : nullable Bool */;
2662 val* var768 /* : nullable Bool */;
2663 static val* varonce769;
2664 val* var770 /* : String */;
2665 char* var771 /* : CString */;
2666 val* var772 /* : String */;
2667 val* var773 /* : nullable Int */;
2668 val* var774 /* : nullable Int */;
2669 val* var775 /* : nullable Bool */;
2670 val* var776 /* : nullable Bool */;
2671 val* var777 /* : String */;
2672 val* var778 /* : String */;
2673 val* var780 /* : NativeArray[String] */;
2674 static val* varonce779;
2675 static val* varonce781;
2676 val* var782 /* : String */;
2677 char* var783 /* : CString */;
2678 val* var784 /* : String */;
2679 val* var785 /* : nullable Int */;
2680 val* var786 /* : nullable Int */;
2681 val* var787 /* : nullable Bool */;
2682 val* var788 /* : nullable Bool */;
2683 static val* varonce789;
2684 val* var790 /* : String */;
2685 char* var791 /* : CString */;
2686 val* var792 /* : String */;
2687 val* var793 /* : nullable Int */;
2688 val* var794 /* : nullable Int */;
2689 val* var795 /* : nullable Bool */;
2690 val* var796 /* : nullable Bool */;
2691 val* var797 /* : String */;
2692 val* var798 /* : String */;
2693 val* var800 /* : NativeArray[String] */;
2694 static val* varonce799;
2695 static val* varonce801;
2696 val* var802 /* : String */;
2697 char* var803 /* : CString */;
2698 val* var804 /* : String */;
2699 val* var805 /* : nullable Int */;
2700 val* var806 /* : nullable Int */;
2701 val* var807 /* : nullable Bool */;
2702 val* var808 /* : nullable Bool */;
2703 static val* varonce809;
2704 val* var810 /* : String */;
2705 char* var811 /* : CString */;
2706 val* var812 /* : String */;
2707 val* var813 /* : nullable Int */;
2708 val* var814 /* : nullable Int */;
2709 val* var815 /* : nullable Bool */;
2710 val* var816 /* : nullable Bool */;
2711 val* var817 /* : String */;
2712 val* var818 /* : String */;
2713 val* var820 /* : NativeArray[String] */;
2714 static val* varonce819;
2715 static val* varonce821;
2716 val* var822 /* : String */;
2717 char* var823 /* : CString */;
2718 val* var824 /* : String */;
2719 val* var825 /* : nullable Int */;
2720 val* var826 /* : nullable Int */;
2721 val* var827 /* : nullable Bool */;
2722 val* var828 /* : nullable Bool */;
2723 val* var829 /* : String */;
2724 val* var830 /* : String */;
2725 static val* varonce831;
2726 val* var832 /* : String */;
2727 char* var833 /* : CString */;
2728 val* var834 /* : String */;
2729 val* var835 /* : nullable Int */;
2730 val* var836 /* : nullable Int */;
2731 val* var837 /* : nullable Bool */;
2732 val* var838 /* : nullable Bool */;
2733 val* var839 /* : RuntimeVariable */;
2734 val* var_res /* var res: RuntimeVariable */;
2735 val* var842 /* : NativeArray[String] */;
2736 static val* varonce841;
2737 static val* varonce843;
2738 val* var844 /* : String */;
2739 char* var845 /* : CString */;
2740 val* var846 /* : String */;
2741 val* var847 /* : nullable Int */;
2742 val* var848 /* : nullable Int */;
2743 val* var849 /* : nullable Bool */;
2744 val* var850 /* : nullable Bool */;
2745 static val* varonce851;
2746 val* var852 /* : String */;
2747 char* var853 /* : CString */;
2748 val* var854 /* : String */;
2749 val* var855 /* : nullable Int */;
2750 val* var856 /* : nullable Int */;
2751 val* var857 /* : nullable Bool */;
2752 val* var858 /* : nullable Bool */;
2753 val* var859 /* : String */;
2754 val* var860 /* : String */;
2755 val* var861 /* : String */;
2756 val* var862 /* : String */;
2757 val* var864 /* : NativeArray[String] */;
2758 static val* varonce863;
2759 static val* varonce865;
2760 val* var866 /* : String */;
2761 char* var867 /* : CString */;
2762 val* var868 /* : String */;
2763 val* var869 /* : nullable Int */;
2764 val* var870 /* : nullable Int */;
2765 val* var871 /* : nullable Bool */;
2766 val* var872 /* : nullable Bool */;
2767 static val* varonce873;
2768 val* var874 /* : String */;
2769 char* var875 /* : CString */;
2770 val* var876 /* : String */;
2771 val* var877 /* : nullable Int */;
2772 val* var878 /* : nullable Int */;
2773 val* var879 /* : nullable Bool */;
2774 val* var880 /* : nullable Bool */;
2775 val* var881 /* : String */;
2776 val* var882 /* : String */;
2777 val* var884 /* : NativeArray[String] */;
2778 static val* varonce883;
2779 static val* varonce885;
2780 val* var886 /* : String */;
2781 char* var887 /* : CString */;
2782 val* var888 /* : String */;
2783 val* var889 /* : nullable Int */;
2784 val* var890 /* : nullable Int */;
2785 val* var891 /* : nullable Bool */;
2786 val* var892 /* : nullable Bool */;
2787 val* var893 /* : String */;
2788 val* var894 /* : String */;
2789 static val* varonce895;
2790 val* var896 /* : String */;
2791 char* var897 /* : CString */;
2792 val* var898 /* : String */;
2793 val* var899 /* : nullable Int */;
2794 val* var900 /* : nullable Int */;
2795 val* var901 /* : nullable Bool */;
2796 val* var902 /* : nullable Bool */;
2797 val* var904 /* : NativeArray[String] */;
2798 static val* varonce903;
2799 static val* varonce905;
2800 val* var906 /* : String */;
2801 char* var907 /* : CString */;
2802 val* var908 /* : String */;
2803 val* var909 /* : nullable Int */;
2804 val* var910 /* : nullable Int */;
2805 val* var911 /* : nullable Bool */;
2806 val* var912 /* : nullable Bool */;
2807 val* var913 /* : String */;
2808 val* var915 /* : NativeArray[String] */;
2809 static val* varonce914;
2810 static val* varonce916;
2811 val* var917 /* : String */;
2812 char* var918 /* : CString */;
2813 val* var919 /* : String */;
2814 val* var920 /* : nullable Int */;
2815 val* var921 /* : nullable Int */;
2816 val* var922 /* : nullable Bool */;
2817 val* var923 /* : nullable Bool */;
2818 static val* varonce924;
2819 val* var925 /* : String */;
2820 char* var926 /* : CString */;
2821 val* var927 /* : String */;
2822 val* var928 /* : nullable Int */;
2823 val* var929 /* : nullable Int */;
2824 val* var930 /* : nullable Bool */;
2825 val* var931 /* : nullable Bool */;
2826 val* var932 /* : String */;
2827 val* var933 /* : String */;
2828 val* var935 /* : NativeArray[String] */;
2829 static val* varonce934;
2830 static val* varonce936;
2831 val* var937 /* : String */;
2832 char* var938 /* : CString */;
2833 val* var939 /* : String */;
2834 val* var940 /* : nullable Int */;
2835 val* var941 /* : nullable Int */;
2836 val* var942 /* : nullable Bool */;
2837 val* var943 /* : nullable Bool */;
2838 static val* varonce944;
2839 val* var945 /* : String */;
2840 char* var946 /* : CString */;
2841 val* var947 /* : String */;
2842 val* var948 /* : nullable Int */;
2843 val* var949 /* : nullable Int */;
2844 val* var950 /* : nullable Bool */;
2845 val* var951 /* : nullable Bool */;
2846 static val* varonce952;
2847 val* var953 /* : String */;
2848 char* var954 /* : CString */;
2849 val* var955 /* : String */;
2850 val* var956 /* : nullable Int */;
2851 val* var957 /* : nullable Int */;
2852 val* var958 /* : nullable Bool */;
2853 val* var959 /* : nullable Bool */;
2854 val* var960 /* : String */;
2855 val* var961 /* : String */;
2856 val* var962 /* : String */;
2857 val* var964 /* : NativeArray[String] */;
2858 static val* varonce963;
2859 static val* varonce965;
2860 val* var966 /* : String */;
2861 char* var967 /* : CString */;
2862 val* var968 /* : String */;
2863 val* var969 /* : nullable Int */;
2864 val* var970 /* : nullable Int */;
2865 val* var971 /* : nullable Bool */;
2866 val* var972 /* : nullable Bool */;
2867 static val* varonce973;
2868 val* var974 /* : String */;
2869 char* var975 /* : CString */;
2870 val* var976 /* : String */;
2871 val* var977 /* : nullable Int */;
2872 val* var978 /* : nullable Int */;
2873 val* var979 /* : nullable Bool */;
2874 val* var980 /* : nullable Bool */;
2875 val* var981 /* : String */;
2876 val* var982 /* : String */;
2877 static val* varonce983;
2878 val* var984 /* : String */;
2879 char* var985 /* : CString */;
2880 val* var986 /* : String */;
2881 val* var987 /* : nullable Int */;
2882 val* var988 /* : nullable Int */;
2883 val* var989 /* : nullable Bool */;
2884 val* var990 /* : nullable Bool */;
2885 val* var991 /* : String */;
2886 val* var993 /* : String */;
2887 static val* varonce994;
2888 val* var995 /* : String */;
2889 char* var996 /* : CString */;
2890 val* var997 /* : String */;
2891 val* var998 /* : nullable Int */;
2892 val* var999 /* : nullable Int */;
2893 val* var1000 /* : nullable Bool */;
2894 val* var1001 /* : nullable Bool */;
2895 short int var1002 /* : Bool */;
2896 val* var1003 /* : CodeWriter */;
2897 val* var1005 /* : CodeWriter */;
2898 val* var1007 /* : NativeArray[String] */;
2899 static val* varonce1006;
2900 static val* varonce1008;
2901 val* var1009 /* : String */;
2902 char* var1010 /* : CString */;
2903 val* var1011 /* : String */;
2904 val* var1012 /* : nullable Int */;
2905 val* var1013 /* : nullable Int */;
2906 val* var1014 /* : nullable Bool */;
2907 val* var1015 /* : nullable Bool */;
2908 static val* varonce1016;
2909 val* var1017 /* : String */;
2910 char* var1018 /* : CString */;
2911 val* var1019 /* : String */;
2912 val* var1020 /* : nullable Int */;
2913 val* var1021 /* : nullable Int */;
2914 val* var1022 /* : nullable Bool */;
2915 val* var1023 /* : nullable Bool */;
2916 val* var1024 /* : String */;
2917 val* var1025 /* : CodeWriter */;
2918 val* var1027 /* : CodeWriter */;
2919 static val* varonce1028;
2920 val* var1029 /* : String */;
2921 char* var1030 /* : CString */;
2922 val* var1031 /* : String */;
2923 val* var1032 /* : nullable Int */;
2924 val* var1033 /* : nullable Int */;
2925 val* var1034 /* : nullable Bool */;
2926 val* var1035 /* : nullable Bool */;
2927 val* var1036 /* : CodeWriter */;
2928 val* var1038 /* : CodeWriter */;
2929 static val* varonce1039;
2930 val* var1040 /* : String */;
2931 char* var1041 /* : CString */;
2932 val* var1042 /* : String */;
2933 val* var1043 /* : nullable Int */;
2934 val* var1044 /* : nullable Int */;
2935 val* var1045 /* : nullable Bool */;
2936 val* var1046 /* : nullable Bool */;
2937 val* var1047 /* : CodeWriter */;
2938 val* var1049 /* : CodeWriter */;
2939 static val* varonce1050;
2940 val* var1051 /* : String */;
2941 char* var1052 /* : CString */;
2942 val* var1053 /* : String */;
2943 val* var1054 /* : nullable Int */;
2944 val* var1055 /* : nullable Int */;
2945 val* var1056 /* : nullable Bool */;
2946 val* var1057 /* : nullable Bool */;
2947 val* var1058 /* : CodeWriter */;
2948 val* var1060 /* : CodeWriter */;
2949 static val* varonce1061;
2950 val* var1062 /* : String */;
2951 char* var1063 /* : CString */;
2952 val* var1064 /* : String */;
2953 val* var1065 /* : nullable Int */;
2954 val* var1066 /* : nullable Int */;
2955 val* var1067 /* : nullable Bool */;
2956 val* var1068 /* : nullable Bool */;
2957 val* var1069 /* : CodeWriter */;
2958 val* var1071 /* : CodeWriter */;
2959 static val* varonce1072;
2960 val* var1073 /* : String */;
2961 char* var1074 /* : CString */;
2962 val* var1075 /* : String */;
2963 val* var1076 /* : nullable Int */;
2964 val* var1077 /* : nullable Int */;
2965 val* var1078 /* : nullable Bool */;
2966 val* var1079 /* : nullable Bool */;
2967 val* var1081 /* : NativeArray[String] */;
2968 static val* varonce1080;
2969 static val* varonce1082;
2970 val* var1083 /* : String */;
2971 char* var1084 /* : CString */;
2972 val* var1085 /* : String */;
2973 val* var1086 /* : nullable Int */;
2974 val* var1087 /* : nullable Int */;
2975 val* var1088 /* : nullable Bool */;
2976 val* var1089 /* : nullable Bool */;
2977 val* var1090 /* : String */;
2978 val* var1092 /* : NativeArray[String] */;
2979 static val* varonce1091;
2980 static val* varonce1093;
2981 val* var1094 /* : String */;
2982 char* var1095 /* : CString */;
2983 val* var1096 /* : String */;
2984 val* var1097 /* : nullable Int */;
2985 val* var1098 /* : nullable Int */;
2986 val* var1099 /* : nullable Bool */;
2987 val* var1100 /* : nullable Bool */;
2988 static val* varonce1101;
2989 val* var1102 /* : String */;
2990 char* var1103 /* : CString */;
2991 val* var1104 /* : String */;
2992 val* var1105 /* : nullable Int */;
2993 val* var1106 /* : nullable Int */;
2994 val* var1107 /* : nullable Bool */;
2995 val* var1108 /* : nullable Bool */;
2996 val* var1109 /* : String */;
2997 val* var1110 /* : String */;
2998 val* var1112 /* : NativeArray[String] */;
2999 static val* varonce1111;
3000 static val* varonce1113;
3001 val* var1114 /* : String */;
3002 char* var1115 /* : CString */;
3003 val* var1116 /* : String */;
3004 val* var1117 /* : nullable Int */;
3005 val* var1118 /* : nullable Int */;
3006 val* var1119 /* : nullable Bool */;
3007 val* var1120 /* : nullable Bool */;
3008 static val* varonce1121;
3009 val* var1122 /* : String */;
3010 char* var1123 /* : CString */;
3011 val* var1124 /* : String */;
3012 val* var1125 /* : nullable Int */;
3013 val* var1126 /* : nullable Int */;
3014 val* var1127 /* : nullable Bool */;
3015 val* var1128 /* : nullable Bool */;
3016 val* var1129 /* : String */;
3017 val* var1130 /* : String */;
3018 val* var1132 /* : NativeArray[String] */;
3019 static val* varonce1131;
3020 static val* varonce1133;
3021 val* var1134 /* : String */;
3022 char* var1135 /* : CString */;
3023 val* var1136 /* : String */;
3024 val* var1137 /* : nullable Int */;
3025 val* var1138 /* : nullable Int */;
3026 val* var1139 /* : nullable Bool */;
3027 val* var1140 /* : nullable Bool */;
3028 static val* varonce1141;
3029 val* var1142 /* : String */;
3030 char* var1143 /* : CString */;
3031 val* var1144 /* : String */;
3032 val* var1145 /* : nullable Int */;
3033 val* var1146 /* : nullable Int */;
3034 val* var1147 /* : nullable Bool */;
3035 val* var1148 /* : nullable Bool */;
3036 val* var1149 /* : String */;
3037 val* var1150 /* : String */;
3038 static val* varonce1151;
3039 val* var1152 /* : String */;
3040 char* var1153 /* : CString */;
3041 val* var1154 /* : String */;
3042 val* var1155 /* : nullable Int */;
3043 val* var1156 /* : nullable Int */;
3044 val* var1157 /* : nullable Bool */;
3045 val* var1158 /* : nullable Bool */;
3046 val* var1159 /* : String */;
3047 val* var_res1160 /* var res: String */;
3048 val* var1162 /* : NativeArray[String] */;
3049 static val* varonce1161;
3050 static val* varonce1163;
3051 val* var1164 /* : String */;
3052 char* var1165 /* : CString */;
3053 val* var1166 /* : String */;
3054 val* var1167 /* : nullable Int */;
3055 val* var1168 /* : nullable Int */;
3056 val* var1169 /* : nullable Bool */;
3057 val* var1170 /* : nullable Bool */;
3058 static val* varonce1171;
3059 val* var1172 /* : String */;
3060 char* var1173 /* : CString */;
3061 val* var1174 /* : String */;
3062 val* var1175 /* : nullable Int */;
3063 val* var1176 /* : nullable Int */;
3064 val* var1177 /* : nullable Bool */;
3065 val* var1178 /* : nullable Bool */;
3066 static val* varonce1179;
3067 val* var1180 /* : String */;
3068 char* var1181 /* : CString */;
3069 val* var1182 /* : String */;
3070 val* var1183 /* : nullable Int */;
3071 val* var1184 /* : nullable Int */;
3072 val* var1185 /* : nullable Bool */;
3073 val* var1186 /* : nullable Bool */;
3074 val* var1187 /* : String */;
3075 val* var1188 /* : Array[MType] */;
3076 val* var1189 /* : nullable Object */;
3077 val* var_mtype_elt /* var mtype_elt: MType */;
3078 val* var1191 /* : NativeArray[String] */;
3079 static val* varonce1190;
3080 static val* varonce1192;
3081 val* var1193 /* : String */;
3082 char* var1194 /* : CString */;
3083 val* var1195 /* : String */;
3084 val* var1196 /* : nullable Int */;
3085 val* var1197 /* : nullable Int */;
3086 val* var1198 /* : nullable Bool */;
3087 val* var1199 /* : nullable Bool */;
3088 static val* varonce1200;
3089 val* var1201 /* : String */;
3090 char* var1202 /* : CString */;
3091 val* var1203 /* : String */;
3092 val* var1204 /* : nullable Int */;
3093 val* var1205 /* : nullable Int */;
3094 val* var1206 /* : nullable Bool */;
3095 val* var1207 /* : nullable Bool */;
3096 static val* varonce1208;
3097 val* var1209 /* : String */;
3098 char* var1210 /* : CString */;
3099 val* var1211 /* : String */;
3100 val* var1212 /* : nullable Int */;
3101 val* var1213 /* : nullable Int */;
3102 val* var1214 /* : nullable Bool */;
3103 val* var1215 /* : nullable Bool */;
3104 val* var1216 /* : String */;
3105 val* var1217 /* : String */;
3106 val* var1218 /* : String */;
3107 val* var1219 /* : String */;
3108 val* var_alloc1220 /* var alloc: String */;
3109 val* var1222 /* : NativeArray[String] */;
3110 static val* varonce1221;
3111 static val* varonce1223;
3112 val* var1224 /* : String */;
3113 char* var1225 /* : CString */;
3114 val* var1226 /* : String */;
3115 val* var1227 /* : nullable Int */;
3116 val* var1228 /* : nullable Int */;
3117 val* var1229 /* : nullable Bool */;
3118 val* var1230 /* : nullable Bool */;
3119 static val* varonce1231;
3120 val* var1232 /* : String */;
3121 char* var1233 /* : CString */;
3122 val* var1234 /* : String */;
3123 val* var1235 /* : nullable Int */;
3124 val* var1236 /* : nullable Int */;
3125 val* var1237 /* : nullable Bool */;
3126 val* var1238 /* : nullable Bool */;
3127 val* var1239 /* : String */;
3128 val* var1241 /* : NativeArray[String] */;
3129 static val* varonce1240;
3130 static val* varonce1242;
3131 val* var1243 /* : String */;
3132 char* var1244 /* : CString */;
3133 val* var1245 /* : String */;
3134 val* var1246 /* : nullable Int */;
3135 val* var1247 /* : nullable Int */;
3136 val* var1248 /* : nullable Bool */;
3137 val* var1249 /* : nullable Bool */;
3138 val* var1250 /* : String */;
3139 static val* varonce1251;
3140 val* var1252 /* : String */;
3141 char* var1253 /* : CString */;
3142 val* var1254 /* : String */;
3143 val* var1255 /* : nullable Int */;
3144 val* var1256 /* : nullable Int */;
3145 val* var1257 /* : nullable Bool */;
3146 val* var1258 /* : nullable Bool */;
3147 val* var1260 /* : NativeArray[String] */;
3148 static val* varonce1259;
3149 static val* varonce1261;
3150 val* var1262 /* : String */;
3151 char* var1263 /* : CString */;
3152 val* var1264 /* : String */;
3153 val* var1265 /* : nullable Int */;
3154 val* var1266 /* : nullable Int */;
3155 val* var1267 /* : nullable Bool */;
3156 val* var1268 /* : nullable Bool */;
3157 val* var1269 /* : String */;
3158 val* var1271 /* : NativeArray[String] */;
3159 static val* varonce1270;
3160 static val* varonce1272;
3161 val* var1273 /* : String */;
3162 char* var1274 /* : CString */;
3163 val* var1275 /* : String */;
3164 val* var1276 /* : nullable Int */;
3165 val* var1277 /* : nullable Int */;
3166 val* var1278 /* : nullable Bool */;
3167 val* var1279 /* : nullable Bool */;
3168 static val* varonce1280;
3169 val* var1281 /* : String */;
3170 char* var1282 /* : CString */;
3171 val* var1283 /* : String */;
3172 val* var1284 /* : nullable Int */;
3173 val* var1285 /* : nullable Int */;
3174 val* var1286 /* : nullable Bool */;
3175 val* var1287 /* : nullable Bool */;
3176 val* var1288 /* : String */;
3177 val* var1290 /* : NativeArray[String] */;
3178 static val* varonce1289;
3179 static val* varonce1291;
3180 val* var1292 /* : String */;
3181 char* var1293 /* : CString */;
3182 val* var1294 /* : String */;
3183 val* var1295 /* : nullable Int */;
3184 val* var1296 /* : nullable Int */;
3185 val* var1297 /* : nullable Bool */;
3186 val* var1298 /* : nullable Bool */;
3187 val* var1299 /* : String */;
3188 val* var1301 /* : NativeArray[String] */;
3189 static val* varonce1300;
3190 static val* varonce1302;
3191 val* var1303 /* : String */;
3192 char* var1304 /* : CString */;
3193 val* var1305 /* : String */;
3194 val* var1306 /* : nullable Int */;
3195 val* var1307 /* : nullable Int */;
3196 val* var1308 /* : nullable Bool */;
3197 val* var1309 /* : nullable Bool */;
3198 static val* varonce1310;
3199 val* var1311 /* : String */;
3200 char* var1312 /* : CString */;
3201 val* var1313 /* : String */;
3202 val* var1314 /* : nullable Int */;
3203 val* var1315 /* : nullable Int */;
3204 val* var1316 /* : nullable Bool */;
3205 val* var1317 /* : nullable Bool */;
3206 val* var1318 /* : String */;
3207 static val* varonce1319;
3208 val* var1320 /* : String */;
3209 char* var1321 /* : CString */;
3210 val* var1322 /* : String */;
3211 val* var1323 /* : nullable Int */;
3212 val* var1324 /* : nullable Int */;
3213 val* var1325 /* : nullable Bool */;
3214 val* var1326 /* : nullable Bool */;
3215 short int var1327 /* : Bool */;
3216 val* var1328 /* : MClass */;
3217 val* var1330 /* : MClass */;
3218 val* var1331 /* : MClassKind */;
3219 val* var1333 /* : MClassKind */;
3220 val* var1334 /* : Sys */;
3221 val* var1335 /* : MClassKind */;
3222 short int var1336 /* : Bool */;
3223 short int var1338 /* : Bool */;
3224 short int var1340 /* : Bool */;
3225 short int var_1341 /* var : Bool */;
3226 val* var1342 /* : MClass */;
3227 val* var1344 /* : MClass */;
3228 val* var1345 /* : String */;
3229 val* var1347 /* : String */;
3230 static val* varonce1348;
3231 val* var1349 /* : String */;
3232 char* var1350 /* : CString */;
3233 val* var1351 /* : String */;
3234 val* var1352 /* : nullable Int */;
3235 val* var1353 /* : nullable Int */;
3236 val* var1354 /* : nullable Bool */;
3237 val* var1355 /* : nullable Bool */;
3238 short int var1356 /* : Bool */;
3239 short int var1358 /* : Bool */;
3240 short int var1359 /* : Bool */;
3241 val* var1360 /* : MModule */;
3242 val* var1362 /* : MModule */;
3243 val* var1363 /* : MClassType */;
3244 val* var_pointer_type /* var pointer_type: MClassType */;
3245 val* var1365 /* : NativeArray[String] */;
3246 static val* varonce1364;
3247 static val* varonce1366;
3248 val* var1367 /* : String */;
3249 char* var1368 /* : CString */;
3250 val* var1369 /* : String */;
3251 val* var1370 /* : nullable Int */;
3252 val* var1371 /* : nullable Int */;
3253 val* var1372 /* : nullable Bool */;
3254 val* var1373 /* : nullable Bool */;
3255 val* var1374 /* : String */;
3256 val* var1376 /* : NativeArray[String] */;
3257 static val* varonce1375;
3258 static val* varonce1377;
3259 val* var1378 /* : String */;
3260 char* var1379 /* : CString */;
3261 val* var1380 /* : String */;
3262 val* var1381 /* : nullable Int */;
3263 val* var1382 /* : nullable Int */;
3264 val* var1383 /* : nullable Bool */;
3265 val* var1384 /* : nullable Bool */;
3266 static val* varonce1385;
3267 val* var1386 /* : String */;
3268 char* var1387 /* : CString */;
3269 val* var1388 /* : String */;
3270 val* var1389 /* : nullable Int */;
3271 val* var1390 /* : nullable Int */;
3272 val* var1391 /* : nullable Bool */;
3273 val* var1392 /* : nullable Bool */;
3274 val* var1393 /* : String */;
3275 val* var1394 /* : String */;
3276 val* var1396 /* : NativeArray[String] */;
3277 static val* varonce1395;
3278 static val* varonce1397;
3279 val* var1398 /* : String */;
3280 char* var1399 /* : CString */;
3281 val* var1400 /* : String */;
3282 val* var1401 /* : nullable Int */;
3283 val* var1402 /* : nullable Int */;
3284 val* var1403 /* : nullable Bool */;
3285 val* var1404 /* : nullable Bool */;
3286 static val* varonce1405;
3287 val* var1406 /* : String */;
3288 char* var1407 /* : CString */;
3289 val* var1408 /* : String */;
3290 val* var1409 /* : nullable Int */;
3291 val* var1410 /* : nullable Int */;
3292 val* var1411 /* : nullable Bool */;
3293 val* var1412 /* : nullable Bool */;
3294 val* var1413 /* : String */;
3295 val* var1414 /* : String */;
3296 val* var1416 /* : NativeArray[String] */;
3297 static val* varonce1415;
3298 static val* varonce1417;
3299 val* var1418 /* : String */;
3300 char* var1419 /* : CString */;
3301 val* var1420 /* : String */;
3302 val* var1421 /* : nullable Int */;
3303 val* var1422 /* : nullable Int */;
3304 val* var1423 /* : nullable Bool */;
3305 val* var1424 /* : nullable Bool */;
3306 static val* varonce1425;
3307 val* var1426 /* : String */;
3308 char* var1427 /* : CString */;
3309 val* var1428 /* : String */;
3310 val* var1429 /* : nullable Int */;
3311 val* var1430 /* : nullable Int */;
3312 val* var1431 /* : nullable Bool */;
3313 val* var1432 /* : nullable Bool */;
3314 val* var1433 /* : String */;
3315 val* var1434 /* : String */;
3316 val* var1436 /* : NativeArray[String] */;
3317 static val* varonce1435;
3318 static val* varonce1437;
3319 val* var1438 /* : String */;
3320 char* var1439 /* : CString */;
3321 val* var1440 /* : String */;
3322 val* var1441 /* : nullable Int */;
3323 val* var1442 /* : nullable Int */;
3324 val* var1443 /* : nullable Bool */;
3325 val* var1444 /* : nullable Bool */;
3326 val* var1445 /* : String */;
3327 val* var1446 /* : String */;
3328 static val* varonce1447;
3329 val* var1448 /* : String */;
3330 char* var1449 /* : CString */;
3331 val* var1450 /* : String */;
3332 val* var1451 /* : nullable Int */;
3333 val* var1452 /* : nullable Int */;
3334 val* var1453 /* : nullable Bool */;
3335 val* var1454 /* : nullable Bool */;
3336 val* var1455 /* : RuntimeVariable */;
3337 val* var_res1456 /* var res: RuntimeVariable */;
3338 val* var1459 /* : NativeArray[String] */;
3339 static val* varonce1458;
3340 static val* varonce1460;
3341 val* var1461 /* : String */;
3342 char* var1462 /* : CString */;
3343 val* var1463 /* : String */;
3344 val* var1464 /* : nullable Int */;
3345 val* var1465 /* : nullable Int */;
3346 val* var1466 /* : nullable Bool */;
3347 val* var1467 /* : nullable Bool */;
3348 static val* varonce1468;
3349 val* var1469 /* : String */;
3350 char* var1470 /* : CString */;
3351 val* var1471 /* : String */;
3352 val* var1472 /* : nullable Int */;
3353 val* var1473 /* : nullable Int */;
3354 val* var1474 /* : nullable Bool */;
3355 val* var1475 /* : nullable Bool */;
3356 val* var1476 /* : String */;
3357 val* var1477 /* : String */;
3358 val* var1478 /* : String */;
3359 val* var1479 /* : String */;
3360 val* var_alloc1480 /* var alloc: String */;
3361 val* var1482 /* : NativeArray[String] */;
3362 static val* varonce1481;
3363 static val* varonce1483;
3364 val* var1484 /* : String */;
3365 char* var1485 /* : CString */;
3366 val* var1486 /* : String */;
3367 val* var1487 /* : nullable Int */;
3368 val* var1488 /* : nullable Int */;
3369 val* var1489 /* : nullable Bool */;
3370 val* var1490 /* : nullable Bool */;
3371 static val* varonce1491;
3372 val* var1492 /* : String */;
3373 char* var1493 /* : CString */;
3374 val* var1494 /* : String */;
3375 val* var1495 /* : nullable Int */;
3376 val* var1496 /* : nullable Int */;
3377 val* var1497 /* : nullable Bool */;
3378 val* var1498 /* : nullable Bool */;
3379 val* var1499 /* : String */;
3380 val* var1500 /* : String */;
3381 val* var1502 /* : NativeArray[String] */;
3382 static val* varonce1501;
3383 static val* varonce1503;
3384 val* var1504 /* : String */;
3385 char* var1505 /* : CString */;
3386 val* var1506 /* : String */;
3387 val* var1507 /* : nullable Int */;
3388 val* var1508 /* : nullable Int */;
3389 val* var1509 /* : nullable Bool */;
3390 val* var1510 /* : nullable Bool */;
3391 val* var1511 /* : String */;
3392 val* var1512 /* : String */;
3393 static val* varonce1513;
3394 val* var1514 /* : String */;
3395 char* var1515 /* : CString */;
3396 val* var1516 /* : String */;
3397 val* var1517 /* : nullable Int */;
3398 val* var1518 /* : nullable Int */;
3399 val* var1519 /* : nullable Bool */;
3400 val* var1520 /* : nullable Bool */;
3401 val* var1522 /* : NativeArray[String] */;
3402 static val* varonce1521;
3403 static val* varonce1523;
3404 val* var1524 /* : String */;
3405 char* var1525 /* : CString */;
3406 val* var1526 /* : String */;
3407 val* var1527 /* : nullable Int */;
3408 val* var1528 /* : nullable Int */;
3409 val* var1529 /* : nullable Bool */;
3410 val* var1530 /* : nullable Bool */;
3411 val* var1531 /* : String */;
3412 val* var1533 /* : NativeArray[String] */;
3413 static val* varonce1532;
3414 static val* varonce1534;
3415 val* var1535 /* : String */;
3416 char* var1536 /* : CString */;
3417 val* var1537 /* : String */;
3418 val* var1538 /* : nullable Int */;
3419 val* var1539 /* : nullable Int */;
3420 val* var1540 /* : nullable Bool */;
3421 val* var1541 /* : nullable Bool */;
3422 static val* varonce1542;
3423 val* var1543 /* : String */;
3424 char* var1544 /* : CString */;
3425 val* var1545 /* : String */;
3426 val* var1546 /* : nullable Int */;
3427 val* var1547 /* : nullable Int */;
3428 val* var1548 /* : nullable Bool */;
3429 val* var1549 /* : nullable Bool */;
3430 val* var1550 /* : String */;
3431 val* var1551 /* : String */;
3432 val* var1553 /* : NativeArray[String] */;
3433 static val* varonce1552;
3434 static val* varonce1554;
3435 val* var1555 /* : String */;
3436 char* var1556 /* : CString */;
3437 val* var1557 /* : String */;
3438 val* var1558 /* : nullable Int */;
3439 val* var1559 /* : nullable Int */;
3440 val* var1560 /* : nullable Bool */;
3441 val* var1561 /* : nullable Bool */;
3442 static val* varonce1562;
3443 val* var1563 /* : String */;
3444 char* var1564 /* : CString */;
3445 val* var1565 /* : String */;
3446 val* var1566 /* : nullable Int */;
3447 val* var1567 /* : nullable Int */;
3448 val* var1568 /* : nullable Bool */;
3449 val* var1569 /* : nullable Bool */;
3450 static val* varonce1570;
3451 val* var1571 /* : String */;
3452 char* var1572 /* : CString */;
3453 val* var1573 /* : String */;
3454 val* var1574 /* : nullable Int */;
3455 val* var1575 /* : nullable Int */;
3456 val* var1576 /* : nullable Bool */;
3457 val* var1577 /* : nullable Bool */;
3458 val* var1578 /* : String */;
3459 val* var1579 /* : String */;
3460 val* var1580 /* : String */;
3461 val* var1582 /* : NativeArray[String] */;
3462 static val* varonce1581;
3463 static val* varonce1583;
3464 val* var1584 /* : String */;
3465 char* var1585 /* : CString */;
3466 val* var1586 /* : String */;
3467 val* var1587 /* : nullable Int */;
3468 val* var1588 /* : nullable Int */;
3469 val* var1589 /* : nullable Bool */;
3470 val* var1590 /* : nullable Bool */;
3471 static val* varonce1591;
3472 val* var1592 /* : String */;
3473 char* var1593 /* : CString */;
3474 val* var1594 /* : String */;
3475 val* var1595 /* : nullable Int */;
3476 val* var1596 /* : nullable Int */;
3477 val* var1597 /* : nullable Bool */;
3478 val* var1598 /* : nullable Bool */;
3479 val* var1599 /* : String */;
3480 val* var1600 /* : String */;
3481 static val* varonce1601;
3482 val* var1602 /* : String */;
3483 char* var1603 /* : CString */;
3484 val* var1604 /* : String */;
3485 val* var1605 /* : nullable Int */;
3486 val* var1606 /* : nullable Int */;
3487 val* var1607 /* : nullable Bool */;
3488 val* var1608 /* : nullable Bool */;
3489 val* var1610 /* : NativeArray[String] */;
3490 static val* varonce1609;
3491 static val* varonce1611;
3492 val* var1612 /* : String */;
3493 char* var1613 /* : CString */;
3494 val* var1614 /* : String */;
3495 val* var1615 /* : nullable Int */;
3496 val* var1616 /* : nullable Int */;
3497 val* var1617 /* : nullable Bool */;
3498 val* var1618 /* : nullable Bool */;
3499 val* var1619 /* : String */;
3500 val* var1621 /* : NativeArray[String] */;
3501 static val* varonce1620;
3502 static val* varonce1622;
3503 val* var1623 /* : String */;
3504 char* var1624 /* : CString */;
3505 val* var1625 /* : String */;
3506 val* var1626 /* : nullable Int */;
3507 val* var1627 /* : nullable Int */;
3508 val* var1628 /* : nullable Bool */;
3509 val* var1629 /* : nullable Bool */;
3510 static val* varonce1630;
3511 val* var1631 /* : String */;
3512 char* var1632 /* : CString */;
3513 val* var1633 /* : String */;
3514 val* var1634 /* : nullable Int */;
3515 val* var1635 /* : nullable Int */;
3516 val* var1636 /* : nullable Bool */;
3517 val* var1637 /* : nullable Bool */;
3518 val* var1638 /* : String */;
3519 val* var1639 /* : String */;
3520 val* var1641 /* : NativeArray[String] */;
3521 static val* varonce1640;
3522 static val* varonce1642;
3523 val* var1643 /* : String */;
3524 char* var1644 /* : CString */;
3525 val* var1645 /* : String */;
3526 val* var1646 /* : nullable Int */;
3527 val* var1647 /* : nullable Int */;
3528 val* var1648 /* : nullable Bool */;
3529 val* var1649 /* : nullable Bool */;
3530 static val* varonce1650;
3531 val* var1651 /* : String */;
3532 char* var1652 /* : CString */;
3533 val* var1653 /* : String */;
3534 val* var1654 /* : nullable Int */;
3535 val* var1655 /* : nullable Int */;
3536 val* var1656 /* : nullable Bool */;
3537 val* var1657 /* : nullable Bool */;
3538 val* var1658 /* : String */;
3539 val* var1659 /* : String */;
3540 val* var1661 /* : NativeArray[String] */;
3541 static val* varonce1660;
3542 static val* varonce1662;
3543 val* var1663 /* : String */;
3544 char* var1664 /* : CString */;
3545 val* var1665 /* : String */;
3546 val* var1666 /* : nullable Int */;
3547 val* var1667 /* : nullable Int */;
3548 val* var1668 /* : nullable Bool */;
3549 val* var1669 /* : nullable Bool */;
3550 static val* varonce1670;
3551 val* var1671 /* : String */;
3552 char* var1672 /* : CString */;
3553 val* var1673 /* : String */;
3554 val* var1674 /* : nullable Int */;
3555 val* var1675 /* : nullable Int */;
3556 val* var1676 /* : nullable Bool */;
3557 val* var1677 /* : nullable Bool */;
3558 val* var1678 /* : String */;
3559 val* var1679 /* : String */;
3560 val* var1681 /* : NativeArray[String] */;
3561 static val* varonce1680;
3562 static val* varonce1682;
3563 val* var1683 /* : String */;
3564 char* var1684 /* : CString */;
3565 val* var1685 /* : String */;
3566 val* var1686 /* : nullable Int */;
3567 val* var1687 /* : nullable Int */;
3568 val* var1688 /* : nullable Bool */;
3569 val* var1689 /* : nullable Bool */;
3570 val* var1690 /* : String */;
3571 val* var1691 /* : String */;
3572 static val* varonce1692;
3573 val* var1693 /* : String */;
3574 char* var1694 /* : CString */;
3575 val* var1695 /* : String */;
3576 val* var1696 /* : nullable Int */;
3577 val* var1697 /* : nullable Int */;
3578 val* var1698 /* : nullable Bool */;
3579 val* var1699 /* : nullable Bool */;
3580 val* var1700 /* : RuntimeVariable */;
3581 val* var_res1701 /* var res: RuntimeVariable */;
3582 val* var1703 /* : Map[MClass, Array[nullable MProperty]] */;
3583 val* var1705 /* : Map[MClass, Array[nullable MProperty]] */;
3584 val* var1706 /* : nullable Object */;
3585 val* var_attrs /* var attrs: nullable Array[nullable MProperty] */;
3586 short int var1707 /* : Bool */;
3587 short int var1708 /* : Bool */;
3588 static val* varonce1709;
3589 val* var1710 /* : String */;
3590 char* var1711 /* : CString */;
3591 val* var1712 /* : String */;
3592 val* var1713 /* : nullable Int */;
3593 val* var1714 /* : nullable Int */;
3594 val* var1715 /* : nullable Bool */;
3595 val* var1716 /* : nullable Bool */;
3596 val* var1717 /* : String */;
3597 val* var1718 /* : String */;
3598 val* var_alloc1719 /* var alloc: String */;
3599 val* var1721 /* : NativeArray[String] */;
3600 static val* varonce1720;
3601 static val* varonce1722;
3602 val* var1723 /* : String */;
3603 char* var1724 /* : CString */;
3604 val* var1725 /* : String */;
3605 val* var1726 /* : nullable Int */;
3606 val* var1727 /* : nullable Int */;
3607 val* var1728 /* : nullable Bool */;
3608 val* var1729 /* : nullable Bool */;
3609 static val* varonce1730;
3610 val* var1731 /* : String */;
3611 char* var1732 /* : CString */;
3612 val* var1733 /* : String */;
3613 val* var1734 /* : nullable Int */;
3614 val* var1735 /* : nullable Int */;
3615 val* var1736 /* : nullable Bool */;
3616 val* var1737 /* : nullable Bool */;
3617 val* var1738 /* : String */;
3618 val* var1739 /* : String */;
3619 val* var1741 /* : NativeArray[String] */;
3620 static val* varonce1740;
3621 static val* varonce1742;
3622 val* var1743 /* : String */;
3623 char* var1744 /* : CString */;
3624 val* var1745 /* : String */;
3625 val* var1746 /* : nullable Int */;
3626 val* var1747 /* : nullable Int */;
3627 val* var1748 /* : nullable Bool */;
3628 val* var1749 /* : nullable Bool */;
3629 static val* varonce1750;
3630 val* var1751 /* : String */;
3631 char* var1752 /* : CString */;
3632 val* var1753 /* : String */;
3633 val* var1754 /* : nullable Int */;
3634 val* var1755 /* : nullable Int */;
3635 val* var1756 /* : nullable Bool */;
3636 val* var1757 /* : nullable Bool */;
3637 long var1758 /* : Int */;
3638 long var1760 /* : Int */;
3639 val* var1761 /* : String */;
3640 val* var1762 /* : String */;
3641 val* var1763 /* : String */;
3642 val* var1764 /* : String */;
3643 val* var_alloc1765 /* var alloc: String */;
3644 val* var1767 /* : NativeArray[String] */;
3645 static val* varonce1766;
3646 static val* varonce1768;
3647 val* var1769 /* : String */;
3648 char* var1770 /* : CString */;
3649 val* var1771 /* : String */;
3650 val* var1772 /* : nullable Int */;
3651 val* var1773 /* : nullable Int */;
3652 val* var1774 /* : nullable Bool */;
3653 val* var1775 /* : nullable Bool */;
3654 static val* varonce1776;
3655 val* var1777 /* : String */;
3656 char* var1778 /* : CString */;
3657 val* var1779 /* : String */;
3658 val* var1780 /* : nullable Int */;
3659 val* var1781 /* : nullable Int */;
3660 val* var1782 /* : nullable Bool */;
3661 val* var1783 /* : nullable Bool */;
3662 val* var1784 /* : String */;
3663 val* var1785 /* : String */;
3664 val* var1787 /* : NativeArray[String] */;
3665 static val* varonce1786;
3666 static val* varonce1788;
3667 val* var1789 /* : String */;
3668 char* var1790 /* : CString */;
3669 val* var1791 /* : String */;
3670 val* var1792 /* : nullable Int */;
3671 val* var1793 /* : nullable Int */;
3672 val* var1794 /* : nullable Bool */;
3673 val* var1795 /* : nullable Bool */;
3674 val* var1796 /* : String */;
3675 val* var1797 /* : String */;
3676 static val* varonce1798;
3677 val* var1799 /* : String */;
3678 char* var1800 /* : CString */;
3679 val* var1801 /* : String */;
3680 val* var1802 /* : nullable Int */;
3681 val* var1803 /* : nullable Int */;
3682 val* var1804 /* : nullable Bool */;
3683 val* var1805 /* : nullable Bool */;
3684 val* var1807 /* : NativeArray[String] */;
3685 static val* varonce1806;
3686 static val* varonce1808;
3687 val* var1809 /* : String */;
3688 char* var1810 /* : CString */;
3689 val* var1811 /* : String */;
3690 val* var1812 /* : nullable Int */;
3691 val* var1813 /* : nullable Int */;
3692 val* var1814 /* : nullable Bool */;
3693 val* var1815 /* : nullable Bool */;
3694 val* var1816 /* : String */;
3695 val* var1818 /* : NativeArray[String] */;
3696 static val* varonce1817;
3697 static val* varonce1819;
3698 val* var1820 /* : String */;
3699 char* var1821 /* : CString */;
3700 val* var1822 /* : String */;
3701 val* var1823 /* : nullable Int */;
3702 val* var1824 /* : nullable Int */;
3703 val* var1825 /* : nullable Bool */;
3704 val* var1826 /* : nullable Bool */;
3705 static val* varonce1827;
3706 val* var1828 /* : String */;
3707 char* var1829 /* : CString */;
3708 val* var1830 /* : String */;
3709 val* var1831 /* : nullable Int */;
3710 val* var1832 /* : nullable Int */;
3711 val* var1833 /* : nullable Bool */;
3712 val* var1834 /* : nullable Bool */;
3713 val* var1835 /* : String */;
3714 val* var1836 /* : String */;
3715 short int var1837 /* : Bool */;
3716 short int var1838 /* : Bool */;
3717 short int var1840 /* : Bool */;
3718 short int var1841 /* : Bool */;
3719 val* var1843 /* : NativeArray[String] */;
3720 static val* varonce1842;
3721 static val* varonce1844;
3722 val* var1845 /* : String */;
3723 char* var1846 /* : CString */;
3724 val* var1847 /* : String */;
3725 val* var1848 /* : nullable Int */;
3726 val* var1849 /* : nullable Int */;
3727 val* var1850 /* : nullable Bool */;
3728 val* var1851 /* : nullable Bool */;
3729 static val* varonce1852;
3730 val* var1853 /* : String */;
3731 char* var1854 /* : CString */;
3732 val* var1855 /* : String */;
3733 val* var1856 /* : nullable Int */;
3734 val* var1857 /* : nullable Int */;
3735 val* var1858 /* : nullable Bool */;
3736 val* var1859 /* : nullable Bool */;
3737 val* var1860 /* : String */;
3738 val* var1861 /* : String */;
3739 static val* varonce1862;
3740 val* var1863 /* : String */;
3741 char* var1864 /* : CString */;
3742 val* var1865 /* : String */;
3743 val* var1866 /* : nullable Int */;
3744 val* var1867 /* : nullable Int */;
3745 val* var1868 /* : nullable Bool */;
3746 val* var1869 /* : nullable Bool */;
3747 var_mclass = p0;
3748 {
3749 { /* Inline model_base$MEntity$is_broken (var_mclass) on <var_mclass:MClass> */
3750 var2 = var_mclass->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_mclass:MClass> */
3751 var = var2;
3752 RET_LABEL1:(void)0;
3753 }
3754 }
3755 if (var){
3756 goto RET_LABEL;
3757 } else {
3758 }
3759 {
3760 { /* Inline model$MClass$intro (var_mclass) on <var_mclass:MClass> */
3761 var5 = var_mclass->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on <var_mclass:MClass> */
3762 if (unlikely(var5 == NULL)) {
3763 if(catchStack.cursor >= 0){
3764 longjmp(catchStack.envs[catchStack.cursor], 1);
3765 }
3766 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3767 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 496);
3768 fatal_exit(1);
3769 }
3770 var3 = var5;
3771 RET_LABEL4:(void)0;
3772 }
3773 }
3774 {
3775 { /* Inline model$MClassDef$bound_mtype (var3) on <var3:MClassDef> */
3776 var8 = var3->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var3:MClassDef> */
3777 if (unlikely(var8 == NULL)) {
3778 if(catchStack.cursor >= 0){
3779 longjmp(catchStack.envs[catchStack.cursor], 1);
3780 }
3781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
3783 fatal_exit(1);
3784 }
3785 var6 = var8;
3786 RET_LABEL7:(void)0;
3787 }
3788 }
3789 var_mtype = var6;
3790 {
3791 var9 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_mclass);
3792 }
3793 var_c_name = var9;
3794 {
3795 var10 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(self); /* new_visitor on <self:SeparateCompiler>*/
3796 }
3797 var_v = var10;
3798 {
3799 { /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (self) on <self:SeparateCompiler> */
3800 var13 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <self:SeparateCompiler> */
3801 var11 = var13;
3802 RET_LABEL12:(void)0;
3803 }
3804 }
3805 var_rta = var11;
3806 if (var_rta == NULL) {
3807 var15 = 0; /* is null */
3808 } else {
3809 var15 = 1; /* arg is null and recv is not */
3810 }
3811 if (0) {
3812 { /* Inline kernel$Object$!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
3813 var_other = ((val*)NULL);
3814 {
3815 var18 = ((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)>*/
3816 }
3817 var19 = !var18;
3818 var16 = var19;
3819 goto RET_LABEL17;
3820 RET_LABEL17:(void)0;
3821 }
3822 var15 = var16;
3823 }
3824 var_ = var15;
3825 if (var15){
3826 {
3827 { /* Inline rapid_type_analysis$RapidTypeAnalysis$live_classes (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3828 var22 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_classes].val; /* _live_classes on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
3829 if (unlikely(var22 == NULL)) {
3830 if(catchStack.cursor >= 0){
3831 longjmp(catchStack.envs[catchStack.cursor], 1);
3832 }
3833 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_classes");
3834 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 69);
3835 fatal_exit(1);
3836 }
3837 var20 = var22;
3838 RET_LABEL21:(void)0;
3839 }
3840 }
3841 {
3842 var23 = core___core__HashSet___core__abstract_collection__Collection__has(var20, var_mclass);
3843 }
3844 var24 = !var23;
3845 var14 = var24;
3846 } else {
3847 var14 = var_;
3848 }
3849 var_is_dead = var14;
3850 var_28 = var_is_dead;
3851 if (var_is_dead){
3852 {
3853 var29 = nitc__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype);
3854 }
3855 var27 = var29;
3856 } else {
3857 var27 = var_28;
3858 }
3859 var_30 = var27;
3860 if (var27){
3861 var26 = var_30;
3862 } else {
3863 {
3864 { /* Inline model$MClass$kind (var_mclass) on <var_mclass:MClass> */
3865 var33 = var_mclass->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var_mclass:MClass> */
3866 if (unlikely(var33 == NULL)) {
3867 if(catchStack.cursor >= 0){
3868 longjmp(catchStack.envs[catchStack.cursor], 1);
3869 }
3870 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3871 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
3872 fatal_exit(1);
3873 }
3874 var31 = var33;
3875 RET_LABEL32:(void)0;
3876 }
3877 }
3878 var34 = glob_sys;
3879 {
3880 var35 = nitc__model___core__Sys___extern_kind(var34);
3881 }
3882 {
3883 { /* Inline kernel$Object$== (var31,var35) on <var31:MClassKind> */
3884 var_other38 = var35;
3885 {
3886 { /* Inline kernel$Object$is_same_instance (var31,var_other38) on <var31:MClassKind> */
3887 var41 = var31 == var_other38;
3888 var39 = var41;
3889 goto RET_LABEL40;
3890 RET_LABEL40:(void)0;
3891 }
3892 }
3893 var36 = var39;
3894 goto RET_LABEL37;
3895 RET_LABEL37:(void)0;
3896 }
3897 }
3898 var26 = var36;
3899 }
3900 var_42 = var26;
3901 if (var26){
3902 var25 = var_42;
3903 } else {
3904 {
3905 { /* Inline model$MClass$kind (var_mclass) on <var_mclass:MClass> */
3906 var45 = var_mclass->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var_mclass:MClass> */
3907 if (unlikely(var45 == NULL)) {
3908 if(catchStack.cursor >= 0){
3909 longjmp(catchStack.envs[catchStack.cursor], 1);
3910 }
3911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
3912 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
3913 fatal_exit(1);
3914 }
3915 var43 = var45;
3916 RET_LABEL44:(void)0;
3917 }
3918 }
3919 var46 = glob_sys;
3920 {
3921 var47 = nitc__model___core__Sys___enum_kind(var46);
3922 }
3923 {
3924 { /* Inline kernel$Object$== (var43,var47) on <var43:MClassKind> */
3925 var_other38 = var47;
3926 {
3927 { /* Inline kernel$Object$is_same_instance (var43,var_other38) on <var43:MClassKind> */
3928 var52 = var43 == var_other38;
3929 var50 = var52;
3930 goto RET_LABEL51;
3931 RET_LABEL51:(void)0;
3932 }
3933 }
3934 var48 = var50;
3935 goto RET_LABEL49;
3936 RET_LABEL49:(void)0;
3937 }
3938 }
3939 var25 = var48;
3940 }
3941 var_need_corpse = var25;
3942 if (unlikely(varonce==NULL)) {
3943 var53 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
3944 if (likely(varonce54!=NULL)) {
3945 var55 = varonce54;
3946 } else {
3947 var56 = "/* runtime class ";
3948 var58 = (val*)(17l<<2|1);
3949 var59 = (val*)(17l<<2|1);
3950 var60 = (val*)((long)(0)<<2|3);
3951 var61 = (val*)((long)(0)<<2|3);
3952 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
3953 var55 = var57;
3954 varonce54 = var55;
3955 }
3956 ((struct instance_core__NativeArray*)var53)->values[0]=var55;
3957 if (likely(varonce62!=NULL)) {
3958 var63 = varonce62;
3959 } else {
3960 var64 = ": ";
3961 var66 = (val*)(2l<<2|1);
3962 var67 = (val*)(2l<<2|1);
3963 var68 = (val*)((long)(0)<<2|3);
3964 var69 = (val*)((long)(0)<<2|3);
3965 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
3966 var63 = var65;
3967 varonce62 = var63;
3968 }
3969 ((struct instance_core__NativeArray*)var53)->values[2]=var63;
3970 if (likely(varonce70!=NULL)) {
3971 var71 = varonce70;
3972 } else {
3973 var72 = " (dead=";
3974 var74 = (val*)(7l<<2|1);
3975 var75 = (val*)(7l<<2|1);
3976 var76 = (val*)((long)(0)<<2|3);
3977 var77 = (val*)((long)(0)<<2|3);
3978 var73 = core__flat___CString___to_s_unsafe(var72, var74, var75, var76, var77);
3979 var71 = var73;
3980 varonce70 = var71;
3981 }
3982 ((struct instance_core__NativeArray*)var53)->values[4]=var71;
3983 if (likely(varonce78!=NULL)) {
3984 var79 = varonce78;
3985 } else {
3986 var80 = "; need_corpse=";
3987 var82 = (val*)(14l<<2|1);
3988 var83 = (val*)(14l<<2|1);
3989 var84 = (val*)((long)(0)<<2|3);
3990 var85 = (val*)((long)(0)<<2|3);
3991 var81 = core__flat___CString___to_s_unsafe(var80, var82, var83, var84, var85);
3992 var79 = var81;
3993 varonce78 = var79;
3994 }
3995 ((struct instance_core__NativeArray*)var53)->values[6]=var79;
3996 if (likely(varonce86!=NULL)) {
3997 var87 = varonce86;
3998 } else {
3999 var88 = ")*/";
4000 var90 = (val*)(3l<<2|1);
4001 var91 = (val*)(3l<<2|1);
4002 var92 = (val*)((long)(0)<<2|3);
4003 var93 = (val*)((long)(0)<<2|3);
4004 var89 = core__flat___CString___to_s_unsafe(var88, var90, var91, var92, var93);
4005 var87 = var89;
4006 varonce86 = var87;
4007 }
4008 ((struct instance_core__NativeArray*)var53)->values[8]=var87;
4009 } else {
4010 var53 = varonce;
4011 varonce = NULL;
4012 }
4013 ((struct instance_core__NativeArray*)var53)->values[1]=var_c_name;
4014 {
4015 var94 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
4016 }
4017 ((struct instance_core__NativeArray*)var53)->values[3]=var94;
4018 var95 = core__abstract_text___Bool___Object__to_s(var_is_dead);
4019 ((struct instance_core__NativeArray*)var53)->values[5]=var95;
4020 var96 = core__abstract_text___Bool___Object__to_s(var_need_corpse);
4021 ((struct instance_core__NativeArray*)var53)->values[7]=var96;
4022 {
4023 var97 = ((val*(*)(val* self))(var53->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var53); /* native_to_s on <var53:NativeArray[String]>*/
4024 }
4025 varonce = var53;
4026 {
4027 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var97); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4028 }
4029 var99 = !var_is_dead;
4030 var_100 = var99;
4031 if (var99){
4032 var98 = var_100;
4033 } else {
4034 var98 = var_need_corpse;
4035 }
4036 if (var98){
4037 if (unlikely(varonce101==NULL)) {
4038 var102 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4039 if (likely(varonce103!=NULL)) {
4040 var104 = varonce103;
4041 } else {
4042 var105 = "class_";
4043 var107 = (val*)(6l<<2|1);
4044 var108 = (val*)(6l<<2|1);
4045 var109 = (val*)((long)(0)<<2|3);
4046 var110 = (val*)((long)(0)<<2|3);
4047 var106 = core__flat___CString___to_s_unsafe(var105, var107, var108, var109, var110);
4048 var104 = var106;
4049 varonce103 = var104;
4050 }
4051 ((struct instance_core__NativeArray*)var102)->values[0]=var104;
4052 } else {
4053 var102 = varonce101;
4054 varonce101 = NULL;
4055 }
4056 ((struct instance_core__NativeArray*)var102)->values[1]=var_c_name;
4057 {
4058 var111 = ((val*(*)(val* self))(var102->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var102); /* native_to_s on <var102:NativeArray[String]>*/
4059 }
4060 varonce101 = var102;
4061 if (unlikely(varonce112==NULL)) {
4062 var113 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4063 if (likely(varonce114!=NULL)) {
4064 var115 = varonce114;
4065 } else {
4066 var116 = "extern const struct class class_";
4067 var118 = (val*)(32l<<2|1);
4068 var119 = (val*)(32l<<2|1);
4069 var120 = (val*)((long)(0)<<2|3);
4070 var121 = (val*)((long)(0)<<2|3);
4071 var117 = core__flat___CString___to_s_unsafe(var116, var118, var119, var120, var121);
4072 var115 = var117;
4073 varonce114 = var115;
4074 }
4075 ((struct instance_core__NativeArray*)var113)->values[0]=var115;
4076 if (likely(varonce122!=NULL)) {
4077 var123 = varonce122;
4078 } else {
4079 var124 = ";";
4080 var126 = (val*)(1l<<2|1);
4081 var127 = (val*)(1l<<2|1);
4082 var128 = (val*)((long)(0)<<2|3);
4083 var129 = (val*)((long)(0)<<2|3);
4084 var125 = core__flat___CString___to_s_unsafe(var124, var126, var127, var128, var129);
4085 var123 = var125;
4086 varonce122 = var123;
4087 }
4088 ((struct instance_core__NativeArray*)var113)->values[2]=var123;
4089 } else {
4090 var113 = varonce112;
4091 varonce112 = NULL;
4092 }
4093 ((struct instance_core__NativeArray*)var113)->values[1]=var_c_name;
4094 {
4095 var130 = ((val*(*)(val* self))(var113->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var113); /* native_to_s on <var113:NativeArray[String]>*/
4096 }
4097 varonce112 = var113;
4098 {
4099 nitc___nitc__AbstractCompiler___provide_declaration(self, var111, var130); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
4100 }
4101 if (unlikely(varonce131==NULL)) {
4102 var132 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4103 if (likely(varonce133!=NULL)) {
4104 var134 = varonce133;
4105 } else {
4106 var135 = "const struct class class_";
4107 var137 = (val*)(25l<<2|1);
4108 var138 = (val*)(25l<<2|1);
4109 var139 = (val*)((long)(0)<<2|3);
4110 var140 = (val*)((long)(0)<<2|3);
4111 var136 = core__flat___CString___to_s_unsafe(var135, var137, var138, var139, var140);
4112 var134 = var136;
4113 varonce133 = var134;
4114 }
4115 ((struct instance_core__NativeArray*)var132)->values[0]=var134;
4116 if (likely(varonce141!=NULL)) {
4117 var142 = varonce141;
4118 } else {
4119 var143 = " = {";
4120 var145 = (val*)(4l<<2|1);
4121 var146 = (val*)(4l<<2|1);
4122 var147 = (val*)((long)(0)<<2|3);
4123 var148 = (val*)((long)(0)<<2|3);
4124 var144 = core__flat___CString___to_s_unsafe(var143, var145, var146, var147, var148);
4125 var142 = var144;
4126 varonce141 = var142;
4127 }
4128 ((struct instance_core__NativeArray*)var132)->values[2]=var142;
4129 } else {
4130 var132 = varonce131;
4131 varonce131 = NULL;
4132 }
4133 ((struct instance_core__NativeArray*)var132)->values[1]=var_c_name;
4134 {
4135 var149 = ((val*(*)(val* self))(var132->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var132); /* native_to_s on <var132:NativeArray[String]>*/
4136 }
4137 varonce131 = var132;
4138 {
4139 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var149); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4140 }
4141 if (unlikely(varonce150==NULL)) {
4142 var151 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4143 if (likely(varonce152!=NULL)) {
4144 var153 = varonce152;
4145 } else {
4146 var154 = ", /* box_kind */";
4147 var156 = (val*)(16l<<2|1);
4148 var157 = (val*)(16l<<2|1);
4149 var158 = (val*)((long)(0)<<2|3);
4150 var159 = (val*)((long)(0)<<2|3);
4151 var155 = core__flat___CString___to_s_unsafe(var154, var156, var157, var158, var159);
4152 var153 = var155;
4153 varonce152 = var153;
4154 }
4155 ((struct instance_core__NativeArray*)var151)->values[1]=var153;
4156 } else {
4157 var151 = varonce150;
4158 varonce150 = NULL;
4159 }
4160 {
4161 var160 = nitc___nitc__SeparateCompiler___box_kind_of(self, var_mclass);
4162 }
4163 var161 = core__flat___Int___core__abstract_text__Object__to_s(var160);
4164 ((struct instance_core__NativeArray*)var151)->values[0]=var161;
4165 {
4166 var162 = ((val*(*)(val* self))(var151->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var151); /* native_to_s on <var151:NativeArray[String]>*/
4167 }
4168 varonce150 = var151;
4169 {
4170 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var162); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4171 }
4172 if (likely(varonce163!=NULL)) {
4173 var164 = varonce163;
4174 } else {
4175 var165 = "{";
4176 var167 = (val*)(1l<<2|1);
4177 var168 = (val*)(1l<<2|1);
4178 var169 = (val*)((long)(0)<<2|3);
4179 var170 = (val*)((long)(0)<<2|3);
4180 var166 = core__flat___CString___to_s_unsafe(var165, var167, var168, var169, var170);
4181 var164 = var166;
4182 varonce163 = var164;
4183 }
4184 {
4185 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var164); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4186 }
4187 {
4188 { /* Inline separate_compiler$SeparateCompiler$method_tables (self) on <self:SeparateCompiler> */
4189 var173 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on <self:SeparateCompiler> */
4190 if (unlikely(var173 == NULL)) {
4191 if(catchStack.cursor >= 0){
4192 longjmp(catchStack.envs[catchStack.cursor], 1);
4193 }
4194 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
4195 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1073);
4196 fatal_exit(1);
4197 }
4198 var171 = var173;
4199 RET_LABEL172:(void)0;
4200 }
4201 }
4202 {
4203 var174 = ((val*(*)(val* self, val* p0))((((long)var171&3)?class_info[((long)var171&3)]:var171->class)->vft[COLOR_core__abstract_collection__MapRead__get_or_null]))(var171, var_mclass); /* get_or_null on <var171:Map[MClass, Array[nullable MPropDef]]>*/
4204 }
4205 var_vft = var174;
4206 if (var_vft == NULL) {
4207 var175 = 0; /* is null */
4208 } else {
4209 var175 = 1; /* arg is null and recv is not */
4210 }
4211 if (0) {
4212 { /* Inline kernel$Object$!= (var_vft,((val*)NULL)) on <var_vft:nullable Array[nullable MPropDef]> */
4213 var_other = ((val*)NULL);
4214 {
4215 var178 = ((short int(*)(val* self, val* p0))(var_vft->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_vft, var_other); /* == on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])>*/
4216 }
4217 var179 = !var178;
4218 var176 = var179;
4219 goto RET_LABEL177;
4220 RET_LABEL177:(void)0;
4221 }
4222 var175 = var176;
4223 }
4224 if (var175){
4225 var_i = 0l;
4226 {
4227 { /* Inline array$AbstractArrayRead$length (var_vft) on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])> */
4228 var182 = var_vft->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_vft:nullable Array[nullable MPropDef](Array[nullable MPropDef])> */
4229 var180 = var182;
4230 RET_LABEL181:(void)0;
4231 }
4232 }
4233 var_183 = var180;
4234 for(;;) {
4235 {
4236 { /* Inline kernel$Int$< (var_i,var_183) on <var_i:Int> */
4237 /* Covariant cast for argument 0 (i) <var_183:Int> isa OTHER */
4238 /* <var_183:Int> isa OTHER */
4239 var186 = 1; /* easy <var_183:Int> isa OTHER*/
4240 if (unlikely(!var186)) {
4241 var_class_name = type_core__Int.name;
4242 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
4243 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4244 fatal_exit(1);
4245 }
4246 var187 = var_i < var_183;
4247 var184 = var187;
4248 goto RET_LABEL185;
4249 RET_LABEL185:(void)0;
4250 }
4251 }
4252 if (var184){
4253 } else {
4254 goto BREAK_label;
4255 }
4256 {
4257 var188 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_vft, var_i);
4258 }
4259 var_mpropdef = var188;
4260 if (var_mpropdef == NULL) {
4261 var189 = 1; /* is null */
4262 } else {
4263 var189 = 0; /* arg is null but recv is not */
4264 }
4265 if (0) {
4266 { /* Inline kernel$Object$== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MPropDef> */
4267 var_other38 = ((val*)NULL);
4268 {
4269 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other38) on <var_mpropdef:nullable MPropDef(MPropDef)> */
4270 var194 = var_mpropdef == var_other38;
4271 var192 = var194;
4272 goto RET_LABEL193;
4273 RET_LABEL193:(void)0;
4274 }
4275 }
4276 var190 = var192;
4277 goto RET_LABEL191;
4278 RET_LABEL191:(void)0;
4279 }
4280 var189 = var190;
4281 }
4282 if (var189){
4283 if (likely(varonce195!=NULL)) {
4284 var196 = varonce195;
4285 } else {
4286 var197 = "NULL, /* empty */";
4287 var199 = (val*)(17l<<2|1);
4288 var200 = (val*)(17l<<2|1);
4289 var201 = (val*)((long)(0)<<2|3);
4290 var202 = (val*)((long)(0)<<2|3);
4291 var198 = core__flat___CString___to_s_unsafe(var197, var199, var200, var201, var202);
4292 var196 = var198;
4293 varonce195 = var196;
4294 }
4295 {
4296 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var196); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4297 }
4298 } else {
4299 /* <var_mpropdef:nullable MPropDef(MPropDef)> isa MMethodDef */
4300 cltype204 = type_nitc__MMethodDef.color;
4301 idtype205 = type_nitc__MMethodDef.id;
4302 if(cltype204 >= var_mpropdef->type->table_size) {
4303 var203 = 0;
4304 } else {
4305 var203 = var_mpropdef->type->type_table[cltype204] == idtype205;
4306 }
4307 if (unlikely(!var203)) {
4308 if(catchStack.cursor >= 0){
4309 longjmp(catchStack.envs[catchStack.cursor], 1);
4310 }
4311 PRINT_ERROR("Runtime error: %s", "Assert failed");
4312 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 844);
4313 fatal_exit(1);
4314 }
4315 if (var_rta == NULL) {
4316 var207 = 0; /* is null */
4317 } else {
4318 var207 = 1; /* arg is null and recv is not */
4319 }
4320 if (0) {
4321 { /* Inline kernel$Object$!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4322 var_other = ((val*)NULL);
4323 {
4324 var210 = ((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)>*/
4325 }
4326 var211 = !var210;
4327 var208 = var211;
4328 goto RET_LABEL209;
4329 RET_LABEL209:(void)0;
4330 }
4331 var207 = var208;
4332 }
4333 var_212 = var207;
4334 if (var207){
4335 {
4336 { /* Inline rapid_type_analysis$RapidTypeAnalysis$live_methoddefs (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4337 var215 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_methoddefs].val; /* _live_methoddefs on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4338 if (unlikely(var215 == NULL)) {
4339 if(catchStack.cursor >= 0){
4340 longjmp(catchStack.envs[catchStack.cursor], 1);
4341 }
4342 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_methoddefs");
4343 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 79);
4344 fatal_exit(1);
4345 }
4346 var213 = var215;
4347 RET_LABEL214:(void)0;
4348 }
4349 }
4350 {
4351 var216 = core___core__HashSet___core__abstract_collection__Collection__has(var213, var_mpropdef);
4352 }
4353 var217 = !var216;
4354 var206 = var217;
4355 } else {
4356 var206 = var_212;
4357 }
4358 if (var206){
4359 if (unlikely(varonce218==NULL)) {
4360 var219 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
4361 if (likely(varonce220!=NULL)) {
4362 var221 = varonce220;
4363 } else {
4364 var222 = "NULL, /* DEAD ";
4365 var224 = (val*)(14l<<2|1);
4366 var225 = (val*)(14l<<2|1);
4367 var226 = (val*)((long)(0)<<2|3);
4368 var227 = (val*)((long)(0)<<2|3);
4369 var223 = core__flat___CString___to_s_unsafe(var222, var224, var225, var226, var227);
4370 var221 = var223;
4371 varonce220 = var221;
4372 }
4373 ((struct instance_core__NativeArray*)var219)->values[0]=var221;
4374 if (likely(varonce228!=NULL)) {
4375 var229 = varonce228;
4376 } else {
4377 var230 = ":";
4378 var232 = (val*)(1l<<2|1);
4379 var233 = (val*)(1l<<2|1);
4380 var234 = (val*)((long)(0)<<2|3);
4381 var235 = (val*)((long)(0)<<2|3);
4382 var231 = core__flat___CString___to_s_unsafe(var230, var232, var233, var234, var235);
4383 var229 = var231;
4384 varonce228 = var229;
4385 }
4386 ((struct instance_core__NativeArray*)var219)->values[2]=var229;
4387 if (likely(varonce236!=NULL)) {
4388 var237 = varonce236;
4389 } else {
4390 var238 = ":";
4391 var240 = (val*)(1l<<2|1);
4392 var241 = (val*)(1l<<2|1);
4393 var242 = (val*)((long)(0)<<2|3);
4394 var243 = (val*)((long)(0)<<2|3);
4395 var239 = core__flat___CString___to_s_unsafe(var238, var240, var241, var242, var243);
4396 var237 = var239;
4397 varonce236 = var237;
4398 }
4399 ((struct instance_core__NativeArray*)var219)->values[4]=var237;
4400 if (likely(varonce244!=NULL)) {
4401 var245 = varonce244;
4402 } else {
4403 var246 = " */";
4404 var248 = (val*)(3l<<2|1);
4405 var249 = (val*)(3l<<2|1);
4406 var250 = (val*)((long)(0)<<2|3);
4407 var251 = (val*)((long)(0)<<2|3);
4408 var247 = core__flat___CString___to_s_unsafe(var246, var248, var249, var250, var251);
4409 var245 = var247;
4410 varonce244 = var245;
4411 }
4412 ((struct instance_core__NativeArray*)var219)->values[6]=var245;
4413 } else {
4414 var219 = varonce218;
4415 varonce218 = NULL;
4416 }
4417 {
4418 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
4419 var254 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
4420 if (unlikely(var254 == NULL)) {
4421 if(catchStack.cursor >= 0){
4422 longjmp(catchStack.envs[catchStack.cursor], 1);
4423 }
4424 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4425 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4426 fatal_exit(1);
4427 }
4428 var252 = var254;
4429 RET_LABEL253:(void)0;
4430 }
4431 }
4432 {
4433 var255 = ((val*(*)(val* self))(var252->class->vft[COLOR_core__abstract_text__Object__to_s]))(var252); /* to_s on <var252:MModule>*/
4434 }
4435 ((struct instance_core__NativeArray*)var219)->values[1]=var255;
4436 {
4437 var256 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclass); /* to_s on <var_mclass:MClass>*/
4438 }
4439 ((struct instance_core__NativeArray*)var219)->values[3]=var256;
4440 {
4441 var257 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:nullable MPropDef(MMethodDef)>*/
4442 }
4443 ((struct instance_core__NativeArray*)var219)->values[5]=var257;
4444 {
4445 var258 = ((val*(*)(val* self))(var219->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var219); /* native_to_s on <var219:NativeArray[String]>*/
4446 }
4447 varonce218 = var219;
4448 {
4449 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var258); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4450 }
4451 goto BREAK_label259;
4452 } else {
4453 {
4454 { /* Inline model_base$MEntity$is_broken (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4455 var264 = var_mpropdef->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4456 var262 = var264;
4457 RET_LABEL263:(void)0;
4458 }
4459 }
4460 var_265 = var262;
4461 if (var262){
4462 var261 = var_265;
4463 } else {
4464 {
4465 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4466 var268 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4467 var266 = var268;
4468 RET_LABEL267:(void)0;
4469 }
4470 }
4471 if (var266 == NULL) {
4472 var269 = 1; /* is null */
4473 } else {
4474 var269 = 0; /* arg is null but recv is not */
4475 }
4476 if (0) {
4477 { /* Inline kernel$Object$== (var266,((val*)NULL)) on <var266:nullable MSignature> */
4478 var_other38 = ((val*)NULL);
4479 {
4480 { /* Inline kernel$Object$is_same_instance (var266,var_other38) on <var266:nullable MSignature(MSignature)> */
4481 var274 = var266 == var_other38;
4482 var272 = var274;
4483 goto RET_LABEL273;
4484 RET_LABEL273:(void)0;
4485 }
4486 }
4487 var270 = var272;
4488 goto RET_LABEL271;
4489 RET_LABEL271:(void)0;
4490 }
4491 var269 = var270;
4492 }
4493 var261 = var269;
4494 }
4495 var_275 = var261;
4496 if (var261){
4497 var260 = var_275;
4498 } else {
4499 {
4500 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4501 var278 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4502 if (unlikely(var278 == NULL)) {
4503 if(catchStack.cursor >= 0){
4504 longjmp(catchStack.envs[catchStack.cursor], 1);
4505 }
4506 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4507 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4508 fatal_exit(1);
4509 }
4510 var276 = var278;
4511 RET_LABEL277:(void)0;
4512 }
4513 }
4514 {
4515 { /* Inline model_base$MEntity$is_broken (var276) on <var276:MProperty(MMethod)> */
4516 var281 = var276->attrs[COLOR_nitc__model_base__MEntity___is_broken].s; /* _is_broken on <var276:MProperty(MMethod)> */
4517 var279 = var281;
4518 RET_LABEL280:(void)0;
4519 }
4520 }
4521 var260 = var279;
4522 }
4523 if (var260){
4524 if (unlikely(varonce282==NULL)) {
4525 var283 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
4526 if (likely(varonce284!=NULL)) {
4527 var285 = varonce284;
4528 } else {
4529 var286 = "NULL, /* DEAD (BROKEN) ";
4530 var288 = (val*)(23l<<2|1);
4531 var289 = (val*)(23l<<2|1);
4532 var290 = (val*)((long)(0)<<2|3);
4533 var291 = (val*)((long)(0)<<2|3);
4534 var287 = core__flat___CString___to_s_unsafe(var286, var288, var289, var290, var291);
4535 var285 = var287;
4536 varonce284 = var285;
4537 }
4538 ((struct instance_core__NativeArray*)var283)->values[0]=var285;
4539 if (likely(varonce292!=NULL)) {
4540 var293 = varonce292;
4541 } else {
4542 var294 = ":";
4543 var296 = (val*)(1l<<2|1);
4544 var297 = (val*)(1l<<2|1);
4545 var298 = (val*)((long)(0)<<2|3);
4546 var299 = (val*)((long)(0)<<2|3);
4547 var295 = core__flat___CString___to_s_unsafe(var294, var296, var297, var298, var299);
4548 var293 = var295;
4549 varonce292 = var293;
4550 }
4551 ((struct instance_core__NativeArray*)var283)->values[2]=var293;
4552 if (likely(varonce300!=NULL)) {
4553 var301 = varonce300;
4554 } else {
4555 var302 = ":";
4556 var304 = (val*)(1l<<2|1);
4557 var305 = (val*)(1l<<2|1);
4558 var306 = (val*)((long)(0)<<2|3);
4559 var307 = (val*)((long)(0)<<2|3);
4560 var303 = core__flat___CString___to_s_unsafe(var302, var304, var305, var306, var307);
4561 var301 = var303;
4562 varonce300 = var301;
4563 }
4564 ((struct instance_core__NativeArray*)var283)->values[4]=var301;
4565 if (likely(varonce308!=NULL)) {
4566 var309 = varonce308;
4567 } else {
4568 var310 = " */";
4569 var312 = (val*)(3l<<2|1);
4570 var313 = (val*)(3l<<2|1);
4571 var314 = (val*)((long)(0)<<2|3);
4572 var315 = (val*)((long)(0)<<2|3);
4573 var311 = core__flat___CString___to_s_unsafe(var310, var312, var313, var314, var315);
4574 var309 = var311;
4575 varonce308 = var309;
4576 }
4577 ((struct instance_core__NativeArray*)var283)->values[6]=var309;
4578 } else {
4579 var283 = varonce282;
4580 varonce282 = NULL;
4581 }
4582 {
4583 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
4584 var318 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
4585 if (unlikely(var318 == NULL)) {
4586 if(catchStack.cursor >= 0){
4587 longjmp(catchStack.envs[catchStack.cursor], 1);
4588 }
4589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4591 fatal_exit(1);
4592 }
4593 var316 = var318;
4594 RET_LABEL317:(void)0;
4595 }
4596 }
4597 {
4598 var319 = ((val*(*)(val* self))(var316->class->vft[COLOR_core__abstract_text__Object__to_s]))(var316); /* to_s on <var316:MModule>*/
4599 }
4600 ((struct instance_core__NativeArray*)var283)->values[1]=var319;
4601 {
4602 var320 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclass); /* to_s on <var_mclass:MClass>*/
4603 }
4604 ((struct instance_core__NativeArray*)var283)->values[3]=var320;
4605 {
4606 var321 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:nullable MPropDef(MMethodDef)>*/
4607 }
4608 ((struct instance_core__NativeArray*)var283)->values[5]=var321;
4609 {
4610 var322 = ((val*(*)(val* self))(var283->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var283); /* native_to_s on <var283:NativeArray[String]>*/
4611 }
4612 varonce282 = var283;
4613 {
4614 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var322); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4615 }
4616 goto BREAK_label259;
4617 } else {
4618 }
4619 }
4620 {
4621 var323 = nitc__separate_compiler___MMethodDef___virtual_runtime_function(var_mpropdef);
4622 }
4623 var_rf = var323;
4624 {
4625 var324 = nitc___nitc__AbstractRuntimeFunction___c_name(var_rf);
4626 }
4627 {
4628 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var324); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
4629 }
4630 if (unlikely(varonce325==NULL)) {
4631 var326 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
4632 if (likely(varonce327!=NULL)) {
4633 var328 = varonce327;
4634 } else {
4635 var329 = "(nitmethod_t)";
4636 var331 = (val*)(13l<<2|1);
4637 var332 = (val*)(13l<<2|1);
4638 var333 = (val*)((long)(0)<<2|3);
4639 var334 = (val*)((long)(0)<<2|3);
4640 var330 = core__flat___CString___to_s_unsafe(var329, var331, var332, var333, var334);
4641 var328 = var330;
4642 varonce327 = var328;
4643 }
4644 ((struct instance_core__NativeArray*)var326)->values[0]=var328;
4645 if (likely(varonce335!=NULL)) {
4646 var336 = varonce335;
4647 } else {
4648 var337 = ", /* pointer to ";
4649 var339 = (val*)(16l<<2|1);
4650 var340 = (val*)(16l<<2|1);
4651 var341 = (val*)((long)(0)<<2|3);
4652 var342 = (val*)((long)(0)<<2|3);
4653 var338 = core__flat___CString___to_s_unsafe(var337, var339, var340, var341, var342);
4654 var336 = var338;
4655 varonce335 = var336;
4656 }
4657 ((struct instance_core__NativeArray*)var326)->values[2]=var336;
4658 if (likely(varonce343!=NULL)) {
4659 var344 = varonce343;
4660 } else {
4661 var345 = ":";
4662 var347 = (val*)(1l<<2|1);
4663 var348 = (val*)(1l<<2|1);
4664 var349 = (val*)((long)(0)<<2|3);
4665 var350 = (val*)((long)(0)<<2|3);
4666 var346 = core__flat___CString___to_s_unsafe(var345, var347, var348, var349, var350);
4667 var344 = var346;
4668 varonce343 = var344;
4669 }
4670 ((struct instance_core__NativeArray*)var326)->values[4]=var344;
4671 if (likely(varonce351!=NULL)) {
4672 var352 = varonce351;
4673 } else {
4674 var353 = ":";
4675 var355 = (val*)(1l<<2|1);
4676 var356 = (val*)(1l<<2|1);
4677 var357 = (val*)((long)(0)<<2|3);
4678 var358 = (val*)((long)(0)<<2|3);
4679 var354 = core__flat___CString___to_s_unsafe(var353, var355, var356, var357, var358);
4680 var352 = var354;
4681 varonce351 = var352;
4682 }
4683 ((struct instance_core__NativeArray*)var326)->values[6]=var352;
4684 if (likely(varonce359!=NULL)) {
4685 var360 = varonce359;
4686 } else {
4687 var361 = " */";
4688 var363 = (val*)(3l<<2|1);
4689 var364 = (val*)(3l<<2|1);
4690 var365 = (val*)((long)(0)<<2|3);
4691 var366 = (val*)((long)(0)<<2|3);
4692 var362 = core__flat___CString___to_s_unsafe(var361, var363, var364, var365, var366);
4693 var360 = var362;
4694 varonce359 = var360;
4695 }
4696 ((struct instance_core__NativeArray*)var326)->values[8]=var360;
4697 } else {
4698 var326 = varonce325;
4699 varonce325 = NULL;
4700 }
4701 {
4702 var367 = nitc___nitc__AbstractRuntimeFunction___c_name(var_rf);
4703 }
4704 ((struct instance_core__NativeArray*)var326)->values[1]=var367;
4705 {
4706 { /* Inline model$MClass$intro_mmodule (var_mclass) on <var_mclass:MClass> */
4707 var370 = var_mclass->attrs[COLOR_nitc__model__MClass___intro_mmodule].val; /* _intro_mmodule on <var_mclass:MClass> */
4708 if (unlikely(var370 == NULL)) {
4709 if(catchStack.cursor >= 0){
4710 longjmp(catchStack.envs[catchStack.cursor], 1);
4711 }
4712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mmodule");
4713 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 390);
4714 fatal_exit(1);
4715 }
4716 var368 = var370;
4717 RET_LABEL369:(void)0;
4718 }
4719 }
4720 {
4721 var371 = ((val*(*)(val* self))(var368->class->vft[COLOR_core__abstract_text__Object__to_s]))(var368); /* to_s on <var368:MModule>*/
4722 }
4723 ((struct instance_core__NativeArray*)var326)->values[3]=var371;
4724 {
4725 var372 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclass); /* to_s on <var_mclass:MClass>*/
4726 }
4727 ((struct instance_core__NativeArray*)var326)->values[5]=var372;
4728 {
4729 var373 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:nullable MPropDef(MMethodDef)>*/
4730 }
4731 ((struct instance_core__NativeArray*)var326)->values[7]=var373;
4732 {
4733 var374 = ((val*(*)(val* self))(var326->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var326); /* native_to_s on <var326:NativeArray[String]>*/
4734 }
4735 varonce325 = var326;
4736 {
4737 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var374); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4738 }
4739 }
4740 BREAK_label259: (void)0;
4741 {
4742 var375 = core___core__Int___Discrete__successor(var_i, 1l);
4743 }
4744 var_i = var375;
4745 }
4746 BREAK_label: (void)0;
4747 } else {
4748 }
4749 if (likely(varonce376!=NULL)) {
4750 var377 = varonce376;
4751 } else {
4752 var378 = "}";
4753 var380 = (val*)(1l<<2|1);
4754 var381 = (val*)(1l<<2|1);
4755 var382 = (val*)((long)(0)<<2|3);
4756 var383 = (val*)((long)(0)<<2|3);
4757 var379 = core__flat___CString___to_s_unsafe(var378, var380, var381, var382, var383);
4758 var377 = var379;
4759 varonce376 = var377;
4760 }
4761 {
4762 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var377); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4763 }
4764 if (likely(varonce384!=NULL)) {
4765 var385 = varonce384;
4766 } else {
4767 var386 = "};";
4768 var388 = (val*)(2l<<2|1);
4769 var389 = (val*)(2l<<2|1);
4770 var390 = (val*)((long)(0)<<2|3);
4771 var391 = (val*)((long)(0)<<2|3);
4772 var387 = core__flat___CString___to_s_unsafe(var386, var388, var389, var390, var391);
4773 var385 = var387;
4774 varonce384 = var385;
4775 }
4776 {
4777 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var385); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
4778 }
4779 } else {
4780 }
4781 {
4782 var393 = nitc__abstract_compiler___MClassType___MType__is_c_primitive(var_mtype);
4783 }
4784 var_394 = var393;
4785 if (var393){
4786 var392 = var_394;
4787 } else {
4788 {
4789 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
4790 var397 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
4791 if (unlikely(var397 == NULL)) {
4792 if(catchStack.cursor >= 0){
4793 longjmp(catchStack.envs[catchStack.cursor], 1);
4794 }
4795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4796 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
4797 fatal_exit(1);
4798 }
4799 var395 = var397;
4800 RET_LABEL396:(void)0;
4801 }
4802 }
4803 {
4804 { /* Inline model$MClass$name (var395) on <var395:MClass> */
4805 var400 = var395->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var395:MClass> */
4806 if (unlikely(var400 == NULL)) {
4807 if(catchStack.cursor >= 0){
4808 longjmp(catchStack.envs[catchStack.cursor], 1);
4809 }
4810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
4812 fatal_exit(1);
4813 }
4814 var398 = var400;
4815 RET_LABEL399:(void)0;
4816 }
4817 }
4818 if (likely(varonce401!=NULL)) {
4819 var402 = varonce401;
4820 } else {
4821 var403 = "Pointer";
4822 var405 = (val*)(7l<<2|1);
4823 var406 = (val*)(7l<<2|1);
4824 var407 = (val*)((long)(0)<<2|3);
4825 var408 = (val*)((long)(0)<<2|3);
4826 var404 = core__flat___CString___to_s_unsafe(var403, var405, var406, var407, var408);
4827 var402 = var404;
4828 varonce401 = var402;
4829 }
4830 {
4831 var409 = ((short int(*)(val* self, val* p0))(var398->class->vft[COLOR_core__kernel__Object___61d_61d]))(var398, var402); /* == on <var398:String>*/
4832 }
4833 var392 = var409;
4834 }
4835 if (var392){
4836 {
4837 { /* Inline separate_compiler$MType$is_tagged (var_mtype) on <var_mtype:MClassType> */
4838 var412 = var_mtype->attrs[COLOR_nitc__separate_compiler__MType___is_tagged].s; /* _is_tagged on <var_mtype:MClassType> */
4839 var410 = var412;
4840 RET_LABEL411:(void)0;
4841 }
4842 }
4843 if (var410){
4844 goto RET_LABEL;
4845 } else {
4846 }
4847 {
4848 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
4849 var415 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
4850 if (unlikely(var415 == NULL)) {
4851 if(catchStack.cursor >= 0){
4852 longjmp(catchStack.envs[catchStack.cursor], 1);
4853 }
4854 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4855 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
4856 fatal_exit(1);
4857 }
4858 var413 = var415;
4859 RET_LABEL414:(void)0;
4860 }
4861 }
4862 if (unlikely(varonce416==NULL)) {
4863 var417 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4864 if (likely(varonce418!=NULL)) {
4865 var419 = varonce418;
4866 } else {
4867 var420 = "struct instance_";
4868 var422 = (val*)(16l<<2|1);
4869 var423 = (val*)(16l<<2|1);
4870 var424 = (val*)((long)(0)<<2|3);
4871 var425 = (val*)((long)(0)<<2|3);
4872 var421 = core__flat___CString___to_s_unsafe(var420, var422, var423, var424, var425);
4873 var419 = var421;
4874 varonce418 = var419;
4875 }
4876 ((struct instance_core__NativeArray*)var417)->values[0]=var419;
4877 if (likely(varonce426!=NULL)) {
4878 var427 = varonce426;
4879 } else {
4880 var428 = " {";
4881 var430 = (val*)(2l<<2|1);
4882 var431 = (val*)(2l<<2|1);
4883 var432 = (val*)((long)(0)<<2|3);
4884 var433 = (val*)((long)(0)<<2|3);
4885 var429 = core__flat___CString___to_s_unsafe(var428, var430, var431, var432, var433);
4886 var427 = var429;
4887 varonce426 = var427;
4888 }
4889 ((struct instance_core__NativeArray*)var417)->values[2]=var427;
4890 } else {
4891 var417 = varonce416;
4892 varonce416 = NULL;
4893 }
4894 ((struct instance_core__NativeArray*)var417)->values[1]=var_c_name;
4895 {
4896 var434 = ((val*(*)(val* self))(var417->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var417); /* native_to_s on <var417:NativeArray[String]>*/
4897 }
4898 varonce416 = var417;
4899 {
4900 nitc___nitc__CodeWriter___add_decl(var413, var434); /* Direct call abstract_compiler$CodeWriter$add_decl on <var413:CodeWriter>*/
4901 }
4902 {
4903 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
4904 var437 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
4905 if (unlikely(var437 == NULL)) {
4906 if(catchStack.cursor >= 0){
4907 longjmp(catchStack.envs[catchStack.cursor], 1);
4908 }
4909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4910 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
4911 fatal_exit(1);
4912 }
4913 var435 = var437;
4914 RET_LABEL436:(void)0;
4915 }
4916 }
4917 if (likely(varonce438!=NULL)) {
4918 var439 = varonce438;
4919 } else {
4920 var440 = "const struct type *type;";
4921 var442 = (val*)(24l<<2|1);
4922 var443 = (val*)(24l<<2|1);
4923 var444 = (val*)((long)(0)<<2|3);
4924 var445 = (val*)((long)(0)<<2|3);
4925 var441 = core__flat___CString___to_s_unsafe(var440, var442, var443, var444, var445);
4926 var439 = var441;
4927 varonce438 = var439;
4928 }
4929 {
4930 nitc___nitc__CodeWriter___add_decl(var435, var439); /* Direct call abstract_compiler$CodeWriter$add_decl on <var435:CodeWriter>*/
4931 }
4932 {
4933 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
4934 var448 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
4935 if (unlikely(var448 == NULL)) {
4936 if(catchStack.cursor >= 0){
4937 longjmp(catchStack.envs[catchStack.cursor], 1);
4938 }
4939 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4940 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
4941 fatal_exit(1);
4942 }
4943 var446 = var448;
4944 RET_LABEL447:(void)0;
4945 }
4946 }
4947 if (likely(varonce449!=NULL)) {
4948 var450 = varonce449;
4949 } else {
4950 var451 = "const struct class *class;";
4951 var453 = (val*)(26l<<2|1);
4952 var454 = (val*)(26l<<2|1);
4953 var455 = (val*)((long)(0)<<2|3);
4954 var456 = (val*)((long)(0)<<2|3);
4955 var452 = core__flat___CString___to_s_unsafe(var451, var453, var454, var455, var456);
4956 var450 = var452;
4957 varonce449 = var450;
4958 }
4959 {
4960 nitc___nitc__CodeWriter___add_decl(var446, var450); /* Direct call abstract_compiler$CodeWriter$add_decl on <var446:CodeWriter>*/
4961 }
4962 {
4963 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
4964 var459 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
4965 if (unlikely(var459 == NULL)) {
4966 if(catchStack.cursor >= 0){
4967 longjmp(catchStack.envs[catchStack.cursor], 1);
4968 }
4969 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
4970 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
4971 fatal_exit(1);
4972 }
4973 var457 = var459;
4974 RET_LABEL458:(void)0;
4975 }
4976 }
4977 if (unlikely(varonce460==NULL)) {
4978 var461 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4979 if (likely(varonce462!=NULL)) {
4980 var463 = varonce462;
4981 } else {
4982 var464 = " value;";
4983 var466 = (val*)(7l<<2|1);
4984 var467 = (val*)(7l<<2|1);
4985 var468 = (val*)((long)(0)<<2|3);
4986 var469 = (val*)((long)(0)<<2|3);
4987 var465 = core__flat___CString___to_s_unsafe(var464, var466, var467, var468, var469);
4988 var463 = var465;
4989 varonce462 = var463;
4990 }
4991 ((struct instance_core__NativeArray*)var461)->values[1]=var463;
4992 } else {
4993 var461 = varonce460;
4994 varonce460 = NULL;
4995 }
4996 {
4997 var470 = nitc__abstract_compiler___MClassType___MType__ctype_extern(var_mtype);
4998 }
4999 ((struct instance_core__NativeArray*)var461)->values[0]=var470;
5000 {
5001 var471 = ((val*(*)(val* self))(var461->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var461); /* native_to_s on <var461:NativeArray[String]>*/
5002 }
5003 varonce460 = var461;
5004 {
5005 nitc___nitc__CodeWriter___add_decl(var457, var471); /* Direct call abstract_compiler$CodeWriter$add_decl on <var457:CodeWriter>*/
5006 }
5007 {
5008 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
5009 var474 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
5010 if (unlikely(var474 == NULL)) {
5011 if(catchStack.cursor >= 0){
5012 longjmp(catchStack.envs[catchStack.cursor], 1);
5013 }
5014 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
5015 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
5016 fatal_exit(1);
5017 }
5018 var472 = var474;
5019 RET_LABEL473:(void)0;
5020 }
5021 }
5022 if (likely(varonce475!=NULL)) {
5023 var476 = varonce475;
5024 } else {
5025 var477 = "};";
5026 var479 = (val*)(2l<<2|1);
5027 var480 = (val*)(2l<<2|1);
5028 var481 = (val*)((long)(0)<<2|3);
5029 var482 = (val*)((long)(0)<<2|3);
5030 var478 = core__flat___CString___to_s_unsafe(var477, var479, var480, var481, var482);
5031 var476 = var478;
5032 varonce475 = var476;
5033 }
5034 {
5035 nitc___nitc__CodeWriter___add_decl(var472, var476); /* Direct call abstract_compiler$CodeWriter$add_decl on <var472:CodeWriter>*/
5036 }
5037 var_484 = var_is_dead;
5038 if (var_is_dead){
5039 {
5040 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
5041 var487 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
5042 if (unlikely(var487 == NULL)) {
5043 if(catchStack.cursor >= 0){
5044 longjmp(catchStack.envs[catchStack.cursor], 1);
5045 }
5046 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5047 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
5048 fatal_exit(1);
5049 }
5050 var485 = var487;
5051 RET_LABEL486:(void)0;
5052 }
5053 }
5054 {
5055 { /* Inline model$MClass$name (var485) on <var485:MClass> */
5056 var490 = var485->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var485:MClass> */
5057 if (unlikely(var490 == NULL)) {
5058 if(catchStack.cursor >= 0){
5059 longjmp(catchStack.envs[catchStack.cursor], 1);
5060 }
5061 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5062 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
5063 fatal_exit(1);
5064 }
5065 var488 = var490;
5066 RET_LABEL489:(void)0;
5067 }
5068 }
5069 if (likely(varonce491!=NULL)) {
5070 var492 = varonce491;
5071 } else {
5072 var493 = "Pointer";
5073 var495 = (val*)(7l<<2|1);
5074 var496 = (val*)(7l<<2|1);
5075 var497 = (val*)((long)(0)<<2|3);
5076 var498 = (val*)((long)(0)<<2|3);
5077 var494 = core__flat___CString___to_s_unsafe(var493, var495, var496, var497, var498);
5078 var492 = var494;
5079 varonce491 = var492;
5080 }
5081 {
5082 { /* Inline kernel$Object$!= (var488,var492) on <var488:String> */
5083 var_other = var492;
5084 {
5085 var501 = ((short int(*)(val* self, val* p0))(var488->class->vft[COLOR_core__kernel__Object___61d_61d]))(var488, var_other); /* == on <var488:String>*/
5086 }
5087 var502 = !var501;
5088 var499 = var502;
5089 goto RET_LABEL500;
5090 RET_LABEL500:(void)0;
5091 }
5092 }
5093 var483 = var499;
5094 } else {
5095 var483 = var_484;
5096 }
5097 if (var483){
5098 goto RET_LABEL;
5099 } else {
5100 }
5101 if (unlikely(varonce503==NULL)) {
5102 var504 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5103 if (likely(varonce505!=NULL)) {
5104 var506 = varonce505;
5105 } else {
5106 var507 = "BOX_";
5107 var509 = (val*)(4l<<2|1);
5108 var510 = (val*)(4l<<2|1);
5109 var511 = (val*)((long)(0)<<2|3);
5110 var512 = (val*)((long)(0)<<2|3);
5111 var508 = core__flat___CString___to_s_unsafe(var507, var509, var510, var511, var512);
5112 var506 = var508;
5113 varonce505 = var506;
5114 }
5115 ((struct instance_core__NativeArray*)var504)->values[0]=var506;
5116 } else {
5117 var504 = varonce503;
5118 varonce503 = NULL;
5119 }
5120 ((struct instance_core__NativeArray*)var504)->values[1]=var_c_name;
5121 {
5122 var513 = ((val*(*)(val* self))(var504->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var504); /* native_to_s on <var504:NativeArray[String]>*/
5123 }
5124 varonce503 = var504;
5125 if (unlikely(varonce514==NULL)) {
5126 var515 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5127 if (likely(varonce516!=NULL)) {
5128 var517 = varonce516;
5129 } else {
5130 var518 = "val* BOX_";
5131 var520 = (val*)(9l<<2|1);
5132 var521 = (val*)(9l<<2|1);
5133 var522 = (val*)((long)(0)<<2|3);
5134 var523 = (val*)((long)(0)<<2|3);
5135 var519 = core__flat___CString___to_s_unsafe(var518, var520, var521, var522, var523);
5136 var517 = var519;
5137 varonce516 = var517;
5138 }
5139 ((struct instance_core__NativeArray*)var515)->values[0]=var517;
5140 if (likely(varonce524!=NULL)) {
5141 var525 = varonce524;
5142 } else {
5143 var526 = "(";
5144 var528 = (val*)(1l<<2|1);
5145 var529 = (val*)(1l<<2|1);
5146 var530 = (val*)((long)(0)<<2|3);
5147 var531 = (val*)((long)(0)<<2|3);
5148 var527 = core__flat___CString___to_s_unsafe(var526, var528, var529, var530, var531);
5149 var525 = var527;
5150 varonce524 = var525;
5151 }
5152 ((struct instance_core__NativeArray*)var515)->values[2]=var525;
5153 if (likely(varonce532!=NULL)) {
5154 var533 = varonce532;
5155 } else {
5156 var534 = ");";
5157 var536 = (val*)(2l<<2|1);
5158 var537 = (val*)(2l<<2|1);
5159 var538 = (val*)((long)(0)<<2|3);
5160 var539 = (val*)((long)(0)<<2|3);
5161 var535 = core__flat___CString___to_s_unsafe(var534, var536, var537, var538, var539);
5162 var533 = var535;
5163 varonce532 = var533;
5164 }
5165 ((struct instance_core__NativeArray*)var515)->values[4]=var533;
5166 } else {
5167 var515 = varonce514;
5168 varonce514 = NULL;
5169 }
5170 ((struct instance_core__NativeArray*)var515)->values[1]=var_c_name;
5171 {
5172 var540 = nitc__abstract_compiler___MClassType___MType__ctype_extern(var_mtype);
5173 }
5174 ((struct instance_core__NativeArray*)var515)->values[3]=var540;
5175 {
5176 var541 = ((val*(*)(val* self))(var515->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var515); /* native_to_s on <var515:NativeArray[String]>*/
5177 }
5178 varonce514 = var515;
5179 {
5180 nitc___nitc__AbstractCompiler___provide_declaration(self, var513, var541); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
5181 }
5182 if (unlikely(varonce542==NULL)) {
5183 var543 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5184 if (likely(varonce544!=NULL)) {
5185 var545 = varonce544;
5186 } else {
5187 var546 = "/* allocate ";
5188 var548 = (val*)(12l<<2|1);
5189 var549 = (val*)(12l<<2|1);
5190 var550 = (val*)((long)(0)<<2|3);
5191 var551 = (val*)((long)(0)<<2|3);
5192 var547 = core__flat___CString___to_s_unsafe(var546, var548, var549, var550, var551);
5193 var545 = var547;
5194 varonce544 = var545;
5195 }
5196 ((struct instance_core__NativeArray*)var543)->values[0]=var545;
5197 if (likely(varonce552!=NULL)) {
5198 var553 = varonce552;
5199 } else {
5200 var554 = " */";
5201 var556 = (val*)(3l<<2|1);
5202 var557 = (val*)(3l<<2|1);
5203 var558 = (val*)((long)(0)<<2|3);
5204 var559 = (val*)((long)(0)<<2|3);
5205 var555 = core__flat___CString___to_s_unsafe(var554, var556, var557, var558, var559);
5206 var553 = var555;
5207 varonce552 = var553;
5208 }
5209 ((struct instance_core__NativeArray*)var543)->values[2]=var553;
5210 } else {
5211 var543 = varonce542;
5212 varonce542 = NULL;
5213 }
5214 {
5215 var560 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MClassType>*/
5216 }
5217 ((struct instance_core__NativeArray*)var543)->values[1]=var560;
5218 {
5219 var561 = ((val*(*)(val* self))(var543->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var543); /* native_to_s on <var543:NativeArray[String]>*/
5220 }
5221 varonce542 = var543;
5222 {
5223 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var561); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
5224 }
5225 if (unlikely(varonce562==NULL)) {
5226 var563 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5227 if (likely(varonce564!=NULL)) {
5228 var565 = varonce564;
5229 } else {
5230 var566 = "val* BOX_";
5231 var568 = (val*)(9l<<2|1);
5232 var569 = (val*)(9l<<2|1);
5233 var570 = (val*)((long)(0)<<2|3);
5234 var571 = (val*)((long)(0)<<2|3);
5235 var567 = core__flat___CString___to_s_unsafe(var566, var568, var569, var570, var571);
5236 var565 = var567;
5237 varonce564 = var565;
5238 }
5239 ((struct instance_core__NativeArray*)var563)->values[0]=var565;
5240 if (likely(varonce572!=NULL)) {
5241 var573 = varonce572;
5242 } else {
5243 var574 = "(";
5244 var576 = (val*)(1l<<2|1);
5245 var577 = (val*)(1l<<2|1);
5246 var578 = (val*)((long)(0)<<2|3);
5247 var579 = (val*)((long)(0)<<2|3);
5248 var575 = core__flat___CString___to_s_unsafe(var574, var576, var577, var578, var579);
5249 var573 = var575;
5250 varonce572 = var573;
5251 }
5252 ((struct instance_core__NativeArray*)var563)->values[2]=var573;
5253 if (likely(varonce580!=NULL)) {
5254 var581 = varonce580;
5255 } else {
5256 var582 = " value) {";
5257 var584 = (val*)(9l<<2|1);
5258 var585 = (val*)(9l<<2|1);
5259 var586 = (val*)((long)(0)<<2|3);
5260 var587 = (val*)((long)(0)<<2|3);
5261 var583 = core__flat___CString___to_s_unsafe(var582, var584, var585, var586, var587);
5262 var581 = var583;
5263 varonce580 = var581;
5264 }
5265 ((struct instance_core__NativeArray*)var563)->values[4]=var581;
5266 } else {
5267 var563 = varonce562;
5268 varonce562 = NULL;
5269 }
5270 {
5271 var588 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MClassType>*/
5272 }
5273 ((struct instance_core__NativeArray*)var563)->values[1]=var588;
5274 {
5275 var589 = nitc__abstract_compiler___MClassType___MType__ctype_extern(var_mtype);
5276 }
5277 ((struct instance_core__NativeArray*)var563)->values[3]=var589;
5278 {
5279 var590 = ((val*(*)(val* self))(var563->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var563); /* native_to_s on <var563:NativeArray[String]>*/
5280 }
5281 varonce562 = var563;
5282 {
5283 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var590); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
5284 }
5285 if (unlikely(varonce591==NULL)) {
5286 var592 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5287 if (likely(varonce593!=NULL)) {
5288 var594 = varonce593;
5289 } else {
5290 var595 = "sizeof(struct instance_";
5291 var597 = (val*)(23l<<2|1);
5292 var598 = (val*)(23l<<2|1);
5293 var599 = (val*)((long)(0)<<2|3);
5294 var600 = (val*)((long)(0)<<2|3);
5295 var596 = core__flat___CString___to_s_unsafe(var595, var597, var598, var599, var600);
5296 var594 = var596;
5297 varonce593 = var594;
5298 }
5299 ((struct instance_core__NativeArray*)var592)->values[0]=var594;
5300 if (likely(varonce601!=NULL)) {
5301 var602 = varonce601;
5302 } else {
5303 var603 = ")";
5304 var605 = (val*)(1l<<2|1);
5305 var606 = (val*)(1l<<2|1);
5306 var607 = (val*)((long)(0)<<2|3);
5307 var608 = (val*)((long)(0)<<2|3);
5308 var604 = core__flat___CString___to_s_unsafe(var603, var605, var606, var607, var608);
5309 var602 = var604;
5310 varonce601 = var602;
5311 }
5312 ((struct instance_core__NativeArray*)var592)->values[2]=var602;
5313 } else {
5314 var592 = varonce591;
5315 varonce591 = NULL;
5316 }
5317 ((struct instance_core__NativeArray*)var592)->values[1]=var_c_name;
5318 {
5319 var609 = ((val*(*)(val* self))(var592->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var592); /* native_to_s on <var592:NativeArray[String]>*/
5320 }
5321 varonce591 = var592;
5322 {
5323 var610 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
5324 }
5325 {
5326 var611 = nitc___nitc__AbstractCompilerVisitor___nit_alloc(var_v, var609, var610);
5327 }
5328 var_alloc = var611;
5329 if (unlikely(varonce612==NULL)) {
5330 var613 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5331 if (likely(varonce614!=NULL)) {
5332 var615 = varonce614;
5333 } else {
5334 var616 = "struct instance_";
5335 var618 = (val*)(16l<<2|1);
5336 var619 = (val*)(16l<<2|1);
5337 var620 = (val*)((long)(0)<<2|3);
5338 var621 = (val*)((long)(0)<<2|3);
5339 var617 = core__flat___CString___to_s_unsafe(var616, var618, var619, var620, var621);
5340 var615 = var617;
5341 varonce614 = var615;
5342 }
5343 ((struct instance_core__NativeArray*)var613)->values[0]=var615;
5344 if (likely(varonce622!=NULL)) {
5345 var623 = varonce622;
5346 } else {
5347 var624 = "*res = ";
5348 var626 = (val*)(7l<<2|1);
5349 var627 = (val*)(7l<<2|1);
5350 var628 = (val*)((long)(0)<<2|3);
5351 var629 = (val*)((long)(0)<<2|3);
5352 var625 = core__flat___CString___to_s_unsafe(var624, var626, var627, var628, var629);
5353 var623 = var625;
5354 varonce622 = var623;
5355 }
5356 ((struct instance_core__NativeArray*)var613)->values[2]=var623;
5357 if (likely(varonce630!=NULL)) {
5358 var631 = varonce630;
5359 } else {
5360 var632 = ";";
5361 var634 = (val*)(1l<<2|1);
5362 var635 = (val*)(1l<<2|1);
5363 var636 = (val*)((long)(0)<<2|3);
5364 var637 = (val*)((long)(0)<<2|3);
5365 var633 = core__flat___CString___to_s_unsafe(var632, var634, var635, var636, var637);
5366 var631 = var633;
5367 varonce630 = var631;
5368 }
5369 ((struct instance_core__NativeArray*)var613)->values[4]=var631;
5370 } else {
5371 var613 = varonce612;
5372 varonce612 = NULL;
5373 }
5374 ((struct instance_core__NativeArray*)var613)->values[1]=var_c_name;
5375 ((struct instance_core__NativeArray*)var613)->values[3]=var_alloc;
5376 {
5377 var638 = ((val*(*)(val* self))(var613->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var613); /* native_to_s on <var613:NativeArray[String]>*/
5378 }
5379 varonce612 = var613;
5380 {
5381 nitc___nitc__AbstractCompilerVisitor___add(var_v, var638); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5382 }
5383 {
5384 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:SeparateCompilerVisitor> */
5385 var641 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:SeparateCompilerVisitor> */
5386 if (unlikely(var641 == NULL)) {
5387 if(catchStack.cursor >= 0){
5388 longjmp(catchStack.envs[catchStack.cursor], 1);
5389 }
5390 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
5391 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
5392 fatal_exit(1);
5393 }
5394 var639 = var641;
5395 RET_LABEL640:(void)0;
5396 }
5397 }
5398 {
5399 { /* Inline separate_compiler$SeparateCompiler$undead_types (var639) on <var639:AbstractCompiler(SeparateCompiler)> */
5400 var644 = var639->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on <var639:AbstractCompiler(SeparateCompiler)> */
5401 if (unlikely(var644 == NULL)) {
5402 if(catchStack.cursor >= 0){
5403 longjmp(catchStack.envs[catchStack.cursor], 1);
5404 }
5405 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
5406 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 146);
5407 fatal_exit(1);
5408 }
5409 var642 = var644;
5410 RET_LABEL643:(void)0;
5411 }
5412 }
5413 {
5414 ((void(*)(val* self, val* p0))((((long)var642&3)?class_info[((long)var642&3)]:var642->class)->vft[COLOR_core__abstract_collection__SimpleCollection__add]))(var642, var_mtype); /* add on <var642:Set[MType]>*/
5415 }
5416 if (unlikely(varonce645==NULL)) {
5417 var646 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5418 if (likely(varonce647!=NULL)) {
5419 var648 = varonce647;
5420 } else {
5421 var649 = "type_";
5422 var651 = (val*)(5l<<2|1);
5423 var652 = (val*)(5l<<2|1);
5424 var653 = (val*)((long)(0)<<2|3);
5425 var654 = (val*)((long)(0)<<2|3);
5426 var650 = core__flat___CString___to_s_unsafe(var649, var651, var652, var653, var654);
5427 var648 = var650;
5428 varonce647 = var648;
5429 }
5430 ((struct instance_core__NativeArray*)var646)->values[0]=var648;
5431 } else {
5432 var646 = varonce645;
5433 varonce645 = NULL;
5434 }
5435 ((struct instance_core__NativeArray*)var646)->values[1]=var_c_name;
5436 {
5437 var655 = ((val*(*)(val* self))(var646->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var646); /* native_to_s on <var646:NativeArray[String]>*/
5438 }
5439 varonce645 = var646;
5440 {
5441 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var655); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
5442 }
5443 if (unlikely(varonce656==NULL)) {
5444 var657 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5445 if (likely(varonce658!=NULL)) {
5446 var659 = varonce658;
5447 } else {
5448 var660 = "res->type = &type_";
5449 var662 = (val*)(18l<<2|1);
5450 var663 = (val*)(18l<<2|1);
5451 var664 = (val*)((long)(0)<<2|3);
5452 var665 = (val*)((long)(0)<<2|3);
5453 var661 = core__flat___CString___to_s_unsafe(var660, var662, var663, var664, var665);
5454 var659 = var661;
5455 varonce658 = var659;
5456 }
5457 ((struct instance_core__NativeArray*)var657)->values[0]=var659;
5458 if (likely(varonce666!=NULL)) {
5459 var667 = varonce666;
5460 } else {
5461 var668 = ";";
5462 var670 = (val*)(1l<<2|1);
5463 var671 = (val*)(1l<<2|1);
5464 var672 = (val*)((long)(0)<<2|3);
5465 var673 = (val*)((long)(0)<<2|3);
5466 var669 = core__flat___CString___to_s_unsafe(var668, var670, var671, var672, var673);
5467 var667 = var669;
5468 varonce666 = var667;
5469 }
5470 ((struct instance_core__NativeArray*)var657)->values[2]=var667;
5471 } else {
5472 var657 = varonce656;
5473 varonce656 = NULL;
5474 }
5475 ((struct instance_core__NativeArray*)var657)->values[1]=var_c_name;
5476 {
5477 var674 = ((val*(*)(val* self))(var657->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var657); /* native_to_s on <var657:NativeArray[String]>*/
5478 }
5479 varonce656 = var657;
5480 {
5481 nitc___nitc__AbstractCompilerVisitor___add(var_v, var674); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5482 }
5483 if (unlikely(varonce675==NULL)) {
5484 var676 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5485 if (likely(varonce677!=NULL)) {
5486 var678 = varonce677;
5487 } else {
5488 var679 = "class_";
5489 var681 = (val*)(6l<<2|1);
5490 var682 = (val*)(6l<<2|1);
5491 var683 = (val*)((long)(0)<<2|3);
5492 var684 = (val*)((long)(0)<<2|3);
5493 var680 = core__flat___CString___to_s_unsafe(var679, var681, var682, var683, var684);
5494 var678 = var680;
5495 varonce677 = var678;
5496 }
5497 ((struct instance_core__NativeArray*)var676)->values[0]=var678;
5498 } else {
5499 var676 = varonce675;
5500 varonce675 = NULL;
5501 }
5502 ((struct instance_core__NativeArray*)var676)->values[1]=var_c_name;
5503 {
5504 var685 = ((val*(*)(val* self))(var676->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var676); /* native_to_s on <var676:NativeArray[String]>*/
5505 }
5506 varonce675 = var676;
5507 {
5508 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var685); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
5509 }
5510 if (unlikely(varonce686==NULL)) {
5511 var687 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5512 if (likely(varonce688!=NULL)) {
5513 var689 = varonce688;
5514 } else {
5515 var690 = "res->class = &class_";
5516 var692 = (val*)(20l<<2|1);
5517 var693 = (val*)(20l<<2|1);
5518 var694 = (val*)((long)(0)<<2|3);
5519 var695 = (val*)((long)(0)<<2|3);
5520 var691 = core__flat___CString___to_s_unsafe(var690, var692, var693, var694, var695);
5521 var689 = var691;
5522 varonce688 = var689;
5523 }
5524 ((struct instance_core__NativeArray*)var687)->values[0]=var689;
5525 if (likely(varonce696!=NULL)) {
5526 var697 = varonce696;
5527 } else {
5528 var698 = ";";
5529 var700 = (val*)(1l<<2|1);
5530 var701 = (val*)(1l<<2|1);
5531 var702 = (val*)((long)(0)<<2|3);
5532 var703 = (val*)((long)(0)<<2|3);
5533 var699 = core__flat___CString___to_s_unsafe(var698, var700, var701, var702, var703);
5534 var697 = var699;
5535 varonce696 = var697;
5536 }
5537 ((struct instance_core__NativeArray*)var687)->values[2]=var697;
5538 } else {
5539 var687 = varonce686;
5540 varonce686 = NULL;
5541 }
5542 ((struct instance_core__NativeArray*)var687)->values[1]=var_c_name;
5543 {
5544 var704 = ((val*(*)(val* self))(var687->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var687); /* native_to_s on <var687:NativeArray[String]>*/
5545 }
5546 varonce686 = var687;
5547 {
5548 nitc___nitc__AbstractCompilerVisitor___add(var_v, var704); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5549 }
5550 if (likely(varonce705!=NULL)) {
5551 var706 = varonce705;
5552 } else {
5553 var707 = "res->value = value;";
5554 var709 = (val*)(19l<<2|1);
5555 var710 = (val*)(19l<<2|1);
5556 var711 = (val*)((long)(0)<<2|3);
5557 var712 = (val*)((long)(0)<<2|3);
5558 var708 = core__flat___CString___to_s_unsafe(var707, var709, var710, var711, var712);
5559 var706 = var708;
5560 varonce705 = var706;
5561 }
5562 {
5563 nitc___nitc__AbstractCompilerVisitor___add(var_v, var706); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5564 }
5565 if (likely(varonce713!=NULL)) {
5566 var714 = varonce713;
5567 } else {
5568 var715 = "return (val*)res;";
5569 var717 = (val*)(17l<<2|1);
5570 var718 = (val*)(17l<<2|1);
5571 var719 = (val*)((long)(0)<<2|3);
5572 var720 = (val*)((long)(0)<<2|3);
5573 var716 = core__flat___CString___to_s_unsafe(var715, var717, var718, var719, var720);
5574 var714 = var716;
5575 varonce713 = var714;
5576 }
5577 {
5578 nitc___nitc__AbstractCompilerVisitor___add(var_v, var714); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5579 }
5580 if (likely(varonce721!=NULL)) {
5581 var722 = varonce721;
5582 } else {
5583 var723 = "}";
5584 var725 = (val*)(1l<<2|1);
5585 var726 = (val*)(1l<<2|1);
5586 var727 = (val*)((long)(0)<<2|3);
5587 var728 = (val*)((long)(0)<<2|3);
5588 var724 = core__flat___CString___to_s_unsafe(var723, var725, var726, var727, var728);
5589 var722 = var724;
5590 varonce721 = var722;
5591 }
5592 {
5593 nitc___nitc__AbstractCompilerVisitor___add(var_v, var722); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5594 }
5595 {
5596 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
5597 var731 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
5598 if (unlikely(var731 == NULL)) {
5599 if(catchStack.cursor >= 0){
5600 longjmp(catchStack.envs[catchStack.cursor], 1);
5601 }
5602 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5603 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
5604 fatal_exit(1);
5605 }
5606 var729 = var731;
5607 RET_LABEL730:(void)0;
5608 }
5609 }
5610 {
5611 { /* Inline model$MClass$name (var729) on <var729:MClass> */
5612 var734 = var729->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var729:MClass> */
5613 if (unlikely(var734 == NULL)) {
5614 if(catchStack.cursor >= 0){
5615 longjmp(catchStack.envs[catchStack.cursor], 1);
5616 }
5617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
5619 fatal_exit(1);
5620 }
5621 var732 = var734;
5622 RET_LABEL733:(void)0;
5623 }
5624 }
5625 if (likely(varonce735!=NULL)) {
5626 var736 = varonce735;
5627 } else {
5628 var737 = "Pointer";
5629 var739 = (val*)(7l<<2|1);
5630 var740 = (val*)(7l<<2|1);
5631 var741 = (val*)((long)(0)<<2|3);
5632 var742 = (val*)((long)(0)<<2|3);
5633 var738 = core__flat___CString___to_s_unsafe(var737, var739, var740, var741, var742);
5634 var736 = var738;
5635 varonce735 = var736;
5636 }
5637 {
5638 { /* Inline kernel$Object$!= (var732,var736) on <var732:String> */
5639 var_other = var736;
5640 {
5641 var745 = ((short int(*)(val* self, val* p0))(var732->class->vft[COLOR_core__kernel__Object___61d_61d]))(var732, var_other); /* == on <var732:String>*/
5642 }
5643 var746 = !var745;
5644 var743 = var746;
5645 goto RET_LABEL744;
5646 RET_LABEL744:(void)0;
5647 }
5648 }
5649 if (var743){
5650 goto RET_LABEL;
5651 } else {
5652 }
5653 {
5654 var747 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(self); /* new_visitor on <self:SeparateCompiler>*/
5655 }
5656 var_v = var747;
5657 if (unlikely(varonce748==NULL)) {
5658 var749 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5659 if (likely(varonce750!=NULL)) {
5660 var751 = varonce750;
5661 } else {
5662 var752 = "NEW_";
5663 var754 = (val*)(4l<<2|1);
5664 var755 = (val*)(4l<<2|1);
5665 var756 = (val*)((long)(0)<<2|3);
5666 var757 = (val*)((long)(0)<<2|3);
5667 var753 = core__flat___CString___to_s_unsafe(var752, var754, var755, var756, var757);
5668 var751 = var753;
5669 varonce750 = var751;
5670 }
5671 ((struct instance_core__NativeArray*)var749)->values[0]=var751;
5672 } else {
5673 var749 = varonce748;
5674 varonce748 = NULL;
5675 }
5676 ((struct instance_core__NativeArray*)var749)->values[1]=var_c_name;
5677 {
5678 var758 = ((val*(*)(val* self))(var749->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var749); /* native_to_s on <var749:NativeArray[String]>*/
5679 }
5680 varonce748 = var749;
5681 if (unlikely(varonce759==NULL)) {
5682 var760 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5683 if (likely(varonce761!=NULL)) {
5684 var762 = varonce761;
5685 } else {
5686 var763 = " NEW_";
5687 var765 = (val*)(5l<<2|1);
5688 var766 = (val*)(5l<<2|1);
5689 var767 = (val*)((long)(0)<<2|3);
5690 var768 = (val*)((long)(0)<<2|3);
5691 var764 = core__flat___CString___to_s_unsafe(var763, var765, var766, var767, var768);
5692 var762 = var764;
5693 varonce761 = var762;
5694 }
5695 ((struct instance_core__NativeArray*)var760)->values[1]=var762;
5696 if (likely(varonce769!=NULL)) {
5697 var770 = varonce769;
5698 } else {
5699 var771 = "(const struct type* type);";
5700 var773 = (val*)(26l<<2|1);
5701 var774 = (val*)(26l<<2|1);
5702 var775 = (val*)((long)(0)<<2|3);
5703 var776 = (val*)((long)(0)<<2|3);
5704 var772 = core__flat___CString___to_s_unsafe(var771, var773, var774, var775, var776);
5705 var770 = var772;
5706 varonce769 = var770;
5707 }
5708 ((struct instance_core__NativeArray*)var760)->values[3]=var770;
5709 } else {
5710 var760 = varonce759;
5711 varonce759 = NULL;
5712 }
5713 {
5714 var777 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
5715 }
5716 ((struct instance_core__NativeArray*)var760)->values[0]=var777;
5717 ((struct instance_core__NativeArray*)var760)->values[2]=var_c_name;
5718 {
5719 var778 = ((val*(*)(val* self))(var760->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var760); /* native_to_s on <var760:NativeArray[String]>*/
5720 }
5721 varonce759 = var760;
5722 {
5723 nitc___nitc__AbstractCompiler___provide_declaration(self, var758, var778); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
5724 }
5725 if (unlikely(varonce779==NULL)) {
5726 var780 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5727 if (likely(varonce781!=NULL)) {
5728 var782 = varonce781;
5729 } else {
5730 var783 = "/* allocate ";
5731 var785 = (val*)(12l<<2|1);
5732 var786 = (val*)(12l<<2|1);
5733 var787 = (val*)((long)(0)<<2|3);
5734 var788 = (val*)((long)(0)<<2|3);
5735 var784 = core__flat___CString___to_s_unsafe(var783, var785, var786, var787, var788);
5736 var782 = var784;
5737 varonce781 = var782;
5738 }
5739 ((struct instance_core__NativeArray*)var780)->values[0]=var782;
5740 if (likely(varonce789!=NULL)) {
5741 var790 = varonce789;
5742 } else {
5743 var791 = " */";
5744 var793 = (val*)(3l<<2|1);
5745 var794 = (val*)(3l<<2|1);
5746 var795 = (val*)((long)(0)<<2|3);
5747 var796 = (val*)((long)(0)<<2|3);
5748 var792 = core__flat___CString___to_s_unsafe(var791, var793, var794, var795, var796);
5749 var790 = var792;
5750 varonce789 = var790;
5751 }
5752 ((struct instance_core__NativeArray*)var780)->values[2]=var790;
5753 } else {
5754 var780 = varonce779;
5755 varonce779 = NULL;
5756 }
5757 {
5758 var797 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MClassType>*/
5759 }
5760 ((struct instance_core__NativeArray*)var780)->values[1]=var797;
5761 {
5762 var798 = ((val*(*)(val* self))(var780->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var780); /* native_to_s on <var780:NativeArray[String]>*/
5763 }
5764 varonce779 = var780;
5765 {
5766 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var798); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
5767 }
5768 if (unlikely(varonce799==NULL)) {
5769 var800 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5770 if (likely(varonce801!=NULL)) {
5771 var802 = varonce801;
5772 } else {
5773 var803 = " NEW_";
5774 var805 = (val*)(5l<<2|1);
5775 var806 = (val*)(5l<<2|1);
5776 var807 = (val*)((long)(0)<<2|3);
5777 var808 = (val*)((long)(0)<<2|3);
5778 var804 = core__flat___CString___to_s_unsafe(var803, var805, var806, var807, var808);
5779 var802 = var804;
5780 varonce801 = var802;
5781 }
5782 ((struct instance_core__NativeArray*)var800)->values[1]=var802;
5783 if (likely(varonce809!=NULL)) {
5784 var810 = varonce809;
5785 } else {
5786 var811 = "(const struct type* type) {";
5787 var813 = (val*)(27l<<2|1);
5788 var814 = (val*)(27l<<2|1);
5789 var815 = (val*)((long)(0)<<2|3);
5790 var816 = (val*)((long)(0)<<2|3);
5791 var812 = core__flat___CString___to_s_unsafe(var811, var813, var814, var815, var816);
5792 var810 = var812;
5793 varonce809 = var810;
5794 }
5795 ((struct instance_core__NativeArray*)var800)->values[3]=var810;
5796 } else {
5797 var800 = varonce799;
5798 varonce799 = NULL;
5799 }
5800 {
5801 var817 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
5802 }
5803 ((struct instance_core__NativeArray*)var800)->values[0]=var817;
5804 ((struct instance_core__NativeArray*)var800)->values[2]=var_c_name;
5805 {
5806 var818 = ((val*(*)(val* self))(var800->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var800); /* native_to_s on <var800:NativeArray[String]>*/
5807 }
5808 varonce799 = var800;
5809 {
5810 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var818); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
5811 }
5812 if (var_is_dead){
5813 if (unlikely(varonce819==NULL)) {
5814 var820 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5815 if (likely(varonce821!=NULL)) {
5816 var822 = varonce821;
5817 } else {
5818 var823 = " is DEAD";
5819 var825 = (val*)(8l<<2|1);
5820 var826 = (val*)(8l<<2|1);
5821 var827 = (val*)((long)(0)<<2|3);
5822 var828 = (val*)((long)(0)<<2|3);
5823 var824 = core__flat___CString___to_s_unsafe(var823, var825, var826, var827, var828);
5824 var822 = var824;
5825 varonce821 = var822;
5826 }
5827 ((struct instance_core__NativeArray*)var820)->values[1]=var822;
5828 } else {
5829 var820 = varonce819;
5830 varonce819 = NULL;
5831 }
5832 {
5833 var829 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclass); /* to_s on <var_mclass:MClass>*/
5834 }
5835 ((struct instance_core__NativeArray*)var820)->values[0]=var829;
5836 {
5837 var830 = ((val*(*)(val* self))(var820->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var820); /* native_to_s on <var820:NativeArray[String]>*/
5838 }
5839 varonce819 = var820;
5840 {
5841 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var830); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:SeparateCompilerVisitor>*/
5842 }
5843 } else {
5844 if (likely(varonce831!=NULL)) {
5845 var832 = varonce831;
5846 } else {
5847 var833 = "self";
5848 var835 = (val*)(4l<<2|1);
5849 var836 = (val*)(4l<<2|1);
5850 var837 = (val*)((long)(0)<<2|3);
5851 var838 = (val*)((long)(0)<<2|3);
5852 var834 = core__flat___CString___to_s_unsafe(var833, var835, var836, var837, var838);
5853 var832 = var834;
5854 varonce831 = var832;
5855 }
5856 {
5857 var839 = nitc___nitc__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var832);
5858 }
5859 var_res = var839;
5860 {
5861 { /* Inline abstract_compiler$RuntimeVariable$is_exact= (var_res,1) on <var_res:RuntimeVariable> */
5862 var_res->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact].s = 1; /* _is_exact on <var_res:RuntimeVariable> */
5863 RET_LABEL840:(void)0;
5864 }
5865 }
5866 if (unlikely(varonce841==NULL)) {
5867 var842 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5868 if (likely(varonce843!=NULL)) {
5869 var844 = varonce843;
5870 } else {
5871 var845 = "sizeof(struct instance_";
5872 var847 = (val*)(23l<<2|1);
5873 var848 = (val*)(23l<<2|1);
5874 var849 = (val*)((long)(0)<<2|3);
5875 var850 = (val*)((long)(0)<<2|3);
5876 var846 = core__flat___CString___to_s_unsafe(var845, var847, var848, var849, var850);
5877 var844 = var846;
5878 varonce843 = var844;
5879 }
5880 ((struct instance_core__NativeArray*)var842)->values[0]=var844;
5881 if (likely(varonce851!=NULL)) {
5882 var852 = varonce851;
5883 } else {
5884 var853 = ")";
5885 var855 = (val*)(1l<<2|1);
5886 var856 = (val*)(1l<<2|1);
5887 var857 = (val*)((long)(0)<<2|3);
5888 var858 = (val*)((long)(0)<<2|3);
5889 var854 = core__flat___CString___to_s_unsafe(var853, var855, var856, var857, var858);
5890 var852 = var854;
5891 varonce851 = var852;
5892 }
5893 ((struct instance_core__NativeArray*)var842)->values[2]=var852;
5894 } else {
5895 var842 = varonce841;
5896 varonce841 = NULL;
5897 }
5898 {
5899 var859 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MClassType>*/
5900 }
5901 ((struct instance_core__NativeArray*)var842)->values[1]=var859;
5902 {
5903 var860 = ((val*(*)(val* self))(var842->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var842); /* native_to_s on <var842:NativeArray[String]>*/
5904 }
5905 varonce841 = var842;
5906 {
5907 var861 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
5908 }
5909 {
5910 var862 = nitc___nitc__AbstractCompilerVisitor___nit_alloc(var_v, var860, var861);
5911 }
5912 var_alloc = var862;
5913 if (unlikely(varonce863==NULL)) {
5914 var864 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
5915 if (likely(varonce865!=NULL)) {
5916 var866 = varonce865;
5917 } else {
5918 var867 = " = ";
5919 var869 = (val*)(3l<<2|1);
5920 var870 = (val*)(3l<<2|1);
5921 var871 = (val*)((long)(0)<<2|3);
5922 var872 = (val*)((long)(0)<<2|3);
5923 var868 = core__flat___CString___to_s_unsafe(var867, var869, var870, var871, var872);
5924 var866 = var868;
5925 varonce865 = var866;
5926 }
5927 ((struct instance_core__NativeArray*)var864)->values[1]=var866;
5928 if (likely(varonce873!=NULL)) {
5929 var874 = varonce873;
5930 } else {
5931 var875 = ";";
5932 var877 = (val*)(1l<<2|1);
5933 var878 = (val*)(1l<<2|1);
5934 var879 = (val*)((long)(0)<<2|3);
5935 var880 = (val*)((long)(0)<<2|3);
5936 var876 = core__flat___CString___to_s_unsafe(var875, var877, var878, var879, var880);
5937 var874 = var876;
5938 varonce873 = var874;
5939 }
5940 ((struct instance_core__NativeArray*)var864)->values[3]=var874;
5941 } else {
5942 var864 = varonce863;
5943 varonce863 = NULL;
5944 }
5945 {
5946 var881 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5947 }
5948 ((struct instance_core__NativeArray*)var864)->values[0]=var881;
5949 ((struct instance_core__NativeArray*)var864)->values[2]=var_alloc;
5950 {
5951 var882 = ((val*(*)(val* self))(var864->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var864); /* native_to_s on <var864:NativeArray[String]>*/
5952 }
5953 varonce863 = var864;
5954 {
5955 nitc___nitc__AbstractCompilerVisitor___add(var_v, var882); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5956 }
5957 if (unlikely(varonce883==NULL)) {
5958 var884 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5959 if (likely(varonce885!=NULL)) {
5960 var886 = varonce885;
5961 } else {
5962 var887 = "->type = type;";
5963 var889 = (val*)(14l<<2|1);
5964 var890 = (val*)(14l<<2|1);
5965 var891 = (val*)((long)(0)<<2|3);
5966 var892 = (val*)((long)(0)<<2|3);
5967 var888 = core__flat___CString___to_s_unsafe(var887, var889, var890, var891, var892);
5968 var886 = var888;
5969 varonce885 = var886;
5970 }
5971 ((struct instance_core__NativeArray*)var884)->values[1]=var886;
5972 } else {
5973 var884 = varonce883;
5974 varonce883 = NULL;
5975 }
5976 {
5977 var893 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
5978 }
5979 ((struct instance_core__NativeArray*)var884)->values[0]=var893;
5980 {
5981 var894 = ((val*(*)(val* self))(var884->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var884); /* native_to_s on <var884:NativeArray[String]>*/
5982 }
5983 varonce883 = var884;
5984 {
5985 nitc___nitc__AbstractCompilerVisitor___add(var_v, var894); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
5986 }
5987 if (likely(varonce895!=NULL)) {
5988 var896 = varonce895;
5989 } else {
5990 var897 = "type";
5991 var899 = (val*)(4l<<2|1);
5992 var900 = (val*)(4l<<2|1);
5993 var901 = (val*)((long)(0)<<2|3);
5994 var902 = (val*)((long)(0)<<2|3);
5995 var898 = core__flat___CString___to_s_unsafe(var897, var899, var900, var901, var902);
5996 var896 = var898;
5997 varonce895 = var896;
5998 }
5999 {
6000 nitc___nitc__SeparateCompiler___hardening_live_type(self, var_v, var896); /* Direct call separate_compiler$SeparateCompiler$hardening_live_type on <self:SeparateCompiler>*/
6001 }
6002 if (unlikely(varonce903==NULL)) {
6003 var904 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6004 if (likely(varonce905!=NULL)) {
6005 var906 = varonce905;
6006 } else {
6007 var907 = "class_";
6008 var909 = (val*)(6l<<2|1);
6009 var910 = (val*)(6l<<2|1);
6010 var911 = (val*)((long)(0)<<2|3);
6011 var912 = (val*)((long)(0)<<2|3);
6012 var908 = core__flat___CString___to_s_unsafe(var907, var909, var910, var911, var912);
6013 var906 = var908;
6014 varonce905 = var906;
6015 }
6016 ((struct instance_core__NativeArray*)var904)->values[0]=var906;
6017 } else {
6018 var904 = varonce903;
6019 varonce903 = NULL;
6020 }
6021 ((struct instance_core__NativeArray*)var904)->values[1]=var_c_name;
6022 {
6023 var913 = ((val*(*)(val* self))(var904->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var904); /* native_to_s on <var904:NativeArray[String]>*/
6024 }
6025 varonce903 = var904;
6026 {
6027 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var913); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
6028 }
6029 if (unlikely(varonce914==NULL)) {
6030 var915 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6031 if (likely(varonce916!=NULL)) {
6032 var917 = varonce916;
6033 } else {
6034 var918 = "->class = &class_";
6035 var920 = (val*)(17l<<2|1);
6036 var921 = (val*)(17l<<2|1);
6037 var922 = (val*)((long)(0)<<2|3);
6038 var923 = (val*)((long)(0)<<2|3);
6039 var919 = core__flat___CString___to_s_unsafe(var918, var920, var921, var922, var923);
6040 var917 = var919;
6041 varonce916 = var917;
6042 }
6043 ((struct instance_core__NativeArray*)var915)->values[1]=var917;
6044 if (likely(varonce924!=NULL)) {
6045 var925 = varonce924;
6046 } else {
6047 var926 = ";";
6048 var928 = (val*)(1l<<2|1);
6049 var929 = (val*)(1l<<2|1);
6050 var930 = (val*)((long)(0)<<2|3);
6051 var931 = (val*)((long)(0)<<2|3);
6052 var927 = core__flat___CString___to_s_unsafe(var926, var928, var929, var930, var931);
6053 var925 = var927;
6054 varonce924 = var925;
6055 }
6056 ((struct instance_core__NativeArray*)var915)->values[3]=var925;
6057 } else {
6058 var915 = varonce914;
6059 varonce914 = NULL;
6060 }
6061 {
6062 var932 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6063 }
6064 ((struct instance_core__NativeArray*)var915)->values[0]=var932;
6065 ((struct instance_core__NativeArray*)var915)->values[2]=var_c_name;
6066 {
6067 var933 = ((val*(*)(val* self))(var915->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var915); /* native_to_s on <var915:NativeArray[String]>*/
6068 }
6069 varonce914 = var915;
6070 {
6071 nitc___nitc__AbstractCompilerVisitor___add(var_v, var933); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6072 }
6073 if (unlikely(varonce934==NULL)) {
6074 var935 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
6075 if (likely(varonce936!=NULL)) {
6076 var937 = varonce936;
6077 } else {
6078 var938 = "((struct instance_";
6079 var940 = (val*)(18l<<2|1);
6080 var941 = (val*)(18l<<2|1);
6081 var942 = (val*)((long)(0)<<2|3);
6082 var943 = (val*)((long)(0)<<2|3);
6083 var939 = core__flat___CString___to_s_unsafe(var938, var940, var941, var942, var943);
6084 var937 = var939;
6085 varonce936 = var937;
6086 }
6087 ((struct instance_core__NativeArray*)var935)->values[0]=var937;
6088 if (likely(varonce944!=NULL)) {
6089 var945 = varonce944;
6090 } else {
6091 var946 = "*)";
6092 var948 = (val*)(2l<<2|1);
6093 var949 = (val*)(2l<<2|1);
6094 var950 = (val*)((long)(0)<<2|3);
6095 var951 = (val*)((long)(0)<<2|3);
6096 var947 = core__flat___CString___to_s_unsafe(var946, var948, var949, var950, var951);
6097 var945 = var947;
6098 varonce944 = var945;
6099 }
6100 ((struct instance_core__NativeArray*)var935)->values[2]=var945;
6101 if (likely(varonce952!=NULL)) {
6102 var953 = varonce952;
6103 } else {
6104 var954 = ")->value = NULL;";
6105 var956 = (val*)(16l<<2|1);
6106 var957 = (val*)(16l<<2|1);
6107 var958 = (val*)((long)(0)<<2|3);
6108 var959 = (val*)((long)(0)<<2|3);
6109 var955 = core__flat___CString___to_s_unsafe(var954, var956, var957, var958, var959);
6110 var953 = var955;
6111 varonce952 = var953;
6112 }
6113 ((struct instance_core__NativeArray*)var935)->values[4]=var953;
6114 } else {
6115 var935 = varonce934;
6116 varonce934 = NULL;
6117 }
6118 {
6119 var960 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(var_mtype); /* c_name on <var_mtype:MClassType>*/
6120 }
6121 ((struct instance_core__NativeArray*)var935)->values[1]=var960;
6122 {
6123 var961 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6124 }
6125 ((struct instance_core__NativeArray*)var935)->values[3]=var961;
6126 {
6127 var962 = ((val*(*)(val* self))(var935->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var935); /* native_to_s on <var935:NativeArray[String]>*/
6128 }
6129 varonce934 = var935;
6130 {
6131 nitc___nitc__AbstractCompilerVisitor___add(var_v, var962); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6132 }
6133 if (unlikely(varonce963==NULL)) {
6134 var964 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6135 if (likely(varonce965!=NULL)) {
6136 var966 = varonce965;
6137 } else {
6138 var967 = "return ";
6139 var969 = (val*)(7l<<2|1);
6140 var970 = (val*)(7l<<2|1);
6141 var971 = (val*)((long)(0)<<2|3);
6142 var972 = (val*)((long)(0)<<2|3);
6143 var968 = core__flat___CString___to_s_unsafe(var967, var969, var970, var971, var972);
6144 var966 = var968;
6145 varonce965 = var966;
6146 }
6147 ((struct instance_core__NativeArray*)var964)->values[0]=var966;
6148 if (likely(varonce973!=NULL)) {
6149 var974 = varonce973;
6150 } else {
6151 var975 = ";";
6152 var977 = (val*)(1l<<2|1);
6153 var978 = (val*)(1l<<2|1);
6154 var979 = (val*)((long)(0)<<2|3);
6155 var980 = (val*)((long)(0)<<2|3);
6156 var976 = core__flat___CString___to_s_unsafe(var975, var977, var978, var979, var980);
6157 var974 = var976;
6158 varonce973 = var974;
6159 }
6160 ((struct instance_core__NativeArray*)var964)->values[2]=var974;
6161 } else {
6162 var964 = varonce963;
6163 varonce963 = NULL;
6164 }
6165 {
6166 var981 = ((val*(*)(val* self))(var_res->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res); /* to_s on <var_res:RuntimeVariable>*/
6167 }
6168 ((struct instance_core__NativeArray*)var964)->values[1]=var981;
6169 {
6170 var982 = ((val*(*)(val* self))(var964->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var964); /* native_to_s on <var964:NativeArray[String]>*/
6171 }
6172 varonce963 = var964;
6173 {
6174 nitc___nitc__AbstractCompilerVisitor___add(var_v, var982); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6175 }
6176 }
6177 if (likely(varonce983!=NULL)) {
6178 var984 = varonce983;
6179 } else {
6180 var985 = "}";
6181 var987 = (val*)(1l<<2|1);
6182 var988 = (val*)(1l<<2|1);
6183 var989 = (val*)((long)(0)<<2|3);
6184 var990 = (val*)((long)(0)<<2|3);
6185 var986 = core__flat___CString___to_s_unsafe(var985, var987, var988, var989, var990);
6186 var984 = var986;
6187 varonce983 = var984;
6188 }
6189 {
6190 nitc___nitc__AbstractCompilerVisitor___add(var_v, var984); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6191 }
6192 goto RET_LABEL;
6193 } else {
6194 {
6195 { /* Inline model$MClass$name (var_mclass) on <var_mclass:MClass> */
6196 var993 = var_mclass->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_mclass:MClass> */
6197 if (unlikely(var993 == NULL)) {
6198 if(catchStack.cursor >= 0){
6199 longjmp(catchStack.envs[catchStack.cursor], 1);
6200 }
6201 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
6202 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
6203 fatal_exit(1);
6204 }
6205 var991 = var993;
6206 RET_LABEL992:(void)0;
6207 }
6208 }
6209 if (likely(varonce994!=NULL)) {
6210 var995 = varonce994;
6211 } else {
6212 var996 = "NativeArray";
6213 var998 = (val*)(11l<<2|1);
6214 var999 = (val*)(11l<<2|1);
6215 var1000 = (val*)((long)(0)<<2|3);
6216 var1001 = (val*)((long)(0)<<2|3);
6217 var997 = core__flat___CString___to_s_unsafe(var996, var998, var999, var1000, var1001);
6218 var995 = var997;
6219 varonce994 = var995;
6220 }
6221 {
6222 var1002 = ((short int(*)(val* self, val* p0))(var991->class->vft[COLOR_core__kernel__Object___61d_61d]))(var991, var995); /* == on <var991:String>*/
6223 }
6224 if (var1002){
6225 {
6226 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
6227 var1005 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
6228 if (unlikely(var1005 == NULL)) {
6229 if(catchStack.cursor >= 0){
6230 longjmp(catchStack.envs[catchStack.cursor], 1);
6231 }
6232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6233 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
6234 fatal_exit(1);
6235 }
6236 var1003 = var1005;
6237 RET_LABEL1004:(void)0;
6238 }
6239 }
6240 if (unlikely(varonce1006==NULL)) {
6241 var1007 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6242 if (likely(varonce1008!=NULL)) {
6243 var1009 = varonce1008;
6244 } else {
6245 var1010 = "struct instance_";
6246 var1012 = (val*)(16l<<2|1);
6247 var1013 = (val*)(16l<<2|1);
6248 var1014 = (val*)((long)(0)<<2|3);
6249 var1015 = (val*)((long)(0)<<2|3);
6250 var1011 = core__flat___CString___to_s_unsafe(var1010, var1012, var1013, var1014, var1015);
6251 var1009 = var1011;
6252 varonce1008 = var1009;
6253 }
6254 ((struct instance_core__NativeArray*)var1007)->values[0]=var1009;
6255 if (likely(varonce1016!=NULL)) {
6256 var1017 = varonce1016;
6257 } else {
6258 var1018 = " {";
6259 var1020 = (val*)(2l<<2|1);
6260 var1021 = (val*)(2l<<2|1);
6261 var1022 = (val*)((long)(0)<<2|3);
6262 var1023 = (val*)((long)(0)<<2|3);
6263 var1019 = core__flat___CString___to_s_unsafe(var1018, var1020, var1021, var1022, var1023);
6264 var1017 = var1019;
6265 varonce1016 = var1017;
6266 }
6267 ((struct instance_core__NativeArray*)var1007)->values[2]=var1017;
6268 } else {
6269 var1007 = varonce1006;
6270 varonce1006 = NULL;
6271 }
6272 ((struct instance_core__NativeArray*)var1007)->values[1]=var_c_name;
6273 {
6274 var1024 = ((val*(*)(val* self))(var1007->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1007); /* native_to_s on <var1007:NativeArray[String]>*/
6275 }
6276 varonce1006 = var1007;
6277 {
6278 nitc___nitc__CodeWriter___add_decl(var1003, var1024); /* Direct call abstract_compiler$CodeWriter$add_decl on <var1003:CodeWriter>*/
6279 }
6280 {
6281 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
6282 var1027 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
6283 if (unlikely(var1027 == NULL)) {
6284 if(catchStack.cursor >= 0){
6285 longjmp(catchStack.envs[catchStack.cursor], 1);
6286 }
6287 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6288 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
6289 fatal_exit(1);
6290 }
6291 var1025 = var1027;
6292 RET_LABEL1026:(void)0;
6293 }
6294 }
6295 if (likely(varonce1028!=NULL)) {
6296 var1029 = varonce1028;
6297 } else {
6298 var1030 = "const struct type *type;";
6299 var1032 = (val*)(24l<<2|1);
6300 var1033 = (val*)(24l<<2|1);
6301 var1034 = (val*)((long)(0)<<2|3);
6302 var1035 = (val*)((long)(0)<<2|3);
6303 var1031 = core__flat___CString___to_s_unsafe(var1030, var1032, var1033, var1034, var1035);
6304 var1029 = var1031;
6305 varonce1028 = var1029;
6306 }
6307 {
6308 nitc___nitc__CodeWriter___add_decl(var1025, var1029); /* Direct call abstract_compiler$CodeWriter$add_decl on <var1025:CodeWriter>*/
6309 }
6310 {
6311 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
6312 var1038 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
6313 if (unlikely(var1038 == NULL)) {
6314 if(catchStack.cursor >= 0){
6315 longjmp(catchStack.envs[catchStack.cursor], 1);
6316 }
6317 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6318 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
6319 fatal_exit(1);
6320 }
6321 var1036 = var1038;
6322 RET_LABEL1037:(void)0;
6323 }
6324 }
6325 if (likely(varonce1039!=NULL)) {
6326 var1040 = varonce1039;
6327 } else {
6328 var1041 = "const struct class *class;";
6329 var1043 = (val*)(26l<<2|1);
6330 var1044 = (val*)(26l<<2|1);
6331 var1045 = (val*)((long)(0)<<2|3);
6332 var1046 = (val*)((long)(0)<<2|3);
6333 var1042 = core__flat___CString___to_s_unsafe(var1041, var1043, var1044, var1045, var1046);
6334 var1040 = var1042;
6335 varonce1039 = var1040;
6336 }
6337 {
6338 nitc___nitc__CodeWriter___add_decl(var1036, var1040); /* Direct call abstract_compiler$CodeWriter$add_decl on <var1036:CodeWriter>*/
6339 }
6340 {
6341 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
6342 var1049 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
6343 if (unlikely(var1049 == NULL)) {
6344 if(catchStack.cursor >= 0){
6345 longjmp(catchStack.envs[catchStack.cursor], 1);
6346 }
6347 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6348 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
6349 fatal_exit(1);
6350 }
6351 var1047 = var1049;
6352 RET_LABEL1048:(void)0;
6353 }
6354 }
6355 if (likely(varonce1050!=NULL)) {
6356 var1051 = varonce1050;
6357 } else {
6358 var1052 = "int length;";
6359 var1054 = (val*)(11l<<2|1);
6360 var1055 = (val*)(11l<<2|1);
6361 var1056 = (val*)((long)(0)<<2|3);
6362 var1057 = (val*)((long)(0)<<2|3);
6363 var1053 = core__flat___CString___to_s_unsafe(var1052, var1054, var1055, var1056, var1057);
6364 var1051 = var1053;
6365 varonce1050 = var1051;
6366 }
6367 {
6368 nitc___nitc__CodeWriter___add_decl(var1047, var1051); /* Direct call abstract_compiler$CodeWriter$add_decl on <var1047:CodeWriter>*/
6369 }
6370 {
6371 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
6372 var1060 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
6373 if (unlikely(var1060 == NULL)) {
6374 if(catchStack.cursor >= 0){
6375 longjmp(catchStack.envs[catchStack.cursor], 1);
6376 }
6377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6378 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
6379 fatal_exit(1);
6380 }
6381 var1058 = var1060;
6382 RET_LABEL1059:(void)0;
6383 }
6384 }
6385 if (likely(varonce1061!=NULL)) {
6386 var1062 = varonce1061;
6387 } else {
6388 var1063 = "val* values[0];";
6389 var1065 = (val*)(15l<<2|1);
6390 var1066 = (val*)(15l<<2|1);
6391 var1067 = (val*)((long)(0)<<2|3);
6392 var1068 = (val*)((long)(0)<<2|3);
6393 var1064 = core__flat___CString___to_s_unsafe(var1063, var1065, var1066, var1067, var1068);
6394 var1062 = var1064;
6395 varonce1061 = var1062;
6396 }
6397 {
6398 nitc___nitc__CodeWriter___add_decl(var1058, var1062); /* Direct call abstract_compiler$CodeWriter$add_decl on <var1058:CodeWriter>*/
6399 }
6400 {
6401 { /* Inline abstract_compiler$AbstractCompiler$header (self) on <self:SeparateCompiler> */
6402 var1071 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___header].val; /* _header on <self:SeparateCompiler> */
6403 if (unlikely(var1071 == NULL)) {
6404 if(catchStack.cursor >= 0){
6405 longjmp(catchStack.envs[catchStack.cursor], 1);
6406 }
6407 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _header");
6408 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 599);
6409 fatal_exit(1);
6410 }
6411 var1069 = var1071;
6412 RET_LABEL1070:(void)0;
6413 }
6414 }
6415 if (likely(varonce1072!=NULL)) {
6416 var1073 = varonce1072;
6417 } else {
6418 var1074 = "};";
6419 var1076 = (val*)(2l<<2|1);
6420 var1077 = (val*)(2l<<2|1);
6421 var1078 = (val*)((long)(0)<<2|3);
6422 var1079 = (val*)((long)(0)<<2|3);
6423 var1075 = core__flat___CString___to_s_unsafe(var1074, var1076, var1077, var1078, var1079);
6424 var1073 = var1075;
6425 varonce1072 = var1073;
6426 }
6427 {
6428 nitc___nitc__CodeWriter___add_decl(var1069, var1073); /* Direct call abstract_compiler$CodeWriter$add_decl on <var1069:CodeWriter>*/
6429 }
6430 if (unlikely(varonce1080==NULL)) {
6431 var1081 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6432 if (likely(varonce1082!=NULL)) {
6433 var1083 = varonce1082;
6434 } else {
6435 var1084 = "NEW_";
6436 var1086 = (val*)(4l<<2|1);
6437 var1087 = (val*)(4l<<2|1);
6438 var1088 = (val*)((long)(0)<<2|3);
6439 var1089 = (val*)((long)(0)<<2|3);
6440 var1085 = core__flat___CString___to_s_unsafe(var1084, var1086, var1087, var1088, var1089);
6441 var1083 = var1085;
6442 varonce1082 = var1083;
6443 }
6444 ((struct instance_core__NativeArray*)var1081)->values[0]=var1083;
6445 } else {
6446 var1081 = varonce1080;
6447 varonce1080 = NULL;
6448 }
6449 ((struct instance_core__NativeArray*)var1081)->values[1]=var_c_name;
6450 {
6451 var1090 = ((val*(*)(val* self))(var1081->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1081); /* native_to_s on <var1081:NativeArray[String]>*/
6452 }
6453 varonce1080 = var1081;
6454 if (unlikely(varonce1091==NULL)) {
6455 var1092 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6456 if (likely(varonce1093!=NULL)) {
6457 var1094 = varonce1093;
6458 } else {
6459 var1095 = " NEW_";
6460 var1097 = (val*)(5l<<2|1);
6461 var1098 = (val*)(5l<<2|1);
6462 var1099 = (val*)((long)(0)<<2|3);
6463 var1100 = (val*)((long)(0)<<2|3);
6464 var1096 = core__flat___CString___to_s_unsafe(var1095, var1097, var1098, var1099, var1100);
6465 var1094 = var1096;
6466 varonce1093 = var1094;
6467 }
6468 ((struct instance_core__NativeArray*)var1092)->values[1]=var1094;
6469 if (likely(varonce1101!=NULL)) {
6470 var1102 = varonce1101;
6471 } else {
6472 var1103 = "(int length, const struct type* type);";
6473 var1105 = (val*)(38l<<2|1);
6474 var1106 = (val*)(38l<<2|1);
6475 var1107 = (val*)((long)(0)<<2|3);
6476 var1108 = (val*)((long)(0)<<2|3);
6477 var1104 = core__flat___CString___to_s_unsafe(var1103, var1105, var1106, var1107, var1108);
6478 var1102 = var1104;
6479 varonce1101 = var1102;
6480 }
6481 ((struct instance_core__NativeArray*)var1092)->values[3]=var1102;
6482 } else {
6483 var1092 = varonce1091;
6484 varonce1091 = NULL;
6485 }
6486 {
6487 var1109 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
6488 }
6489 ((struct instance_core__NativeArray*)var1092)->values[0]=var1109;
6490 ((struct instance_core__NativeArray*)var1092)->values[2]=var_c_name;
6491 {
6492 var1110 = ((val*(*)(val* self))(var1092->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1092); /* native_to_s on <var1092:NativeArray[String]>*/
6493 }
6494 varonce1091 = var1092;
6495 {
6496 nitc___nitc__AbstractCompiler___provide_declaration(self, var1090, var1110); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
6497 }
6498 if (unlikely(varonce1111==NULL)) {
6499 var1112 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6500 if (likely(varonce1113!=NULL)) {
6501 var1114 = varonce1113;
6502 } else {
6503 var1115 = "/* allocate ";
6504 var1117 = (val*)(12l<<2|1);
6505 var1118 = (val*)(12l<<2|1);
6506 var1119 = (val*)((long)(0)<<2|3);
6507 var1120 = (val*)((long)(0)<<2|3);
6508 var1116 = core__flat___CString___to_s_unsafe(var1115, var1117, var1118, var1119, var1120);
6509 var1114 = var1116;
6510 varonce1113 = var1114;
6511 }
6512 ((struct instance_core__NativeArray*)var1112)->values[0]=var1114;
6513 if (likely(varonce1121!=NULL)) {
6514 var1122 = varonce1121;
6515 } else {
6516 var1123 = " */";
6517 var1125 = (val*)(3l<<2|1);
6518 var1126 = (val*)(3l<<2|1);
6519 var1127 = (val*)((long)(0)<<2|3);
6520 var1128 = (val*)((long)(0)<<2|3);
6521 var1124 = core__flat___CString___to_s_unsafe(var1123, var1125, var1126, var1127, var1128);
6522 var1122 = var1124;
6523 varonce1121 = var1122;
6524 }
6525 ((struct instance_core__NativeArray*)var1112)->values[2]=var1122;
6526 } else {
6527 var1112 = varonce1111;
6528 varonce1111 = NULL;
6529 }
6530 {
6531 var1129 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MClassType>*/
6532 }
6533 ((struct instance_core__NativeArray*)var1112)->values[1]=var1129;
6534 {
6535 var1130 = ((val*(*)(val* self))(var1112->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1112); /* native_to_s on <var1112:NativeArray[String]>*/
6536 }
6537 varonce1111 = var1112;
6538 {
6539 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var1130); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
6540 }
6541 if (unlikely(varonce1131==NULL)) {
6542 var1132 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6543 if (likely(varonce1133!=NULL)) {
6544 var1134 = varonce1133;
6545 } else {
6546 var1135 = " NEW_";
6547 var1137 = (val*)(5l<<2|1);
6548 var1138 = (val*)(5l<<2|1);
6549 var1139 = (val*)((long)(0)<<2|3);
6550 var1140 = (val*)((long)(0)<<2|3);
6551 var1136 = core__flat___CString___to_s_unsafe(var1135, var1137, var1138, var1139, var1140);
6552 var1134 = var1136;
6553 varonce1133 = var1134;
6554 }
6555 ((struct instance_core__NativeArray*)var1132)->values[1]=var1134;
6556 if (likely(varonce1141!=NULL)) {
6557 var1142 = varonce1141;
6558 } else {
6559 var1143 = "(int length, const struct type* type) {";
6560 var1145 = (val*)(39l<<2|1);
6561 var1146 = (val*)(39l<<2|1);
6562 var1147 = (val*)((long)(0)<<2|3);
6563 var1148 = (val*)((long)(0)<<2|3);
6564 var1144 = core__flat___CString___to_s_unsafe(var1143, var1145, var1146, var1147, var1148);
6565 var1142 = var1144;
6566 varonce1141 = var1142;
6567 }
6568 ((struct instance_core__NativeArray*)var1132)->values[3]=var1142;
6569 } else {
6570 var1132 = varonce1131;
6571 varonce1131 = NULL;
6572 }
6573 {
6574 var1149 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
6575 }
6576 ((struct instance_core__NativeArray*)var1132)->values[0]=var1149;
6577 ((struct instance_core__NativeArray*)var1132)->values[2]=var_c_name;
6578 {
6579 var1150 = ((val*(*)(val* self))(var1132->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1132); /* native_to_s on <var1132:NativeArray[String]>*/
6580 }
6581 varonce1131 = var1132;
6582 {
6583 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var1150); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
6584 }
6585 if (likely(varonce1151!=NULL)) {
6586 var1152 = varonce1151;
6587 } else {
6588 var1153 = "self";
6589 var1155 = (val*)(4l<<2|1);
6590 var1156 = (val*)(4l<<2|1);
6591 var1157 = (val*)((long)(0)<<2|3);
6592 var1158 = (val*)((long)(0)<<2|3);
6593 var1154 = core__flat___CString___to_s_unsafe(var1153, var1155, var1156, var1157, var1158);
6594 var1152 = var1154;
6595 varonce1151 = var1152;
6596 }
6597 {
6598 var1159 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var1152);
6599 }
6600 var_res1160 = var1159;
6601 if (unlikely(varonce1161==NULL)) {
6602 var1162 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
6603 if (likely(varonce1163!=NULL)) {
6604 var1164 = varonce1163;
6605 } else {
6606 var1165 = "struct instance_";
6607 var1167 = (val*)(16l<<2|1);
6608 var1168 = (val*)(16l<<2|1);
6609 var1169 = (val*)((long)(0)<<2|3);
6610 var1170 = (val*)((long)(0)<<2|3);
6611 var1166 = core__flat___CString___to_s_unsafe(var1165, var1167, var1168, var1169, var1170);
6612 var1164 = var1166;
6613 varonce1163 = var1164;
6614 }
6615 ((struct instance_core__NativeArray*)var1162)->values[0]=var1164;
6616 if (likely(varonce1171!=NULL)) {
6617 var1172 = varonce1171;
6618 } else {
6619 var1173 = " *";
6620 var1175 = (val*)(2l<<2|1);
6621 var1176 = (val*)(2l<<2|1);
6622 var1177 = (val*)((long)(0)<<2|3);
6623 var1178 = (val*)((long)(0)<<2|3);
6624 var1174 = core__flat___CString___to_s_unsafe(var1173, var1175, var1176, var1177, var1178);
6625 var1172 = var1174;
6626 varonce1171 = var1172;
6627 }
6628 ((struct instance_core__NativeArray*)var1162)->values[2]=var1172;
6629 if (likely(varonce1179!=NULL)) {
6630 var1180 = varonce1179;
6631 } else {
6632 var1181 = ";";
6633 var1183 = (val*)(1l<<2|1);
6634 var1184 = (val*)(1l<<2|1);
6635 var1185 = (val*)((long)(0)<<2|3);
6636 var1186 = (val*)((long)(0)<<2|3);
6637 var1182 = core__flat___CString___to_s_unsafe(var1181, var1183, var1184, var1185, var1186);
6638 var1180 = var1182;
6639 varonce1179 = var1180;
6640 }
6641 ((struct instance_core__NativeArray*)var1162)->values[4]=var1180;
6642 } else {
6643 var1162 = varonce1161;
6644 varonce1161 = NULL;
6645 }
6646 ((struct instance_core__NativeArray*)var1162)->values[1]=var_c_name;
6647 ((struct instance_core__NativeArray*)var1162)->values[3]=var_res1160;
6648 {
6649 var1187 = ((val*(*)(val* self))(var1162->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1162); /* native_to_s on <var1162:NativeArray[String]>*/
6650 }
6651 varonce1161 = var1162;
6652 {
6653 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var1187); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
6654 }
6655 {
6656 var1188 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_mtype); /* arguments on <var_mtype:MClassType>*/
6657 }
6658 {
6659 var1189 = core___core__SequenceRead___Collection__first(var1188);
6660 }
6661 var_mtype_elt = var1189;
6662 if (unlikely(varonce1190==NULL)) {
6663 var1191 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
6664 if (likely(varonce1192!=NULL)) {
6665 var1193 = varonce1192;
6666 } else {
6667 var1194 = "sizeof(struct instance_";
6668 var1196 = (val*)(23l<<2|1);
6669 var1197 = (val*)(23l<<2|1);
6670 var1198 = (val*)((long)(0)<<2|3);
6671 var1199 = (val*)((long)(0)<<2|3);
6672 var1195 = core__flat___CString___to_s_unsafe(var1194, var1196, var1197, var1198, var1199);
6673 var1193 = var1195;
6674 varonce1192 = var1193;
6675 }
6676 ((struct instance_core__NativeArray*)var1191)->values[0]=var1193;
6677 if (likely(varonce1200!=NULL)) {
6678 var1201 = varonce1200;
6679 } else {
6680 var1202 = ") + length*sizeof(";
6681 var1204 = (val*)(18l<<2|1);
6682 var1205 = (val*)(18l<<2|1);
6683 var1206 = (val*)((long)(0)<<2|3);
6684 var1207 = (val*)((long)(0)<<2|3);
6685 var1203 = core__flat___CString___to_s_unsafe(var1202, var1204, var1205, var1206, var1207);
6686 var1201 = var1203;
6687 varonce1200 = var1201;
6688 }
6689 ((struct instance_core__NativeArray*)var1191)->values[2]=var1201;
6690 if (likely(varonce1208!=NULL)) {
6691 var1209 = varonce1208;
6692 } else {
6693 var1210 = ")";
6694 var1212 = (val*)(1l<<2|1);
6695 var1213 = (val*)(1l<<2|1);
6696 var1214 = (val*)((long)(0)<<2|3);
6697 var1215 = (val*)((long)(0)<<2|3);
6698 var1211 = core__flat___CString___to_s_unsafe(var1210, var1212, var1213, var1214, var1215);
6699 var1209 = var1211;
6700 varonce1208 = var1209;
6701 }
6702 ((struct instance_core__NativeArray*)var1191)->values[4]=var1209;
6703 } else {
6704 var1191 = varonce1190;
6705 varonce1190 = NULL;
6706 }
6707 ((struct instance_core__NativeArray*)var1191)->values[1]=var_c_name;
6708 {
6709 var1216 = ((val*(*)(val* self))(var_mtype_elt->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_mtype_elt); /* ctype on <var_mtype_elt:MType>*/
6710 }
6711 ((struct instance_core__NativeArray*)var1191)->values[3]=var1216;
6712 {
6713 var1217 = ((val*(*)(val* self))(var1191->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1191); /* native_to_s on <var1191:NativeArray[String]>*/
6714 }
6715 varonce1190 = var1191;
6716 {
6717 var1218 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
6718 }
6719 {
6720 var1219 = nitc___nitc__AbstractCompilerVisitor___nit_alloc(var_v, var1217, var1218);
6721 }
6722 var_alloc1220 = var1219;
6723 if (unlikely(varonce1221==NULL)) {
6724 var1222 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6725 if (likely(varonce1223!=NULL)) {
6726 var1224 = varonce1223;
6727 } else {
6728 var1225 = " = ";
6729 var1227 = (val*)(3l<<2|1);
6730 var1228 = (val*)(3l<<2|1);
6731 var1229 = (val*)((long)(0)<<2|3);
6732 var1230 = (val*)((long)(0)<<2|3);
6733 var1226 = core__flat___CString___to_s_unsafe(var1225, var1227, var1228, var1229, var1230);
6734 var1224 = var1226;
6735 varonce1223 = var1224;
6736 }
6737 ((struct instance_core__NativeArray*)var1222)->values[1]=var1224;
6738 if (likely(varonce1231!=NULL)) {
6739 var1232 = varonce1231;
6740 } else {
6741 var1233 = ";";
6742 var1235 = (val*)(1l<<2|1);
6743 var1236 = (val*)(1l<<2|1);
6744 var1237 = (val*)((long)(0)<<2|3);
6745 var1238 = (val*)((long)(0)<<2|3);
6746 var1234 = core__flat___CString___to_s_unsafe(var1233, var1235, var1236, var1237, var1238);
6747 var1232 = var1234;
6748 varonce1231 = var1232;
6749 }
6750 ((struct instance_core__NativeArray*)var1222)->values[3]=var1232;
6751 } else {
6752 var1222 = varonce1221;
6753 varonce1221 = NULL;
6754 }
6755 ((struct instance_core__NativeArray*)var1222)->values[0]=var_res1160;
6756 ((struct instance_core__NativeArray*)var1222)->values[2]=var_alloc1220;
6757 {
6758 var1239 = ((val*(*)(val* self))(var1222->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1222); /* native_to_s on <var1222:NativeArray[String]>*/
6759 }
6760 varonce1221 = var1222;
6761 {
6762 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1239); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6763 }
6764 if (unlikely(varonce1240==NULL)) {
6765 var1241 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6766 if (likely(varonce1242!=NULL)) {
6767 var1243 = varonce1242;
6768 } else {
6769 var1244 = "->type = type;";
6770 var1246 = (val*)(14l<<2|1);
6771 var1247 = (val*)(14l<<2|1);
6772 var1248 = (val*)((long)(0)<<2|3);
6773 var1249 = (val*)((long)(0)<<2|3);
6774 var1245 = core__flat___CString___to_s_unsafe(var1244, var1246, var1247, var1248, var1249);
6775 var1243 = var1245;
6776 varonce1242 = var1243;
6777 }
6778 ((struct instance_core__NativeArray*)var1241)->values[1]=var1243;
6779 } else {
6780 var1241 = varonce1240;
6781 varonce1240 = NULL;
6782 }
6783 ((struct instance_core__NativeArray*)var1241)->values[0]=var_res1160;
6784 {
6785 var1250 = ((val*(*)(val* self))(var1241->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1241); /* native_to_s on <var1241:NativeArray[String]>*/
6786 }
6787 varonce1240 = var1241;
6788 {
6789 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1250); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6790 }
6791 if (likely(varonce1251!=NULL)) {
6792 var1252 = varonce1251;
6793 } else {
6794 var1253 = "type";
6795 var1255 = (val*)(4l<<2|1);
6796 var1256 = (val*)(4l<<2|1);
6797 var1257 = (val*)((long)(0)<<2|3);
6798 var1258 = (val*)((long)(0)<<2|3);
6799 var1254 = core__flat___CString___to_s_unsafe(var1253, var1255, var1256, var1257, var1258);
6800 var1252 = var1254;
6801 varonce1251 = var1252;
6802 }
6803 {
6804 nitc___nitc__SeparateCompiler___hardening_live_type(self, var_v, var1252); /* Direct call separate_compiler$SeparateCompiler$hardening_live_type on <self:SeparateCompiler>*/
6805 }
6806 if (unlikely(varonce1259==NULL)) {
6807 var1260 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6808 if (likely(varonce1261!=NULL)) {
6809 var1262 = varonce1261;
6810 } else {
6811 var1263 = "class_";
6812 var1265 = (val*)(6l<<2|1);
6813 var1266 = (val*)(6l<<2|1);
6814 var1267 = (val*)((long)(0)<<2|3);
6815 var1268 = (val*)((long)(0)<<2|3);
6816 var1264 = core__flat___CString___to_s_unsafe(var1263, var1265, var1266, var1267, var1268);
6817 var1262 = var1264;
6818 varonce1261 = var1262;
6819 }
6820 ((struct instance_core__NativeArray*)var1260)->values[0]=var1262;
6821 } else {
6822 var1260 = varonce1259;
6823 varonce1259 = NULL;
6824 }
6825 ((struct instance_core__NativeArray*)var1260)->values[1]=var_c_name;
6826 {
6827 var1269 = ((val*(*)(val* self))(var1260->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1260); /* native_to_s on <var1260:NativeArray[String]>*/
6828 }
6829 varonce1259 = var1260;
6830 {
6831 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var1269); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
6832 }
6833 if (unlikely(varonce1270==NULL)) {
6834 var1271 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
6835 if (likely(varonce1272!=NULL)) {
6836 var1273 = varonce1272;
6837 } else {
6838 var1274 = "->class = &class_";
6839 var1276 = (val*)(17l<<2|1);
6840 var1277 = (val*)(17l<<2|1);
6841 var1278 = (val*)((long)(0)<<2|3);
6842 var1279 = (val*)((long)(0)<<2|3);
6843 var1275 = core__flat___CString___to_s_unsafe(var1274, var1276, var1277, var1278, var1279);
6844 var1273 = var1275;
6845 varonce1272 = var1273;
6846 }
6847 ((struct instance_core__NativeArray*)var1271)->values[1]=var1273;
6848 if (likely(varonce1280!=NULL)) {
6849 var1281 = varonce1280;
6850 } else {
6851 var1282 = ";";
6852 var1284 = (val*)(1l<<2|1);
6853 var1285 = (val*)(1l<<2|1);
6854 var1286 = (val*)((long)(0)<<2|3);
6855 var1287 = (val*)((long)(0)<<2|3);
6856 var1283 = core__flat___CString___to_s_unsafe(var1282, var1284, var1285, var1286, var1287);
6857 var1281 = var1283;
6858 varonce1280 = var1281;
6859 }
6860 ((struct instance_core__NativeArray*)var1271)->values[3]=var1281;
6861 } else {
6862 var1271 = varonce1270;
6863 varonce1270 = NULL;
6864 }
6865 ((struct instance_core__NativeArray*)var1271)->values[0]=var_res1160;
6866 ((struct instance_core__NativeArray*)var1271)->values[2]=var_c_name;
6867 {
6868 var1288 = ((val*(*)(val* self))(var1271->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1271); /* native_to_s on <var1271:NativeArray[String]>*/
6869 }
6870 varonce1270 = var1271;
6871 {
6872 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1288); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6873 }
6874 if (unlikely(varonce1289==NULL)) {
6875 var1290 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6876 if (likely(varonce1291!=NULL)) {
6877 var1292 = varonce1291;
6878 } else {
6879 var1293 = "->length = length;";
6880 var1295 = (val*)(18l<<2|1);
6881 var1296 = (val*)(18l<<2|1);
6882 var1297 = (val*)((long)(0)<<2|3);
6883 var1298 = (val*)((long)(0)<<2|3);
6884 var1294 = core__flat___CString___to_s_unsafe(var1293, var1295, var1296, var1297, var1298);
6885 var1292 = var1294;
6886 varonce1291 = var1292;
6887 }
6888 ((struct instance_core__NativeArray*)var1290)->values[1]=var1292;
6889 } else {
6890 var1290 = varonce1289;
6891 varonce1289 = NULL;
6892 }
6893 ((struct instance_core__NativeArray*)var1290)->values[0]=var_res1160;
6894 {
6895 var1299 = ((val*(*)(val* self))(var1290->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1290); /* native_to_s on <var1290:NativeArray[String]>*/
6896 }
6897 varonce1289 = var1290;
6898 {
6899 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1299); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6900 }
6901 if (unlikely(varonce1300==NULL)) {
6902 var1301 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
6903 if (likely(varonce1302!=NULL)) {
6904 var1303 = varonce1302;
6905 } else {
6906 var1304 = "return (val*)";
6907 var1306 = (val*)(13l<<2|1);
6908 var1307 = (val*)(13l<<2|1);
6909 var1308 = (val*)((long)(0)<<2|3);
6910 var1309 = (val*)((long)(0)<<2|3);
6911 var1305 = core__flat___CString___to_s_unsafe(var1304, var1306, var1307, var1308, var1309);
6912 var1303 = var1305;
6913 varonce1302 = var1303;
6914 }
6915 ((struct instance_core__NativeArray*)var1301)->values[0]=var1303;
6916 if (likely(varonce1310!=NULL)) {
6917 var1311 = varonce1310;
6918 } else {
6919 var1312 = ";";
6920 var1314 = (val*)(1l<<2|1);
6921 var1315 = (val*)(1l<<2|1);
6922 var1316 = (val*)((long)(0)<<2|3);
6923 var1317 = (val*)((long)(0)<<2|3);
6924 var1313 = core__flat___CString___to_s_unsafe(var1312, var1314, var1315, var1316, var1317);
6925 var1311 = var1313;
6926 varonce1310 = var1311;
6927 }
6928 ((struct instance_core__NativeArray*)var1301)->values[2]=var1311;
6929 } else {
6930 var1301 = varonce1300;
6931 varonce1300 = NULL;
6932 }
6933 ((struct instance_core__NativeArray*)var1301)->values[1]=var_res1160;
6934 {
6935 var1318 = ((val*(*)(val* self))(var1301->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1301); /* native_to_s on <var1301:NativeArray[String]>*/
6936 }
6937 varonce1300 = var1301;
6938 {
6939 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1318); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6940 }
6941 if (likely(varonce1319!=NULL)) {
6942 var1320 = varonce1319;
6943 } else {
6944 var1321 = "}";
6945 var1323 = (val*)(1l<<2|1);
6946 var1324 = (val*)(1l<<2|1);
6947 var1325 = (val*)((long)(0)<<2|3);
6948 var1326 = (val*)((long)(0)<<2|3);
6949 var1322 = core__flat___CString___to_s_unsafe(var1321, var1323, var1324, var1325, var1326);
6950 var1320 = var1322;
6951 varonce1319 = var1320;
6952 }
6953 {
6954 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1320); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
6955 }
6956 goto RET_LABEL;
6957 } else {
6958 {
6959 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
6960 var1330 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
6961 if (unlikely(var1330 == NULL)) {
6962 if(catchStack.cursor >= 0){
6963 longjmp(catchStack.envs[catchStack.cursor], 1);
6964 }
6965 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
6966 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
6967 fatal_exit(1);
6968 }
6969 var1328 = var1330;
6970 RET_LABEL1329:(void)0;
6971 }
6972 }
6973 {
6974 { /* Inline model$MClass$kind (var1328) on <var1328:MClass> */
6975 var1333 = var1328->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var1328:MClass> */
6976 if (unlikely(var1333 == NULL)) {
6977 if(catchStack.cursor >= 0){
6978 longjmp(catchStack.envs[catchStack.cursor], 1);
6979 }
6980 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
6981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
6982 fatal_exit(1);
6983 }
6984 var1331 = var1333;
6985 RET_LABEL1332:(void)0;
6986 }
6987 }
6988 var1334 = glob_sys;
6989 {
6990 var1335 = nitc__model___core__Sys___extern_kind(var1334);
6991 }
6992 {
6993 { /* Inline kernel$Object$== (var1331,var1335) on <var1331:MClassKind> */
6994 var_other38 = var1335;
6995 {
6996 { /* Inline kernel$Object$is_same_instance (var1331,var_other38) on <var1331:MClassKind> */
6997 var1340 = var1331 == var_other38;
6998 var1338 = var1340;
6999 goto RET_LABEL1339;
7000 RET_LABEL1339:(void)0;
7001 }
7002 }
7003 var1336 = var1338;
7004 goto RET_LABEL1337;
7005 RET_LABEL1337:(void)0;
7006 }
7007 }
7008 var_1341 = var1336;
7009 if (var1336){
7010 {
7011 { /* Inline model$MClassType$mclass (var_mtype) on <var_mtype:MClassType> */
7012 var1344 = var_mtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_mtype:MClassType> */
7013 if (unlikely(var1344 == NULL)) {
7014 if(catchStack.cursor >= 0){
7015 longjmp(catchStack.envs[catchStack.cursor], 1);
7016 }
7017 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
7018 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
7019 fatal_exit(1);
7020 }
7021 var1342 = var1344;
7022 RET_LABEL1343:(void)0;
7023 }
7024 }
7025 {
7026 { /* Inline model$MClass$name (var1342) on <var1342:MClass> */
7027 var1347 = var1342->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var1342:MClass> */
7028 if (unlikely(var1347 == NULL)) {
7029 if(catchStack.cursor >= 0){
7030 longjmp(catchStack.envs[catchStack.cursor], 1);
7031 }
7032 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
7033 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
7034 fatal_exit(1);
7035 }
7036 var1345 = var1347;
7037 RET_LABEL1346:(void)0;
7038 }
7039 }
7040 if (likely(varonce1348!=NULL)) {
7041 var1349 = varonce1348;
7042 } else {
7043 var1350 = "CString";
7044 var1352 = (val*)(7l<<2|1);
7045 var1353 = (val*)(7l<<2|1);
7046 var1354 = (val*)((long)(0)<<2|3);
7047 var1355 = (val*)((long)(0)<<2|3);
7048 var1351 = core__flat___CString___to_s_unsafe(var1350, var1352, var1353, var1354, var1355);
7049 var1349 = var1351;
7050 varonce1348 = var1349;
7051 }
7052 {
7053 { /* Inline kernel$Object$!= (var1345,var1349) on <var1345:String> */
7054 var_other = var1349;
7055 {
7056 var1358 = ((short int(*)(val* self, val* p0))(var1345->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1345, var_other); /* == on <var1345:String>*/
7057 }
7058 var1359 = !var1358;
7059 var1356 = var1359;
7060 goto RET_LABEL1357;
7061 RET_LABEL1357:(void)0;
7062 }
7063 }
7064 var1327 = var1356;
7065 } else {
7066 var1327 = var_1341;
7067 }
7068 if (var1327){
7069 {
7070 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (self) on <self:SeparateCompiler> */
7071 var1362 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <self:SeparateCompiler> */
7072 if (unlikely(var1362 == NULL)) {
7073 if(catchStack.cursor >= 0){
7074 longjmp(catchStack.envs[catchStack.cursor], 1);
7075 }
7076 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
7077 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
7078 fatal_exit(1);
7079 }
7080 var1360 = var1362;
7081 RET_LABEL1361:(void)0;
7082 }
7083 }
7084 {
7085 var1363 = nitc__model___MModule___pointer_type(var1360);
7086 }
7087 var_pointer_type = var1363;
7088 if (unlikely(varonce1364==NULL)) {
7089 var1365 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7090 if (likely(varonce1366!=NULL)) {
7091 var1367 = varonce1366;
7092 } else {
7093 var1368 = "NEW_";
7094 var1370 = (val*)(4l<<2|1);
7095 var1371 = (val*)(4l<<2|1);
7096 var1372 = (val*)((long)(0)<<2|3);
7097 var1373 = (val*)((long)(0)<<2|3);
7098 var1369 = core__flat___CString___to_s_unsafe(var1368, var1370, var1371, var1372, var1373);
7099 var1367 = var1369;
7100 varonce1366 = var1367;
7101 }
7102 ((struct instance_core__NativeArray*)var1365)->values[0]=var1367;
7103 } else {
7104 var1365 = varonce1364;
7105 varonce1364 = NULL;
7106 }
7107 ((struct instance_core__NativeArray*)var1365)->values[1]=var_c_name;
7108 {
7109 var1374 = ((val*(*)(val* self))(var1365->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1365); /* native_to_s on <var1365:NativeArray[String]>*/
7110 }
7111 varonce1364 = var1365;
7112 if (unlikely(varonce1375==NULL)) {
7113 var1376 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7114 if (likely(varonce1377!=NULL)) {
7115 var1378 = varonce1377;
7116 } else {
7117 var1379 = " NEW_";
7118 var1381 = (val*)(5l<<2|1);
7119 var1382 = (val*)(5l<<2|1);
7120 var1383 = (val*)((long)(0)<<2|3);
7121 var1384 = (val*)((long)(0)<<2|3);
7122 var1380 = core__flat___CString___to_s_unsafe(var1379, var1381, var1382, var1383, var1384);
7123 var1378 = var1380;
7124 varonce1377 = var1378;
7125 }
7126 ((struct instance_core__NativeArray*)var1376)->values[1]=var1378;
7127 if (likely(varonce1385!=NULL)) {
7128 var1386 = varonce1385;
7129 } else {
7130 var1387 = "(const struct type* type);";
7131 var1389 = (val*)(26l<<2|1);
7132 var1390 = (val*)(26l<<2|1);
7133 var1391 = (val*)((long)(0)<<2|3);
7134 var1392 = (val*)((long)(0)<<2|3);
7135 var1388 = core__flat___CString___to_s_unsafe(var1387, var1389, var1390, var1391, var1392);
7136 var1386 = var1388;
7137 varonce1385 = var1386;
7138 }
7139 ((struct instance_core__NativeArray*)var1376)->values[3]=var1386;
7140 } else {
7141 var1376 = varonce1375;
7142 varonce1375 = NULL;
7143 }
7144 {
7145 var1393 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
7146 }
7147 ((struct instance_core__NativeArray*)var1376)->values[0]=var1393;
7148 ((struct instance_core__NativeArray*)var1376)->values[2]=var_c_name;
7149 {
7150 var1394 = ((val*(*)(val* self))(var1376->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1376); /* native_to_s on <var1376:NativeArray[String]>*/
7151 }
7152 varonce1375 = var1376;
7153 {
7154 nitc___nitc__AbstractCompiler___provide_declaration(self, var1374, var1394); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
7155 }
7156 if (unlikely(varonce1395==NULL)) {
7157 var1396 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7158 if (likely(varonce1397!=NULL)) {
7159 var1398 = varonce1397;
7160 } else {
7161 var1399 = "/* allocate extern ";
7162 var1401 = (val*)(19l<<2|1);
7163 var1402 = (val*)(19l<<2|1);
7164 var1403 = (val*)((long)(0)<<2|3);
7165 var1404 = (val*)((long)(0)<<2|3);
7166 var1400 = core__flat___CString___to_s_unsafe(var1399, var1401, var1402, var1403, var1404);
7167 var1398 = var1400;
7168 varonce1397 = var1398;
7169 }
7170 ((struct instance_core__NativeArray*)var1396)->values[0]=var1398;
7171 if (likely(varonce1405!=NULL)) {
7172 var1406 = varonce1405;
7173 } else {
7174 var1407 = " */";
7175 var1409 = (val*)(3l<<2|1);
7176 var1410 = (val*)(3l<<2|1);
7177 var1411 = (val*)((long)(0)<<2|3);
7178 var1412 = (val*)((long)(0)<<2|3);
7179 var1408 = core__flat___CString___to_s_unsafe(var1407, var1409, var1410, var1411, var1412);
7180 var1406 = var1408;
7181 varonce1405 = var1406;
7182 }
7183 ((struct instance_core__NativeArray*)var1396)->values[2]=var1406;
7184 } else {
7185 var1396 = varonce1395;
7186 varonce1395 = NULL;
7187 }
7188 {
7189 var1413 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MClassType>*/
7190 }
7191 ((struct instance_core__NativeArray*)var1396)->values[1]=var1413;
7192 {
7193 var1414 = ((val*(*)(val* self))(var1396->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1396); /* native_to_s on <var1396:NativeArray[String]>*/
7194 }
7195 varonce1395 = var1396;
7196 {
7197 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var1414); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
7198 }
7199 if (unlikely(varonce1415==NULL)) {
7200 var1416 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7201 if (likely(varonce1417!=NULL)) {
7202 var1418 = varonce1417;
7203 } else {
7204 var1419 = " NEW_";
7205 var1421 = (val*)(5l<<2|1);
7206 var1422 = (val*)(5l<<2|1);
7207 var1423 = (val*)((long)(0)<<2|3);
7208 var1424 = (val*)((long)(0)<<2|3);
7209 var1420 = core__flat___CString___to_s_unsafe(var1419, var1421, var1422, var1423, var1424);
7210 var1418 = var1420;
7211 varonce1417 = var1418;
7212 }
7213 ((struct instance_core__NativeArray*)var1416)->values[1]=var1418;
7214 if (likely(varonce1425!=NULL)) {
7215 var1426 = varonce1425;
7216 } else {
7217 var1427 = "(const struct type* type) {";
7218 var1429 = (val*)(27l<<2|1);
7219 var1430 = (val*)(27l<<2|1);
7220 var1431 = (val*)((long)(0)<<2|3);
7221 var1432 = (val*)((long)(0)<<2|3);
7222 var1428 = core__flat___CString___to_s_unsafe(var1427, var1429, var1430, var1431, var1432);
7223 var1426 = var1428;
7224 varonce1425 = var1426;
7225 }
7226 ((struct instance_core__NativeArray*)var1416)->values[3]=var1426;
7227 } else {
7228 var1416 = varonce1415;
7229 varonce1415 = NULL;
7230 }
7231 {
7232 var1433 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
7233 }
7234 ((struct instance_core__NativeArray*)var1416)->values[0]=var1433;
7235 ((struct instance_core__NativeArray*)var1416)->values[2]=var_c_name;
7236 {
7237 var1434 = ((val*(*)(val* self))(var1416->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1416); /* native_to_s on <var1416:NativeArray[String]>*/
7238 }
7239 varonce1415 = var1416;
7240 {
7241 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var1434); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
7242 }
7243 if (var_is_dead){
7244 if (unlikely(varonce1435==NULL)) {
7245 var1436 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7246 if (likely(varonce1437!=NULL)) {
7247 var1438 = varonce1437;
7248 } else {
7249 var1439 = " is DEAD";
7250 var1441 = (val*)(8l<<2|1);
7251 var1442 = (val*)(8l<<2|1);
7252 var1443 = (val*)((long)(0)<<2|3);
7253 var1444 = (val*)((long)(0)<<2|3);
7254 var1440 = core__flat___CString___to_s_unsafe(var1439, var1441, var1442, var1443, var1444);
7255 var1438 = var1440;
7256 varonce1437 = var1438;
7257 }
7258 ((struct instance_core__NativeArray*)var1436)->values[1]=var1438;
7259 } else {
7260 var1436 = varonce1435;
7261 varonce1435 = NULL;
7262 }
7263 {
7264 var1445 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclass); /* to_s on <var_mclass:MClass>*/
7265 }
7266 ((struct instance_core__NativeArray*)var1436)->values[0]=var1445;
7267 {
7268 var1446 = ((val*(*)(val* self))(var1436->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1436); /* native_to_s on <var1436:NativeArray[String]>*/
7269 }
7270 varonce1435 = var1436;
7271 {
7272 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var1446); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:SeparateCompilerVisitor>*/
7273 }
7274 } else {
7275 if (likely(varonce1447!=NULL)) {
7276 var1448 = varonce1447;
7277 } else {
7278 var1449 = "self";
7279 var1451 = (val*)(4l<<2|1);
7280 var1452 = (val*)(4l<<2|1);
7281 var1453 = (val*)((long)(0)<<2|3);
7282 var1454 = (val*)((long)(0)<<2|3);
7283 var1450 = core__flat___CString___to_s_unsafe(var1449, var1451, var1452, var1453, var1454);
7284 var1448 = var1450;
7285 varonce1447 = var1448;
7286 }
7287 {
7288 var1455 = nitc___nitc__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var1448);
7289 }
7290 var_res1456 = var1455;
7291 {
7292 { /* Inline abstract_compiler$RuntimeVariable$is_exact= (var_res1456,1) on <var_res1456:RuntimeVariable> */
7293 var_res1456->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact].s = 1; /* _is_exact on <var_res1456:RuntimeVariable> */
7294 RET_LABEL1457:(void)0;
7295 }
7296 }
7297 if (unlikely(varonce1458==NULL)) {
7298 var1459 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7299 if (likely(varonce1460!=NULL)) {
7300 var1461 = varonce1460;
7301 } else {
7302 var1462 = "sizeof(struct instance_";
7303 var1464 = (val*)(23l<<2|1);
7304 var1465 = (val*)(23l<<2|1);
7305 var1466 = (val*)((long)(0)<<2|3);
7306 var1467 = (val*)((long)(0)<<2|3);
7307 var1463 = core__flat___CString___to_s_unsafe(var1462, var1464, var1465, var1466, var1467);
7308 var1461 = var1463;
7309 varonce1460 = var1461;
7310 }
7311 ((struct instance_core__NativeArray*)var1459)->values[0]=var1461;
7312 if (likely(varonce1468!=NULL)) {
7313 var1469 = varonce1468;
7314 } else {
7315 var1470 = ")";
7316 var1472 = (val*)(1l<<2|1);
7317 var1473 = (val*)(1l<<2|1);
7318 var1474 = (val*)((long)(0)<<2|3);
7319 var1475 = (val*)((long)(0)<<2|3);
7320 var1471 = core__flat___CString___to_s_unsafe(var1470, var1472, var1473, var1474, var1475);
7321 var1469 = var1471;
7322 varonce1468 = var1469;
7323 }
7324 ((struct instance_core__NativeArray*)var1459)->values[2]=var1469;
7325 } else {
7326 var1459 = varonce1458;
7327 varonce1458 = NULL;
7328 }
7329 {
7330 var1476 = ((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>*/
7331 }
7332 ((struct instance_core__NativeArray*)var1459)->values[1]=var1476;
7333 {
7334 var1477 = ((val*(*)(val* self))(var1459->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1459); /* native_to_s on <var1459:NativeArray[String]>*/
7335 }
7336 varonce1458 = var1459;
7337 {
7338 var1478 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
7339 }
7340 {
7341 var1479 = nitc___nitc__AbstractCompilerVisitor___nit_alloc(var_v, var1477, var1478);
7342 }
7343 var_alloc1480 = var1479;
7344 if (unlikely(varonce1481==NULL)) {
7345 var1482 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7346 if (likely(varonce1483!=NULL)) {
7347 var1484 = varonce1483;
7348 } else {
7349 var1485 = " = ";
7350 var1487 = (val*)(3l<<2|1);
7351 var1488 = (val*)(3l<<2|1);
7352 var1489 = (val*)((long)(0)<<2|3);
7353 var1490 = (val*)((long)(0)<<2|3);
7354 var1486 = core__flat___CString___to_s_unsafe(var1485, var1487, var1488, var1489, var1490);
7355 var1484 = var1486;
7356 varonce1483 = var1484;
7357 }
7358 ((struct instance_core__NativeArray*)var1482)->values[1]=var1484;
7359 if (likely(varonce1491!=NULL)) {
7360 var1492 = varonce1491;
7361 } else {
7362 var1493 = ";";
7363 var1495 = (val*)(1l<<2|1);
7364 var1496 = (val*)(1l<<2|1);
7365 var1497 = (val*)((long)(0)<<2|3);
7366 var1498 = (val*)((long)(0)<<2|3);
7367 var1494 = core__flat___CString___to_s_unsafe(var1493, var1495, var1496, var1497, var1498);
7368 var1492 = var1494;
7369 varonce1491 = var1492;
7370 }
7371 ((struct instance_core__NativeArray*)var1482)->values[3]=var1492;
7372 } else {
7373 var1482 = varonce1481;
7374 varonce1481 = NULL;
7375 }
7376 {
7377 var1499 = ((val*(*)(val* self))(var_res1456->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1456); /* to_s on <var_res1456:RuntimeVariable>*/
7378 }
7379 ((struct instance_core__NativeArray*)var1482)->values[0]=var1499;
7380 ((struct instance_core__NativeArray*)var1482)->values[2]=var_alloc1480;
7381 {
7382 var1500 = ((val*(*)(val* self))(var1482->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1482); /* native_to_s on <var1482:NativeArray[String]>*/
7383 }
7384 varonce1481 = var1482;
7385 {
7386 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1500); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
7387 }
7388 if (unlikely(varonce1501==NULL)) {
7389 var1502 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7390 if (likely(varonce1503!=NULL)) {
7391 var1504 = varonce1503;
7392 } else {
7393 var1505 = "->type = type;";
7394 var1507 = (val*)(14l<<2|1);
7395 var1508 = (val*)(14l<<2|1);
7396 var1509 = (val*)((long)(0)<<2|3);
7397 var1510 = (val*)((long)(0)<<2|3);
7398 var1506 = core__flat___CString___to_s_unsafe(var1505, var1507, var1508, var1509, var1510);
7399 var1504 = var1506;
7400 varonce1503 = var1504;
7401 }
7402 ((struct instance_core__NativeArray*)var1502)->values[1]=var1504;
7403 } else {
7404 var1502 = varonce1501;
7405 varonce1501 = NULL;
7406 }
7407 {
7408 var1511 = ((val*(*)(val* self))(var_res1456->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1456); /* to_s on <var_res1456:RuntimeVariable>*/
7409 }
7410 ((struct instance_core__NativeArray*)var1502)->values[0]=var1511;
7411 {
7412 var1512 = ((val*(*)(val* self))(var1502->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1502); /* native_to_s on <var1502:NativeArray[String]>*/
7413 }
7414 varonce1501 = var1502;
7415 {
7416 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1512); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
7417 }
7418 if (likely(varonce1513!=NULL)) {
7419 var1514 = varonce1513;
7420 } else {
7421 var1515 = "type";
7422 var1517 = (val*)(4l<<2|1);
7423 var1518 = (val*)(4l<<2|1);
7424 var1519 = (val*)((long)(0)<<2|3);
7425 var1520 = (val*)((long)(0)<<2|3);
7426 var1516 = core__flat___CString___to_s_unsafe(var1515, var1517, var1518, var1519, var1520);
7427 var1514 = var1516;
7428 varonce1513 = var1514;
7429 }
7430 {
7431 nitc___nitc__SeparateCompiler___hardening_live_type(self, var_v, var1514); /* Direct call separate_compiler$SeparateCompiler$hardening_live_type on <self:SeparateCompiler>*/
7432 }
7433 if (unlikely(varonce1521==NULL)) {
7434 var1522 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7435 if (likely(varonce1523!=NULL)) {
7436 var1524 = varonce1523;
7437 } else {
7438 var1525 = "class_";
7439 var1527 = (val*)(6l<<2|1);
7440 var1528 = (val*)(6l<<2|1);
7441 var1529 = (val*)((long)(0)<<2|3);
7442 var1530 = (val*)((long)(0)<<2|3);
7443 var1526 = core__flat___CString___to_s_unsafe(var1525, var1527, var1528, var1529, var1530);
7444 var1524 = var1526;
7445 varonce1523 = var1524;
7446 }
7447 ((struct instance_core__NativeArray*)var1522)->values[0]=var1524;
7448 } else {
7449 var1522 = varonce1521;
7450 varonce1521 = NULL;
7451 }
7452 ((struct instance_core__NativeArray*)var1522)->values[1]=var_c_name;
7453 {
7454 var1531 = ((val*(*)(val* self))(var1522->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1522); /* native_to_s on <var1522:NativeArray[String]>*/
7455 }
7456 varonce1521 = var1522;
7457 {
7458 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var1531); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
7459 }
7460 if (unlikely(varonce1532==NULL)) {
7461 var1533 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7462 if (likely(varonce1534!=NULL)) {
7463 var1535 = varonce1534;
7464 } else {
7465 var1536 = "->class = &class_";
7466 var1538 = (val*)(17l<<2|1);
7467 var1539 = (val*)(17l<<2|1);
7468 var1540 = (val*)((long)(0)<<2|3);
7469 var1541 = (val*)((long)(0)<<2|3);
7470 var1537 = core__flat___CString___to_s_unsafe(var1536, var1538, var1539, var1540, var1541);
7471 var1535 = var1537;
7472 varonce1534 = var1535;
7473 }
7474 ((struct instance_core__NativeArray*)var1533)->values[1]=var1535;
7475 if (likely(varonce1542!=NULL)) {
7476 var1543 = varonce1542;
7477 } else {
7478 var1544 = ";";
7479 var1546 = (val*)(1l<<2|1);
7480 var1547 = (val*)(1l<<2|1);
7481 var1548 = (val*)((long)(0)<<2|3);
7482 var1549 = (val*)((long)(0)<<2|3);
7483 var1545 = core__flat___CString___to_s_unsafe(var1544, var1546, var1547, var1548, var1549);
7484 var1543 = var1545;
7485 varonce1542 = var1543;
7486 }
7487 ((struct instance_core__NativeArray*)var1533)->values[3]=var1543;
7488 } else {
7489 var1533 = varonce1532;
7490 varonce1532 = NULL;
7491 }
7492 {
7493 var1550 = ((val*(*)(val* self))(var_res1456->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1456); /* to_s on <var_res1456:RuntimeVariable>*/
7494 }
7495 ((struct instance_core__NativeArray*)var1533)->values[0]=var1550;
7496 ((struct instance_core__NativeArray*)var1533)->values[2]=var_c_name;
7497 {
7498 var1551 = ((val*(*)(val* self))(var1533->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1533); /* native_to_s on <var1533:NativeArray[String]>*/
7499 }
7500 varonce1532 = var1533;
7501 {
7502 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1551); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
7503 }
7504 if (unlikely(varonce1552==NULL)) {
7505 var1553 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
7506 if (likely(varonce1554!=NULL)) {
7507 var1555 = varonce1554;
7508 } else {
7509 var1556 = "((struct instance_";
7510 var1558 = (val*)(18l<<2|1);
7511 var1559 = (val*)(18l<<2|1);
7512 var1560 = (val*)((long)(0)<<2|3);
7513 var1561 = (val*)((long)(0)<<2|3);
7514 var1557 = core__flat___CString___to_s_unsafe(var1556, var1558, var1559, var1560, var1561);
7515 var1555 = var1557;
7516 varonce1554 = var1555;
7517 }
7518 ((struct instance_core__NativeArray*)var1553)->values[0]=var1555;
7519 if (likely(varonce1562!=NULL)) {
7520 var1563 = varonce1562;
7521 } else {
7522 var1564 = "*)";
7523 var1566 = (val*)(2l<<2|1);
7524 var1567 = (val*)(2l<<2|1);
7525 var1568 = (val*)((long)(0)<<2|3);
7526 var1569 = (val*)((long)(0)<<2|3);
7527 var1565 = core__flat___CString___to_s_unsafe(var1564, var1566, var1567, var1568, var1569);
7528 var1563 = var1565;
7529 varonce1562 = var1563;
7530 }
7531 ((struct instance_core__NativeArray*)var1553)->values[2]=var1563;
7532 if (likely(varonce1570!=NULL)) {
7533 var1571 = varonce1570;
7534 } else {
7535 var1572 = ")->value = NULL;";
7536 var1574 = (val*)(16l<<2|1);
7537 var1575 = (val*)(16l<<2|1);
7538 var1576 = (val*)((long)(0)<<2|3);
7539 var1577 = (val*)((long)(0)<<2|3);
7540 var1573 = core__flat___CString___to_s_unsafe(var1572, var1574, var1575, var1576, var1577);
7541 var1571 = var1573;
7542 varonce1570 = var1571;
7543 }
7544 ((struct instance_core__NativeArray*)var1553)->values[4]=var1571;
7545 } else {
7546 var1553 = varonce1552;
7547 varonce1552 = NULL;
7548 }
7549 {
7550 var1578 = ((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>*/
7551 }
7552 ((struct instance_core__NativeArray*)var1553)->values[1]=var1578;
7553 {
7554 var1579 = ((val*(*)(val* self))(var_res1456->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1456); /* to_s on <var_res1456:RuntimeVariable>*/
7555 }
7556 ((struct instance_core__NativeArray*)var1553)->values[3]=var1579;
7557 {
7558 var1580 = ((val*(*)(val* self))(var1553->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1553); /* native_to_s on <var1553:NativeArray[String]>*/
7559 }
7560 varonce1552 = var1553;
7561 {
7562 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1580); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
7563 }
7564 if (unlikely(varonce1581==NULL)) {
7565 var1582 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7566 if (likely(varonce1583!=NULL)) {
7567 var1584 = varonce1583;
7568 } else {
7569 var1585 = "return ";
7570 var1587 = (val*)(7l<<2|1);
7571 var1588 = (val*)(7l<<2|1);
7572 var1589 = (val*)((long)(0)<<2|3);
7573 var1590 = (val*)((long)(0)<<2|3);
7574 var1586 = core__flat___CString___to_s_unsafe(var1585, var1587, var1588, var1589, var1590);
7575 var1584 = var1586;
7576 varonce1583 = var1584;
7577 }
7578 ((struct instance_core__NativeArray*)var1582)->values[0]=var1584;
7579 if (likely(varonce1591!=NULL)) {
7580 var1592 = varonce1591;
7581 } else {
7582 var1593 = ";";
7583 var1595 = (val*)(1l<<2|1);
7584 var1596 = (val*)(1l<<2|1);
7585 var1597 = (val*)((long)(0)<<2|3);
7586 var1598 = (val*)((long)(0)<<2|3);
7587 var1594 = core__flat___CString___to_s_unsafe(var1593, var1595, var1596, var1597, var1598);
7588 var1592 = var1594;
7589 varonce1591 = var1592;
7590 }
7591 ((struct instance_core__NativeArray*)var1582)->values[2]=var1592;
7592 } else {
7593 var1582 = varonce1581;
7594 varonce1581 = NULL;
7595 }
7596 {
7597 var1599 = ((val*(*)(val* self))(var_res1456->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1456); /* to_s on <var_res1456:RuntimeVariable>*/
7598 }
7599 ((struct instance_core__NativeArray*)var1582)->values[1]=var1599;
7600 {
7601 var1600 = ((val*(*)(val* self))(var1582->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1582); /* native_to_s on <var1582:NativeArray[String]>*/
7602 }
7603 varonce1581 = var1582;
7604 {
7605 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1600); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
7606 }
7607 }
7608 if (likely(varonce1601!=NULL)) {
7609 var1602 = varonce1601;
7610 } else {
7611 var1603 = "}";
7612 var1605 = (val*)(1l<<2|1);
7613 var1606 = (val*)(1l<<2|1);
7614 var1607 = (val*)((long)(0)<<2|3);
7615 var1608 = (val*)((long)(0)<<2|3);
7616 var1604 = core__flat___CString___to_s_unsafe(var1603, var1605, var1606, var1607, var1608);
7617 var1602 = var1604;
7618 varonce1601 = var1602;
7619 }
7620 {
7621 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1602); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
7622 }
7623 goto RET_LABEL;
7624 } else {
7625 }
7626 }
7627 }
7628 if (unlikely(varonce1609==NULL)) {
7629 var1610 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7630 if (likely(varonce1611!=NULL)) {
7631 var1612 = varonce1611;
7632 } else {
7633 var1613 = "NEW_";
7634 var1615 = (val*)(4l<<2|1);
7635 var1616 = (val*)(4l<<2|1);
7636 var1617 = (val*)((long)(0)<<2|3);
7637 var1618 = (val*)((long)(0)<<2|3);
7638 var1614 = core__flat___CString___to_s_unsafe(var1613, var1615, var1616, var1617, var1618);
7639 var1612 = var1614;
7640 varonce1611 = var1612;
7641 }
7642 ((struct instance_core__NativeArray*)var1610)->values[0]=var1612;
7643 } else {
7644 var1610 = varonce1609;
7645 varonce1609 = NULL;
7646 }
7647 ((struct instance_core__NativeArray*)var1610)->values[1]=var_c_name;
7648 {
7649 var1619 = ((val*(*)(val* self))(var1610->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1610); /* native_to_s on <var1610:NativeArray[String]>*/
7650 }
7651 varonce1609 = var1610;
7652 if (unlikely(varonce1620==NULL)) {
7653 var1621 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7654 if (likely(varonce1622!=NULL)) {
7655 var1623 = varonce1622;
7656 } else {
7657 var1624 = " NEW_";
7658 var1626 = (val*)(5l<<2|1);
7659 var1627 = (val*)(5l<<2|1);
7660 var1628 = (val*)((long)(0)<<2|3);
7661 var1629 = (val*)((long)(0)<<2|3);
7662 var1625 = core__flat___CString___to_s_unsafe(var1624, var1626, var1627, var1628, var1629);
7663 var1623 = var1625;
7664 varonce1622 = var1623;
7665 }
7666 ((struct instance_core__NativeArray*)var1621)->values[1]=var1623;
7667 if (likely(varonce1630!=NULL)) {
7668 var1631 = varonce1630;
7669 } else {
7670 var1632 = "(const struct type* type);";
7671 var1634 = (val*)(26l<<2|1);
7672 var1635 = (val*)(26l<<2|1);
7673 var1636 = (val*)((long)(0)<<2|3);
7674 var1637 = (val*)((long)(0)<<2|3);
7675 var1633 = core__flat___CString___to_s_unsafe(var1632, var1634, var1635, var1636, var1637);
7676 var1631 = var1633;
7677 varonce1630 = var1631;
7678 }
7679 ((struct instance_core__NativeArray*)var1621)->values[3]=var1631;
7680 } else {
7681 var1621 = varonce1620;
7682 varonce1620 = NULL;
7683 }
7684 {
7685 var1638 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
7686 }
7687 ((struct instance_core__NativeArray*)var1621)->values[0]=var1638;
7688 ((struct instance_core__NativeArray*)var1621)->values[2]=var_c_name;
7689 {
7690 var1639 = ((val*(*)(val* self))(var1621->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1621); /* native_to_s on <var1621:NativeArray[String]>*/
7691 }
7692 varonce1620 = var1621;
7693 {
7694 nitc___nitc__AbstractCompiler___provide_declaration(self, var1619, var1639); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <self:SeparateCompiler>*/
7695 }
7696 if (unlikely(varonce1640==NULL)) {
7697 var1641 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7698 if (likely(varonce1642!=NULL)) {
7699 var1643 = varonce1642;
7700 } else {
7701 var1644 = "/* allocate ";
7702 var1646 = (val*)(12l<<2|1);
7703 var1647 = (val*)(12l<<2|1);
7704 var1648 = (val*)((long)(0)<<2|3);
7705 var1649 = (val*)((long)(0)<<2|3);
7706 var1645 = core__flat___CString___to_s_unsafe(var1644, var1646, var1647, var1648, var1649);
7707 var1643 = var1645;
7708 varonce1642 = var1643;
7709 }
7710 ((struct instance_core__NativeArray*)var1641)->values[0]=var1643;
7711 if (likely(varonce1650!=NULL)) {
7712 var1651 = varonce1650;
7713 } else {
7714 var1652 = " */";
7715 var1654 = (val*)(3l<<2|1);
7716 var1655 = (val*)(3l<<2|1);
7717 var1656 = (val*)((long)(0)<<2|3);
7718 var1657 = (val*)((long)(0)<<2|3);
7719 var1653 = core__flat___CString___to_s_unsafe(var1652, var1654, var1655, var1656, var1657);
7720 var1651 = var1653;
7721 varonce1650 = var1651;
7722 }
7723 ((struct instance_core__NativeArray*)var1641)->values[2]=var1651;
7724 } else {
7725 var1641 = varonce1640;
7726 varonce1640 = NULL;
7727 }
7728 {
7729 var1658 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MClassType>*/
7730 }
7731 ((struct instance_core__NativeArray*)var1641)->values[1]=var1658;
7732 {
7733 var1659 = ((val*(*)(val* self))(var1641->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1641); /* native_to_s on <var1641:NativeArray[String]>*/
7734 }
7735 varonce1640 = var1641;
7736 {
7737 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var1659); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
7738 }
7739 if (unlikely(varonce1660==NULL)) {
7740 var1661 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7741 if (likely(varonce1662!=NULL)) {
7742 var1663 = varonce1662;
7743 } else {
7744 var1664 = " NEW_";
7745 var1666 = (val*)(5l<<2|1);
7746 var1667 = (val*)(5l<<2|1);
7747 var1668 = (val*)((long)(0)<<2|3);
7748 var1669 = (val*)((long)(0)<<2|3);
7749 var1665 = core__flat___CString___to_s_unsafe(var1664, var1666, var1667, var1668, var1669);
7750 var1663 = var1665;
7751 varonce1662 = var1663;
7752 }
7753 ((struct instance_core__NativeArray*)var1661)->values[1]=var1663;
7754 if (likely(varonce1670!=NULL)) {
7755 var1671 = varonce1670;
7756 } else {
7757 var1672 = "(const struct type* type) {";
7758 var1674 = (val*)(27l<<2|1);
7759 var1675 = (val*)(27l<<2|1);
7760 var1676 = (val*)((long)(0)<<2|3);
7761 var1677 = (val*)((long)(0)<<2|3);
7762 var1673 = core__flat___CString___to_s_unsafe(var1672, var1674, var1675, var1676, var1677);
7763 var1671 = var1673;
7764 varonce1670 = var1671;
7765 }
7766 ((struct instance_core__NativeArray*)var1661)->values[3]=var1671;
7767 } else {
7768 var1661 = varonce1660;
7769 varonce1660 = NULL;
7770 }
7771 {
7772 var1678 = nitc__abstract_compiler___MClassType___MType__ctype(var_mtype);
7773 }
7774 ((struct instance_core__NativeArray*)var1661)->values[0]=var1678;
7775 ((struct instance_core__NativeArray*)var1661)->values[2]=var_c_name;
7776 {
7777 var1679 = ((val*(*)(val* self))(var1661->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1661); /* native_to_s on <var1661:NativeArray[String]>*/
7778 }
7779 varonce1660 = var1661;
7780 {
7781 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var1679); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
7782 }
7783 if (var_is_dead){
7784 if (unlikely(varonce1680==NULL)) {
7785 var1681 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7786 if (likely(varonce1682!=NULL)) {
7787 var1683 = varonce1682;
7788 } else {
7789 var1684 = " is DEAD";
7790 var1686 = (val*)(8l<<2|1);
7791 var1687 = (val*)(8l<<2|1);
7792 var1688 = (val*)((long)(0)<<2|3);
7793 var1689 = (val*)((long)(0)<<2|3);
7794 var1685 = core__flat___CString___to_s_unsafe(var1684, var1686, var1687, var1688, var1689);
7795 var1683 = var1685;
7796 varonce1682 = var1683;
7797 }
7798 ((struct instance_core__NativeArray*)var1681)->values[1]=var1683;
7799 } else {
7800 var1681 = varonce1680;
7801 varonce1680 = NULL;
7802 }
7803 {
7804 var1690 = ((val*(*)(val* self))(var_mclass->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mclass); /* to_s on <var_mclass:MClass>*/
7805 }
7806 ((struct instance_core__NativeArray*)var1681)->values[0]=var1690;
7807 {
7808 var1691 = ((val*(*)(val* self))(var1681->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1681); /* native_to_s on <var1681:NativeArray[String]>*/
7809 }
7810 varonce1680 = var1681;
7811 {
7812 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var1691); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:SeparateCompilerVisitor>*/
7813 }
7814 } else {
7815 if (likely(varonce1692!=NULL)) {
7816 var1693 = varonce1692;
7817 } else {
7818 var1694 = "self";
7819 var1696 = (val*)(4l<<2|1);
7820 var1697 = (val*)(4l<<2|1);
7821 var1698 = (val*)((long)(0)<<2|3);
7822 var1699 = (val*)((long)(0)<<2|3);
7823 var1695 = core__flat___CString___to_s_unsafe(var1694, var1696, var1697, var1698, var1699);
7824 var1693 = var1695;
7825 varonce1692 = var1693;
7826 }
7827 {
7828 var1700 = nitc___nitc__AbstractCompilerVisitor___new_named_var(var_v, var_mtype, var1693);
7829 }
7830 var_res1701 = var1700;
7831 {
7832 { /* Inline abstract_compiler$RuntimeVariable$is_exact= (var_res1701,1) on <var_res1701:RuntimeVariable> */
7833 var_res1701->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___is_exact].s = 1; /* _is_exact on <var_res1701:RuntimeVariable> */
7834 RET_LABEL1702:(void)0;
7835 }
7836 }
7837 {
7838 { /* Inline separate_compiler$SeparateCompiler$attr_tables (self) on <self:SeparateCompiler> */
7839 var1705 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on <self:SeparateCompiler> */
7840 if (unlikely(var1705 == NULL)) {
7841 if(catchStack.cursor >= 0){
7842 longjmp(catchStack.envs[catchStack.cursor], 1);
7843 }
7844 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
7845 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1074);
7846 fatal_exit(1);
7847 }
7848 var1703 = var1705;
7849 RET_LABEL1704:(void)0;
7850 }
7851 }
7852 {
7853 var1706 = ((val*(*)(val* self, val* p0))((((long)var1703&3)?class_info[((long)var1703&3)]:var1703->class)->vft[COLOR_core__abstract_collection__MapRead__get_or_null]))(var1703, var_mclass); /* get_or_null on <var1703:Map[MClass, Array[nullable MProperty]]>*/
7854 }
7855 var_attrs = var1706;
7856 if (var_attrs == NULL) {
7857 var1707 = 1; /* is null */
7858 } else {
7859 var1707 = 0; /* arg is null but recv is not */
7860 }
7861 if (0) {
7862 var1708 = core___core__Array___core__kernel__Object___61d_61d(var_attrs, ((val*)NULL));
7863 var1707 = var1708;
7864 }
7865 if (var1707){
7866 if (likely(varonce1709!=NULL)) {
7867 var1710 = varonce1709;
7868 } else {
7869 var1711 = "sizeof(struct instance)";
7870 var1713 = (val*)(23l<<2|1);
7871 var1714 = (val*)(23l<<2|1);
7872 var1715 = (val*)((long)(0)<<2|3);
7873 var1716 = (val*)((long)(0)<<2|3);
7874 var1712 = core__flat___CString___to_s_unsafe(var1711, var1713, var1714, var1715, var1716);
7875 var1710 = var1712;
7876 varonce1709 = var1710;
7877 }
7878 {
7879 var1717 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
7880 }
7881 {
7882 var1718 = nitc___nitc__AbstractCompilerVisitor___nit_alloc(var_v, var1710, var1717);
7883 }
7884 var_alloc1719 = var1718;
7885 if (unlikely(varonce1720==NULL)) {
7886 var1721 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7887 if (likely(varonce1722!=NULL)) {
7888 var1723 = varonce1722;
7889 } else {
7890 var1724 = " = ";
7891 var1726 = (val*)(3l<<2|1);
7892 var1727 = (val*)(3l<<2|1);
7893 var1728 = (val*)((long)(0)<<2|3);
7894 var1729 = (val*)((long)(0)<<2|3);
7895 var1725 = core__flat___CString___to_s_unsafe(var1724, var1726, var1727, var1728, var1729);
7896 var1723 = var1725;
7897 varonce1722 = var1723;
7898 }
7899 ((struct instance_core__NativeArray*)var1721)->values[1]=var1723;
7900 if (likely(varonce1730!=NULL)) {
7901 var1731 = varonce1730;
7902 } else {
7903 var1732 = ";";
7904 var1734 = (val*)(1l<<2|1);
7905 var1735 = (val*)(1l<<2|1);
7906 var1736 = (val*)((long)(0)<<2|3);
7907 var1737 = (val*)((long)(0)<<2|3);
7908 var1733 = core__flat___CString___to_s_unsafe(var1732, var1734, var1735, var1736, var1737);
7909 var1731 = var1733;
7910 varonce1730 = var1731;
7911 }
7912 ((struct instance_core__NativeArray*)var1721)->values[3]=var1731;
7913 } else {
7914 var1721 = varonce1720;
7915 varonce1720 = NULL;
7916 }
7917 {
7918 var1738 = ((val*(*)(val* self))(var_res1701->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1701); /* to_s on <var_res1701:RuntimeVariable>*/
7919 }
7920 ((struct instance_core__NativeArray*)var1721)->values[0]=var1738;
7921 ((struct instance_core__NativeArray*)var1721)->values[2]=var_alloc1719;
7922 {
7923 var1739 = ((val*(*)(val* self))(var1721->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1721); /* native_to_s on <var1721:NativeArray[String]>*/
7924 }
7925 varonce1720 = var1721;
7926 {
7927 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1739); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
7928 }
7929 } else {
7930 if (unlikely(varonce1740==NULL)) {
7931 var1741 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7932 if (likely(varonce1742!=NULL)) {
7933 var1743 = varonce1742;
7934 } else {
7935 var1744 = "sizeof(struct instance) + ";
7936 var1746 = (val*)(26l<<2|1);
7937 var1747 = (val*)(26l<<2|1);
7938 var1748 = (val*)((long)(0)<<2|3);
7939 var1749 = (val*)((long)(0)<<2|3);
7940 var1745 = core__flat___CString___to_s_unsafe(var1744, var1746, var1747, var1748, var1749);
7941 var1743 = var1745;
7942 varonce1742 = var1743;
7943 }
7944 ((struct instance_core__NativeArray*)var1741)->values[0]=var1743;
7945 if (likely(varonce1750!=NULL)) {
7946 var1751 = varonce1750;
7947 } else {
7948 var1752 = "*sizeof(nitattribute_t)";
7949 var1754 = (val*)(23l<<2|1);
7950 var1755 = (val*)(23l<<2|1);
7951 var1756 = (val*)((long)(0)<<2|3);
7952 var1757 = (val*)((long)(0)<<2|3);
7953 var1753 = core__flat___CString___to_s_unsafe(var1752, var1754, var1755, var1756, var1757);
7954 var1751 = var1753;
7955 varonce1750 = var1751;
7956 }
7957 ((struct instance_core__NativeArray*)var1741)->values[2]=var1751;
7958 } else {
7959 var1741 = varonce1740;
7960 varonce1740 = NULL;
7961 }
7962 {
7963 { /* Inline array$AbstractArrayRead$length (var_attrs) on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])> */
7964 var1760 = var_attrs->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])> */
7965 var1758 = var1760;
7966 RET_LABEL1759:(void)0;
7967 }
7968 }
7969 var1761 = core__flat___Int___core__abstract_text__Object__to_s(var1758);
7970 ((struct instance_core__NativeArray*)var1741)->values[1]=var1761;
7971 {
7972 var1762 = ((val*(*)(val* self))(var1741->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1741); /* native_to_s on <var1741:NativeArray[String]>*/
7973 }
7974 varonce1740 = var1741;
7975 {
7976 var1763 = nitc___nitc__MClass___nitc__model_base__MEntity__full_name(var_mclass);
7977 }
7978 {
7979 var1764 = nitc___nitc__AbstractCompilerVisitor___nit_alloc(var_v, var1762, var1763);
7980 }
7981 var_alloc1765 = var1764;
7982 if (unlikely(varonce1766==NULL)) {
7983 var1767 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
7984 if (likely(varonce1768!=NULL)) {
7985 var1769 = varonce1768;
7986 } else {
7987 var1770 = " = ";
7988 var1772 = (val*)(3l<<2|1);
7989 var1773 = (val*)(3l<<2|1);
7990 var1774 = (val*)((long)(0)<<2|3);
7991 var1775 = (val*)((long)(0)<<2|3);
7992 var1771 = core__flat___CString___to_s_unsafe(var1770, var1772, var1773, var1774, var1775);
7993 var1769 = var1771;
7994 varonce1768 = var1769;
7995 }
7996 ((struct instance_core__NativeArray*)var1767)->values[1]=var1769;
7997 if (likely(varonce1776!=NULL)) {
7998 var1777 = varonce1776;
7999 } else {
8000 var1778 = ";";
8001 var1780 = (val*)(1l<<2|1);
8002 var1781 = (val*)(1l<<2|1);
8003 var1782 = (val*)((long)(0)<<2|3);
8004 var1783 = (val*)((long)(0)<<2|3);
8005 var1779 = core__flat___CString___to_s_unsafe(var1778, var1780, var1781, var1782, var1783);
8006 var1777 = var1779;
8007 varonce1776 = var1777;
8008 }
8009 ((struct instance_core__NativeArray*)var1767)->values[3]=var1777;
8010 } else {
8011 var1767 = varonce1766;
8012 varonce1766 = NULL;
8013 }
8014 {
8015 var1784 = ((val*(*)(val* self))(var_res1701->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1701); /* to_s on <var_res1701:RuntimeVariable>*/
8016 }
8017 ((struct instance_core__NativeArray*)var1767)->values[0]=var1784;
8018 ((struct instance_core__NativeArray*)var1767)->values[2]=var_alloc1765;
8019 {
8020 var1785 = ((val*(*)(val* self))(var1767->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1767); /* native_to_s on <var1767:NativeArray[String]>*/
8021 }
8022 varonce1766 = var1767;
8023 {
8024 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1785); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
8025 }
8026 }
8027 if (unlikely(varonce1786==NULL)) {
8028 var1787 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8029 if (likely(varonce1788!=NULL)) {
8030 var1789 = varonce1788;
8031 } else {
8032 var1790 = "->type = type;";
8033 var1792 = (val*)(14l<<2|1);
8034 var1793 = (val*)(14l<<2|1);
8035 var1794 = (val*)((long)(0)<<2|3);
8036 var1795 = (val*)((long)(0)<<2|3);
8037 var1791 = core__flat___CString___to_s_unsafe(var1790, var1792, var1793, var1794, var1795);
8038 var1789 = var1791;
8039 varonce1788 = var1789;
8040 }
8041 ((struct instance_core__NativeArray*)var1787)->values[1]=var1789;
8042 } else {
8043 var1787 = varonce1786;
8044 varonce1786 = NULL;
8045 }
8046 {
8047 var1796 = ((val*(*)(val* self))(var_res1701->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1701); /* to_s on <var_res1701:RuntimeVariable>*/
8048 }
8049 ((struct instance_core__NativeArray*)var1787)->values[0]=var1796;
8050 {
8051 var1797 = ((val*(*)(val* self))(var1787->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1787); /* native_to_s on <var1787:NativeArray[String]>*/
8052 }
8053 varonce1786 = var1787;
8054 {
8055 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1797); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
8056 }
8057 if (likely(varonce1798!=NULL)) {
8058 var1799 = varonce1798;
8059 } else {
8060 var1800 = "type";
8061 var1802 = (val*)(4l<<2|1);
8062 var1803 = (val*)(4l<<2|1);
8063 var1804 = (val*)((long)(0)<<2|3);
8064 var1805 = (val*)((long)(0)<<2|3);
8065 var1801 = core__flat___CString___to_s_unsafe(var1800, var1802, var1803, var1804, var1805);
8066 var1799 = var1801;
8067 varonce1798 = var1799;
8068 }
8069 {
8070 nitc___nitc__SeparateCompiler___hardening_live_type(self, var_v, var1799); /* Direct call separate_compiler$SeparateCompiler$hardening_live_type on <self:SeparateCompiler>*/
8071 }
8072 if (unlikely(varonce1806==NULL)) {
8073 var1807 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8074 if (likely(varonce1808!=NULL)) {
8075 var1809 = varonce1808;
8076 } else {
8077 var1810 = "class_";
8078 var1812 = (val*)(6l<<2|1);
8079 var1813 = (val*)(6l<<2|1);
8080 var1814 = (val*)((long)(0)<<2|3);
8081 var1815 = (val*)((long)(0)<<2|3);
8082 var1811 = core__flat___CString___to_s_unsafe(var1810, var1812, var1813, var1814, var1815);
8083 var1809 = var1811;
8084 varonce1808 = var1809;
8085 }
8086 ((struct instance_core__NativeArray*)var1807)->values[0]=var1809;
8087 } else {
8088 var1807 = varonce1806;
8089 varonce1806 = NULL;
8090 }
8091 ((struct instance_core__NativeArray*)var1807)->values[1]=var_c_name;
8092 {
8093 var1816 = ((val*(*)(val* self))(var1807->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1807); /* native_to_s on <var1807:NativeArray[String]>*/
8094 }
8095 varonce1806 = var1807;
8096 {
8097 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var1816); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
8098 }
8099 if (unlikely(varonce1817==NULL)) {
8100 var1818 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
8101 if (likely(varonce1819!=NULL)) {
8102 var1820 = varonce1819;
8103 } else {
8104 var1821 = "->class = &class_";
8105 var1823 = (val*)(17l<<2|1);
8106 var1824 = (val*)(17l<<2|1);
8107 var1825 = (val*)((long)(0)<<2|3);
8108 var1826 = (val*)((long)(0)<<2|3);
8109 var1822 = core__flat___CString___to_s_unsafe(var1821, var1823, var1824, var1825, var1826);
8110 var1820 = var1822;
8111 varonce1819 = var1820;
8112 }
8113 ((struct instance_core__NativeArray*)var1818)->values[1]=var1820;
8114 if (likely(varonce1827!=NULL)) {
8115 var1828 = varonce1827;
8116 } else {
8117 var1829 = ";";
8118 var1831 = (val*)(1l<<2|1);
8119 var1832 = (val*)(1l<<2|1);
8120 var1833 = (val*)((long)(0)<<2|3);
8121 var1834 = (val*)((long)(0)<<2|3);
8122 var1830 = core__flat___CString___to_s_unsafe(var1829, var1831, var1832, var1833, var1834);
8123 var1828 = var1830;
8124 varonce1827 = var1828;
8125 }
8126 ((struct instance_core__NativeArray*)var1818)->values[3]=var1828;
8127 } else {
8128 var1818 = varonce1817;
8129 varonce1817 = NULL;
8130 }
8131 {
8132 var1835 = ((val*(*)(val* self))(var_res1701->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1701); /* to_s on <var_res1701:RuntimeVariable>*/
8133 }
8134 ((struct instance_core__NativeArray*)var1818)->values[0]=var1835;
8135 ((struct instance_core__NativeArray*)var1818)->values[2]=var_c_name;
8136 {
8137 var1836 = ((val*(*)(val* self))(var1818->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1818); /* native_to_s on <var1818:NativeArray[String]>*/
8138 }
8139 varonce1817 = var1818;
8140 {
8141 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1836); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
8142 }
8143 if (var_attrs == NULL) {
8144 var1837 = 0; /* is null */
8145 } else {
8146 var1837 = 1; /* arg is null and recv is not */
8147 }
8148 if (0) {
8149 { /* Inline kernel$Object$!= (var_attrs,((val*)NULL)) on <var_attrs:nullable Array[nullable MProperty]> */
8150 var_other = ((val*)NULL);
8151 {
8152 var1840 = ((short int(*)(val* self, val* p0))(var_attrs->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_attrs, var_other); /* == on <var_attrs:nullable Array[nullable MProperty](Array[nullable MProperty])>*/
8153 }
8154 var1841 = !var1840;
8155 var1838 = var1841;
8156 goto RET_LABEL1839;
8157 RET_LABEL1839:(void)0;
8158 }
8159 var1837 = var1838;
8160 }
8161 if (var1837){
8162 {
8163 nitc___nitc__AbstractCompiler___generate_init_attr(self, var_v, var_res1701, var_mtype); /* Direct call abstract_compiler$AbstractCompiler$generate_init_attr on <self:SeparateCompiler>*/
8164 }
8165 {
8166 nitc___nitc__AbstractCompilerVisitor___set_finalizer(var_v, var_res1701); /* Direct call abstract_compiler$AbstractCompilerVisitor$set_finalizer on <var_v:SeparateCompilerVisitor>*/
8167 }
8168 } else {
8169 }
8170 if (unlikely(varonce1842==NULL)) {
8171 var1843 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
8172 if (likely(varonce1844!=NULL)) {
8173 var1845 = varonce1844;
8174 } else {
8175 var1846 = "return ";
8176 var1848 = (val*)(7l<<2|1);
8177 var1849 = (val*)(7l<<2|1);
8178 var1850 = (val*)((long)(0)<<2|3);
8179 var1851 = (val*)((long)(0)<<2|3);
8180 var1847 = core__flat___CString___to_s_unsafe(var1846, var1848, var1849, var1850, var1851);
8181 var1845 = var1847;
8182 varonce1844 = var1845;
8183 }
8184 ((struct instance_core__NativeArray*)var1843)->values[0]=var1845;
8185 if (likely(varonce1852!=NULL)) {
8186 var1853 = varonce1852;
8187 } else {
8188 var1854 = ";";
8189 var1856 = (val*)(1l<<2|1);
8190 var1857 = (val*)(1l<<2|1);
8191 var1858 = (val*)((long)(0)<<2|3);
8192 var1859 = (val*)((long)(0)<<2|3);
8193 var1855 = core__flat___CString___to_s_unsafe(var1854, var1856, var1857, var1858, var1859);
8194 var1853 = var1855;
8195 varonce1852 = var1853;
8196 }
8197 ((struct instance_core__NativeArray*)var1843)->values[2]=var1853;
8198 } else {
8199 var1843 = varonce1842;
8200 varonce1842 = NULL;
8201 }
8202 {
8203 var1860 = ((val*(*)(val* self))(var_res1701->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_res1701); /* to_s on <var_res1701:RuntimeVariable>*/
8204 }
8205 ((struct instance_core__NativeArray*)var1843)->values[1]=var1860;
8206 {
8207 var1861 = ((val*(*)(val* self))(var1843->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1843); /* native_to_s on <var1843:NativeArray[String]>*/
8208 }
8209 varonce1842 = var1843;
8210 {
8211 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1861); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
8212 }
8213 }
8214 if (likely(varonce1862!=NULL)) {
8215 var1863 = varonce1862;
8216 } else {
8217 var1864 = "}";
8218 var1866 = (val*)(1l<<2|1);
8219 var1867 = (val*)(1l<<2|1);
8220 var1868 = (val*)((long)(0)<<2|3);
8221 var1869 = (val*)((long)(0)<<2|3);
8222 var1865 = core__flat___CString___to_s_unsafe(var1864, var1866, var1867, var1868, var1869);
8223 var1863 = var1865;
8224 varonce1862 = var1863;
8225 }
8226 {
8227 nitc___nitc__AbstractCompilerVisitor___add(var_v, var1863); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
8228 }
8229 RET_LABEL:;
8230 }
8231 /* method separate_compiler$SeparateCompiler$compile_class_infos for (self: SeparateCompiler) */
8232 void nitc___nitc__SeparateCompiler___compile_class_infos(val* self) {
8233 val* var /* : ModelBuilder */;
8234 val* var2 /* : ModelBuilder */;
8235 val* var3 /* : ToolContext */;
8236 val* var5 /* : ToolContext */;
8237 val* var6 /* : OptionBool */;
8238 val* var8 /* : OptionBool */;
8239 val* var9 /* : nullable Object */;
8240 val* var11 /* : nullable Object */;
8241 short int var12 /* : Bool */;
8242 val* var13 /* : Array[nullable MClass] */;
8243 val* var_class_info /* var class_info: Array[nullable MClass] */;
8244 val* var14 /* : HashMap[MClass, Int] */;
8245 val* var16 /* : HashMap[MClass, Int] */;
8246 val* var17 /* : RemovableCollection[nullable Object] */;
8247 val* var_ /* var : RemovableCollection[MClass] */;
8248 val* var18 /* : Iterator[nullable Object] */;
8249 val* var_19 /* var : Iterator[MClass] */;
8250 short int var20 /* : Bool */;
8251 val* var21 /* : nullable Object */;
8252 val* var_t /* var t: MClass */;
8253 val* var22 /* : String */;
8254 val* var24 /* : String */;
8255 static val* varonce;
8256 val* var25 /* : String */;
8257 char* var26 /* : CString */;
8258 val* var27 /* : String */;
8259 val* var28 /* : nullable Int */;
8260 val* var29 /* : nullable Int */;
8261 val* var30 /* : nullable Bool */;
8262 val* var31 /* : nullable Bool */;
8263 short int var32 /* : Bool */;
8264 val* var33 /* : MClassType */;
8265 val* var35 /* : MClassType */;
8266 val* var37 /* : String */;
8267 val* var39 /* : String */;
8268 static val* varonce40;
8269 val* var41 /* : String */;
8270 char* var42 /* : CString */;
8271 val* var43 /* : String */;
8272 val* var44 /* : nullable Int */;
8273 val* var45 /* : nullable Int */;
8274 val* var46 /* : nullable Bool */;
8275 val* var47 /* : nullable Bool */;
8276 short int var48 /* : Bool */;
8277 val* var49 /* : MClassType */;
8278 val* var51 /* : MClassType */;
8279 val* var53 /* : String */;
8280 val* var55 /* : String */;
8281 static val* varonce56;
8282 val* var57 /* : String */;
8283 char* var58 /* : CString */;
8284 val* var59 /* : String */;
8285 val* var60 /* : nullable Int */;
8286 val* var61 /* : nullable Int */;
8287 val* var62 /* : nullable Bool */;
8288 val* var63 /* : nullable Bool */;
8289 short int var64 /* : Bool */;
8290 val* var65 /* : MClassType */;
8291 val* var67 /* : MClassType */;
8292 val* var70 /* : MClassType */;
8293 val* var72 /* : MClassType */;
8294 val* var74 /* : AbstractCompilerVisitor */;
8295 val* var_v /* var v: SeparateCompilerVisitor */;
8296 static val* varonce75;
8297 val* var76 /* : String */;
8298 char* var77 /* : CString */;
8299 val* var78 /* : String */;
8300 val* var79 /* : nullable Int */;
8301 val* var80 /* : nullable Int */;
8302 val* var81 /* : nullable Bool */;
8303 val* var82 /* : nullable Bool */;
8304 val* var_83 /* var : Array[nullable MClass] */;
8305 val* var84 /* : IndexedIterator[nullable Object] */;
8306 val* var_85 /* var : IndexedIterator[nullable MClass] */;
8307 short int var86 /* : Bool */;
8308 val* var88 /* : nullable Object */;
8309 val* var_t89 /* var t: nullable MClass */;
8310 short int var90 /* : Bool */;
8311 short int var91 /* : Bool */;
8312 val* var_other /* var other: nullable Object */;
8313 short int var93 /* : Bool */;
8314 short int var95 /* : Bool */;
8315 static val* varonce96;
8316 val* var97 /* : String */;
8317 char* var98 /* : CString */;
8318 val* var99 /* : String */;
8319 val* var100 /* : nullable Int */;
8320 val* var101 /* : nullable Int */;
8321 val* var102 /* : nullable Bool */;
8322 val* var103 /* : nullable Bool */;
8323 val* var105 /* : NativeArray[String] */;
8324 static val* varonce104;
8325 static val* varonce106;
8326 val* var107 /* : String */;
8327 char* var108 /* : CString */;
8328 val* var109 /* : String */;
8329 val* var110 /* : nullable Int */;
8330 val* var111 /* : nullable Int */;
8331 val* var112 /* : nullable Bool */;
8332 val* var113 /* : nullable Bool */;
8333 val* var114 /* : String */;
8334 val* var115 /* : String */;
8335 val* var_s /* var s: String */;
8336 val* var117 /* : NativeArray[String] */;
8337 static val* varonce116;
8338 static val* varonce118;
8339 val* var119 /* : String */;
8340 char* var120 /* : CString */;
8341 val* var121 /* : String */;
8342 val* var122 /* : nullable Int */;
8343 val* var123 /* : nullable Int */;
8344 val* var124 /* : nullable Bool */;
8345 val* var125 /* : nullable Bool */;
8346 static val* varonce126;
8347 val* var127 /* : String */;
8348 char* var128 /* : CString */;
8349 val* var129 /* : String */;
8350 val* var130 /* : nullable Int */;
8351 val* var131 /* : nullable Int */;
8352 val* var132 /* : nullable Bool */;
8353 val* var133 /* : nullable Bool */;
8354 val* var134 /* : String */;
8355 static val* varonce135;
8356 val* var136 /* : String */;
8357 char* var137 /* : CString */;
8358 val* var138 /* : String */;
8359 val* var139 /* : nullable Int */;
8360 val* var140 /* : nullable Int */;
8361 val* var141 /* : nullable Bool */;
8362 val* var142 /* : nullable Bool */;
8363 static val* varonce143;
8364 val* var144 /* : String */;
8365 char* var145 /* : CString */;
8366 val* var146 /* : String */;
8367 val* var147 /* : nullable Int */;
8368 val* var148 /* : nullable Int */;
8369 val* var149 /* : nullable Bool */;
8370 val* var150 /* : nullable Bool */;
8371 val* var_151 /* var : Array[nullable MClass] */;
8372 val* var152 /* : IndexedIterator[nullable Object] */;
8373 val* var_153 /* var : IndexedIterator[nullable MClass] */;
8374 short int var154 /* : Bool */;
8375 val* var156 /* : nullable Object */;
8376 val* var_t157 /* var t: nullable MClass */;
8377 short int var158 /* : Bool */;
8378 short int var159 /* : Bool */;
8379 short int var161 /* : Bool */;
8380 short int var163 /* : Bool */;
8381 static val* varonce164;
8382 val* var165 /* : String */;
8383 char* var166 /* : CString */;
8384 val* var167 /* : String */;
8385 val* var168 /* : nullable Int */;
8386 val* var169 /* : nullable Int */;
8387 val* var170 /* : nullable Bool */;
8388 val* var171 /* : nullable Bool */;
8389 val* var173 /* : NativeArray[String] */;
8390 static val* varonce172;
8391 static val* varonce174;
8392 val* var175 /* : String */;
8393 char* var176 /* : CString */;
8394 val* var177 /* : String */;
8395 val* var178 /* : nullable Int */;
8396 val* var179 /* : nullable Int */;
8397 val* var180 /* : nullable Bool */;
8398 val* var181 /* : nullable Bool */;
8399 val* var182 /* : String */;
8400 val* var183 /* : String */;
8401 val* var_s184 /* var s: String */;
8402 val* var185 /* : Set[MType] */;
8403 val* var187 /* : Set[MType] */;
8404 val* var188 /* : MClassType */;
8405 val* var190 /* : MClassType */;
8406 val* var192 /* : NativeArray[String] */;
8407 static val* varonce191;
8408 static val* varonce193;
8409 val* var194 /* : String */;
8410 char* var195 /* : CString */;
8411 val* var196 /* : String */;
8412 val* var197 /* : nullable Int */;
8413 val* var198 /* : nullable Int */;
8414 val* var199 /* : nullable Bool */;
8415 val* var200 /* : nullable Bool */;
8416 static val* varonce201;
8417 val* var202 /* : String */;
8418 char* var203 /* : CString */;
8419 val* var204 /* : String */;
8420 val* var205 /* : nullable Int */;
8421 val* var206 /* : nullable Int */;
8422 val* var207 /* : nullable Bool */;
8423 val* var208 /* : nullable Bool */;
8424 val* var209 /* : String */;
8425 static val* varonce210;
8426 val* var211 /* : String */;
8427 char* var212 /* : CString */;
8428 val* var213 /* : String */;
8429 val* var214 /* : nullable Int */;
8430 val* var215 /* : nullable Int */;
8431 val* var216 /* : nullable Bool */;
8432 val* var217 /* : nullable Bool */;
8433 {
8434 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (self) on <self:SeparateCompiler> */
8435 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <self:SeparateCompiler> */
8436 if (unlikely(var2 == NULL)) {
8437 if(catchStack.cursor >= 0){
8438 longjmp(catchStack.envs[catchStack.cursor], 1);
8439 }
8440 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8441 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
8442 fatal_exit(1);
8443 }
8444 var = var2;
8445 RET_LABEL1:(void)0;
8446 }
8447 }
8448 {
8449 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var) on <var:ModelBuilder> */
8450 var5 = var->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var:ModelBuilder> */
8451 if (unlikely(var5 == NULL)) {
8452 if(catchStack.cursor >= 0){
8453 longjmp(catchStack.envs[catchStack.cursor], 1);
8454 }
8455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
8456 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
8457 fatal_exit(1);
8458 }
8459 var3 = var5;
8460 RET_LABEL4:(void)0;
8461 }
8462 }
8463 {
8464 { /* Inline separate_compiler$ToolContext$opt_no_tag_primitives (var3) on <var3:ToolContext> */
8465 var8 = var3->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_tag_primitives].val; /* _opt_no_tag_primitives on <var3:ToolContext> */
8466 if (unlikely(var8 == NULL)) {
8467 if(catchStack.cursor >= 0){
8468 longjmp(catchStack.envs[catchStack.cursor], 1);
8469 }
8470 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_tag_primitives");
8471 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 32);
8472 fatal_exit(1);
8473 }
8474 var6 = var8;
8475 RET_LABEL7:(void)0;
8476 }
8477 }
8478 {
8479 { /* Inline opts$Option$value (var6) on <var6:OptionBool> */
8480 var11 = var6->attrs[COLOR_opts__Option___value].val; /* _value on <var6:OptionBool> */
8481 var9 = var11;
8482 RET_LABEL10:(void)0;
8483 }
8484 }
8485 var12 = (short int)((long)(var9)>>2);
8486 if (var12){
8487 goto RET_LABEL;
8488 } else {
8489 }
8490 var13 = NEW_core__Array(&type_core__Array__nullable__nitc__MClass);
8491 {
8492 core___core__Array___filled_with(var13, ((val*)NULL), 4l); /* Direct call array$Array$filled_with on <var13:Array[nullable MClass]>*/
8493 }
8494 var_class_info = var13;
8495 {
8496 { /* Inline separate_compiler$SeparateCompiler$box_kinds (self) on <self:SeparateCompiler> */
8497 var16 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___box_kinds].val; /* _box_kinds on <self:SeparateCompiler> */
8498 if (unlikely(var16 == NULL)) {
8499 if(catchStack.cursor >= 0){
8500 longjmp(catchStack.envs[catchStack.cursor], 1);
8501 }
8502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _box_kinds");
8503 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 264);
8504 fatal_exit(1);
8505 }
8506 var14 = var16;
8507 RET_LABEL15:(void)0;
8508 }
8509 }
8510 {
8511 var17 = core___core__HashMap___core__abstract_collection__MapRead__keys(var14);
8512 }
8513 var_ = var17;
8514 {
8515 var18 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:RemovableCollection[MClass]>*/
8516 }
8517 var_19 = var18;
8518 for(;;) {
8519 {
8520 var20 = ((short int(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_19); /* is_ok on <var_19:Iterator[MClass]>*/
8521 }
8522 if (var20){
8523 } else {
8524 goto BREAK_label;
8525 }
8526 {
8527 var21 = ((val*(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_19); /* item on <var_19:Iterator[MClass]>*/
8528 }
8529 var_t = var21;
8530 {
8531 { /* Inline model$MClass$name (var_t) on <var_t:MClass> */
8532 var24 = var_t->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_t:MClass> */
8533 if (unlikely(var24 == NULL)) {
8534 if(catchStack.cursor >= 0){
8535 longjmp(catchStack.envs[catchStack.cursor], 1);
8536 }
8537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8538 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
8539 fatal_exit(1);
8540 }
8541 var22 = var24;
8542 RET_LABEL23:(void)0;
8543 }
8544 }
8545 if (likely(varonce!=NULL)) {
8546 var25 = varonce;
8547 } else {
8548 var26 = "Int";
8549 var28 = (val*)(3l<<2|1);
8550 var29 = (val*)(3l<<2|1);
8551 var30 = (val*)((long)(0)<<2|3);
8552 var31 = (val*)((long)(0)<<2|3);
8553 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
8554 var25 = var27;
8555 varonce = var25;
8556 }
8557 {
8558 var32 = ((short int(*)(val* self, val* p0))(var22->class->vft[COLOR_core__kernel__Object___61d_61d]))(var22, var25); /* == on <var22:String>*/
8559 }
8560 if (var32){
8561 {
8562 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_class_info, 1l, var_t); /* Direct call array$Array$[]= on <var_class_info:Array[nullable MClass]>*/
8563 }
8564 {
8565 { /* Inline model$MClass$mclass_type (var_t) on <var_t:MClass> */
8566 var35 = var_t->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_t:MClass> */
8567 if (unlikely(var35 == NULL)) {
8568 if(catchStack.cursor >= 0){
8569 longjmp(catchStack.envs[catchStack.cursor], 1);
8570 }
8571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
8572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
8573 fatal_exit(1);
8574 }
8575 var33 = var35;
8576 RET_LABEL34:(void)0;
8577 }
8578 }
8579 {
8580 { /* Inline separate_compiler$MType$tag_value= (var33,1l) on <var33:MClassType> */
8581 var33->attrs[COLOR_nitc__separate_compiler__MType___tag_value].l = 1l; /* _tag_value on <var33:MClassType> */
8582 RET_LABEL36:(void)0;
8583 }
8584 }
8585 } else {
8586 {
8587 { /* Inline model$MClass$name (var_t) on <var_t:MClass> */
8588 var39 = var_t->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_t:MClass> */
8589 if (unlikely(var39 == NULL)) {
8590 if(catchStack.cursor >= 0){
8591 longjmp(catchStack.envs[catchStack.cursor], 1);
8592 }
8593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8594 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
8595 fatal_exit(1);
8596 }
8597 var37 = var39;
8598 RET_LABEL38:(void)0;
8599 }
8600 }
8601 if (likely(varonce40!=NULL)) {
8602 var41 = varonce40;
8603 } else {
8604 var42 = "Char";
8605 var44 = (val*)(4l<<2|1);
8606 var45 = (val*)(4l<<2|1);
8607 var46 = (val*)((long)(0)<<2|3);
8608 var47 = (val*)((long)(0)<<2|3);
8609 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
8610 var41 = var43;
8611 varonce40 = var41;
8612 }
8613 {
8614 var48 = ((short int(*)(val* self, val* p0))(var37->class->vft[COLOR_core__kernel__Object___61d_61d]))(var37, var41); /* == on <var37:String>*/
8615 }
8616 if (var48){
8617 {
8618 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_class_info, 2l, var_t); /* Direct call array$Array$[]= on <var_class_info:Array[nullable MClass]>*/
8619 }
8620 {
8621 { /* Inline model$MClass$mclass_type (var_t) on <var_t:MClass> */
8622 var51 = var_t->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_t:MClass> */
8623 if (unlikely(var51 == NULL)) {
8624 if(catchStack.cursor >= 0){
8625 longjmp(catchStack.envs[catchStack.cursor], 1);
8626 }
8627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
8628 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
8629 fatal_exit(1);
8630 }
8631 var49 = var51;
8632 RET_LABEL50:(void)0;
8633 }
8634 }
8635 {
8636 { /* Inline separate_compiler$MType$tag_value= (var49,2l) on <var49:MClassType> */
8637 var49->attrs[COLOR_nitc__separate_compiler__MType___tag_value].l = 2l; /* _tag_value on <var49:MClassType> */
8638 RET_LABEL52:(void)0;
8639 }
8640 }
8641 } else {
8642 {
8643 { /* Inline model$MClass$name (var_t) on <var_t:MClass> */
8644 var55 = var_t->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var_t:MClass> */
8645 if (unlikely(var55 == NULL)) {
8646 if(catchStack.cursor >= 0){
8647 longjmp(catchStack.envs[catchStack.cursor], 1);
8648 }
8649 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
8650 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
8651 fatal_exit(1);
8652 }
8653 var53 = var55;
8654 RET_LABEL54:(void)0;
8655 }
8656 }
8657 if (likely(varonce56!=NULL)) {
8658 var57 = varonce56;
8659 } else {
8660 var58 = "Bool";
8661 var60 = (val*)(4l<<2|1);
8662 var61 = (val*)(4l<<2|1);
8663 var62 = (val*)((long)(0)<<2|3);
8664 var63 = (val*)((long)(0)<<2|3);
8665 var59 = core__flat___CString___to_s_unsafe(var58, var60, var61, var62, var63);
8666 var57 = var59;
8667 varonce56 = var57;
8668 }
8669 {
8670 var64 = ((short int(*)(val* self, val* p0))(var53->class->vft[COLOR_core__kernel__Object___61d_61d]))(var53, var57); /* == on <var53:String>*/
8671 }
8672 if (var64){
8673 {
8674 core___core__Array___core__abstract_collection__Sequence___91d_93d_61d(var_class_info, 3l, var_t); /* Direct call array$Array$[]= on <var_class_info:Array[nullable MClass]>*/
8675 }
8676 {
8677 { /* Inline model$MClass$mclass_type (var_t) on <var_t:MClass> */
8678 var67 = var_t->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_t:MClass> */
8679 if (unlikely(var67 == NULL)) {
8680 if(catchStack.cursor >= 0){
8681 longjmp(catchStack.envs[catchStack.cursor], 1);
8682 }
8683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
8684 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
8685 fatal_exit(1);
8686 }
8687 var65 = var67;
8688 RET_LABEL66:(void)0;
8689 }
8690 }
8691 {
8692 { /* Inline separate_compiler$MType$tag_value= (var65,3l) on <var65:MClassType> */
8693 var65->attrs[COLOR_nitc__separate_compiler__MType___tag_value].l = 3l; /* _tag_value on <var65:MClassType> */
8694 RET_LABEL68:(void)0;
8695 }
8696 }
8697 } else {
8698 goto BREAK_label69;
8699 }
8700 }
8701 }
8702 {
8703 { /* Inline model$MClass$mclass_type (var_t) on <var_t:MClass> */
8704 var72 = var_t->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_t:MClass> */
8705 if (unlikely(var72 == NULL)) {
8706 if(catchStack.cursor >= 0){
8707 longjmp(catchStack.envs[catchStack.cursor], 1);
8708 }
8709 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
8710 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
8711 fatal_exit(1);
8712 }
8713 var70 = var72;
8714 RET_LABEL71:(void)0;
8715 }
8716 }
8717 {
8718 { /* Inline separate_compiler$MType$is_tagged= (var70,1) on <var70:MClassType> */
8719 var70->attrs[COLOR_nitc__separate_compiler__MType___is_tagged].s = 1; /* _is_tagged on <var70:MClassType> */
8720 RET_LABEL73:(void)0;
8721 }
8722 }
8723 BREAK_label69: (void)0;
8724 {
8725 ((void(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_19); /* next on <var_19:Iterator[MClass]>*/
8726 }
8727 }
8728 BREAK_label: (void)0;
8729 {
8730 ((void(*)(val* self))((((long)var_19&3)?class_info[((long)var_19&3)]:var_19->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_19); /* finish on <var_19:Iterator[MClass]>*/
8731 }
8732 {
8733 var74 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(self); /* new_visitor on <self:SeparateCompiler>*/
8734 }
8735 var_v = var74;
8736 if (likely(varonce75!=NULL)) {
8737 var76 = varonce75;
8738 } else {
8739 var77 = "const struct class *class_info[4] = {";
8740 var79 = (val*)(37l<<2|1);
8741 var80 = (val*)(37l<<2|1);
8742 var81 = (val*)((long)(0)<<2|3);
8743 var82 = (val*)((long)(0)<<2|3);
8744 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
8745 var76 = var78;
8746 varonce75 = var76;
8747 }
8748 {
8749 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var76); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
8750 }
8751 var_83 = var_class_info;
8752 {
8753 var84 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_83);
8754 }
8755 var_85 = var84;
8756 for(;;) {
8757 {
8758 var86 = ((short int(*)(val* self))((((long)var_85&3)?class_info[((long)var_85&3)]:var_85->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_85); /* is_ok on <var_85:IndexedIterator[nullable MClass]>*/
8759 }
8760 if (var86){
8761 } else {
8762 goto BREAK_label87;
8763 }
8764 {
8765 var88 = ((val*(*)(val* self))((((long)var_85&3)?class_info[((long)var_85&3)]:var_85->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_85); /* item on <var_85:IndexedIterator[nullable MClass]>*/
8766 }
8767 var_t89 = var88;
8768 if (var_t89 == NULL) {
8769 var90 = 1; /* is null */
8770 } else {
8771 var90 = 0; /* arg is null but recv is not */
8772 }
8773 if (0) {
8774 { /* Inline kernel$Object$== (var_t89,((val*)NULL)) on <var_t89:nullable MClass> */
8775 var_other = ((val*)NULL);
8776 {
8777 { /* Inline kernel$Object$is_same_instance (var_t89,var_other) on <var_t89:nullable MClass(MClass)> */
8778 var95 = var_t89 == var_other;
8779 var93 = var95;
8780 goto RET_LABEL94;
8781 RET_LABEL94:(void)0;
8782 }
8783 }
8784 var91 = var93;
8785 goto RET_LABEL92;
8786 RET_LABEL92:(void)0;
8787 }
8788 var90 = var91;
8789 }
8790 if (var90){
8791 if (likely(varonce96!=NULL)) {
8792 var97 = varonce96;
8793 } else {
8794 var98 = "NULL,";
8795 var100 = (val*)(5l<<2|1);
8796 var101 = (val*)(5l<<2|1);
8797 var102 = (val*)((long)(0)<<2|3);
8798 var103 = (val*)((long)(0)<<2|3);
8799 var99 = core__flat___CString___to_s_unsafe(var98, var100, var101, var102, var103);
8800 var97 = var99;
8801 varonce96 = var97;
8802 }
8803 {
8804 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var97); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
8805 }
8806 } else {
8807 if (unlikely(varonce104==NULL)) {
8808 var105 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8809 if (likely(varonce106!=NULL)) {
8810 var107 = varonce106;
8811 } else {
8812 var108 = "class_";
8813 var110 = (val*)(6l<<2|1);
8814 var111 = (val*)(6l<<2|1);
8815 var112 = (val*)((long)(0)<<2|3);
8816 var113 = (val*)((long)(0)<<2|3);
8817 var109 = core__flat___CString___to_s_unsafe(var108, var110, var111, var112, var113);
8818 var107 = var109;
8819 varonce106 = var107;
8820 }
8821 ((struct instance_core__NativeArray*)var105)->values[0]=var107;
8822 } else {
8823 var105 = varonce104;
8824 varonce104 = NULL;
8825 }
8826 {
8827 var114 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_t89);
8828 }
8829 ((struct instance_core__NativeArray*)var105)->values[1]=var114;
8830 {
8831 var115 = ((val*(*)(val* self))(var105->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var105); /* native_to_s on <var105:NativeArray[String]>*/
8832 }
8833 varonce104 = var105;
8834 var_s = var115;
8835 {
8836 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var_s); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
8837 }
8838 if (unlikely(varonce116==NULL)) {
8839 var117 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
8840 if (likely(varonce118!=NULL)) {
8841 var119 = varonce118;
8842 } else {
8843 var120 = "&";
8844 var122 = (val*)(1l<<2|1);
8845 var123 = (val*)(1l<<2|1);
8846 var124 = (val*)((long)(0)<<2|3);
8847 var125 = (val*)((long)(0)<<2|3);
8848 var121 = core__flat___CString___to_s_unsafe(var120, var122, var123, var124, var125);
8849 var119 = var121;
8850 varonce118 = var119;
8851 }
8852 ((struct instance_core__NativeArray*)var117)->values[0]=var119;
8853 if (likely(varonce126!=NULL)) {
8854 var127 = varonce126;
8855 } else {
8856 var128 = ",";
8857 var130 = (val*)(1l<<2|1);
8858 var131 = (val*)(1l<<2|1);
8859 var132 = (val*)((long)(0)<<2|3);
8860 var133 = (val*)((long)(0)<<2|3);
8861 var129 = core__flat___CString___to_s_unsafe(var128, var130, var131, var132, var133);
8862 var127 = var129;
8863 varonce126 = var127;
8864 }
8865 ((struct instance_core__NativeArray*)var117)->values[2]=var127;
8866 } else {
8867 var117 = varonce116;
8868 varonce116 = NULL;
8869 }
8870 ((struct instance_core__NativeArray*)var117)->values[1]=var_s;
8871 {
8872 var134 = ((val*(*)(val* self))(var117->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var117); /* native_to_s on <var117:NativeArray[String]>*/
8873 }
8874 varonce116 = var117;
8875 {
8876 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var134); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
8877 }
8878 }
8879 {
8880 ((void(*)(val* self))((((long)var_85&3)?class_info[((long)var_85&3)]:var_85->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_85); /* next on <var_85:IndexedIterator[nullable MClass]>*/
8881 }
8882 }
8883 BREAK_label87: (void)0;
8884 {
8885 ((void(*)(val* self))((((long)var_85&3)?class_info[((long)var_85&3)]:var_85->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_85); /* finish on <var_85:IndexedIterator[nullable MClass]>*/
8886 }
8887 if (likely(varonce135!=NULL)) {
8888 var136 = varonce135;
8889 } else {
8890 var137 = "};";
8891 var139 = (val*)(2l<<2|1);
8892 var140 = (val*)(2l<<2|1);
8893 var141 = (val*)((long)(0)<<2|3);
8894 var142 = (val*)((long)(0)<<2|3);
8895 var138 = core__flat___CString___to_s_unsafe(var137, var139, var140, var141, var142);
8896 var136 = var138;
8897 varonce135 = var136;
8898 }
8899 {
8900 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var136); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
8901 }
8902 if (likely(varonce143!=NULL)) {
8903 var144 = varonce143;
8904 } else {
8905 var145 = "const struct type *type_info[4] = {";
8906 var147 = (val*)(35l<<2|1);
8907 var148 = (val*)(35l<<2|1);
8908 var149 = (val*)((long)(0)<<2|3);
8909 var150 = (val*)((long)(0)<<2|3);
8910 var146 = core__flat___CString___to_s_unsafe(var145, var147, var148, var149, var150);
8911 var144 = var146;
8912 varonce143 = var144;
8913 }
8914 {
8915 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var144); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
8916 }
8917 var_151 = var_class_info;
8918 {
8919 var152 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_151);
8920 }
8921 var_153 = var152;
8922 for(;;) {
8923 {
8924 var154 = ((short int(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_153); /* is_ok on <var_153:IndexedIterator[nullable MClass]>*/
8925 }
8926 if (var154){
8927 } else {
8928 goto BREAK_label155;
8929 }
8930 {
8931 var156 = ((val*(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_153); /* item on <var_153:IndexedIterator[nullable MClass]>*/
8932 }
8933 var_t157 = var156;
8934 if (var_t157 == NULL) {
8935 var158 = 1; /* is null */
8936 } else {
8937 var158 = 0; /* arg is null but recv is not */
8938 }
8939 if (0) {
8940 { /* Inline kernel$Object$== (var_t157,((val*)NULL)) on <var_t157:nullable MClass> */
8941 var_other = ((val*)NULL);
8942 {
8943 { /* Inline kernel$Object$is_same_instance (var_t157,var_other) on <var_t157:nullable MClass(MClass)> */
8944 var163 = var_t157 == var_other;
8945 var161 = var163;
8946 goto RET_LABEL162;
8947 RET_LABEL162:(void)0;
8948 }
8949 }
8950 var159 = var161;
8951 goto RET_LABEL160;
8952 RET_LABEL160:(void)0;
8953 }
8954 var158 = var159;
8955 }
8956 if (var158){
8957 if (likely(varonce164!=NULL)) {
8958 var165 = varonce164;
8959 } else {
8960 var166 = "NULL,";
8961 var168 = (val*)(5l<<2|1);
8962 var169 = (val*)(5l<<2|1);
8963 var170 = (val*)((long)(0)<<2|3);
8964 var171 = (val*)((long)(0)<<2|3);
8965 var167 = core__flat___CString___to_s_unsafe(var166, var168, var169, var170, var171);
8966 var165 = var167;
8967 varonce164 = var165;
8968 }
8969 {
8970 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var165); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
8971 }
8972 } else {
8973 if (unlikely(varonce172==NULL)) {
8974 var173 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
8975 if (likely(varonce174!=NULL)) {
8976 var175 = varonce174;
8977 } else {
8978 var176 = "type_";
8979 var178 = (val*)(5l<<2|1);
8980 var179 = (val*)(5l<<2|1);
8981 var180 = (val*)((long)(0)<<2|3);
8982 var181 = (val*)((long)(0)<<2|3);
8983 var177 = core__flat___CString___to_s_unsafe(var176, var178, var179, var180, var181);
8984 var175 = var177;
8985 varonce174 = var175;
8986 }
8987 ((struct instance_core__NativeArray*)var173)->values[0]=var175;
8988 } else {
8989 var173 = varonce172;
8990 varonce172 = NULL;
8991 }
8992 {
8993 var182 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_t157);
8994 }
8995 ((struct instance_core__NativeArray*)var173)->values[1]=var182;
8996 {
8997 var183 = ((val*(*)(val* self))(var173->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var173); /* native_to_s on <var173:NativeArray[String]>*/
8998 }
8999 varonce172 = var173;
9000 var_s184 = var183;
9001 {
9002 { /* Inline separate_compiler$SeparateCompiler$undead_types (self) on <self:SeparateCompiler> */
9003 var187 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___undead_types].val; /* _undead_types on <self:SeparateCompiler> */
9004 if (unlikely(var187 == NULL)) {
9005 if(catchStack.cursor >= 0){
9006 longjmp(catchStack.envs[catchStack.cursor], 1);
9007 }
9008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _undead_types");
9009 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 146);
9010 fatal_exit(1);
9011 }
9012 var185 = var187;
9013 RET_LABEL186:(void)0;
9014 }
9015 }
9016 {
9017 { /* Inline model$MClass$mclass_type (var_t157) on <var_t157:nullable MClass(MClass)> */
9018 var190 = var_t157->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_t157:nullable MClass(MClass)> */
9019 if (unlikely(var190 == NULL)) {
9020 if(catchStack.cursor >= 0){
9021 longjmp(catchStack.envs[catchStack.cursor], 1);
9022 }
9023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9024 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
9025 fatal_exit(1);
9026 }
9027 var188 = var190;
9028 RET_LABEL189:(void)0;
9029 }
9030 }
9031 {
9032 ((void(*)(val* self, val* p0))((((long)var185&3)?class_info[((long)var185&3)]:var185->class)->vft[COLOR_core__abstract_collection__SimpleCollection__add]))(var185, var188); /* add on <var185:Set[MType]>*/
9033 }
9034 {
9035 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v, var_s184); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v:SeparateCompilerVisitor>*/
9036 }
9037 if (unlikely(varonce191==NULL)) {
9038 var192 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
9039 if (likely(varonce193!=NULL)) {
9040 var194 = varonce193;
9041 } else {
9042 var195 = "&";
9043 var197 = (val*)(1l<<2|1);
9044 var198 = (val*)(1l<<2|1);
9045 var199 = (val*)((long)(0)<<2|3);
9046 var200 = (val*)((long)(0)<<2|3);
9047 var196 = core__flat___CString___to_s_unsafe(var195, var197, var198, var199, var200);
9048 var194 = var196;
9049 varonce193 = var194;
9050 }
9051 ((struct instance_core__NativeArray*)var192)->values[0]=var194;
9052 if (likely(varonce201!=NULL)) {
9053 var202 = varonce201;
9054 } else {
9055 var203 = ",";
9056 var205 = (val*)(1l<<2|1);
9057 var206 = (val*)(1l<<2|1);
9058 var207 = (val*)((long)(0)<<2|3);
9059 var208 = (val*)((long)(0)<<2|3);
9060 var204 = core__flat___CString___to_s_unsafe(var203, var205, var206, var207, var208);
9061 var202 = var204;
9062 varonce201 = var202;
9063 }
9064 ((struct instance_core__NativeArray*)var192)->values[2]=var202;
9065 } else {
9066 var192 = varonce191;
9067 varonce191 = NULL;
9068 }
9069 ((struct instance_core__NativeArray*)var192)->values[1]=var_s184;
9070 {
9071 var209 = ((val*(*)(val* self))(var192->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var192); /* native_to_s on <var192:NativeArray[String]>*/
9072 }
9073 varonce191 = var192;
9074 {
9075 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var209); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
9076 }
9077 }
9078 {
9079 ((void(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_153); /* next on <var_153:IndexedIterator[nullable MClass]>*/
9080 }
9081 }
9082 BREAK_label155: (void)0;
9083 {
9084 ((void(*)(val* self))((((long)var_153&3)?class_info[((long)var_153&3)]:var_153->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_153); /* finish on <var_153:IndexedIterator[nullable MClass]>*/
9085 }
9086 if (likely(varonce210!=NULL)) {
9087 var211 = varonce210;
9088 } else {
9089 var212 = "};";
9090 var214 = (val*)(2l<<2|1);
9091 var215 = (val*)(2l<<2|1);
9092 var216 = (val*)((long)(0)<<2|3);
9093 var217 = (val*)((long)(0)<<2|3);
9094 var213 = core__flat___CString___to_s_unsafe(var212, var214, var215, var216, var217);
9095 var211 = var213;
9096 varonce210 = var211;
9097 }
9098 {
9099 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var211); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:SeparateCompilerVisitor>*/
9100 }
9101 RET_LABEL:;
9102 }
9103 /* method separate_compiler$SeparateCompiler$hardening_live_type for (self: SeparateCompiler, SeparateCompilerVisitor, String) */
9104 void nitc___nitc__SeparateCompiler___hardening_live_type(val* self, val* p0, val* p1) {
9105 short int var /* : Bool */;
9106 int cltype;
9107 int idtype;
9108 const struct type* type_struct;
9109 const char* var_class_name;
9110 val* var_v /* var v: SeparateCompilerVisitor */;
9111 val* var_t /* var t: String */;
9112 val* var1 /* : AbstractCompiler */;
9113 val* var3 /* : AbstractCompiler */;
9114 val* var4 /* : ModelBuilder */;
9115 val* var6 /* : ModelBuilder */;
9116 val* var7 /* : ToolContext */;
9117 val* var9 /* : ToolContext */;
9118 val* var10 /* : OptionBool */;
9119 val* var12 /* : OptionBool */;
9120 val* var13 /* : nullable Object */;
9121 val* var15 /* : nullable Object */;
9122 short int var16 /* : Bool */;
9123 short int var17 /* : Bool */;
9124 val* var18 /* : NativeArray[String] */;
9125 static val* varonce;
9126 static val* varonce19;
9127 val* var20 /* : String */;
9128 char* var21 /* : CString */;
9129 val* var22 /* : String */;
9130 val* var23 /* : nullable Int */;
9131 val* var24 /* : nullable Int */;
9132 val* var25 /* : nullable Bool */;
9133 val* var26 /* : nullable Bool */;
9134 static val* varonce27;
9135 val* var28 /* : String */;
9136 char* var29 /* : CString */;
9137 val* var30 /* : String */;
9138 val* var31 /* : nullable Int */;
9139 val* var32 /* : nullable Int */;
9140 val* var33 /* : nullable Bool */;
9141 val* var34 /* : nullable Bool */;
9142 val* var35 /* : String */;
9143 static val* varonce36;
9144 val* var37 /* : String */;
9145 char* var38 /* : CString */;
9146 val* var39 /* : String */;
9147 val* var40 /* : nullable Int */;
9148 val* var41 /* : nullable Int */;
9149 val* var42 /* : nullable Bool */;
9150 val* var43 /* : nullable Bool */;
9151 static val* varonce44;
9152 val* var45 /* : String */;
9153 char* var46 /* : CString */;
9154 val* var47 /* : String */;
9155 val* var48 /* : nullable Int */;
9156 val* var49 /* : nullable Int */;
9157 val* var50 /* : nullable Bool */;
9158 val* var51 /* : nullable Bool */;
9159 val* var53 /* : NativeArray[String] */;
9160 static val* varonce52;
9161 static val* varonce54;
9162 val* var55 /* : String */;
9163 char* var56 /* : CString */;
9164 val* var57 /* : String */;
9165 val* var58 /* : nullable Int */;
9166 val* var59 /* : nullable Int */;
9167 val* var60 /* : nullable Bool */;
9168 val* var61 /* : nullable Bool */;
9169 static val* varonce62;
9170 val* var63 /* : String */;
9171 char* var64 /* : CString */;
9172 val* var65 /* : String */;
9173 val* var66 /* : nullable Int */;
9174 val* var67 /* : nullable Int */;
9175 val* var68 /* : nullable Bool */;
9176 val* var69 /* : nullable Bool */;
9177 val* var70 /* : String */;
9178 val* var72 /* : NativeArray[String] */;
9179 static val* varonce71;
9180 static val* varonce73;
9181 val* var74 /* : String */;
9182 char* var75 /* : CString */;
9183 val* var76 /* : String */;
9184 val* var77 /* : nullable Int */;
9185 val* var78 /* : nullable Int */;
9186 val* var79 /* : nullable Bool */;
9187 val* var80 /* : nullable Bool */;
9188 static val* varonce81;
9189 val* var82 /* : String */;
9190 char* var83 /* : CString */;
9191 val* var84 /* : String */;
9192 val* var85 /* : nullable Int */;
9193 val* var86 /* : nullable Int */;
9194 val* var87 /* : nullable Bool */;
9195 val* var88 /* : nullable Bool */;
9196 val* var89 /* : String */;
9197 static val* varonce90;
9198 val* var91 /* : String */;
9199 char* var92 /* : CString */;
9200 val* var93 /* : String */;
9201 val* var94 /* : nullable Int */;
9202 val* var95 /* : nullable Int */;
9203 val* var96 /* : nullable Bool */;
9204 val* var97 /* : nullable Bool */;
9205 static val* varonce98;
9206 val* var99 /* : String */;
9207 char* var100 /* : CString */;
9208 val* var101 /* : String */;
9209 val* var102 /* : nullable Int */;
9210 val* var103 /* : nullable Int */;
9211 val* var104 /* : nullable Bool */;
9212 val* var105 /* : nullable Bool */;
9213 /* Covariant cast for argument 0 (v) <p0:SeparateCompilerVisitor> isa VISITOR */
9214 /* <p0:SeparateCompilerVisitor> isa VISITOR */
9215 type_struct = self->type->resolution_table->types[COLOR_nitc__abstract_compiler__AbstractCompiler__VISITOR];
9216 cltype = type_struct->color;
9217 idtype = type_struct->id;
9218 if(cltype >= p0->type->table_size) {
9219 var = 0;
9220 } else {
9221 var = p0->type->type_table[cltype] == idtype;
9222 }
9223 if (unlikely(!var)) {
9224 var_class_name = p0 == NULL ? "null" : p0->type->name;
9225 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
9226 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1054);
9227 fatal_exit(1);
9228 }
9229 var_v = p0;
9230 var_t = p1;
9231 {
9232 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:SeparateCompilerVisitor> */
9233 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:SeparateCompilerVisitor> */
9234 if (unlikely(var3 == NULL)) {
9235 if(catchStack.cursor >= 0){
9236 longjmp(catchStack.envs[catchStack.cursor], 1);
9237 }
9238 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
9239 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
9240 fatal_exit(1);
9241 }
9242 var1 = var3;
9243 RET_LABEL2:(void)0;
9244 }
9245 }
9246 {
9247 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var1) on <var1:AbstractCompiler(SeparateCompiler)> */
9248 var6 = var1->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var1:AbstractCompiler(SeparateCompiler)> */
9249 if (unlikely(var6 == NULL)) {
9250 if(catchStack.cursor >= 0){
9251 longjmp(catchStack.envs[catchStack.cursor], 1);
9252 }
9253 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
9254 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
9255 fatal_exit(1);
9256 }
9257 var4 = var6;
9258 RET_LABEL5:(void)0;
9259 }
9260 }
9261 {
9262 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var4) on <var4:ModelBuilder> */
9263 var9 = var4->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var4:ModelBuilder> */
9264 if (unlikely(var9 == NULL)) {
9265 if(catchStack.cursor >= 0){
9266 longjmp(catchStack.envs[catchStack.cursor], 1);
9267 }
9268 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
9269 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
9270 fatal_exit(1);
9271 }
9272 var7 = var9;
9273 RET_LABEL8:(void)0;
9274 }
9275 }
9276 {
9277 { /* Inline abstract_compiler$ToolContext$opt_hardening (var7) on <var7:ToolContext> */
9278 var12 = var7->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_hardening].val; /* _opt_hardening on <var7:ToolContext> */
9279 if (unlikely(var12 == NULL)) {
9280 if(catchStack.cursor >= 0){
9281 longjmp(catchStack.envs[catchStack.cursor], 1);
9282 }
9283 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_hardening");
9284 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 46);
9285 fatal_exit(1);
9286 }
9287 var10 = var12;
9288 RET_LABEL11:(void)0;
9289 }
9290 }
9291 {
9292 { /* Inline opts$Option$value (var10) on <var10:OptionBool> */
9293 var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionBool> */
9294 var13 = var15;
9295 RET_LABEL14:(void)0;
9296 }
9297 }
9298 var16 = (short int)((long)(var13)>>2);
9299 var17 = !var16;
9300 if (var17){
9301 goto RET_LABEL;
9302 } else {
9303 }
9304 if (unlikely(varonce==NULL)) {
9305 var18 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
9306 if (likely(varonce19!=NULL)) {
9307 var20 = varonce19;
9308 } else {
9309 var21 = "if(";
9310 var23 = (val*)(3l<<2|1);
9311 var24 = (val*)(3l<<2|1);
9312 var25 = (val*)((long)(0)<<2|3);
9313 var26 = (val*)((long)(0)<<2|3);
9314 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
9315 var20 = var22;
9316 varonce19 = var20;
9317 }
9318 ((struct instance_core__NativeArray*)var18)->values[0]=var20;
9319 if (likely(varonce27!=NULL)) {
9320 var28 = varonce27;
9321 } else {
9322 var29 = " == NULL) {";
9323 var31 = (val*)(11l<<2|1);
9324 var32 = (val*)(11l<<2|1);
9325 var33 = (val*)((long)(0)<<2|3);
9326 var34 = (val*)((long)(0)<<2|3);
9327 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
9328 var28 = var30;
9329 varonce27 = var28;
9330 }
9331 ((struct instance_core__NativeArray*)var18)->values[2]=var28;
9332 } else {
9333 var18 = varonce;
9334 varonce = NULL;
9335 }
9336 ((struct instance_core__NativeArray*)var18)->values[1]=var_t;
9337 {
9338 var35 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
9339 }
9340 varonce = var18;
9341 {
9342 nitc___nitc__AbstractCompilerVisitor___add(var_v, var35); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
9343 }
9344 if (likely(varonce36!=NULL)) {
9345 var37 = varonce36;
9346 } else {
9347 var38 = "type null";
9348 var40 = (val*)(9l<<2|1);
9349 var41 = (val*)(9l<<2|1);
9350 var42 = (val*)((long)(0)<<2|3);
9351 var43 = (val*)((long)(0)<<2|3);
9352 var39 = core__flat___CString___to_s_unsafe(var38, var40, var41, var42, var43);
9353 var37 = var39;
9354 varonce36 = var37;
9355 }
9356 {
9357 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var37); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:SeparateCompilerVisitor>*/
9358 }
9359 if (likely(varonce44!=NULL)) {
9360 var45 = varonce44;
9361 } else {
9362 var46 = "}";
9363 var48 = (val*)(1l<<2|1);
9364 var49 = (val*)(1l<<2|1);
9365 var50 = (val*)((long)(0)<<2|3);
9366 var51 = (val*)((long)(0)<<2|3);
9367 var47 = core__flat___CString___to_s_unsafe(var46, var48, var49, var50, var51);
9368 var45 = var47;
9369 varonce44 = var45;
9370 }
9371 {
9372 nitc___nitc__AbstractCompilerVisitor___add(var_v, var45); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
9373 }
9374 if (unlikely(varonce52==NULL)) {
9375 var53 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
9376 if (likely(varonce54!=NULL)) {
9377 var55 = varonce54;
9378 } else {
9379 var56 = "if(";
9380 var58 = (val*)(3l<<2|1);
9381 var59 = (val*)(3l<<2|1);
9382 var60 = (val*)((long)(0)<<2|3);
9383 var61 = (val*)((long)(0)<<2|3);
9384 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
9385 var55 = var57;
9386 varonce54 = var55;
9387 }
9388 ((struct instance_core__NativeArray*)var53)->values[0]=var55;
9389 if (likely(varonce62!=NULL)) {
9390 var63 = varonce62;
9391 } else {
9392 var64 = "->table_size < 0) {";
9393 var66 = (val*)(19l<<2|1);
9394 var67 = (val*)(19l<<2|1);
9395 var68 = (val*)((long)(0)<<2|3);
9396 var69 = (val*)((long)(0)<<2|3);
9397 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
9398 var63 = var65;
9399 varonce62 = var63;
9400 }
9401 ((struct instance_core__NativeArray*)var53)->values[2]=var63;
9402 } else {
9403 var53 = varonce52;
9404 varonce52 = NULL;
9405 }
9406 ((struct instance_core__NativeArray*)var53)->values[1]=var_t;
9407 {
9408 var70 = ((val*(*)(val* self))(var53->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var53); /* native_to_s on <var53:NativeArray[String]>*/
9409 }
9410 varonce52 = var53;
9411 {
9412 nitc___nitc__AbstractCompilerVisitor___add(var_v, var70); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
9413 }
9414 if (unlikely(varonce71==NULL)) {
9415 var72 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
9416 if (likely(varonce73!=NULL)) {
9417 var74 = varonce73;
9418 } else {
9419 var75 = "PRINT_ERROR(\"Instantiation of a dead type: %s\\n\", ";
9420 var77 = (val*)(50l<<2|1);
9421 var78 = (val*)(50l<<2|1);
9422 var79 = (val*)((long)(0)<<2|3);
9423 var80 = (val*)((long)(0)<<2|3);
9424 var76 = core__flat___CString___to_s_unsafe(var75, var77, var78, var79, var80);
9425 var74 = var76;
9426 varonce73 = var74;
9427 }
9428 ((struct instance_core__NativeArray*)var72)->values[0]=var74;
9429 if (likely(varonce81!=NULL)) {
9430 var82 = varonce81;
9431 } else {
9432 var83 = "->name);";
9433 var85 = (val*)(8l<<2|1);
9434 var86 = (val*)(8l<<2|1);
9435 var87 = (val*)((long)(0)<<2|3);
9436 var88 = (val*)((long)(0)<<2|3);
9437 var84 = core__flat___CString___to_s_unsafe(var83, var85, var86, var87, var88);
9438 var82 = var84;
9439 varonce81 = var82;
9440 }
9441 ((struct instance_core__NativeArray*)var72)->values[2]=var82;
9442 } else {
9443 var72 = varonce71;
9444 varonce71 = NULL;
9445 }
9446 ((struct instance_core__NativeArray*)var72)->values[1]=var_t;
9447 {
9448 var89 = ((val*(*)(val* self))(var72->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var72); /* native_to_s on <var72:NativeArray[String]>*/
9449 }
9450 varonce71 = var72;
9451 {
9452 nitc___nitc__AbstractCompilerVisitor___add(var_v, var89); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
9453 }
9454 if (likely(varonce90!=NULL)) {
9455 var91 = varonce90;
9456 } else {
9457 var92 = "type dead";
9458 var94 = (val*)(9l<<2|1);
9459 var95 = (val*)(9l<<2|1);
9460 var96 = (val*)((long)(0)<<2|3);
9461 var97 = (val*)((long)(0)<<2|3);
9462 var93 = core__flat___CString___to_s_unsafe(var92, var94, var95, var96, var97);
9463 var91 = var93;
9464 varonce90 = var91;
9465 }
9466 {
9467 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var91); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:SeparateCompilerVisitor>*/
9468 }
9469 if (likely(varonce98!=NULL)) {
9470 var99 = varonce98;
9471 } else {
9472 var100 = "}";
9473 var102 = (val*)(1l<<2|1);
9474 var103 = (val*)(1l<<2|1);
9475 var104 = (val*)((long)(0)<<2|3);
9476 var105 = (val*)((long)(0)<<2|3);
9477 var101 = core__flat___CString___to_s_unsafe(var100, var102, var103, var104, var105);
9478 var99 = var101;
9479 varonce98 = var99;
9480 }
9481 {
9482 nitc___nitc__AbstractCompilerVisitor___add(var_v, var99); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:SeparateCompilerVisitor>*/
9483 }
9484 RET_LABEL:;
9485 }
9486 /* method separate_compiler$SeparateCompiler$new_visitor for (self: SeparateCompiler): SeparateCompilerVisitor */
9487 val* nitc___nitc__SeparateCompiler___nitc__abstract_compiler__AbstractCompiler__new_visitor(val* self) {
9488 val* var /* : SeparateCompilerVisitor */;
9489 val* var1 /* : SeparateCompilerVisitor */;
9490 short int var2 /* : Bool */;
9491 int cltype;
9492 int idtype;
9493 const struct type* type_struct;
9494 const char* var_class_name;
9495 var1 = NEW_nitc__SeparateCompilerVisitor(&type_nitc__SeparateCompilerVisitor);
9496 {
9497 ((void(*)(val* self, val* p0))(var1->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compiler_61d]))(var1, self); /* compiler= on <var1:SeparateCompilerVisitor>*/
9498 }
9499 {
9500 ((void(*)(val* self))(var1->class->vft[COLOR_core__kernel__Object__init]))(var1); /* init on <var1:SeparateCompilerVisitor>*/
9501 }
9502 /* <var1:SeparateCompilerVisitor> isa VISITOR */
9503 type_struct = self->type->resolution_table->types[COLOR_nitc__abstract_compiler__AbstractCompiler__VISITOR];
9504 cltype = type_struct->color;
9505 idtype = type_struct->id;
9506 if(cltype >= var1->type->table_size) {
9507 var2 = 0;
9508 } else {
9509 var2 = var1->type->type_table[cltype] == idtype;
9510 }
9511 if (unlikely(!var2)) {
9512 var_class_name = var1 == NULL ? "null" : var1->type->name;
9513 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
9514 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1067);
9515 fatal_exit(1);
9516 }
9517 var = var1;
9518 goto RET_LABEL;
9519 RET_LABEL:;
9520 return var;
9521 }
9522 /* method separate_compiler$SeparateCompiler$type_tables for (self: SeparateCompiler): Map[MType, Array[nullable MType]] */
9523 val* nitc___nitc__SeparateCompiler___type_tables(val* self) {
9524 val* var /* : Map[MType, Array[nullable MType]] */;
9525 val* var1 /* : Map[MType, Array[nullable MType]] */;
9526 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val; /* _type_tables on <self:SeparateCompiler> */
9527 if (unlikely(var1 == NULL)) {
9528 if(catchStack.cursor >= 0){
9529 longjmp(catchStack.envs[catchStack.cursor], 1);
9530 }
9531 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_tables");
9532 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1071);
9533 fatal_exit(1);
9534 }
9535 var = var1;
9536 RET_LABEL:;
9537 return var;
9538 }
9539 /* method separate_compiler$SeparateCompiler$type_tables= for (self: SeparateCompiler, Map[MType, Array[nullable MType]]) */
9540 void nitc___nitc__SeparateCompiler___type_tables_61d(val* self, val* p0) {
9541 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___type_tables].val = p0; /* _type_tables on <self:SeparateCompiler> */
9542 RET_LABEL:;
9543 }
9544 /* method separate_compiler$SeparateCompiler$resolution_tables for (self: SeparateCompiler): Map[MClassType, Array[nullable MType]] */
9545 val* nitc___nitc__SeparateCompiler___resolution_tables(val* self) {
9546 val* var /* : Map[MClassType, Array[nullable MType]] */;
9547 val* var1 /* : Map[MClassType, Array[nullable MType]] */;
9548 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables].val; /* _resolution_tables on <self:SeparateCompiler> */
9549 if (unlikely(var1 == NULL)) {
9550 if(catchStack.cursor >= 0){
9551 longjmp(catchStack.envs[catchStack.cursor], 1);
9552 }
9553 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _resolution_tables");
9554 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1072);
9555 fatal_exit(1);
9556 }
9557 var = var1;
9558 RET_LABEL:;
9559 return var;
9560 }
9561 /* method separate_compiler$SeparateCompiler$resolution_tables= for (self: SeparateCompiler, Map[MClassType, Array[nullable MType]]) */
9562 void nitc___nitc__SeparateCompiler___resolution_tables_61d(val* self, val* p0) {
9563 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___resolution_tables].val = p0; /* _resolution_tables on <self:SeparateCompiler> */
9564 RET_LABEL:;
9565 }
9566 /* method separate_compiler$SeparateCompiler$method_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MPropDef]] */
9567 val* nitc___nitc__SeparateCompiler___method_tables(val* self) {
9568 val* var /* : Map[MClass, Array[nullable MPropDef]] */;
9569 val* var1 /* : Map[MClass, Array[nullable MPropDef]] */;
9570 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables].val; /* _method_tables on <self:SeparateCompiler> */
9571 if (unlikely(var1 == NULL)) {
9572 if(catchStack.cursor >= 0){
9573 longjmp(catchStack.envs[catchStack.cursor], 1);
9574 }
9575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _method_tables");
9576 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1073);
9577 fatal_exit(1);
9578 }
9579 var = var1;
9580 RET_LABEL:;
9581 return var;
9582 }
9583 /* method separate_compiler$SeparateCompiler$method_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MPropDef]]) */
9584 void nitc___nitc__SeparateCompiler___method_tables_61d(val* self, val* p0) {
9585 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___method_tables].val = p0; /* _method_tables on <self:SeparateCompiler> */
9586 RET_LABEL:;
9587 }
9588 /* method separate_compiler$SeparateCompiler$attr_tables for (self: SeparateCompiler): Map[MClass, Array[nullable MProperty]] */
9589 val* nitc___nitc__SeparateCompiler___attr_tables(val* self) {
9590 val* var /* : Map[MClass, Array[nullable MProperty]] */;
9591 val* var1 /* : Map[MClass, Array[nullable MProperty]] */;
9592 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables].val; /* _attr_tables on <self:SeparateCompiler> */
9593 if (unlikely(var1 == NULL)) {
9594 if(catchStack.cursor >= 0){
9595 longjmp(catchStack.envs[catchStack.cursor], 1);
9596 }
9597 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _attr_tables");
9598 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 1074);
9599 fatal_exit(1);
9600 }
9601 var = var1;
9602 RET_LABEL:;
9603 return var;
9604 }
9605 /* method separate_compiler$SeparateCompiler$attr_tables= for (self: SeparateCompiler, Map[MClass, Array[nullable MProperty]]) */
9606 void nitc___nitc__SeparateCompiler___attr_tables_61d(val* self, val* p0) {
9607 self->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___attr_tables].val = p0; /* _attr_tables on <self:SeparateCompiler> */
9608 RET_LABEL:;
9609 }