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