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