NOTICE: Update author list and years
[nit.git] / c_src / nitc__nitni_utilities.sep.1.c
1 #include "nitc__nitni_utilities.sep.0.h"
2 /* method nitni_utilities#MMethod#build_cname for (self: MMethod, MClassType, MModule, nullable String, SignatureLength): String */
3 val* nitc__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 var3 /* : Bool */;
11 short int var4 /* : Bool */;
12 val* var5 /* : String */;
13 val* var7 /* : String */;
14 static val* varonce;
15 val* var8 /* : String */;
16 char* var9 /* : NativeString */;
17 val* var10 /* : String */;
18 short int var11 /* : Bool */;
19 short int var_ /* var : Bool */;
20 val* var12 /* : String */;
21 val* var14 /* : String */;
22 static val* varonce15;
23 val* var16 /* : String */;
24 char* var17 /* : NativeString */;
25 val* var18 /* : String */;
26 short int var19 /* : Bool */;
27 val* var21 /* : NativeArray[String] */;
28 static val* varonce20;
29 static val* varonce22;
30 val* var23 /* : String */;
31 char* var24 /* : NativeString */;
32 val* var25 /* : String */;
33 val* var26 /* : String */;
34 val* var27 /* : String */;
35 val* var_cname /* var cname: nullable Object */;
36 val* var29 /* : NativeArray[String] */;
37 static val* varonce28;
38 static val* varonce30;
39 val* var31 /* : String */;
40 char* var32 /* : NativeString */;
41 val* var33 /* : String */;
42 static val* varonce34;
43 val* var35 /* : String */;
44 char* var36 /* : NativeString */;
45 val* var37 /* : String */;
46 val* var38 /* : String */;
47 val* var39 /* : String */;
48 val* var40 /* : String */;
49 val* var42 /* : NativeArray[String] */;
50 static val* varonce41;
51 static val* varonce43;
52 val* var44 /* : String */;
53 char* var45 /* : NativeString */;
54 val* var46 /* : String */;
55 val* var47 /* : String */;
56 val* var48 /* : String */;
57 val* var49 /* : String */;
58 short int var50 /* : Bool */;
59 short int var51 /* : Bool */;
60 val* var_other /* var other: nullable Object */;
61 short int var53 /* : Bool */;
62 short int var54 /* : Bool */;
63 val* var56 /* : NativeArray[String] */;
64 static val* varonce55;
65 val* var57 /* : String */;
66 short int var58 /* : Bool */;
67 short int var60 /* : Bool */;
68 val* var62 /* : NativeArray[String] */;
69 static val* varonce61;
70 static val* varonce63;
71 val* var64 /* : String */;
72 char* var65 /* : NativeString */;
73 val* var66 /* : String */;
74 val* var67 /* : String */;
75 val* var69 /* : String */;
76 val* var70 /* : String */;
77 var_recv_mtype = p0;
78 var_from_mmodule = p1;
79 var_suffix = p2;
80 var_length = p3;
81 {
82 { /* Inline model#MMethod#is_init (self) on <self:MMethod> */
83 var3 = self->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <self:MMethod> */
84 var1 = var3;
85 RET_LABEL2:(void)0;
86 }
87 }
88 if (var1){
89 {
90 { /* Inline model#MProperty#name (self) on <self:MMethod> */
91 var7 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
92 if (unlikely(var7 == NULL)) {
93 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
94 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
95 fatal_exit(1);
96 }
97 var5 = var7;
98 RET_LABEL6:(void)0;
99 }
100 }
101 if (likely(varonce!=NULL)) {
102 var8 = varonce;
103 } else {
104 var9 = "init";
105 var10 = core__flat___NativeString___to_s_full(var9, 4l, 4l);
106 var8 = var10;
107 varonce = var8;
108 }
109 {
110 var11 = ((short int(*)(val* self, val* p0))(var5->class->vft[COLOR_core__kernel__Object___61d_61d]))(var5, var8); /* == on <var5:String>*/
111 }
112 var_ = var11;
113 if (var11){
114 var4 = var_;
115 } else {
116 {
117 { /* Inline model#MProperty#name (self) on <self:MMethod> */
118 var14 = self->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <self:MMethod> */
119 if (unlikely(var14 == NULL)) {
120 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
121 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1951);
122 fatal_exit(1);
123 }
124 var12 = var14;
125 RET_LABEL13:(void)0;
126 }
127 }
128 if (likely(varonce15!=NULL)) {
129 var16 = varonce15;
130 } else {
131 var17 = "new";
132 var18 = core__flat___NativeString___to_s_full(var17, 3l, 3l);
133 var16 = var18;
134 varonce15 = var16;
135 }
136 {
137 var19 = ((short int(*)(val* self, val* p0))(var12->class->vft[COLOR_core__kernel__Object___61d_61d]))(var12, var16); /* == on <var12:String>*/
138 }
139 var4 = var19;
140 }
141 if (var4){
142 if (unlikely(varonce20==NULL)) {
143 var21 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
144 if (likely(varonce22!=NULL)) {
145 var23 = varonce22;
146 } else {
147 var24 = "new_";
148 var25 = core__flat___NativeString___to_s_full(var24, 4l, 4l);
149 var23 = var25;
150 varonce22 = var23;
151 }
152 ((struct instance_core__NativeArray*)var21)->values[0]=var23;
153 } else {
154 var21 = varonce20;
155 varonce20 = NULL;
156 }
157 {
158 var26 = ((val*(*)(val* self))(var_recv_mtype->class->vft[COLOR_nitc__nitni_base__MType__mangled_cname]))(var_recv_mtype); /* mangled_cname on <var_recv_mtype:MClassType>*/
159 }
160 ((struct instance_core__NativeArray*)var21)->values[1]=var26;
161 {
162 var27 = ((val*(*)(val* self))(var21->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var21); /* native_to_s on <var21:NativeArray[String]>*/
163 }
164 varonce20 = var21;
165 var_cname = var27;
166 } else {
167 if (unlikely(varonce28==NULL)) {
168 var29 = NEW_core__NativeArray(4l, &type_core__NativeArray__core__String);
169 if (likely(varonce30!=NULL)) {
170 var31 = varonce30;
171 } else {
172 var32 = "new_";
173 var33 = core__flat___NativeString___to_s_full(var32, 4l, 4l);
174 var31 = var33;
175 varonce30 = var31;
176 }
177 ((struct instance_core__NativeArray*)var29)->values[0]=var31;
178 if (likely(varonce34!=NULL)) {
179 var35 = varonce34;
180 } else {
181 var36 = "_";
182 var37 = core__flat___NativeString___to_s_full(var36, 1l, 1l);
183 var35 = var37;
184 varonce34 = var35;
185 }
186 ((struct instance_core__NativeArray*)var29)->values[2]=var35;
187 } else {
188 var29 = varonce28;
189 varonce28 = NULL;
190 }
191 {
192 var38 = ((val*(*)(val* self))(var_recv_mtype->class->vft[COLOR_nitc__nitni_base__MType__mangled_cname]))(var_recv_mtype); /* mangled_cname on <var_recv_mtype:MClassType>*/
193 }
194 ((struct instance_core__NativeArray*)var29)->values[1]=var38;
195 {
196 var39 = nitc__nitni_base___MMethod___short_cname(self);
197 }
198 ((struct instance_core__NativeArray*)var29)->values[3]=var39;
199 {
200 var40 = ((val*(*)(val* self))(var29->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var29); /* native_to_s on <var29:NativeArray[String]>*/
201 }
202 varonce28 = var29;
203 var_cname = var40;
204 }
205 } else {
206 if (unlikely(varonce41==NULL)) {
207 var42 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
208 if (likely(varonce43!=NULL)) {
209 var44 = varonce43;
210 } else {
211 var45 = "_";
212 var46 = core__flat___NativeString___to_s_full(var45, 1l, 1l);
213 var44 = var46;
214 varonce43 = var44;
215 }
216 ((struct instance_core__NativeArray*)var42)->values[1]=var44;
217 } else {
218 var42 = varonce41;
219 varonce41 = NULL;
220 }
221 {
222 var47 = ((val*(*)(val* self))(var_recv_mtype->class->vft[COLOR_nitc__nitni_base__MType__mangled_cname]))(var_recv_mtype); /* mangled_cname on <var_recv_mtype:MClassType>*/
223 }
224 ((struct instance_core__NativeArray*)var42)->values[0]=var47;
225 {
226 var48 = nitc__nitni_base___MMethod___short_cname(self);
227 }
228 ((struct instance_core__NativeArray*)var42)->values[2]=var48;
229 {
230 var49 = ((val*(*)(val* self))(var42->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var42); /* native_to_s on <var42:NativeArray[String]>*/
231 }
232 varonce41 = var42;
233 var_cname = var49;
234 }
235 if (var_suffix == NULL) {
236 var50 = 0; /* is null */
237 } else {
238 var50 = 1; /* arg is null and recv is not */
239 }
240 if (0) {
241 { /* Inline kernel#Object#!= (var_suffix,((val*)NULL)) on <var_suffix:nullable String> */
242 var_other = ((val*)NULL);
243 {
244 var53 = ((short int(*)(val* self, val* p0))(var_suffix->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_suffix, var_other); /* == on <var_suffix:nullable String(String)>*/
245 }
246 var54 = !var53;
247 var51 = var54;
248 goto RET_LABEL52;
249 RET_LABEL52:(void)0;
250 }
251 var50 = var51;
252 }
253 if (var50){
254 if (unlikely(varonce55==NULL)) {
255 var56 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
256 } else {
257 var56 = varonce55;
258 varonce55 = NULL;
259 }
260 ((struct instance_core__NativeArray*)var56)->values[0]=var_cname;
261 ((struct instance_core__NativeArray*)var56)->values[1]=var_suffix;
262 {
263 var57 = ((val*(*)(val* self))(var56->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var56); /* native_to_s on <var56:NativeArray[String]>*/
264 }
265 varonce55 = var56;
266 var_cname = var57;
267 } else {
268 }
269 {
270 { /* Inline nitni_utilities#SignatureLength#long (var_length) on <var_length:SignatureLength> */
271 var60 = var_length->attrs[COLOR_nitc__nitni_utilities__SignatureLength___long].s; /* _long on <var_length:SignatureLength> */
272 var58 = var60;
273 RET_LABEL59:(void)0;
274 }
275 }
276 if (var58){
277 if (unlikely(varonce61==NULL)) {
278 var62 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
279 if (likely(varonce63!=NULL)) {
280 var64 = varonce63;
281 } else {
282 var65 = "___";
283 var66 = core__flat___NativeString___to_s_full(var65, 3l, 3l);
284 var64 = var66;
285 varonce63 = var64;
286 }
287 ((struct instance_core__NativeArray*)var62)->values[1]=var64;
288 } else {
289 var62 = varonce61;
290 varonce61 = NULL;
291 }
292 {
293 { /* Inline mmodule#MModule#name (var_from_mmodule) on <var_from_mmodule:MModule> */
294 var69 = var_from_mmodule->attrs[COLOR_nitc__mmodule__MModule___name].val; /* _name on <var_from_mmodule:MModule> */
295 if (unlikely(var69 == NULL)) {
296 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
297 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 95);
298 fatal_exit(1);
299 }
300 var67 = var69;
301 RET_LABEL68:(void)0;
302 }
303 }
304 ((struct instance_core__NativeArray*)var62)->values[0]=var67;
305 ((struct instance_core__NativeArray*)var62)->values[2]=var_cname;
306 {
307 var70 = ((val*(*)(val* self))(var62->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var62); /* native_to_s on <var62:NativeArray[String]>*/
308 }
309 varonce61 = var62;
310 var_cname = var70;
311 } else {
312 }
313 var = var_cname;
314 goto RET_LABEL;
315 RET_LABEL:;
316 return var;
317 }
318 /* method nitni_utilities#MMethod#build_csignature for (self: MMethod, MClassType, MModule, nullable String, SignatureLength, CallContext): String */
319 val* nitc__nitni_utilities___MMethod___build_csignature(val* self, val* p0, val* p1, val* p2, val* p3, val* p4) {
320 val* var /* : String */;
321 val* var_recv_mtype /* var recv_mtype: MClassType */;
322 val* var_from_mmodule /* var from_mmodule: MModule */;
323 val* var_suffix /* var suffix: nullable String */;
324 val* var_length /* var length: SignatureLength */;
325 val* var_call_context /* var call_context: CallContext */;
326 val* var1 /* : MPropDef */;
327 val* var_mmethoddef /* var mmethoddef: MMethodDef */;
328 val* var2 /* : nullable MSignature */;
329 val* var4 /* : nullable MSignature */;
330 val* var_signature /* var signature: nullable MSignature */;
331 short int var5 /* : Bool */;
332 short int var6 /* : Bool */;
333 val* var_other /* var other: nullable Object */;
334 short int var8 /* : Bool */;
335 short int var9 /* : Bool */;
336 short int var10 /* : Bool */;
337 short int var12 /* : Bool */;
338 val* var13 /* : String */;
339 val* var_creturn_type /* var creturn_type: nullable Object */;
340 val* var14 /* : nullable MType */;
341 val* var16 /* : nullable MType */;
342 short int var17 /* : Bool */;
343 short int var18 /* : Bool */;
344 short int var20 /* : Bool */;
345 short int var21 /* : Bool */;
346 val* var22 /* : nullable MType */;
347 val* var24 /* : nullable MType */;
348 val* var_ret_mtype /* var ret_mtype: nullable MType */;
349 val* var25 /* : MType */;
350 val* var26 /* : String */;
351 static val* varonce;
352 val* var27 /* : String */;
353 char* var28 /* : NativeString */;
354 val* var29 /* : String */;
355 val* var30 /* : String */;
356 val* var_cname /* var cname: String */;
357 val* var31 /* : List[String] */;
358 val* var_cparams /* var cparams: List[String] */;
359 short int var33 /* : Bool */;
360 short int var35 /* : Bool */;
361 short int var36 /* : Bool */;
362 val* var38 /* : NativeArray[String] */;
363 static val* varonce37;
364 static val* varonce39;
365 val* var40 /* : String */;
366 char* var41 /* : NativeString */;
367 val* var42 /* : String */;
368 val* var43 /* : String */;
369 val* var44 /* : String */;
370 val* var45 /* : Array[MParameter] */;
371 val* var47 /* : Array[MParameter] */;
372 val* var_ /* var : Array[MParameter] */;
373 val* var48 /* : IndexedIterator[nullable Object] */;
374 val* var_49 /* var : IndexedIterator[MParameter] */;
375 short int var50 /* : Bool */;
376 val* var51 /* : nullable Object */;
377 val* var_p /* var p: MParameter */;
378 val* var52 /* : MType */;
379 val* var54 /* : MType */;
380 val* var55 /* : MType */;
381 val* var_param_mtype /* var param_mtype: MType */;
382 val* var57 /* : NativeArray[String] */;
383 static val* varonce56;
384 static val* varonce58;
385 val* var59 /* : String */;
386 char* var60 /* : NativeString */;
387 val* var61 /* : String */;
388 val* var62 /* : String */;
389 val* var63 /* : String */;
390 val* var65 /* : String */;
391 val* var66 /* : String */;
392 val* var68 /* : NativeArray[String] */;
393 static val* varonce67;
394 static val* varonce69;
395 val* var70 /* : String */;
396 char* var71 /* : NativeString */;
397 val* var72 /* : String */;
398 static val* varonce73;
399 val* var74 /* : String */;
400 char* var75 /* : NativeString */;
401 val* var76 /* : String */;
402 static val* varonce77;
403 val* var78 /* : String */;
404 char* var79 /* : NativeString */;
405 val* var80 /* : String */;
406 static val* varonce81;
407 val* var82 /* : String */;
408 char* var83 /* : NativeString */;
409 val* var84 /* : String */;
410 val* var85 /* : String */;
411 val* var86 /* : String */;
412 var_recv_mtype = p0;
413 var_from_mmodule = p1;
414 var_suffix = p2;
415 var_length = p3;
416 var_call_context = p4;
417 {
418 var1 = nitc___nitc__MProperty___lookup_first_definition(self, var_from_mmodule, var_recv_mtype);
419 }
420 var_mmethoddef = var1;
421 {
422 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
423 var4 = var_mmethoddef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mmethoddef:MMethodDef> */
424 var2 = var4;
425 RET_LABEL3:(void)0;
426 }
427 }
428 var_signature = var2;
429 if (var_signature == NULL) {
430 var5 = 0; /* is null */
431 } else {
432 var5 = 1; /* arg is null and recv is not */
433 }
434 if (0) {
435 { /* Inline kernel#Object#!= (var_signature,((val*)NULL)) on <var_signature:nullable MSignature> */
436 var_other = ((val*)NULL);
437 {
438 var8 = ((short int(*)(val* self, val* p0))(var_signature->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_signature, var_other); /* == on <var_signature:nullable MSignature(MSignature)>*/
439 }
440 var9 = !var8;
441 var6 = var9;
442 goto RET_LABEL7;
443 RET_LABEL7:(void)0;
444 }
445 var5 = var6;
446 }
447 if (unlikely(!var5)) {
448 PRINT_ERROR("Runtime error: %s", "Assert failed");
449 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__nitni_utilities, 58);
450 fatal_exit(1);
451 }
452 {
453 { /* Inline model#MMethod#is_init (self) on <self:MMethod> */
454 var12 = self->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <self:MMethod> */
455 var10 = var12;
456 RET_LABEL11:(void)0;
457 }
458 }
459 if (var10){
460 {
461 var13 = ((val*(*)(val* self, val* p0))(var_call_context->class->vft[COLOR_nitc__nitni_utilities__CallContext__name_mtype]))(var_call_context, var_recv_mtype); /* name_mtype on <var_call_context:CallContext>*/
462 }
463 var_creturn_type = var13;
464 } else {
465 {
466 { /* Inline model#MSignature#return_mtype (var_signature) on <var_signature:nullable MSignature(MSignature)> */
467 var16 = var_signature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_signature:nullable MSignature(MSignature)> */
468 var14 = var16;
469 RET_LABEL15:(void)0;
470 }
471 }
472 if (var14 == NULL) {
473 var17 = 0; /* is null */
474 } else {
475 var17 = 1; /* arg is null and recv is not */
476 }
477 if (0) {
478 { /* Inline kernel#Object#!= (var14,((val*)NULL)) on <var14:nullable MType> */
479 var_other = ((val*)NULL);
480 {
481 var20 = ((short int(*)(val* self, val* p0))(var14->class->vft[COLOR_core__kernel__Object___61d_61d]))(var14, var_other); /* == on <var14:nullable MType(MType)>*/
482 }
483 var21 = !var20;
484 var18 = var21;
485 goto RET_LABEL19;
486 RET_LABEL19:(void)0;
487 }
488 var17 = var18;
489 }
490 if (var17){
491 {
492 { /* Inline model#MSignature#return_mtype (var_signature) on <var_signature:nullable MSignature(MSignature)> */
493 var24 = var_signature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_signature:nullable MSignature(MSignature)> */
494 var22 = var24;
495 RET_LABEL23:(void)0;
496 }
497 }
498 var_ret_mtype = var22;
499 if (var_ret_mtype == NULL) {
500 PRINT_ERROR("Runtime error: %s", "Receiver is null");
501 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__nitni_utilities, 65);
502 fatal_exit(1);
503 } else {
504 var25 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var_ret_mtype->class->vft[COLOR_nitc__model__MType__resolve_for]))(var_ret_mtype, var_recv_mtype, var_recv_mtype, var_from_mmodule, 1); /* resolve_for on <var_ret_mtype:nullable MType>*/
505 }
506 var_ret_mtype = var25;
507 {
508 var26 = ((val*(*)(val* self, val* p0))(var_call_context->class->vft[COLOR_nitc__nitni_utilities__CallContext__name_mtype]))(var_call_context, var_ret_mtype); /* name_mtype on <var_call_context:CallContext>*/
509 }
510 var_creturn_type = var26;
511 } else {
512 if (likely(varonce!=NULL)) {
513 var27 = varonce;
514 } else {
515 var28 = "void";
516 var29 = core__flat___NativeString___to_s_full(var28, 4l, 4l);
517 var27 = var29;
518 varonce = var27;
519 }
520 var_creturn_type = var27;
521 }
522 }
523 {
524 var30 = nitc__nitni_utilities___MMethod___build_cname(self, var_recv_mtype, var_from_mmodule, var_suffix, var_length);
525 }
526 var_cname = var30;
527 var31 = NEW_core__List(&type_core__List__core__String);
528 {
529 { /* Inline list#List#init (var31) on <var31:List[String]> */
530 {
531 ((void(*)(val* self))(var31->class->vft[COLOR_core___core__List___core__kernel__Object__init]))(var31); /* init on <var31:List[String]>*/
532 }
533 RET_LABEL32:(void)0;
534 }
535 }
536 var_cparams = var31;
537 {
538 { /* Inline model#MMethod#is_init (self) on <self:MMethod> */
539 var35 = self->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <self:MMethod> */
540 var33 = var35;
541 RET_LABEL34:(void)0;
542 }
543 }
544 var36 = !var33;
545 if (var36){
546 if (unlikely(varonce37==NULL)) {
547 var38 = NEW_core__NativeArray(2l, &type_core__NativeArray__core__String);
548 if (likely(varonce39!=NULL)) {
549 var40 = varonce39;
550 } else {
551 var41 = " self";
552 var42 = core__flat___NativeString___to_s_full(var41, 5l, 5l);
553 var40 = var42;
554 varonce39 = var40;
555 }
556 ((struct instance_core__NativeArray*)var38)->values[1]=var40;
557 } else {
558 var38 = varonce37;
559 varonce37 = NULL;
560 }
561 {
562 var43 = ((val*(*)(val* self, val* p0))(var_call_context->class->vft[COLOR_nitc__nitni_utilities__CallContext__name_mtype]))(var_call_context, var_recv_mtype); /* name_mtype on <var_call_context:CallContext>*/
563 }
564 ((struct instance_core__NativeArray*)var38)->values[0]=var43;
565 {
566 var44 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
567 }
568 varonce37 = var38;
569 {
570 core___core__Sequence___SimpleCollection__add(var_cparams, var44); /* Direct call abstract_collection#Sequence#add on <var_cparams:List[String]>*/
571 }
572 } else {
573 }
574 {
575 { /* Inline model#MSignature#mparameters (var_signature) on <var_signature:nullable MSignature(MSignature)> */
576 var47 = var_signature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_signature:nullable MSignature(MSignature)> */
577 if (unlikely(var47 == NULL)) {
578 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
579 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1783);
580 fatal_exit(1);
581 }
582 var45 = var47;
583 RET_LABEL46:(void)0;
584 }
585 }
586 var_ = var45;
587 {
588 var48 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
589 }
590 var_49 = var48;
591 for(;;) {
592 {
593 var50 = ((short int(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_49); /* is_ok on <var_49:IndexedIterator[MParameter]>*/
594 }
595 if (var50){
596 } else {
597 goto BREAK_label;
598 }
599 {
600 var51 = ((val*(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_49); /* item on <var_49:IndexedIterator[MParameter]>*/
601 }
602 var_p = var51;
603 {
604 { /* Inline model#MParameter#mtype (var_p) on <var_p:MParameter> */
605 var54 = var_p->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
606 if (unlikely(var54 == NULL)) {
607 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
608 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1900);
609 fatal_exit(1);
610 }
611 var52 = var54;
612 RET_LABEL53:(void)0;
613 }
614 }
615 {
616 var55 = ((val*(*)(val* self, val* p0, val* p1, val* p2, short int p3))(var52->class->vft[COLOR_nitc__model__MType__resolve_for]))(var52, var_recv_mtype, var_recv_mtype, var_from_mmodule, 1); /* resolve_for on <var52:MType>*/
617 }
618 var_param_mtype = var55;
619 if (unlikely(varonce56==NULL)) {
620 var57 = NEW_core__NativeArray(3l, &type_core__NativeArray__core__String);
621 if (likely(varonce58!=NULL)) {
622 var59 = varonce58;
623 } else {
624 var60 = " ";
625 var61 = core__flat___NativeString___to_s_full(var60, 1l, 1l);
626 var59 = var61;
627 varonce58 = var59;
628 }
629 ((struct instance_core__NativeArray*)var57)->values[1]=var59;
630 } else {
631 var57 = varonce56;
632 varonce56 = NULL;
633 }
634 {
635 var62 = ((val*(*)(val* self, val* p0))(var_call_context->class->vft[COLOR_nitc__nitni_utilities__CallContext__name_mtype]))(var_call_context, var_param_mtype); /* name_mtype on <var_call_context:CallContext>*/
636 }
637 ((struct instance_core__NativeArray*)var57)->values[0]=var62;
638 {
639 { /* Inline model#MParameter#name (var_p) on <var_p:MParameter> */
640 var65 = var_p->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var_p:MParameter> */
641 if (unlikely(var65 == NULL)) {
642 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
643 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1897);
644 fatal_exit(1);
645 }
646 var63 = var65;
647 RET_LABEL64:(void)0;
648 }
649 }
650 ((struct instance_core__NativeArray*)var57)->values[2]=var63;
651 {
652 var66 = ((val*(*)(val* self))(var57->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var57); /* native_to_s on <var57:NativeArray[String]>*/
653 }
654 varonce56 = var57;
655 {
656 core___core__Sequence___SimpleCollection__add(var_cparams, var66); /* Direct call abstract_collection#Sequence#add on <var_cparams:List[String]>*/
657 }
658 {
659 ((void(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_49); /* next on <var_49:IndexedIterator[MParameter]>*/
660 }
661 }
662 BREAK_label: (void)0;
663 {
664 ((void(*)(val* self))((((long)var_49&3)?class_info[((long)var_49&3)]:var_49->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_49); /* finish on <var_49:IndexedIterator[MParameter]>*/
665 }
666 if (unlikely(varonce67==NULL)) {
667 var68 = NEW_core__NativeArray(6l, &type_core__NativeArray__core__String);
668 if (likely(varonce69!=NULL)) {
669 var70 = varonce69;
670 } else {
671 var71 = " ";
672 var72 = core__flat___NativeString___to_s_full(var71, 1l, 1l);
673 var70 = var72;
674 varonce69 = var70;
675 }
676 ((struct instance_core__NativeArray*)var68)->values[1]=var70;
677 if (likely(varonce73!=NULL)) {
678 var74 = varonce73;
679 } else {
680 var75 = "( ";
681 var76 = core__flat___NativeString___to_s_full(var75, 2l, 2l);
682 var74 = var76;
683 varonce73 = var74;
684 }
685 ((struct instance_core__NativeArray*)var68)->values[3]=var74;
686 if (likely(varonce77!=NULL)) {
687 var78 = varonce77;
688 } else {
689 var79 = " )";
690 var80 = core__flat___NativeString___to_s_full(var79, 2l, 2l);
691 var78 = var80;
692 varonce77 = var78;
693 }
694 ((struct instance_core__NativeArray*)var68)->values[5]=var78;
695 } else {
696 var68 = varonce67;
697 varonce67 = NULL;
698 }
699 ((struct instance_core__NativeArray*)var68)->values[0]=var_creturn_type;
700 ((struct instance_core__NativeArray*)var68)->values[2]=var_cname;
701 if (likely(varonce81!=NULL)) {
702 var82 = varonce81;
703 } else {
704 var83 = ", ";
705 var84 = core__flat___NativeString___to_s_full(var83, 2l, 2l);
706 var82 = var84;
707 varonce81 = var82;
708 }
709 {
710 var85 = core__abstract_text___Collection___join(var_cparams, var82);
711 }
712 ((struct instance_core__NativeArray*)var68)->values[4]=var85;
713 {
714 var86 = ((val*(*)(val* self))(var68->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var68); /* native_to_s on <var68:NativeArray[String]>*/
715 }
716 varonce67 = var68;
717 var = var86;
718 goto RET_LABEL;
719 RET_LABEL:;
720 return var;
721 }
722 /* method nitni_utilities#CallContext#name_mtype for (self: CallContext, MType): String */
723 val* nitc___nitc__CallContext___name_mtype(val* self, val* p0) {
724 val* var /* : String */;
725 val* var_mtype /* var mtype: MType */;
726 val* var1 /* : String */;
727 var_mtype = p0;
728 {
729 var1 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__nitni_base__MType__cname_blind]))(var_mtype); /* cname_blind on <var_mtype:MType>*/
730 }
731 var = var1;
732 goto RET_LABEL;
733 RET_LABEL:;
734 return var;
735 }
736 /* method nitni_utilities#SignatureLength#long for (self: SignatureLength): Bool */
737 short int nitc___nitc__SignatureLength___long(val* self) {
738 short int var /* : Bool */;
739 short int var1 /* : Bool */;
740 var1 = self->attrs[COLOR_nitc__nitni_utilities__SignatureLength___long].s; /* _long on <self:SignatureLength> */
741 var = var1;
742 RET_LABEL:;
743 return var;
744 }
745 /* method nitni_utilities#SignatureLength#long= for (self: SignatureLength, Bool) */
746 void nitc___nitc__SignatureLength___long_61d(val* self, short int p0) {
747 self->attrs[COLOR_nitc__nitni_utilities__SignatureLength___long].s = p0; /* _long on <self:SignatureLength> */
748 RET_LABEL:;
749 }
750 /* method nitni_utilities#SignatureLength#init for (self: SignatureLength) */
751 void nitc___nitc__SignatureLength___core__kernel__Object__init(val* self) {
752 {
753 ((void(*)(val* self))(self->class->vft[COLOR_nitc___nitc__SignatureLength___core__kernel__Object__init]))(self); /* init on <self:SignatureLength>*/
754 }
755 RET_LABEL:;
756 }
757 /* method nitni_utilities#Sys#internal_call_context for (self: Sys): CallContext */
758 val* nitc__nitni_utilities___core__Sys___internal_call_context(val* self) {
759 val* var /* : CallContext */;
760 val* var1 /* : CallContext */;
761 var1 = NEW_nitc__CallContext(&type_nitc__CallContext);
762 {
763 { /* Inline kernel#Object#init (var1) on <var1:CallContext> */
764 RET_LABEL2:(void)0;
765 }
766 }
767 var = var1;
768 goto RET_LABEL;
769 RET_LABEL:;
770 return var;
771 }
772 /* method nitni_utilities#Sys#long_signature for (self: Sys): SignatureLength */
773 val* nitc__nitni_utilities___core__Sys___long_signature(val* self) {
774 val* var /* : SignatureLength */;
775 static val* varonce;
776 static int varonce_guard;
777 val* var1 /* : SignatureLength */;
778 val* var2 /* : SignatureLength */;
779 if (likely(varonce_guard)) {
780 var1 = varonce;
781 } else {
782 var2 = NEW_nitc__SignatureLength(&type_nitc__SignatureLength);
783 {
784 ((void(*)(val* self, short int p0))(var2->class->vft[COLOR_nitc__nitni_utilities__SignatureLength__long_61d]))(var2, 1); /* long= on <var2:SignatureLength>*/
785 }
786 {
787 ((void(*)(val* self))(var2->class->vft[COLOR_core__kernel__Object__init]))(var2); /* init on <var2:SignatureLength>*/
788 }
789 var1 = var2;
790 varonce = var1;
791 varonce_guard = 1;
792 }
793 var = var1;
794 goto RET_LABEL;
795 RET_LABEL:;
796 return var;
797 }