Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__separate_compiler.sep.6.c
1 #include "nitc__separate_compiler.sep.0.h"
2 /* method separate_compiler$SeparateCompilerVisitor$native_array_def for (self: SeparateCompilerVisitor, String, nullable MType, Array[RuntimeVariable]): Bool */
3 short int nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__native_array_def(val* self, val* p0, val* p1, val* p2) {
4 short int var /* : Bool */;
5 val* var_pname /* var pname: String */;
6 val* var_ret_type /* var ret_type: nullable MType */;
7 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
8 val* var1 /* : nullable Object */;
9 val* var2 /* : MType */;
10 val* var4 /* : MType */;
11 val* var_elttype /* var elttype: MType */;
12 val* var5 /* : MModule */;
13 val* var6 /* : MClass */;
14 val* var_nclass /* var nclass: MClass */;
15 val* var7 /* : NativeArray[String] */;
16 static val* varonce;
17 static val* varonce8;
18 val* var9 /* : String */;
19 char* var10 /* : CString */;
20 val* var11 /* : String */;
21 val* var12 /* : nullable Int */;
22 val* var13 /* : nullable Int */;
23 val* var14 /* : nullable Bool */;
24 val* var15 /* : nullable Bool */;
25 static val* varonce16;
26 val* var17 /* : String */;
27 char* var18 /* : CString */;
28 val* var19 /* : String */;
29 val* var20 /* : nullable Int */;
30 val* var21 /* : nullable Int */;
31 val* var22 /* : nullable Bool */;
32 val* var23 /* : nullable Bool */;
33 static val* varonce24;
34 val* var25 /* : String */;
35 char* var26 /* : CString */;
36 val* var27 /* : String */;
37 val* var28 /* : nullable Int */;
38 val* var29 /* : nullable Int */;
39 val* var30 /* : nullable Bool */;
40 val* var31 /* : nullable Bool */;
41 val* var32 /* : String */;
42 val* var33 /* : nullable Object */;
43 val* var34 /* : String */;
44 val* var35 /* : String */;
45 val* var_recv /* var recv: String */;
46 static val* varonce36;
47 val* var37 /* : String */;
48 char* var38 /* : CString */;
49 val* var39 /* : String */;
50 val* var40 /* : nullable Int */;
51 val* var41 /* : nullable Int */;
52 val* var42 /* : nullable Bool */;
53 val* var43 /* : nullable Bool */;
54 short int var44 /* : Bool */;
55 val* var46 /* : NativeArray[String] */;
56 static val* varonce45;
57 static val* varonce47;
58 val* var48 /* : String */;
59 char* var49 /* : CString */;
60 val* var50 /* : String */;
61 val* var51 /* : nullable Int */;
62 val* var52 /* : nullable Int */;
63 val* var53 /* : nullable Bool */;
64 val* var54 /* : nullable Bool */;
65 static val* varonce55;
66 val* var56 /* : String */;
67 char* var57 /* : CString */;
68 val* var58 /* : String */;
69 val* var59 /* : nullable Int */;
70 val* var60 /* : nullable Int */;
71 val* var61 /* : nullable Bool */;
72 val* var62 /* : nullable Bool */;
73 val* var63 /* : nullable Object */;
74 val* var64 /* : String */;
75 val* var65 /* : String */;
76 val* var66 /* : AbstractCompiler */;
77 val* var68 /* : AbstractCompiler */;
78 val* var69 /* : MModule */;
79 val* var71 /* : MModule */;
80 val* var72 /* : MClassType */;
81 val* var73 /* : RuntimeVariable */;
82 val* var_res /* var res: RuntimeVariable */;
83 static val* varonce75;
84 val* var76 /* : String */;
85 char* var77 /* : CString */;
86 val* var78 /* : String */;
87 val* var79 /* : nullable Int */;
88 val* var80 /* : nullable Int */;
89 val* var81 /* : nullable Bool */;
90 val* var82 /* : nullable Bool */;
91 short int var83 /* : Bool */;
92 val* var85 /* : NativeArray[String] */;
93 static val* varonce84;
94 static val* varonce86;
95 val* var87 /* : String */;
96 char* var88 /* : CString */;
97 val* var89 /* : String */;
98 val* var90 /* : nullable Int */;
99 val* var91 /* : nullable Int */;
100 val* var92 /* : nullable Bool */;
101 val* var93 /* : nullable Bool */;
102 static val* varonce94;
103 val* var95 /* : String */;
104 char* var96 /* : CString */;
105 val* var97 /* : String */;
106 val* var98 /* : nullable Int */;
107 val* var99 /* : nullable Int */;
108 val* var100 /* : nullable Bool */;
109 val* var101 /* : nullable Bool */;
110 static val* varonce102;
111 val* var103 /* : String */;
112 char* var104 /* : CString */;
113 val* var105 /* : String */;
114 val* var106 /* : nullable Int */;
115 val* var107 /* : nullable Int */;
116 val* var108 /* : nullable Bool */;
117 val* var109 /* : nullable Bool */;
118 val* var110 /* : nullable Object */;
119 val* var111 /* : String */;
120 val* var112 /* : nullable Object */;
121 val* var113 /* : String */;
122 val* var114 /* : String */;
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 short int var123 /* : Bool */;
132 val* var125 /* : NativeArray[String] */;
133 static val* varonce124;
134 static val* varonce126;
135 val* var127 /* : String */;
136 char* var128 /* : CString */;
137 val* var129 /* : String */;
138 val* var130 /* : nullable Int */;
139 val* var131 /* : nullable Int */;
140 val* var132 /* : nullable Bool */;
141 val* var133 /* : nullable Bool */;
142 static val* varonce134;
143 val* var135 /* : String */;
144 char* var136 /* : CString */;
145 val* var137 /* : String */;
146 val* var138 /* : nullable Int */;
147 val* var139 /* : nullable Int */;
148 val* var140 /* : nullable Bool */;
149 val* var141 /* : nullable Bool */;
150 static val* varonce142;
151 val* var143 /* : String */;
152 char* var144 /* : CString */;
153 val* var145 /* : String */;
154 val* var146 /* : nullable Int */;
155 val* var147 /* : nullable Int */;
156 val* var148 /* : nullable Bool */;
157 val* var149 /* : nullable Bool */;
158 val* var150 /* : String */;
159 val* var151 /* : nullable Object */;
160 val* var152 /* : String */;
161 val* var153 /* : String */;
162 val* var154 /* : RuntimeVariable */;
163 static val* varonce155;
164 val* var156 /* : String */;
165 char* var157 /* : CString */;
166 val* var158 /* : String */;
167 val* var159 /* : nullable Int */;
168 val* var160 /* : nullable Int */;
169 val* var161 /* : nullable Bool */;
170 val* var162 /* : nullable Bool */;
171 short int var163 /* : Bool */;
172 val* var165 /* : NativeArray[String] */;
173 static val* varonce164;
174 static val* varonce166;
175 val* var167 /* : String */;
176 char* var168 /* : CString */;
177 val* var169 /* : String */;
178 val* var170 /* : nullable Int */;
179 val* var171 /* : nullable Int */;
180 val* var172 /* : nullable Bool */;
181 val* var173 /* : nullable Bool */;
182 static val* varonce174;
183 val* var175 /* : String */;
184 char* var176 /* : CString */;
185 val* var177 /* : String */;
186 val* var178 /* : nullable Int */;
187 val* var179 /* : nullable Int */;
188 val* var180 /* : nullable Bool */;
189 val* var181 /* : nullable Bool */;
190 static val* varonce182;
191 val* var183 /* : String */;
192 char* var184 /* : CString */;
193 val* var185 /* : String */;
194 val* var186 /* : nullable Int */;
195 val* var187 /* : nullable Int */;
196 val* var188 /* : nullable Bool */;
197 val* var189 /* : nullable Bool */;
198 val* var190 /* : String */;
199 val* var191 /* : nullable Object */;
200 val* var192 /* : String */;
201 val* var193 /* : String */;
202 val* var_recv1 /* var recv1: String */;
203 val* var195 /* : NativeArray[String] */;
204 static val* varonce194;
205 static val* varonce196;
206 val* var197 /* : String */;
207 char* var198 /* : CString */;
208 val* var199 /* : String */;
209 val* var200 /* : nullable Int */;
210 val* var201 /* : nullable Int */;
211 val* var202 /* : nullable Bool */;
212 val* var203 /* : nullable Bool */;
213 static val* varonce204;
214 val* var205 /* : String */;
215 char* var206 /* : CString */;
216 val* var207 /* : String */;
217 val* var208 /* : nullable Int */;
218 val* var209 /* : nullable Int */;
219 val* var210 /* : nullable Bool */;
220 val* var211 /* : nullable Bool */;
221 static val* varonce212;
222 val* var213 /* : String */;
223 char* var214 /* : CString */;
224 val* var215 /* : String */;
225 val* var216 /* : nullable Int */;
226 val* var217 /* : nullable Int */;
227 val* var218 /* : nullable Bool */;
228 val* var219 /* : nullable Bool */;
229 static val* varonce220;
230 val* var221 /* : String */;
231 char* var222 /* : CString */;
232 val* var223 /* : String */;
233 val* var224 /* : nullable Int */;
234 val* var225 /* : nullable Int */;
235 val* var226 /* : nullable Bool */;
236 val* var227 /* : nullable Bool */;
237 static val* varonce228;
238 val* var229 /* : String */;
239 char* var230 /* : CString */;
240 val* var231 /* : String */;
241 val* var232 /* : nullable Int */;
242 val* var233 /* : nullable Int */;
243 val* var234 /* : nullable Bool */;
244 val* var235 /* : nullable Bool */;
245 val* var236 /* : nullable Object */;
246 val* var237 /* : String */;
247 val* var238 /* : String */;
248 val* var239 /* : String */;
249 static val* varonce240;
250 val* var241 /* : String */;
251 char* var242 /* : CString */;
252 val* var243 /* : String */;
253 val* var244 /* : nullable Int */;
254 val* var245 /* : nullable Int */;
255 val* var246 /* : nullable Bool */;
256 val* var247 /* : nullable Bool */;
257 short int var248 /* : Bool */;
258 val* var250 /* : NativeArray[String] */;
259 static val* varonce249;
260 static val* varonce251;
261 val* var252 /* : String */;
262 char* var253 /* : CString */;
263 val* var254 /* : String */;
264 val* var255 /* : nullable Int */;
265 val* var256 /* : nullable Int */;
266 val* var257 /* : nullable Bool */;
267 val* var258 /* : nullable Bool */;
268 static val* varonce259;
269 val* var260 /* : String */;
270 char* var261 /* : CString */;
271 val* var262 /* : String */;
272 val* var263 /* : nullable Int */;
273 val* var264 /* : nullable Int */;
274 val* var265 /* : nullable Bool */;
275 val* var266 /* : nullable Bool */;
276 static val* varonce267;
277 val* var268 /* : String */;
278 char* var269 /* : CString */;
279 val* var270 /* : String */;
280 val* var271 /* : nullable Int */;
281 val* var272 /* : nullable Int */;
282 val* var273 /* : nullable Bool */;
283 val* var274 /* : nullable Bool */;
284 val* var275 /* : String */;
285 val* var276 /* : nullable Object */;
286 val* var277 /* : String */;
287 val* var278 /* : String */;
288 val* var_recv1279 /* var recv1: String */;
289 val* var281 /* : NativeArray[String] */;
290 static val* varonce280;
291 static val* varonce282;
292 val* var283 /* : String */;
293 char* var284 /* : CString */;
294 val* var285 /* : String */;
295 val* var286 /* : nullable Int */;
296 val* var287 /* : nullable Int */;
297 val* var288 /* : nullable Bool */;
298 val* var289 /* : nullable Bool */;
299 static val* varonce290;
300 val* var291 /* : String */;
301 char* var292 /* : CString */;
302 val* var293 /* : String */;
303 val* var294 /* : nullable Int */;
304 val* var295 /* : nullable Int */;
305 val* var296 /* : nullable Bool */;
306 val* var297 /* : nullable Bool */;
307 static val* varonce298;
308 val* var299 /* : String */;
309 char* var300 /* : CString */;
310 val* var301 /* : String */;
311 val* var302 /* : nullable Int */;
312 val* var303 /* : nullable Int */;
313 val* var304 /* : nullable Bool */;
314 val* var305 /* : nullable Bool */;
315 static val* varonce306;
316 val* var307 /* : String */;
317 char* var308 /* : CString */;
318 val* var309 /* : String */;
319 val* var310 /* : nullable Int */;
320 val* var311 /* : nullable Int */;
321 val* var312 /* : nullable Bool */;
322 val* var313 /* : nullable Bool */;
323 static val* varonce314;
324 val* var315 /* : String */;
325 char* var316 /* : CString */;
326 val* var317 /* : String */;
327 val* var318 /* : nullable Int */;
328 val* var319 /* : nullable Int */;
329 val* var320 /* : nullable Bool */;
330 val* var321 /* : nullable Bool */;
331 static val* varonce322;
332 val* var323 /* : String */;
333 char* var324 /* : CString */;
334 val* var325 /* : String */;
335 val* var326 /* : nullable Int */;
336 val* var327 /* : nullable Int */;
337 val* var328 /* : nullable Bool */;
338 val* var329 /* : nullable Bool */;
339 static val* varonce330;
340 val* var331 /* : String */;
341 char* var332 /* : CString */;
342 val* var333 /* : String */;
343 val* var334 /* : nullable Int */;
344 val* var335 /* : nullable Int */;
345 val* var336 /* : nullable Bool */;
346 val* var337 /* : nullable Bool */;
347 val* var338 /* : nullable Object */;
348 val* var339 /* : String */;
349 val* var340 /* : nullable Object */;
350 val* var341 /* : String */;
351 val* var342 /* : nullable Object */;
352 val* var343 /* : String */;
353 val* var344 /* : String */;
354 val* var345 /* : String */;
355 var_pname = p0;
356 var_ret_type = p1;
357 var_arguments = p2;
358 {
359 var1 = core___core__SequenceRead___Collection__first(var_arguments);
360 }
361 {
362 { /* Inline abstract_compiler$RuntimeVariable$mtype (var1) on <var1:nullable Object(RuntimeVariable)> */
363 var4 = var1->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var1:nullable Object(RuntimeVariable)> */
364 if (unlikely(var4 == NULL)) {
365 if(catchStack.cursor >= 0){
366 longjmp(catchStack.envs[catchStack.cursor], 1);
367 }
368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
370 fatal_exit(1);
371 }
372 var2 = var4;
373 RET_LABEL3:(void)0;
374 }
375 }
376 var_elttype = var2;
377 {
378 var5 = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
379 }
380 {
381 var6 = nitc__model___MModule___native_array_class(var5);
382 }
383 var_nclass = var6;
384 if (unlikely(varonce==NULL)) {
385 var7 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
386 if (likely(varonce8!=NULL)) {
387 var9 = varonce8;
388 } else {
389 var10 = "((struct instance_";
390 var12 = (val*)(18l<<2|1);
391 var13 = (val*)(18l<<2|1);
392 var14 = (val*)((long)(0)<<2|3);
393 var15 = (val*)((long)(0)<<2|3);
394 var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
395 var9 = var11;
396 varonce8 = var9;
397 }
398 ((struct instance_core__NativeArray*)var7)->values[0]=var9;
399 if (likely(varonce16!=NULL)) {
400 var17 = varonce16;
401 } else {
402 var18 = "*)";
403 var20 = (val*)(2l<<2|1);
404 var21 = (val*)(2l<<2|1);
405 var22 = (val*)((long)(0)<<2|3);
406 var23 = (val*)((long)(0)<<2|3);
407 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
408 var17 = var19;
409 varonce16 = var17;
410 }
411 ((struct instance_core__NativeArray*)var7)->values[2]=var17;
412 if (likely(varonce24!=NULL)) {
413 var25 = varonce24;
414 } else {
415 var26 = ")->values";
416 var28 = (val*)(9l<<2|1);
417 var29 = (val*)(9l<<2|1);
418 var30 = (val*)((long)(0)<<2|3);
419 var31 = (val*)((long)(0)<<2|3);
420 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
421 var25 = var27;
422 varonce24 = var25;
423 }
424 ((struct instance_core__NativeArray*)var7)->values[4]=var25;
425 } else {
426 var7 = varonce;
427 varonce = NULL;
428 }
429 {
430 var32 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_nclass);
431 }
432 ((struct instance_core__NativeArray*)var7)->values[1]=var32;
433 {
434 var33 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
435 }
436 {
437 var34 = ((val*(*)(val* self))(var33->class->vft[COLOR_core__abstract_text__Object__to_s]))(var33); /* to_s on <var33:nullable Object(RuntimeVariable)>*/
438 }
439 ((struct instance_core__NativeArray*)var7)->values[3]=var34;
440 {
441 var35 = ((val*(*)(val* self))(var7->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var7); /* native_to_s on <var7:NativeArray[String]>*/
442 }
443 varonce = var7;
444 var_recv = var35;
445 if (likely(varonce36!=NULL)) {
446 var37 = varonce36;
447 } else {
448 var38 = "[]";
449 var40 = (val*)(2l<<2|1);
450 var41 = (val*)(2l<<2|1);
451 var42 = (val*)((long)(0)<<2|3);
452 var43 = (val*)((long)(0)<<2|3);
453 var39 = core__flat___CString___to_s_unsafe(var38, var40, var41, var42, var43);
454 var37 = var39;
455 varonce36 = var37;
456 }
457 {
458 var44 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_pname, var37); /* == on <var_pname:String>*/
459 }
460 if (var44){
461 if (unlikely(varonce45==NULL)) {
462 var46 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
463 if (likely(varonce47!=NULL)) {
464 var48 = varonce47;
465 } else {
466 var49 = "[";
467 var51 = (val*)(1l<<2|1);
468 var52 = (val*)(1l<<2|1);
469 var53 = (val*)((long)(0)<<2|3);
470 var54 = (val*)((long)(0)<<2|3);
471 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
472 var48 = var50;
473 varonce47 = var48;
474 }
475 ((struct instance_core__NativeArray*)var46)->values[1]=var48;
476 if (likely(varonce55!=NULL)) {
477 var56 = varonce55;
478 } else {
479 var57 = "]";
480 var59 = (val*)(1l<<2|1);
481 var60 = (val*)(1l<<2|1);
482 var61 = (val*)((long)(0)<<2|3);
483 var62 = (val*)((long)(0)<<2|3);
484 var58 = core__flat___CString___to_s_unsafe(var57, var59, var60, var61, var62);
485 var56 = var58;
486 varonce55 = var56;
487 }
488 ((struct instance_core__NativeArray*)var46)->values[3]=var56;
489 } else {
490 var46 = varonce45;
491 varonce45 = NULL;
492 }
493 ((struct instance_core__NativeArray*)var46)->values[0]=var_recv;
494 {
495 var63 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
496 }
497 {
498 var64 = ((val*(*)(val* self))(var63->class->vft[COLOR_core__abstract_text__Object__to_s]))(var63); /* to_s on <var63:nullable Object(RuntimeVariable)>*/
499 }
500 ((struct instance_core__NativeArray*)var46)->values[2]=var64;
501 {
502 var65 = ((val*(*)(val* self))(var46->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var46); /* native_to_s on <var46:NativeArray[String]>*/
503 }
504 varonce45 = var46;
505 {
506 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
507 var68 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
508 if (unlikely(var68 == NULL)) {
509 if(catchStack.cursor >= 0){
510 longjmp(catchStack.envs[catchStack.cursor], 1);
511 }
512 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
513 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
514 fatal_exit(1);
515 }
516 var66 = var68;
517 RET_LABEL67:(void)0;
518 }
519 }
520 {
521 { /* Inline abstract_compiler$AbstractCompiler$mainmodule (var66) on <var66:AbstractCompiler(SeparateCompiler)> */
522 var71 = var66->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___mainmodule].val; /* _mainmodule on <var66:AbstractCompiler(SeparateCompiler)> */
523 if (unlikely(var71 == NULL)) {
524 if(catchStack.cursor >= 0){
525 longjmp(catchStack.envs[catchStack.cursor], 1);
526 }
527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mainmodule");
528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 545);
529 fatal_exit(1);
530 }
531 var69 = var71;
532 RET_LABEL70:(void)0;
533 }
534 }
535 {
536 var72 = nitc__model___MModule___object_type(var69);
537 }
538 {
539 var73 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var65, var72);
540 }
541 var_res = var73;
542 if (unlikely(var_ret_type == NULL)) {
543 if(catchStack.cursor >= 0){
544 longjmp(catchStack.envs[catchStack.cursor], 1);
545 }
546 PRINT_ERROR("Runtime error: %s", "Cast failed");
547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2116);
548 fatal_exit(1);
549 }
550 {
551 { /* Inline abstract_compiler$RuntimeVariable$mcasttype= (var_res,var_ret_type) on <var_res:RuntimeVariable> */
552 var_res->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mcasttype].val = var_ret_type; /* _mcasttype on <var_res:RuntimeVariable> */
553 RET_LABEL74:(void)0;
554 }
555 }
556 {
557 nitc___nitc__AbstractCompilerVisitor___ret(self, var_res); /* Direct call abstract_compiler$AbstractCompilerVisitor$ret on <self:SeparateCompilerVisitor>*/
558 }
559 var = 1;
560 goto RET_LABEL;
561 } else {
562 if (likely(varonce75!=NULL)) {
563 var76 = varonce75;
564 } else {
565 var77 = "[]=";
566 var79 = (val*)(3l<<2|1);
567 var80 = (val*)(3l<<2|1);
568 var81 = (val*)((long)(0)<<2|3);
569 var82 = (val*)((long)(0)<<2|3);
570 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
571 var76 = var78;
572 varonce75 = var76;
573 }
574 {
575 var83 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_pname, var76); /* == on <var_pname:String>*/
576 }
577 if (var83){
578 if (unlikely(varonce84==NULL)) {
579 var85 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
580 if (likely(varonce86!=NULL)) {
581 var87 = varonce86;
582 } else {
583 var88 = "[";
584 var90 = (val*)(1l<<2|1);
585 var91 = (val*)(1l<<2|1);
586 var92 = (val*)((long)(0)<<2|3);
587 var93 = (val*)((long)(0)<<2|3);
588 var89 = core__flat___CString___to_s_unsafe(var88, var90, var91, var92, var93);
589 var87 = var89;
590 varonce86 = var87;
591 }
592 ((struct instance_core__NativeArray*)var85)->values[1]=var87;
593 if (likely(varonce94!=NULL)) {
594 var95 = varonce94;
595 } else {
596 var96 = "]=";
597 var98 = (val*)(2l<<2|1);
598 var99 = (val*)(2l<<2|1);
599 var100 = (val*)((long)(0)<<2|3);
600 var101 = (val*)((long)(0)<<2|3);
601 var97 = core__flat___CString___to_s_unsafe(var96, var98, var99, var100, var101);
602 var95 = var97;
603 varonce94 = var95;
604 }
605 ((struct instance_core__NativeArray*)var85)->values[3]=var95;
606 if (likely(varonce102!=NULL)) {
607 var103 = varonce102;
608 } else {
609 var104 = ";";
610 var106 = (val*)(1l<<2|1);
611 var107 = (val*)(1l<<2|1);
612 var108 = (val*)((long)(0)<<2|3);
613 var109 = (val*)((long)(0)<<2|3);
614 var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109);
615 var103 = var105;
616 varonce102 = var103;
617 }
618 ((struct instance_core__NativeArray*)var85)->values[5]=var103;
619 } else {
620 var85 = varonce84;
621 varonce84 = NULL;
622 }
623 ((struct instance_core__NativeArray*)var85)->values[0]=var_recv;
624 {
625 var110 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
626 }
627 {
628 var111 = ((val*(*)(val* self))(var110->class->vft[COLOR_core__abstract_text__Object__to_s]))(var110); /* to_s on <var110:nullable Object(RuntimeVariable)>*/
629 }
630 ((struct instance_core__NativeArray*)var85)->values[2]=var111;
631 {
632 var112 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 2l);
633 }
634 {
635 var113 = ((val*(*)(val* self))(var112->class->vft[COLOR_core__abstract_text__Object__to_s]))(var112); /* to_s on <var112:nullable Object(RuntimeVariable)>*/
636 }
637 ((struct instance_core__NativeArray*)var85)->values[4]=var113;
638 {
639 var114 = ((val*(*)(val* self))(var85->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var85); /* native_to_s on <var85:NativeArray[String]>*/
640 }
641 varonce84 = var85;
642 {
643 nitc___nitc__AbstractCompilerVisitor___add(self, var114); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
644 }
645 var = 1;
646 goto RET_LABEL;
647 } else {
648 if (likely(varonce115!=NULL)) {
649 var116 = varonce115;
650 } else {
651 var117 = "length";
652 var119 = (val*)(6l<<2|1);
653 var120 = (val*)(6l<<2|1);
654 var121 = (val*)((long)(0)<<2|3);
655 var122 = (val*)((long)(0)<<2|3);
656 var118 = core__flat___CString___to_s_unsafe(var117, var119, var120, var121, var122);
657 var116 = var118;
658 varonce115 = var116;
659 }
660 {
661 var123 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_pname, var116); /* == on <var_pname:String>*/
662 }
663 if (var123){
664 if (unlikely(varonce124==NULL)) {
665 var125 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
666 if (likely(varonce126!=NULL)) {
667 var127 = varonce126;
668 } else {
669 var128 = "((struct instance_";
670 var130 = (val*)(18l<<2|1);
671 var131 = (val*)(18l<<2|1);
672 var132 = (val*)((long)(0)<<2|3);
673 var133 = (val*)((long)(0)<<2|3);
674 var129 = core__flat___CString___to_s_unsafe(var128, var130, var131, var132, var133);
675 var127 = var129;
676 varonce126 = var127;
677 }
678 ((struct instance_core__NativeArray*)var125)->values[0]=var127;
679 if (likely(varonce134!=NULL)) {
680 var135 = varonce134;
681 } else {
682 var136 = "*)";
683 var138 = (val*)(2l<<2|1);
684 var139 = (val*)(2l<<2|1);
685 var140 = (val*)((long)(0)<<2|3);
686 var141 = (val*)((long)(0)<<2|3);
687 var137 = core__flat___CString___to_s_unsafe(var136, var138, var139, var140, var141);
688 var135 = var137;
689 varonce134 = var135;
690 }
691 ((struct instance_core__NativeArray*)var125)->values[2]=var135;
692 if (likely(varonce142!=NULL)) {
693 var143 = varonce142;
694 } else {
695 var144 = ")->length";
696 var146 = (val*)(9l<<2|1);
697 var147 = (val*)(9l<<2|1);
698 var148 = (val*)((long)(0)<<2|3);
699 var149 = (val*)((long)(0)<<2|3);
700 var145 = core__flat___CString___to_s_unsafe(var144, var146, var147, var148, var149);
701 var143 = var145;
702 varonce142 = var143;
703 }
704 ((struct instance_core__NativeArray*)var125)->values[4]=var143;
705 } else {
706 var125 = varonce124;
707 varonce124 = NULL;
708 }
709 {
710 var150 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_nclass);
711 }
712 ((struct instance_core__NativeArray*)var125)->values[1]=var150;
713 {
714 var151 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 0l);
715 }
716 {
717 var152 = ((val*(*)(val* self))(var151->class->vft[COLOR_core__abstract_text__Object__to_s]))(var151); /* to_s on <var151:nullable Object(RuntimeVariable)>*/
718 }
719 ((struct instance_core__NativeArray*)var125)->values[3]=var152;
720 {
721 var153 = ((val*(*)(val* self))(var125->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var125); /* native_to_s on <var125:NativeArray[String]>*/
722 }
723 varonce124 = var125;
724 if (unlikely(var_ret_type == NULL)) {
725 if(catchStack.cursor >= 0){
726 longjmp(catchStack.envs[catchStack.cursor], 1);
727 }
728 PRINT_ERROR("Runtime error: %s", "Cast failed");
729 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2123);
730 fatal_exit(1);
731 }
732 {
733 var154 = nitc___nitc__AbstractCompilerVisitor___new_expr(self, var153, var_ret_type);
734 }
735 {
736 nitc___nitc__AbstractCompilerVisitor___ret(self, var154); /* Direct call abstract_compiler$AbstractCompilerVisitor$ret on <self:SeparateCompilerVisitor>*/
737 }
738 var = 1;
739 goto RET_LABEL;
740 } else {
741 if (likely(varonce155!=NULL)) {
742 var156 = varonce155;
743 } else {
744 var157 = "copy_to";
745 var159 = (val*)(7l<<2|1);
746 var160 = (val*)(7l<<2|1);
747 var161 = (val*)((long)(0)<<2|3);
748 var162 = (val*)((long)(0)<<2|3);
749 var158 = core__flat___CString___to_s_unsafe(var157, var159, var160, var161, var162);
750 var156 = var158;
751 varonce155 = var156;
752 }
753 {
754 var163 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_pname, var156); /* == on <var_pname:String>*/
755 }
756 if (var163){
757 if (unlikely(varonce164==NULL)) {
758 var165 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
759 if (likely(varonce166!=NULL)) {
760 var167 = varonce166;
761 } else {
762 var168 = "((struct instance_";
763 var170 = (val*)(18l<<2|1);
764 var171 = (val*)(18l<<2|1);
765 var172 = (val*)((long)(0)<<2|3);
766 var173 = (val*)((long)(0)<<2|3);
767 var169 = core__flat___CString___to_s_unsafe(var168, var170, var171, var172, var173);
768 var167 = var169;
769 varonce166 = var167;
770 }
771 ((struct instance_core__NativeArray*)var165)->values[0]=var167;
772 if (likely(varonce174!=NULL)) {
773 var175 = varonce174;
774 } else {
775 var176 = "*)";
776 var178 = (val*)(2l<<2|1);
777 var179 = (val*)(2l<<2|1);
778 var180 = (val*)((long)(0)<<2|3);
779 var181 = (val*)((long)(0)<<2|3);
780 var177 = core__flat___CString___to_s_unsafe(var176, var178, var179, var180, var181);
781 var175 = var177;
782 varonce174 = var175;
783 }
784 ((struct instance_core__NativeArray*)var165)->values[2]=var175;
785 if (likely(varonce182!=NULL)) {
786 var183 = varonce182;
787 } else {
788 var184 = ")->values";
789 var186 = (val*)(9l<<2|1);
790 var187 = (val*)(9l<<2|1);
791 var188 = (val*)((long)(0)<<2|3);
792 var189 = (val*)((long)(0)<<2|3);
793 var185 = core__flat___CString___to_s_unsafe(var184, var186, var187, var188, var189);
794 var183 = var185;
795 varonce182 = var183;
796 }
797 ((struct instance_core__NativeArray*)var165)->values[4]=var183;
798 } else {
799 var165 = varonce164;
800 varonce164 = NULL;
801 }
802 {
803 var190 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_nclass);
804 }
805 ((struct instance_core__NativeArray*)var165)->values[1]=var190;
806 {
807 var191 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
808 }
809 {
810 var192 = ((val*(*)(val* self))(var191->class->vft[COLOR_core__abstract_text__Object__to_s]))(var191); /* to_s on <var191:nullable Object(RuntimeVariable)>*/
811 }
812 ((struct instance_core__NativeArray*)var165)->values[3]=var192;
813 {
814 var193 = ((val*(*)(val* self))(var165->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var165); /* native_to_s on <var165:NativeArray[String]>*/
815 }
816 varonce164 = var165;
817 var_recv1 = var193;
818 if (unlikely(varonce194==NULL)) {
819 var195 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
820 if (likely(varonce196!=NULL)) {
821 var197 = varonce196;
822 } else {
823 var198 = "memmove(";
824 var200 = (val*)(8l<<2|1);
825 var201 = (val*)(8l<<2|1);
826 var202 = (val*)((long)(0)<<2|3);
827 var203 = (val*)((long)(0)<<2|3);
828 var199 = core__flat___CString___to_s_unsafe(var198, var200, var201, var202, var203);
829 var197 = var199;
830 varonce196 = var197;
831 }
832 ((struct instance_core__NativeArray*)var195)->values[0]=var197;
833 if (likely(varonce204!=NULL)) {
834 var205 = varonce204;
835 } else {
836 var206 = ", ";
837 var208 = (val*)(2l<<2|1);
838 var209 = (val*)(2l<<2|1);
839 var210 = (val*)((long)(0)<<2|3);
840 var211 = (val*)((long)(0)<<2|3);
841 var207 = core__flat___CString___to_s_unsafe(var206, var208, var209, var210, var211);
842 var205 = var207;
843 varonce204 = var205;
844 }
845 ((struct instance_core__NativeArray*)var195)->values[2]=var205;
846 if (likely(varonce212!=NULL)) {
847 var213 = varonce212;
848 } else {
849 var214 = ", ";
850 var216 = (val*)(2l<<2|1);
851 var217 = (val*)(2l<<2|1);
852 var218 = (val*)((long)(0)<<2|3);
853 var219 = (val*)((long)(0)<<2|3);
854 var215 = core__flat___CString___to_s_unsafe(var214, var216, var217, var218, var219);
855 var213 = var215;
856 varonce212 = var213;
857 }
858 ((struct instance_core__NativeArray*)var195)->values[4]=var213;
859 if (likely(varonce220!=NULL)) {
860 var221 = varonce220;
861 } else {
862 var222 = "*sizeof(";
863 var224 = (val*)(8l<<2|1);
864 var225 = (val*)(8l<<2|1);
865 var226 = (val*)((long)(0)<<2|3);
866 var227 = (val*)((long)(0)<<2|3);
867 var223 = core__flat___CString___to_s_unsafe(var222, var224, var225, var226, var227);
868 var221 = var223;
869 varonce220 = var221;
870 }
871 ((struct instance_core__NativeArray*)var195)->values[6]=var221;
872 if (likely(varonce228!=NULL)) {
873 var229 = varonce228;
874 } else {
875 var230 = "));";
876 var232 = (val*)(3l<<2|1);
877 var233 = (val*)(3l<<2|1);
878 var234 = (val*)((long)(0)<<2|3);
879 var235 = (val*)((long)(0)<<2|3);
880 var231 = core__flat___CString___to_s_unsafe(var230, var232, var233, var234, var235);
881 var229 = var231;
882 varonce228 = var229;
883 }
884 ((struct instance_core__NativeArray*)var195)->values[8]=var229;
885 } else {
886 var195 = varonce194;
887 varonce194 = NULL;
888 }
889 ((struct instance_core__NativeArray*)var195)->values[1]=var_recv1;
890 ((struct instance_core__NativeArray*)var195)->values[3]=var_recv;
891 {
892 var236 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 2l);
893 }
894 {
895 var237 = ((val*(*)(val* self))(var236->class->vft[COLOR_core__abstract_text__Object__to_s]))(var236); /* to_s on <var236:nullable Object(RuntimeVariable)>*/
896 }
897 ((struct instance_core__NativeArray*)var195)->values[5]=var237;
898 {
899 var238 = ((val*(*)(val* self))(var_elttype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_elttype); /* ctype on <var_elttype:MType>*/
900 }
901 ((struct instance_core__NativeArray*)var195)->values[7]=var238;
902 {
903 var239 = ((val*(*)(val* self))(var195->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var195); /* native_to_s on <var195:NativeArray[String]>*/
904 }
905 varonce194 = var195;
906 {
907 nitc___nitc__AbstractCompilerVisitor___add(self, var239); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
908 }
909 var = 1;
910 goto RET_LABEL;
911 } else {
912 if (likely(varonce240!=NULL)) {
913 var241 = varonce240;
914 } else {
915 var242 = "memmove";
916 var244 = (val*)(7l<<2|1);
917 var245 = (val*)(7l<<2|1);
918 var246 = (val*)((long)(0)<<2|3);
919 var247 = (val*)((long)(0)<<2|3);
920 var243 = core__flat___CString___to_s_unsafe(var242, var244, var245, var246, var247);
921 var241 = var243;
922 varonce240 = var241;
923 }
924 {
925 var248 = ((short int(*)(val* self, val* p0))(var_pname->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_pname, var241); /* == on <var_pname:String>*/
926 }
927 if (var248){
928 if (unlikely(varonce249==NULL)) {
929 var250 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
930 if (likely(varonce251!=NULL)) {
931 var252 = varonce251;
932 } else {
933 var253 = "((struct instance_";
934 var255 = (val*)(18l<<2|1);
935 var256 = (val*)(18l<<2|1);
936 var257 = (val*)((long)(0)<<2|3);
937 var258 = (val*)((long)(0)<<2|3);
938 var254 = core__flat___CString___to_s_unsafe(var253, var255, var256, var257, var258);
939 var252 = var254;
940 varonce251 = var252;
941 }
942 ((struct instance_core__NativeArray*)var250)->values[0]=var252;
943 if (likely(varonce259!=NULL)) {
944 var260 = varonce259;
945 } else {
946 var261 = "*)";
947 var263 = (val*)(2l<<2|1);
948 var264 = (val*)(2l<<2|1);
949 var265 = (val*)((long)(0)<<2|3);
950 var266 = (val*)((long)(0)<<2|3);
951 var262 = core__flat___CString___to_s_unsafe(var261, var263, var264, var265, var266);
952 var260 = var262;
953 varonce259 = var260;
954 }
955 ((struct instance_core__NativeArray*)var250)->values[2]=var260;
956 if (likely(varonce267!=NULL)) {
957 var268 = varonce267;
958 } else {
959 var269 = ")->values";
960 var271 = (val*)(9l<<2|1);
961 var272 = (val*)(9l<<2|1);
962 var273 = (val*)((long)(0)<<2|3);
963 var274 = (val*)((long)(0)<<2|3);
964 var270 = core__flat___CString___to_s_unsafe(var269, var271, var272, var273, var274);
965 var268 = var270;
966 varonce267 = var268;
967 }
968 ((struct instance_core__NativeArray*)var250)->values[4]=var268;
969 } else {
970 var250 = varonce249;
971 varonce249 = NULL;
972 }
973 {
974 var275 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_nclass);
975 }
976 ((struct instance_core__NativeArray*)var250)->values[1]=var275;
977 {
978 var276 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 3l);
979 }
980 {
981 var277 = ((val*(*)(val* self))(var276->class->vft[COLOR_core__abstract_text__Object__to_s]))(var276); /* to_s on <var276:nullable Object(RuntimeVariable)>*/
982 }
983 ((struct instance_core__NativeArray*)var250)->values[3]=var277;
984 {
985 var278 = ((val*(*)(val* self))(var250->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var250); /* native_to_s on <var250:NativeArray[String]>*/
986 }
987 varonce249 = var250;
988 var_recv1279 = var278;
989 if (unlikely(varonce280==NULL)) {
990 var281 = NEW_core__NativeArray((int)13l, &type_core__NativeArray__core__String);
991 if (likely(varonce282!=NULL)) {
992 var283 = varonce282;
993 } else {
994 var284 = "memmove(";
995 var286 = (val*)(8l<<2|1);
996 var287 = (val*)(8l<<2|1);
997 var288 = (val*)((long)(0)<<2|3);
998 var289 = (val*)((long)(0)<<2|3);
999 var285 = core__flat___CString___to_s_unsafe(var284, var286, var287, var288, var289);
1000 var283 = var285;
1001 varonce282 = var283;
1002 }
1003 ((struct instance_core__NativeArray*)var281)->values[0]=var283;
1004 if (likely(varonce290!=NULL)) {
1005 var291 = varonce290;
1006 } else {
1007 var292 = "+";
1008 var294 = (val*)(1l<<2|1);
1009 var295 = (val*)(1l<<2|1);
1010 var296 = (val*)((long)(0)<<2|3);
1011 var297 = (val*)((long)(0)<<2|3);
1012 var293 = core__flat___CString___to_s_unsafe(var292, var294, var295, var296, var297);
1013 var291 = var293;
1014 varonce290 = var291;
1015 }
1016 ((struct instance_core__NativeArray*)var281)->values[2]=var291;
1017 if (likely(varonce298!=NULL)) {
1018 var299 = varonce298;
1019 } else {
1020 var300 = ", ";
1021 var302 = (val*)(2l<<2|1);
1022 var303 = (val*)(2l<<2|1);
1023 var304 = (val*)((long)(0)<<2|3);
1024 var305 = (val*)((long)(0)<<2|3);
1025 var301 = core__flat___CString___to_s_unsafe(var300, var302, var303, var304, var305);
1026 var299 = var301;
1027 varonce298 = var299;
1028 }
1029 ((struct instance_core__NativeArray*)var281)->values[4]=var299;
1030 if (likely(varonce306!=NULL)) {
1031 var307 = varonce306;
1032 } else {
1033 var308 = "+";
1034 var310 = (val*)(1l<<2|1);
1035 var311 = (val*)(1l<<2|1);
1036 var312 = (val*)((long)(0)<<2|3);
1037 var313 = (val*)((long)(0)<<2|3);
1038 var309 = core__flat___CString___to_s_unsafe(var308, var310, var311, var312, var313);
1039 var307 = var309;
1040 varonce306 = var307;
1041 }
1042 ((struct instance_core__NativeArray*)var281)->values[6]=var307;
1043 if (likely(varonce314!=NULL)) {
1044 var315 = varonce314;
1045 } else {
1046 var316 = ", ";
1047 var318 = (val*)(2l<<2|1);
1048 var319 = (val*)(2l<<2|1);
1049 var320 = (val*)((long)(0)<<2|3);
1050 var321 = (val*)((long)(0)<<2|3);
1051 var317 = core__flat___CString___to_s_unsafe(var316, var318, var319, var320, var321);
1052 var315 = var317;
1053 varonce314 = var315;
1054 }
1055 ((struct instance_core__NativeArray*)var281)->values[8]=var315;
1056 if (likely(varonce322!=NULL)) {
1057 var323 = varonce322;
1058 } else {
1059 var324 = "*sizeof(";
1060 var326 = (val*)(8l<<2|1);
1061 var327 = (val*)(8l<<2|1);
1062 var328 = (val*)((long)(0)<<2|3);
1063 var329 = (val*)((long)(0)<<2|3);
1064 var325 = core__flat___CString___to_s_unsafe(var324, var326, var327, var328, var329);
1065 var323 = var325;
1066 varonce322 = var323;
1067 }
1068 ((struct instance_core__NativeArray*)var281)->values[10]=var323;
1069 if (likely(varonce330!=NULL)) {
1070 var331 = varonce330;
1071 } else {
1072 var332 = "));";
1073 var334 = (val*)(3l<<2|1);
1074 var335 = (val*)(3l<<2|1);
1075 var336 = (val*)((long)(0)<<2|3);
1076 var337 = (val*)((long)(0)<<2|3);
1077 var333 = core__flat___CString___to_s_unsafe(var332, var334, var335, var336, var337);
1078 var331 = var333;
1079 varonce330 = var331;
1080 }
1081 ((struct instance_core__NativeArray*)var281)->values[12]=var331;
1082 } else {
1083 var281 = varonce280;
1084 varonce280 = NULL;
1085 }
1086 ((struct instance_core__NativeArray*)var281)->values[1]=var_recv1279;
1087 {
1088 var338 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 4l);
1089 }
1090 {
1091 var339 = ((val*(*)(val* self))(var338->class->vft[COLOR_core__abstract_text__Object__to_s]))(var338); /* to_s on <var338:nullable Object(RuntimeVariable)>*/
1092 }
1093 ((struct instance_core__NativeArray*)var281)->values[3]=var339;
1094 ((struct instance_core__NativeArray*)var281)->values[5]=var_recv;
1095 {
1096 var340 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 1l);
1097 }
1098 {
1099 var341 = ((val*(*)(val* self))(var340->class->vft[COLOR_core__abstract_text__Object__to_s]))(var340); /* to_s on <var340:nullable Object(RuntimeVariable)>*/
1100 }
1101 ((struct instance_core__NativeArray*)var281)->values[7]=var341;
1102 {
1103 var342 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, 2l);
1104 }
1105 {
1106 var343 = ((val*(*)(val* self))(var342->class->vft[COLOR_core__abstract_text__Object__to_s]))(var342); /* to_s on <var342:nullable Object(RuntimeVariable)>*/
1107 }
1108 ((struct instance_core__NativeArray*)var281)->values[9]=var343;
1109 {
1110 var344 = ((val*(*)(val* self))(var_elttype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_elttype); /* ctype on <var_elttype:MType>*/
1111 }
1112 ((struct instance_core__NativeArray*)var281)->values[11]=var344;
1113 {
1114 var345 = ((val*(*)(val* self))(var281->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var281); /* native_to_s on <var281:NativeArray[String]>*/
1115 }
1116 varonce280 = var281;
1117 {
1118 nitc___nitc__AbstractCompilerVisitor___add(self, var345); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1119 }
1120 var = 1;
1121 goto RET_LABEL;
1122 } else {
1123 }
1124 }
1125 }
1126 }
1127 }
1128 var = 0;
1129 goto RET_LABEL;
1130 RET_LABEL:;
1131 return var;
1132 }
1133 /* method separate_compiler$SeparateCompilerVisitor$native_array_set for (self: SeparateCompilerVisitor, RuntimeVariable, Int, RuntimeVariable) */
1134 void nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__native_array_set(val* self, val* p0, long p1, val* p2) {
1135 val* var_nat /* var nat: RuntimeVariable */;
1136 long var_i /* var i: Int */;
1137 val* var_val /* var val: RuntimeVariable */;
1138 val* var /* : MModule */;
1139 val* var1 /* : MClass */;
1140 val* var_nclass /* var nclass: MClass */;
1141 val* var2 /* : NativeArray[String] */;
1142 static val* varonce;
1143 static val* varonce3;
1144 val* var4 /* : String */;
1145 char* var5 /* : CString */;
1146 val* var6 /* : String */;
1147 val* var7 /* : nullable Int */;
1148 val* var8 /* : nullable Int */;
1149 val* var9 /* : nullable Bool */;
1150 val* var10 /* : nullable Bool */;
1151 static val* varonce11;
1152 val* var12 /* : String */;
1153 char* var13 /* : CString */;
1154 val* var14 /* : String */;
1155 val* var15 /* : nullable Int */;
1156 val* var16 /* : nullable Int */;
1157 val* var17 /* : nullable Bool */;
1158 val* var18 /* : nullable Bool */;
1159 static val* varonce19;
1160 val* var20 /* : String */;
1161 char* var21 /* : CString */;
1162 val* var22 /* : String */;
1163 val* var23 /* : nullable Int */;
1164 val* var24 /* : nullable Int */;
1165 val* var25 /* : nullable Bool */;
1166 val* var26 /* : nullable Bool */;
1167 val* var27 /* : String */;
1168 val* var28 /* : String */;
1169 val* var29 /* : String */;
1170 val* var_recv /* var recv: String */;
1171 val* var31 /* : NativeArray[String] */;
1172 static val* varonce30;
1173 static val* varonce32;
1174 val* var33 /* : String */;
1175 char* var34 /* : CString */;
1176 val* var35 /* : String */;
1177 val* var36 /* : nullable Int */;
1178 val* var37 /* : nullable Int */;
1179 val* var38 /* : nullable Bool */;
1180 val* var39 /* : nullable Bool */;
1181 static val* varonce40;
1182 val* var41 /* : String */;
1183 char* var42 /* : CString */;
1184 val* var43 /* : String */;
1185 val* var44 /* : nullable Int */;
1186 val* var45 /* : nullable Int */;
1187 val* var46 /* : nullable Bool */;
1188 val* var47 /* : nullable Bool */;
1189 static val* varonce48;
1190 val* var49 /* : String */;
1191 char* var50 /* : CString */;
1192 val* var51 /* : String */;
1193 val* var52 /* : nullable Int */;
1194 val* var53 /* : nullable Int */;
1195 val* var54 /* : nullable Bool */;
1196 val* var55 /* : nullable Bool */;
1197 val* var56 /* : String */;
1198 val* var57 /* : String */;
1199 val* var58 /* : String */;
1200 var_nat = p0;
1201 var_i = p1;
1202 var_val = p2;
1203 {
1204 var = nitc___nitc__AbstractCompilerVisitor___mmodule(self);
1205 }
1206 {
1207 var1 = nitc__model___MModule___native_array_class(var);
1208 }
1209 var_nclass = var1;
1210 if (unlikely(varonce==NULL)) {
1211 var2 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
1212 if (likely(varonce3!=NULL)) {
1213 var4 = varonce3;
1214 } else {
1215 var5 = "((struct instance_";
1216 var7 = (val*)(18l<<2|1);
1217 var8 = (val*)(18l<<2|1);
1218 var9 = (val*)((long)(0)<<2|3);
1219 var10 = (val*)((long)(0)<<2|3);
1220 var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10);
1221 var4 = var6;
1222 varonce3 = var4;
1223 }
1224 ((struct instance_core__NativeArray*)var2)->values[0]=var4;
1225 if (likely(varonce11!=NULL)) {
1226 var12 = varonce11;
1227 } else {
1228 var13 = "*)";
1229 var15 = (val*)(2l<<2|1);
1230 var16 = (val*)(2l<<2|1);
1231 var17 = (val*)((long)(0)<<2|3);
1232 var18 = (val*)((long)(0)<<2|3);
1233 var14 = core__flat___CString___to_s_unsafe(var13, var15, var16, var17, var18);
1234 var12 = var14;
1235 varonce11 = var12;
1236 }
1237 ((struct instance_core__NativeArray*)var2)->values[2]=var12;
1238 if (likely(varonce19!=NULL)) {
1239 var20 = varonce19;
1240 } else {
1241 var21 = ")->values";
1242 var23 = (val*)(9l<<2|1);
1243 var24 = (val*)(9l<<2|1);
1244 var25 = (val*)((long)(0)<<2|3);
1245 var26 = (val*)((long)(0)<<2|3);
1246 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
1247 var20 = var22;
1248 varonce19 = var20;
1249 }
1250 ((struct instance_core__NativeArray*)var2)->values[4]=var20;
1251 } else {
1252 var2 = varonce;
1253 varonce = NULL;
1254 }
1255 {
1256 var27 = nitc___nitc__MClass___nitc__model_base__MEntity__c_name(var_nclass);
1257 }
1258 ((struct instance_core__NativeArray*)var2)->values[1]=var27;
1259 {
1260 var28 = ((val*(*)(val* self))(var_nat->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_nat); /* to_s on <var_nat:RuntimeVariable>*/
1261 }
1262 ((struct instance_core__NativeArray*)var2)->values[3]=var28;
1263 {
1264 var29 = ((val*(*)(val* self))(var2->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var2); /* native_to_s on <var2:NativeArray[String]>*/
1265 }
1266 varonce = var2;
1267 var_recv = var29;
1268 if (unlikely(varonce30==NULL)) {
1269 var31 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
1270 if (likely(varonce32!=NULL)) {
1271 var33 = varonce32;
1272 } else {
1273 var34 = "[";
1274 var36 = (val*)(1l<<2|1);
1275 var37 = (val*)(1l<<2|1);
1276 var38 = (val*)((long)(0)<<2|3);
1277 var39 = (val*)((long)(0)<<2|3);
1278 var35 = core__flat___CString___to_s_unsafe(var34, var36, var37, var38, var39);
1279 var33 = var35;
1280 varonce32 = var33;
1281 }
1282 ((struct instance_core__NativeArray*)var31)->values[1]=var33;
1283 if (likely(varonce40!=NULL)) {
1284 var41 = varonce40;
1285 } else {
1286 var42 = "]=";
1287 var44 = (val*)(2l<<2|1);
1288 var45 = (val*)(2l<<2|1);
1289 var46 = (val*)((long)(0)<<2|3);
1290 var47 = (val*)((long)(0)<<2|3);
1291 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
1292 var41 = var43;
1293 varonce40 = var41;
1294 }
1295 ((struct instance_core__NativeArray*)var31)->values[3]=var41;
1296 if (likely(varonce48!=NULL)) {
1297 var49 = varonce48;
1298 } else {
1299 var50 = ";";
1300 var52 = (val*)(1l<<2|1);
1301 var53 = (val*)(1l<<2|1);
1302 var54 = (val*)((long)(0)<<2|3);
1303 var55 = (val*)((long)(0)<<2|3);
1304 var51 = core__flat___CString___to_s_unsafe(var50, var52, var53, var54, var55);
1305 var49 = var51;
1306 varonce48 = var49;
1307 }
1308 ((struct instance_core__NativeArray*)var31)->values[5]=var49;
1309 } else {
1310 var31 = varonce30;
1311 varonce30 = NULL;
1312 }
1313 ((struct instance_core__NativeArray*)var31)->values[0]=var_recv;
1314 var56 = core__flat___Int___core__abstract_text__Object__to_s(var_i);
1315 ((struct instance_core__NativeArray*)var31)->values[2]=var56;
1316 {
1317 var57 = ((val*(*)(val* self))(var_val->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_val); /* to_s on <var_val:RuntimeVariable>*/
1318 }
1319 ((struct instance_core__NativeArray*)var31)->values[4]=var57;
1320 {
1321 var58 = ((val*(*)(val* self))(var31->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var31); /* native_to_s on <var31:NativeArray[String]>*/
1322 }
1323 varonce30 = var31;
1324 {
1325 nitc___nitc__AbstractCompilerVisitor___add(self, var58); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <self:SeparateCompilerVisitor>*/
1326 }
1327 RET_LABEL:;
1328 }
1329 /* method separate_compiler$SeparateCompilerVisitor$link_unresolved_type for (self: SeparateCompilerVisitor, MClassDef, MType) */
1330 void nitc___nitc__SeparateCompilerVisitor___link_unresolved_type(val* self, val* p0, val* p1) {
1331 val* var_mclassdef /* var mclassdef: MClassDef */;
1332 val* var_mtype /* var mtype: MType */;
1333 short int var /* : Bool */;
1334 val* var1 /* : AbstractCompiler */;
1335 val* var3 /* : AbstractCompiler */;
1336 val* var_compiler /* var compiler: SeparateCompiler */;
1337 val* var4 /* : Map[MClassDef, Set[MType]] */;
1338 val* var6 /* : Map[MClassDef, Set[MType]] */;
1339 val* var7 /* : nullable StaticFrame */;
1340 val* var9 /* : nullable StaticFrame */;
1341 val* var10 /* : MPropDef */;
1342 val* var12 /* : MPropDef */;
1343 val* var13 /* : MClassDef */;
1344 val* var15 /* : MClassDef */;
1345 short int var16 /* : Bool */;
1346 short int var17 /* : Bool */;
1347 val* var18 /* : Map[MClassDef, Set[MType]] */;
1348 val* var20 /* : Map[MClassDef, Set[MType]] */;
1349 val* var21 /* : nullable StaticFrame */;
1350 val* var23 /* : nullable StaticFrame */;
1351 val* var24 /* : MPropDef */;
1352 val* var26 /* : MPropDef */;
1353 val* var27 /* : MClassDef */;
1354 val* var29 /* : MClassDef */;
1355 val* var30 /* : HashSet[MType] */;
1356 val* var31 /* : Map[MClassDef, Set[MType]] */;
1357 val* var33 /* : Map[MClassDef, Set[MType]] */;
1358 val* var34 /* : nullable StaticFrame */;
1359 val* var36 /* : nullable StaticFrame */;
1360 val* var37 /* : MPropDef */;
1361 val* var39 /* : MPropDef */;
1362 val* var40 /* : MClassDef */;
1363 val* var42 /* : MClassDef */;
1364 val* var43 /* : nullable Object */;
1365 var_mclassdef = p0;
1366 var_mtype = p1;
1367 {
1368 var = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
1369 }
1370 if (unlikely(!var)) {
1371 if(catchStack.cursor >= 0){
1372 longjmp(catchStack.envs[catchStack.cursor], 1);
1373 }
1374 PRINT_ERROR("Runtime error: %s", "Assert failed");
1375 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2155);
1376 fatal_exit(1);
1377 }
1378 {
1379 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (self) on <self:SeparateCompilerVisitor> */
1380 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <self:SeparateCompilerVisitor> */
1381 if (unlikely(var3 == NULL)) {
1382 if(catchStack.cursor >= 0){
1383 longjmp(catchStack.envs[catchStack.cursor], 1);
1384 }
1385 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
1386 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
1387 fatal_exit(1);
1388 }
1389 var1 = var3;
1390 RET_LABEL2:(void)0;
1391 }
1392 }
1393 var_compiler = var1;
1394 {
1395 { /* Inline separate_compiler$SeparateCompiler$live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
1396 var6 = var_compiler->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
1397 if (unlikely(var6 == NULL)) {
1398 if(catchStack.cursor >= 0){
1399 longjmp(catchStack.envs[catchStack.cursor], 1);
1400 }
1401 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
1402 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 147);
1403 fatal_exit(1);
1404 }
1405 var4 = var6;
1406 RET_LABEL5:(void)0;
1407 }
1408 }
1409 {
1410 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:SeparateCompilerVisitor> */
1411 var9 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateCompilerVisitor> */
1412 var7 = var9;
1413 RET_LABEL8:(void)0;
1414 }
1415 }
1416 if (var7 == NULL) {
1417 if(catchStack.cursor >= 0){
1418 longjmp(catchStack.envs[catchStack.cursor], 1);
1419 }
1420 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2157);
1422 fatal_exit(1);
1423 } else {
1424 { /* Inline abstract_compiler$StaticFrame$mpropdef (var7) on <var7:nullable StaticFrame> */
1425 if (unlikely(var7 == NULL)) {
1426 if(catchStack.cursor >= 0){
1427 longjmp(catchStack.envs[catchStack.cursor], 1);
1428 }
1429 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1430 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
1431 fatal_exit(1);
1432 }
1433 var12 = var7->attrs[COLOR_nitc__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var7:nullable StaticFrame> */
1434 if (unlikely(var12 == NULL)) {
1435 if(catchStack.cursor >= 0){
1436 longjmp(catchStack.envs[catchStack.cursor], 1);
1437 }
1438 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1439 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
1440 fatal_exit(1);
1441 }
1442 var10 = var12;
1443 RET_LABEL11:(void)0;
1444 }
1445 }
1446 {
1447 { /* Inline model$MPropDef$mclassdef (var10) on <var10:MPropDef> */
1448 var15 = var10->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var10:MPropDef> */
1449 if (unlikely(var15 == NULL)) {
1450 if(catchStack.cursor >= 0){
1451 longjmp(catchStack.envs[catchStack.cursor], 1);
1452 }
1453 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
1455 fatal_exit(1);
1456 }
1457 var13 = var15;
1458 RET_LABEL14:(void)0;
1459 }
1460 }
1461 {
1462 var16 = ((short int(*)(val* self, val* p0))((((long)var4&3)?class_info[((long)var4&3)]:var4->class)->vft[COLOR_core__abstract_collection__MapRead__has_key]))(var4, var13); /* has_key on <var4:Map[MClassDef, Set[MType]]>*/
1463 }
1464 var17 = !var16;
1465 if (var17){
1466 {
1467 { /* Inline separate_compiler$SeparateCompiler$live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
1468 var20 = var_compiler->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
1469 if (unlikely(var20 == NULL)) {
1470 if(catchStack.cursor >= 0){
1471 longjmp(catchStack.envs[catchStack.cursor], 1);
1472 }
1473 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
1474 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 147);
1475 fatal_exit(1);
1476 }
1477 var18 = var20;
1478 RET_LABEL19:(void)0;
1479 }
1480 }
1481 {
1482 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:SeparateCompilerVisitor> */
1483 var23 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateCompilerVisitor> */
1484 var21 = var23;
1485 RET_LABEL22:(void)0;
1486 }
1487 }
1488 if (var21 == NULL) {
1489 if(catchStack.cursor >= 0){
1490 longjmp(catchStack.envs[catchStack.cursor], 1);
1491 }
1492 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1493 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2158);
1494 fatal_exit(1);
1495 } else {
1496 { /* Inline abstract_compiler$StaticFrame$mpropdef (var21) on <var21:nullable StaticFrame> */
1497 if (unlikely(var21 == NULL)) {
1498 if(catchStack.cursor >= 0){
1499 longjmp(catchStack.envs[catchStack.cursor], 1);
1500 }
1501 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1502 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
1503 fatal_exit(1);
1504 }
1505 var26 = var21->attrs[COLOR_nitc__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var21:nullable StaticFrame> */
1506 if (unlikely(var26 == NULL)) {
1507 if(catchStack.cursor >= 0){
1508 longjmp(catchStack.envs[catchStack.cursor], 1);
1509 }
1510 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1511 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
1512 fatal_exit(1);
1513 }
1514 var24 = var26;
1515 RET_LABEL25:(void)0;
1516 }
1517 }
1518 {
1519 { /* Inline model$MPropDef$mclassdef (var24) on <var24:MPropDef> */
1520 var29 = var24->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var24:MPropDef> */
1521 if (unlikely(var29 == NULL)) {
1522 if(catchStack.cursor >= 0){
1523 longjmp(catchStack.envs[catchStack.cursor], 1);
1524 }
1525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1526 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
1527 fatal_exit(1);
1528 }
1529 var27 = var29;
1530 RET_LABEL28:(void)0;
1531 }
1532 }
1533 var30 = NEW_core__HashSet(&type_core__HashSet__nitc__MType);
1534 {
1535 core___core__HashSet___core__kernel__Object__init(var30); /* Direct call hash_collection$HashSet$init on <var30:HashSet[MType]>*/
1536 }
1537 {
1538 ((void(*)(val* self, val* p0, val* p1))((((long)var18&3)?class_info[((long)var18&3)]:var18->class)->vft[COLOR_core__abstract_collection__Map___91d_93d_61d]))(var18, var27, var30); /* []= on <var18:Map[MClassDef, Set[MType]]>*/
1539 }
1540 } else {
1541 }
1542 {
1543 { /* Inline separate_compiler$SeparateCompiler$live_unresolved_types (var_compiler) on <var_compiler:SeparateCompiler> */
1544 var33 = var_compiler->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___live_unresolved_types].val; /* _live_unresolved_types on <var_compiler:SeparateCompiler> */
1545 if (unlikely(var33 == NULL)) {
1546 if(catchStack.cursor >= 0){
1547 longjmp(catchStack.envs[catchStack.cursor], 1);
1548 }
1549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_unresolved_types");
1550 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 147);
1551 fatal_exit(1);
1552 }
1553 var31 = var33;
1554 RET_LABEL32:(void)0;
1555 }
1556 }
1557 {
1558 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame (self) on <self:SeparateCompilerVisitor> */
1559 var36 = self->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val; /* _frame on <self:SeparateCompilerVisitor> */
1560 var34 = var36;
1561 RET_LABEL35:(void)0;
1562 }
1563 }
1564 if (var34 == NULL) {
1565 if(catchStack.cursor >= 0){
1566 longjmp(catchStack.envs[catchStack.cursor], 1);
1567 }
1568 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1569 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2160);
1570 fatal_exit(1);
1571 } else {
1572 { /* Inline abstract_compiler$StaticFrame$mpropdef (var34) on <var34:nullable StaticFrame> */
1573 if (unlikely(var34 == NULL)) {
1574 if(catchStack.cursor >= 0){
1575 longjmp(catchStack.envs[catchStack.cursor], 1);
1576 }
1577 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1578 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
1579 fatal_exit(1);
1580 }
1581 var39 = var34->attrs[COLOR_nitc__abstract_compiler__StaticFrame___mpropdef].val; /* _mpropdef on <var34:nullable StaticFrame> */
1582 if (unlikely(var39 == NULL)) {
1583 if(catchStack.cursor >= 0){
1584 longjmp(catchStack.envs[catchStack.cursor], 1);
1585 }
1586 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
1587 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2027);
1588 fatal_exit(1);
1589 }
1590 var37 = var39;
1591 RET_LABEL38:(void)0;
1592 }
1593 }
1594 {
1595 { /* Inline model$MPropDef$mclassdef (var37) on <var37:MPropDef> */
1596 var42 = var37->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var37:MPropDef> */
1597 if (unlikely(var42 == NULL)) {
1598 if(catchStack.cursor >= 0){
1599 longjmp(catchStack.envs[catchStack.cursor], 1);
1600 }
1601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
1603 fatal_exit(1);
1604 }
1605 var40 = var42;
1606 RET_LABEL41:(void)0;
1607 }
1608 }
1609 {
1610 var43 = ((val*(*)(val* self, val* p0))((((long)var31&3)?class_info[((long)var31&3)]:var31->class)->vft[COLOR_core__abstract_collection__MapRead___91d_93d]))(var31, var40); /* [] on <var31:Map[MClassDef, Set[MType]]>*/
1611 }
1612 {
1613 ((void(*)(val* self, val* p0))((((long)var43&3)?class_info[((long)var43&3)]:var43->class)->vft[COLOR_core__abstract_collection__SimpleCollection__add]))(var43, var_mtype); /* add on <var43:nullable Object(Set[MType])>*/
1614 }
1615 RET_LABEL:;
1616 }
1617 /* method separate_compiler$MMethodDef$separate_runtime_function for (self: MMethodDef): SeparateRuntimeFunction */
1618 val* nitc__separate_compiler___MMethodDef___separate_runtime_function(val* self) {
1619 val* var /* : SeparateRuntimeFunction */;
1620 val* var1 /* : nullable SeparateRuntimeFunction */;
1621 val* var3 /* : nullable SeparateRuntimeFunction */;
1622 val* var_res /* var res: nullable SeparateRuntimeFunction */;
1623 short int var4 /* : Bool */;
1624 short int var5 /* : Bool */;
1625 val* var_other /* var other: nullable Object */;
1626 short int var7 /* : Bool */;
1627 short int var9 /* : Bool */;
1628 val* var10 /* : MClassDef */;
1629 val* var12 /* : MClassDef */;
1630 val* var13 /* : MClassType */;
1631 val* var15 /* : MClassType */;
1632 val* var_recv /* var recv: MClassType */;
1633 val* var16 /* : nullable MSignature */;
1634 val* var18 /* : nullable MSignature */;
1635 val* var19 /* : MClassDef */;
1636 val* var21 /* : MClassDef */;
1637 val* var22 /* : MModule */;
1638 val* var24 /* : MModule */;
1639 val* var25 /* : MSignature */;
1640 val* var_msignature /* var msignature: MSignature */;
1641 val* var26 /* : SeparateRuntimeFunction */;
1642 val* var27 /* : String */;
1643 {
1644 { /* Inline separate_compiler$MMethodDef$separate_runtime_function_cache (self) on <self:MMethodDef> */
1645 var3 = self->attrs[COLOR_nitc__separate_compiler__MMethodDef___separate_runtime_function_cache].val; /* _separate_runtime_function_cache on <self:MMethodDef> */
1646 var1 = var3;
1647 RET_LABEL2:(void)0;
1648 }
1649 }
1650 var_res = var1;
1651 if (var_res == NULL) {
1652 var4 = 1; /* is null */
1653 } else {
1654 var4 = 0; /* arg is null but recv is not */
1655 }
1656 if (0) {
1657 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable SeparateRuntimeFunction> */
1658 var_other = ((val*)NULL);
1659 {
1660 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
1661 var9 = var_res == var_other;
1662 var7 = var9;
1663 goto RET_LABEL8;
1664 RET_LABEL8:(void)0;
1665 }
1666 }
1667 var5 = var7;
1668 goto RET_LABEL6;
1669 RET_LABEL6:(void)0;
1670 }
1671 var4 = var5;
1672 }
1673 if (var4){
1674 {
1675 { /* Inline model$MPropDef$mclassdef (self) on <self:MMethodDef> */
1676 var12 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MMethodDef> */
1677 if (unlikely(var12 == NULL)) {
1678 if(catchStack.cursor >= 0){
1679 longjmp(catchStack.envs[catchStack.cursor], 1);
1680 }
1681 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1682 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
1683 fatal_exit(1);
1684 }
1685 var10 = var12;
1686 RET_LABEL11:(void)0;
1687 }
1688 }
1689 {
1690 { /* Inline model$MClassDef$bound_mtype (var10) on <var10:MClassDef> */
1691 var15 = var10->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var10:MClassDef> */
1692 if (unlikely(var15 == NULL)) {
1693 if(catchStack.cursor >= 0){
1694 longjmp(catchStack.envs[catchStack.cursor], 1);
1695 }
1696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1697 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1698 fatal_exit(1);
1699 }
1700 var13 = var15;
1701 RET_LABEL14:(void)0;
1702 }
1703 }
1704 var_recv = var13;
1705 {
1706 { /* Inline model$MMethodDef$msignature (self) on <self:MMethodDef> */
1707 var18 = self->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <self:MMethodDef> */
1708 var16 = var18;
1709 RET_LABEL17:(void)0;
1710 }
1711 }
1712 {
1713 { /* Inline model$MPropDef$mclassdef (self) on <self:MMethodDef> */
1714 var21 = self->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <self:MMethodDef> */
1715 if (unlikely(var21 == NULL)) {
1716 if(catchStack.cursor >= 0){
1717 longjmp(catchStack.envs[catchStack.cursor], 1);
1718 }
1719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
1721 fatal_exit(1);
1722 }
1723 var19 = var21;
1724 RET_LABEL20:(void)0;
1725 }
1726 }
1727 {
1728 { /* Inline model$MClassDef$mmodule (var19) on <var19:MClassDef> */
1729 var24 = var19->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var19:MClassDef> */
1730 if (unlikely(var24 == NULL)) {
1731 if(catchStack.cursor >= 0){
1732 longjmp(catchStack.envs[catchStack.cursor], 1);
1733 }
1734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
1735 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
1736 fatal_exit(1);
1737 }
1738 var22 = var24;
1739 RET_LABEL23:(void)0;
1740 }
1741 }
1742 if (var16 == NULL) {
1743 if(catchStack.cursor >= 0){
1744 longjmp(catchStack.envs[catchStack.cursor], 1);
1745 }
1746 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1747 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2171);
1748 fatal_exit(1);
1749 } else {
1750 var25 = nitc___nitc__MSignature___MType__resolve_for(var16, var_recv, var_recv, var22, 1);
1751 }
1752 var_msignature = var25;
1753 var26 = NEW_nitc__SeparateRuntimeFunction(&type_nitc__SeparateRuntimeFunction);
1754 {
1755 var27 = nitc___nitc__MPropDef___nitc__model_base__MEntity__c_name(self);
1756 }
1757 {
1758 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d]))(var26, self); /* mmethoddef= on <var26:SeparateRuntimeFunction>*/
1759 }
1760 {
1761 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_nitc__separate_compiler__SeparateRuntimeFunction__called_recv_61d]))(var26, var_recv); /* called_recv= on <var26:SeparateRuntimeFunction>*/
1762 }
1763 {
1764 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_nitc__separate_compiler__SeparateRuntimeFunction__called_signature_61d]))(var26, var_msignature); /* called_signature= on <var26:SeparateRuntimeFunction>*/
1765 }
1766 {
1767 ((void(*)(val* self, val* p0))(var26->class->vft[COLOR_nitc__separate_compiler__SeparateRuntimeFunction__build_c_name_61d]))(var26, var27); /* build_c_name= on <var26:SeparateRuntimeFunction>*/
1768 }
1769 {
1770 ((void(*)(val* self))(var26->class->vft[COLOR_core__kernel__Object__init]))(var26); /* init on <var26:SeparateRuntimeFunction>*/
1771 }
1772 var_res = var26;
1773 {
1774 { /* Inline separate_compiler$MMethodDef$separate_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
1775 self->attrs[COLOR_nitc__separate_compiler__MMethodDef___separate_runtime_function_cache].val = var_res; /* _separate_runtime_function_cache on <self:MMethodDef> */
1776 RET_LABEL28:(void)0;
1777 }
1778 }
1779 } else {
1780 }
1781 var = var_res;
1782 goto RET_LABEL;
1783 RET_LABEL:;
1784 return var;
1785 }
1786 /* method separate_compiler$MMethodDef$separate_runtime_function_cache for (self: MMethodDef): nullable SeparateRuntimeFunction */
1787 val* nitc__separate_compiler___MMethodDef___separate_runtime_function_cache(val* self) {
1788 val* var /* : nullable SeparateRuntimeFunction */;
1789 val* var1 /* : nullable SeparateRuntimeFunction */;
1790 var1 = self->attrs[COLOR_nitc__separate_compiler__MMethodDef___separate_runtime_function_cache].val; /* _separate_runtime_function_cache on <self:MMethodDef> */
1791 var = var1;
1792 RET_LABEL:;
1793 return var;
1794 }
1795 /* method separate_compiler$MMethodDef$separate_runtime_function_cache= for (self: MMethodDef, nullable SeparateRuntimeFunction) */
1796 void nitc__separate_compiler___MMethodDef___separate_runtime_function_cache_61d(val* self, val* p0) {
1797 self->attrs[COLOR_nitc__separate_compiler__MMethodDef___separate_runtime_function_cache].val = p0; /* _separate_runtime_function_cache on <self:MMethodDef> */
1798 RET_LABEL:;
1799 }
1800 /* method separate_compiler$MMethodDef$virtual_runtime_function for (self: MMethodDef): SeparateRuntimeFunction */
1801 val* nitc__separate_compiler___MMethodDef___virtual_runtime_function(val* self) {
1802 val* var /* : SeparateRuntimeFunction */;
1803 val* var1 /* : nullable SeparateRuntimeFunction */;
1804 val* var3 /* : nullable SeparateRuntimeFunction */;
1805 val* var_res /* var res: nullable SeparateRuntimeFunction */;
1806 short int var4 /* : Bool */;
1807 short int var5 /* : Bool */;
1808 val* var_other /* var other: nullable Object */;
1809 short int var7 /* : Bool */;
1810 short int var9 /* : Bool */;
1811 val* var10 /* : MProperty */;
1812 val* var12 /* : MProperty */;
1813 val* var13 /* : MPropDef */;
1814 val* var15 /* : MPropDef */;
1815 val* var16 /* : MClassDef */;
1816 val* var18 /* : MClassDef */;
1817 val* var_intromclassdef /* var intromclassdef: MClassDef */;
1818 val* var19 /* : MClassType */;
1819 val* var21 /* : MClassType */;
1820 val* var_recv /* var recv: MClassType */;
1821 val* var22 /* : SeparateRuntimeFunction */;
1822 val* var23 /* : MType */;
1823 val* var25 /* : MType */;
1824 short int var26 /* : Bool */;
1825 short int var28 /* : Bool */;
1826 short int var30 /* : Bool */;
1827 val* var32 /* : MProperty */;
1828 val* var34 /* : MProperty */;
1829 val* var35 /* : MPropDef */;
1830 val* var37 /* : MPropDef */;
1831 val* var38 /* : nullable MSignature */;
1832 val* var40 /* : nullable MSignature */;
1833 val* var41 /* : MModule */;
1834 val* var43 /* : MModule */;
1835 val* var44 /* : MSignature */;
1836 val* var_msignature /* var msignature: MSignature */;
1837 short int var45 /* : Bool */;
1838 val* var46 /* : String */;
1839 val* var47 /* : MType */;
1840 val* var49 /* : MType */;
1841 val* var50 /* : String */;
1842 short int var51 /* : Bool */;
1843 short int var_ /* var : Bool */;
1844 val* var52 /* : MSignature */;
1845 val* var54 /* : MSignature */;
1846 short int var55 /* : Bool */;
1847 val* var57 /* : SeparateRuntimeFunction */;
1848 val* var58 /* : NativeArray[String] */;
1849 static val* varonce;
1850 static val* varonce59;
1851 val* var60 /* : String */;
1852 char* var61 /* : CString */;
1853 val* var62 /* : String */;
1854 val* var63 /* : nullable Int */;
1855 val* var64 /* : nullable Int */;
1856 val* var65 /* : nullable Bool */;
1857 val* var66 /* : nullable Bool */;
1858 val* var67 /* : String */;
1859 val* var68 /* : String */;
1860 {
1861 { /* Inline separate_compiler$MMethodDef$virtual_runtime_function_cache (self) on <self:MMethodDef> */
1862 var3 = self->attrs[COLOR_nitc__separate_compiler__MMethodDef___virtual_runtime_function_cache].val; /* _virtual_runtime_function_cache on <self:MMethodDef> */
1863 var1 = var3;
1864 RET_LABEL2:(void)0;
1865 }
1866 }
1867 var_res = var1;
1868 if (var_res == NULL) {
1869 var4 = 1; /* is null */
1870 } else {
1871 var4 = 0; /* arg is null but recv is not */
1872 }
1873 if (0) {
1874 { /* Inline kernel$Object$== (var_res,((val*)NULL)) on <var_res:nullable SeparateRuntimeFunction> */
1875 var_other = ((val*)NULL);
1876 {
1877 { /* Inline kernel$Object$is_same_instance (var_res,var_other) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
1878 var9 = var_res == var_other;
1879 var7 = var9;
1880 goto RET_LABEL8;
1881 RET_LABEL8:(void)0;
1882 }
1883 }
1884 var5 = var7;
1885 goto RET_LABEL6;
1886 RET_LABEL6:(void)0;
1887 }
1888 var4 = var5;
1889 }
1890 if (var4){
1891 {
1892 { /* Inline model$MPropDef$mproperty (self) on <self:MMethodDef> */
1893 var12 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MMethodDef> */
1894 if (unlikely(var12 == NULL)) {
1895 if(catchStack.cursor >= 0){
1896 longjmp(catchStack.envs[catchStack.cursor], 1);
1897 }
1898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1899 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
1900 fatal_exit(1);
1901 }
1902 var10 = var12;
1903 RET_LABEL11:(void)0;
1904 }
1905 }
1906 {
1907 { /* Inline model$MProperty$intro (var10) on <var10:MProperty(MMethod)> */
1908 var15 = var10->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var10:MProperty(MMethod)> */
1909 if (unlikely(var15 == NULL)) {
1910 if(catchStack.cursor >= 0){
1911 longjmp(catchStack.envs[catchStack.cursor], 1);
1912 }
1913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
1914 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
1915 fatal_exit(1);
1916 }
1917 var13 = var15;
1918 RET_LABEL14:(void)0;
1919 }
1920 }
1921 {
1922 { /* Inline model$MPropDef$mclassdef (var13) on <var13:MPropDef(MMethodDef)> */
1923 var18 = var13->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var13:MPropDef(MMethodDef)> */
1924 if (unlikely(var18 == NULL)) {
1925 if(catchStack.cursor >= 0){
1926 longjmp(catchStack.envs[catchStack.cursor], 1);
1927 }
1928 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
1929 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
1930 fatal_exit(1);
1931 }
1932 var16 = var18;
1933 RET_LABEL17:(void)0;
1934 }
1935 }
1936 var_intromclassdef = var16;
1937 {
1938 { /* Inline model$MClassDef$bound_mtype (var_intromclassdef) on <var_intromclassdef:MClassDef> */
1939 var21 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var_intromclassdef:MClassDef> */
1940 if (unlikely(var21 == NULL)) {
1941 if(catchStack.cursor >= 0){
1942 longjmp(catchStack.envs[catchStack.cursor], 1);
1943 }
1944 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
1945 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
1946 fatal_exit(1);
1947 }
1948 var19 = var21;
1949 RET_LABEL20:(void)0;
1950 }
1951 }
1952 var_recv = var19;
1953 {
1954 var22 = nitc__separate_compiler___MMethodDef___separate_runtime_function(self);
1955 }
1956 var_res = var22;
1957 {
1958 { /* Inline separate_compiler$SeparateRuntimeFunction$called_recv (var_res) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
1959 var25 = var_res->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
1960 if (unlikely(var25 == NULL)) {
1961 if(catchStack.cursor >= 0){
1962 longjmp(catchStack.envs[catchStack.cursor], 1);
1963 }
1964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv");
1965 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2233);
1966 fatal_exit(1);
1967 }
1968 var23 = var25;
1969 RET_LABEL24:(void)0;
1970 }
1971 }
1972 {
1973 { /* Inline kernel$Object$== (var23,var_recv) on <var23:MType> */
1974 var_other = var_recv;
1975 {
1976 { /* Inline kernel$Object$is_same_instance (var23,var_other) on <var23:MType> */
1977 var30 = var23 == var_other;
1978 var28 = var30;
1979 goto RET_LABEL29;
1980 RET_LABEL29:(void)0;
1981 }
1982 }
1983 var26 = var28;
1984 goto RET_LABEL27;
1985 RET_LABEL27:(void)0;
1986 }
1987 }
1988 if (var26){
1989 {
1990 { /* Inline separate_compiler$MMethodDef$virtual_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
1991 self->attrs[COLOR_nitc__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = var_res; /* _virtual_runtime_function_cache on <self:MMethodDef> */
1992 RET_LABEL31:(void)0;
1993 }
1994 }
1995 var = var_res;
1996 goto RET_LABEL;
1997 } else {
1998 }
1999 {
2000 { /* Inline model$MPropDef$mproperty (self) on <self:MMethodDef> */
2001 var34 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MMethodDef> */
2002 if (unlikely(var34 == NULL)) {
2003 if(catchStack.cursor >= 0){
2004 longjmp(catchStack.envs[catchStack.cursor], 1);
2005 }
2006 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2007 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
2008 fatal_exit(1);
2009 }
2010 var32 = var34;
2011 RET_LABEL33:(void)0;
2012 }
2013 }
2014 {
2015 { /* Inline model$MProperty$intro (var32) on <var32:MProperty(MMethod)> */
2016 var37 = var32->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var32:MProperty(MMethod)> */
2017 if (unlikely(var37 == NULL)) {
2018 if(catchStack.cursor >= 0){
2019 longjmp(catchStack.envs[catchStack.cursor], 1);
2020 }
2021 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
2022 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
2023 fatal_exit(1);
2024 }
2025 var35 = var37;
2026 RET_LABEL36:(void)0;
2027 }
2028 }
2029 {
2030 { /* Inline model$MMethodDef$msignature (var35) on <var35:MPropDef(MMethodDef)> */
2031 var40 = var35->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var35:MPropDef(MMethodDef)> */
2032 var38 = var40;
2033 RET_LABEL39:(void)0;
2034 }
2035 }
2036 {
2037 { /* Inline model$MClassDef$mmodule (var_intromclassdef) on <var_intromclassdef:MClassDef> */
2038 var43 = var_intromclassdef->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var_intromclassdef:MClassDef> */
2039 if (unlikely(var43 == NULL)) {
2040 if(catchStack.cursor >= 0){
2041 longjmp(catchStack.envs[catchStack.cursor], 1);
2042 }
2043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2044 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
2045 fatal_exit(1);
2046 }
2047 var41 = var43;
2048 RET_LABEL42:(void)0;
2049 }
2050 }
2051 if (var38 == NULL) {
2052 if(catchStack.cursor >= 0){
2053 longjmp(catchStack.envs[catchStack.cursor], 1);
2054 }
2055 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2056 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2196);
2057 fatal_exit(1);
2058 } else {
2059 var44 = nitc___nitc__MSignature___MType__resolve_for(var38, var_recv, var_recv, var41, 1);
2060 }
2061 var_msignature = var44;
2062 {
2063 var46 = nitc__abstract_compiler___MClassType___MType__ctype(var_recv);
2064 }
2065 {
2066 { /* Inline separate_compiler$SeparateRuntimeFunction$called_recv (var_res) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
2067 var49 = var_res->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
2068 if (unlikely(var49 == NULL)) {
2069 if(catchStack.cursor >= 0){
2070 longjmp(catchStack.envs[catchStack.cursor], 1);
2071 }
2072 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv");
2073 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2233);
2074 fatal_exit(1);
2075 }
2076 var47 = var49;
2077 RET_LABEL48:(void)0;
2078 }
2079 }
2080 {
2081 var50 = ((val*(*)(val* self))(var47->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var47); /* ctype on <var47:MType>*/
2082 }
2083 {
2084 var51 = ((short int(*)(val* self, val* p0))(var46->class->vft[COLOR_core__kernel__Object___61d_61d]))(var46, var50); /* == on <var46:String>*/
2085 }
2086 var_ = var51;
2087 if (var51){
2088 {
2089 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (var_res) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
2090 var54 = var_res->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
2091 if (unlikely(var54 == NULL)) {
2092 if(catchStack.cursor >= 0){
2093 longjmp(catchStack.envs[catchStack.cursor], 1);
2094 }
2095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
2096 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
2097 fatal_exit(1);
2098 }
2099 var52 = var54;
2100 RET_LABEL53:(void)0;
2101 }
2102 }
2103 {
2104 var55 = nitc__separate_compiler___MSignature___c_equiv(var_msignature, var52);
2105 }
2106 var45 = var55;
2107 } else {
2108 var45 = var_;
2109 }
2110 if (var45){
2111 {
2112 { /* Inline separate_compiler$MMethodDef$virtual_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
2113 self->attrs[COLOR_nitc__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = var_res; /* _virtual_runtime_function_cache on <self:MMethodDef> */
2114 RET_LABEL56:(void)0;
2115 }
2116 }
2117 var = var_res;
2118 goto RET_LABEL;
2119 } else {
2120 }
2121 var57 = NEW_nitc__SeparateRuntimeFunction(&type_nitc__SeparateRuntimeFunction);
2122 if (unlikely(varonce==NULL)) {
2123 var58 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
2124 if (likely(varonce59!=NULL)) {
2125 var60 = varonce59;
2126 } else {
2127 var61 = "VIRTUAL_";
2128 var63 = (val*)(8l<<2|1);
2129 var64 = (val*)(8l<<2|1);
2130 var65 = (val*)((long)(0)<<2|3);
2131 var66 = (val*)((long)(0)<<2|3);
2132 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
2133 var60 = var62;
2134 varonce59 = var60;
2135 }
2136 ((struct instance_core__NativeArray*)var58)->values[0]=var60;
2137 } else {
2138 var58 = varonce;
2139 varonce = NULL;
2140 }
2141 {
2142 var67 = nitc___nitc__MPropDef___nitc__model_base__MEntity__c_name(self);
2143 }
2144 ((struct instance_core__NativeArray*)var58)->values[1]=var67;
2145 {
2146 var68 = ((val*(*)(val* self))(var58->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var58); /* native_to_s on <var58:NativeArray[String]>*/
2147 }
2148 varonce = var58;
2149 {
2150 ((void(*)(val* self, val* p0))(var57->class->vft[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction__mmethoddef_61d]))(var57, self); /* mmethoddef= on <var57:SeparateRuntimeFunction>*/
2151 }
2152 {
2153 ((void(*)(val* self, val* p0))(var57->class->vft[COLOR_nitc__separate_compiler__SeparateRuntimeFunction__called_recv_61d]))(var57, var_recv); /* called_recv= on <var57:SeparateRuntimeFunction>*/
2154 }
2155 {
2156 ((void(*)(val* self, val* p0))(var57->class->vft[COLOR_nitc__separate_compiler__SeparateRuntimeFunction__called_signature_61d]))(var57, var_msignature); /* called_signature= on <var57:SeparateRuntimeFunction>*/
2157 }
2158 {
2159 ((void(*)(val* self, val* p0))(var57->class->vft[COLOR_nitc__separate_compiler__SeparateRuntimeFunction__build_c_name_61d]))(var57, var68); /* build_c_name= on <var57:SeparateRuntimeFunction>*/
2160 }
2161 {
2162 ((void(*)(val* self))(var57->class->vft[COLOR_core__kernel__Object__init]))(var57); /* init on <var57:SeparateRuntimeFunction>*/
2163 }
2164 var_res = var57;
2165 {
2166 { /* Inline separate_compiler$MMethodDef$virtual_runtime_function_cache= (self,var_res) on <self:MMethodDef> */
2167 self->attrs[COLOR_nitc__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = var_res; /* _virtual_runtime_function_cache on <self:MMethodDef> */
2168 RET_LABEL69:(void)0;
2169 }
2170 }
2171 {
2172 { /* Inline separate_compiler$SeparateRuntimeFunction$is_thunk= (var_res,1) on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
2173 var_res->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___is_thunk].s = 1; /* _is_thunk on <var_res:nullable SeparateRuntimeFunction(SeparateRuntimeFunction)> */
2174 RET_LABEL70:(void)0;
2175 }
2176 }
2177 } else {
2178 }
2179 var = var_res;
2180 goto RET_LABEL;
2181 RET_LABEL:;
2182 return var;
2183 }
2184 /* method separate_compiler$MMethodDef$virtual_runtime_function_cache for (self: MMethodDef): nullable SeparateRuntimeFunction */
2185 val* nitc__separate_compiler___MMethodDef___virtual_runtime_function_cache(val* self) {
2186 val* var /* : nullable SeparateRuntimeFunction */;
2187 val* var1 /* : nullable SeparateRuntimeFunction */;
2188 var1 = self->attrs[COLOR_nitc__separate_compiler__MMethodDef___virtual_runtime_function_cache].val; /* _virtual_runtime_function_cache on <self:MMethodDef> */
2189 var = var1;
2190 RET_LABEL:;
2191 return var;
2192 }
2193 /* method separate_compiler$MMethodDef$virtual_runtime_function_cache= for (self: MMethodDef, nullable SeparateRuntimeFunction) */
2194 void nitc__separate_compiler___MMethodDef___virtual_runtime_function_cache_61d(val* self, val* p0) {
2195 self->attrs[COLOR_nitc__separate_compiler__MMethodDef___virtual_runtime_function_cache].val = p0; /* _virtual_runtime_function_cache on <self:MMethodDef> */
2196 RET_LABEL:;
2197 }
2198 /* method separate_compiler$MSignature$c_equiv for (self: MSignature, MSignature): Bool */
2199 short int nitc__separate_compiler___MSignature___c_equiv(val* self, val* p0) {
2200 short int var /* : Bool */;
2201 val* var_other /* var other: MSignature */;
2202 short int var1 /* : Bool */;
2203 val* var_other3 /* var other: nullable Object */;
2204 short int var4 /* : Bool */;
2205 short int var6 /* : Bool */;
2206 long var7 /* : Int */;
2207 long var8 /* : Int */;
2208 short int var9 /* : Bool */;
2209 short int var11 /* : Bool */;
2210 short int var12 /* : Bool */;
2211 long var_i /* var i: Int */;
2212 long var13 /* : Int */;
2213 long var_ /* var : Int */;
2214 short int var14 /* : Bool */;
2215 short int var16 /* : Bool */;
2216 int cltype;
2217 int idtype;
2218 const char* var_class_name;
2219 short int var17 /* : Bool */;
2220 val* var18 /* : Array[MParameter] */;
2221 val* var20 /* : Array[MParameter] */;
2222 val* var21 /* : nullable Object */;
2223 val* var22 /* : MType */;
2224 val* var24 /* : MType */;
2225 val* var25 /* : String */;
2226 val* var26 /* : Array[MParameter] */;
2227 val* var28 /* : Array[MParameter] */;
2228 val* var29 /* : nullable Object */;
2229 val* var30 /* : MType */;
2230 val* var32 /* : MType */;
2231 val* var33 /* : String */;
2232 short int var34 /* : Bool */;
2233 val* var_other36 /* var other: nullable Object */;
2234 short int var37 /* : Bool */;
2235 short int var38 /* : Bool */;
2236 long var39 /* : Int */;
2237 val* var40 /* : nullable MType */;
2238 val* var42 /* : nullable MType */;
2239 val* var43 /* : nullable MType */;
2240 val* var45 /* : nullable MType */;
2241 short int var46 /* : Bool */;
2242 short int var47 /* : Bool */;
2243 short int var49 /* : Bool */;
2244 short int var50 /* : Bool */;
2245 short int var51 /* : Bool */;
2246 val* var52 /* : nullable MType */;
2247 val* var54 /* : nullable MType */;
2248 short int var55 /* : Bool */;
2249 short int var56 /* : Bool */;
2250 short int var58 /* : Bool */;
2251 short int var60 /* : Bool */;
2252 short int var_61 /* var : Bool */;
2253 val* var62 /* : nullable MType */;
2254 val* var64 /* : nullable MType */;
2255 short int var65 /* : Bool */;
2256 short int var66 /* : Bool */;
2257 short int var68 /* : Bool */;
2258 short int var70 /* : Bool */;
2259 val* var71 /* : nullable MType */;
2260 val* var73 /* : nullable MType */;
2261 val* var74 /* : String */;
2262 val* var75 /* : nullable MType */;
2263 val* var77 /* : nullable MType */;
2264 val* var78 /* : String */;
2265 short int var79 /* : Bool */;
2266 short int var81 /* : Bool */;
2267 short int var82 /* : Bool */;
2268 var_other = p0;
2269 {
2270 { /* Inline kernel$Object$== (self,var_other) on <self:MSignature> */
2271 var_other3 = var_other;
2272 {
2273 { /* Inline kernel$Object$is_same_instance (self,var_other3) on <self:MSignature> */
2274 var6 = self == var_other3;
2275 var4 = var6;
2276 goto RET_LABEL5;
2277 RET_LABEL5:(void)0;
2278 }
2279 }
2280 var1 = var4;
2281 goto RET_LABEL2;
2282 RET_LABEL2:(void)0;
2283 }
2284 }
2285 if (var1){
2286 var = 1;
2287 goto RET_LABEL;
2288 } else {
2289 }
2290 {
2291 var7 = nitc___nitc__MSignature___arity(self);
2292 }
2293 {
2294 var8 = nitc___nitc__MSignature___arity(var_other);
2295 }
2296 {
2297 { /* Inline kernel$Int$!= (var7,var8) on <var7:Int> */
2298 var11 = var7 == var8;
2299 var12 = !var11;
2300 var9 = var12;
2301 goto RET_LABEL10;
2302 RET_LABEL10:(void)0;
2303 }
2304 }
2305 if (var9){
2306 var = 0;
2307 goto RET_LABEL;
2308 } else {
2309 }
2310 var_i = 0l;
2311 {
2312 var13 = nitc___nitc__MSignature___arity(self);
2313 }
2314 var_ = var13;
2315 for(;;) {
2316 {
2317 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
2318 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
2319 /* <var_:Int> isa OTHER */
2320 var16 = 1; /* easy <var_:Int> isa OTHER*/
2321 if (unlikely(!var16)) {
2322 var_class_name = type_core__Int.name;
2323 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
2324 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
2325 fatal_exit(1);
2326 }
2327 var17 = var_i < var_;
2328 var14 = var17;
2329 goto RET_LABEL15;
2330 RET_LABEL15:(void)0;
2331 }
2332 }
2333 if (var14){
2334 } else {
2335 goto BREAK_label;
2336 }
2337 {
2338 { /* Inline model$MSignature$mparameters (self) on <self:MSignature> */
2339 var20 = self->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <self:MSignature> */
2340 if (unlikely(var20 == NULL)) {
2341 if(catchStack.cursor >= 0){
2342 longjmp(catchStack.envs[catchStack.cursor], 1);
2343 }
2344 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2345 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
2346 fatal_exit(1);
2347 }
2348 var18 = var20;
2349 RET_LABEL19:(void)0;
2350 }
2351 }
2352 {
2353 var21 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var18, var_i);
2354 }
2355 {
2356 { /* Inline model$MParameter$mtype (var21) on <var21:nullable Object(MParameter)> */
2357 var24 = var21->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var21:nullable Object(MParameter)> */
2358 if (unlikely(var24 == NULL)) {
2359 if(catchStack.cursor >= 0){
2360 longjmp(catchStack.envs[catchStack.cursor], 1);
2361 }
2362 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2363 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
2364 fatal_exit(1);
2365 }
2366 var22 = var24;
2367 RET_LABEL23:(void)0;
2368 }
2369 }
2370 {
2371 var25 = ((val*(*)(val* self))(var22->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var22); /* ctype on <var22:MType>*/
2372 }
2373 {
2374 { /* Inline model$MSignature$mparameters (var_other) on <var_other:MSignature> */
2375 var28 = var_other->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_other:MSignature> */
2376 if (unlikely(var28 == NULL)) {
2377 if(catchStack.cursor >= 0){
2378 longjmp(catchStack.envs[catchStack.cursor], 1);
2379 }
2380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
2381 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
2382 fatal_exit(1);
2383 }
2384 var26 = var28;
2385 RET_LABEL27:(void)0;
2386 }
2387 }
2388 {
2389 var29 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var26, var_i);
2390 }
2391 {
2392 { /* Inline model$MParameter$mtype (var29) on <var29:nullable Object(MParameter)> */
2393 var32 = var29->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var29:nullable Object(MParameter)> */
2394 if (unlikely(var32 == NULL)) {
2395 if(catchStack.cursor >= 0){
2396 longjmp(catchStack.envs[catchStack.cursor], 1);
2397 }
2398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
2399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
2400 fatal_exit(1);
2401 }
2402 var30 = var32;
2403 RET_LABEL31:(void)0;
2404 }
2405 }
2406 {
2407 var33 = ((val*(*)(val* self))(var30->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var30); /* ctype on <var30:MType>*/
2408 }
2409 {
2410 { /* Inline kernel$Object$!= (var25,var33) on <var25:String> */
2411 var_other36 = var33;
2412 {
2413 var37 = ((short int(*)(val* self, val* p0))(var25->class->vft[COLOR_core__kernel__Object___61d_61d]))(var25, var_other36); /* == on <var25:String>*/
2414 }
2415 var38 = !var37;
2416 var34 = var38;
2417 goto RET_LABEL35;
2418 RET_LABEL35:(void)0;
2419 }
2420 }
2421 if (var34){
2422 var = 0;
2423 goto RET_LABEL;
2424 } else {
2425 }
2426 {
2427 var39 = core___core__Int___Discrete__successor(var_i, 1l);
2428 }
2429 var_i = var39;
2430 }
2431 BREAK_label: (void)0;
2432 {
2433 { /* Inline model$MSignature$return_mtype (self) on <self:MSignature> */
2434 var42 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
2435 var40 = var42;
2436 RET_LABEL41:(void)0;
2437 }
2438 }
2439 {
2440 { /* Inline model$MSignature$return_mtype (var_other) on <var_other:MSignature> */
2441 var45 = var_other->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_other:MSignature> */
2442 var43 = var45;
2443 RET_LABEL44:(void)0;
2444 }
2445 }
2446 if (var40 == NULL) {
2447 var46 = (var43 != NULL);
2448 } else {
2449 { /* Inline kernel$Object$!= (var40,var43) on <var40:nullable MType> */
2450 var_other36 = var43;
2451 {
2452 var49 = ((short int(*)(val* self, val* p0))(var40->class->vft[COLOR_core__kernel__Object___61d_61d]))(var40, var_other36); /* == on <var40:nullable MType(MType)>*/
2453 }
2454 var50 = !var49;
2455 var47 = var50;
2456 goto RET_LABEL48;
2457 RET_LABEL48:(void)0;
2458 }
2459 var46 = var47;
2460 }
2461 if (var46){
2462 {
2463 { /* Inline model$MSignature$return_mtype (self) on <self:MSignature> */
2464 var54 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
2465 var52 = var54;
2466 RET_LABEL53:(void)0;
2467 }
2468 }
2469 if (var52 == NULL) {
2470 var55 = 1; /* is null */
2471 } else {
2472 var55 = 0; /* arg is null but recv is not */
2473 }
2474 if (0) {
2475 { /* Inline kernel$Object$== (var52,((val*)NULL)) on <var52:nullable MType> */
2476 var_other3 = ((val*)NULL);
2477 {
2478 { /* Inline kernel$Object$is_same_instance (var52,var_other3) on <var52:nullable MType(MType)> */
2479 var60 = var52 == var_other3;
2480 var58 = var60;
2481 goto RET_LABEL59;
2482 RET_LABEL59:(void)0;
2483 }
2484 }
2485 var56 = var58;
2486 goto RET_LABEL57;
2487 RET_LABEL57:(void)0;
2488 }
2489 var55 = var56;
2490 }
2491 var_61 = var55;
2492 if (var55){
2493 var51 = var_61;
2494 } else {
2495 {
2496 { /* Inline model$MSignature$return_mtype (var_other) on <var_other:MSignature> */
2497 var64 = var_other->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_other:MSignature> */
2498 var62 = var64;
2499 RET_LABEL63:(void)0;
2500 }
2501 }
2502 if (var62 == NULL) {
2503 var65 = 1; /* is null */
2504 } else {
2505 var65 = 0; /* arg is null but recv is not */
2506 }
2507 if (0) {
2508 { /* Inline kernel$Object$== (var62,((val*)NULL)) on <var62:nullable MType> */
2509 var_other3 = ((val*)NULL);
2510 {
2511 { /* Inline kernel$Object$is_same_instance (var62,var_other3) on <var62:nullable MType(MType)> */
2512 var70 = var62 == var_other3;
2513 var68 = var70;
2514 goto RET_LABEL69;
2515 RET_LABEL69:(void)0;
2516 }
2517 }
2518 var66 = var68;
2519 goto RET_LABEL67;
2520 RET_LABEL67:(void)0;
2521 }
2522 var65 = var66;
2523 }
2524 var51 = var65;
2525 }
2526 if (var51){
2527 var = 0;
2528 goto RET_LABEL;
2529 } else {
2530 }
2531 {
2532 { /* Inline model$MSignature$return_mtype (self) on <self:MSignature> */
2533 var73 = self->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <self:MSignature> */
2534 var71 = var73;
2535 RET_LABEL72:(void)0;
2536 }
2537 }
2538 if (var71 == NULL) {
2539 if(catchStack.cursor >= 0){
2540 longjmp(catchStack.envs[catchStack.cursor], 1);
2541 }
2542 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2543 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2223);
2544 fatal_exit(1);
2545 } else {
2546 var74 = ((val*(*)(val* self))(var71->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var71); /* ctype on <var71:nullable MType>*/
2547 }
2548 {
2549 { /* Inline model$MSignature$return_mtype (var_other) on <var_other:MSignature> */
2550 var77 = var_other->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_other:MSignature> */
2551 var75 = var77;
2552 RET_LABEL76:(void)0;
2553 }
2554 }
2555 if (var75 == NULL) {
2556 if(catchStack.cursor >= 0){
2557 longjmp(catchStack.envs[catchStack.cursor], 1);
2558 }
2559 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2560 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2223);
2561 fatal_exit(1);
2562 } else {
2563 var78 = ((val*(*)(val* self))(var75->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var75); /* ctype on <var75:nullable MType>*/
2564 }
2565 {
2566 { /* Inline kernel$Object$!= (var74,var78) on <var74:String> */
2567 var_other36 = var78;
2568 {
2569 var81 = ((short int(*)(val* self, val* p0))(var74->class->vft[COLOR_core__kernel__Object___61d_61d]))(var74, var_other36); /* == on <var74:String>*/
2570 }
2571 var82 = !var81;
2572 var79 = var82;
2573 goto RET_LABEL80;
2574 RET_LABEL80:(void)0;
2575 }
2576 }
2577 if (var79){
2578 var = 0;
2579 goto RET_LABEL;
2580 } else {
2581 }
2582 } else {
2583 }
2584 var = 1;
2585 goto RET_LABEL;
2586 RET_LABEL:;
2587 return var;
2588 }
2589 /* method separate_compiler$SeparateRuntimeFunction$called_recv for (self: SeparateRuntimeFunction): MType */
2590 val* nitc___nitc__SeparateRuntimeFunction___called_recv(val* self) {
2591 val* var /* : MType */;
2592 val* var1 /* : MType */;
2593 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on <self:SeparateRuntimeFunction> */
2594 if (unlikely(var1 == NULL)) {
2595 if(catchStack.cursor >= 0){
2596 longjmp(catchStack.envs[catchStack.cursor], 1);
2597 }
2598 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv");
2599 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2233);
2600 fatal_exit(1);
2601 }
2602 var = var1;
2603 RET_LABEL:;
2604 return var;
2605 }
2606 /* method separate_compiler$SeparateRuntimeFunction$called_recv= for (self: SeparateRuntimeFunction, MType) */
2607 void nitc___nitc__SeparateRuntimeFunction___called_recv_61d(val* self, val* p0) {
2608 self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_recv].val = p0; /* _called_recv on <self:SeparateRuntimeFunction> */
2609 RET_LABEL:;
2610 }
2611 /* method separate_compiler$SeparateRuntimeFunction$called_signature for (self: SeparateRuntimeFunction): MSignature */
2612 val* nitc___nitc__SeparateRuntimeFunction___called_signature(val* self) {
2613 val* var /* : MSignature */;
2614 val* var1 /* : MSignature */;
2615 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
2616 if (unlikely(var1 == NULL)) {
2617 if(catchStack.cursor >= 0){
2618 longjmp(catchStack.envs[catchStack.cursor], 1);
2619 }
2620 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
2621 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
2622 fatal_exit(1);
2623 }
2624 var = var1;
2625 RET_LABEL:;
2626 return var;
2627 }
2628 /* method separate_compiler$SeparateRuntimeFunction$called_signature= for (self: SeparateRuntimeFunction, MSignature) */
2629 void nitc___nitc__SeparateRuntimeFunction___called_signature_61d(val* self, val* p0) {
2630 self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val = p0; /* _called_signature on <self:SeparateRuntimeFunction> */
2631 RET_LABEL:;
2632 }
2633 /* method separate_compiler$SeparateRuntimeFunction$build_c_name for (self: SeparateRuntimeFunction): String */
2634 val* nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__build_c_name(val* self) {
2635 val* var /* : String */;
2636 val* var1 /* : String */;
2637 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___build_c_name].val; /* _build_c_name on <self:SeparateRuntimeFunction> */
2638 if (unlikely(var1 == NULL)) {
2639 if(catchStack.cursor >= 0){
2640 longjmp(catchStack.envs[catchStack.cursor], 1);
2641 }
2642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _build_c_name");
2643 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2239);
2644 fatal_exit(1);
2645 }
2646 var = var1;
2647 RET_LABEL:;
2648 return var;
2649 }
2650 /* method separate_compiler$SeparateRuntimeFunction$build_c_name= for (self: SeparateRuntimeFunction, String) */
2651 void nitc___nitc__SeparateRuntimeFunction___build_c_name_61d(val* self, val* p0) {
2652 self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___build_c_name].val = p0; /* _build_c_name on <self:SeparateRuntimeFunction> */
2653 RET_LABEL:;
2654 }
2655 /* method separate_compiler$SeparateRuntimeFunction$is_thunk for (self: SeparateRuntimeFunction): Bool */
2656 short int nitc___nitc__SeparateRuntimeFunction___is_thunk(val* self) {
2657 short int var /* : Bool */;
2658 short int var1 /* : Bool */;
2659 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___is_thunk].s; /* _is_thunk on <self:SeparateRuntimeFunction> */
2660 var = var1;
2661 RET_LABEL:;
2662 return var;
2663 }
2664 /* method separate_compiler$SeparateRuntimeFunction$is_thunk= for (self: SeparateRuntimeFunction, Bool) */
2665 void nitc___nitc__SeparateRuntimeFunction___is_thunk_61d(val* self, short int p0) {
2666 self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___is_thunk].s = p0; /* _is_thunk on <self:SeparateRuntimeFunction> */
2667 RET_LABEL:;
2668 }
2669 /* method separate_compiler$SeparateRuntimeFunction$to_s for (self: SeparateRuntimeFunction): String */
2670 val* nitc___nitc__SeparateRuntimeFunction___core__abstract_text__Object__to_s(val* self) {
2671 val* var /* : String */;
2672 val* var1 /* : MMethodDef */;
2673 val* var3 /* : MMethodDef */;
2674 val* var4 /* : String */;
2675 val* var6 /* : String */;
2676 {
2677 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
2678 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
2679 if (unlikely(var3 == NULL)) {
2680 if(catchStack.cursor >= 0){
2681 longjmp(catchStack.envs[catchStack.cursor], 1);
2682 }
2683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
2684 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
2685 fatal_exit(1);
2686 }
2687 var1 = var3;
2688 RET_LABEL2:(void)0;
2689 }
2690 }
2691 {
2692 { /* Inline model$MPropDef$to_s (var1) on <var1:MMethodDef> */
2693 var6 = var1->attrs[COLOR_nitc__model__MPropDef___to_s].val; /* _to_s on <var1:MMethodDef> */
2694 if (unlikely(var6 == NULL)) {
2695 if(catchStack.cursor >= 0){
2696 longjmp(catchStack.envs[catchStack.cursor], 1);
2697 }
2698 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _to_s");
2699 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2450);
2700 fatal_exit(1);
2701 }
2702 var4 = var6;
2703 RET_LABEL5:(void)0;
2704 }
2705 }
2706 var = var4;
2707 goto RET_LABEL;
2708 RET_LABEL:;
2709 return var;
2710 }
2711 /* method separate_compiler$SeparateRuntimeFunction$c_ret for (self: SeparateRuntimeFunction): String */
2712 val* nitc___nitc__SeparateRuntimeFunction___c_ret(val* self) {
2713 val* var /* : String */;
2714 short int var1 /* : Bool */;
2715 val* var2 /* : String */;
2716 val* var3 /* : String */;
2717 val* var5 /* : MSignature */;
2718 val* var7 /* : MSignature */;
2719 val* var8 /* : nullable MType */;
2720 val* var10 /* : nullable MType */;
2721 val* var_ret /* var ret: nullable MType */;
2722 short int var11 /* : Bool */;
2723 short int var12 /* : Bool */;
2724 val* var_other /* var other: nullable Object */;
2725 short int var14 /* : Bool */;
2726 short int var15 /* : Bool */;
2727 val* var16 /* : String */;
2728 static val* varonce;
2729 val* var17 /* : String */;
2730 char* var18 /* : CString */;
2731 val* var19 /* : String */;
2732 val* var20 /* : nullable Int */;
2733 val* var21 /* : nullable Int */;
2734 val* var22 /* : nullable Bool */;
2735 val* var23 /* : nullable Bool */;
2736 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_ret].val != NULL; /* _c_ret on <self:SeparateRuntimeFunction> */
2737 if(likely(var1)) {
2738 var2 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_ret].val; /* _c_ret on <self:SeparateRuntimeFunction> */
2739 if (unlikely(var2 == NULL)) {
2740 if(catchStack.cursor >= 0){
2741 longjmp(catchStack.envs[catchStack.cursor], 1);
2742 }
2743 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_ret");
2744 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2247);
2745 fatal_exit(1);
2746 }
2747 } else {
2748 {
2749 {
2750 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (self) on <self:SeparateRuntimeFunction> */
2751 var7 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
2752 if (unlikely(var7 == NULL)) {
2753 if(catchStack.cursor >= 0){
2754 longjmp(catchStack.envs[catchStack.cursor], 1);
2755 }
2756 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
2757 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
2758 fatal_exit(1);
2759 }
2760 var5 = var7;
2761 RET_LABEL6:(void)0;
2762 }
2763 }
2764 {
2765 { /* Inline model$MSignature$return_mtype (var5) on <var5:MSignature> */
2766 var10 = var5->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var5:MSignature> */
2767 var8 = var10;
2768 RET_LABEL9:(void)0;
2769 }
2770 }
2771 var_ret = var8;
2772 if (var_ret == NULL) {
2773 var11 = 0; /* is null */
2774 } else {
2775 var11 = 1; /* arg is null and recv is not */
2776 }
2777 if (0) {
2778 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
2779 var_other = ((val*)NULL);
2780 {
2781 var14 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
2782 }
2783 var15 = !var14;
2784 var12 = var15;
2785 goto RET_LABEL13;
2786 RET_LABEL13:(void)0;
2787 }
2788 var11 = var12;
2789 }
2790 if (var11){
2791 {
2792 var16 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_ret); /* ctype on <var_ret:nullable MType(MType)>*/
2793 }
2794 var3 = var16;
2795 goto RET_LABEL4;
2796 } else {
2797 if (likely(varonce!=NULL)) {
2798 var17 = varonce;
2799 } else {
2800 var18 = "void";
2801 var20 = (val*)(4l<<2|1);
2802 var21 = (val*)(4l<<2|1);
2803 var22 = (val*)((long)(0)<<2|3);
2804 var23 = (val*)((long)(0)<<2|3);
2805 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
2806 var17 = var19;
2807 varonce = var17;
2808 }
2809 var3 = var17;
2810 goto RET_LABEL4;
2811 }
2812 RET_LABEL4:(void)0;
2813 }
2814 self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_ret].val = var3; /* _c_ret on <self:SeparateRuntimeFunction> */
2815 var2 = var3;
2816 }
2817 var = var2;
2818 RET_LABEL:;
2819 return var;
2820 }
2821 /* method separate_compiler$SeparateRuntimeFunction$c_sig for (self: SeparateRuntimeFunction): String */
2822 val* nitc___nitc__SeparateRuntimeFunction___c_sig(val* self) {
2823 val* var /* : String */;
2824 short int var1 /* : Bool */;
2825 val* var2 /* : String */;
2826 val* var3 /* : String */;
2827 val* var5 /* : FlatBuffer */;
2828 val* var_sig /* var sig: FlatBuffer */;
2829 val* var7 /* : NativeArray[String] */;
2830 static val* varonce;
2831 static val* varonce8;
2832 val* var9 /* : String */;
2833 char* var10 /* : CString */;
2834 val* var11 /* : String */;
2835 val* var12 /* : nullable Int */;
2836 val* var13 /* : nullable Int */;
2837 val* var14 /* : nullable Bool */;
2838 val* var15 /* : nullable Bool */;
2839 static val* varonce16;
2840 val* var17 /* : String */;
2841 char* var18 /* : CString */;
2842 val* var19 /* : String */;
2843 val* var20 /* : nullable Int */;
2844 val* var21 /* : nullable Int */;
2845 val* var22 /* : nullable Bool */;
2846 val* var23 /* : nullable Bool */;
2847 val* var24 /* : MType */;
2848 val* var26 /* : MType */;
2849 val* var27 /* : String */;
2850 val* var28 /* : String */;
2851 long var_i /* var i: Int */;
2852 val* var29 /* : MSignature */;
2853 val* var31 /* : MSignature */;
2854 long var32 /* : Int */;
2855 long var_ /* var : Int */;
2856 short int var33 /* : Bool */;
2857 short int var35 /* : Bool */;
2858 int cltype;
2859 int idtype;
2860 const char* var_class_name;
2861 short int var36 /* : Bool */;
2862 val* var37 /* : MSignature */;
2863 val* var39 /* : MSignature */;
2864 val* var40 /* : Array[MParameter] */;
2865 val* var42 /* : Array[MParameter] */;
2866 val* var43 /* : nullable Object */;
2867 val* var_mp /* var mp: MParameter */;
2868 val* var44 /* : MType */;
2869 val* var46 /* : MType */;
2870 val* var_mtype /* var mtype: MType */;
2871 short int var47 /* : Bool */;
2872 short int var49 /* : Bool */;
2873 val* var50 /* : MMethodDef */;
2874 val* var52 /* : MMethodDef */;
2875 val* var53 /* : MClassDef */;
2876 val* var55 /* : MClassDef */;
2877 val* var56 /* : MModule */;
2878 val* var58 /* : MModule */;
2879 val* var59 /* : MClassType */;
2880 val* var61 /* : NativeArray[String] */;
2881 static val* varonce60;
2882 static val* varonce62;
2883 val* var63 /* : String */;
2884 char* var64 /* : CString */;
2885 val* var65 /* : String */;
2886 val* var66 /* : nullable Int */;
2887 val* var67 /* : nullable Int */;
2888 val* var68 /* : nullable Bool */;
2889 val* var69 /* : nullable Bool */;
2890 static val* varonce70;
2891 val* var71 /* : String */;
2892 char* var72 /* : CString */;
2893 val* var73 /* : String */;
2894 val* var74 /* : nullable Int */;
2895 val* var75 /* : nullable Int */;
2896 val* var76 /* : nullable Bool */;
2897 val* var77 /* : nullable Bool */;
2898 val* var78 /* : String */;
2899 val* var79 /* : String */;
2900 val* var80 /* : String */;
2901 long var81 /* : Int */;
2902 static val* varonce82;
2903 val* var83 /* : String */;
2904 char* var84 /* : CString */;
2905 val* var85 /* : String */;
2906 val* var86 /* : nullable Int */;
2907 val* var87 /* : nullable Int */;
2908 val* var88 /* : nullable Bool */;
2909 val* var89 /* : nullable Bool */;
2910 val* var90 /* : String */;
2911 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_sig].val != NULL; /* _c_sig on <self:SeparateRuntimeFunction> */
2912 if(likely(var1)) {
2913 var2 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_sig].val; /* _c_sig on <self:SeparateRuntimeFunction> */
2914 if (unlikely(var2 == NULL)) {
2915 if(catchStack.cursor >= 0){
2916 longjmp(catchStack.envs[catchStack.cursor], 1);
2917 }
2918 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_sig");
2919 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2257);
2920 fatal_exit(1);
2921 }
2922 } else {
2923 {
2924 var5 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
2925 {
2926 { /* Inline flat$FlatBuffer$init (var5) on <var5:FlatBuffer> */
2927 {
2928 ((void(*)(val* self))(var5->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var5); /* init on <var5:FlatBuffer>*/
2929 }
2930 RET_LABEL6:(void)0;
2931 }
2932 }
2933 var_sig = var5;
2934 if (unlikely(varonce==NULL)) {
2935 var7 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2936 if (likely(varonce8!=NULL)) {
2937 var9 = varonce8;
2938 } else {
2939 var10 = "(";
2940 var12 = (val*)(1l<<2|1);
2941 var13 = (val*)(1l<<2|1);
2942 var14 = (val*)((long)(0)<<2|3);
2943 var15 = (val*)((long)(0)<<2|3);
2944 var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
2945 var9 = var11;
2946 varonce8 = var9;
2947 }
2948 ((struct instance_core__NativeArray*)var7)->values[0]=var9;
2949 if (likely(varonce16!=NULL)) {
2950 var17 = varonce16;
2951 } else {
2952 var18 = " self";
2953 var20 = (val*)(5l<<2|1);
2954 var21 = (val*)(5l<<2|1);
2955 var22 = (val*)((long)(0)<<2|3);
2956 var23 = (val*)((long)(0)<<2|3);
2957 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
2958 var17 = var19;
2959 varonce16 = var17;
2960 }
2961 ((struct instance_core__NativeArray*)var7)->values[2]=var17;
2962 } else {
2963 var7 = varonce;
2964 varonce = NULL;
2965 }
2966 {
2967 { /* Inline separate_compiler$SeparateRuntimeFunction$called_recv (self) on <self:SeparateRuntimeFunction> */
2968 var26 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on <self:SeparateRuntimeFunction> */
2969 if (unlikely(var26 == NULL)) {
2970 if(catchStack.cursor >= 0){
2971 longjmp(catchStack.envs[catchStack.cursor], 1);
2972 }
2973 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv");
2974 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2233);
2975 fatal_exit(1);
2976 }
2977 var24 = var26;
2978 RET_LABEL25:(void)0;
2979 }
2980 }
2981 {
2982 var27 = ((val*(*)(val* self))(var24->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var24); /* ctype on <var24:MType>*/
2983 }
2984 ((struct instance_core__NativeArray*)var7)->values[1]=var27;
2985 {
2986 var28 = ((val*(*)(val* self))(var7->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var7); /* native_to_s on <var7:NativeArray[String]>*/
2987 }
2988 varonce = var7;
2989 {
2990 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_sig, var28); /* Direct call flat$FlatBuffer$append on <var_sig:FlatBuffer>*/
2991 }
2992 var_i = 0l;
2993 {
2994 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (self) on <self:SeparateRuntimeFunction> */
2995 var31 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
2996 if (unlikely(var31 == NULL)) {
2997 if(catchStack.cursor >= 0){
2998 longjmp(catchStack.envs[catchStack.cursor], 1);
2999 }
3000 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
3001 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
3002 fatal_exit(1);
3003 }
3004 var29 = var31;
3005 RET_LABEL30:(void)0;
3006 }
3007 }
3008 {
3009 var32 = nitc___nitc__MSignature___arity(var29);
3010 }
3011 var_ = var32;
3012 for(;;) {
3013 {
3014 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
3015 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3016 /* <var_:Int> isa OTHER */
3017 var35 = 1; /* easy <var_:Int> isa OTHER*/
3018 if (unlikely(!var35)) {
3019 var_class_name = type_core__Int.name;
3020 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3021 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3022 fatal_exit(1);
3023 }
3024 var36 = var_i < var_;
3025 var33 = var36;
3026 goto RET_LABEL34;
3027 RET_LABEL34:(void)0;
3028 }
3029 }
3030 if (var33){
3031 } else {
3032 goto BREAK_label;
3033 }
3034 {
3035 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (self) on <self:SeparateRuntimeFunction> */
3036 var39 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
3037 if (unlikely(var39 == NULL)) {
3038 if(catchStack.cursor >= 0){
3039 longjmp(catchStack.envs[catchStack.cursor], 1);
3040 }
3041 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
3042 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
3043 fatal_exit(1);
3044 }
3045 var37 = var39;
3046 RET_LABEL38:(void)0;
3047 }
3048 }
3049 {
3050 { /* Inline model$MSignature$mparameters (var37) on <var37:MSignature> */
3051 var42 = var37->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var37:MSignature> */
3052 if (unlikely(var42 == NULL)) {
3053 if(catchStack.cursor >= 0){
3054 longjmp(catchStack.envs[catchStack.cursor], 1);
3055 }
3056 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3057 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
3058 fatal_exit(1);
3059 }
3060 var40 = var42;
3061 RET_LABEL41:(void)0;
3062 }
3063 }
3064 {
3065 var43 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var40, var_i);
3066 }
3067 var_mp = var43;
3068 {
3069 { /* Inline model$MParameter$mtype (var_mp) on <var_mp:MParameter> */
3070 var46 = var_mp->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_mp:MParameter> */
3071 if (unlikely(var46 == NULL)) {
3072 if(catchStack.cursor >= 0){
3073 longjmp(catchStack.envs[catchStack.cursor], 1);
3074 }
3075 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3076 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
3077 fatal_exit(1);
3078 }
3079 var44 = var46;
3080 RET_LABEL45:(void)0;
3081 }
3082 }
3083 var_mtype = var44;
3084 {
3085 { /* Inline model$MParameter$is_vararg (var_mp) on <var_mp:MParameter> */
3086 var49 = var_mp->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_mp:MParameter> */
3087 var47 = var49;
3088 RET_LABEL48:(void)0;
3089 }
3090 }
3091 if (var47){
3092 {
3093 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
3094 var52 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
3095 if (unlikely(var52 == NULL)) {
3096 if(catchStack.cursor >= 0){
3097 longjmp(catchStack.envs[catchStack.cursor], 1);
3098 }
3099 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
3100 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
3101 fatal_exit(1);
3102 }
3103 var50 = var52;
3104 RET_LABEL51:(void)0;
3105 }
3106 }
3107 {
3108 { /* Inline model$MPropDef$mclassdef (var50) on <var50:MMethodDef> */
3109 var55 = var50->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var50:MMethodDef> */
3110 if (unlikely(var55 == NULL)) {
3111 if(catchStack.cursor >= 0){
3112 longjmp(catchStack.envs[catchStack.cursor], 1);
3113 }
3114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
3116 fatal_exit(1);
3117 }
3118 var53 = var55;
3119 RET_LABEL54:(void)0;
3120 }
3121 }
3122 {
3123 { /* Inline model$MClassDef$mmodule (var53) on <var53:MClassDef> */
3124 var58 = var53->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var53:MClassDef> */
3125 if (unlikely(var58 == NULL)) {
3126 if(catchStack.cursor >= 0){
3127 longjmp(catchStack.envs[catchStack.cursor], 1);
3128 }
3129 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3130 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
3131 fatal_exit(1);
3132 }
3133 var56 = var58;
3134 RET_LABEL57:(void)0;
3135 }
3136 }
3137 {
3138 var59 = nitc__model___MModule___array_type(var56, var_mtype);
3139 }
3140 var_mtype = var59;
3141 } else {
3142 }
3143 if (unlikely(varonce60==NULL)) {
3144 var61 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
3145 if (likely(varonce62!=NULL)) {
3146 var63 = varonce62;
3147 } else {
3148 var64 = ", ";
3149 var66 = (val*)(2l<<2|1);
3150 var67 = (val*)(2l<<2|1);
3151 var68 = (val*)((long)(0)<<2|3);
3152 var69 = (val*)((long)(0)<<2|3);
3153 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
3154 var63 = var65;
3155 varonce62 = var63;
3156 }
3157 ((struct instance_core__NativeArray*)var61)->values[0]=var63;
3158 if (likely(varonce70!=NULL)) {
3159 var71 = varonce70;
3160 } else {
3161 var72 = " p";
3162 var74 = (val*)(2l<<2|1);
3163 var75 = (val*)(2l<<2|1);
3164 var76 = (val*)((long)(0)<<2|3);
3165 var77 = (val*)((long)(0)<<2|3);
3166 var73 = core__flat___CString___to_s_unsafe(var72, var74, var75, var76, var77);
3167 var71 = var73;
3168 varonce70 = var71;
3169 }
3170 ((struct instance_core__NativeArray*)var61)->values[2]=var71;
3171 } else {
3172 var61 = varonce60;
3173 varonce60 = NULL;
3174 }
3175 {
3176 var78 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__abstract_compiler__MType__ctype]))(var_mtype); /* ctype on <var_mtype:MType>*/
3177 }
3178 ((struct instance_core__NativeArray*)var61)->values[1]=var78;
3179 var79 = core__flat___Int___core__abstract_text__Object__to_s(var_i);
3180 ((struct instance_core__NativeArray*)var61)->values[3]=var79;
3181 {
3182 var80 = ((val*(*)(val* self))(var61->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var61); /* native_to_s on <var61:NativeArray[String]>*/
3183 }
3184 varonce60 = var61;
3185 {
3186 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_sig, var80); /* Direct call flat$FlatBuffer$append on <var_sig:FlatBuffer>*/
3187 }
3188 {
3189 var81 = core___core__Int___Discrete__successor(var_i, 1l);
3190 }
3191 var_i = var81;
3192 }
3193 BREAK_label: (void)0;
3194 if (likely(varonce82!=NULL)) {
3195 var83 = varonce82;
3196 } else {
3197 var84 = ")";
3198 var86 = (val*)(1l<<2|1);
3199 var87 = (val*)(1l<<2|1);
3200 var88 = (val*)((long)(0)<<2|3);
3201 var89 = (val*)((long)(0)<<2|3);
3202 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
3203 var83 = var85;
3204 varonce82 = var83;
3205 }
3206 {
3207 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_sig, var83); /* Direct call flat$FlatBuffer$append on <var_sig:FlatBuffer>*/
3208 }
3209 {
3210 var90 = core___core__FlatBuffer___core__abstract_text__Object__to_s(var_sig);
3211 }
3212 var3 = var90;
3213 goto RET_LABEL4;
3214 RET_LABEL4:(void)0;
3215 }
3216 self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_sig].val = var3; /* _c_sig on <self:SeparateRuntimeFunction> */
3217 var2 = var3;
3218 }
3219 var = var2;
3220 RET_LABEL:;
3221 return var;
3222 }
3223 /* method separate_compiler$SeparateRuntimeFunction$c_funptrtype for (self: SeparateRuntimeFunction): String */
3224 val* nitc___nitc__SeparateRuntimeFunction___c_funptrtype(val* self) {
3225 val* var /* : String */;
3226 short int var1 /* : Bool */;
3227 val* var2 /* : String */;
3228 val* var3 /* : String */;
3229 val* var5 /* : NativeArray[String] */;
3230 static val* varonce;
3231 static val* varonce6;
3232 val* var7 /* : String */;
3233 char* var8 /* : CString */;
3234 val* var9 /* : String */;
3235 val* var10 /* : nullable Int */;
3236 val* var11 /* : nullable Int */;
3237 val* var12 /* : nullable Bool */;
3238 val* var13 /* : nullable Bool */;
3239 val* var14 /* : String */;
3240 val* var15 /* : String */;
3241 val* var16 /* : String */;
3242 var1 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_funptrtype].val != NULL; /* _c_funptrtype on <self:SeparateRuntimeFunction> */
3243 if(likely(var1)) {
3244 var2 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_funptrtype].val; /* _c_funptrtype on <self:SeparateRuntimeFunction> */
3245 if (unlikely(var2 == NULL)) {
3246 if(catchStack.cursor >= 0){
3247 longjmp(catchStack.envs[catchStack.cursor], 1);
3248 }
3249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _c_funptrtype");
3250 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2273);
3251 fatal_exit(1);
3252 }
3253 } else {
3254 {
3255 if (unlikely(varonce==NULL)) {
3256 var5 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3257 if (likely(varonce6!=NULL)) {
3258 var7 = varonce6;
3259 } else {
3260 var8 = "(*)";
3261 var10 = (val*)(3l<<2|1);
3262 var11 = (val*)(3l<<2|1);
3263 var12 = (val*)((long)(0)<<2|3);
3264 var13 = (val*)((long)(0)<<2|3);
3265 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
3266 var7 = var9;
3267 varonce6 = var7;
3268 }
3269 ((struct instance_core__NativeArray*)var5)->values[1]=var7;
3270 } else {
3271 var5 = varonce;
3272 varonce = NULL;
3273 }
3274 {
3275 var14 = nitc___nitc__SeparateRuntimeFunction___c_ret(self);
3276 }
3277 ((struct instance_core__NativeArray*)var5)->values[0]=var14;
3278 {
3279 var15 = nitc___nitc__SeparateRuntimeFunction___c_sig(self);
3280 }
3281 ((struct instance_core__NativeArray*)var5)->values[2]=var15;
3282 {
3283 var16 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
3284 }
3285 varonce = var5;
3286 var3 = var16;
3287 goto RET_LABEL4;
3288 RET_LABEL4:(void)0;
3289 }
3290 self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___c_funptrtype].val = var3; /* _c_funptrtype on <self:SeparateRuntimeFunction> */
3291 var2 = var3;
3292 }
3293 var = var2;
3294 RET_LABEL:;
3295 return var;
3296 }
3297 /* method separate_compiler$SeparateRuntimeFunction$compile_to_c for (self: SeparateRuntimeFunction, AbstractCompiler) */
3298 void nitc___nitc__SeparateRuntimeFunction___nitc__abstract_compiler__AbstractRuntimeFunction__compile_to_c(val* self, val* p0) {
3299 short int var /* : Bool */;
3300 int cltype;
3301 int idtype;
3302 const struct type* type_struct;
3303 const char* var_class_name;
3304 val* var_compiler /* var compiler: AbstractCompiler */;
3305 val* var1 /* : MMethodDef */;
3306 val* var3 /* : MMethodDef */;
3307 val* var_mmethoddef /* var mmethoddef: MMethodDef */;
3308 val* var4 /* : NativeArray[String] */;
3309 static val* varonce;
3310 static val* varonce5;
3311 val* var6 /* : String */;
3312 char* var7 /* : CString */;
3313 val* var8 /* : String */;
3314 val* var9 /* : nullable Int */;
3315 val* var10 /* : nullable Int */;
3316 val* var11 /* : nullable Bool */;
3317 val* var12 /* : nullable Bool */;
3318 val* var13 /* : String */;
3319 val* var14 /* : String */;
3320 val* var15 /* : String */;
3321 val* var16 /* : String */;
3322 val* var_sig /* var sig: String */;
3323 val* var17 /* : String */;
3324 val* var19 /* : NativeArray[String] */;
3325 static val* varonce18;
3326 static val* varonce20;
3327 val* var21 /* : String */;
3328 char* var22 /* : CString */;
3329 val* var23 /* : String */;
3330 val* var24 /* : nullable Int */;
3331 val* var25 /* : nullable Int */;
3332 val* var26 /* : nullable Bool */;
3333 val* var27 /* : nullable Bool */;
3334 val* var28 /* : String */;
3335 short int var29 /* : Bool */;
3336 int cltype30;
3337 int idtype31;
3338 const char* var_class_name32;
3339 val* var33 /* : nullable RapidTypeAnalysis */;
3340 val* var35 /* : nullable RapidTypeAnalysis */;
3341 val* var_rta /* var rta: nullable RapidTypeAnalysis */;
3342 val* var36 /* : MMethodDef */;
3343 val* var38 /* : MMethodDef */;
3344 val* var39 /* : MClassDef */;
3345 val* var41 /* : MClassDef */;
3346 val* var42 /* : MClassType */;
3347 val* var44 /* : MClassType */;
3348 val* var_recv /* var recv: MClassType */;
3349 val* var45 /* : AbstractCompilerVisitor */;
3350 val* var_v /* var v: AbstractCompilerVisitor */;
3351 val* var46 /* : RuntimeVariable */;
3352 static val* varonce47;
3353 val* var48 /* : String */;
3354 char* var49 /* : CString */;
3355 val* var50 /* : String */;
3356 val* var51 /* : nullable Int */;
3357 val* var52 /* : nullable Int */;
3358 val* var53 /* : nullable Bool */;
3359 val* var54 /* : nullable Bool */;
3360 val* var55 /* : MType */;
3361 val* var57 /* : MType */;
3362 val* var_selfvar /* var selfvar: RuntimeVariable */;
3363 val* var58 /* : Array[RuntimeVariable] */;
3364 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
3365 val* var59 /* : StaticFrame */;
3366 val* var_frame /* var frame: StaticFrame */;
3367 val* var61 /* : MSignature */;
3368 val* var63 /* : MSignature */;
3369 val* var_msignature /* var msignature: MSignature */;
3370 val* var64 /* : MSignature */;
3371 val* var66 /* : MSignature */;
3372 val* var67 /* : nullable MType */;
3373 val* var69 /* : nullable MType */;
3374 val* var_ret /* var ret: nullable MType */;
3375 val* var70 /* : FlatBuffer */;
3376 val* var_comment /* var comment: FlatBuffer */;
3377 val* var73 /* : NativeArray[String] */;
3378 static val* varonce72;
3379 static val* varonce74;
3380 val* var75 /* : String */;
3381 char* var76 /* : CString */;
3382 val* var77 /* : String */;
3383 val* var78 /* : nullable Int */;
3384 val* var79 /* : nullable Int */;
3385 val* var80 /* : nullable Bool */;
3386 val* var81 /* : nullable Bool */;
3387 static val* varonce82;
3388 val* var83 /* : String */;
3389 char* var84 /* : CString */;
3390 val* var85 /* : String */;
3391 val* var86 /* : nullable Int */;
3392 val* var87 /* : nullable Int */;
3393 val* var88 /* : nullable Bool */;
3394 val* var89 /* : nullable Bool */;
3395 val* var90 /* : String */;
3396 val* var91 /* : MType */;
3397 val* var93 /* : MType */;
3398 val* var94 /* : String */;
3399 val* var95 /* : String */;
3400 long var_i /* var i: Int */;
3401 long var96 /* : Int */;
3402 long var_ /* var : Int */;
3403 short int var97 /* : Bool */;
3404 short int var99 /* : Bool */;
3405 int cltype100;
3406 int idtype101;
3407 const char* var_class_name102;
3408 short int var103 /* : Bool */;
3409 val* var104 /* : Array[MParameter] */;
3410 val* var106 /* : Array[MParameter] */;
3411 val* var107 /* : nullable Object */;
3412 val* var_mp /* var mp: MParameter */;
3413 val* var108 /* : MType */;
3414 val* var110 /* : MType */;
3415 val* var_mtype /* var mtype: MType */;
3416 short int var111 /* : Bool */;
3417 short int var113 /* : Bool */;
3418 val* var114 /* : MModule */;
3419 val* var115 /* : MClassType */;
3420 val* var117 /* : NativeArray[String] */;
3421 static val* varonce116;
3422 static val* varonce118;
3423 val* var119 /* : String */;
3424 char* var120 /* : CString */;
3425 val* var121 /* : String */;
3426 val* var122 /* : nullable Int */;
3427 val* var123 /* : nullable Int */;
3428 val* var124 /* : nullable Bool */;
3429 val* var125 /* : nullable Bool */;
3430 val* var126 /* : String */;
3431 val* var127 /* : String */;
3432 val* var128 /* : RuntimeVariable */;
3433 val* var130 /* : NativeArray[String] */;
3434 static val* varonce129;
3435 static val* varonce131;
3436 val* var132 /* : String */;
3437 char* var133 /* : CString */;
3438 val* var134 /* : String */;
3439 val* var135 /* : nullable Int */;
3440 val* var136 /* : nullable Int */;
3441 val* var137 /* : nullable Bool */;
3442 val* var138 /* : nullable Bool */;
3443 val* var139 /* : String */;
3444 val* var140 /* : String */;
3445 val* var_argvar /* var argvar: RuntimeVariable */;
3446 long var141 /* : Int */;
3447 static val* varonce142;
3448 val* var143 /* : String */;
3449 char* var144 /* : CString */;
3450 val* var145 /* : String */;
3451 val* var146 /* : nullable Int */;
3452 val* var147 /* : nullable Int */;
3453 val* var148 /* : nullable Bool */;
3454 val* var149 /* : nullable Bool */;
3455 short int var150 /* : Bool */;
3456 short int var151 /* : Bool */;
3457 val* var_other /* var other: nullable Object */;
3458 short int var153 /* : Bool */;
3459 short int var154 /* : Bool */;
3460 val* var156 /* : NativeArray[String] */;
3461 static val* varonce155;
3462 static val* varonce157;
3463 val* var158 /* : String */;
3464 char* var159 /* : CString */;
3465 val* var160 /* : String */;
3466 val* var161 /* : nullable Int */;
3467 val* var162 /* : nullable Int */;
3468 val* var163 /* : nullable Bool */;
3469 val* var164 /* : nullable Bool */;
3470 val* var165 /* : String */;
3471 val* var166 /* : String */;
3472 val* var168 /* : NativeArray[String] */;
3473 static val* varonce167;
3474 static val* varonce169;
3475 val* var170 /* : String */;
3476 char* var171 /* : CString */;
3477 val* var172 /* : String */;
3478 val* var173 /* : nullable Int */;
3479 val* var174 /* : nullable Int */;
3480 val* var175 /* : nullable Bool */;
3481 val* var176 /* : nullable Bool */;
3482 static val* varonce177;
3483 val* var178 /* : String */;
3484 char* var179 /* : CString */;
3485 val* var180 /* : String */;
3486 val* var181 /* : nullable Int */;
3487 val* var182 /* : nullable Int */;
3488 val* var183 /* : nullable Bool */;
3489 val* var184 /* : nullable Bool */;
3490 static val* varonce185;
3491 val* var186 /* : String */;
3492 char* var187 /* : CString */;
3493 val* var188 /* : String */;
3494 val* var189 /* : nullable Int */;
3495 val* var190 /* : nullable Int */;
3496 val* var191 /* : nullable Bool */;
3497 val* var192 /* : nullable Bool */;
3498 val* var193 /* : String */;
3499 val* var194 /* : String */;
3500 val* var195 /* : String */;
3501 val* var197 /* : NativeArray[String] */;
3502 static val* varonce196;
3503 static val* varonce198;
3504 val* var199 /* : String */;
3505 char* var200 /* : CString */;
3506 val* var201 /* : String */;
3507 val* var202 /* : nullable Int */;
3508 val* var203 /* : nullable Int */;
3509 val* var204 /* : nullable Bool */;
3510 val* var205 /* : nullable Bool */;
3511 val* var206 /* : String */;
3512 short int var207 /* : Bool */;
3513 short int var208 /* : Bool */;
3514 short int var210 /* : Bool */;
3515 short int var211 /* : Bool */;
3516 val* var212 /* : RuntimeVariable */;
3517 static val* varonce214;
3518 val* var215 /* : String */;
3519 char* var216 /* : CString */;
3520 val* var217 /* : String */;
3521 val* var218 /* : nullable Int */;
3522 val* var219 /* : nullable Int */;
3523 val* var220 /* : nullable Bool */;
3524 val* var221 /* : nullable Bool */;
3525 val* var222 /* : String */;
3526 short int var224 /* : Bool */;
3527 short int var226 /* : Bool */;
3528 val* var227 /* : nullable RuntimeVariable */;
3529 val* var_subret /* var subret: nullable RuntimeVariable */;
3530 short int var228 /* : Bool */;
3531 short int var229 /* : Bool */;
3532 short int var231 /* : Bool */;
3533 short int var232 /* : Bool */;
3534 short int var233 /* : Bool */;
3535 short int var234 /* : Bool */;
3536 short int var236 /* : Bool */;
3537 short int var237 /* : Bool */;
3538 val* var238 /* : nullable RuntimeVariable */;
3539 val* var240 /* : nullable RuntimeVariable */;
3540 short int var241 /* : Bool */;
3541 short int var242 /* : Bool */;
3542 short int var243 /* : Bool */;
3543 short int var245 /* : Bool */;
3544 short int var246 /* : Bool */;
3545 short int var_247 /* var : Bool */;
3546 val* var248 /* : HashSet[MModule] */;
3547 val* var250 /* : HashSet[MModule] */;
3548 val* var251 /* : MClassDef */;
3549 val* var253 /* : MClassDef */;
3550 val* var254 /* : MModule */;
3551 val* var256 /* : MModule */;
3552 short int var257 /* : Bool */;
3553 short int var258 /* : Bool */;
3554 static val* varonce259;
3555 val* var260 /* : String */;
3556 char* var261 /* : CString */;
3557 val* var262 /* : String */;
3558 val* var263 /* : nullable Int */;
3559 val* var264 /* : nullable Int */;
3560 val* var265 /* : nullable Bool */;
3561 val* var266 /* : nullable Bool */;
3562 val* var267 /* : nullable RuntimeVariable */;
3563 val* var269 /* : NativeArray[String] */;
3564 static val* varonce268;
3565 static val* varonce270;
3566 val* var271 /* : String */;
3567 char* var272 /* : CString */;
3568 val* var273 /* : String */;
3569 val* var274 /* : nullable Int */;
3570 val* var275 /* : nullable Int */;
3571 val* var276 /* : nullable Bool */;
3572 val* var277 /* : nullable Bool */;
3573 val* var278 /* : nullable String */;
3574 val* var280 /* : nullable String */;
3575 val* var281 /* : String */;
3576 short int var282 /* : Bool */;
3577 short int var283 /* : Bool */;
3578 short int var285 /* : Bool */;
3579 short int var286 /* : Bool */;
3580 val* var288 /* : NativeArray[String] */;
3581 static val* varonce287;
3582 static val* varonce289;
3583 val* var290 /* : String */;
3584 char* var291 /* : CString */;
3585 val* var292 /* : String */;
3586 val* var293 /* : nullable Int */;
3587 val* var294 /* : nullable Int */;
3588 val* var295 /* : nullable Bool */;
3589 val* var296 /* : nullable Bool */;
3590 static val* varonce297;
3591 val* var298 /* : String */;
3592 char* var299 /* : CString */;
3593 val* var300 /* : String */;
3594 val* var301 /* : nullable Int */;
3595 val* var302 /* : nullable Int */;
3596 val* var303 /* : nullable Bool */;
3597 val* var304 /* : nullable Bool */;
3598 val* var305 /* : nullable RuntimeVariable */;
3599 val* var307 /* : nullable RuntimeVariable */;
3600 val* var308 /* : String */;
3601 val* var309 /* : String */;
3602 static val* varonce310;
3603 val* var311 /* : String */;
3604 char* var312 /* : CString */;
3605 val* var313 /* : String */;
3606 val* var314 /* : nullable Int */;
3607 val* var315 /* : nullable Int */;
3608 val* var316 /* : nullable Bool */;
3609 val* var317 /* : nullable Bool */;
3610 val* var318 /* : HashMap[String, String] */;
3611 val* var320 /* : HashMap[String, String] */;
3612 val* var321 /* : String */;
3613 val* var323 /* : NativeArray[String] */;
3614 static val* varonce322;
3615 static val* varonce324;
3616 val* var325 /* : String */;
3617 char* var326 /* : CString */;
3618 val* var327 /* : String */;
3619 val* var328 /* : nullable Int */;
3620 val* var329 /* : nullable Int */;
3621 val* var330 /* : nullable Bool */;
3622 val* var331 /* : nullable Bool */;
3623 static val* varonce332;
3624 val* var333 /* : String */;
3625 char* var334 /* : CString */;
3626 val* var335 /* : String */;
3627 val* var336 /* : nullable Int */;
3628 val* var337 /* : nullable Int */;
3629 val* var338 /* : nullable Bool */;
3630 val* var339 /* : nullable Bool */;
3631 static val* varonce340;
3632 val* var341 /* : String */;
3633 char* var342 /* : CString */;
3634 val* var343 /* : String */;
3635 val* var344 /* : nullable Int */;
3636 val* var345 /* : nullable Int */;
3637 val* var346 /* : nullable Bool */;
3638 val* var347 /* : nullable Bool */;
3639 val* var348 /* : String */;
3640 val* var349 /* : Location */;
3641 val* var351 /* : Location */;
3642 val* var352 /* : nullable SourceFile */;
3643 val* var354 /* : nullable SourceFile */;
3644 val* var355 /* : String */;
3645 val* var357 /* : String */;
3646 val* var358 /* : Location */;
3647 val* var360 /* : Location */;
3648 long var361 /* : Int */;
3649 long var363 /* : Int */;
3650 val* var364 /* : String */;
3651 val* var365 /* : String */;
3652 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
3653 /* <p0:AbstractCompiler> isa COMPILER */
3654 type_struct = self->type->resolution_table->types[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction__COMPILER];
3655 cltype = type_struct->color;
3656 idtype = type_struct->id;
3657 if(cltype >= p0->type->table_size) {
3658 var = 0;
3659 } else {
3660 var = p0->type->type_table[cltype] == idtype;
3661 }
3662 if (unlikely(!var)) {
3663 var_class_name = p0 == NULL ? "null" : p0->type->name;
3664 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name);
3665 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2276);
3666 fatal_exit(1);
3667 }
3668 var_compiler = p0;
3669 {
3670 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
3671 var3 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
3672 if (unlikely(var3 == NULL)) {
3673 if(catchStack.cursor >= 0){
3674 longjmp(catchStack.envs[catchStack.cursor], 1);
3675 }
3676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
3677 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
3678 fatal_exit(1);
3679 }
3680 var1 = var3;
3681 RET_LABEL2:(void)0;
3682 }
3683 }
3684 var_mmethoddef = var1;
3685 if (unlikely(varonce==NULL)) {
3686 var4 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
3687 if (likely(varonce5!=NULL)) {
3688 var6 = varonce5;
3689 } else {
3690 var7 = " ";
3691 var9 = (val*)(1l<<2|1);
3692 var10 = (val*)(1l<<2|1);
3693 var11 = (val*)((long)(0)<<2|3);
3694 var12 = (val*)((long)(0)<<2|3);
3695 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
3696 var6 = var8;
3697 varonce5 = var6;
3698 }
3699 ((struct instance_core__NativeArray*)var4)->values[1]=var6;
3700 } else {
3701 var4 = varonce;
3702 varonce = NULL;
3703 }
3704 {
3705 var13 = nitc___nitc__SeparateRuntimeFunction___c_ret(self);
3706 }
3707 ((struct instance_core__NativeArray*)var4)->values[0]=var13;
3708 {
3709 var14 = nitc___nitc__AbstractRuntimeFunction___c_name(self);
3710 }
3711 ((struct instance_core__NativeArray*)var4)->values[2]=var14;
3712 {
3713 var15 = nitc___nitc__SeparateRuntimeFunction___c_sig(self);
3714 }
3715 ((struct instance_core__NativeArray*)var4)->values[3]=var15;
3716 {
3717 var16 = ((val*(*)(val* self))(var4->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var4); /* native_to_s on <var4:NativeArray[String]>*/
3718 }
3719 varonce = var4;
3720 var_sig = var16;
3721 {
3722 var17 = nitc___nitc__AbstractRuntimeFunction___c_name(self);
3723 }
3724 if (unlikely(varonce18==NULL)) {
3725 var19 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
3726 if (likely(varonce20!=NULL)) {
3727 var21 = varonce20;
3728 } else {
3729 var22 = ";";
3730 var24 = (val*)(1l<<2|1);
3731 var25 = (val*)(1l<<2|1);
3732 var26 = (val*)((long)(0)<<2|3);
3733 var27 = (val*)((long)(0)<<2|3);
3734 var23 = core__flat___CString___to_s_unsafe(var22, var24, var25, var26, var27);
3735 var21 = var23;
3736 varonce20 = var21;
3737 }
3738 ((struct instance_core__NativeArray*)var19)->values[1]=var21;
3739 } else {
3740 var19 = varonce18;
3741 varonce18 = NULL;
3742 }
3743 ((struct instance_core__NativeArray*)var19)->values[0]=var_sig;
3744 {
3745 var28 = ((val*(*)(val* self))(var19->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var19); /* native_to_s on <var19:NativeArray[String]>*/
3746 }
3747 varonce18 = var19;
3748 {
3749 nitc___nitc__AbstractCompiler___provide_declaration(var_compiler, var17, var28); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <var_compiler:AbstractCompiler>*/
3750 }
3751 /* <var_compiler:AbstractCompiler> isa SeparateCompiler */
3752 cltype30 = type_nitc__SeparateCompiler.color;
3753 idtype31 = type_nitc__SeparateCompiler.id;
3754 if(cltype30 >= var_compiler->type->table_size) {
3755 var29 = 0;
3756 } else {
3757 var29 = var_compiler->type->type_table[cltype30] == idtype31;
3758 }
3759 if (unlikely(!var29)) {
3760 var_class_name32 = var_compiler == NULL ? "null" : var_compiler->type->name;
3761 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "SeparateCompiler", var_class_name32);
3762 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2283);
3763 fatal_exit(1);
3764 }
3765 {
3766 { /* Inline separate_compiler$SeparateCompiler$runtime_type_analysis (var_compiler) on <var_compiler:AbstractCompiler(SeparateCompiler)> */
3767 var35 = var_compiler->attrs[COLOR_nitc__separate_compiler__SeparateCompiler___runtime_type_analysis].val; /* _runtime_type_analysis on <var_compiler:AbstractCompiler(SeparateCompiler)> */
3768 var33 = var35;
3769 RET_LABEL34:(void)0;
3770 }
3771 }
3772 var_rta = var33;
3773 {
3774 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
3775 var38 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
3776 if (unlikely(var38 == NULL)) {
3777 if(catchStack.cursor >= 0){
3778 longjmp(catchStack.envs[catchStack.cursor], 1);
3779 }
3780 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
3781 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
3782 fatal_exit(1);
3783 }
3784 var36 = var38;
3785 RET_LABEL37:(void)0;
3786 }
3787 }
3788 {
3789 { /* Inline model$MPropDef$mclassdef (var36) on <var36:MMethodDef> */
3790 var41 = var36->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var36:MMethodDef> */
3791 if (unlikely(var41 == NULL)) {
3792 if(catchStack.cursor >= 0){
3793 longjmp(catchStack.envs[catchStack.cursor], 1);
3794 }
3795 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3796 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
3797 fatal_exit(1);
3798 }
3799 var39 = var41;
3800 RET_LABEL40:(void)0;
3801 }
3802 }
3803 {
3804 { /* Inline model$MClassDef$bound_mtype (var39) on <var39:MClassDef> */
3805 var44 = var39->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var39:MClassDef> */
3806 if (unlikely(var44 == NULL)) {
3807 if(catchStack.cursor >= 0){
3808 longjmp(catchStack.envs[catchStack.cursor], 1);
3809 }
3810 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
3811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
3812 fatal_exit(1);
3813 }
3814 var42 = var44;
3815 RET_LABEL43:(void)0;
3816 }
3817 }
3818 var_recv = var42;
3819 {
3820 var45 = ((val*(*)(val* self))(var_compiler->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(var_compiler); /* new_visitor on <var_compiler:AbstractCompiler>*/
3821 }
3822 var_v = var45;
3823 var46 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
3824 if (likely(varonce47!=NULL)) {
3825 var48 = varonce47;
3826 } else {
3827 var49 = "self";
3828 var51 = (val*)(4l<<2|1);
3829 var52 = (val*)(4l<<2|1);
3830 var53 = (val*)((long)(0)<<2|3);
3831 var54 = (val*)((long)(0)<<2|3);
3832 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
3833 var48 = var50;
3834 varonce47 = var48;
3835 }
3836 {
3837 { /* Inline separate_compiler$SeparateRuntimeFunction$called_recv (self) on <self:SeparateRuntimeFunction> */
3838 var57 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on <self:SeparateRuntimeFunction> */
3839 if (unlikely(var57 == NULL)) {
3840 if(catchStack.cursor >= 0){
3841 longjmp(catchStack.envs[catchStack.cursor], 1);
3842 }
3843 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv");
3844 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2233);
3845 fatal_exit(1);
3846 }
3847 var55 = var57;
3848 RET_LABEL56:(void)0;
3849 }
3850 }
3851 {
3852 ((void(*)(val* self, val* p0))(var46->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var46, var48); /* name= on <var46:RuntimeVariable>*/
3853 }
3854 {
3855 ((void(*)(val* self, val* p0))(var46->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var46, var55); /* mtype= on <var46:RuntimeVariable>*/
3856 }
3857 {
3858 ((void(*)(val* self, val* p0))(var46->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var46, var_recv); /* mcasttype= on <var46:RuntimeVariable>*/
3859 }
3860 {
3861 ((void(*)(val* self))(var46->class->vft[COLOR_core__kernel__Object__init]))(var46); /* init on <var46:RuntimeVariable>*/
3862 }
3863 var_selfvar = var46;
3864 var58 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
3865 {
3866 core___core__Array___core__kernel__Object__init(var58); /* Direct call array$Array$init on <var58:Array[RuntimeVariable]>*/
3867 }
3868 var_arguments = var58;
3869 var59 = NEW_nitc__StaticFrame(&type_nitc__StaticFrame);
3870 {
3871 ((void(*)(val* self, val* p0))(var59->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__visitor_61d]))(var59, var_v); /* visitor= on <var59:StaticFrame>*/
3872 }
3873 {
3874 ((void(*)(val* self, val* p0))(var59->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__mpropdef_61d]))(var59, var_mmethoddef); /* mpropdef= on <var59:StaticFrame>*/
3875 }
3876 {
3877 ((void(*)(val* self, val* p0))(var59->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__receiver_61d]))(var59, var_recv); /* receiver= on <var59:StaticFrame>*/
3878 }
3879 {
3880 ((void(*)(val* self, val* p0))(var59->class->vft[COLOR_nitc__abstract_compiler__StaticFrame__arguments_61d]))(var59, var_arguments); /* arguments= on <var59:StaticFrame>*/
3881 }
3882 {
3883 ((void(*)(val* self))(var59->class->vft[COLOR_core__kernel__Object__init]))(var59); /* init on <var59:StaticFrame>*/
3884 }
3885 var_frame = var59;
3886 {
3887 { /* Inline abstract_compiler$AbstractCompilerVisitor$frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
3888 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
3889 RET_LABEL60:(void)0;
3890 }
3891 }
3892 {
3893 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (self) on <self:SeparateRuntimeFunction> */
3894 var63 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
3895 if (unlikely(var63 == NULL)) {
3896 if(catchStack.cursor >= 0){
3897 longjmp(catchStack.envs[catchStack.cursor], 1);
3898 }
3899 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
3900 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
3901 fatal_exit(1);
3902 }
3903 var61 = var63;
3904 RET_LABEL62:(void)0;
3905 }
3906 }
3907 var_msignature = var61;
3908 {
3909 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (self) on <self:SeparateRuntimeFunction> */
3910 var66 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
3911 if (unlikely(var66 == NULL)) {
3912 if(catchStack.cursor >= 0){
3913 longjmp(catchStack.envs[catchStack.cursor], 1);
3914 }
3915 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
3916 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
3917 fatal_exit(1);
3918 }
3919 var64 = var66;
3920 RET_LABEL65:(void)0;
3921 }
3922 }
3923 {
3924 { /* Inline model$MSignature$return_mtype (var64) on <var64:MSignature> */
3925 var69 = var64->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var64:MSignature> */
3926 var67 = var69;
3927 RET_LABEL68:(void)0;
3928 }
3929 }
3930 var_ret = var67;
3931 var70 = NEW_core__FlatBuffer(&type_core__FlatBuffer);
3932 {
3933 { /* Inline flat$FlatBuffer$init (var70) on <var70:FlatBuffer> */
3934 {
3935 ((void(*)(val* self))(var70->class->vft[COLOR_core___core__FlatBuffer___core__kernel__Object__init]))(var70); /* init on <var70:FlatBuffer>*/
3936 }
3937 RET_LABEL71:(void)0;
3938 }
3939 }
3940 var_comment = var70;
3941 if (unlikely(varonce72==NULL)) {
3942 var73 = NEW_core__NativeArray((int)4l, &type_core__NativeArray__core__String);
3943 if (likely(varonce74!=NULL)) {
3944 var75 = varonce74;
3945 } else {
3946 var76 = "(";
3947 var78 = (val*)(1l<<2|1);
3948 var79 = (val*)(1l<<2|1);
3949 var80 = (val*)((long)(0)<<2|3);
3950 var81 = (val*)((long)(0)<<2|3);
3951 var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81);
3952 var75 = var77;
3953 varonce74 = var75;
3954 }
3955 ((struct instance_core__NativeArray*)var73)->values[0]=var75;
3956 if (likely(varonce82!=NULL)) {
3957 var83 = varonce82;
3958 } else {
3959 var84 = ": ";
3960 var86 = (val*)(2l<<2|1);
3961 var87 = (val*)(2l<<2|1);
3962 var88 = (val*)((long)(0)<<2|3);
3963 var89 = (val*)((long)(0)<<2|3);
3964 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
3965 var83 = var85;
3966 varonce82 = var83;
3967 }
3968 ((struct instance_core__NativeArray*)var73)->values[2]=var83;
3969 } else {
3970 var73 = varonce72;
3971 varonce72 = NULL;
3972 }
3973 {
3974 var90 = ((val*(*)(val* self))(var_selfvar->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_selfvar); /* to_s on <var_selfvar:RuntimeVariable>*/
3975 }
3976 ((struct instance_core__NativeArray*)var73)->values[1]=var90;
3977 {
3978 { /* Inline abstract_compiler$RuntimeVariable$mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
3979 var93 = var_selfvar->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_selfvar:RuntimeVariable> */
3980 if (unlikely(var93 == NULL)) {
3981 if(catchStack.cursor >= 0){
3982 longjmp(catchStack.envs[catchStack.cursor], 1);
3983 }
3984 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3985 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
3986 fatal_exit(1);
3987 }
3988 var91 = var93;
3989 RET_LABEL92:(void)0;
3990 }
3991 }
3992 {
3993 var94 = ((val*(*)(val* self))(var91->class->vft[COLOR_core__abstract_text__Object__to_s]))(var91); /* to_s on <var91:MType>*/
3994 }
3995 ((struct instance_core__NativeArray*)var73)->values[3]=var94;
3996 {
3997 var95 = ((val*(*)(val* self))(var73->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var73); /* native_to_s on <var73:NativeArray[String]>*/
3998 }
3999 varonce72 = var73;
4000 {
4001 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_comment, var95); /* Direct call flat$FlatBuffer$append on <var_comment:FlatBuffer>*/
4002 }
4003 {
4004 core___core__Array___core__abstract_collection__SimpleCollection__add(var_arguments, var_selfvar); /* Direct call array$Array$add on <var_arguments:Array[RuntimeVariable]>*/
4005 }
4006 var_i = 0l;
4007 {
4008 var96 = nitc___nitc__MSignature___arity(var_msignature);
4009 }
4010 var_ = var96;
4011 for(;;) {
4012 {
4013 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
4014 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
4015 /* <var_:Int> isa OTHER */
4016 var99 = 1; /* easy <var_:Int> isa OTHER*/
4017 if (unlikely(!var99)) {
4018 var_class_name102 = type_core__Int.name;
4019 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name102);
4020 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4021 fatal_exit(1);
4022 }
4023 var103 = var_i < var_;
4024 var97 = var103;
4025 goto RET_LABEL98;
4026 RET_LABEL98:(void)0;
4027 }
4028 }
4029 if (var97){
4030 } else {
4031 goto BREAK_label;
4032 }
4033 {
4034 { /* Inline model$MSignature$mparameters (var_msignature) on <var_msignature:MSignature> */
4035 var106 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:MSignature> */
4036 if (unlikely(var106 == NULL)) {
4037 if(catchStack.cursor >= 0){
4038 longjmp(catchStack.envs[catchStack.cursor], 1);
4039 }
4040 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4041 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
4042 fatal_exit(1);
4043 }
4044 var104 = var106;
4045 RET_LABEL105:(void)0;
4046 }
4047 }
4048 {
4049 var107 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var104, var_i);
4050 }
4051 var_mp = var107;
4052 {
4053 { /* Inline model$MParameter$mtype (var_mp) on <var_mp:MParameter> */
4054 var110 = var_mp->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_mp:MParameter> */
4055 if (unlikely(var110 == NULL)) {
4056 if(catchStack.cursor >= 0){
4057 longjmp(catchStack.envs[catchStack.cursor], 1);
4058 }
4059 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4060 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
4061 fatal_exit(1);
4062 }
4063 var108 = var110;
4064 RET_LABEL109:(void)0;
4065 }
4066 }
4067 var_mtype = var108;
4068 {
4069 { /* Inline model$MParameter$is_vararg (var_mp) on <var_mp:MParameter> */
4070 var113 = var_mp->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_mp:MParameter> */
4071 var111 = var113;
4072 RET_LABEL112:(void)0;
4073 }
4074 }
4075 if (var111){
4076 {
4077 var114 = nitc___nitc__AbstractCompilerVisitor___mmodule(var_v);
4078 }
4079 {
4080 var115 = nitc__model___MModule___array_type(var114, var_mtype);
4081 }
4082 var_mtype = var115;
4083 } else {
4084 }
4085 if (unlikely(varonce116==NULL)) {
4086 var117 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4087 if (likely(varonce118!=NULL)) {
4088 var119 = varonce118;
4089 } else {
4090 var120 = ", ";
4091 var122 = (val*)(2l<<2|1);
4092 var123 = (val*)(2l<<2|1);
4093 var124 = (val*)((long)(0)<<2|3);
4094 var125 = (val*)((long)(0)<<2|3);
4095 var121 = core__flat___CString___to_s_unsafe(var120, var122, var123, var124, var125);
4096 var119 = var121;
4097 varonce118 = var119;
4098 }
4099 ((struct instance_core__NativeArray*)var117)->values[0]=var119;
4100 } else {
4101 var117 = varonce116;
4102 varonce116 = NULL;
4103 }
4104 {
4105 var126 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
4106 }
4107 ((struct instance_core__NativeArray*)var117)->values[1]=var126;
4108 {
4109 var127 = ((val*(*)(val* self))(var117->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var117); /* native_to_s on <var117:NativeArray[String]>*/
4110 }
4111 varonce116 = var117;
4112 {
4113 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_comment, var127); /* Direct call flat$FlatBuffer$append on <var_comment:FlatBuffer>*/
4114 }
4115 var128 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
4116 if (unlikely(varonce129==NULL)) {
4117 var130 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4118 if (likely(varonce131!=NULL)) {
4119 var132 = varonce131;
4120 } else {
4121 var133 = "p";
4122 var135 = (val*)(1l<<2|1);
4123 var136 = (val*)(1l<<2|1);
4124 var137 = (val*)((long)(0)<<2|3);
4125 var138 = (val*)((long)(0)<<2|3);
4126 var134 = core__flat___CString___to_s_unsafe(var133, var135, var136, var137, var138);
4127 var132 = var134;
4128 varonce131 = var132;
4129 }
4130 ((struct instance_core__NativeArray*)var130)->values[0]=var132;
4131 } else {
4132 var130 = varonce129;
4133 varonce129 = NULL;
4134 }
4135 var139 = core__flat___Int___core__abstract_text__Object__to_s(var_i);
4136 ((struct instance_core__NativeArray*)var130)->values[1]=var139;
4137 {
4138 var140 = ((val*(*)(val* self))(var130->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var130); /* native_to_s on <var130:NativeArray[String]>*/
4139 }
4140 varonce129 = var130;
4141 {
4142 ((void(*)(val* self, val* p0))(var128->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var128, var140); /* name= on <var128:RuntimeVariable>*/
4143 }
4144 {
4145 ((void(*)(val* self, val* p0))(var128->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var128, var_mtype); /* mtype= on <var128:RuntimeVariable>*/
4146 }
4147 {
4148 ((void(*)(val* self, val* p0))(var128->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var128, var_mtype); /* mcasttype= on <var128:RuntimeVariable>*/
4149 }
4150 {
4151 ((void(*)(val* self))(var128->class->vft[COLOR_core__kernel__Object__init]))(var128); /* init on <var128:RuntimeVariable>*/
4152 }
4153 var_argvar = var128;
4154 {
4155 core___core__Array___core__abstract_collection__SimpleCollection__add(var_arguments, var_argvar); /* Direct call array$Array$add on <var_arguments:Array[RuntimeVariable]>*/
4156 }
4157 {
4158 var141 = core___core__Int___Discrete__successor(var_i, 1l);
4159 }
4160 var_i = var141;
4161 }
4162 BREAK_label: (void)0;
4163 if (likely(varonce142!=NULL)) {
4164 var143 = varonce142;
4165 } else {
4166 var144 = ")";
4167 var146 = (val*)(1l<<2|1);
4168 var147 = (val*)(1l<<2|1);
4169 var148 = (val*)((long)(0)<<2|3);
4170 var149 = (val*)((long)(0)<<2|3);
4171 var145 = core__flat___CString___to_s_unsafe(var144, var146, var147, var148, var149);
4172 var143 = var145;
4173 varonce142 = var143;
4174 }
4175 {
4176 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_comment, var143); /* Direct call flat$FlatBuffer$append on <var_comment:FlatBuffer>*/
4177 }
4178 if (var_ret == NULL) {
4179 var150 = 0; /* is null */
4180 } else {
4181 var150 = 1; /* arg is null and recv is not */
4182 }
4183 if (0) {
4184 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
4185 var_other = ((val*)NULL);
4186 {
4187 var153 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
4188 }
4189 var154 = !var153;
4190 var151 = var154;
4191 goto RET_LABEL152;
4192 RET_LABEL152:(void)0;
4193 }
4194 var150 = var151;
4195 }
4196 if (var150){
4197 if (unlikely(varonce155==NULL)) {
4198 var156 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4199 if (likely(varonce157!=NULL)) {
4200 var158 = varonce157;
4201 } else {
4202 var159 = ": ";
4203 var161 = (val*)(2l<<2|1);
4204 var162 = (val*)(2l<<2|1);
4205 var163 = (val*)((long)(0)<<2|3);
4206 var164 = (val*)((long)(0)<<2|3);
4207 var160 = core__flat___CString___to_s_unsafe(var159, var161, var162, var163, var164);
4208 var158 = var160;
4209 varonce157 = var158;
4210 }
4211 ((struct instance_core__NativeArray*)var156)->values[0]=var158;
4212 } else {
4213 var156 = varonce155;
4214 varonce155 = NULL;
4215 }
4216 {
4217 var165 = ((val*(*)(val* self))(var_ret->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ret); /* to_s on <var_ret:nullable MType(MType)>*/
4218 }
4219 ((struct instance_core__NativeArray*)var156)->values[1]=var165;
4220 {
4221 var166 = ((val*(*)(val* self))(var156->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var156); /* native_to_s on <var156:NativeArray[String]>*/
4222 }
4223 varonce155 = var156;
4224 {
4225 core___core__FlatBuffer___core__abstract_text__Buffer__append(var_comment, var166); /* Direct call flat$FlatBuffer$append on <var_comment:FlatBuffer>*/
4226 }
4227 } else {
4228 }
4229 if (unlikely(varonce167==NULL)) {
4230 var168 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
4231 if (likely(varonce169!=NULL)) {
4232 var170 = varonce169;
4233 } else {
4234 var171 = "/* method ";
4235 var173 = (val*)(10l<<2|1);
4236 var174 = (val*)(10l<<2|1);
4237 var175 = (val*)((long)(0)<<2|3);
4238 var176 = (val*)((long)(0)<<2|3);
4239 var172 = core__flat___CString___to_s_unsafe(var171, var173, var174, var175, var176);
4240 var170 = var172;
4241 varonce169 = var170;
4242 }
4243 ((struct instance_core__NativeArray*)var168)->values[0]=var170;
4244 if (likely(varonce177!=NULL)) {
4245 var178 = varonce177;
4246 } else {
4247 var179 = " for ";
4248 var181 = (val*)(5l<<2|1);
4249 var182 = (val*)(5l<<2|1);
4250 var183 = (val*)((long)(0)<<2|3);
4251 var184 = (val*)((long)(0)<<2|3);
4252 var180 = core__flat___CString___to_s_unsafe(var179, var181, var182, var183, var184);
4253 var178 = var180;
4254 varonce177 = var178;
4255 }
4256 ((struct instance_core__NativeArray*)var168)->values[2]=var178;
4257 if (likely(varonce185!=NULL)) {
4258 var186 = varonce185;
4259 } else {
4260 var187 = " */";
4261 var189 = (val*)(3l<<2|1);
4262 var190 = (val*)(3l<<2|1);
4263 var191 = (val*)((long)(0)<<2|3);
4264 var192 = (val*)((long)(0)<<2|3);
4265 var188 = core__flat___CString___to_s_unsafe(var187, var189, var190, var191, var192);
4266 var186 = var188;
4267 varonce185 = var186;
4268 }
4269 ((struct instance_core__NativeArray*)var168)->values[4]=var186;
4270 } else {
4271 var168 = varonce167;
4272 varonce167 = NULL;
4273 }
4274 {
4275 var193 = ((val*(*)(val* self))(self->class->vft[COLOR_core__abstract_text__Object__to_s]))(self); /* to_s on <self:SeparateRuntimeFunction>*/
4276 }
4277 ((struct instance_core__NativeArray*)var168)->values[1]=var193;
4278 {
4279 var194 = ((val*(*)(val* self))(var_comment->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_comment); /* to_s on <var_comment:FlatBuffer>*/
4280 }
4281 ((struct instance_core__NativeArray*)var168)->values[3]=var194;
4282 {
4283 var195 = ((val*(*)(val* self))(var168->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var168); /* native_to_s on <var168:NativeArray[String]>*/
4284 }
4285 varonce167 = var168;
4286 {
4287 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var195); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:AbstractCompilerVisitor>*/
4288 }
4289 if (unlikely(varonce196==NULL)) {
4290 var197 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4291 if (likely(varonce198!=NULL)) {
4292 var199 = varonce198;
4293 } else {
4294 var200 = " {";
4295 var202 = (val*)(2l<<2|1);
4296 var203 = (val*)(2l<<2|1);
4297 var204 = (val*)((long)(0)<<2|3);
4298 var205 = (val*)((long)(0)<<2|3);
4299 var201 = core__flat___CString___to_s_unsafe(var200, var202, var203, var204, var205);
4300 var199 = var201;
4301 varonce198 = var199;
4302 }
4303 ((struct instance_core__NativeArray*)var197)->values[1]=var199;
4304 } else {
4305 var197 = varonce196;
4306 varonce196 = NULL;
4307 }
4308 ((struct instance_core__NativeArray*)var197)->values[0]=var_sig;
4309 {
4310 var206 = ((val*(*)(val* self))(var197->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var197); /* native_to_s on <var197:NativeArray[String]>*/
4311 }
4312 varonce196 = var197;
4313 {
4314 nitc___nitc__AbstractCompilerVisitor___add_decl(var_v, var206); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_decl on <var_v:AbstractCompilerVisitor>*/
4315 }
4316 if (var_ret == NULL) {
4317 var207 = 0; /* is null */
4318 } else {
4319 var207 = 1; /* arg is null and recv is not */
4320 }
4321 if (0) {
4322 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
4323 var_other = ((val*)NULL);
4324 {
4325 var210 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
4326 }
4327 var211 = !var210;
4328 var208 = var211;
4329 goto RET_LABEL209;
4330 RET_LABEL209:(void)0;
4331 }
4332 var207 = var208;
4333 }
4334 if (var207){
4335 {
4336 var212 = nitc___nitc__AbstractCompilerVisitor___new_var(var_v, var_ret);
4337 }
4338 {
4339 { /* Inline abstract_compiler$StaticFrame$returnvar= (var_frame,var212) on <var_frame:StaticFrame> */
4340 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val = var212; /* _returnvar on <var_frame:StaticFrame> */
4341 RET_LABEL213:(void)0;
4342 }
4343 }
4344 } else {
4345 }
4346 if (likely(varonce214!=NULL)) {
4347 var215 = varonce214;
4348 } else {
4349 var216 = "RET_LABEL";
4350 var218 = (val*)(9l<<2|1);
4351 var219 = (val*)(9l<<2|1);
4352 var220 = (val*)((long)(0)<<2|3);
4353 var221 = (val*)((long)(0)<<2|3);
4354 var217 = core__flat___CString___to_s_unsafe(var216, var218, var219, var220, var221);
4355 var215 = var217;
4356 varonce214 = var215;
4357 }
4358 {
4359 var222 = nitc___nitc__AbstractCompilerVisitor___get_name(var_v, var215);
4360 }
4361 {
4362 { /* Inline abstract_compiler$StaticFrame$returnlabel= (var_frame,var222) on <var_frame:StaticFrame> */
4363 var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val = var222; /* _returnlabel on <var_frame:StaticFrame> */
4364 RET_LABEL223:(void)0;
4365 }
4366 }
4367 {
4368 { /* Inline separate_compiler$SeparateRuntimeFunction$is_thunk (self) on <self:SeparateRuntimeFunction> */
4369 var226 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___is_thunk].s; /* _is_thunk on <self:SeparateRuntimeFunction> */
4370 var224 = var226;
4371 RET_LABEL225:(void)0;
4372 }
4373 }
4374 if (var224){
4375 {
4376 var227 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__call(var_v, var_mmethoddef, var_recv, var_arguments);
4377 }
4378 var_subret = var227;
4379 if (var_ret == NULL) {
4380 var228 = 0; /* is null */
4381 } else {
4382 var228 = 1; /* arg is null and recv is not */
4383 }
4384 if (0) {
4385 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
4386 var_other = ((val*)NULL);
4387 {
4388 var231 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
4389 }
4390 var232 = !var231;
4391 var229 = var232;
4392 goto RET_LABEL230;
4393 RET_LABEL230:(void)0;
4394 }
4395 var228 = var229;
4396 }
4397 if (var228){
4398 if (var_subret == NULL) {
4399 var233 = 0; /* is null */
4400 } else {
4401 var233 = 1; /* arg is null and recv is not */
4402 }
4403 if (0) {
4404 { /* Inline kernel$Object$!= (var_subret,((val*)NULL)) on <var_subret:nullable RuntimeVariable> */
4405 var_other = ((val*)NULL);
4406 {
4407 var236 = ((short int(*)(val* self, val* p0))(var_subret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_subret, var_other); /* == on <var_subret:nullable RuntimeVariable(RuntimeVariable)>*/
4408 }
4409 var237 = !var236;
4410 var234 = var237;
4411 goto RET_LABEL235;
4412 RET_LABEL235:(void)0;
4413 }
4414 var233 = var234;
4415 }
4416 if (unlikely(!var233)) {
4417 if(catchStack.cursor >= 0){
4418 longjmp(catchStack.envs[catchStack.cursor], 1);
4419 }
4420 PRINT_ERROR("Runtime error: %s", "Assert failed");
4421 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2323);
4422 fatal_exit(1);
4423 }
4424 {
4425 { /* Inline abstract_compiler$StaticFrame$returnvar (var_frame) on <var_frame:StaticFrame> */
4426 var240 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var_frame:StaticFrame> */
4427 var238 = var240;
4428 RET_LABEL239:(void)0;
4429 }
4430 }
4431 if (unlikely(var238 == NULL)) {
4432 if(catchStack.cursor >= 0){
4433 longjmp(catchStack.envs[catchStack.cursor], 1);
4434 }
4435 PRINT_ERROR("Runtime error: %s", "Cast failed");
4436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2324);
4437 fatal_exit(1);
4438 }
4439 {
4440 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var238, var_subret); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
4441 }
4442 } else {
4443 }
4444 } else {
4445 if (var_rta == NULL) {
4446 var242 = 0; /* is null */
4447 } else {
4448 var242 = 1; /* arg is null and recv is not */
4449 }
4450 if (0) {
4451 { /* Inline kernel$Object$!= (var_rta,((val*)NULL)) on <var_rta:nullable RapidTypeAnalysis> */
4452 var_other = ((val*)NULL);
4453 {
4454 var245 = ((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)>*/
4455 }
4456 var246 = !var245;
4457 var243 = var246;
4458 goto RET_LABEL244;
4459 RET_LABEL244:(void)0;
4460 }
4461 var242 = var243;
4462 }
4463 var_247 = var242;
4464 if (var242){
4465 {
4466 { /* Inline rapid_type_analysis$RapidTypeAnalysis$live_mmodules (var_rta) on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4467 var250 = var_rta->attrs[COLOR_nitc__rapid_type_analysis__RapidTypeAnalysis___live_mmodules].val; /* _live_mmodules on <var_rta:nullable RapidTypeAnalysis(RapidTypeAnalysis)> */
4468 if (unlikely(var250 == NULL)) {
4469 if(catchStack.cursor >= 0){
4470 longjmp(catchStack.envs[catchStack.cursor], 1);
4471 }
4472 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _live_mmodules");
4473 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__rapid_type_analysis, 85);
4474 fatal_exit(1);
4475 }
4476 var248 = var250;
4477 RET_LABEL249:(void)0;
4478 }
4479 }
4480 {
4481 { /* Inline model$MPropDef$mclassdef (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
4482 var253 = var_mmethoddef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mmethoddef:MMethodDef> */
4483 if (unlikely(var253 == NULL)) {
4484 if(catchStack.cursor >= 0){
4485 longjmp(catchStack.envs[catchStack.cursor], 1);
4486 }
4487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4488 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
4489 fatal_exit(1);
4490 }
4491 var251 = var253;
4492 RET_LABEL252:(void)0;
4493 }
4494 }
4495 {
4496 { /* Inline model$MClassDef$mmodule (var251) on <var251:MClassDef> */
4497 var256 = var251->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var251:MClassDef> */
4498 if (unlikely(var256 == NULL)) {
4499 if(catchStack.cursor >= 0){
4500 longjmp(catchStack.envs[catchStack.cursor], 1);
4501 }
4502 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4503 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
4504 fatal_exit(1);
4505 }
4506 var254 = var256;
4507 RET_LABEL255:(void)0;
4508 }
4509 }
4510 {
4511 var257 = core___core__HashSet___core__abstract_collection__Collection__has(var248, var254);
4512 }
4513 var258 = !var257;
4514 var241 = var258;
4515 } else {
4516 var241 = var_247;
4517 }
4518 if (var241){
4519 if (likely(varonce259!=NULL)) {
4520 var260 = varonce259;
4521 } else {
4522 var261 = "FATAL: Dead method executed.";
4523 var263 = (val*)(28l<<2|1);
4524 var264 = (val*)(28l<<2|1);
4525 var265 = (val*)((long)(0)<<2|3);
4526 var266 = (val*)((long)(0)<<2|3);
4527 var262 = core__flat___CString___to_s_unsafe(var261, var263, var264, var265, var266);
4528 var260 = var262;
4529 varonce259 = var260;
4530 }
4531 {
4532 nitc___nitc__AbstractCompilerVisitor___add_abort(var_v, var260); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_abort on <var_v:AbstractCompilerVisitor>*/
4533 }
4534 } else {
4535 {
4536 var267 = nitc__abstract_compiler___MMethodDef___compile_inside_to_c(var_mmethoddef, var_v, var_arguments);
4537 }
4538 }
4539 }
4540 if (unlikely(varonce268==NULL)) {
4541 var269 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
4542 if (likely(varonce270!=NULL)) {
4543 var271 = varonce270;
4544 } else {
4545 var272 = ":;";
4546 var274 = (val*)(2l<<2|1);
4547 var275 = (val*)(2l<<2|1);
4548 var276 = (val*)((long)(0)<<2|3);
4549 var277 = (val*)((long)(0)<<2|3);
4550 var273 = core__flat___CString___to_s_unsafe(var272, var274, var275, var276, var277);
4551 var271 = var273;
4552 varonce270 = var271;
4553 }
4554 ((struct instance_core__NativeArray*)var269)->values[1]=var271;
4555 } else {
4556 var269 = varonce268;
4557 varonce268 = NULL;
4558 }
4559 {
4560 { /* Inline abstract_compiler$StaticFrame$returnlabel (var_frame) on <var_frame:StaticFrame> */
4561 var280 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var_frame:StaticFrame> */
4562 var278 = var280;
4563 RET_LABEL279:(void)0;
4564 }
4565 }
4566 if (unlikely(var278 == NULL)) {
4567 if(catchStack.cursor >= 0){
4568 longjmp(catchStack.envs[catchStack.cursor], 1);
4569 }
4570 PRINT_ERROR("Runtime error: %s", "Cast failed");
4571 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2332);
4572 fatal_exit(1);
4573 }
4574 ((struct instance_core__NativeArray*)var269)->values[0]=var278;
4575 {
4576 var281 = ((val*(*)(val* self))(var269->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var269); /* native_to_s on <var269:NativeArray[String]>*/
4577 }
4578 varonce268 = var269;
4579 {
4580 nitc___nitc__AbstractCompilerVisitor___add(var_v, var281); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4581 }
4582 if (var_ret == NULL) {
4583 var282 = 0; /* is null */
4584 } else {
4585 var282 = 1; /* arg is null and recv is not */
4586 }
4587 if (0) {
4588 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
4589 var_other = ((val*)NULL);
4590 {
4591 var285 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
4592 }
4593 var286 = !var285;
4594 var283 = var286;
4595 goto RET_LABEL284;
4596 RET_LABEL284:(void)0;
4597 }
4598 var282 = var283;
4599 }
4600 if (var282){
4601 if (unlikely(varonce287==NULL)) {
4602 var288 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4603 if (likely(varonce289!=NULL)) {
4604 var290 = varonce289;
4605 } else {
4606 var291 = "return ";
4607 var293 = (val*)(7l<<2|1);
4608 var294 = (val*)(7l<<2|1);
4609 var295 = (val*)((long)(0)<<2|3);
4610 var296 = (val*)((long)(0)<<2|3);
4611 var292 = core__flat___CString___to_s_unsafe(var291, var293, var294, var295, var296);
4612 var290 = var292;
4613 varonce289 = var290;
4614 }
4615 ((struct instance_core__NativeArray*)var288)->values[0]=var290;
4616 if (likely(varonce297!=NULL)) {
4617 var298 = varonce297;
4618 } else {
4619 var299 = ";";
4620 var301 = (val*)(1l<<2|1);
4621 var302 = (val*)(1l<<2|1);
4622 var303 = (val*)((long)(0)<<2|3);
4623 var304 = (val*)((long)(0)<<2|3);
4624 var300 = core__flat___CString___to_s_unsafe(var299, var301, var302, var303, var304);
4625 var298 = var300;
4626 varonce297 = var298;
4627 }
4628 ((struct instance_core__NativeArray*)var288)->values[2]=var298;
4629 } else {
4630 var288 = varonce287;
4631 varonce287 = NULL;
4632 }
4633 {
4634 { /* Inline abstract_compiler$StaticFrame$returnvar (var_frame) on <var_frame:StaticFrame> */
4635 var307 = var_frame->attrs[COLOR_nitc__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var_frame:StaticFrame> */
4636 var305 = var307;
4637 RET_LABEL306:(void)0;
4638 }
4639 }
4640 if (unlikely(var305 == NULL)) {
4641 if(catchStack.cursor >= 0){
4642 longjmp(catchStack.envs[catchStack.cursor], 1);
4643 }
4644 PRINT_ERROR("Runtime error: %s", "Cast failed");
4645 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2334);
4646 fatal_exit(1);
4647 }
4648 {
4649 var308 = ((val*(*)(val* self))(var305->class->vft[COLOR_core__abstract_text__Object__to_s]))(var305); /* to_s on <var305:nullable RuntimeVariable(RuntimeVariable)>*/
4650 }
4651 ((struct instance_core__NativeArray*)var288)->values[1]=var308;
4652 {
4653 var309 = ((val*(*)(val* self))(var288->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var288); /* native_to_s on <var288:NativeArray[String]>*/
4654 }
4655 varonce287 = var288;
4656 {
4657 nitc___nitc__AbstractCompilerVisitor___add(var_v, var309); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4658 }
4659 } else {
4660 }
4661 if (likely(varonce310!=NULL)) {
4662 var311 = varonce310;
4663 } else {
4664 var312 = "}";
4665 var314 = (val*)(1l<<2|1);
4666 var315 = (val*)(1l<<2|1);
4667 var316 = (val*)((long)(0)<<2|3);
4668 var317 = (val*)((long)(0)<<2|3);
4669 var313 = core__flat___CString___to_s_unsafe(var312, var314, var315, var316, var317);
4670 var311 = var313;
4671 varonce310 = var311;
4672 }
4673 {
4674 nitc___nitc__AbstractCompilerVisitor___add(var_v, var311); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4675 }
4676 {
4677 { /* Inline abstract_compiler$AbstractCompiler$names (var_compiler) on <var_compiler:AbstractCompiler> */
4678 var320 = var_compiler->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___names].val; /* _names on <var_compiler:AbstractCompiler> */
4679 if (unlikely(var320 == NULL)) {
4680 if(catchStack.cursor >= 0){
4681 longjmp(catchStack.envs[catchStack.cursor], 1);
4682 }
4683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
4684 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 542);
4685 fatal_exit(1);
4686 }
4687 var318 = var320;
4688 RET_LABEL319:(void)0;
4689 }
4690 }
4691 {
4692 var321 = nitc___nitc__AbstractRuntimeFunction___c_name(self);
4693 }
4694 if (unlikely(varonce322==NULL)) {
4695 var323 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
4696 if (likely(varonce324!=NULL)) {
4697 var325 = varonce324;
4698 } else {
4699 var326 = " (";
4700 var328 = (val*)(2l<<2|1);
4701 var329 = (val*)(2l<<2|1);
4702 var330 = (val*)((long)(0)<<2|3);
4703 var331 = (val*)((long)(0)<<2|3);
4704 var327 = core__flat___CString___to_s_unsafe(var326, var328, var329, var330, var331);
4705 var325 = var327;
4706 varonce324 = var325;
4707 }
4708 ((struct instance_core__NativeArray*)var323)->values[1]=var325;
4709 if (likely(varonce332!=NULL)) {
4710 var333 = varonce332;
4711 } else {
4712 var334 = ":";
4713 var336 = (val*)(1l<<2|1);
4714 var337 = (val*)(1l<<2|1);
4715 var338 = (val*)((long)(0)<<2|3);
4716 var339 = (val*)((long)(0)<<2|3);
4717 var335 = core__flat___CString___to_s_unsafe(var334, var336, var337, var338, var339);
4718 var333 = var335;
4719 varonce332 = var333;
4720 }
4721 ((struct instance_core__NativeArray*)var323)->values[3]=var333;
4722 if (likely(varonce340!=NULL)) {
4723 var341 = varonce340;
4724 } else {
4725 var342 = ")";
4726 var344 = (val*)(1l<<2|1);
4727 var345 = (val*)(1l<<2|1);
4728 var346 = (val*)((long)(0)<<2|3);
4729 var347 = (val*)((long)(0)<<2|3);
4730 var343 = core__flat___CString___to_s_unsafe(var342, var344, var345, var346, var347);
4731 var341 = var343;
4732 varonce340 = var341;
4733 }
4734 ((struct instance_core__NativeArray*)var323)->values[5]=var341;
4735 } else {
4736 var323 = varonce322;
4737 varonce322 = NULL;
4738 }
4739 {
4740 var348 = nitc___nitc__MPropDef___nitc__model_base__MEntity__full_name(var_mmethoddef);
4741 }
4742 ((struct instance_core__NativeArray*)var323)->values[0]=var348;
4743 {
4744 { /* Inline model$MPropDef$location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
4745 var351 = var_mmethoddef->attrs[COLOR_nitc__model__MPropDef___location].val; /* _location on <var_mmethoddef:MMethodDef> */
4746 if (unlikely(var351 == NULL)) {
4747 if(catchStack.cursor >= 0){
4748 longjmp(catchStack.envs[catchStack.cursor], 1);
4749 }
4750 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
4751 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2360);
4752 fatal_exit(1);
4753 }
4754 var349 = var351;
4755 RET_LABEL350:(void)0;
4756 }
4757 }
4758 {
4759 { /* Inline location$Location$file (var349) on <var349:Location> */
4760 var354 = var349->attrs[COLOR_nitc__location__Location___file].val; /* _file on <var349:Location> */
4761 var352 = var354;
4762 RET_LABEL353:(void)0;
4763 }
4764 }
4765 if (var352 == NULL) {
4766 if(catchStack.cursor >= 0){
4767 longjmp(catchStack.envs[catchStack.cursor], 1);
4768 }
4769 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4770 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2337);
4771 fatal_exit(1);
4772 } else {
4773 { /* Inline location$SourceFile$filename (var352) on <var352:nullable SourceFile> */
4774 if (unlikely(var352 == NULL)) {
4775 if(catchStack.cursor >= 0){
4776 longjmp(catchStack.envs[catchStack.cursor], 1);
4777 }
4778 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4779 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__location, 22);
4780 fatal_exit(1);
4781 }
4782 var357 = var352->attrs[COLOR_nitc__location__SourceFile___filename].val; /* _filename on <var352:nullable SourceFile> */
4783 if (unlikely(var357 == NULL)) {
4784 if(catchStack.cursor >= 0){
4785 longjmp(catchStack.envs[catchStack.cursor], 1);
4786 }
4787 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
4788 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__location, 22);
4789 fatal_exit(1);
4790 }
4791 var355 = var357;
4792 RET_LABEL356:(void)0;
4793 }
4794 }
4795 ((struct instance_core__NativeArray*)var323)->values[2]=var355;
4796 {
4797 { /* Inline model$MPropDef$location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
4798 var360 = var_mmethoddef->attrs[COLOR_nitc__model__MPropDef___location].val; /* _location on <var_mmethoddef:MMethodDef> */
4799 if (unlikely(var360 == NULL)) {
4800 if(catchStack.cursor >= 0){
4801 longjmp(catchStack.envs[catchStack.cursor], 1);
4802 }
4803 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
4804 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2360);
4805 fatal_exit(1);
4806 }
4807 var358 = var360;
4808 RET_LABEL359:(void)0;
4809 }
4810 }
4811 {
4812 { /* Inline location$Location$line_start (var358) on <var358:Location> */
4813 var363 = var358->attrs[COLOR_nitc__location__Location___line_start].l; /* _line_start on <var358:Location> */
4814 var361 = var363;
4815 RET_LABEL362:(void)0;
4816 }
4817 }
4818 var364 = core__flat___Int___core__abstract_text__Object__to_s(var361);
4819 ((struct instance_core__NativeArray*)var323)->values[4]=var364;
4820 {
4821 var365 = ((val*(*)(val* self))(var323->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var323); /* native_to_s on <var323:NativeArray[String]>*/
4822 }
4823 varonce322 = var323;
4824 {
4825 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var318, var321, var365); /* Direct call hash_collection$HashMap$[]= on <var318:HashMap[String, String]>*/
4826 }
4827 RET_LABEL:;
4828 }
4829 /* method separate_compiler$SeparateRuntimeFunction$compile_trampolines for (self: SeparateRuntimeFunction, SeparateCompiler) */
4830 void nitc___nitc__SeparateRuntimeFunction___compile_trampolines(val* self, val* p0) {
4831 val* var_compiler /* var compiler: SeparateCompiler */;
4832 val* var /* : MMethodDef */;
4833 val* var2 /* : MMethodDef */;
4834 val* var3 /* : MClassDef */;
4835 val* var5 /* : MClassDef */;
4836 val* var6 /* : MClassType */;
4837 val* var8 /* : MClassType */;
4838 val* var_recv /* var recv: MClassType */;
4839 val* var9 /* : RuntimeVariable */;
4840 static val* varonce;
4841 val* var10 /* : String */;
4842 char* var11 /* : CString */;
4843 val* var12 /* : String */;
4844 val* var13 /* : nullable Int */;
4845 val* var14 /* : nullable Int */;
4846 val* var15 /* : nullable Bool */;
4847 val* var16 /* : nullable Bool */;
4848 val* var17 /* : MType */;
4849 val* var19 /* : MType */;
4850 val* var_selfvar /* var selfvar: RuntimeVariable */;
4851 val* var20 /* : MSignature */;
4852 val* var22 /* : MSignature */;
4853 val* var23 /* : nullable MType */;
4854 val* var25 /* : nullable MType */;
4855 val* var_ret /* var ret: nullable MType */;
4856 val* var26 /* : Array[String] */;
4857 val* var_ /* var : Array[String] */;
4858 static val* varonce27;
4859 val* var28 /* : String */;
4860 char* var29 /* : CString */;
4861 val* var30 /* : String */;
4862 val* var31 /* : nullable Int */;
4863 val* var32 /* : nullable Int */;
4864 val* var33 /* : nullable Bool */;
4865 val* var34 /* : nullable Bool */;
4866 val* var_arguments /* var arguments: Array[String] */;
4867 long var_i /* var i: Int */;
4868 val* var35 /* : MSignature */;
4869 val* var37 /* : MSignature */;
4870 long var38 /* : Int */;
4871 long var_39 /* var : Int */;
4872 short int var40 /* : Bool */;
4873 short int var42 /* : Bool */;
4874 int cltype;
4875 int idtype;
4876 const char* var_class_name;
4877 short int var43 /* : Bool */;
4878 val* var45 /* : NativeArray[String] */;
4879 static val* varonce44;
4880 static val* varonce46;
4881 val* var47 /* : String */;
4882 char* var48 /* : CString */;
4883 val* var49 /* : String */;
4884 val* var50 /* : nullable Int */;
4885 val* var51 /* : nullable Int */;
4886 val* var52 /* : nullable Bool */;
4887 val* var53 /* : nullable Bool */;
4888 val* var54 /* : String */;
4889 val* var55 /* : String */;
4890 long var56 /* : Int */;
4891 short int var57 /* : Bool */;
4892 val* var58 /* : MMethodDef */;
4893 val* var60 /* : MMethodDef */;
4894 short int var61 /* : Bool */;
4895 short int var_62 /* var : Bool */;
4896 short int var63 /* : Bool */;
4897 short int var64 /* : Bool */;
4898 val* var65 /* : MMethodDef */;
4899 val* var67 /* : MMethodDef */;
4900 val* var68 /* : MProperty */;
4901 val* var70 /* : MProperty */;
4902 val* var_m /* var m: MMethod */;
4903 static val* varonce71;
4904 val* var72 /* : String */;
4905 char* var73 /* : CString */;
4906 val* var74 /* : String */;
4907 val* var75 /* : nullable Int */;
4908 val* var76 /* : nullable Int */;
4909 val* var77 /* : nullable Bool */;
4910 val* var78 /* : nullable Bool */;
4911 val* var79 /* : String */;
4912 val* var80 /* : Text */;
4913 val* var_n2 /* var n2: String */;
4914 val* var82 /* : NativeArray[String] */;
4915 static val* varonce81;
4916 static val* varonce83;
4917 val* var84 /* : String */;
4918 char* var85 /* : CString */;
4919 val* var86 /* : String */;
4920 val* var87 /* : nullable Int */;
4921 val* var88 /* : nullable Int */;
4922 val* var89 /* : nullable Bool */;
4923 val* var90 /* : nullable Bool */;
4924 static val* varonce91;
4925 val* var92 /* : String */;
4926 char* var93 /* : CString */;
4927 val* var94 /* : String */;
4928 val* var95 /* : nullable Int */;
4929 val* var96 /* : nullable Int */;
4930 val* var97 /* : nullable Bool */;
4931 val* var98 /* : nullable Bool */;
4932 val* var99 /* : String */;
4933 val* var100 /* : String */;
4934 val* var101 /* : String */;
4935 val* var102 /* : AbstractCompilerVisitor */;
4936 val* var_v2 /* var v2: SeparateCompilerVisitor */;
4937 val* var104 /* : NativeArray[String] */;
4938 static val* varonce103;
4939 static val* varonce105;
4940 val* var106 /* : String */;
4941 char* var107 /* : CString */;
4942 val* var108 /* : String */;
4943 val* var109 /* : nullable Int */;
4944 val* var110 /* : nullable Int */;
4945 val* var111 /* : nullable Bool */;
4946 val* var112 /* : nullable Bool */;
4947 static val* varonce113;
4948 val* var114 /* : String */;
4949 char* var115 /* : CString */;
4950 val* var116 /* : String */;
4951 val* var117 /* : nullable Int */;
4952 val* var118 /* : nullable Int */;
4953 val* var119 /* : nullable Bool */;
4954 val* var120 /* : nullable Bool */;
4955 val* var121 /* : String */;
4956 val* var122 /* : String */;
4957 val* var123 /* : String */;
4958 val* var124 /* : String */;
4959 val* var126 /* : NativeArray[String] */;
4960 static val* varonce125;
4961 static val* varonce127;
4962 val* var128 /* : String */;
4963 char* var129 /* : CString */;
4964 val* var130 /* : String */;
4965 val* var131 /* : nullable Int */;
4966 val* var132 /* : nullable Int */;
4967 val* var133 /* : nullable Bool */;
4968 val* var134 /* : nullable Bool */;
4969 static val* varonce135;
4970 val* var136 /* : String */;
4971 char* var137 /* : CString */;
4972 val* var138 /* : String */;
4973 val* var139 /* : nullable Int */;
4974 val* var140 /* : nullable Int */;
4975 val* var141 /* : nullable Bool */;
4976 val* var142 /* : nullable Bool */;
4977 static val* varonce143;
4978 val* var144 /* : String */;
4979 char* var145 /* : CString */;
4980 val* var146 /* : String */;
4981 val* var147 /* : nullable Int */;
4982 val* var148 /* : nullable Int */;
4983 val* var149 /* : nullable Bool */;
4984 val* var150 /* : nullable Bool */;
4985 static val* varonce151;
4986 val* var152 /* : String */;
4987 char* var153 /* : CString */;
4988 val* var154 /* : String */;
4989 val* var155 /* : nullable Int */;
4990 val* var156 /* : nullable Int */;
4991 val* var157 /* : nullable Bool */;
4992 val* var158 /* : nullable Bool */;
4993 static val* varonce159;
4994 val* var160 /* : String */;
4995 char* var161 /* : CString */;
4996 val* var162 /* : String */;
4997 val* var163 /* : nullable Int */;
4998 val* var164 /* : nullable Int */;
4999 val* var165 /* : nullable Bool */;
5000 val* var166 /* : nullable Bool */;
5001 val* var167 /* : String */;
5002 val* var168 /* : String */;
5003 val* var169 /* : String */;
5004 static val* varonce170;
5005 val* var171 /* : String */;
5006 char* var172 /* : CString */;
5007 val* var173 /* : String */;
5008 val* var174 /* : nullable Int */;
5009 val* var175 /* : nullable Int */;
5010 val* var176 /* : nullable Bool */;
5011 val* var177 /* : nullable Bool */;
5012 val* var178 /* : String */;
5013 val* var179 /* : String */;
5014 val* var_call /* var call: String */;
5015 short int var180 /* : Bool */;
5016 short int var181 /* : Bool */;
5017 val* var_other /* var other: nullable Object */;
5018 short int var183 /* : Bool */;
5019 short int var184 /* : Bool */;
5020 val* var186 /* : NativeArray[String] */;
5021 static val* varonce185;
5022 static val* varonce187;
5023 val* var188 /* : String */;
5024 char* var189 /* : CString */;
5025 val* var190 /* : String */;
5026 val* var191 /* : nullable Int */;
5027 val* var192 /* : nullable Int */;
5028 val* var193 /* : nullable Bool */;
5029 val* var194 /* : nullable Bool */;
5030 val* var195 /* : String */;
5031 static val* varonce196;
5032 val* var197 /* : String */;
5033 char* var198 /* : CString */;
5034 val* var199 /* : String */;
5035 val* var200 /* : nullable Int */;
5036 val* var201 /* : nullable Int */;
5037 val* var202 /* : nullable Bool */;
5038 val* var203 /* : nullable Bool */;
5039 short int var204 /* : Bool */;
5040 val* var205 /* : MMethodDef */;
5041 val* var207 /* : MMethodDef */;
5042 short int var208 /* : Bool */;
5043 short int var210 /* : Bool */;
5044 short int var_211 /* var : Bool */;
5045 short int var212 /* : Bool */;
5046 short int var213 /* : Bool */;
5047 val* var214 /* : MMethodDef */;
5048 val* var216 /* : MMethodDef */;
5049 val* var_m217 /* var m: MMethodDef */;
5050 static val* varonce218;
5051 val* var219 /* : String */;
5052 char* var220 /* : CString */;
5053 val* var221 /* : String */;
5054 val* var222 /* : nullable Int */;
5055 val* var223 /* : nullable Int */;
5056 val* var224 /* : nullable Bool */;
5057 val* var225 /* : nullable Bool */;
5058 val* var226 /* : String */;
5059 val* var227 /* : Text */;
5060 val* var_n2228 /* var n2: String */;
5061 val* var230 /* : NativeArray[String] */;
5062 static val* varonce229;
5063 static val* varonce231;
5064 val* var232 /* : String */;
5065 char* var233 /* : CString */;
5066 val* var234 /* : String */;
5067 val* var235 /* : nullable Int */;
5068 val* var236 /* : nullable Int */;
5069 val* var237 /* : nullable Bool */;
5070 val* var238 /* : nullable Bool */;
5071 static val* varonce239;
5072 val* var240 /* : String */;
5073 char* var241 /* : CString */;
5074 val* var242 /* : String */;
5075 val* var243 /* : nullable Int */;
5076 val* var244 /* : nullable Int */;
5077 val* var245 /* : nullable Bool */;
5078 val* var246 /* : nullable Bool */;
5079 val* var247 /* : String */;
5080 val* var248 /* : String */;
5081 val* var249 /* : String */;
5082 val* var250 /* : AbstractCompilerVisitor */;
5083 val* var_v2251 /* var v2: SeparateCompilerVisitor */;
5084 val* var253 /* : NativeArray[String] */;
5085 static val* varonce252;
5086 static val* varonce254;
5087 val* var255 /* : String */;
5088 char* var256 /* : CString */;
5089 val* var257 /* : String */;
5090 val* var258 /* : nullable Int */;
5091 val* var259 /* : nullable Int */;
5092 val* var260 /* : nullable Bool */;
5093 val* var261 /* : nullable Bool */;
5094 static val* varonce262;
5095 val* var263 /* : String */;
5096 char* var264 /* : CString */;
5097 val* var265 /* : String */;
5098 val* var266 /* : nullable Int */;
5099 val* var267 /* : nullable Int */;
5100 val* var268 /* : nullable Bool */;
5101 val* var269 /* : nullable Bool */;
5102 val* var270 /* : String */;
5103 val* var271 /* : String */;
5104 val* var272 /* : String */;
5105 val* var273 /* : String */;
5106 val* var275 /* : NativeArray[String] */;
5107 static val* varonce274;
5108 static val* varonce276;
5109 val* var277 /* : String */;
5110 char* var278 /* : CString */;
5111 val* var279 /* : String */;
5112 val* var280 /* : nullable Int */;
5113 val* var281 /* : nullable Int */;
5114 val* var282 /* : nullable Bool */;
5115 val* var283 /* : nullable Bool */;
5116 static val* varonce284;
5117 val* var285 /* : String */;
5118 char* var286 /* : CString */;
5119 val* var287 /* : String */;
5120 val* var288 /* : nullable Int */;
5121 val* var289 /* : nullable Int */;
5122 val* var290 /* : nullable Bool */;
5123 val* var291 /* : nullable Bool */;
5124 static val* varonce292;
5125 val* var293 /* : String */;
5126 char* var294 /* : CString */;
5127 val* var295 /* : String */;
5128 val* var296 /* : nullable Int */;
5129 val* var297 /* : nullable Int */;
5130 val* var298 /* : nullable Bool */;
5131 val* var299 /* : nullable Bool */;
5132 static val* varonce300;
5133 val* var301 /* : String */;
5134 char* var302 /* : CString */;
5135 val* var303 /* : String */;
5136 val* var304 /* : nullable Int */;
5137 val* var305 /* : nullable Int */;
5138 val* var306 /* : nullable Bool */;
5139 val* var307 /* : nullable Bool */;
5140 static val* varonce308;
5141 val* var309 /* : String */;
5142 char* var310 /* : CString */;
5143 val* var311 /* : String */;
5144 val* var312 /* : nullable Int */;
5145 val* var313 /* : nullable Int */;
5146 val* var314 /* : nullable Bool */;
5147 val* var315 /* : nullable Bool */;
5148 val* var316 /* : String */;
5149 val* var317 /* : String */;
5150 val* var318 /* : String */;
5151 static val* varonce319;
5152 val* var320 /* : String */;
5153 char* var321 /* : CString */;
5154 val* var322 /* : String */;
5155 val* var323 /* : nullable Int */;
5156 val* var324 /* : nullable Int */;
5157 val* var325 /* : nullable Bool */;
5158 val* var326 /* : nullable Bool */;
5159 val* var327 /* : String */;
5160 val* var328 /* : String */;
5161 val* var_call329 /* var call: String */;
5162 short int var330 /* : Bool */;
5163 short int var331 /* : Bool */;
5164 short int var333 /* : Bool */;
5165 short int var334 /* : Bool */;
5166 val* var336 /* : NativeArray[String] */;
5167 static val* varonce335;
5168 static val* varonce337;
5169 val* var338 /* : String */;
5170 char* var339 /* : CString */;
5171 val* var340 /* : String */;
5172 val* var341 /* : nullable Int */;
5173 val* var342 /* : nullable Int */;
5174 val* var343 /* : nullable Bool */;
5175 val* var344 /* : nullable Bool */;
5176 val* var345 /* : String */;
5177 static val* varonce346;
5178 val* var347 /* : String */;
5179 char* var348 /* : CString */;
5180 val* var349 /* : String */;
5181 val* var350 /* : nullable Int */;
5182 val* var351 /* : nullable Int */;
5183 val* var352 /* : nullable Bool */;
5184 val* var353 /* : nullable Bool */;
5185 var_compiler = p0;
5186 {
5187 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
5188 var2 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
5189 if (unlikely(var2 == NULL)) {
5190 if(catchStack.cursor >= 0){
5191 longjmp(catchStack.envs[catchStack.cursor], 1);
5192 }
5193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
5194 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
5195 fatal_exit(1);
5196 }
5197 var = var2;
5198 RET_LABEL1:(void)0;
5199 }
5200 }
5201 {
5202 { /* Inline model$MPropDef$mclassdef (var) on <var:MMethodDef> */
5203 var5 = var->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var:MMethodDef> */
5204 if (unlikely(var5 == NULL)) {
5205 if(catchStack.cursor >= 0){
5206 longjmp(catchStack.envs[catchStack.cursor], 1);
5207 }
5208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
5209 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
5210 fatal_exit(1);
5211 }
5212 var3 = var5;
5213 RET_LABEL4:(void)0;
5214 }
5215 }
5216 {
5217 { /* Inline model$MClassDef$bound_mtype (var3) on <var3:MClassDef> */
5218 var8 = var3->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var3:MClassDef> */
5219 if (unlikely(var8 == NULL)) {
5220 if(catchStack.cursor >= 0){
5221 longjmp(catchStack.envs[catchStack.cursor], 1);
5222 }
5223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
5224 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
5225 fatal_exit(1);
5226 }
5227 var6 = var8;
5228 RET_LABEL7:(void)0;
5229 }
5230 }
5231 var_recv = var6;
5232 var9 = NEW_nitc__RuntimeVariable(&type_nitc__RuntimeVariable);
5233 if (likely(varonce!=NULL)) {
5234 var10 = varonce;
5235 } else {
5236 var11 = "self";
5237 var13 = (val*)(4l<<2|1);
5238 var14 = (val*)(4l<<2|1);
5239 var15 = (val*)((long)(0)<<2|3);
5240 var16 = (val*)((long)(0)<<2|3);
5241 var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
5242 var10 = var12;
5243 varonce = var10;
5244 }
5245 {
5246 { /* Inline separate_compiler$SeparateRuntimeFunction$called_recv (self) on <self:SeparateRuntimeFunction> */
5247 var19 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on <self:SeparateRuntimeFunction> */
5248 if (unlikely(var19 == NULL)) {
5249 if(catchStack.cursor >= 0){
5250 longjmp(catchStack.envs[catchStack.cursor], 1);
5251 }
5252 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv");
5253 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2233);
5254 fatal_exit(1);
5255 }
5256 var17 = var19;
5257 RET_LABEL18:(void)0;
5258 }
5259 }
5260 {
5261 ((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__name_61d]))(var9, var10); /* name= on <var9:RuntimeVariable>*/
5262 }
5263 {
5264 ((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mtype_61d]))(var9, var17); /* mtype= on <var9:RuntimeVariable>*/
5265 }
5266 {
5267 ((void(*)(val* self, val* p0))(var9->class->vft[COLOR_nitc__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var9, var_recv); /* mcasttype= on <var9:RuntimeVariable>*/
5268 }
5269 {
5270 ((void(*)(val* self))(var9->class->vft[COLOR_core__kernel__Object__init]))(var9); /* init on <var9:RuntimeVariable>*/
5271 }
5272 var_selfvar = var9;
5273 {
5274 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (self) on <self:SeparateRuntimeFunction> */
5275 var22 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
5276 if (unlikely(var22 == NULL)) {
5277 if(catchStack.cursor >= 0){
5278 longjmp(catchStack.envs[catchStack.cursor], 1);
5279 }
5280 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
5281 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
5282 fatal_exit(1);
5283 }
5284 var20 = var22;
5285 RET_LABEL21:(void)0;
5286 }
5287 }
5288 {
5289 { /* Inline model$MSignature$return_mtype (var20) on <var20:MSignature> */
5290 var25 = var20->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var20:MSignature> */
5291 var23 = var25;
5292 RET_LABEL24:(void)0;
5293 }
5294 }
5295 var_ret = var23;
5296 var26 = NEW_core__Array(&type_core__Array__core__String);
5297 {
5298 core___core__Array___with_capacity(var26, 1l); /* Direct call array$Array$with_capacity on <var26:Array[String]>*/
5299 }
5300 var_ = var26;
5301 if (likely(varonce27!=NULL)) {
5302 var28 = varonce27;
5303 } else {
5304 var29 = "self";
5305 var31 = (val*)(4l<<2|1);
5306 var32 = (val*)(4l<<2|1);
5307 var33 = (val*)((long)(0)<<2|3);
5308 var34 = (val*)((long)(0)<<2|3);
5309 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
5310 var28 = var30;
5311 varonce27 = var28;
5312 }
5313 {
5314 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var28); /* Direct call array$AbstractArray$push on <var_:Array[String]>*/
5315 }
5316 var_arguments = var_;
5317 var_i = 0l;
5318 {
5319 { /* Inline separate_compiler$SeparateRuntimeFunction$called_signature (self) on <self:SeparateRuntimeFunction> */
5320 var37 = self->attrs[COLOR_nitc__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
5321 if (unlikely(var37 == NULL)) {
5322 if(catchStack.cursor >= 0){
5323 longjmp(catchStack.envs[catchStack.cursor], 1);
5324 }
5325 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
5326 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2236);
5327 fatal_exit(1);
5328 }
5329 var35 = var37;
5330 RET_LABEL36:(void)0;
5331 }
5332 }
5333 {
5334 var38 = nitc___nitc__MSignature___arity(var35);
5335 }
5336 var_39 = var38;
5337 for(;;) {
5338 {
5339 { /* Inline kernel$Int$< (var_i,var_39) on <var_i:Int> */
5340 /* Covariant cast for argument 0 (i) <var_39:Int> isa OTHER */
5341 /* <var_39:Int> isa OTHER */
5342 var42 = 1; /* easy <var_39:Int> isa OTHER*/
5343 if (unlikely(!var42)) {
5344 var_class_name = type_core__Int.name;
5345 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
5346 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
5347 fatal_exit(1);
5348 }
5349 var43 = var_i < var_39;
5350 var40 = var43;
5351 goto RET_LABEL41;
5352 RET_LABEL41:(void)0;
5353 }
5354 }
5355 if (var40){
5356 } else {
5357 goto BREAK_label;
5358 }
5359 if (unlikely(varonce44==NULL)) {
5360 var45 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5361 if (likely(varonce46!=NULL)) {
5362 var47 = varonce46;
5363 } else {
5364 var48 = "p";
5365 var50 = (val*)(1l<<2|1);
5366 var51 = (val*)(1l<<2|1);
5367 var52 = (val*)((long)(0)<<2|3);
5368 var53 = (val*)((long)(0)<<2|3);
5369 var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53);
5370 var47 = var49;
5371 varonce46 = var47;
5372 }
5373 ((struct instance_core__NativeArray*)var45)->values[0]=var47;
5374 } else {
5375 var45 = varonce44;
5376 varonce44 = NULL;
5377 }
5378 var54 = core__flat___Int___core__abstract_text__Object__to_s(var_i);
5379 ((struct instance_core__NativeArray*)var45)->values[1]=var54;
5380 {
5381 var55 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var45); /* native_to_s on <var45:NativeArray[String]>*/
5382 }
5383 varonce44 = var45;
5384 {
5385 core___core__Array___core__abstract_collection__SimpleCollection__add(var_arguments, var55); /* Direct call array$Array$add on <var_arguments:Array[String]>*/
5386 }
5387 {
5388 var56 = core___core__Int___Discrete__successor(var_i, 1l);
5389 }
5390 var_i = var56;
5391 }
5392 BREAK_label: (void)0;
5393 {
5394 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
5395 var60 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
5396 if (unlikely(var60 == NULL)) {
5397 if(catchStack.cursor >= 0){
5398 longjmp(catchStack.envs[catchStack.cursor], 1);
5399 }
5400 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
5401 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
5402 fatal_exit(1);
5403 }
5404 var58 = var60;
5405 RET_LABEL59:(void)0;
5406 }
5407 }
5408 {
5409 var61 = nitc___nitc__MPropDef___is_intro(var58);
5410 }
5411 var_62 = var61;
5412 if (var61){
5413 {
5414 var63 = nitc__abstract_compiler___MClassType___MType__is_c_primitive(var_recv);
5415 }
5416 var64 = !var63;
5417 var57 = var64;
5418 } else {
5419 var57 = var_62;
5420 }
5421 if (var57){
5422 {
5423 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
5424 var67 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
5425 if (unlikely(var67 == NULL)) {
5426 if(catchStack.cursor >= 0){
5427 longjmp(catchStack.envs[catchStack.cursor], 1);
5428 }
5429 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
5430 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
5431 fatal_exit(1);
5432 }
5433 var65 = var67;
5434 RET_LABEL66:(void)0;
5435 }
5436 }
5437 {
5438 { /* Inline model$MPropDef$mproperty (var65) on <var65:MMethodDef> */
5439 var70 = var65->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var65:MMethodDef> */
5440 if (unlikely(var70 == NULL)) {
5441 if(catchStack.cursor >= 0){
5442 longjmp(catchStack.envs[catchStack.cursor], 1);
5443 }
5444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
5446 fatal_exit(1);
5447 }
5448 var68 = var70;
5449 RET_LABEL69:(void)0;
5450 }
5451 }
5452 var_m = var68;
5453 if (likely(varonce71!=NULL)) {
5454 var72 = varonce71;
5455 } else {
5456 var73 = "CALL_";
5457 var75 = (val*)(5l<<2|1);
5458 var76 = (val*)(5l<<2|1);
5459 var77 = (val*)((long)(0)<<2|3);
5460 var78 = (val*)((long)(0)<<2|3);
5461 var74 = core__flat___CString___to_s_unsafe(var73, var75, var76, var77, var78);
5462 var72 = var74;
5463 varonce71 = var72;
5464 }
5465 {
5466 var79 = nitc__separate_compiler___MEntity___const_color(var_m);
5467 }
5468 {
5469 var80 = ((val*(*)(val* self, val* p0))(var72->class->vft[COLOR_core__abstract_text__Text___43d]))(var72, var79); /* + on <var72:String>*/
5470 }
5471 var_n2 = var80;
5472 if (unlikely(varonce81==NULL)) {
5473 var82 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5474 if (likely(varonce83!=NULL)) {
5475 var84 = varonce83;
5476 } else {
5477 var85 = " ";
5478 var87 = (val*)(1l<<2|1);
5479 var88 = (val*)(1l<<2|1);
5480 var89 = (val*)((long)(0)<<2|3);
5481 var90 = (val*)((long)(0)<<2|3);
5482 var86 = core__flat___CString___to_s_unsafe(var85, var87, var88, var89, var90);
5483 var84 = var86;
5484 varonce83 = var84;
5485 }
5486 ((struct instance_core__NativeArray*)var82)->values[1]=var84;
5487 if (likely(varonce91!=NULL)) {
5488 var92 = varonce91;
5489 } else {
5490 var93 = ";";
5491 var95 = (val*)(1l<<2|1);
5492 var96 = (val*)(1l<<2|1);
5493 var97 = (val*)((long)(0)<<2|3);
5494 var98 = (val*)((long)(0)<<2|3);
5495 var94 = core__flat___CString___to_s_unsafe(var93, var95, var96, var97, var98);
5496 var92 = var94;
5497 varonce91 = var92;
5498 }
5499 ((struct instance_core__NativeArray*)var82)->values[4]=var92;
5500 } else {
5501 var82 = varonce81;
5502 varonce81 = NULL;
5503 }
5504 {
5505 var99 = nitc___nitc__SeparateRuntimeFunction___c_ret(self);
5506 }
5507 ((struct instance_core__NativeArray*)var82)->values[0]=var99;
5508 ((struct instance_core__NativeArray*)var82)->values[2]=var_n2;
5509 {
5510 var100 = nitc___nitc__SeparateRuntimeFunction___c_sig(self);
5511 }
5512 ((struct instance_core__NativeArray*)var82)->values[3]=var100;
5513 {
5514 var101 = ((val*(*)(val* self))(var82->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var82); /* native_to_s on <var82:NativeArray[String]>*/
5515 }
5516 varonce81 = var82;
5517 {
5518 nitc___nitc__AbstractCompiler___provide_declaration(var_compiler, var_n2, var101); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <var_compiler:SeparateCompiler>*/
5519 }
5520 {
5521 var102 = ((val*(*)(val* self))(var_compiler->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(var_compiler); /* new_visitor on <var_compiler:SeparateCompiler>*/
5522 }
5523 var_v2 = var102;
5524 if (unlikely(varonce103==NULL)) {
5525 var104 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5526 if (likely(varonce105!=NULL)) {
5527 var106 = varonce105;
5528 } else {
5529 var107 = " ";
5530 var109 = (val*)(1l<<2|1);
5531 var110 = (val*)(1l<<2|1);
5532 var111 = (val*)((long)(0)<<2|3);
5533 var112 = (val*)((long)(0)<<2|3);
5534 var108 = core__flat___CString___to_s_unsafe(var107, var109, var110, var111, var112);
5535 var106 = var108;
5536 varonce105 = var106;
5537 }
5538 ((struct instance_core__NativeArray*)var104)->values[1]=var106;
5539 if (likely(varonce113!=NULL)) {
5540 var114 = varonce113;
5541 } else {
5542 var115 = " {";
5543 var117 = (val*)(2l<<2|1);
5544 var118 = (val*)(2l<<2|1);
5545 var119 = (val*)((long)(0)<<2|3);
5546 var120 = (val*)((long)(0)<<2|3);
5547 var116 = core__flat___CString___to_s_unsafe(var115, var117, var118, var119, var120);
5548 var114 = var116;
5549 varonce113 = var114;
5550 }
5551 ((struct instance_core__NativeArray*)var104)->values[4]=var114;
5552 } else {
5553 var104 = varonce103;
5554 varonce103 = NULL;
5555 }
5556 {
5557 var121 = nitc___nitc__SeparateRuntimeFunction___c_ret(self);
5558 }
5559 ((struct instance_core__NativeArray*)var104)->values[0]=var121;
5560 ((struct instance_core__NativeArray*)var104)->values[2]=var_n2;
5561 {
5562 var122 = nitc___nitc__SeparateRuntimeFunction___c_sig(self);
5563 }
5564 ((struct instance_core__NativeArray*)var104)->values[3]=var122;
5565 {
5566 var123 = ((val*(*)(val* self))(var104->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var104); /* native_to_s on <var104:NativeArray[String]>*/
5567 }
5568 varonce103 = var104;
5569 {
5570 nitc___nitc__AbstractCompilerVisitor___add(var_v2, var123); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2:SeparateCompilerVisitor>*/
5571 }
5572 {
5573 var124 = nitc__separate_compiler___MEntity___const_color(var_m);
5574 }
5575 {
5576 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v2, var124); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v2:SeparateCompilerVisitor>*/
5577 }
5578 if (unlikely(varonce125==NULL)) {
5579 var126 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
5580 if (likely(varonce127!=NULL)) {
5581 var128 = varonce127;
5582 } else {
5583 var129 = "((";
5584 var131 = (val*)(2l<<2|1);
5585 var132 = (val*)(2l<<2|1);
5586 var133 = (val*)((long)(0)<<2|3);
5587 var134 = (val*)((long)(0)<<2|3);
5588 var130 = core__flat___CString___to_s_unsafe(var129, var131, var132, var133, var134);
5589 var128 = var130;
5590 varonce127 = var128;
5591 }
5592 ((struct instance_core__NativeArray*)var126)->values[0]=var128;
5593 if (likely(varonce135!=NULL)) {
5594 var136 = varonce135;
5595 } else {
5596 var137 = ")(";
5597 var139 = (val*)(2l<<2|1);
5598 var140 = (val*)(2l<<2|1);
5599 var141 = (val*)((long)(0)<<2|3);
5600 var142 = (val*)((long)(0)<<2|3);
5601 var138 = core__flat___CString___to_s_unsafe(var137, var139, var140, var141, var142);
5602 var136 = var138;
5603 varonce135 = var136;
5604 }
5605 ((struct instance_core__NativeArray*)var126)->values[2]=var136;
5606 if (likely(varonce143!=NULL)) {
5607 var144 = varonce143;
5608 } else {
5609 var145 = "->vft[";
5610 var147 = (val*)(6l<<2|1);
5611 var148 = (val*)(6l<<2|1);
5612 var149 = (val*)((long)(0)<<2|3);
5613 var150 = (val*)((long)(0)<<2|3);
5614 var146 = core__flat___CString___to_s_unsafe(var145, var147, var148, var149, var150);
5615 var144 = var146;
5616 varonce143 = var144;
5617 }
5618 ((struct instance_core__NativeArray*)var126)->values[4]=var144;
5619 if (likely(varonce151!=NULL)) {
5620 var152 = varonce151;
5621 } else {
5622 var153 = "]))(";
5623 var155 = (val*)(4l<<2|1);
5624 var156 = (val*)(4l<<2|1);
5625 var157 = (val*)((long)(0)<<2|3);
5626 var158 = (val*)((long)(0)<<2|3);
5627 var154 = core__flat___CString___to_s_unsafe(var153, var155, var156, var157, var158);
5628 var152 = var154;
5629 varonce151 = var152;
5630 }
5631 ((struct instance_core__NativeArray*)var126)->values[6]=var152;
5632 if (likely(varonce159!=NULL)) {
5633 var160 = varonce159;
5634 } else {
5635 var161 = ");";
5636 var163 = (val*)(2l<<2|1);
5637 var164 = (val*)(2l<<2|1);
5638 var165 = (val*)((long)(0)<<2|3);
5639 var166 = (val*)((long)(0)<<2|3);
5640 var162 = core__flat___CString___to_s_unsafe(var161, var163, var164, var165, var166);
5641 var160 = var162;
5642 varonce159 = var160;
5643 }
5644 ((struct instance_core__NativeArray*)var126)->values[8]=var160;
5645 } else {
5646 var126 = varonce125;
5647 varonce125 = NULL;
5648 }
5649 {
5650 var167 = nitc___nitc__SeparateRuntimeFunction___c_funptrtype(self);
5651 }
5652 ((struct instance_core__NativeArray*)var126)->values[1]=var167;
5653 {
5654 var168 = nitc___nitc__SeparateCompilerVisitor___class_info(var_v2, var_selfvar);
5655 }
5656 ((struct instance_core__NativeArray*)var126)->values[3]=var168;
5657 {
5658 var169 = nitc__separate_compiler___MEntity___const_color(var_m);
5659 }
5660 ((struct instance_core__NativeArray*)var126)->values[5]=var169;
5661 if (likely(varonce170!=NULL)) {
5662 var171 = varonce170;
5663 } else {
5664 var172 = ", ";
5665 var174 = (val*)(2l<<2|1);
5666 var175 = (val*)(2l<<2|1);
5667 var176 = (val*)((long)(0)<<2|3);
5668 var177 = (val*)((long)(0)<<2|3);
5669 var173 = core__flat___CString___to_s_unsafe(var172, var174, var175, var176, var177);
5670 var171 = var173;
5671 varonce170 = var171;
5672 }
5673 {
5674 var178 = core__abstract_text___Collection___join(var_arguments, var171, ((val*)NULL));
5675 }
5676 ((struct instance_core__NativeArray*)var126)->values[7]=var178;
5677 {
5678 var179 = ((val*(*)(val* self))(var126->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var126); /* native_to_s on <var126:NativeArray[String]>*/
5679 }
5680 varonce125 = var126;
5681 var_call = var179;
5682 if (var_ret == NULL) {
5683 var180 = 0; /* is null */
5684 } else {
5685 var180 = 1; /* arg is null and recv is not */
5686 }
5687 if (0) {
5688 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
5689 var_other = ((val*)NULL);
5690 {
5691 var183 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
5692 }
5693 var184 = !var183;
5694 var181 = var184;
5695 goto RET_LABEL182;
5696 RET_LABEL182:(void)0;
5697 }
5698 var180 = var181;
5699 }
5700 if (var180){
5701 if (unlikely(varonce185==NULL)) {
5702 var186 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
5703 if (likely(varonce187!=NULL)) {
5704 var188 = varonce187;
5705 } else {
5706 var189 = "return ";
5707 var191 = (val*)(7l<<2|1);
5708 var192 = (val*)(7l<<2|1);
5709 var193 = (val*)((long)(0)<<2|3);
5710 var194 = (val*)((long)(0)<<2|3);
5711 var190 = core__flat___CString___to_s_unsafe(var189, var191, var192, var193, var194);
5712 var188 = var190;
5713 varonce187 = var188;
5714 }
5715 ((struct instance_core__NativeArray*)var186)->values[0]=var188;
5716 } else {
5717 var186 = varonce185;
5718 varonce185 = NULL;
5719 }
5720 ((struct instance_core__NativeArray*)var186)->values[1]=var_call;
5721 {
5722 var195 = ((val*(*)(val* self))(var186->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var186); /* native_to_s on <var186:NativeArray[String]>*/
5723 }
5724 varonce185 = var186;
5725 {
5726 nitc___nitc__AbstractCompilerVisitor___add(var_v2, var195); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2:SeparateCompilerVisitor>*/
5727 }
5728 } else {
5729 {
5730 nitc___nitc__AbstractCompilerVisitor___add(var_v2, var_call); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2:SeparateCompilerVisitor>*/
5731 }
5732 }
5733 if (likely(varonce196!=NULL)) {
5734 var197 = varonce196;
5735 } else {
5736 var198 = "}";
5737 var200 = (val*)(1l<<2|1);
5738 var201 = (val*)(1l<<2|1);
5739 var202 = (val*)((long)(0)<<2|3);
5740 var203 = (val*)((long)(0)<<2|3);
5741 var199 = core__flat___CString___to_s_unsafe(var198, var200, var201, var202, var203);
5742 var197 = var199;
5743 varonce196 = var197;
5744 }
5745 {
5746 nitc___nitc__AbstractCompilerVisitor___add(var_v2, var197); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2:SeparateCompilerVisitor>*/
5747 }
5748 } else {
5749 }
5750 {
5751 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
5752 var207 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
5753 if (unlikely(var207 == NULL)) {
5754 if(catchStack.cursor >= 0){
5755 longjmp(catchStack.envs[catchStack.cursor], 1);
5756 }
5757 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
5758 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
5759 fatal_exit(1);
5760 }
5761 var205 = var207;
5762 RET_LABEL206:(void)0;
5763 }
5764 }
5765 {
5766 { /* Inline modelize_property$MPropDef$has_supercall (var205) on <var205:MMethodDef> */
5767 var210 = var205->attrs[COLOR_nitc__modelize_property__MPropDef___has_supercall].s; /* _has_supercall on <var205:MMethodDef> */
5768 var208 = var210;
5769 RET_LABEL209:(void)0;
5770 }
5771 }
5772 var_211 = var208;
5773 if (var208){
5774 {
5775 var212 = nitc__abstract_compiler___MClassType___MType__is_c_primitive(var_recv);
5776 }
5777 var213 = !var212;
5778 var204 = var213;
5779 } else {
5780 var204 = var_211;
5781 }
5782 if (var204){
5783 {
5784 { /* Inline abstract_compiler$AbstractRuntimeFunction$mmethoddef (self) on <self:SeparateRuntimeFunction> */
5785 var216 = self->attrs[COLOR_nitc__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
5786 if (unlikely(var216 == NULL)) {
5787 if(catchStack.cursor >= 0){
5788 longjmp(catchStack.envs[catchStack.cursor], 1);
5789 }
5790 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
5791 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1947);
5792 fatal_exit(1);
5793 }
5794 var214 = var216;
5795 RET_LABEL215:(void)0;
5796 }
5797 }
5798 var_m217 = var214;
5799 if (likely(varonce218!=NULL)) {
5800 var219 = varonce218;
5801 } else {
5802 var220 = "CALL_";
5803 var222 = (val*)(5l<<2|1);
5804 var223 = (val*)(5l<<2|1);
5805 var224 = (val*)((long)(0)<<2|3);
5806 var225 = (val*)((long)(0)<<2|3);
5807 var221 = core__flat___CString___to_s_unsafe(var220, var222, var223, var224, var225);
5808 var219 = var221;
5809 varonce218 = var219;
5810 }
5811 {
5812 var226 = nitc__separate_compiler___MEntity___const_color(var_m217);
5813 }
5814 {
5815 var227 = ((val*(*)(val* self, val* p0))(var219->class->vft[COLOR_core__abstract_text__Text___43d]))(var219, var226); /* + on <var219:String>*/
5816 }
5817 var_n2228 = var227;
5818 if (unlikely(varonce229==NULL)) {
5819 var230 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5820 if (likely(varonce231!=NULL)) {
5821 var232 = varonce231;
5822 } else {
5823 var233 = " ";
5824 var235 = (val*)(1l<<2|1);
5825 var236 = (val*)(1l<<2|1);
5826 var237 = (val*)((long)(0)<<2|3);
5827 var238 = (val*)((long)(0)<<2|3);
5828 var234 = core__flat___CString___to_s_unsafe(var233, var235, var236, var237, var238);
5829 var232 = var234;
5830 varonce231 = var232;
5831 }
5832 ((struct instance_core__NativeArray*)var230)->values[1]=var232;
5833 if (likely(varonce239!=NULL)) {
5834 var240 = varonce239;
5835 } else {
5836 var241 = ";";
5837 var243 = (val*)(1l<<2|1);
5838 var244 = (val*)(1l<<2|1);
5839 var245 = (val*)((long)(0)<<2|3);
5840 var246 = (val*)((long)(0)<<2|3);
5841 var242 = core__flat___CString___to_s_unsafe(var241, var243, var244, var245, var246);
5842 var240 = var242;
5843 varonce239 = var240;
5844 }
5845 ((struct instance_core__NativeArray*)var230)->values[4]=var240;
5846 } else {
5847 var230 = varonce229;
5848 varonce229 = NULL;
5849 }
5850 {
5851 var247 = nitc___nitc__SeparateRuntimeFunction___c_ret(self);
5852 }
5853 ((struct instance_core__NativeArray*)var230)->values[0]=var247;
5854 ((struct instance_core__NativeArray*)var230)->values[2]=var_n2228;
5855 {
5856 var248 = nitc___nitc__SeparateRuntimeFunction___c_sig(self);
5857 }
5858 ((struct instance_core__NativeArray*)var230)->values[3]=var248;
5859 {
5860 var249 = ((val*(*)(val* self))(var230->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var230); /* native_to_s on <var230:NativeArray[String]>*/
5861 }
5862 varonce229 = var230;
5863 {
5864 nitc___nitc__AbstractCompiler___provide_declaration(var_compiler, var_n2228, var249); /* Direct call abstract_compiler$AbstractCompiler$provide_declaration on <var_compiler:SeparateCompiler>*/
5865 }
5866 {
5867 var250 = ((val*(*)(val* self))(var_compiler->class->vft[COLOR_nitc__abstract_compiler__AbstractCompiler__new_visitor]))(var_compiler); /* new_visitor on <var_compiler:SeparateCompiler>*/
5868 }
5869 var_v2251 = var250;
5870 if (unlikely(varonce252==NULL)) {
5871 var253 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5872 if (likely(varonce254!=NULL)) {
5873 var255 = varonce254;
5874 } else {
5875 var256 = " ";
5876 var258 = (val*)(1l<<2|1);
5877 var259 = (val*)(1l<<2|1);
5878 var260 = (val*)((long)(0)<<2|3);
5879 var261 = (val*)((long)(0)<<2|3);
5880 var257 = core__flat___CString___to_s_unsafe(var256, var258, var259, var260, var261);
5881 var255 = var257;
5882 varonce254 = var255;
5883 }
5884 ((struct instance_core__NativeArray*)var253)->values[1]=var255;
5885 if (likely(varonce262!=NULL)) {
5886 var263 = varonce262;
5887 } else {
5888 var264 = " {";
5889 var266 = (val*)(2l<<2|1);
5890 var267 = (val*)(2l<<2|1);
5891 var268 = (val*)((long)(0)<<2|3);
5892 var269 = (val*)((long)(0)<<2|3);
5893 var265 = core__flat___CString___to_s_unsafe(var264, var266, var267, var268, var269);
5894 var263 = var265;
5895 varonce262 = var263;
5896 }
5897 ((struct instance_core__NativeArray*)var253)->values[4]=var263;
5898 } else {
5899 var253 = varonce252;
5900 varonce252 = NULL;
5901 }
5902 {
5903 var270 = nitc___nitc__SeparateRuntimeFunction___c_ret(self);
5904 }
5905 ((struct instance_core__NativeArray*)var253)->values[0]=var270;
5906 ((struct instance_core__NativeArray*)var253)->values[2]=var_n2228;
5907 {
5908 var271 = nitc___nitc__SeparateRuntimeFunction___c_sig(self);
5909 }
5910 ((struct instance_core__NativeArray*)var253)->values[3]=var271;
5911 {
5912 var272 = ((val*(*)(val* self))(var253->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var253); /* native_to_s on <var253:NativeArray[String]>*/
5913 }
5914 varonce252 = var253;
5915 {
5916 nitc___nitc__AbstractCompilerVisitor___add(var_v2251, var272); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2251:SeparateCompilerVisitor>*/
5917 }
5918 {
5919 var273 = nitc__separate_compiler___MEntity___const_color(var_m217);
5920 }
5921 {
5922 nitc___nitc__AbstractCompilerVisitor___require_declaration(var_v2251, var273); /* Direct call abstract_compiler$AbstractCompilerVisitor$require_declaration on <var_v2251:SeparateCompilerVisitor>*/
5923 }
5924 if (unlikely(varonce274==NULL)) {
5925 var275 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
5926 if (likely(varonce276!=NULL)) {
5927 var277 = varonce276;
5928 } else {
5929 var278 = "((";
5930 var280 = (val*)(2l<<2|1);
5931 var281 = (val*)(2l<<2|1);
5932 var282 = (val*)((long)(0)<<2|3);
5933 var283 = (val*)((long)(0)<<2|3);
5934 var279 = core__flat___CString___to_s_unsafe(var278, var280, var281, var282, var283);
5935 var277 = var279;
5936 varonce276 = var277;
5937 }
5938 ((struct instance_core__NativeArray*)var275)->values[0]=var277;
5939 if (likely(varonce284!=NULL)) {
5940 var285 = varonce284;
5941 } else {
5942 var286 = ")(";
5943 var288 = (val*)(2l<<2|1);
5944 var289 = (val*)(2l<<2|1);
5945 var290 = (val*)((long)(0)<<2|3);
5946 var291 = (val*)((long)(0)<<2|3);
5947 var287 = core__flat___CString___to_s_unsafe(var286, var288, var289, var290, var291);
5948 var285 = var287;
5949 varonce284 = var285;
5950 }
5951 ((struct instance_core__NativeArray*)var275)->values[2]=var285;
5952 if (likely(varonce292!=NULL)) {
5953 var293 = varonce292;
5954 } else {
5955 var294 = "->vft[";
5956 var296 = (val*)(6l<<2|1);
5957 var297 = (val*)(6l<<2|1);
5958 var298 = (val*)((long)(0)<<2|3);
5959 var299 = (val*)((long)(0)<<2|3);
5960 var295 = core__flat___CString___to_s_unsafe(var294, var296, var297, var298, var299);
5961 var293 = var295;
5962 varonce292 = var293;
5963 }
5964 ((struct instance_core__NativeArray*)var275)->values[4]=var293;
5965 if (likely(varonce300!=NULL)) {
5966 var301 = varonce300;
5967 } else {
5968 var302 = "]))(";
5969 var304 = (val*)(4l<<2|1);
5970 var305 = (val*)(4l<<2|1);
5971 var306 = (val*)((long)(0)<<2|3);
5972 var307 = (val*)((long)(0)<<2|3);
5973 var303 = core__flat___CString___to_s_unsafe(var302, var304, var305, var306, var307);
5974 var301 = var303;
5975 varonce300 = var301;
5976 }
5977 ((struct instance_core__NativeArray*)var275)->values[6]=var301;
5978 if (likely(varonce308!=NULL)) {
5979 var309 = varonce308;
5980 } else {
5981 var310 = ");";
5982 var312 = (val*)(2l<<2|1);
5983 var313 = (val*)(2l<<2|1);
5984 var314 = (val*)((long)(0)<<2|3);
5985 var315 = (val*)((long)(0)<<2|3);
5986 var311 = core__flat___CString___to_s_unsafe(var310, var312, var313, var314, var315);
5987 var309 = var311;
5988 varonce308 = var309;
5989 }
5990 ((struct instance_core__NativeArray*)var275)->values[8]=var309;
5991 } else {
5992 var275 = varonce274;
5993 varonce274 = NULL;
5994 }
5995 {
5996 var316 = nitc___nitc__SeparateRuntimeFunction___c_funptrtype(self);
5997 }
5998 ((struct instance_core__NativeArray*)var275)->values[1]=var316;
5999 {
6000 var317 = nitc___nitc__SeparateCompilerVisitor___class_info(var_v2251, var_selfvar);
6001 }
6002 ((struct instance_core__NativeArray*)var275)->values[3]=var317;
6003 {
6004 var318 = nitc__separate_compiler___MEntity___const_color(var_m217);
6005 }
6006 ((struct instance_core__NativeArray*)var275)->values[5]=var318;
6007 if (likely(varonce319!=NULL)) {
6008 var320 = varonce319;
6009 } else {
6010 var321 = ", ";
6011 var323 = (val*)(2l<<2|1);
6012 var324 = (val*)(2l<<2|1);
6013 var325 = (val*)((long)(0)<<2|3);
6014 var326 = (val*)((long)(0)<<2|3);
6015 var322 = core__flat___CString___to_s_unsafe(var321, var323, var324, var325, var326);
6016 var320 = var322;
6017 varonce319 = var320;
6018 }
6019 {
6020 var327 = core__abstract_text___Collection___join(var_arguments, var320, ((val*)NULL));
6021 }
6022 ((struct instance_core__NativeArray*)var275)->values[7]=var327;
6023 {
6024 var328 = ((val*(*)(val* self))(var275->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var275); /* native_to_s on <var275:NativeArray[String]>*/
6025 }
6026 varonce274 = var275;
6027 var_call329 = var328;
6028 if (var_ret == NULL) {
6029 var330 = 0; /* is null */
6030 } else {
6031 var330 = 1; /* arg is null and recv is not */
6032 }
6033 if (0) {
6034 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
6035 var_other = ((val*)NULL);
6036 {
6037 var333 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other); /* == on <var_ret:nullable MType(MType)>*/
6038 }
6039 var334 = !var333;
6040 var331 = var334;
6041 goto RET_LABEL332;
6042 RET_LABEL332:(void)0;
6043 }
6044 var330 = var331;
6045 }
6046 if (var330){
6047 if (unlikely(varonce335==NULL)) {
6048 var336 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6049 if (likely(varonce337!=NULL)) {
6050 var338 = varonce337;
6051 } else {
6052 var339 = "return ";
6053 var341 = (val*)(7l<<2|1);
6054 var342 = (val*)(7l<<2|1);
6055 var343 = (val*)((long)(0)<<2|3);
6056 var344 = (val*)((long)(0)<<2|3);
6057 var340 = core__flat___CString___to_s_unsafe(var339, var341, var342, var343, var344);
6058 var338 = var340;
6059 varonce337 = var338;
6060 }
6061 ((struct instance_core__NativeArray*)var336)->values[0]=var338;
6062 } else {
6063 var336 = varonce335;
6064 varonce335 = NULL;
6065 }
6066 ((struct instance_core__NativeArray*)var336)->values[1]=var_call329;
6067 {
6068 var345 = ((val*(*)(val* self))(var336->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var336); /* native_to_s on <var336:NativeArray[String]>*/
6069 }
6070 varonce335 = var336;
6071 {
6072 nitc___nitc__AbstractCompilerVisitor___add(var_v2251, var345); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2251:SeparateCompilerVisitor>*/
6073 }
6074 } else {
6075 {
6076 nitc___nitc__AbstractCompilerVisitor___add(var_v2251, var_call329); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2251:SeparateCompilerVisitor>*/
6077 }
6078 }
6079 if (likely(varonce346!=NULL)) {
6080 var347 = varonce346;
6081 } else {
6082 var348 = "}";
6083 var350 = (val*)(1l<<2|1);
6084 var351 = (val*)(1l<<2|1);
6085 var352 = (val*)((long)(0)<<2|3);
6086 var353 = (val*)((long)(0)<<2|3);
6087 var349 = core__flat___CString___to_s_unsafe(var348, var350, var351, var352, var353);
6088 var347 = var349;
6089 varonce346 = var347;
6090 }
6091 {
6092 nitc___nitc__AbstractCompilerVisitor___add(var_v2251, var347); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v2251:SeparateCompilerVisitor>*/
6093 }
6094 } else {
6095 }
6096 RET_LABEL:;
6097 }
6098 /* method separate_compiler$SeparateRuntimeFunction$init for (self: SeparateRuntimeFunction) */
6099 void nitc___nitc__SeparateRuntimeFunction___core__kernel__Object__init(val* self) {
6100 {
6101 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__SeparateRuntimeFunction___core__kernel__Object__init]))(self); /* init on <self:SeparateRuntimeFunction>*/
6102 }
6103 RET_LABEL:;
6104 }
6105 /* method separate_compiler$MType$is_tagged for (self: MType): Bool */
6106 short int nitc__separate_compiler___MType___is_tagged(val* self) {
6107 short int var /* : Bool */;
6108 short int var1 /* : Bool */;
6109 var1 = self->attrs[COLOR_nitc__separate_compiler__MType___is_tagged].s; /* _is_tagged on <self:MType> */
6110 var = var1;
6111 RET_LABEL:;
6112 return var;
6113 }
6114 /* method separate_compiler$MType$is_tagged= for (self: MType, Bool) */
6115 void nitc__separate_compiler___MType___is_tagged_61d(val* self, short int p0) {
6116 self->attrs[COLOR_nitc__separate_compiler__MType___is_tagged].s = p0; /* _is_tagged on <self:MType> */
6117 RET_LABEL:;
6118 }
6119 /* method separate_compiler$MType$tag_value for (self: MType): Int */
6120 long nitc__separate_compiler___MType___tag_value(val* self) {
6121 long var /* : Int */;
6122 long var1 /* : Int */;
6123 var1 = self->attrs[COLOR_nitc__separate_compiler__MType___tag_value].l; /* _tag_value on <self:MType> */
6124 var = var1;
6125 RET_LABEL:;
6126 return var;
6127 }
6128 /* method separate_compiler$MType$tag_value= for (self: MType, Int) */
6129 void nitc__separate_compiler___MType___tag_value_61d(val* self, long p0) {
6130 self->attrs[COLOR_nitc__separate_compiler__MType___tag_value].l = p0; /* _tag_value on <self:MType> */
6131 RET_LABEL:;
6132 }
6133 /* method separate_compiler$MEntity$const_color for (self: MEntity): String */
6134 val* nitc__separate_compiler___MEntity___const_color(val* self) {
6135 val* var /* : String */;
6136 short int var1 /* : Bool */;
6137 val* var2 /* : String */;
6138 val* var3 /* : String */;
6139 val* var5 /* : NativeArray[String] */;
6140 static val* varonce;
6141 static val* varonce6;
6142 val* var7 /* : String */;
6143 char* var8 /* : CString */;
6144 val* var9 /* : String */;
6145 val* var10 /* : nullable Int */;
6146 val* var11 /* : nullable Int */;
6147 val* var12 /* : nullable Bool */;
6148 val* var13 /* : nullable Bool */;
6149 val* var14 /* : String */;
6150 val* var15 /* : String */;
6151 var1 = self->attrs[COLOR_nitc__separate_compiler__MEntity___const_color].val != NULL; /* _const_color on <self:MEntity> */
6152 if(likely(var1)) {
6153 var2 = self->attrs[COLOR_nitc__separate_compiler__MEntity___const_color].val; /* _const_color on <self:MEntity> */
6154 if (unlikely(var2 == NULL)) {
6155 if(catchStack.cursor >= 0){
6156 longjmp(catchStack.envs[catchStack.cursor], 1);
6157 }
6158 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _const_color");
6159 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2400);
6160 fatal_exit(1);
6161 }
6162 } else {
6163 {
6164 if (unlikely(varonce==NULL)) {
6165 var5 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
6166 if (likely(varonce6!=NULL)) {
6167 var7 = varonce6;
6168 } else {
6169 var8 = "COLOR_";
6170 var10 = (val*)(6l<<2|1);
6171 var11 = (val*)(6l<<2|1);
6172 var12 = (val*)((long)(0)<<2|3);
6173 var13 = (val*)((long)(0)<<2|3);
6174 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
6175 var7 = var9;
6176 varonce6 = var7;
6177 }
6178 ((struct instance_core__NativeArray*)var5)->values[0]=var7;
6179 } else {
6180 var5 = varonce;
6181 varonce = NULL;
6182 }
6183 {
6184 var14 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__model_base__MEntity__c_name]))(self); /* c_name on <self:MEntity>*/
6185 }
6186 ((struct instance_core__NativeArray*)var5)->values[1]=var14;
6187 {
6188 var15 = ((val*(*)(val* self))(var5->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var5); /* native_to_s on <var5:NativeArray[String]>*/
6189 }
6190 varonce = var5;
6191 var3 = var15;
6192 goto RET_LABEL4;
6193 RET_LABEL4:(void)0;
6194 }
6195 self->attrs[COLOR_nitc__separate_compiler__MEntity___const_color].val = var3; /* _const_color on <self:MEntity> */
6196 var2 = var3;
6197 }
6198 var = var2;
6199 RET_LABEL:;
6200 return var;
6201 }
6202 /* method separate_compiler$AMethPropdef$can_inline for (self: AMethPropdef): Bool */
6203 short int nitc__separate_compiler___AMethPropdef___nitc__abstract_compiler__APropdef__can_inline(val* self) {
6204 short int var /* : Bool */;
6205 val* var1 /* : nullable MPropDef */;
6206 val* var3 /* : nullable MPropDef */;
6207 val* var_m /* var m: nullable MMethodDef */;
6208 short int var4 /* : Bool */;
6209 short int var5 /* : Bool */;
6210 short int var6 /* : Bool */;
6211 short int var7 /* : Bool */;
6212 val* var_other /* var other: nullable Object */;
6213 short int var9 /* : Bool */;
6214 short int var10 /* : Bool */;
6215 short int var_ /* var : Bool */;
6216 val* var11 /* : MProperty */;
6217 val* var13 /* : MProperty */;
6218 short int var14 /* : Bool */;
6219 short int var16 /* : Bool */;
6220 short int var_17 /* var : Bool */;
6221 short int var18 /* : Bool */;
6222 short int var20 /* : Bool */;
6223 short int var21 /* : Bool */;
6224 {
6225 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
6226 var3 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
6227 var1 = var3;
6228 RET_LABEL2:(void)0;
6229 }
6230 }
6231 var_m = var1;
6232 if (var_m == NULL) {
6233 var6 = 0; /* is null */
6234 } else {
6235 var6 = 1; /* arg is null and recv is not */
6236 }
6237 if (0) {
6238 { /* Inline kernel$Object$!= (var_m,((val*)NULL)) on <var_m:nullable MMethodDef> */
6239 var_other = ((val*)NULL);
6240 {
6241 var9 = ((short int(*)(val* self, val* p0))(var_m->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_m, var_other); /* == on <var_m:nullable MMethodDef(MMethodDef)>*/
6242 }
6243 var10 = !var9;
6244 var7 = var10;
6245 goto RET_LABEL8;
6246 RET_LABEL8:(void)0;
6247 }
6248 var6 = var7;
6249 }
6250 var_ = var6;
6251 if (var6){
6252 {
6253 { /* Inline model$MPropDef$mproperty (var_m) on <var_m:nullable MMethodDef(MMethodDef)> */
6254 var13 = var_m->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_m:nullable MMethodDef(MMethodDef)> */
6255 if (unlikely(var13 == NULL)) {
6256 if(catchStack.cursor >= 0){
6257 longjmp(catchStack.envs[catchStack.cursor], 1);
6258 }
6259 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6260 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
6261 fatal_exit(1);
6262 }
6263 var11 = var13;
6264 RET_LABEL12:(void)0;
6265 }
6266 }
6267 {
6268 { /* Inline model$MMethod$is_init (var11) on <var11:MProperty(MMethod)> */
6269 var16 = var11->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var11:MProperty(MMethod)> */
6270 var14 = var16;
6271 RET_LABEL15:(void)0;
6272 }
6273 }
6274 var5 = var14;
6275 } else {
6276 var5 = var_;
6277 }
6278 var_17 = var5;
6279 if (var5){
6280 {
6281 { /* Inline model$MMethodDef$is_extern (var_m) on <var_m:nullable MMethodDef(MMethodDef)> */
6282 var20 = var_m->attrs[COLOR_nitc__model__MMethodDef___is_extern].s; /* _is_extern on <var_m:nullable MMethodDef(MMethodDef)> */
6283 var18 = var20;
6284 RET_LABEL19:(void)0;
6285 }
6286 }
6287 var4 = var18;
6288 } else {
6289 var4 = var_17;
6290 }
6291 if (var4){
6292 var = 0;
6293 goto RET_LABEL;
6294 } else {
6295 }
6296 {
6297 var21 = ((short int(*)(val* self))(self->class->vft[COLOR_nitc__separate_compiler___AMethPropdef___nitc__abstract_compiler__APropdef__can_inline]))(self); /* can_inline on <self:AMethPropdef>*/
6298 }
6299 var = var21;
6300 goto RET_LABEL;
6301 RET_LABEL:;
6302 return var;
6303 }
6304 /* method separate_compiler$AAttrPropdef$init_expr for (self: AAttrPropdef, AbstractCompilerVisitor, RuntimeVariable) */
6305 void nitc__separate_compiler___AAttrPropdef___init_expr(val* self, val* p0, val* p1) {
6306 val* var_v /* var v: AbstractCompilerVisitor */;
6307 val* var_recv /* var recv: RuntimeVariable */;
6308 short int var /* : Bool */;
6309 short int var1 /* : Bool */;
6310 short int var3 /* : Bool */;
6311 short int var_ /* var : Bool */;
6312 val* var4 /* : AbstractCompiler */;
6313 val* var6 /* : AbstractCompiler */;
6314 val* var7 /* : ModelBuilder */;
6315 val* var9 /* : ModelBuilder */;
6316 val* var10 /* : ToolContext */;
6317 val* var12 /* : ToolContext */;
6318 val* var13 /* : OptionBool */;
6319 val* var15 /* : OptionBool */;
6320 val* var16 /* : nullable Object */;
6321 val* var18 /* : nullable Object */;
6322 short int var19 /* : Bool */;
6323 val* var20 /* : nullable MAttributeDef */;
6324 val* var22 /* : nullable MAttributeDef */;
6325 val* var23 /* : MProperty */;
6326 val* var25 /* : MProperty */;
6327 val* var_guard /* var guard: MAttribute */;
6328 val* var26 /* : RuntimeVariable */;
6329 var_v = p0;
6330 var_recv = p1;
6331 {
6332 ((void(*)(val* self, val* p0, val* p1))(self->class->vft[COLOR_nitc__separate_compiler___AAttrPropdef___init_expr]))(self, p0, p1); /* init_expr on <self:AAttrPropdef>*/
6333 }
6334 {
6335 { /* Inline modelize_property$AAttrPropdef$is_lazy (self) on <self:AAttrPropdef> */
6336 var3 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___is_lazy].s; /* _is_lazy on <self:AAttrPropdef> */
6337 var1 = var3;
6338 RET_LABEL2:(void)0;
6339 }
6340 }
6341 var_ = var1;
6342 if (var1){
6343 {
6344 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
6345 var6 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
6346 if (unlikely(var6 == NULL)) {
6347 if(catchStack.cursor >= 0){
6348 longjmp(catchStack.envs[catchStack.cursor], 1);
6349 }
6350 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
6351 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
6352 fatal_exit(1);
6353 }
6354 var4 = var6;
6355 RET_LABEL5:(void)0;
6356 }
6357 }
6358 {
6359 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var4) on <var4:AbstractCompiler> */
6360 var9 = var4->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var4:AbstractCompiler> */
6361 if (unlikely(var9 == NULL)) {
6362 if(catchStack.cursor >= 0){
6363 longjmp(catchStack.envs[catchStack.cursor], 1);
6364 }
6365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6366 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
6367 fatal_exit(1);
6368 }
6369 var7 = var9;
6370 RET_LABEL8:(void)0;
6371 }
6372 }
6373 {
6374 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var7) on <var7:ModelBuilder> */
6375 var12 = var7->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var7:ModelBuilder> */
6376 if (unlikely(var12 == NULL)) {
6377 if(catchStack.cursor >= 0){
6378 longjmp(catchStack.envs[catchStack.cursor], 1);
6379 }
6380 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
6381 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
6382 fatal_exit(1);
6383 }
6384 var10 = var12;
6385 RET_LABEL11:(void)0;
6386 }
6387 }
6388 {
6389 { /* Inline separate_compiler$ToolContext$opt_no_union_attribute (var10) on <var10:ToolContext> */
6390 var15 = var10->attrs[COLOR_nitc__separate_compiler__ToolContext___opt_no_union_attribute].val; /* _opt_no_union_attribute on <var10:ToolContext> */
6391 if (unlikely(var15 == NULL)) {
6392 if(catchStack.cursor >= 0){
6393 longjmp(catchStack.envs[catchStack.cursor], 1);
6394 }
6395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_union_attribute");
6396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 28);
6397 fatal_exit(1);
6398 }
6399 var13 = var15;
6400 RET_LABEL14:(void)0;
6401 }
6402 }
6403 {
6404 { /* Inline opts$Option$value (var13) on <var13:OptionBool> */
6405 var18 = var13->attrs[COLOR_opts__Option___value].val; /* _value on <var13:OptionBool> */
6406 var16 = var18;
6407 RET_LABEL17:(void)0;
6408 }
6409 }
6410 var19 = (short int)((long)(var16)>>2);
6411 var = var19;
6412 } else {
6413 var = var_;
6414 }
6415 if (var){
6416 {
6417 { /* Inline modelize_property$AAttrPropdef$mlazypropdef (self) on <self:AAttrPropdef> */
6418 var22 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mlazypropdef].val; /* _mlazypropdef on <self:AAttrPropdef> */
6419 var20 = var22;
6420 RET_LABEL21:(void)0;
6421 }
6422 }
6423 if (var20 == NULL) {
6424 if(catchStack.cursor >= 0){
6425 longjmp(catchStack.envs[catchStack.cursor], 1);
6426 }
6427 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6428 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__separate_compiler, 2428);
6429 fatal_exit(1);
6430 } else {
6431 { /* Inline model$MPropDef$mproperty (var20) on <var20:nullable MAttributeDef> */
6432 if (unlikely(var20 == NULL)) {
6433 if(catchStack.cursor >= 0){
6434 longjmp(catchStack.envs[catchStack.cursor], 1);
6435 }
6436 PRINT_ERROR("Runtime error: %s", "Receiver is null");
6437 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
6438 fatal_exit(1);
6439 }
6440 var25 = var20->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var20:nullable MAttributeDef> */
6441 if (unlikely(var25 == NULL)) {
6442 if(catchStack.cursor >= 0){
6443 longjmp(catchStack.envs[catchStack.cursor], 1);
6444 }
6445 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
6446 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
6447 fatal_exit(1);
6448 }
6449 var23 = var25;
6450 RET_LABEL24:(void)0;
6451 }
6452 }
6453 var_guard = var23;
6454 {
6455 var26 = nitc___nitc__AbstractCompilerVisitor___bool_instance(var_v, 0);
6456 }
6457 {
6458 nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__write_attribute(var_v, var_guard, var_recv, var26); /* Direct call separate_compiler$SeparateCompilerVisitor$write_attribute on <var_v:AbstractCompilerVisitor>*/
6459 }
6460 } else {
6461 }
6462 RET_LABEL:;
6463 }