example: intro an emscripten wrapper around hello world
[nit.git] / c_src / nitni_utilities.sep.1.c
1 #include "nitni_utilities.sep.0.h"
2 /* method nitni_utilities#MMethod#build_cname for (self: MMethod, MClassType, MModule, nullable String, SignatureLength): String */
3 val* nitni_utilities__MMethod__build_cname(val* self, val* p0, val* p1, val* p2, val* p3) {
4 val* var /* : String */;
5 val* var_recv_mtype /* var recv_mtype: MClassType */;
6 val* var_from_mmodule /* var from_mmodule: MModule */;
7 val* var_suffix /* var suffix: nullable String */;
8 val* var_length /* var length: SignatureLength */;
9 short int var1 /* : Bool */;
10 short int var2 /* : Bool */;
11 val* var3 /* : String */;
12 static val* varonce;
13 val* var4 /* : String */;
14 char* var5 /* : NativeString */;
15 long var6 /* : Int */;
16 val* var7 /* : String */;
17 short int var8 /* : Bool */;
18 val* var9 /* : String */;
19 static val* varonce10;
20 val* var11 /* : String */;
21 char* var12 /* : NativeString */;
22 long var13 /* : Int */;
23 val* var14 /* : String */;
24 short int var15 /* : Bool */;
25 static val* varonce16;
26 val* var17 /* : String */;
27 char* var18 /* : NativeString */;
28 long var19 /* : Int */;
29 val* var20 /* : String */;
30 val* var21 /* : String */;
31 val* var22 /* : Array[Object] */;
32 long var23 /* : Int */;
33 val* var24 /* : NativeArray[Object] */;
34 val* var25 /* : String */;
35 val* var_cname /* var cname: nullable Object */;
36 static val* varonce26;
37 val* var27 /* : String */;
38 char* var28 /* : NativeString */;
39 long var29 /* : Int */;
40 val* var30 /* : String */;
41 val* var31 /* : String */;
42 static val* varonce32;
43 val* var33 /* : String */;
44 char* var34 /* : NativeString */;
45 long var35 /* : Int */;
46 val* var36 /* : String */;
47 val* var37 /* : String */;
48 val* var38 /* : Array[Object] */;
49 long var39 /* : Int */;
50 val* var40 /* : NativeArray[Object] */;
51 val* var41 /* : String */;
52 val* var42 /* : String */;
53 static val* varonce43;
54 val* var44 /* : String */;
55 char* var45 /* : NativeString */;
56 long var46 /* : Int */;
57 val* var47 /* : String */;
58 val* var48 /* : String */;
59 val* var49 /* : Array[Object] */;
60 long var50 /* : Int */;
61 val* var51 /* : NativeArray[Object] */;
62 val* var52 /* : String */;
63 val* var53 /* : null */;
64 short int var54 /* : Bool */;
65 val* var55 /* : Array[Object] */;
66 long var56 /* : Int */;
67 val* var_ /* var : Array[Object] */;
68 static val* varonce57;
69 val* var58 /* : String */;
70 char* var59 /* : NativeString */;
71 long var60 /* : Int */;
72 val* var61 /* : String */;
73 static val* varonce62;
74 val* var63 /* : String */;
75 char* var64 /* : NativeString */;
76 long var65 /* : Int */;
77 val* var66 /* : String */;
78 static val* varonce67;
79 val* var68 /* : String */;
80 char* var69 /* : NativeString */;
81 long var70 /* : Int */;
82 val* var71 /* : String */;
83 val* var72 /* : String */;
84 short int var73 /* : Bool */;
85 val* var74 /* : Array[Object] */;
86 long var75 /* : Int */;
87 val* var_76 /* var : Array[Object] */;
88 static val* varonce77;
89 val* var78 /* : String */;
90 char* var79 /* : NativeString */;
91 long var80 /* : Int */;
92 val* var81 /* : String */;
93 val* var82 /* : String */;
94 static val* varonce83;
95 val* var84 /* : String */;
96 char* var85 /* : NativeString */;
97 long var86 /* : Int */;
98 val* var87 /* : String */;
99 static val* varonce88;
100 val* var89 /* : String */;
101 char* var90 /* : NativeString */;
102 long var91 /* : Int */;
103 val* var92 /* : String */;
104 val* var93 /* : String */;
105 var_recv_mtype = p0;
106 var_from_mmodule = p1;
107 var_suffix = p2;
108 var_length = p3;
109 var1 = ((short int (*)(val*))(self->class->vft[COLOR_model__MMethod__is_init]))(self) /* is_init on <self:MMethod>*/;
110 if (var1){
111 var3 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__name]))(self) /* name on <self:MMethod>*/;
112 if (varonce) {
113 var4 = varonce;
114 } else {
115 var5 = "init";
116 var6 = 4;
117 var7 = string__NativeString__to_s_with_length(var5, var6);
118 var4 = var7;
119 varonce = var4;
120 }
121 var8 = ((short int (*)(val*, val*))(var3->class->vft[COLOR_kernel__Object___61d_61d]))(var3, var4) /* == on <var3:String>*/;
122 if (var8) {
123 var2 = 1;
124 } else {
125 var9 = ((val* (*)(val*))(self->class->vft[COLOR_model__MProperty__name]))(self) /* name on <self:MMethod>*/;
126 if (varonce10) {
127 var11 = varonce10;
128 } else {
129 var12 = "new";
130 var13 = 3;
131 var14 = string__NativeString__to_s_with_length(var12, var13);
132 var11 = var14;
133 varonce10 = var11;
134 }
135 var15 = ((short int (*)(val*, val*))(var9->class->vft[COLOR_kernel__Object___61d_61d]))(var9, var11) /* == on <var9:String>*/;
136 var2 = var15;
137 }
138 if (var2){
139 if (varonce16) {
140 var17 = varonce16;
141 } else {
142 var18 = "new_";
143 var19 = 4;
144 var20 = string__NativeString__to_s_with_length(var18, var19);
145 var17 = var20;
146 varonce16 = var17;
147 }
148 var21 = ((val* (*)(val*))(var_recv_mtype->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var_recv_mtype) /* mangled_cname on <var_recv_mtype:MClassType>*/;
149 var22 = NEW_array__Array(&type_array__Arraykernel__Object);
150 { /* var22 = array_instance Array[Object] */
151 var23 = 2;
152 var24 = NEW_array__NativeArray(var23, &type_array__NativeArraykernel__Object);
153 ((struct instance_array__NativeArray*)var24)->values[0] = (val*) var17;
154 ((struct instance_array__NativeArray*)var24)->values[1] = (val*) var21;
155 ((void (*)(val*, val*, long))(var22->class->vft[COLOR_array__Array__with_native]))(var22, var24, var23) /* with_native on <var22:Array[Object]>*/;
156 }
157 var25 = ((val* (*)(val*))(var22->class->vft[COLOR_string__Object__to_s]))(var22) /* to_s on <var22:Array[Object]>*/;
158 var_cname = var25;
159 } else {
160 if (varonce26) {
161 var27 = varonce26;
162 } else {
163 var28 = "new_";
164 var29 = 4;
165 var30 = string__NativeString__to_s_with_length(var28, var29);
166 var27 = var30;
167 varonce26 = var27;
168 }
169 var31 = ((val* (*)(val*))(var_recv_mtype->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var_recv_mtype) /* mangled_cname on <var_recv_mtype:MClassType>*/;
170 if (varonce32) {
171 var33 = varonce32;
172 } else {
173 var34 = "_";
174 var35 = 1;
175 var36 = string__NativeString__to_s_with_length(var34, var35);
176 var33 = var36;
177 varonce32 = var33;
178 }
179 var37 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_base__MMethod__short_cname]))(self) /* short_cname on <self:MMethod>*/;
180 var38 = NEW_array__Array(&type_array__Arraykernel__Object);
181 { /* var38 = array_instance Array[Object] */
182 var39 = 4;
183 var40 = NEW_array__NativeArray(var39, &type_array__NativeArraykernel__Object);
184 ((struct instance_array__NativeArray*)var40)->values[0] = (val*) var27;
185 ((struct instance_array__NativeArray*)var40)->values[1] = (val*) var31;
186 ((struct instance_array__NativeArray*)var40)->values[2] = (val*) var33;
187 ((struct instance_array__NativeArray*)var40)->values[3] = (val*) var37;
188 ((void (*)(val*, val*, long))(var38->class->vft[COLOR_array__Array__with_native]))(var38, var40, var39) /* with_native on <var38:Array[Object]>*/;
189 }
190 var41 = ((val* (*)(val*))(var38->class->vft[COLOR_string__Object__to_s]))(var38) /* to_s on <var38:Array[Object]>*/;
191 var_cname = var41;
192 }
193 } else {
194 var42 = ((val* (*)(val*))(var_recv_mtype->class->vft[COLOR_nitni_base__MType__mangled_cname]))(var_recv_mtype) /* mangled_cname on <var_recv_mtype:MClassType>*/;
195 if (varonce43) {
196 var44 = varonce43;
197 } else {
198 var45 = "_";
199 var46 = 1;
200 var47 = string__NativeString__to_s_with_length(var45, var46);
201 var44 = var47;
202 varonce43 = var44;
203 }
204 var48 = ((val* (*)(val*))(self->class->vft[COLOR_nitni_base__MMethod__short_cname]))(self) /* short_cname on <self:MMethod>*/;
205 var49 = NEW_array__Array(&type_array__Arraykernel__Object);
206 { /* var49 = array_instance Array[Object] */
207 var50 = 3;
208 var51 = NEW_array__NativeArray(var50, &type_array__NativeArraykernel__Object);
209 ((struct instance_array__NativeArray*)var51)->values[0] = (val*) var42;
210 ((struct instance_array__NativeArray*)var51)->values[1] = (val*) var44;
211 ((struct instance_array__NativeArray*)var51)->values[2] = (val*) var48;
212 ((void (*)(val*, val*, long))(var49->class->vft[COLOR_array__Array__with_native]))(var49, var51, var50) /* with_native on <var49:Array[Object]>*/;
213 }
214 var52 = ((val* (*)(val*))(var49->class->vft[COLOR_string__Object__to_s]))(var49) /* to_s on <var49:Array[Object]>*/;
215 var_cname = var52;
216 }
217 var53 = NULL;
218 if (var_suffix == NULL) {
219 var54 = 0; /* is null */
220 } else {
221 var54 = 1; /* arg is null and recv is not */
222 }
223 if (var54){
224 var55 = NEW_array__Array(&type_array__Arraykernel__Object);
225 var56 = 5;
226 ((void (*)(val*, long))(var55->class->vft[COLOR_array__Array__with_capacity]))(var55, var56) /* with_capacity on <var55:Array[Object]>*/;
227 var_ = var55;
228 if (varonce57) {
229 var58 = varonce57;
230 } else {
231 var59 = "";
232 var60 = 0;
233 var61 = string__NativeString__to_s_with_length(var59, var60);
234 var58 = var61;
235 varonce57 = var58;
236 }
237 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var58) /* add on <var_:Array[Object]>*/;
238 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_cname) /* add on <var_:Array[Object]>*/;
239 if (varonce62) {
240 var63 = varonce62;
241 } else {
242 var64 = "";
243 var65 = 0;
244 var66 = string__NativeString__to_s_with_length(var64, var65);
245 var63 = var66;
246 varonce62 = var63;
247 }
248 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var63) /* add on <var_:Array[Object]>*/;
249 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_suffix) /* add on <var_:Array[Object]>*/;
250 if (varonce67) {
251 var68 = varonce67;
252 } else {
253 var69 = "";
254 var70 = 0;
255 var71 = string__NativeString__to_s_with_length(var69, var70);
256 var68 = var71;
257 varonce67 = var68;
258 }
259 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var68) /* add on <var_:Array[Object]>*/;
260 var72 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
261 var_cname = var72;
262 } else {
263 }
264 var73 = ((short int (*)(val*))(var_length->class->vft[COLOR_nitni_utilities__SignatureLength__long]))(var_length) /* long on <var_length:SignatureLength>*/;
265 if (var73){
266 var74 = NEW_array__Array(&type_array__Arraykernel__Object);
267 var75 = 5;
268 ((void (*)(val*, long))(var74->class->vft[COLOR_array__Array__with_capacity]))(var74, var75) /* with_capacity on <var74:Array[Object]>*/;
269 var_76 = var74;
270 if (varonce77) {
271 var78 = varonce77;
272 } else {
273 var79 = "";
274 var80 = 0;
275 var81 = string__NativeString__to_s_with_length(var79, var80);
276 var78 = var81;
277 varonce77 = var78;
278 }
279 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var78) /* add on <var_76:Array[Object]>*/;
280 var82 = ((val* (*)(val*))(var_from_mmodule->class->vft[COLOR_mmodule__MModule__name]))(var_from_mmodule) /* name on <var_from_mmodule:MModule>*/;
281 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var82) /* add on <var_76:Array[Object]>*/;
282 if (varonce83) {
283 var84 = varonce83;
284 } else {
285 var85 = "___";
286 var86 = 3;
287 var87 = string__NativeString__to_s_with_length(var85, var86);
288 var84 = var87;
289 varonce83 = var84;
290 }
291 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var84) /* add on <var_76:Array[Object]>*/;
292 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var_cname) /* add on <var_76:Array[Object]>*/;
293 if (varonce88) {
294 var89 = varonce88;
295 } else {
296 var90 = "";
297 var91 = 0;
298 var92 = string__NativeString__to_s_with_length(var90, var91);
299 var89 = var92;
300 varonce88 = var89;
301 }
302 ((void (*)(val*, val*))(var_76->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_76, var89) /* add on <var_76:Array[Object]>*/;
303 var93 = ((val* (*)(val*))(var_76->class->vft[COLOR_string__Object__to_s]))(var_76) /* to_s on <var_76:Array[Object]>*/;
304 var_cname = var93;
305 } else {
306 }
307 var = var_cname;
308 goto RET_LABEL;
309 RET_LABEL:;
310 return var;
311 }
312 /* method nitni_utilities#MMethod#build_cname for (self: Object, MClassType, MModule, nullable String, SignatureLength): String */
313 val* VIRTUAL_nitni_utilities__MMethod__build_cname(val* self, val* p0, val* p1, val* p2, val* p3) {
314 val* var /* : String */;
315 val* var1 /* : String */;
316 var1 = nitni_utilities__MMethod__build_cname(self, p0, p1, p2, p3);
317 var = var1;
318 RET_LABEL:;
319 return var;
320 }
321 /* method nitni_utilities#MMethod#build_csignature for (self: MMethod, MClassType, MModule, nullable String, SignatureLength, CallContext): String */
322 val* nitni_utilities__MMethod__build_csignature(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
323 val* var /* : String */;
324 val* var_recv_mtype /* var recv_mtype: MClassType */;
325 val* var_from_mmodule /* var from_mmodule: MModule */;
326 val* var_suffix /* var suffix: nullable String */;
327 val* var_length /* var length: SignatureLength */;
328 val* var_call_context /* var call_context: CallContext */;
329 val* var1 /* : MPropDef */;
330 val* var_mmethoddef /* var mmethoddef: MMethodDef */;
331 val* var2 /* : nullable MSignature */;
332 val* var_signature /* var signature: nullable MSignature */;
333 val* var3 /* : null */;
334 short int var4 /* : Bool */;
335 short int var5 /* : Bool */;
336 val* var6 /* : String */;
337 val* var_creturn_type /* var creturn_type: nullable Object */;
338 val* var7 /* : nullable MType */;
339 val* var8 /* : null */;
340 short int var9 /* : Bool */;
341 val* var10 /* : nullable MType */;
342 val* var_ret_mtype /* var ret_mtype: nullable MType */;
343 short int var11 /* : Bool */;
344 val* var12 /* : MType */;
345 val* var13 /* : String */;
346 static val* varonce;
347 val* var14 /* : String */;
348 char* var15 /* : NativeString */;
349 long var16 /* : Int */;
350 val* var17 /* : String */;
351 val* var18 /* : String */;
352 val* var_cname /* var cname: String */;
353 val* var19 /* : List[String] */;
354 val* var_cparams /* var cparams: List[String] */;
355 short int var20 /* : Bool */;
356 short int var21 /* : Bool */;
357 val* var22 /* : String */;
358 static val* varonce23;
359 val* var24 /* : String */;
360 char* var25 /* : NativeString */;
361 long var26 /* : Int */;
362 val* var27 /* : String */;
363 val* var28 /* : Array[Object] */;
364 long var29 /* : Int */;
365 val* var30 /* : NativeArray[Object] */;
366 val* var31 /* : String */;
367 val* var32 /* : Array[MParameter] */;
368 val* var33 /* : Iterator[nullable Object] */;
369 short int var34 /* : Bool */;
370 val* var35 /* : nullable Object */;
371 val* var_p /* var p: MParameter */;
372 val* var36 /* : MType */;
373 short int var37 /* : Bool */;
374 val* var38 /* : MType */;
375 val* var_param_mtype /* var param_mtype: MType */;
376 val* var39 /* : String */;
377 static val* varonce40;
378 val* var41 /* : String */;
379 char* var42 /* : NativeString */;
380 long var43 /* : Int */;
381 val* var44 /* : String */;
382 val* var45 /* : String */;
383 val* var46 /* : Array[Object] */;
384 long var47 /* : Int */;
385 val* var48 /* : NativeArray[Object] */;
386 val* var49 /* : String */;
387 val* var50 /* : Array[Object] */;
388 long var51 /* : Int */;
389 val* var_ /* var : Array[Object] */;
390 static val* varonce52;
391 val* var53 /* : String */;
392 char* var54 /* : NativeString */;
393 long var55 /* : Int */;
394 val* var56 /* : String */;
395 static val* varonce57;
396 val* var58 /* : String */;
397 char* var59 /* : NativeString */;
398 long var60 /* : Int */;
399 val* var61 /* : String */;
400 static val* varonce62;
401 val* var63 /* : String */;
402 char* var64 /* : NativeString */;
403 long var65 /* : Int */;
404 val* var66 /* : String */;
405 static val* varonce67;
406 val* var68 /* : String */;
407 char* var69 /* : NativeString */;
408 long var70 /* : Int */;
409 val* var71 /* : String */;
410 val* var72 /* : String */;
411 static val* varonce73;
412 val* var74 /* : String */;
413 char* var75 /* : NativeString */;
414 long var76 /* : Int */;
415 val* var77 /* : String */;
416 val* var78 /* : String */;
417 var_recv_mtype = p0;
418 var_from_mmodule = p1;
419 var_suffix = p2;
420 var_length = p3;
421 var_call_context = p4;
422 var1 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MProperty__lookup_first_definition]))(self, var_from_mmodule, var_recv_mtype) /* lookup_first_definition on <self:MMethod>*/;
423 var_mmethoddef = var1;
424 var2 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mmethoddef) /* msignature on <var_mmethoddef:MMethodDef>*/;
425 var_signature = var2;
426 var3 = NULL;
427 if (var_signature == NULL) {
428 var4 = 0; /* is null */
429 } else {
430 var4 = 1; /* arg is null and recv is not */
431 }
432 if (!var4) {
433 fprintf(stderr, "Runtime error: %s", "Assert failed");
434 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_utilities.nit", 58);
435 show_backtrace(1);
436 }
437 var5 = ((short int (*)(val*))(self->class->vft[COLOR_model__MMethod__is_init]))(self) /* is_init on <self:MMethod>*/;
438 if (var5){
439 var6 = ((val* (*)(val*, val*))(var_call_context->class->vft[COLOR_nitni_utilities__CallContext__name_mtype]))(var_call_context, var_recv_mtype) /* name_mtype on <var_call_context:CallContext>*/;
440 var_creturn_type = var6;
441 } else {
442 var7 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__return_mtype]))(var_signature) /* return_mtype on <var_signature:nullable MSignature(MSignature)>*/;
443 var8 = NULL;
444 if (var7 == NULL) {
445 var9 = 0; /* is null */
446 } else {
447 var9 = 1; /* arg is null and recv is not */
448 }
449 if (var9){
450 var10 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__return_mtype]))(var_signature) /* return_mtype on <var_signature:nullable MSignature(MSignature)>*/;
451 var_ret_mtype = var10;
452 var11 = 1;
453 if (var_ret_mtype == NULL) {
454 fprintf(stderr, "Runtime error: %s", "Receiver is null");
455 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_utilities.nit", 65);
456 show_backtrace(1);
457 } else {
458 var12 = ((val* (*)(val*, val*, val*, val*, short int))(var_ret_mtype->class->vft[COLOR_model__MType__resolve_for]))(var_ret_mtype, var_recv_mtype, var_recv_mtype, var_from_mmodule, var11) /* resolve_for on <var_ret_mtype:nullable MType>*/;
459 }
460 var_ret_mtype = var12;
461 var13 = ((val* (*)(val*, val*))(var_call_context->class->vft[COLOR_nitni_utilities__CallContext__name_mtype]))(var_call_context, var_ret_mtype) /* name_mtype on <var_call_context:CallContext>*/;
462 var_creturn_type = var13;
463 } else {
464 if (varonce) {
465 var14 = varonce;
466 } else {
467 var15 = "void";
468 var16 = 4;
469 var17 = string__NativeString__to_s_with_length(var15, var16);
470 var14 = var17;
471 varonce = var14;
472 }
473 var_creturn_type = var14;
474 }
475 }
476 var18 = ((val* (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_nitni_utilities__MMethod__build_cname]))(self, var_recv_mtype, var_from_mmodule, var_suffix, var_length) /* build_cname on <self:MMethod>*/;
477 var_cname = var18;
478 var19 = NEW_list__List(&type_list__Liststring__String);
479 ((void (*)(val*))(var19->class->vft[COLOR_list__List__init]))(var19) /* init on <var19:List[String]>*/;
480 var_cparams = var19;
481 var20 = ((short int (*)(val*))(self->class->vft[COLOR_model__MMethod__is_init]))(self) /* is_init on <self:MMethod>*/;
482 var21 = !var20;
483 if (var21){
484 var22 = ((val* (*)(val*, val*))(var_call_context->class->vft[COLOR_nitni_utilities__CallContext__name_mtype]))(var_call_context, var_recv_mtype) /* name_mtype on <var_call_context:CallContext>*/;
485 if (varonce23) {
486 var24 = varonce23;
487 } else {
488 var25 = " recv";
489 var26 = 5;
490 var27 = string__NativeString__to_s_with_length(var25, var26);
491 var24 = var27;
492 varonce23 = var24;
493 }
494 var28 = NEW_array__Array(&type_array__Arraykernel__Object);
495 { /* var28 = array_instance Array[Object] */
496 var29 = 2;
497 var30 = NEW_array__NativeArray(var29, &type_array__NativeArraykernel__Object);
498 ((struct instance_array__NativeArray*)var30)->values[0] = (val*) var22;
499 ((struct instance_array__NativeArray*)var30)->values[1] = (val*) var24;
500 ((void (*)(val*, val*, long))(var28->class->vft[COLOR_array__Array__with_native]))(var28, var30, var29) /* with_native on <var28:Array[Object]>*/;
501 }
502 var31 = ((val* (*)(val*))(var28->class->vft[COLOR_string__Object__to_s]))(var28) /* to_s on <var28:Array[Object]>*/;
503 ((void (*)(val*, val*))(var_cparams->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_cparams, var31) /* add on <var_cparams:List[String]>*/;
504 } else {
505 }
506 var32 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__mparameters]))(var_signature) /* mparameters on <var_signature:nullable MSignature(MSignature)>*/;
507 var33 = ((val* (*)(val*))(var32->class->vft[COLOR_abstract_collection__Collection__iterator]))(var32) /* iterator on <var32:Array[MParameter]>*/;
508 for(;;) {
509 var34 = ((short int (*)(val*))(var33->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var33) /* is_ok on <var33:Iterator[nullable Object]>*/;
510 if(!var34) break;
511 var35 = ((val* (*)(val*))(var33->class->vft[COLOR_abstract_collection__Iterator__item]))(var33) /* item on <var33:Iterator[nullable Object]>*/;
512 var_p = var35;
513 var36 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on <var_p:MParameter>*/;
514 var37 = 1;
515 var38 = ((val* (*)(val*, val*, val*, val*, short int))(var36->class->vft[COLOR_model__MType__resolve_for]))(var36, var_recv_mtype, var_recv_mtype, var_from_mmodule, var37) /* resolve_for on <var36:MType>*/;
516 var_param_mtype = var38;
517 var39 = ((val* (*)(val*, val*))(var_call_context->class->vft[COLOR_nitni_utilities__CallContext__name_mtype]))(var_call_context, var_param_mtype) /* name_mtype on <var_call_context:CallContext>*/;
518 if (varonce40) {
519 var41 = varonce40;
520 } else {
521 var42 = " ";
522 var43 = 1;
523 var44 = string__NativeString__to_s_with_length(var42, var43);
524 var41 = var44;
525 varonce40 = var41;
526 }
527 var45 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__name]))(var_p) /* name on <var_p:MParameter>*/;
528 var46 = NEW_array__Array(&type_array__Arraykernel__Object);
529 { /* var46 = array_instance Array[Object] */
530 var47 = 3;
531 var48 = NEW_array__NativeArray(var47, &type_array__NativeArraykernel__Object);
532 ((struct instance_array__NativeArray*)var48)->values[0] = (val*) var39;
533 ((struct instance_array__NativeArray*)var48)->values[1] = (val*) var41;
534 ((struct instance_array__NativeArray*)var48)->values[2] = (val*) var45;
535 ((void (*)(val*, val*, long))(var46->class->vft[COLOR_array__Array__with_native]))(var46, var48, var47) /* with_native on <var46:Array[Object]>*/;
536 }
537 var49 = ((val* (*)(val*))(var46->class->vft[COLOR_string__Object__to_s]))(var46) /* to_s on <var46:Array[Object]>*/;
538 ((void (*)(val*, val*))(var_cparams->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_cparams, var49) /* add on <var_cparams:List[String]>*/;
539 CONTINUE_label: (void)0;
540 ((void (*)(val*))(var33->class->vft[COLOR_abstract_collection__Iterator__next]))(var33) /* next on <var33:Iterator[nullable Object]>*/;
541 }
542 BREAK_label: (void)0;
543 var50 = NEW_array__Array(&type_array__Arraykernel__Object);
544 var51 = 7;
545 ((void (*)(val*, long))(var50->class->vft[COLOR_array__Array__with_capacity]))(var50, var51) /* with_capacity on <var50:Array[Object]>*/;
546 var_ = var50;
547 if (varonce52) {
548 var53 = varonce52;
549 } else {
550 var54 = "";
551 var55 = 0;
552 var56 = string__NativeString__to_s_with_length(var54, var55);
553 var53 = var56;
554 varonce52 = var53;
555 }
556 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var53) /* add on <var_:Array[Object]>*/;
557 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_creturn_type) /* add on <var_:Array[Object]>*/;
558 if (varonce57) {
559 var58 = varonce57;
560 } else {
561 var59 = " ";
562 var60 = 1;
563 var61 = string__NativeString__to_s_with_length(var59, var60);
564 var58 = var61;
565 varonce57 = var58;
566 }
567 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var58) /* add on <var_:Array[Object]>*/;
568 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_cname) /* add on <var_:Array[Object]>*/;
569 if (varonce62) {
570 var63 = varonce62;
571 } else {
572 var64 = "( ";
573 var65 = 2;
574 var66 = string__NativeString__to_s_with_length(var64, var65);
575 var63 = var66;
576 varonce62 = var63;
577 }
578 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var63) /* add on <var_:Array[Object]>*/;
579 if (varonce67) {
580 var68 = varonce67;
581 } else {
582 var69 = ", ";
583 var70 = 2;
584 var71 = string__NativeString__to_s_with_length(var69, var70);
585 var68 = var71;
586 varonce67 = var68;
587 }
588 var72 = ((val* (*)(val*, val*))(var_cparams->class->vft[COLOR_string__Collection__join]))(var_cparams, var68) /* join on <var_cparams:List[String]>*/;
589 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var72) /* add on <var_:Array[Object]>*/;
590 if (varonce73) {
591 var74 = varonce73;
592 } else {
593 var75 = " )";
594 var76 = 2;
595 var77 = string__NativeString__to_s_with_length(var75, var76);
596 var74 = var77;
597 varonce73 = var74;
598 }
599 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var74) /* add on <var_:Array[Object]>*/;
600 var78 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
601 var = var78;
602 goto RET_LABEL;
603 RET_LABEL:;
604 return var;
605 }
606 /* method nitni_utilities#MMethod#build_csignature for (self: Object, MClassType, MModule, nullable String, SignatureLength, CallContext): String */
607 val* VIRTUAL_nitni_utilities__MMethod__build_csignature(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
608 val* var /* : String */;
609 val* var1 /* : String */;
610 var1 = nitni_utilities__MMethod__build_csignature(self, p0, p1, p2, p3, p4);
611 var = var1;
612 RET_LABEL:;
613 return var;
614 }
615 /* method nitni_utilities#MMethod#build_ccall for (self: MMethod, MClassType, MModule, nullable String, SignatureLength, CallContext, nullable String): String */
616 val* nitni_utilities__MMethod__build_ccall(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
617 val* var /* : String */;
618 val* var_recv_mtype /* var recv_mtype: MClassType */;
619 val* var_from_mmodule /* var from_mmodule: MModule */;
620 val* var_suffix /* var suffix: nullable String */;
621 val* var_length /* var length: SignatureLength */;
622 val* var_call_context /* var call_context: CallContext */;
623 val* var_param_suffix /* var param_suffix: nullable String */;
624 val* var1 /* : null */;
625 short int var2 /* : Bool */;
626 static val* varonce;
627 val* var3 /* : String */;
628 char* var4 /* : NativeString */;
629 long var5 /* : Int */;
630 val* var6 /* : String */;
631 val* var7 /* : MPropDef */;
632 val* var_mmethoddef /* var mmethoddef: MMethodDef */;
633 val* var8 /* : nullable MSignature */;
634 val* var_signature /* var signature: nullable MSignature */;
635 val* var9 /* : null */;
636 short int var10 /* : Bool */;
637 val* var11 /* : null */;
638 val* var_return_mtype /* var return_mtype: nullable Object */;
639 short int var12 /* : Bool */;
640 val* var13 /* : nullable MType */;
641 val* var14 /* : null */;
642 short int var15 /* : Bool */;
643 val* var16 /* : nullable MType */;
644 val* var17 /* : String */;
645 val* var_cname /* var cname: String */;
646 val* var18 /* : List[String] */;
647 val* var_cparams /* var cparams: List[String] */;
648 short int var19 /* : Bool */;
649 short int var20 /* : Bool */;
650 static val* varonce21;
651 val* var22 /* : String */;
652 char* var23 /* : NativeString */;
653 long var24 /* : Int */;
654 val* var25 /* : String */;
655 val* var26 /* : Array[Object] */;
656 long var27 /* : Int */;
657 val* var28 /* : NativeArray[Object] */;
658 val* var29 /* : String */;
659 val* var30 /* : String */;
660 val* var31 /* : Array[MParameter] */;
661 val* var32 /* : Iterator[nullable Object] */;
662 short int var33 /* : Bool */;
663 val* var34 /* : nullable Object */;
664 val* var_p /* var p: MParameter */;
665 val* var35 /* : MType */;
666 val* var36 /* : String */;
667 val* var37 /* : Array[Object] */;
668 long var38 /* : Int */;
669 val* var39 /* : NativeArray[Object] */;
670 val* var40 /* : String */;
671 val* var41 /* : String */;
672 static val* varonce42;
673 val* var43 /* : String */;
674 char* var44 /* : NativeString */;
675 long var45 /* : Int */;
676 val* var46 /* : String */;
677 val* var47 /* : String */;
678 val* var_joined_cparams /* var joined_cparams: String */;
679 val* var48 /* : Array[Object] */;
680 long var49 /* : Int */;
681 val* var_ /* var : Array[Object] */;
682 static val* varonce50;
683 val* var51 /* : String */;
684 char* var52 /* : NativeString */;
685 long var53 /* : Int */;
686 val* var54 /* : String */;
687 static val* varonce55;
688 val* var56 /* : String */;
689 char* var57 /* : NativeString */;
690 long var58 /* : Int */;
691 val* var59 /* : String */;
692 static val* varonce60;
693 val* var61 /* : String */;
694 char* var62 /* : NativeString */;
695 long var63 /* : Int */;
696 val* var64 /* : String */;
697 val* var65 /* : String */;
698 val* var_ccall /* var ccall: String */;
699 val* var66 /* : null */;
700 short int var67 /* : Bool */;
701 val* var68 /* : Array[Object] */;
702 long var69 /* : Int */;
703 val* var_70 /* var : Array[Object] */;
704 static val* varonce71;
705 val* var72 /* : String */;
706 char* var73 /* : NativeString */;
707 long var74 /* : Int */;
708 val* var75 /* : String */;
709 val* var76 /* : String */;
710 static val* varonce77;
711 val* var78 /* : String */;
712 char* var79 /* : NativeString */;
713 long var80 /* : Int */;
714 val* var81 /* : String */;
715 val* var82 /* : String */;
716 val* var83 /* : Array[Object] */;
717 long var84 /* : Int */;
718 val* var_85 /* var : Array[Object] */;
719 static val* varonce86;
720 val* var87 /* : String */;
721 char* var88 /* : NativeString */;
722 long var89 /* : Int */;
723 val* var90 /* : String */;
724 static val* varonce91;
725 val* var92 /* : String */;
726 char* var93 /* : NativeString */;
727 long var94 /* : Int */;
728 val* var95 /* : String */;
729 val* var96 /* : String */;
730 var_recv_mtype = p0;
731 var_from_mmodule = p1;
732 var_suffix = p2;
733 var_length = p3;
734 var_call_context = p4;
735 var_param_suffix = p5;
736 var1 = NULL;
737 if (var_param_suffix == NULL) {
738 var2 = 1; /* is null */
739 } else {
740 var2 = 0; /* arg is null but recv is not */
741 }
742 if (var2){
743 if (varonce) {
744 var3 = varonce;
745 } else {
746 var4 = "";
747 var5 = 0;
748 var6 = string__NativeString__to_s_with_length(var4, var5);
749 var3 = var6;
750 varonce = var3;
751 }
752 var_param_suffix = var3;
753 } else {
754 }
755 var7 = ((val* (*)(val*, val*, val*))(self->class->vft[COLOR_model__MProperty__lookup_first_definition]))(self, var_from_mmodule, var_recv_mtype) /* lookup_first_definition on <self:MMethod>*/;
756 var_mmethoddef = var7;
757 var8 = ((val* (*)(val*))(var_mmethoddef->class->vft[COLOR_model__MMethodDef__msignature]))(var_mmethoddef) /* msignature on <var_mmethoddef:MMethodDef>*/;
758 var_signature = var8;
759 var9 = NULL;
760 if (var_signature == NULL) {
761 var10 = 0; /* is null */
762 } else {
763 var10 = 1; /* arg is null and recv is not */
764 }
765 if (!var10) {
766 fprintf(stderr, "Runtime error: %s", "Assert failed");
767 fprintf(stderr, " (%s:%d)\n", "src/nitni/nitni_utilities.nit", 99);
768 show_backtrace(1);
769 }
770 var11 = NULL;
771 var_return_mtype = var11;
772 var12 = ((short int (*)(val*))(self->class->vft[COLOR_model__MMethod__is_init]))(self) /* is_init on <self:MMethod>*/;
773 if (var12){
774 var_return_mtype = var_recv_mtype;
775 } else {
776 var13 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__return_mtype]))(var_signature) /* return_mtype on <var_signature:nullable MSignature(MSignature)>*/;
777 var14 = NULL;
778 if (var13 == NULL) {
779 var15 = 0; /* is null */
780 } else {
781 var15 = 1; /* arg is null and recv is not */
782 }
783 if (var15){
784 var16 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__return_mtype]))(var_signature) /* return_mtype on <var_signature:nullable MSignature(MSignature)>*/;
785 var_return_mtype = var16;
786 } else {
787 }
788 }
789 var17 = ((val* (*)(val*, val*, val*, val*, val*))(self->class->vft[COLOR_nitni_utilities__MMethod__build_cname]))(self, var_recv_mtype, var_from_mmodule, var_suffix, var_length) /* build_cname on <self:MMethod>*/;
790 var_cname = var17;
791 var18 = NEW_list__List(&type_list__Liststring__String);
792 ((void (*)(val*))(var18->class->vft[COLOR_list__List__init]))(var18) /* init on <var18:List[String]>*/;
793 var_cparams = var18;
794 var19 = ((short int (*)(val*))(self->class->vft[COLOR_model__MMethod__is_init]))(self) /* is_init on <self:MMethod>*/;
795 var20 = !var19;
796 if (var20){
797 if (varonce21) {
798 var22 = varonce21;
799 } else {
800 var23 = "recv";
801 var24 = 4;
802 var25 = string__NativeString__to_s_with_length(var23, var24);
803 var22 = var25;
804 varonce21 = var22;
805 }
806 var26 = NEW_array__Array(&type_array__Arraykernel__Object);
807 { /* var26 = array_instance Array[Object] */
808 var27 = 2;
809 var28 = NEW_array__NativeArray(var27, &type_array__NativeArraykernel__Object);
810 ((struct instance_array__NativeArray*)var28)->values[0] = (val*) var22;
811 ((struct instance_array__NativeArray*)var28)->values[1] = (val*) var_param_suffix;
812 ((void (*)(val*, val*, long))(var26->class->vft[COLOR_array__Array__with_native]))(var26, var28, var27) /* with_native on <var26:Array[Object]>*/;
813 }
814 var29 = ((val* (*)(val*))(var26->class->vft[COLOR_string__Object__to_s]))(var26) /* to_s on <var26:Array[Object]>*/;
815 var30 = ((val* (*)(val*, val*, val*))(var_call_context->class->vft[COLOR_nitni_utilities__CallContext__cast_to]))(var_call_context, var_recv_mtype, var29) /* cast_to on <var_call_context:CallContext>*/;
816 ((void (*)(val*, val*))(var_cparams->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_cparams, var30) /* add on <var_cparams:List[String]>*/;
817 } else {
818 }
819 var31 = ((val* (*)(val*))(var_signature->class->vft[COLOR_model__MSignature__mparameters]))(var_signature) /* mparameters on <var_signature:nullable MSignature(MSignature)>*/;
820 var32 = ((val* (*)(val*))(var31->class->vft[COLOR_abstract_collection__Collection__iterator]))(var31) /* iterator on <var31:Array[MParameter]>*/;
821 for(;;) {
822 var33 = ((short int (*)(val*))(var32->class->vft[COLOR_abstract_collection__Iterator__is_ok]))(var32) /* is_ok on <var32:Iterator[nullable Object]>*/;
823 if(!var33) break;
824 var34 = ((val* (*)(val*))(var32->class->vft[COLOR_abstract_collection__Iterator__item]))(var32) /* item on <var32:Iterator[nullable Object]>*/;
825 var_p = var34;
826 var35 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__mtype]))(var_p) /* mtype on <var_p:MParameter>*/;
827 var36 = ((val* (*)(val*))(var_p->class->vft[COLOR_model__MParameter__name]))(var_p) /* name on <var_p:MParameter>*/;
828 var37 = NEW_array__Array(&type_array__Arraykernel__Object);
829 { /* var37 = array_instance Array[Object] */
830 var38 = 2;
831 var39 = NEW_array__NativeArray(var38, &type_array__NativeArraykernel__Object);
832 ((struct instance_array__NativeArray*)var39)->values[0] = (val*) var36;
833 ((struct instance_array__NativeArray*)var39)->values[1] = (val*) var_param_suffix;
834 ((void (*)(val*, val*, long))(var37->class->vft[COLOR_array__Array__with_native]))(var37, var39, var38) /* with_native on <var37:Array[Object]>*/;
835 }
836 var40 = ((val* (*)(val*))(var37->class->vft[COLOR_string__Object__to_s]))(var37) /* to_s on <var37:Array[Object]>*/;
837 var41 = ((val* (*)(val*, val*, val*))(var_call_context->class->vft[COLOR_nitni_utilities__CallContext__cast_to]))(var_call_context, var35, var40) /* cast_to on <var_call_context:CallContext>*/;
838 ((void (*)(val*, val*))(var_cparams->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_cparams, var41) /* add on <var_cparams:List[String]>*/;
839 CONTINUE_label: (void)0;
840 ((void (*)(val*))(var32->class->vft[COLOR_abstract_collection__Iterator__next]))(var32) /* next on <var32:Iterator[nullable Object]>*/;
841 }
842 BREAK_label: (void)0;
843 if (varonce42) {
844 var43 = varonce42;
845 } else {
846 var44 = ", ";
847 var45 = 2;
848 var46 = string__NativeString__to_s_with_length(var44, var45);
849 var43 = var46;
850 varonce42 = var43;
851 }
852 var47 = ((val* (*)(val*, val*))(var_cparams->class->vft[COLOR_string__Collection__join]))(var_cparams, var43) /* join on <var_cparams:List[String]>*/;
853 var_joined_cparams = var47;
854 var48 = NEW_array__Array(&type_array__Arraykernel__Object);
855 var49 = 5;
856 ((void (*)(val*, long))(var48->class->vft[COLOR_array__Array__with_capacity]))(var48, var49) /* with_capacity on <var48:Array[Object]>*/;
857 var_ = var48;
858 if (varonce50) {
859 var51 = varonce50;
860 } else {
861 var52 = "";
862 var53 = 0;
863 var54 = string__NativeString__to_s_with_length(var52, var53);
864 var51 = var54;
865 varonce50 = var51;
866 }
867 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var51) /* add on <var_:Array[Object]>*/;
868 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_cname) /* add on <var_:Array[Object]>*/;
869 if (varonce55) {
870 var56 = varonce55;
871 } else {
872 var57 = "(";
873 var58 = 1;
874 var59 = string__NativeString__to_s_with_length(var57, var58);
875 var56 = var59;
876 varonce55 = var56;
877 }
878 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var56) /* add on <var_:Array[Object]>*/;
879 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var_joined_cparams) /* add on <var_:Array[Object]>*/;
880 if (varonce60) {
881 var61 = varonce60;
882 } else {
883 var62 = ")";
884 var63 = 1;
885 var64 = string__NativeString__to_s_with_length(var62, var63);
886 var61 = var64;
887 varonce60 = var61;
888 }
889 ((void (*)(val*, val*))(var_->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_, var61) /* add on <var_:Array[Object]>*/;
890 var65 = ((val* (*)(val*))(var_->class->vft[COLOR_string__Object__to_s]))(var_) /* to_s on <var_:Array[Object]>*/;
891 var_ccall = var65;
892 var66 = NULL;
893 if (var_return_mtype == NULL) {
894 var67 = 0; /* is null */
895 } else {
896 var67 = 1; /* arg is null and recv is not */
897 }
898 if (var67){
899 var68 = NEW_array__Array(&type_array__Arraykernel__Object);
900 var69 = 3;
901 ((void (*)(val*, long))(var68->class->vft[COLOR_array__Array__with_capacity]))(var68, var69) /* with_capacity on <var68:Array[Object]>*/;
902 var_70 = var68;
903 if (varonce71) {
904 var72 = varonce71;
905 } else {
906 var73 = "return ";
907 var74 = 7;
908 var75 = string__NativeString__to_s_with_length(var73, var74);
909 var72 = var75;
910 varonce71 = var72;
911 }
912 ((void (*)(val*, val*))(var_70->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_70, var72) /* add on <var_70:Array[Object]>*/;
913 var76 = ((val* (*)(val*, val*, val*))(var_call_context->class->vft[COLOR_nitni_utilities__CallContext__cast_from]))(var_call_context, var_return_mtype, var_ccall) /* cast_from on <var_call_context:CallContext>*/;
914 ((void (*)(val*, val*))(var_70->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_70, var76) /* add on <var_70:Array[Object]>*/;
915 if (varonce77) {
916 var78 = varonce77;
917 } else {
918 var79 = ";";
919 var80 = 1;
920 var81 = string__NativeString__to_s_with_length(var79, var80);
921 var78 = var81;
922 varonce77 = var78;
923 }
924 ((void (*)(val*, val*))(var_70->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_70, var78) /* add on <var_70:Array[Object]>*/;
925 var82 = ((val* (*)(val*))(var_70->class->vft[COLOR_string__Object__to_s]))(var_70) /* to_s on <var_70:Array[Object]>*/;
926 var = var82;
927 goto RET_LABEL;
928 } else {
929 var83 = NEW_array__Array(&type_array__Arraykernel__Object);
930 var84 = 3;
931 ((void (*)(val*, long))(var83->class->vft[COLOR_array__Array__with_capacity]))(var83, var84) /* with_capacity on <var83:Array[Object]>*/;
932 var_85 = var83;
933 if (varonce86) {
934 var87 = varonce86;
935 } else {
936 var88 = "";
937 var89 = 0;
938 var90 = string__NativeString__to_s_with_length(var88, var89);
939 var87 = var90;
940 varonce86 = var87;
941 }
942 ((void (*)(val*, val*))(var_85->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_85, var87) /* add on <var_85:Array[Object]>*/;
943 ((void (*)(val*, val*))(var_85->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_85, var_ccall) /* add on <var_85:Array[Object]>*/;
944 if (varonce91) {
945 var92 = varonce91;
946 } else {
947 var93 = ";";
948 var94 = 1;
949 var95 = string__NativeString__to_s_with_length(var93, var94);
950 var92 = var95;
951 varonce91 = var92;
952 }
953 ((void (*)(val*, val*))(var_85->class->vft[COLOR_abstract_collection__SimpleCollection__add]))(var_85, var92) /* add on <var_85:Array[Object]>*/;
954 var96 = ((val* (*)(val*))(var_85->class->vft[COLOR_string__Object__to_s]))(var_85) /* to_s on <var_85:Array[Object]>*/;
955 var = var96;
956 goto RET_LABEL;
957 }
958 RET_LABEL:;
959 return var;
960 }
961 /* method nitni_utilities#MMethod#build_ccall for (self: Object, MClassType, MModule, nullable String, SignatureLength, CallContext, nullable String): String */
962 val* VIRTUAL_nitni_utilities__MMethod__build_ccall(val* self, val* p0, val* p1, val* p2, val* p3, val* p4, val* p5) {
963 val* var /* : String */;
964 val* var1 /* : String */;
965 var1 = nitni_utilities__MMethod__build_ccall(self, p0, p1, p2, p3, p4, p5);
966 var = var1;
967 RET_LABEL:;
968 return var;
969 }
970 /* method nitni_utilities#CallContext#name_mtype for (self: CallContext, MType): String */
971 val* nitni_utilities__CallContext__name_mtype(val* self, val* p0) {
972 val* var /* : String */;
973 val* var_mtype /* var mtype: MType */;
974 val* var1 /* : String */;
975 var_mtype = p0;
976 var1 = ((val* (*)(val*))(var_mtype->class->vft[COLOR_nitni_base__MType__cname_blind]))(var_mtype) /* cname_blind on <var_mtype:MType>*/;
977 var = var1;
978 goto RET_LABEL;
979 RET_LABEL:;
980 return var;
981 }
982 /* method nitni_utilities#CallContext#name_mtype for (self: Object, MType): String */
983 val* VIRTUAL_nitni_utilities__CallContext__name_mtype(val* self, val* p0) {
984 val* var /* : String */;
985 val* var1 /* : String */;
986 var1 = nitni_utilities__CallContext__name_mtype(self, p0);
987 var = var1;
988 RET_LABEL:;
989 return var;
990 }
991 /* method nitni_utilities#CallContext#cast_from for (self: CallContext, MType, String): String */
992 val* nitni_utilities__CallContext__cast_from(val* self, val* p0, val* p1) {
993 val* var /* : String */;
994 val* var_mtype /* var mtype: MType */;
995 val* var_name /* var name: String */;
996 var_mtype = p0;
997 var_name = p1;
998 var = var_name;
999 goto RET_LABEL;
1000 RET_LABEL:;
1001 return var;
1002 }
1003 /* method nitni_utilities#CallContext#cast_from for (self: Object, MType, String): String */
1004 val* VIRTUAL_nitni_utilities__CallContext__cast_from(val* self, val* p0, val* p1) {
1005 val* var /* : String */;
1006 val* var1 /* : String */;
1007 var1 = nitni_utilities__CallContext__cast_from(self, p0, p1);
1008 var = var1;
1009 RET_LABEL:;
1010 return var;
1011 }
1012 /* method nitni_utilities#CallContext#cast_to for (self: CallContext, MType, String): String */
1013 val* nitni_utilities__CallContext__cast_to(val* self, val* p0, val* p1) {
1014 val* var /* : String */;
1015 val* var_mtype /* var mtype: MType */;
1016 val* var_name /* var name: String */;
1017 var_mtype = p0;
1018 var_name = p1;
1019 var = var_name;
1020 goto RET_LABEL;
1021 RET_LABEL:;
1022 return var;
1023 }
1024 /* method nitni_utilities#CallContext#cast_to for (self: Object, MType, String): String */
1025 val* VIRTUAL_nitni_utilities__CallContext__cast_to(val* self, val* p0, val* p1) {
1026 val* var /* : String */;
1027 val* var1 /* : String */;
1028 var1 = nitni_utilities__CallContext__cast_to(self, p0, p1);
1029 var = var1;
1030 RET_LABEL:;
1031 return var;
1032 }
1033 /* method nitni_utilities#CallContext#init for (self: CallContext) */
1034 void nitni_utilities__CallContext__init(val* self) {
1035 RET_LABEL:;
1036 }
1037 /* method nitni_utilities#CallContext#init for (self: Object) */
1038 void VIRTUAL_nitni_utilities__CallContext__init(val* self) {
1039 nitni_utilities__CallContext__init(self);
1040 RET_LABEL:;
1041 }
1042 /* method nitni_utilities#Object#internal_call_context for (self: Object): CallContext */
1043 val* nitni_utilities__Object__internal_call_context(val* self) {
1044 val* var /* : CallContext */;
1045 val* var1 /* : CallContext */;
1046 var1 = NEW_nitni_utilities__CallContext(&type_nitni_utilities__CallContext);
1047 ((void (*)(val*))(var1->class->vft[COLOR_nitni_utilities__CallContext__init]))(var1) /* init on <var1:CallContext>*/;
1048 var = var1;
1049 goto RET_LABEL;
1050 RET_LABEL:;
1051 return var;
1052 }
1053 /* method nitni_utilities#Object#internal_call_context for (self: Object): CallContext */
1054 val* VIRTUAL_nitni_utilities__Object__internal_call_context(val* self) {
1055 val* var /* : CallContext */;
1056 val* var1 /* : CallContext */;
1057 var1 = nitni_utilities__Object__internal_call_context(self);
1058 var = var1;
1059 RET_LABEL:;
1060 return var;
1061 }
1062 /* method nitni_utilities#Object#long_signature for (self: Object): SignatureLength */
1063 val* nitni_utilities__Object__long_signature(val* self) {
1064 val* var /* : SignatureLength */;
1065 static val* varonce;
1066 static int varonce_guard;
1067 val* var1 /* : SignatureLength */;
1068 val* var2 /* : SignatureLength */;
1069 short int var3 /* : Bool */;
1070 if (varonce_guard) {
1071 var1 = varonce;
1072 } else {
1073 var2 = NEW_nitni_utilities__SignatureLength(&type_nitni_utilities__SignatureLength);
1074 var3 = 1;
1075 ((void (*)(val*, short int))(var2->class->vft[COLOR_nitni_utilities__SignatureLength__init]))(var2, var3) /* init on <var2:SignatureLength>*/;
1076 var1 = var2;
1077 varonce = var1;
1078 varonce_guard = 1;
1079 }
1080 var = var1;
1081 goto RET_LABEL;
1082 RET_LABEL:;
1083 return var;
1084 }
1085 /* method nitni_utilities#Object#long_signature for (self: Object): SignatureLength */
1086 val* VIRTUAL_nitni_utilities__Object__long_signature(val* self) {
1087 val* var /* : SignatureLength */;
1088 val* var1 /* : SignatureLength */;
1089 var1 = nitni_utilities__Object__long_signature(self);
1090 var = var1;
1091 RET_LABEL:;
1092 return var;
1093 }
1094 /* method nitni_utilities#Object#short_signature for (self: Object): SignatureLength */
1095 val* nitni_utilities__Object__short_signature(val* self) {
1096 val* var /* : SignatureLength */;
1097 static val* varonce;
1098 static int varonce_guard;
1099 val* var1 /* : SignatureLength */;
1100 val* var2 /* : SignatureLength */;
1101 short int var3 /* : Bool */;
1102 if (varonce_guard) {
1103 var1 = varonce;
1104 } else {
1105 var2 = NEW_nitni_utilities__SignatureLength(&type_nitni_utilities__SignatureLength);
1106 var3 = 0;
1107 ((void (*)(val*, short int))(var2->class->vft[COLOR_nitni_utilities__SignatureLength__init]))(var2, var3) /* init on <var2:SignatureLength>*/;
1108 var1 = var2;
1109 varonce = var1;
1110 varonce_guard = 1;
1111 }
1112 var = var1;
1113 goto RET_LABEL;
1114 RET_LABEL:;
1115 return var;
1116 }
1117 /* method nitni_utilities#Object#short_signature for (self: Object): SignatureLength */
1118 val* VIRTUAL_nitni_utilities__Object__short_signature(val* self) {
1119 val* var /* : SignatureLength */;
1120 val* var1 /* : SignatureLength */;
1121 var1 = nitni_utilities__Object__short_signature(self);
1122 var = var1;
1123 RET_LABEL:;
1124 return var;
1125 }
1126 /* method nitni_utilities#SignatureLength#long for (self: SignatureLength): Bool */
1127 short int nitni_utilities__SignatureLength__long(val* self) {
1128 short int var /* : Bool */;
1129 short int var1 /* : Bool */;
1130 var1 = self->attrs[COLOR_nitni_utilities__SignatureLength___64dlong].s; /* @long on <self:SignatureLength> */
1131 var = var1;
1132 RET_LABEL:;
1133 return var;
1134 }
1135 /* method nitni_utilities#SignatureLength#long for (self: Object): Bool */
1136 short int VIRTUAL_nitni_utilities__SignatureLength__long(val* self) {
1137 short int var /* : Bool */;
1138 short int var1 /* : Bool */;
1139 var1 = nitni_utilities__SignatureLength__long(self);
1140 var = var1;
1141 RET_LABEL:;
1142 return var;
1143 }
1144 /* method nitni_utilities#SignatureLength#long= for (self: SignatureLength, Bool) */
1145 void nitni_utilities__SignatureLength__long_61d(val* self, short int p0) {
1146 self->attrs[COLOR_nitni_utilities__SignatureLength___64dlong].s = p0; /* @long on <self:SignatureLength> */
1147 RET_LABEL:;
1148 }
1149 /* method nitni_utilities#SignatureLength#long= for (self: Object, Bool) */
1150 void VIRTUAL_nitni_utilities__SignatureLength__long_61d(val* self, short int p0) {
1151 nitni_utilities__SignatureLength__long_61d(self, p0);
1152 RET_LABEL:;
1153 }
1154 /* method nitni_utilities#SignatureLength#init for (self: SignatureLength, Bool) */
1155 void nitni_utilities__SignatureLength__init(val* self, short int p0) {
1156 short int var_long /* var long: Bool */;
1157 var_long = p0;
1158 ((void (*)(val*, short int))(self->class->vft[COLOR_nitni_utilities__SignatureLength__long_61d]))(self, var_long) /* long= on <self:SignatureLength>*/;
1159 RET_LABEL:;
1160 }
1161 /* method nitni_utilities#SignatureLength#init for (self: Object, Bool) */
1162 void VIRTUAL_nitni_utilities__SignatureLength__init(val* self, short int p0) {
1163 nitni_utilities__SignatureLength__init(self, p0);
1164 RET_LABEL:;
1165 }