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