misc/vim: inform the user when no results are found
[nit.git] / c_src / nit__separate_compiler.sep.5.c
1 #include "nit__separate_compiler.sep.0.h"
2 /* method separate_compiler#SeparateRuntimeFunction#compile_to_c for (self: SeparateRuntimeFunction, AbstractCompiler) */
3 void nit___nit__SeparateRuntimeFunction___nit__abstract_compiler__AbstractRuntimeFunction__compile_to_c(val* self, val* p0) {
4 short int var /* : Bool */;
5 int cltype;
6 int idtype;
7 const struct type* type_struct;
8 const char* var_class_name;
9 val* var_compiler /* var compiler: AbstractCompiler */;
10 val* var1 /* : MMethodDef */;
11 val* var3 /* : MMethodDef */;
12 val* var_mmethoddef /* var mmethoddef: MMethodDef */;
13 val* var4 /* : MMethodDef */;
14 val* var6 /* : MMethodDef */;
15 val* var7 /* : MClassDef */;
16 val* var9 /* : MClassDef */;
17 val* var10 /* : MClassType */;
18 val* var12 /* : MClassType */;
19 val* var_recv /* var recv: MClassType */;
20 val* var13 /* : AbstractCompilerVisitor */;
21 val* var_v /* var v: AbstractCompilerVisitor */;
22 val* var14 /* : RuntimeVariable */;
23 static val* varonce;
24 val* var15 /* : String */;
25 char* var16 /* : NativeString */;
26 long var17 /* : Int */;
27 val* var18 /* : FlatString */;
28 val* var19 /* : MType */;
29 val* var21 /* : MType */;
30 val* var_selfvar /* var selfvar: RuntimeVariable */;
31 val* var22 /* : Array[RuntimeVariable] */;
32 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
33 val* var23 /* : StaticFrame */;
34 val* var_frame /* var frame: StaticFrame */;
35 val* var25 /* : MSignature */;
36 val* var27 /* : MSignature */;
37 val* var_msignature /* var msignature: MSignature */;
38 val* var28 /* : MSignature */;
39 val* var30 /* : MSignature */;
40 val* var31 /* : nullable MType */;
41 val* var33 /* : nullable MType */;
42 val* var_ret /* var ret: nullable MType */;
43 val* var34 /* : FlatBuffer */;
44 val* var_sig /* var sig: FlatBuffer */;
45 val* var36 /* : FlatBuffer */;
46 val* var_comment /* var comment: FlatBuffer */;
47 val* var38 /* : String */;
48 static val* varonce39;
49 val* var40 /* : String */;
50 char* var41 /* : NativeString */;
51 long var42 /* : Int */;
52 val* var43 /* : FlatString */;
53 val* var44 /* : String */;
54 val* var45 /* : String */;
55 static val* varonce46;
56 val* var47 /* : String */;
57 char* var48 /* : NativeString */;
58 long var49 /* : Int */;
59 val* var50 /* : FlatString */;
60 static val* varonce51;
61 val* var52 /* : String */;
62 char* var53 /* : NativeString */;
63 long var54 /* : Int */;
64 val* var55 /* : FlatString */;
65 val* var56 /* : MType */;
66 val* var58 /* : MType */;
67 val* var59 /* : Array[Object] */;
68 long var60 /* : Int */;
69 val* var61 /* : NativeArray[Object] */;
70 val* var62 /* : String */;
71 long var63 /* : Int */;
72 long var_i /* var i: Int */;
73 long var64 /* : Int */;
74 long var_ /* var : Int */;
75 short int var65 /* : Bool */;
76 short int var67 /* : Bool */;
77 int cltype68;
78 int idtype69;
79 const char* var_class_name70;
80 short int var71 /* : Bool */;
81 val* var72 /* : Array[MParameter] */;
82 val* var74 /* : Array[MParameter] */;
83 val* var75 /* : nullable Object */;
84 val* var76 /* : MType */;
85 val* var78 /* : MType */;
86 val* var_mtype /* var mtype: MType */;
87 long var79 /* : Int */;
88 long var81 /* : Int */;
89 short int var82 /* : Bool */;
90 short int var84 /* : Bool */;
91 static val* varonce85;
92 val* var86 /* : String */;
93 char* var87 /* : NativeString */;
94 long var88 /* : Int */;
95 val* var89 /* : FlatString */;
96 val* var90 /* : MClass */;
97 val* var91 /* : Array[MType] */;
98 long var92 /* : Int */;
99 val* var_93 /* var : Array[MType] */;
100 val* var94 /* : MClassType */;
101 static val* varonce95;
102 val* var96 /* : String */;
103 char* var97 /* : NativeString */;
104 long var98 /* : Int */;
105 val* var99 /* : FlatString */;
106 val* var100 /* : Array[Object] */;
107 long var101 /* : Int */;
108 val* var102 /* : NativeArray[Object] */;
109 val* var103 /* : String */;
110 val* var104 /* : RuntimeVariable */;
111 static val* varonce105;
112 val* var106 /* : String */;
113 char* var107 /* : NativeString */;
114 long var108 /* : Int */;
115 val* var109 /* : FlatString */;
116 val* var110 /* : Array[Object] */;
117 long var111 /* : Int */;
118 val* var112 /* : NativeArray[Object] */;
119 val* var113 /* : Object */;
120 val* var114 /* : String */;
121 val* var_argvar /* var argvar: RuntimeVariable */;
122 long var115 /* : Int */;
123 long var116 /* : Int */;
124 static val* varonce117;
125 val* var118 /* : String */;
126 char* var119 /* : NativeString */;
127 long var120 /* : Int */;
128 val* var121 /* : FlatString */;
129 val* var122 /* : null */;
130 short int var123 /* : Bool */;
131 short int var124 /* : Bool */;
132 val* var_other /* var other: nullable Object */;
133 short int var126 /* : Bool */;
134 short int var127 /* : Bool */;
135 static val* varonce128;
136 val* var129 /* : String */;
137 char* var130 /* : NativeString */;
138 long var131 /* : Int */;
139 val* var132 /* : FlatString */;
140 val* var133 /* : Array[Object] */;
141 long var134 /* : Int */;
142 val* var135 /* : NativeArray[Object] */;
143 val* var136 /* : String */;
144 val* var137 /* : String */;
145 static val* varonce138;
146 val* var139 /* : String */;
147 char* var140 /* : NativeString */;
148 long var141 /* : Int */;
149 val* var142 /* : FlatString */;
150 val* var143 /* : Array[Object] */;
151 long var144 /* : Int */;
152 val* var145 /* : NativeArray[Object] */;
153 val* var146 /* : String */;
154 static val* varonce147;
155 val* var148 /* : String */;
156 char* var149 /* : NativeString */;
157 long var150 /* : Int */;
158 val* var151 /* : FlatString */;
159 static val* varonce152;
160 val* var153 /* : String */;
161 char* var154 /* : NativeString */;
162 long var155 /* : Int */;
163 val* var156 /* : FlatString */;
164 static val* varonce157;
165 val* var158 /* : String */;
166 char* var159 /* : NativeString */;
167 long var160 /* : Int */;
168 val* var161 /* : FlatString */;
169 val* var162 /* : Array[Object] */;
170 long var163 /* : Int */;
171 val* var164 /* : NativeArray[Object] */;
172 val* var165 /* : String */;
173 static val* varonce166;
174 val* var167 /* : String */;
175 char* var168 /* : NativeString */;
176 long var169 /* : Int */;
177 val* var170 /* : FlatString */;
178 val* var171 /* : Array[Object] */;
179 long var172 /* : Int */;
180 val* var173 /* : NativeArray[Object] */;
181 val* var174 /* : String */;
182 val* var175 /* : null */;
183 short int var176 /* : Bool */;
184 short int var177 /* : Bool */;
185 short int var179 /* : Bool */;
186 short int var180 /* : Bool */;
187 val* var181 /* : RuntimeVariable */;
188 static val* varonce183;
189 val* var184 /* : String */;
190 char* var185 /* : NativeString */;
191 long var186 /* : Int */;
192 val* var187 /* : FlatString */;
193 val* var188 /* : String */;
194 short int var190 /* : Bool */;
195 short int var192 /* : Bool */;
196 val* var193 /* : nullable RuntimeVariable */;
197 val* var_subret /* var subret: nullable RuntimeVariable */;
198 val* var194 /* : null */;
199 short int var195 /* : Bool */;
200 short int var196 /* : Bool */;
201 short int var198 /* : Bool */;
202 short int var199 /* : Bool */;
203 val* var200 /* : null */;
204 short int var201 /* : Bool */;
205 short int var202 /* : Bool */;
206 short int var204 /* : Bool */;
207 short int var205 /* : Bool */;
208 val* var206 /* : nullable RuntimeVariable */;
209 val* var208 /* : nullable RuntimeVariable */;
210 val* var209 /* : nullable RuntimeVariable */;
211 val* var210 /* : nullable String */;
212 val* var212 /* : nullable String */;
213 static val* varonce213;
214 val* var214 /* : String */;
215 char* var215 /* : NativeString */;
216 long var216 /* : Int */;
217 val* var217 /* : FlatString */;
218 val* var218 /* : Array[Object] */;
219 long var219 /* : Int */;
220 val* var220 /* : NativeArray[Object] */;
221 val* var221 /* : String */;
222 val* var222 /* : null */;
223 short int var223 /* : Bool */;
224 short int var224 /* : Bool */;
225 short int var226 /* : Bool */;
226 short int var227 /* : Bool */;
227 static val* varonce228;
228 val* var229 /* : String */;
229 char* var230 /* : NativeString */;
230 long var231 /* : Int */;
231 val* var232 /* : FlatString */;
232 val* var233 /* : nullable RuntimeVariable */;
233 val* var235 /* : nullable RuntimeVariable */;
234 static val* varonce236;
235 val* var237 /* : String */;
236 char* var238 /* : NativeString */;
237 long var239 /* : Int */;
238 val* var240 /* : FlatString */;
239 val* var241 /* : Array[Object] */;
240 long var242 /* : Int */;
241 val* var243 /* : NativeArray[Object] */;
242 val* var244 /* : String */;
243 static val* varonce245;
244 val* var246 /* : String */;
245 char* var247 /* : NativeString */;
246 long var248 /* : Int */;
247 val* var249 /* : FlatString */;
248 val* var250 /* : HashMap[String, String] */;
249 val* var252 /* : HashMap[String, String] */;
250 val* var253 /* : String */;
251 val* var254 /* : String */;
252 static val* varonce255;
253 val* var256 /* : String */;
254 char* var257 /* : NativeString */;
255 long var258 /* : Int */;
256 val* var259 /* : FlatString */;
257 val* var260 /* : Location */;
258 val* var262 /* : Location */;
259 val* var263 /* : nullable SourceFile */;
260 val* var265 /* : nullable SourceFile */;
261 val* var266 /* : String */;
262 val* var268 /* : String */;
263 static val* varonce269;
264 val* var270 /* : String */;
265 char* var271 /* : NativeString */;
266 long var272 /* : Int */;
267 val* var273 /* : FlatString */;
268 val* var274 /* : Location */;
269 val* var276 /* : Location */;
270 long var277 /* : Int */;
271 long var279 /* : Int */;
272 static val* varonce280;
273 val* var281 /* : String */;
274 char* var282 /* : NativeString */;
275 long var283 /* : Int */;
276 val* var284 /* : FlatString */;
277 val* var285 /* : Array[Object] */;
278 long var286 /* : Int */;
279 val* var287 /* : NativeArray[Object] */;
280 val* var288 /* : Object */;
281 val* var289 /* : String */;
282 /* Covariant cast for argument 0 (compiler) <p0:AbstractCompiler> isa COMPILER */
283 /* <p0:AbstractCompiler> isa COMPILER */
284 type_struct = self->type->resolution_table->types[COLOR_nit__abstract_compiler__AbstractRuntimeFunction__COMPILER];
285 cltype = type_struct->color;
286 idtype = type_struct->id;
287 if(cltype >= p0->type->table_size) {
288 var = 0;
289 } else {
290 var = p0->type->type_table[cltype] == idtype;
291 }
292 if (unlikely(!var)) {
293 var_class_name = p0 == NULL ? "null" : p0->type->name;
294 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "COMPILER", var_class_name);
295 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1884);
296 show_backtrace(1);
297 }
298 var_compiler = p0;
299 {
300 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
301 var3 = self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
302 if (unlikely(var3 == NULL)) {
303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
304 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1644);
305 show_backtrace(1);
306 }
307 var1 = var3;
308 RET_LABEL2:(void)0;
309 }
310 }
311 var_mmethoddef = var1;
312 {
313 { /* Inline abstract_compiler#AbstractRuntimeFunction#mmethoddef (self) on <self:SeparateRuntimeFunction> */
314 var6 = self->attrs[COLOR_nit__abstract_compiler__AbstractRuntimeFunction___mmethoddef].val; /* _mmethoddef on <self:SeparateRuntimeFunction> */
315 if (unlikely(var6 == NULL)) {
316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmethoddef");
317 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1644);
318 show_backtrace(1);
319 }
320 var4 = var6;
321 RET_LABEL5:(void)0;
322 }
323 }
324 {
325 { /* Inline model#MPropDef#mclassdef (var4) on <var4:MMethodDef> */
326 var9 = var4->attrs[COLOR_nit__model__MPropDef___mclassdef].val; /* _mclassdef on <var4:MMethodDef> */
327 if (unlikely(var9 == NULL)) {
328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
329 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2010);
330 show_backtrace(1);
331 }
332 var7 = var9;
333 RET_LABEL8:(void)0;
334 }
335 }
336 {
337 { /* Inline model#MClassDef#bound_mtype (var7) on <var7:MClassDef> */
338 var12 = var7->attrs[COLOR_nit__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var7:MClassDef> */
339 if (unlikely(var12 == NULL)) {
340 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
341 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 495);
342 show_backtrace(1);
343 }
344 var10 = var12;
345 RET_LABEL11:(void)0;
346 }
347 }
348 var_recv = var10;
349 {
350 var13 = ((val* (*)(val* self))(var_compiler->class->vft[COLOR_nit__abstract_compiler__AbstractCompiler__new_visitor]))(var_compiler) /* new_visitor on <var_compiler:AbstractCompiler>*/;
351 }
352 var_v = var13;
353 var14 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
354 if (varonce) {
355 var15 = varonce;
356 } else {
357 var16 = "self";
358 var17 = 4;
359 var18 = standard___standard__NativeString___to_s_with_length(var16, var17);
360 var15 = var18;
361 varonce = var15;
362 }
363 {
364 { /* Inline separate_compiler#SeparateRuntimeFunction#called_recv (self) on <self:SeparateRuntimeFunction> */
365 var21 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_recv].val; /* _called_recv on <self:SeparateRuntimeFunction> */
366 if (unlikely(var21 == NULL)) {
367 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_recv");
368 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1845);
369 show_backtrace(1);
370 }
371 var19 = var21;
372 RET_LABEL20:(void)0;
373 }
374 }
375 {
376 ((void (*)(val* self, val* p0))(var14->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var14, var15) /* name= on <var14:RuntimeVariable>*/;
377 }
378 {
379 ((void (*)(val* self, val* p0))(var14->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var14, var19) /* mtype= on <var14:RuntimeVariable>*/;
380 }
381 {
382 ((void (*)(val* self, val* p0))(var14->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var14, var_recv) /* mcasttype= on <var14:RuntimeVariable>*/;
383 }
384 {
385 ((void (*)(val* self))(var14->class->vft[COLOR_standard__kernel__Object__init]))(var14) /* init on <var14:RuntimeVariable>*/;
386 }
387 var_selfvar = var14;
388 var22 = NEW_standard__Array(&type_standard__Array__nit__RuntimeVariable);
389 {
390 standard___standard__Array___standard__kernel__Object__init(var22); /* Direct call array#Array#init on <var22:Array[RuntimeVariable]>*/
391 }
392 var_arguments = var22;
393 var23 = NEW_nit__StaticFrame(&type_nit__StaticFrame);
394 {
395 ((void (*)(val* self, val* p0))(var23->class->vft[COLOR_nit__abstract_compiler__StaticFrame__visitor_61d]))(var23, var_v) /* visitor= on <var23:StaticFrame>*/;
396 }
397 {
398 ((void (*)(val* self, val* p0))(var23->class->vft[COLOR_nit__abstract_compiler__StaticFrame__mpropdef_61d]))(var23, var_mmethoddef) /* mpropdef= on <var23:StaticFrame>*/;
399 }
400 {
401 ((void (*)(val* self, val* p0))(var23->class->vft[COLOR_nit__abstract_compiler__StaticFrame__receiver_61d]))(var23, var_recv) /* receiver= on <var23:StaticFrame>*/;
402 }
403 {
404 ((void (*)(val* self, val* p0))(var23->class->vft[COLOR_nit__abstract_compiler__StaticFrame__arguments_61d]))(var23, var_arguments) /* arguments= on <var23:StaticFrame>*/;
405 }
406 {
407 ((void (*)(val* self))(var23->class->vft[COLOR_standard__kernel__Object__init]))(var23) /* init on <var23:StaticFrame>*/;
408 }
409 var_frame = var23;
410 {
411 { /* Inline abstract_compiler#AbstractCompilerVisitor#frame= (var_v,var_frame) on <var_v:AbstractCompilerVisitor> */
412 var_v->attrs[COLOR_nit__abstract_compiler__AbstractCompilerVisitor___frame].val = var_frame; /* _frame on <var_v:AbstractCompilerVisitor> */
413 RET_LABEL24:(void)0;
414 }
415 }
416 {
417 { /* Inline separate_compiler#SeparateRuntimeFunction#called_signature (self) on <self:SeparateRuntimeFunction> */
418 var27 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
419 if (unlikely(var27 == NULL)) {
420 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
421 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848);
422 show_backtrace(1);
423 }
424 var25 = var27;
425 RET_LABEL26:(void)0;
426 }
427 }
428 var_msignature = var25;
429 {
430 { /* Inline separate_compiler#SeparateRuntimeFunction#called_signature (self) on <self:SeparateRuntimeFunction> */
431 var30 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___called_signature].val; /* _called_signature on <self:SeparateRuntimeFunction> */
432 if (unlikely(var30 == NULL)) {
433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _called_signature");
434 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1848);
435 show_backtrace(1);
436 }
437 var28 = var30;
438 RET_LABEL29:(void)0;
439 }
440 }
441 {
442 { /* Inline model#MSignature#return_mtype (var28) on <var28:MSignature> */
443 var33 = var28->attrs[COLOR_nit__model__MSignature___return_mtype].val; /* _return_mtype on <var28:MSignature> */
444 var31 = var33;
445 RET_LABEL32:(void)0;
446 }
447 }
448 var_ret = var31;
449 var34 = NEW_standard__FlatBuffer(&type_standard__FlatBuffer);
450 {
451 { /* Inline string#FlatBuffer#init (var34) on <var34:FlatBuffer> */
452 {
453 ((void (*)(val* self))(var34->class->vft[COLOR_standard___standard__FlatBuffer___standard__kernel__Object__init]))(var34) /* init on <var34:FlatBuffer>*/;
454 }
455 RET_LABEL35:(void)0;
456 }
457 }
458 var_sig = var34;
459 var36 = NEW_standard__FlatBuffer(&type_standard__FlatBuffer);
460 {
461 { /* Inline string#FlatBuffer#init (var36) on <var36:FlatBuffer> */
462 {
463 ((void (*)(val* self))(var36->class->vft[COLOR_standard___standard__FlatBuffer___standard__kernel__Object__init]))(var36) /* init on <var36:FlatBuffer>*/;
464 }
465 RET_LABEL37:(void)0;
466 }
467 }
468 var_comment = var36;
469 {
470 var38 = nit___nit__SeparateRuntimeFunction___c_ret(self);
471 }
472 {
473 standard___standard__FlatBuffer___Buffer__append(var_sig, var38); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
474 }
475 if (varonce39) {
476 var40 = varonce39;
477 } else {
478 var41 = " ";
479 var42 = 1;
480 var43 = standard___standard__NativeString___to_s_with_length(var41, var42);
481 var40 = var43;
482 varonce39 = var40;
483 }
484 {
485 standard___standard__FlatBuffer___Buffer__append(var_sig, var40); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
486 }
487 {
488 var44 = nit___nit__AbstractRuntimeFunction___c_name(self);
489 }
490 {
491 standard___standard__FlatBuffer___Buffer__append(var_sig, var44); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
492 }
493 {
494 var45 = nit___nit__SeparateRuntimeFunction___c_sig(self);
495 }
496 {
497 standard___standard__FlatBuffer___Buffer__append(var_sig, var45); /* Direct call string#FlatBuffer#append on <var_sig:FlatBuffer>*/
498 }
499 if (varonce46) {
500 var47 = varonce46;
501 } else {
502 var48 = "(";
503 var49 = 1;
504 var50 = standard___standard__NativeString___to_s_with_length(var48, var49);
505 var47 = var50;
506 varonce46 = var47;
507 }
508 if (varonce51) {
509 var52 = varonce51;
510 } else {
511 var53 = ": ";
512 var54 = 2;
513 var55 = standard___standard__NativeString___to_s_with_length(var53, var54);
514 var52 = var55;
515 varonce51 = var52;
516 }
517 {
518 { /* Inline abstract_compiler#RuntimeVariable#mtype (var_selfvar) on <var_selfvar:RuntimeVariable> */
519 var58 = var_selfvar->attrs[COLOR_nit__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var_selfvar:RuntimeVariable> */
520 if (unlikely(var58 == NULL)) {
521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
522 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 1680);
523 show_backtrace(1);
524 }
525 var56 = var58;
526 RET_LABEL57:(void)0;
527 }
528 }
529 var59 = NEW_standard__Array(&type_standard__Array__standard__Object);
530 { /* var59 = array_instance Array[Object] */
531 var60 = 4;
532 var61 = NEW_standard__NativeArray(var60, &type_standard__NativeArray__standard__Object);
533 ((struct instance_standard__NativeArray*)var61)->values[0] = (val*) var47;
534 ((struct instance_standard__NativeArray*)var61)->values[1] = (val*) var_selfvar;
535 ((struct instance_standard__NativeArray*)var61)->values[2] = (val*) var52;
536 ((struct instance_standard__NativeArray*)var61)->values[3] = (val*) var56;
537 {
538 ((void (*)(val* self, val* p0, long p1))(var59->class->vft[COLOR_standard__array__Array__with_native]))(var59, var61, var60) /* with_native on <var59:Array[Object]>*/;
539 }
540 }
541 {
542 var62 = ((val* (*)(val* self))(var59->class->vft[COLOR_standard__string__Object__to_s]))(var59) /* to_s on <var59:Array[Object]>*/;
543 }
544 {
545 standard___standard__FlatBuffer___Buffer__append(var_comment, var62); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
546 }
547 {
548 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_arguments, var_selfvar); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
549 }
550 var63 = 0;
551 var_i = var63;
552 {
553 var64 = nit___nit__MSignature___arity(var_msignature);
554 }
555 var_ = var64;
556 for(;;) {
557 {
558 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
559 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
560 /* <var_:Int> isa OTHER */
561 var67 = 1; /* easy <var_:Int> isa OTHER*/
562 if (unlikely(!var67)) {
563 var_class_name70 = type_standard__Int.name;
564 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70);
565 PRINT_ERROR(" (%s:%d)\n", FILE_standard__kernel, 410);
566 show_backtrace(1);
567 }
568 var71 = var_i < var_;
569 var65 = var71;
570 goto RET_LABEL66;
571 RET_LABEL66:(void)0;
572 }
573 }
574 if (var65){
575 {
576 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
577 var74 = var_msignature->attrs[COLOR_nit__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:MSignature> */
578 if (unlikely(var74 == NULL)) {
579 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
580 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1592);
581 show_backtrace(1);
582 }
583 var72 = var74;
584 RET_LABEL73:(void)0;
585 }
586 }
587 {
588 var75 = standard___standard__Array___standard__abstract_collection__SequenceRead___91d_93d(var72, var_i);
589 }
590 {
591 { /* Inline model#MParameter#mtype (var75) on <var75:nullable Object(MParameter)> */
592 var78 = var75->attrs[COLOR_nit__model__MParameter___mtype].val; /* _mtype on <var75:nullable Object(MParameter)> */
593 if (unlikely(var78 == NULL)) {
594 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
595 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 1690);
596 show_backtrace(1);
597 }
598 var76 = var78;
599 RET_LABEL77:(void)0;
600 }
601 }
602 var_mtype = var76;
603 {
604 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
605 var81 = var_msignature->attrs[COLOR_nit__model__MSignature___vararg_rank].l; /* _vararg_rank on <var_msignature:MSignature> */
606 var79 = var81;
607 RET_LABEL80:(void)0;
608 }
609 }
610 {
611 { /* Inline kernel#Int#== (var_i,var79) on <var_i:Int> */
612 var84 = var_i == var79;
613 var82 = var84;
614 goto RET_LABEL83;
615 RET_LABEL83:(void)0;
616 }
617 }
618 if (var82){
619 if (varonce85) {
620 var86 = varonce85;
621 } else {
622 var87 = "Array";
623 var88 = 5;
624 var89 = standard___standard__NativeString___to_s_with_length(var87, var88);
625 var86 = var89;
626 varonce85 = var86;
627 }
628 {
629 var90 = nit___nit__AbstractCompilerVisitor___get_class(var_v, var86);
630 }
631 var91 = NEW_standard__Array(&type_standard__Array__nit__MType);
632 var92 = 1;
633 {
634 standard___standard__Array___with_capacity(var91, var92); /* Direct call array#Array#with_capacity on <var91:Array[MType]>*/
635 }
636 var_93 = var91;
637 {
638 standard___standard__AbstractArray___standard__abstract_collection__Sequence__push(var_93, var_mtype); /* Direct call array#AbstractArray#push on <var_93:Array[MType]>*/
639 }
640 {
641 var94 = nit___nit__MClass___get_mtype(var90, var_93);
642 }
643 var_mtype = var94;
644 } else {
645 }
646 if (varonce95) {
647 var96 = varonce95;
648 } else {
649 var97 = ", ";
650 var98 = 2;
651 var99 = standard___standard__NativeString___to_s_with_length(var97, var98);
652 var96 = var99;
653 varonce95 = var96;
654 }
655 var100 = NEW_standard__Array(&type_standard__Array__standard__Object);
656 { /* var100 = array_instance Array[Object] */
657 var101 = 2;
658 var102 = NEW_standard__NativeArray(var101, &type_standard__NativeArray__standard__Object);
659 ((struct instance_standard__NativeArray*)var102)->values[0] = (val*) var96;
660 ((struct instance_standard__NativeArray*)var102)->values[1] = (val*) var_mtype;
661 {
662 ((void (*)(val* self, val* p0, long p1))(var100->class->vft[COLOR_standard__array__Array__with_native]))(var100, var102, var101) /* with_native on <var100:Array[Object]>*/;
663 }
664 }
665 {
666 var103 = ((val* (*)(val* self))(var100->class->vft[COLOR_standard__string__Object__to_s]))(var100) /* to_s on <var100:Array[Object]>*/;
667 }
668 {
669 standard___standard__FlatBuffer___Buffer__append(var_comment, var103); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
670 }
671 var104 = NEW_nit__RuntimeVariable(&type_nit__RuntimeVariable);
672 if (varonce105) {
673 var106 = varonce105;
674 } else {
675 var107 = "p";
676 var108 = 1;
677 var109 = standard___standard__NativeString___to_s_with_length(var107, var108);
678 var106 = var109;
679 varonce105 = var106;
680 }
681 var110 = NEW_standard__Array(&type_standard__Array__standard__Object);
682 { /* var110 = array_instance Array[Object] */
683 var111 = 2;
684 var112 = NEW_standard__NativeArray(var111, &type_standard__NativeArray__standard__Object);
685 ((struct instance_standard__NativeArray*)var112)->values[0] = (val*) var106;
686 var113 = BOX_standard__Int(var_i); /* autobox from Int to Object */
687 ((struct instance_standard__NativeArray*)var112)->values[1] = (val*) var113;
688 {
689 ((void (*)(val* self, val* p0, long p1))(var110->class->vft[COLOR_standard__array__Array__with_native]))(var110, var112, var111) /* with_native on <var110:Array[Object]>*/;
690 }
691 }
692 {
693 var114 = ((val* (*)(val* self))(var110->class->vft[COLOR_standard__string__Object__to_s]))(var110) /* to_s on <var110:Array[Object]>*/;
694 }
695 {
696 ((void (*)(val* self, val* p0))(var104->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__name_61d]))(var104, var114) /* name= on <var104:RuntimeVariable>*/;
697 }
698 {
699 ((void (*)(val* self, val* p0))(var104->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mtype_61d]))(var104, var_mtype) /* mtype= on <var104:RuntimeVariable>*/;
700 }
701 {
702 ((void (*)(val* self, val* p0))(var104->class->vft[COLOR_nit__abstract_compiler__RuntimeVariable__mcasttype_61d]))(var104, var_mtype) /* mcasttype= on <var104:RuntimeVariable>*/;
703 }
704 {
705 ((void (*)(val* self))(var104->class->vft[COLOR_standard__kernel__Object__init]))(var104) /* init on <var104:RuntimeVariable>*/;
706 }
707 var_argvar = var104;
708 {
709 standard___standard__Array___standard__abstract_collection__SimpleCollection__add(var_arguments, var_argvar); /* Direct call array#Array#add on <var_arguments:Array[RuntimeVariable]>*/
710 }
711 var115 = 1;
712 {
713 var116 = standard___standard__Int___Discrete__successor(var_i, var115);
714 }
715 var_i = var116;
716 } else {
717 goto BREAK_label;
718 }
719 }
720 BREAK_label: (void)0;
721 if (varonce117) {
722 var118 = varonce117;
723 } else {
724 var119 = ")";
725 var120 = 1;
726 var121 = standard___standard__NativeString___to_s_with_length(var119, var120);
727 var118 = var121;
728 varonce117 = var118;
729 }
730 {
731 standard___standard__FlatBuffer___Buffer__append(var_comment, var118); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
732 }
733 var122 = NULL;
734 if (var_ret == NULL) {
735 var123 = 0; /* is null */
736 } else {
737 var123 = 1; /* arg is null and recv is not */
738 }
739 if (0) {
740 { /* Inline kernel#Object#!= (var_ret,var122) on <var_ret:nullable MType> */
741 var_other = var122;
742 {
743 var126 = ((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)>*/;
744 }
745 var127 = !var126;
746 var124 = var127;
747 goto RET_LABEL125;
748 RET_LABEL125:(void)0;
749 }
750 var123 = var124;
751 }
752 if (var123){
753 if (varonce128) {
754 var129 = varonce128;
755 } else {
756 var130 = ": ";
757 var131 = 2;
758 var132 = standard___standard__NativeString___to_s_with_length(var130, var131);
759 var129 = var132;
760 varonce128 = var129;
761 }
762 var133 = NEW_standard__Array(&type_standard__Array__standard__Object);
763 { /* var133 = array_instance Array[Object] */
764 var134 = 2;
765 var135 = NEW_standard__NativeArray(var134, &type_standard__NativeArray__standard__Object);
766 ((struct instance_standard__NativeArray*)var135)->values[0] = (val*) var129;
767 ((struct instance_standard__NativeArray*)var135)->values[1] = (val*) var_ret;
768 {
769 ((void (*)(val* self, val* p0, long p1))(var133->class->vft[COLOR_standard__array__Array__with_native]))(var133, var135, var134) /* with_native on <var133:Array[Object]>*/;
770 }
771 }
772 {
773 var136 = ((val* (*)(val* self))(var133->class->vft[COLOR_standard__string__Object__to_s]))(var133) /* to_s on <var133:Array[Object]>*/;
774 }
775 {
776 standard___standard__FlatBuffer___Buffer__append(var_comment, var136); /* Direct call string#FlatBuffer#append on <var_comment:FlatBuffer>*/
777 }
778 } else {
779 }
780 {
781 var137 = nit___nit__AbstractRuntimeFunction___c_name(self);
782 }
783 if (varonce138) {
784 var139 = varonce138;
785 } else {
786 var140 = ";";
787 var141 = 1;
788 var142 = standard___standard__NativeString___to_s_with_length(var140, var141);
789 var139 = var142;
790 varonce138 = var139;
791 }
792 var143 = NEW_standard__Array(&type_standard__Array__standard__Object);
793 { /* var143 = array_instance Array[Object] */
794 var144 = 2;
795 var145 = NEW_standard__NativeArray(var144, &type_standard__NativeArray__standard__Object);
796 ((struct instance_standard__NativeArray*)var145)->values[0] = (val*) var_sig;
797 ((struct instance_standard__NativeArray*)var145)->values[1] = (val*) var139;
798 {
799 ((void (*)(val* self, val* p0, long p1))(var143->class->vft[COLOR_standard__array__Array__with_native]))(var143, var145, var144) /* with_native on <var143:Array[Object]>*/;
800 }
801 }
802 {
803 var146 = ((val* (*)(val* self))(var143->class->vft[COLOR_standard__string__Object__to_s]))(var143) /* to_s on <var143:Array[Object]>*/;
804 }
805 {
806 nit___nit__AbstractCompiler___provide_declaration(var_compiler, var137, var146); /* Direct call abstract_compiler#AbstractCompiler#provide_declaration on <var_compiler:AbstractCompiler>*/
807 }
808 if (varonce147) {
809 var148 = varonce147;
810 } else {
811 var149 = "/* method ";
812 var150 = 10;
813 var151 = standard___standard__NativeString___to_s_with_length(var149, var150);
814 var148 = var151;
815 varonce147 = var148;
816 }
817 if (varonce152) {
818 var153 = varonce152;
819 } else {
820 var154 = " for ";
821 var155 = 5;
822 var156 = standard___standard__NativeString___to_s_with_length(var154, var155);
823 var153 = var156;
824 varonce152 = var153;
825 }
826 if (varonce157) {
827 var158 = varonce157;
828 } else {
829 var159 = " */";
830 var160 = 3;
831 var161 = standard___standard__NativeString___to_s_with_length(var159, var160);
832 var158 = var161;
833 varonce157 = var158;
834 }
835 var162 = NEW_standard__Array(&type_standard__Array__standard__Object);
836 { /* var162 = array_instance Array[Object] */
837 var163 = 5;
838 var164 = NEW_standard__NativeArray(var163, &type_standard__NativeArray__standard__Object);
839 ((struct instance_standard__NativeArray*)var164)->values[0] = (val*) var148;
840 ((struct instance_standard__NativeArray*)var164)->values[1] = (val*) self;
841 ((struct instance_standard__NativeArray*)var164)->values[2] = (val*) var153;
842 ((struct instance_standard__NativeArray*)var164)->values[3] = (val*) var_comment;
843 ((struct instance_standard__NativeArray*)var164)->values[4] = (val*) var158;
844 {
845 ((void (*)(val* self, val* p0, long p1))(var162->class->vft[COLOR_standard__array__Array__with_native]))(var162, var164, var163) /* with_native on <var162:Array[Object]>*/;
846 }
847 }
848 {
849 var165 = ((val* (*)(val* self))(var162->class->vft[COLOR_standard__string__Object__to_s]))(var162) /* to_s on <var162:Array[Object]>*/;
850 }
851 {
852 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var165); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
853 }
854 if (varonce166) {
855 var167 = varonce166;
856 } else {
857 var168 = " {";
858 var169 = 2;
859 var170 = standard___standard__NativeString___to_s_with_length(var168, var169);
860 var167 = var170;
861 varonce166 = var167;
862 }
863 var171 = NEW_standard__Array(&type_standard__Array__standard__Object);
864 { /* var171 = array_instance Array[Object] */
865 var172 = 2;
866 var173 = NEW_standard__NativeArray(var172, &type_standard__NativeArray__standard__Object);
867 ((struct instance_standard__NativeArray*)var173)->values[0] = (val*) var_sig;
868 ((struct instance_standard__NativeArray*)var173)->values[1] = (val*) var167;
869 {
870 ((void (*)(val* self, val* p0, long p1))(var171->class->vft[COLOR_standard__array__Array__with_native]))(var171, var173, var172) /* with_native on <var171:Array[Object]>*/;
871 }
872 }
873 {
874 var174 = ((val* (*)(val* self))(var171->class->vft[COLOR_standard__string__Object__to_s]))(var171) /* to_s on <var171:Array[Object]>*/;
875 }
876 {
877 nit___nit__AbstractCompilerVisitor___add_decl(var_v, var174); /* Direct call abstract_compiler#AbstractCompilerVisitor#add_decl on <var_v:AbstractCompilerVisitor>*/
878 }
879 var175 = NULL;
880 if (var_ret == NULL) {
881 var176 = 0; /* is null */
882 } else {
883 var176 = 1; /* arg is null and recv is not */
884 }
885 if (0) {
886 { /* Inline kernel#Object#!= (var_ret,var175) on <var_ret:nullable MType> */
887 var_other = var175;
888 {
889 var179 = ((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)>*/;
890 }
891 var180 = !var179;
892 var177 = var180;
893 goto RET_LABEL178;
894 RET_LABEL178:(void)0;
895 }
896 var176 = var177;
897 }
898 if (var176){
899 {
900 var181 = nit___nit__AbstractCompilerVisitor___new_var(var_v, var_ret);
901 }
902 {
903 { /* Inline abstract_compiler#StaticFrame#returnvar= (var_frame,var181) on <var_frame:StaticFrame> */
904 var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val = var181; /* _returnvar on <var_frame:StaticFrame> */
905 RET_LABEL182:(void)0;
906 }
907 }
908 } else {
909 }
910 if (varonce183) {
911 var184 = varonce183;
912 } else {
913 var185 = "RET_LABEL";
914 var186 = 9;
915 var187 = standard___standard__NativeString___to_s_with_length(var185, var186);
916 var184 = var187;
917 varonce183 = var184;
918 }
919 {
920 var188 = nit___nit__AbstractCompilerVisitor___get_name(var_v, var184);
921 }
922 {
923 { /* Inline abstract_compiler#StaticFrame#returnlabel= (var_frame,var188) on <var_frame:StaticFrame> */
924 var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val = var188; /* _returnlabel on <var_frame:StaticFrame> */
925 RET_LABEL189:(void)0;
926 }
927 }
928 {
929 { /* Inline separate_compiler#SeparateRuntimeFunction#is_thunk (self) on <self:SeparateRuntimeFunction> */
930 var192 = self->attrs[COLOR_nit__separate_compiler__SeparateRuntimeFunction___is_thunk].s; /* _is_thunk on <self:SeparateRuntimeFunction> */
931 var190 = var192;
932 RET_LABEL191:(void)0;
933 }
934 }
935 if (var190){
936 {
937 var193 = nit___nit__SeparateCompilerVisitor___nit__abstract_compiler__AbstractCompilerVisitor__call(var_v, var_mmethoddef, var_recv, var_arguments);
938 }
939 var_subret = var193;
940 var194 = NULL;
941 if (var_ret == NULL) {
942 var195 = 0; /* is null */
943 } else {
944 var195 = 1; /* arg is null and recv is not */
945 }
946 if (0) {
947 { /* Inline kernel#Object#!= (var_ret,var194) on <var_ret:nullable MType> */
948 var_other = var194;
949 {
950 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)>*/;
951 }
952 var199 = !var198;
953 var196 = var199;
954 goto RET_LABEL197;
955 RET_LABEL197:(void)0;
956 }
957 var195 = var196;
958 }
959 if (var195){
960 var200 = NULL;
961 if (var_subret == NULL) {
962 var201 = 0; /* is null */
963 } else {
964 var201 = 1; /* arg is null and recv is not */
965 }
966 if (0) {
967 { /* Inline kernel#Object#!= (var_subret,var200) on <var_subret:nullable RuntimeVariable> */
968 var_other = var200;
969 {
970 var204 = ((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)>*/;
971 }
972 var205 = !var204;
973 var202 = var205;
974 goto RET_LABEL203;
975 RET_LABEL203:(void)0;
976 }
977 var201 = var202;
978 }
979 if (unlikely(!var201)) {
980 PRINT_ERROR("Runtime error: %s", "Assert failed");
981 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1931);
982 show_backtrace(1);
983 }
984 {
985 { /* Inline abstract_compiler#StaticFrame#returnvar (var_frame) on <var_frame:StaticFrame> */
986 var208 = var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var_frame:StaticFrame> */
987 var206 = var208;
988 RET_LABEL207:(void)0;
989 }
990 }
991 if (unlikely(var206 == NULL)) {
992 PRINT_ERROR("Runtime error: %s", "Cast failed");
993 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1932);
994 show_backtrace(1);
995 }
996 {
997 nit___nit__AbstractCompilerVisitor___assign(var_v, var206, var_subret); /* Direct call abstract_compiler#AbstractCompilerVisitor#assign on <var_v:AbstractCompilerVisitor>*/
998 }
999 } else {
1000 }
1001 } else {
1002 {
1003 var209 = nit__abstract_compiler___MMethodDef___compile_inside_to_c(var_mmethoddef, var_v, var_arguments);
1004 }
1005 }
1006 {
1007 { /* Inline abstract_compiler#StaticFrame#returnlabel (var_frame) on <var_frame:StaticFrame> */
1008 var212 = var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnlabel].val; /* _returnlabel on <var_frame:StaticFrame> */
1009 var210 = var212;
1010 RET_LABEL211:(void)0;
1011 }
1012 }
1013 if (unlikely(var210 == NULL)) {
1014 PRINT_ERROR("Runtime error: %s", "Cast failed");
1015 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1938);
1016 show_backtrace(1);
1017 }
1018 if (varonce213) {
1019 var214 = varonce213;
1020 } else {
1021 var215 = ":;";
1022 var216 = 2;
1023 var217 = standard___standard__NativeString___to_s_with_length(var215, var216);
1024 var214 = var217;
1025 varonce213 = var214;
1026 }
1027 var218 = NEW_standard__Array(&type_standard__Array__standard__Object);
1028 { /* var218 = array_instance Array[Object] */
1029 var219 = 2;
1030 var220 = NEW_standard__NativeArray(var219, &type_standard__NativeArray__standard__Object);
1031 ((struct instance_standard__NativeArray*)var220)->values[0] = (val*) var210;
1032 ((struct instance_standard__NativeArray*)var220)->values[1] = (val*) var214;
1033 {
1034 ((void (*)(val* self, val* p0, long p1))(var218->class->vft[COLOR_standard__array__Array__with_native]))(var218, var220, var219) /* with_native on <var218:Array[Object]>*/;
1035 }
1036 }
1037 {
1038 var221 = ((val* (*)(val* self))(var218->class->vft[COLOR_standard__string__Object__to_s]))(var218) /* to_s on <var218:Array[Object]>*/;
1039 }
1040 {
1041 nit___nit__AbstractCompilerVisitor___add(var_v, var221); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1042 }
1043 var222 = NULL;
1044 if (var_ret == NULL) {
1045 var223 = 0; /* is null */
1046 } else {
1047 var223 = 1; /* arg is null and recv is not */
1048 }
1049 if (0) {
1050 { /* Inline kernel#Object#!= (var_ret,var222) on <var_ret:nullable MType> */
1051 var_other = var222;
1052 {
1053 var226 = ((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)>*/;
1054 }
1055 var227 = !var226;
1056 var224 = var227;
1057 goto RET_LABEL225;
1058 RET_LABEL225:(void)0;
1059 }
1060 var223 = var224;
1061 }
1062 if (var223){
1063 if (varonce228) {
1064 var229 = varonce228;
1065 } else {
1066 var230 = "return ";
1067 var231 = 7;
1068 var232 = standard___standard__NativeString___to_s_with_length(var230, var231);
1069 var229 = var232;
1070 varonce228 = var229;
1071 }
1072 {
1073 { /* Inline abstract_compiler#StaticFrame#returnvar (var_frame) on <var_frame:StaticFrame> */
1074 var235 = var_frame->attrs[COLOR_nit__abstract_compiler__StaticFrame___returnvar].val; /* _returnvar on <var_frame:StaticFrame> */
1075 var233 = var235;
1076 RET_LABEL234:(void)0;
1077 }
1078 }
1079 if (unlikely(var233 == NULL)) {
1080 PRINT_ERROR("Runtime error: %s", "Cast failed");
1081 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1940);
1082 show_backtrace(1);
1083 }
1084 if (varonce236) {
1085 var237 = varonce236;
1086 } else {
1087 var238 = ";";
1088 var239 = 1;
1089 var240 = standard___standard__NativeString___to_s_with_length(var238, var239);
1090 var237 = var240;
1091 varonce236 = var237;
1092 }
1093 var241 = NEW_standard__Array(&type_standard__Array__standard__Object);
1094 { /* var241 = array_instance Array[Object] */
1095 var242 = 3;
1096 var243 = NEW_standard__NativeArray(var242, &type_standard__NativeArray__standard__Object);
1097 ((struct instance_standard__NativeArray*)var243)->values[0] = (val*) var229;
1098 ((struct instance_standard__NativeArray*)var243)->values[1] = (val*) var233;
1099 ((struct instance_standard__NativeArray*)var243)->values[2] = (val*) var237;
1100 {
1101 ((void (*)(val* self, val* p0, long p1))(var241->class->vft[COLOR_standard__array__Array__with_native]))(var241, var243, var242) /* with_native on <var241:Array[Object]>*/;
1102 }
1103 }
1104 {
1105 var244 = ((val* (*)(val* self))(var241->class->vft[COLOR_standard__string__Object__to_s]))(var241) /* to_s on <var241:Array[Object]>*/;
1106 }
1107 {
1108 nit___nit__AbstractCompilerVisitor___add(var_v, var244); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1109 }
1110 } else {
1111 }
1112 if (varonce245) {
1113 var246 = varonce245;
1114 } else {
1115 var247 = "}";
1116 var248 = 1;
1117 var249 = standard___standard__NativeString___to_s_with_length(var247, var248);
1118 var246 = var249;
1119 varonce245 = var246;
1120 }
1121 {
1122 nit___nit__AbstractCompilerVisitor___add(var_v, var246); /* Direct call abstract_compiler#AbstractCompilerVisitor#add on <var_v:AbstractCompilerVisitor>*/
1123 }
1124 {
1125 { /* Inline abstract_compiler#AbstractCompiler#names (var_compiler) on <var_compiler:AbstractCompiler> */
1126 var252 = var_compiler->attrs[COLOR_nit__abstract_compiler__AbstractCompiler___names].val; /* _names on <var_compiler:AbstractCompiler> */
1127 if (unlikely(var252 == NULL)) {
1128 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _names");
1129 PRINT_ERROR(" (%s:%d)\n", FILE_nit__abstract_compiler, 471);
1130 show_backtrace(1);
1131 }
1132 var250 = var252;
1133 RET_LABEL251:(void)0;
1134 }
1135 }
1136 {
1137 var253 = nit___nit__AbstractRuntimeFunction___c_name(self);
1138 }
1139 {
1140 var254 = nit___nit__MPropDef___nit__model_base__MEntity__full_name(var_mmethoddef);
1141 }
1142 if (varonce255) {
1143 var256 = varonce255;
1144 } else {
1145 var257 = " (";
1146 var258 = 2;
1147 var259 = standard___standard__NativeString___to_s_with_length(var257, var258);
1148 var256 = var259;
1149 varonce255 = var256;
1150 }
1151 {
1152 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1153 var262 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___location].val; /* _location on <var_mmethoddef:MMethodDef> */
1154 if (unlikely(var262 == NULL)) {
1155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1156 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2016);
1157 show_backtrace(1);
1158 }
1159 var260 = var262;
1160 RET_LABEL261:(void)0;
1161 }
1162 }
1163 {
1164 { /* Inline location#Location#file (var260) on <var260:Location> */
1165 var265 = var260->attrs[COLOR_nit__location__Location___file].val; /* _file on <var260:Location> */
1166 var263 = var265;
1167 RET_LABEL264:(void)0;
1168 }
1169 }
1170 if (var263 == NULL) {
1171 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1172 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1943);
1173 show_backtrace(1);
1174 } else {
1175 { /* Inline location#SourceFile#filename (var263) on <var263:nullable SourceFile> */
1176 if (unlikely(var263 == NULL)) {
1177 PRINT_ERROR("Runtime error: %s", "Receiver is null");
1178 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
1179 show_backtrace(1);
1180 }
1181 var268 = var263->attrs[COLOR_nit__location__SourceFile___filename].val; /* _filename on <var263:nullable SourceFile> */
1182 if (unlikely(var268 == NULL)) {
1183 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _filename");
1184 PRINT_ERROR(" (%s:%d)\n", FILE_nit__location, 22);
1185 show_backtrace(1);
1186 }
1187 var266 = var268;
1188 RET_LABEL267:(void)0;
1189 }
1190 }
1191 if (varonce269) {
1192 var270 = varonce269;
1193 } else {
1194 var271 = ":";
1195 var272 = 1;
1196 var273 = standard___standard__NativeString___to_s_with_length(var271, var272);
1197 var270 = var273;
1198 varonce269 = var270;
1199 }
1200 {
1201 { /* Inline model#MPropDef#location (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
1202 var276 = var_mmethoddef->attrs[COLOR_nit__model__MPropDef___location].val; /* _location on <var_mmethoddef:MMethodDef> */
1203 if (unlikely(var276 == NULL)) {
1204 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
1205 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2016);
1206 show_backtrace(1);
1207 }
1208 var274 = var276;
1209 RET_LABEL275:(void)0;
1210 }
1211 }
1212 {
1213 { /* Inline location#Location#line_start (var274) on <var274:Location> */
1214 var279 = var274->attrs[COLOR_nit__location__Location___line_start].l; /* _line_start on <var274:Location> */
1215 var277 = var279;
1216 RET_LABEL278:(void)0;
1217 }
1218 }
1219 if (varonce280) {
1220 var281 = varonce280;
1221 } else {
1222 var282 = ")";
1223 var283 = 1;
1224 var284 = standard___standard__NativeString___to_s_with_length(var282, var283);
1225 var281 = var284;
1226 varonce280 = var281;
1227 }
1228 var285 = NEW_standard__Array(&type_standard__Array__standard__Object);
1229 { /* var285 = array_instance Array[Object] */
1230 var286 = 6;
1231 var287 = NEW_standard__NativeArray(var286, &type_standard__NativeArray__standard__Object);
1232 ((struct instance_standard__NativeArray*)var287)->values[0] = (val*) var254;
1233 ((struct instance_standard__NativeArray*)var287)->values[1] = (val*) var256;
1234 ((struct instance_standard__NativeArray*)var287)->values[2] = (val*) var266;
1235 ((struct instance_standard__NativeArray*)var287)->values[3] = (val*) var270;
1236 var288 = BOX_standard__Int(var277); /* autobox from Int to Object */
1237 ((struct instance_standard__NativeArray*)var287)->values[4] = (val*) var288;
1238 ((struct instance_standard__NativeArray*)var287)->values[5] = (val*) var281;
1239 {
1240 ((void (*)(val* self, val* p0, long p1))(var285->class->vft[COLOR_standard__array__Array__with_native]))(var285, var287, var286) /* with_native on <var285:Array[Object]>*/;
1241 }
1242 }
1243 {
1244 var289 = ((val* (*)(val* self))(var285->class->vft[COLOR_standard__string__Object__to_s]))(var285) /* to_s on <var285:Array[Object]>*/;
1245 }
1246 {
1247 standard___standard__HashMap___standard__abstract_collection__Map___91d_93d_61d(var250, var253, var289); /* Direct call hash_collection#HashMap#[]= on <var250:HashMap[String, String]>*/
1248 }
1249 RET_LABEL:;
1250 }
1251 /* method separate_compiler#SeparateRuntimeFunction#init for (self: SeparateRuntimeFunction) */
1252 void nit___nit__SeparateRuntimeFunction___standard__kernel__Object__init(val* self) {
1253 {
1254 ((void (*)(val* self))(self->class->vft[COLOR_nit___nit__SeparateRuntimeFunction___standard__kernel__Object__init]))(self) /* init on <self:SeparateRuntimeFunction>*/;
1255 }
1256 RET_LABEL:;
1257 }
1258 /* method separate_compiler#MEntity#const_color for (self: MEntity): String */
1259 val* nit__separate_compiler___MEntity___const_color(val* self) {
1260 val* var /* : String */;
1261 short int var1 /* : Bool */;
1262 val* var2 /* : String */;
1263 val* var3 /* : String */;
1264 static val* varonce;
1265 val* var5 /* : String */;
1266 char* var6 /* : NativeString */;
1267 long var7 /* : Int */;
1268 val* var8 /* : FlatString */;
1269 val* var9 /* : String */;
1270 val* var10 /* : Array[Object] */;
1271 long var11 /* : Int */;
1272 val* var12 /* : NativeArray[Object] */;
1273 val* var13 /* : String */;
1274 var1 = self->attrs[COLOR_nit__separate_compiler__MEntity___const_color].val != NULL; /* _const_color on <self:MEntity> */
1275 if(likely(var1)) {
1276 var2 = self->attrs[COLOR_nit__separate_compiler__MEntity___const_color].val; /* _const_color on <self:MEntity> */
1277 if (unlikely(var2 == NULL)) {
1278 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _const_color");
1279 PRINT_ERROR(" (%s:%d)\n", FILE_nit__separate_compiler, 1948);
1280 show_backtrace(1);
1281 }
1282 } else {
1283 {
1284 if (varonce) {
1285 var5 = varonce;
1286 } else {
1287 var6 = "COLOR_";
1288 var7 = 6;
1289 var8 = standard___standard__NativeString___to_s_with_length(var6, var7);
1290 var5 = var8;
1291 varonce = var5;
1292 }
1293 {
1294 var9 = ((val* (*)(val* self))(self->class->vft[COLOR_nit__model_base__MEntity__c_name]))(self) /* c_name on <self:MEntity>*/;
1295 }
1296 var10 = NEW_standard__Array(&type_standard__Array__standard__Object);
1297 { /* var10 = array_instance Array[Object] */
1298 var11 = 2;
1299 var12 = NEW_standard__NativeArray(var11, &type_standard__NativeArray__standard__Object);
1300 ((struct instance_standard__NativeArray*)var12)->values[0] = (val*) var5;
1301 ((struct instance_standard__NativeArray*)var12)->values[1] = (val*) var9;
1302 {
1303 ((void (*)(val* self, val* p0, long p1))(var10->class->vft[COLOR_standard__array__Array__with_native]))(var10, var12, var11) /* with_native on <var10:Array[Object]>*/;
1304 }
1305 }
1306 {
1307 var13 = ((val* (*)(val* self))(var10->class->vft[COLOR_standard__string__Object__to_s]))(var10) /* to_s on <var10:Array[Object]>*/;
1308 }
1309 var3 = var13;
1310 goto RET_LABEL4;
1311 RET_LABEL4:(void)0;
1312 }
1313 self->attrs[COLOR_nit__separate_compiler__MEntity___const_color].val = var3; /* _const_color on <self:MEntity> */
1314 var2 = var3;
1315 }
1316 var = var2;
1317 RET_LABEL:;
1318 return var;
1319 }
1320 /* method separate_compiler#AMethPropdef#can_inline for (self: AMethPropdef): Bool */
1321 short int nit__separate_compiler___AMethPropdef___nit__abstract_compiler__APropdef__can_inline(val* self) {
1322 short int var /* : Bool */;
1323 val* var1 /* : nullable MPropDef */;
1324 val* var3 /* : nullable MPropDef */;
1325 val* var_m /* var m: nullable MMethodDef */;
1326 short int var4 /* : Bool */;
1327 short int var5 /* : Bool */;
1328 val* var6 /* : null */;
1329 short int var7 /* : Bool */;
1330 short int var8 /* : Bool */;
1331 val* var_other /* var other: nullable Object */;
1332 short int var10 /* : Bool */;
1333 short int var11 /* : Bool */;
1334 short int var_ /* var : Bool */;
1335 val* var12 /* : MProperty */;
1336 val* var14 /* : MProperty */;
1337 short int var15 /* : Bool */;
1338 short int var17 /* : Bool */;
1339 short int var_18 /* var : Bool */;
1340 short int var19 /* : Bool */;
1341 short int var21 /* : Bool */;
1342 short int var22 /* : Bool */;
1343 short int var23 /* : Bool */;
1344 {
1345 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
1346 var3 = self->attrs[COLOR_nit__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
1347 var1 = var3;
1348 RET_LABEL2:(void)0;
1349 }
1350 }
1351 var_m = var1;
1352 var6 = NULL;
1353 if (var_m == NULL) {
1354 var7 = 0; /* is null */
1355 } else {
1356 var7 = 1; /* arg is null and recv is not */
1357 }
1358 if (0) {
1359 { /* Inline kernel#Object#!= (var_m,var6) on <var_m:nullable MMethodDef> */
1360 var_other = var6;
1361 {
1362 var10 = ((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)>*/;
1363 }
1364 var11 = !var10;
1365 var8 = var11;
1366 goto RET_LABEL9;
1367 RET_LABEL9:(void)0;
1368 }
1369 var7 = var8;
1370 }
1371 var_ = var7;
1372 if (var7){
1373 {
1374 { /* Inline model#MPropDef#mproperty (var_m) on <var_m:nullable MMethodDef(MMethodDef)> */
1375 var14 = var_m->attrs[COLOR_nit__model__MPropDef___mproperty].val; /* _mproperty on <var_m:nullable MMethodDef(MMethodDef)> */
1376 if (unlikely(var14 == NULL)) {
1377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
1378 PRINT_ERROR(" (%s:%d)\n", FILE_nit__model, 2013);
1379 show_backtrace(1);
1380 }
1381 var12 = var14;
1382 RET_LABEL13:(void)0;
1383 }
1384 }
1385 {
1386 { /* Inline model#MMethod#is_init (var12) on <var12:MProperty(MMethod)> */
1387 var17 = var12->attrs[COLOR_nit__model__MMethod___is_init].s; /* _is_init on <var12:MProperty(MMethod)> */
1388 var15 = var17;
1389 RET_LABEL16:(void)0;
1390 }
1391 }
1392 var5 = var15;
1393 } else {
1394 var5 = var_;
1395 }
1396 var_18 = var5;
1397 if (var5){
1398 {
1399 { /* Inline model#MMethodDef#is_extern (var_m) on <var_m:nullable MMethodDef(MMethodDef)> */
1400 var21 = var_m->attrs[COLOR_nit__model__MMethodDef___is_extern].s; /* _is_extern on <var_m:nullable MMethodDef(MMethodDef)> */
1401 var19 = var21;
1402 RET_LABEL20:(void)0;
1403 }
1404 }
1405 var4 = var19;
1406 } else {
1407 var4 = var_18;
1408 }
1409 if (var4){
1410 var22 = 0;
1411 var = var22;
1412 goto RET_LABEL;
1413 } else {
1414 }
1415 {
1416 var23 = ((short int (*)(val* self))(self->class->vft[COLOR_nit__separate_compiler___AMethPropdef___nit__abstract_compiler__APropdef__can_inline]))(self) /* can_inline on <self:AMethPropdef>*/;
1417 }
1418 var = var23;
1419 goto RET_LABEL;
1420 RET_LABEL:;
1421 return var;
1422 }