Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__abstract_compiler.sep.4.c
1 #include "nitc__abstract_compiler.sep.0.h"
2 /* method abstract_compiler$MClassType$ctype for (self: MClassType): String */
3 val* nitc__abstract_compiler___MClassType___MType__ctype(val* self) {
4 val* var /* : String */;
5 short int var1 /* : Bool */;
6 val* var2 /* : String */;
7 val* var3 /* : String */;
8 val* var5 /* : MClass */;
9 val* var7 /* : MClass */;
10 val* var8 /* : String */;
11 val* var10 /* : String */;
12 static val* varonce;
13 val* var11 /* : String */;
14 char* var12 /* : CString */;
15 val* var13 /* : String */;
16 val* var14 /* : nullable Int */;
17 val* var15 /* : nullable Int */;
18 val* var16 /* : nullable Bool */;
19 val* var17 /* : nullable Bool */;
20 short int var18 /* : Bool */;
21 static val* varonce19;
22 val* var20 /* : String */;
23 char* var21 /* : CString */;
24 val* var22 /* : String */;
25 val* var23 /* : nullable Int */;
26 val* var24 /* : nullable Int */;
27 val* var25 /* : nullable Bool */;
28 val* var26 /* : nullable Bool */;
29 val* var27 /* : MClass */;
30 val* var29 /* : MClass */;
31 val* var30 /* : String */;
32 val* var32 /* : String */;
33 static val* varonce33;
34 val* var34 /* : String */;
35 char* var35 /* : CString */;
36 val* var36 /* : String */;
37 val* var37 /* : nullable Int */;
38 val* var38 /* : nullable Int */;
39 val* var39 /* : nullable Bool */;
40 val* var40 /* : nullable Bool */;
41 short int var41 /* : Bool */;
42 static val* varonce42;
43 val* var43 /* : String */;
44 char* var44 /* : CString */;
45 val* var45 /* : String */;
46 val* var46 /* : nullable Int */;
47 val* var47 /* : nullable Int */;
48 val* var48 /* : nullable Bool */;
49 val* var49 /* : nullable Bool */;
50 val* var50 /* : MClass */;
51 val* var52 /* : MClass */;
52 val* var53 /* : String */;
53 val* var55 /* : String */;
54 static val* varonce56;
55 val* var57 /* : String */;
56 char* var58 /* : CString */;
57 val* var59 /* : String */;
58 val* var60 /* : nullable Int */;
59 val* var61 /* : nullable Int */;
60 val* var62 /* : nullable Bool */;
61 val* var63 /* : nullable Bool */;
62 short int var64 /* : Bool */;
63 static val* varonce65;
64 val* var66 /* : String */;
65 char* var67 /* : CString */;
66 val* var68 /* : String */;
67 val* var69 /* : nullable Int */;
68 val* var70 /* : nullable Int */;
69 val* var71 /* : nullable Bool */;
70 val* var72 /* : nullable Bool */;
71 val* var73 /* : MClass */;
72 val* var75 /* : MClass */;
73 val* var76 /* : String */;
74 val* var78 /* : String */;
75 static val* varonce79;
76 val* var80 /* : String */;
77 char* var81 /* : CString */;
78 val* var82 /* : String */;
79 val* var83 /* : nullable Int */;
80 val* var84 /* : nullable Int */;
81 val* var85 /* : nullable Bool */;
82 val* var86 /* : nullable Bool */;
83 short int var87 /* : Bool */;
84 static val* varonce88;
85 val* var89 /* : String */;
86 char* var90 /* : CString */;
87 val* var91 /* : String */;
88 val* var92 /* : nullable Int */;
89 val* var93 /* : nullable Int */;
90 val* var94 /* : nullable Bool */;
91 val* var95 /* : nullable Bool */;
92 val* var96 /* : MClass */;
93 val* var98 /* : MClass */;
94 val* var99 /* : String */;
95 val* var101 /* : String */;
96 static val* varonce102;
97 val* var103 /* : String */;
98 char* var104 /* : CString */;
99 val* var105 /* : String */;
100 val* var106 /* : nullable Int */;
101 val* var107 /* : nullable Int */;
102 val* var108 /* : nullable Bool */;
103 val* var109 /* : nullable Bool */;
104 short int var110 /* : Bool */;
105 static val* varonce111;
106 val* var112 /* : String */;
107 char* var113 /* : CString */;
108 val* var114 /* : String */;
109 val* var115 /* : nullable Int */;
110 val* var116 /* : nullable Int */;
111 val* var117 /* : nullable Bool */;
112 val* var118 /* : nullable Bool */;
113 val* var119 /* : MClass */;
114 val* var121 /* : MClass */;
115 val* var122 /* : String */;
116 val* var124 /* : String */;
117 static val* varonce125;
118 val* var126 /* : String */;
119 char* var127 /* : CString */;
120 val* var128 /* : String */;
121 val* var129 /* : nullable Int */;
122 val* var130 /* : nullable Int */;
123 val* var131 /* : nullable Bool */;
124 val* var132 /* : nullable Bool */;
125 short int var133 /* : Bool */;
126 static val* varonce134;
127 val* var135 /* : String */;
128 char* var136 /* : CString */;
129 val* var137 /* : String */;
130 val* var138 /* : nullable Int */;
131 val* var139 /* : nullable Int */;
132 val* var140 /* : nullable Bool */;
133 val* var141 /* : nullable Bool */;
134 val* var142 /* : MClass */;
135 val* var144 /* : MClass */;
136 val* var145 /* : String */;
137 val* var147 /* : String */;
138 static val* varonce148;
139 val* var149 /* : String */;
140 char* var150 /* : CString */;
141 val* var151 /* : String */;
142 val* var152 /* : nullable Int */;
143 val* var153 /* : nullable Int */;
144 val* var154 /* : nullable Bool */;
145 val* var155 /* : nullable Bool */;
146 short int var156 /* : Bool */;
147 static val* varonce157;
148 val* var158 /* : String */;
149 char* var159 /* : CString */;
150 val* var160 /* : String */;
151 val* var161 /* : nullable Int */;
152 val* var162 /* : nullable Int */;
153 val* var163 /* : nullable Bool */;
154 val* var164 /* : nullable Bool */;
155 val* var165 /* : MClass */;
156 val* var167 /* : MClass */;
157 val* var168 /* : String */;
158 val* var170 /* : String */;
159 static val* varonce171;
160 val* var172 /* : String */;
161 char* var173 /* : CString */;
162 val* var174 /* : String */;
163 val* var175 /* : nullable Int */;
164 val* var176 /* : nullable Int */;
165 val* var177 /* : nullable Bool */;
166 val* var178 /* : nullable Bool */;
167 short int var179 /* : Bool */;
168 static val* varonce180;
169 val* var181 /* : String */;
170 char* var182 /* : CString */;
171 val* var183 /* : String */;
172 val* var184 /* : nullable Int */;
173 val* var185 /* : nullable Int */;
174 val* var186 /* : nullable Bool */;
175 val* var187 /* : nullable Bool */;
176 val* var188 /* : MClass */;
177 val* var190 /* : MClass */;
178 val* var191 /* : String */;
179 val* var193 /* : String */;
180 static val* varonce194;
181 val* var195 /* : String */;
182 char* var196 /* : CString */;
183 val* var197 /* : String */;
184 val* var198 /* : nullable Int */;
185 val* var199 /* : nullable Int */;
186 val* var200 /* : nullable Bool */;
187 val* var201 /* : nullable Bool */;
188 short int var202 /* : Bool */;
189 static val* varonce203;
190 val* var204 /* : String */;
191 char* var205 /* : CString */;
192 val* var206 /* : String */;
193 val* var207 /* : nullable Int */;
194 val* var208 /* : nullable Int */;
195 val* var209 /* : nullable Bool */;
196 val* var210 /* : nullable Bool */;
197 val* var211 /* : MClass */;
198 val* var213 /* : MClass */;
199 val* var214 /* : String */;
200 val* var216 /* : String */;
201 static val* varonce217;
202 val* var218 /* : String */;
203 char* var219 /* : CString */;
204 val* var220 /* : String */;
205 val* var221 /* : nullable Int */;
206 val* var222 /* : nullable Int */;
207 val* var223 /* : nullable Bool */;
208 val* var224 /* : nullable Bool */;
209 short int var225 /* : Bool */;
210 static val* varonce226;
211 val* var227 /* : String */;
212 char* var228 /* : CString */;
213 val* var229 /* : String */;
214 val* var230 /* : nullable Int */;
215 val* var231 /* : nullable Int */;
216 val* var232 /* : nullable Bool */;
217 val* var233 /* : nullable Bool */;
218 val* var234 /* : MClass */;
219 val* var236 /* : MClass */;
220 val* var237 /* : String */;
221 val* var239 /* : String */;
222 static val* varonce240;
223 val* var241 /* : String */;
224 char* var242 /* : CString */;
225 val* var243 /* : String */;
226 val* var244 /* : nullable Int */;
227 val* var245 /* : nullable Int */;
228 val* var246 /* : nullable Bool */;
229 val* var247 /* : nullable Bool */;
230 short int var248 /* : Bool */;
231 static val* varonce249;
232 val* var250 /* : String */;
233 char* var251 /* : CString */;
234 val* var252 /* : String */;
235 val* var253 /* : nullable Int */;
236 val* var254 /* : nullable Int */;
237 val* var255 /* : nullable Bool */;
238 val* var256 /* : nullable Bool */;
239 val* var257 /* : MClass */;
240 val* var259 /* : MClass */;
241 val* var260 /* : String */;
242 val* var262 /* : String */;
243 static val* varonce263;
244 val* var264 /* : String */;
245 char* var265 /* : CString */;
246 val* var266 /* : String */;
247 val* var267 /* : nullable Int */;
248 val* var268 /* : nullable Int */;
249 val* var269 /* : nullable Bool */;
250 val* var270 /* : nullable Bool */;
251 short int var271 /* : Bool */;
252 static val* varonce272;
253 val* var273 /* : String */;
254 char* var274 /* : CString */;
255 val* var275 /* : String */;
256 val* var276 /* : nullable Int */;
257 val* var277 /* : nullable Int */;
258 val* var278 /* : nullable Bool */;
259 val* var279 /* : nullable Bool */;
260 static val* varonce280;
261 val* var281 /* : String */;
262 char* var282 /* : CString */;
263 val* var283 /* : String */;
264 val* var284 /* : nullable Int */;
265 val* var285 /* : nullable Int */;
266 val* var286 /* : nullable Bool */;
267 val* var287 /* : nullable Bool */;
268 var1 = self->attrs[COLOR_nitc__abstract_compiler__MClassType___ctype].val != NULL; /* _ctype on <self:MClassType> */
269 if(likely(var1)) {
270 var2 = self->attrs[COLOR_nitc__abstract_compiler__MClassType___ctype].val; /* _ctype on <self:MClassType> */
271 if (unlikely(var2 == NULL)) {
272 if(catchStack.cursor >= 0){
273 longjmp(catchStack.envs[catchStack.cursor], 1);
274 }
275 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _ctype");
276 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2069);
277 fatal_exit(1);
278 }
279 } else {
280 {
281 {
282 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
283 var7 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
284 if (unlikely(var7 == NULL)) {
285 if(catchStack.cursor >= 0){
286 longjmp(catchStack.envs[catchStack.cursor], 1);
287 }
288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
289 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
290 fatal_exit(1);
291 }
292 var5 = var7;
293 RET_LABEL6:(void)0;
294 }
295 }
296 {
297 { /* Inline model$MClass$name (var5) on <var5:MClass> */
298 var10 = var5->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var5:MClass> */
299 if (unlikely(var10 == NULL)) {
300 if(catchStack.cursor >= 0){
301 longjmp(catchStack.envs[catchStack.cursor], 1);
302 }
303 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
304 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
305 fatal_exit(1);
306 }
307 var8 = var10;
308 RET_LABEL9:(void)0;
309 }
310 }
311 if (likely(varonce!=NULL)) {
312 var11 = varonce;
313 } else {
314 var12 = "Int";
315 var14 = (val*)(3l<<2|1);
316 var15 = (val*)(3l<<2|1);
317 var16 = (val*)((long)(0)<<2|3);
318 var17 = (val*)((long)(0)<<2|3);
319 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
320 var11 = var13;
321 varonce = var11;
322 }
323 {
324 var18 = ((short int(*)(val* self, val* p0))(var8->class->vft[COLOR_core__kernel__Object___61d_61d]))(var8, var11); /* == on <var8:String>*/
325 }
326 if (var18){
327 if (likely(varonce19!=NULL)) {
328 var20 = varonce19;
329 } else {
330 var21 = "long";
331 var23 = (val*)(4l<<2|1);
332 var24 = (val*)(4l<<2|1);
333 var25 = (val*)((long)(0)<<2|3);
334 var26 = (val*)((long)(0)<<2|3);
335 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
336 var20 = var22;
337 varonce19 = var20;
338 }
339 var3 = var20;
340 goto RET_LABEL4;
341 } else {
342 {
343 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
344 var29 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
345 if (unlikely(var29 == NULL)) {
346 if(catchStack.cursor >= 0){
347 longjmp(catchStack.envs[catchStack.cursor], 1);
348 }
349 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
350 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
351 fatal_exit(1);
352 }
353 var27 = var29;
354 RET_LABEL28:(void)0;
355 }
356 }
357 {
358 { /* Inline model$MClass$name (var27) on <var27:MClass> */
359 var32 = var27->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var27:MClass> */
360 if (unlikely(var32 == NULL)) {
361 if(catchStack.cursor >= 0){
362 longjmp(catchStack.envs[catchStack.cursor], 1);
363 }
364 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
365 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
366 fatal_exit(1);
367 }
368 var30 = var32;
369 RET_LABEL31:(void)0;
370 }
371 }
372 if (likely(varonce33!=NULL)) {
373 var34 = varonce33;
374 } else {
375 var35 = "Bool";
376 var37 = (val*)(4l<<2|1);
377 var38 = (val*)(4l<<2|1);
378 var39 = (val*)((long)(0)<<2|3);
379 var40 = (val*)((long)(0)<<2|3);
380 var36 = core__flat___CString___to_s_unsafe(var35, var37, var38, var39, var40);
381 var34 = var36;
382 varonce33 = var34;
383 }
384 {
385 var41 = ((short int(*)(val* self, val* p0))(var30->class->vft[COLOR_core__kernel__Object___61d_61d]))(var30, var34); /* == on <var30:String>*/
386 }
387 if (var41){
388 if (likely(varonce42!=NULL)) {
389 var43 = varonce42;
390 } else {
391 var44 = "short int";
392 var46 = (val*)(9l<<2|1);
393 var47 = (val*)(9l<<2|1);
394 var48 = (val*)((long)(0)<<2|3);
395 var49 = (val*)((long)(0)<<2|3);
396 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
397 var43 = var45;
398 varonce42 = var43;
399 }
400 var3 = var43;
401 goto RET_LABEL4;
402 } else {
403 {
404 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
405 var52 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
406 if (unlikely(var52 == NULL)) {
407 if(catchStack.cursor >= 0){
408 longjmp(catchStack.envs[catchStack.cursor], 1);
409 }
410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
412 fatal_exit(1);
413 }
414 var50 = var52;
415 RET_LABEL51:(void)0;
416 }
417 }
418 {
419 { /* Inline model$MClass$name (var50) on <var50:MClass> */
420 var55 = var50->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var50:MClass> */
421 if (unlikely(var55 == NULL)) {
422 if(catchStack.cursor >= 0){
423 longjmp(catchStack.envs[catchStack.cursor], 1);
424 }
425 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
426 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
427 fatal_exit(1);
428 }
429 var53 = var55;
430 RET_LABEL54:(void)0;
431 }
432 }
433 if (likely(varonce56!=NULL)) {
434 var57 = varonce56;
435 } else {
436 var58 = "Char";
437 var60 = (val*)(4l<<2|1);
438 var61 = (val*)(4l<<2|1);
439 var62 = (val*)((long)(0)<<2|3);
440 var63 = (val*)((long)(0)<<2|3);
441 var59 = core__flat___CString___to_s_unsafe(var58, var60, var61, var62, var63);
442 var57 = var59;
443 varonce56 = var57;
444 }
445 {
446 var64 = ((short int(*)(val* self, val* p0))(var53->class->vft[COLOR_core__kernel__Object___61d_61d]))(var53, var57); /* == on <var53:String>*/
447 }
448 if (var64){
449 if (likely(varonce65!=NULL)) {
450 var66 = varonce65;
451 } else {
452 var67 = "uint32_t";
453 var69 = (val*)(8l<<2|1);
454 var70 = (val*)(8l<<2|1);
455 var71 = (val*)((long)(0)<<2|3);
456 var72 = (val*)((long)(0)<<2|3);
457 var68 = core__flat___CString___to_s_unsafe(var67, var69, var70, var71, var72);
458 var66 = var68;
459 varonce65 = var66;
460 }
461 var3 = var66;
462 goto RET_LABEL4;
463 } else {
464 {
465 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
466 var75 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
467 if (unlikely(var75 == NULL)) {
468 if(catchStack.cursor >= 0){
469 longjmp(catchStack.envs[catchStack.cursor], 1);
470 }
471 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
472 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
473 fatal_exit(1);
474 }
475 var73 = var75;
476 RET_LABEL74:(void)0;
477 }
478 }
479 {
480 { /* Inline model$MClass$name (var73) on <var73:MClass> */
481 var78 = var73->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var73:MClass> */
482 if (unlikely(var78 == NULL)) {
483 if(catchStack.cursor >= 0){
484 longjmp(catchStack.envs[catchStack.cursor], 1);
485 }
486 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
487 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
488 fatal_exit(1);
489 }
490 var76 = var78;
491 RET_LABEL77:(void)0;
492 }
493 }
494 if (likely(varonce79!=NULL)) {
495 var80 = varonce79;
496 } else {
497 var81 = "Float";
498 var83 = (val*)(5l<<2|1);
499 var84 = (val*)(5l<<2|1);
500 var85 = (val*)((long)(0)<<2|3);
501 var86 = (val*)((long)(0)<<2|3);
502 var82 = core__flat___CString___to_s_unsafe(var81, var83, var84, var85, var86);
503 var80 = var82;
504 varonce79 = var80;
505 }
506 {
507 var87 = ((short int(*)(val* self, val* p0))(var76->class->vft[COLOR_core__kernel__Object___61d_61d]))(var76, var80); /* == on <var76:String>*/
508 }
509 if (var87){
510 if (likely(varonce88!=NULL)) {
511 var89 = varonce88;
512 } else {
513 var90 = "double";
514 var92 = (val*)(6l<<2|1);
515 var93 = (val*)(6l<<2|1);
516 var94 = (val*)((long)(0)<<2|3);
517 var95 = (val*)((long)(0)<<2|3);
518 var91 = core__flat___CString___to_s_unsafe(var90, var92, var93, var94, var95);
519 var89 = var91;
520 varonce88 = var89;
521 }
522 var3 = var89;
523 goto RET_LABEL4;
524 } else {
525 {
526 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
527 var98 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
528 if (unlikely(var98 == NULL)) {
529 if(catchStack.cursor >= 0){
530 longjmp(catchStack.envs[catchStack.cursor], 1);
531 }
532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
533 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
534 fatal_exit(1);
535 }
536 var96 = var98;
537 RET_LABEL97:(void)0;
538 }
539 }
540 {
541 { /* Inline model$MClass$name (var96) on <var96:MClass> */
542 var101 = var96->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var96:MClass> */
543 if (unlikely(var101 == NULL)) {
544 if(catchStack.cursor >= 0){
545 longjmp(catchStack.envs[catchStack.cursor], 1);
546 }
547 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
548 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
549 fatal_exit(1);
550 }
551 var99 = var101;
552 RET_LABEL100:(void)0;
553 }
554 }
555 if (likely(varonce102!=NULL)) {
556 var103 = varonce102;
557 } else {
558 var104 = "Int8";
559 var106 = (val*)(4l<<2|1);
560 var107 = (val*)(4l<<2|1);
561 var108 = (val*)((long)(0)<<2|3);
562 var109 = (val*)((long)(0)<<2|3);
563 var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109);
564 var103 = var105;
565 varonce102 = var103;
566 }
567 {
568 var110 = ((short int(*)(val* self, val* p0))(var99->class->vft[COLOR_core__kernel__Object___61d_61d]))(var99, var103); /* == on <var99:String>*/
569 }
570 if (var110){
571 if (likely(varonce111!=NULL)) {
572 var112 = varonce111;
573 } else {
574 var113 = "int8_t";
575 var115 = (val*)(6l<<2|1);
576 var116 = (val*)(6l<<2|1);
577 var117 = (val*)((long)(0)<<2|3);
578 var118 = (val*)((long)(0)<<2|3);
579 var114 = core__flat___CString___to_s_unsafe(var113, var115, var116, var117, var118);
580 var112 = var114;
581 varonce111 = var112;
582 }
583 var3 = var112;
584 goto RET_LABEL4;
585 } else {
586 {
587 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
588 var121 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
589 if (unlikely(var121 == NULL)) {
590 if(catchStack.cursor >= 0){
591 longjmp(catchStack.envs[catchStack.cursor], 1);
592 }
593 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
594 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
595 fatal_exit(1);
596 }
597 var119 = var121;
598 RET_LABEL120:(void)0;
599 }
600 }
601 {
602 { /* Inline model$MClass$name (var119) on <var119:MClass> */
603 var124 = var119->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var119:MClass> */
604 if (unlikely(var124 == NULL)) {
605 if(catchStack.cursor >= 0){
606 longjmp(catchStack.envs[catchStack.cursor], 1);
607 }
608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
609 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
610 fatal_exit(1);
611 }
612 var122 = var124;
613 RET_LABEL123:(void)0;
614 }
615 }
616 if (likely(varonce125!=NULL)) {
617 var126 = varonce125;
618 } else {
619 var127 = "Byte";
620 var129 = (val*)(4l<<2|1);
621 var130 = (val*)(4l<<2|1);
622 var131 = (val*)((long)(0)<<2|3);
623 var132 = (val*)((long)(0)<<2|3);
624 var128 = core__flat___CString___to_s_unsafe(var127, var129, var130, var131, var132);
625 var126 = var128;
626 varonce125 = var126;
627 }
628 {
629 var133 = ((short int(*)(val* self, val* p0))(var122->class->vft[COLOR_core__kernel__Object___61d_61d]))(var122, var126); /* == on <var122:String>*/
630 }
631 if (var133){
632 if (likely(varonce134!=NULL)) {
633 var135 = varonce134;
634 } else {
635 var136 = "unsigned char";
636 var138 = (val*)(13l<<2|1);
637 var139 = (val*)(13l<<2|1);
638 var140 = (val*)((long)(0)<<2|3);
639 var141 = (val*)((long)(0)<<2|3);
640 var137 = core__flat___CString___to_s_unsafe(var136, var138, var139, var140, var141);
641 var135 = var137;
642 varonce134 = var135;
643 }
644 var3 = var135;
645 goto RET_LABEL4;
646 } else {
647 {
648 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
649 var144 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
650 if (unlikely(var144 == NULL)) {
651 if(catchStack.cursor >= 0){
652 longjmp(catchStack.envs[catchStack.cursor], 1);
653 }
654 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
655 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
656 fatal_exit(1);
657 }
658 var142 = var144;
659 RET_LABEL143:(void)0;
660 }
661 }
662 {
663 { /* Inline model$MClass$name (var142) on <var142:MClass> */
664 var147 = var142->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var142:MClass> */
665 if (unlikely(var147 == NULL)) {
666 if(catchStack.cursor >= 0){
667 longjmp(catchStack.envs[catchStack.cursor], 1);
668 }
669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
670 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
671 fatal_exit(1);
672 }
673 var145 = var147;
674 RET_LABEL146:(void)0;
675 }
676 }
677 if (likely(varonce148!=NULL)) {
678 var149 = varonce148;
679 } else {
680 var150 = "Int16";
681 var152 = (val*)(5l<<2|1);
682 var153 = (val*)(5l<<2|1);
683 var154 = (val*)((long)(0)<<2|3);
684 var155 = (val*)((long)(0)<<2|3);
685 var151 = core__flat___CString___to_s_unsafe(var150, var152, var153, var154, var155);
686 var149 = var151;
687 varonce148 = var149;
688 }
689 {
690 var156 = ((short int(*)(val* self, val* p0))(var145->class->vft[COLOR_core__kernel__Object___61d_61d]))(var145, var149); /* == on <var145:String>*/
691 }
692 if (var156){
693 if (likely(varonce157!=NULL)) {
694 var158 = varonce157;
695 } else {
696 var159 = "int16_t";
697 var161 = (val*)(7l<<2|1);
698 var162 = (val*)(7l<<2|1);
699 var163 = (val*)((long)(0)<<2|3);
700 var164 = (val*)((long)(0)<<2|3);
701 var160 = core__flat___CString___to_s_unsafe(var159, var161, var162, var163, var164);
702 var158 = var160;
703 varonce157 = var158;
704 }
705 var3 = var158;
706 goto RET_LABEL4;
707 } else {
708 {
709 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
710 var167 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
711 if (unlikely(var167 == NULL)) {
712 if(catchStack.cursor >= 0){
713 longjmp(catchStack.envs[catchStack.cursor], 1);
714 }
715 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
716 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
717 fatal_exit(1);
718 }
719 var165 = var167;
720 RET_LABEL166:(void)0;
721 }
722 }
723 {
724 { /* Inline model$MClass$name (var165) on <var165:MClass> */
725 var170 = var165->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var165:MClass> */
726 if (unlikely(var170 == NULL)) {
727 if(catchStack.cursor >= 0){
728 longjmp(catchStack.envs[catchStack.cursor], 1);
729 }
730 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
731 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
732 fatal_exit(1);
733 }
734 var168 = var170;
735 RET_LABEL169:(void)0;
736 }
737 }
738 if (likely(varonce171!=NULL)) {
739 var172 = varonce171;
740 } else {
741 var173 = "UInt16";
742 var175 = (val*)(6l<<2|1);
743 var176 = (val*)(6l<<2|1);
744 var177 = (val*)((long)(0)<<2|3);
745 var178 = (val*)((long)(0)<<2|3);
746 var174 = core__flat___CString___to_s_unsafe(var173, var175, var176, var177, var178);
747 var172 = var174;
748 varonce171 = var172;
749 }
750 {
751 var179 = ((short int(*)(val* self, val* p0))(var168->class->vft[COLOR_core__kernel__Object___61d_61d]))(var168, var172); /* == on <var168:String>*/
752 }
753 if (var179){
754 if (likely(varonce180!=NULL)) {
755 var181 = varonce180;
756 } else {
757 var182 = "uint16_t";
758 var184 = (val*)(8l<<2|1);
759 var185 = (val*)(8l<<2|1);
760 var186 = (val*)((long)(0)<<2|3);
761 var187 = (val*)((long)(0)<<2|3);
762 var183 = core__flat___CString___to_s_unsafe(var182, var184, var185, var186, var187);
763 var181 = var183;
764 varonce180 = var181;
765 }
766 var3 = var181;
767 goto RET_LABEL4;
768 } else {
769 {
770 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
771 var190 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
772 if (unlikely(var190 == NULL)) {
773 if(catchStack.cursor >= 0){
774 longjmp(catchStack.envs[catchStack.cursor], 1);
775 }
776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
777 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
778 fatal_exit(1);
779 }
780 var188 = var190;
781 RET_LABEL189:(void)0;
782 }
783 }
784 {
785 { /* Inline model$MClass$name (var188) on <var188:MClass> */
786 var193 = var188->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var188:MClass> */
787 if (unlikely(var193 == NULL)) {
788 if(catchStack.cursor >= 0){
789 longjmp(catchStack.envs[catchStack.cursor], 1);
790 }
791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
792 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
793 fatal_exit(1);
794 }
795 var191 = var193;
796 RET_LABEL192:(void)0;
797 }
798 }
799 if (likely(varonce194!=NULL)) {
800 var195 = varonce194;
801 } else {
802 var196 = "Int32";
803 var198 = (val*)(5l<<2|1);
804 var199 = (val*)(5l<<2|1);
805 var200 = (val*)((long)(0)<<2|3);
806 var201 = (val*)((long)(0)<<2|3);
807 var197 = core__flat___CString___to_s_unsafe(var196, var198, var199, var200, var201);
808 var195 = var197;
809 varonce194 = var195;
810 }
811 {
812 var202 = ((short int(*)(val* self, val* p0))(var191->class->vft[COLOR_core__kernel__Object___61d_61d]))(var191, var195); /* == on <var191:String>*/
813 }
814 if (var202){
815 if (likely(varonce203!=NULL)) {
816 var204 = varonce203;
817 } else {
818 var205 = "int32_t";
819 var207 = (val*)(7l<<2|1);
820 var208 = (val*)(7l<<2|1);
821 var209 = (val*)((long)(0)<<2|3);
822 var210 = (val*)((long)(0)<<2|3);
823 var206 = core__flat___CString___to_s_unsafe(var205, var207, var208, var209, var210);
824 var204 = var206;
825 varonce203 = var204;
826 }
827 var3 = var204;
828 goto RET_LABEL4;
829 } else {
830 {
831 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
832 var213 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
833 if (unlikely(var213 == NULL)) {
834 if(catchStack.cursor >= 0){
835 longjmp(catchStack.envs[catchStack.cursor], 1);
836 }
837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
839 fatal_exit(1);
840 }
841 var211 = var213;
842 RET_LABEL212:(void)0;
843 }
844 }
845 {
846 { /* Inline model$MClass$name (var211) on <var211:MClass> */
847 var216 = var211->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var211:MClass> */
848 if (unlikely(var216 == NULL)) {
849 if(catchStack.cursor >= 0){
850 longjmp(catchStack.envs[catchStack.cursor], 1);
851 }
852 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
853 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
854 fatal_exit(1);
855 }
856 var214 = var216;
857 RET_LABEL215:(void)0;
858 }
859 }
860 if (likely(varonce217!=NULL)) {
861 var218 = varonce217;
862 } else {
863 var219 = "UInt32";
864 var221 = (val*)(6l<<2|1);
865 var222 = (val*)(6l<<2|1);
866 var223 = (val*)((long)(0)<<2|3);
867 var224 = (val*)((long)(0)<<2|3);
868 var220 = core__flat___CString___to_s_unsafe(var219, var221, var222, var223, var224);
869 var218 = var220;
870 varonce217 = var218;
871 }
872 {
873 var225 = ((short int(*)(val* self, val* p0))(var214->class->vft[COLOR_core__kernel__Object___61d_61d]))(var214, var218); /* == on <var214:String>*/
874 }
875 if (var225){
876 if (likely(varonce226!=NULL)) {
877 var227 = varonce226;
878 } else {
879 var228 = "uint32_t";
880 var230 = (val*)(8l<<2|1);
881 var231 = (val*)(8l<<2|1);
882 var232 = (val*)((long)(0)<<2|3);
883 var233 = (val*)((long)(0)<<2|3);
884 var229 = core__flat___CString___to_s_unsafe(var228, var230, var231, var232, var233);
885 var227 = var229;
886 varonce226 = var227;
887 }
888 var3 = var227;
889 goto RET_LABEL4;
890 } else {
891 {
892 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
893 var236 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
894 if (unlikely(var236 == NULL)) {
895 if(catchStack.cursor >= 0){
896 longjmp(catchStack.envs[catchStack.cursor], 1);
897 }
898 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
899 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
900 fatal_exit(1);
901 }
902 var234 = var236;
903 RET_LABEL235:(void)0;
904 }
905 }
906 {
907 { /* Inline model$MClass$name (var234) on <var234:MClass> */
908 var239 = var234->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var234:MClass> */
909 if (unlikely(var239 == NULL)) {
910 if(catchStack.cursor >= 0){
911 longjmp(catchStack.envs[catchStack.cursor], 1);
912 }
913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
914 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
915 fatal_exit(1);
916 }
917 var237 = var239;
918 RET_LABEL238:(void)0;
919 }
920 }
921 if (likely(varonce240!=NULL)) {
922 var241 = varonce240;
923 } else {
924 var242 = "CString";
925 var244 = (val*)(7l<<2|1);
926 var245 = (val*)(7l<<2|1);
927 var246 = (val*)((long)(0)<<2|3);
928 var247 = (val*)((long)(0)<<2|3);
929 var243 = core__flat___CString___to_s_unsafe(var242, var244, var245, var246, var247);
930 var241 = var243;
931 varonce240 = var241;
932 }
933 {
934 var248 = ((short int(*)(val* self, val* p0))(var237->class->vft[COLOR_core__kernel__Object___61d_61d]))(var237, var241); /* == on <var237:String>*/
935 }
936 if (var248){
937 if (likely(varonce249!=NULL)) {
938 var250 = varonce249;
939 } else {
940 var251 = "char*";
941 var253 = (val*)(5l<<2|1);
942 var254 = (val*)(5l<<2|1);
943 var255 = (val*)((long)(0)<<2|3);
944 var256 = (val*)((long)(0)<<2|3);
945 var252 = core__flat___CString___to_s_unsafe(var251, var253, var254, var255, var256);
946 var250 = var252;
947 varonce249 = var250;
948 }
949 var3 = var250;
950 goto RET_LABEL4;
951 } else {
952 {
953 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
954 var259 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
955 if (unlikely(var259 == NULL)) {
956 if(catchStack.cursor >= 0){
957 longjmp(catchStack.envs[catchStack.cursor], 1);
958 }
959 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
960 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
961 fatal_exit(1);
962 }
963 var257 = var259;
964 RET_LABEL258:(void)0;
965 }
966 }
967 {
968 { /* Inline model$MClass$name (var257) on <var257:MClass> */
969 var262 = var257->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var257:MClass> */
970 if (unlikely(var262 == NULL)) {
971 if(catchStack.cursor >= 0){
972 longjmp(catchStack.envs[catchStack.cursor], 1);
973 }
974 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
975 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
976 fatal_exit(1);
977 }
978 var260 = var262;
979 RET_LABEL261:(void)0;
980 }
981 }
982 if (likely(varonce263!=NULL)) {
983 var264 = varonce263;
984 } else {
985 var265 = "NativeArray";
986 var267 = (val*)(11l<<2|1);
987 var268 = (val*)(11l<<2|1);
988 var269 = (val*)((long)(0)<<2|3);
989 var270 = (val*)((long)(0)<<2|3);
990 var266 = core__flat___CString___to_s_unsafe(var265, var267, var268, var269, var270);
991 var264 = var266;
992 varonce263 = var264;
993 }
994 {
995 var271 = ((short int(*)(val* self, val* p0))(var260->class->vft[COLOR_core__kernel__Object___61d_61d]))(var260, var264); /* == on <var260:String>*/
996 }
997 if (var271){
998 if (likely(varonce272!=NULL)) {
999 var273 = varonce272;
1000 } else {
1001 var274 = "val*";
1002 var276 = (val*)(4l<<2|1);
1003 var277 = (val*)(4l<<2|1);
1004 var278 = (val*)((long)(0)<<2|3);
1005 var279 = (val*)((long)(0)<<2|3);
1006 var275 = core__flat___CString___to_s_unsafe(var274, var276, var277, var278, var279);
1007 var273 = var275;
1008 varonce272 = var273;
1009 }
1010 var3 = var273;
1011 goto RET_LABEL4;
1012 } else {
1013 if (likely(varonce280!=NULL)) {
1014 var281 = varonce280;
1015 } else {
1016 var282 = "val*";
1017 var284 = (val*)(4l<<2|1);
1018 var285 = (val*)(4l<<2|1);
1019 var286 = (val*)((long)(0)<<2|3);
1020 var287 = (val*)((long)(0)<<2|3);
1021 var283 = core__flat___CString___to_s_unsafe(var282, var284, var285, var286, var287);
1022 var281 = var283;
1023 varonce280 = var281;
1024 }
1025 var3 = var281;
1026 goto RET_LABEL4;
1027 }
1028 }
1029 }
1030 }
1031 }
1032 }
1033 }
1034 }
1035 }
1036 }
1037 }
1038 }
1039 RET_LABEL4:(void)0;
1040 }
1041 self->attrs[COLOR_nitc__abstract_compiler__MClassType___ctype].val = var3; /* _ctype on <self:MClassType> */
1042 var2 = var3;
1043 }
1044 var = var2;
1045 RET_LABEL:;
1046 return var;
1047 }
1048 /* method abstract_compiler$MClassType$is_c_primitive for (self: MClassType): Bool */
1049 short int nitc__abstract_compiler___MClassType___MType__is_c_primitive(val* self) {
1050 short int var /* : Bool */;
1051 short int var1 /* : Bool */;
1052 short int var2 /* : Bool */;
1053 short int var3 /* : Bool */;
1054 val* var5 /* : String */;
1055 static val* varonce;
1056 val* var6 /* : String */;
1057 char* var7 /* : CString */;
1058 val* var8 /* : String */;
1059 val* var9 /* : nullable Int */;
1060 val* var10 /* : nullable Int */;
1061 val* var11 /* : nullable Bool */;
1062 val* var12 /* : nullable Bool */;
1063 short int var13 /* : Bool */;
1064 val* var_other /* var other: nullable Object */;
1065 short int var15 /* : Bool */;
1066 short int var16 /* : Bool */;
1067 var1 = self->attrs[COLOR_nitc__abstract_compiler__MClassType__lazy_32d_is_c_primitive].s; /* lazy _is_c_primitive on <self:MClassType> */
1068 if(likely(var1)) {
1069 var2 = self->attrs[COLOR_nitc__abstract_compiler__MClassType___is_c_primitive].s; /* _is_c_primitive on <self:MClassType> */
1070 } else {
1071 {
1072 {
1073 var5 = nitc__abstract_compiler___MClassType___MType__ctype(self);
1074 }
1075 if (likely(varonce!=NULL)) {
1076 var6 = varonce;
1077 } else {
1078 var7 = "val*";
1079 var9 = (val*)(4l<<2|1);
1080 var10 = (val*)(4l<<2|1);
1081 var11 = (val*)((long)(0)<<2|3);
1082 var12 = (val*)((long)(0)<<2|3);
1083 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
1084 var6 = var8;
1085 varonce = var6;
1086 }
1087 {
1088 { /* Inline kernel$Object$!= (var5,var6) on <var5:String> */
1089 var_other = var6;
1090 {
1091 var15 = ((short int(*)(val* self, val* p0))(var5->class->vft[COLOR_core__kernel__Object___61d_61d]))(var5, var_other); /* == on <var5:String>*/
1092 }
1093 var16 = !var15;
1094 var13 = var16;
1095 goto RET_LABEL14;
1096 RET_LABEL14:(void)0;
1097 }
1098 }
1099 var3 = var13;
1100 goto RET_LABEL4;
1101 RET_LABEL4:(void)0;
1102 }
1103 self->attrs[COLOR_nitc__abstract_compiler__MClassType___is_c_primitive].s = var3; /* _is_c_primitive on <self:MClassType> */
1104 var2 = var3;
1105 self->attrs[COLOR_nitc__abstract_compiler__MClassType__lazy_32d_is_c_primitive].s = 1; /* lazy _is_c_primitive on <self:MClassType> */
1106 }
1107 var = var2;
1108 RET_LABEL:;
1109 return var;
1110 }
1111 /* method abstract_compiler$MClassType$ctype_extern for (self: MClassType): String */
1112 val* nitc__abstract_compiler___MClassType___MType__ctype_extern(val* self) {
1113 val* var /* : String */;
1114 val* var1 /* : MClass */;
1115 val* var3 /* : MClass */;
1116 val* var4 /* : MClassKind */;
1117 val* var6 /* : MClassKind */;
1118 val* var7 /* : Sys */;
1119 val* var8 /* : MClassKind */;
1120 short int var9 /* : Bool */;
1121 val* var_other /* var other: nullable Object */;
1122 short int var11 /* : Bool */;
1123 short int var13 /* : Bool */;
1124 static val* varonce;
1125 val* var14 /* : String */;
1126 char* var15 /* : CString */;
1127 val* var16 /* : String */;
1128 val* var17 /* : nullable Int */;
1129 val* var18 /* : nullable Int */;
1130 val* var19 /* : nullable Bool */;
1131 val* var20 /* : nullable Bool */;
1132 val* var21 /* : String */;
1133 {
1134 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1135 var3 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1136 if (unlikely(var3 == NULL)) {
1137 if(catchStack.cursor >= 0){
1138 longjmp(catchStack.envs[catchStack.cursor], 1);
1139 }
1140 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1141 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1142 fatal_exit(1);
1143 }
1144 var1 = var3;
1145 RET_LABEL2:(void)0;
1146 }
1147 }
1148 {
1149 { /* Inline model$MClass$kind (var1) on <var1:MClass> */
1150 var6 = var1->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var1:MClass> */
1151 if (unlikely(var6 == NULL)) {
1152 if(catchStack.cursor >= 0){
1153 longjmp(catchStack.envs[catchStack.cursor], 1);
1154 }
1155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
1156 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
1157 fatal_exit(1);
1158 }
1159 var4 = var6;
1160 RET_LABEL5:(void)0;
1161 }
1162 }
1163 var7 = glob_sys;
1164 {
1165 var8 = nitc__model___core__Sys___extern_kind(var7);
1166 }
1167 {
1168 { /* Inline kernel$Object$== (var4,var8) on <var4:MClassKind> */
1169 var_other = var8;
1170 {
1171 { /* Inline kernel$Object$is_same_instance (var4,var_other) on <var4:MClassKind> */
1172 var13 = var4 == var_other;
1173 var11 = var13;
1174 goto RET_LABEL12;
1175 RET_LABEL12:(void)0;
1176 }
1177 }
1178 var9 = var11;
1179 goto RET_LABEL10;
1180 RET_LABEL10:(void)0;
1181 }
1182 }
1183 if (var9){
1184 if (likely(varonce!=NULL)) {
1185 var14 = varonce;
1186 } else {
1187 var15 = "void*";
1188 var17 = (val*)(5l<<2|1);
1189 var18 = (val*)(5l<<2|1);
1190 var19 = (val*)((long)(0)<<2|3);
1191 var20 = (val*)((long)(0)<<2|3);
1192 var16 = core__flat___CString___to_s_unsafe(var15, var17, var18, var19, var20);
1193 var14 = var16;
1194 varonce = var14;
1195 }
1196 var = var14;
1197 goto RET_LABEL;
1198 } else {
1199 {
1200 var21 = nitc__abstract_compiler___MClassType___MType__ctype(self);
1201 }
1202 var = var21;
1203 goto RET_LABEL;
1204 }
1205 RET_LABEL:;
1206 return var;
1207 }
1208 /* method abstract_compiler$MClassType$ctypename for (self: MClassType): String */
1209 val* nitc__abstract_compiler___MClassType___MType__ctypename(val* self) {
1210 val* var /* : String */;
1211 val* var1 /* : MClass */;
1212 val* var3 /* : MClass */;
1213 val* var4 /* : String */;
1214 val* var6 /* : String */;
1215 static val* varonce;
1216 val* var7 /* : String */;
1217 char* var8 /* : CString */;
1218 val* var9 /* : String */;
1219 val* var10 /* : nullable Int */;
1220 val* var11 /* : nullable Int */;
1221 val* var12 /* : nullable Bool */;
1222 val* var13 /* : nullable Bool */;
1223 short int var14 /* : Bool */;
1224 static val* varonce15;
1225 val* var16 /* : String */;
1226 char* var17 /* : CString */;
1227 val* var18 /* : String */;
1228 val* var19 /* : nullable Int */;
1229 val* var20 /* : nullable Int */;
1230 val* var21 /* : nullable Bool */;
1231 val* var22 /* : nullable Bool */;
1232 val* var23 /* : MClass */;
1233 val* var25 /* : MClass */;
1234 val* var26 /* : String */;
1235 val* var28 /* : String */;
1236 static val* varonce29;
1237 val* var30 /* : String */;
1238 char* var31 /* : CString */;
1239 val* var32 /* : String */;
1240 val* var33 /* : nullable Int */;
1241 val* var34 /* : nullable Int */;
1242 val* var35 /* : nullable Bool */;
1243 val* var36 /* : nullable Bool */;
1244 short int var37 /* : Bool */;
1245 static val* varonce38;
1246 val* var39 /* : String */;
1247 char* var40 /* : CString */;
1248 val* var41 /* : String */;
1249 val* var42 /* : nullable Int */;
1250 val* var43 /* : nullable Int */;
1251 val* var44 /* : nullable Bool */;
1252 val* var45 /* : nullable Bool */;
1253 val* var46 /* : MClass */;
1254 val* var48 /* : MClass */;
1255 val* var49 /* : String */;
1256 val* var51 /* : String */;
1257 static val* varonce52;
1258 val* var53 /* : String */;
1259 char* var54 /* : CString */;
1260 val* var55 /* : String */;
1261 val* var56 /* : nullable Int */;
1262 val* var57 /* : nullable Int */;
1263 val* var58 /* : nullable Bool */;
1264 val* var59 /* : nullable Bool */;
1265 short int var60 /* : Bool */;
1266 static val* varonce61;
1267 val* var62 /* : String */;
1268 char* var63 /* : CString */;
1269 val* var64 /* : String */;
1270 val* var65 /* : nullable Int */;
1271 val* var66 /* : nullable Int */;
1272 val* var67 /* : nullable Bool */;
1273 val* var68 /* : nullable Bool */;
1274 val* var69 /* : MClass */;
1275 val* var71 /* : MClass */;
1276 val* var72 /* : String */;
1277 val* var74 /* : String */;
1278 static val* varonce75;
1279 val* var76 /* : String */;
1280 char* var77 /* : CString */;
1281 val* var78 /* : String */;
1282 val* var79 /* : nullable Int */;
1283 val* var80 /* : nullable Int */;
1284 val* var81 /* : nullable Bool */;
1285 val* var82 /* : nullable Bool */;
1286 short int var83 /* : Bool */;
1287 static val* varonce84;
1288 val* var85 /* : String */;
1289 char* var86 /* : CString */;
1290 val* var87 /* : String */;
1291 val* var88 /* : nullable Int */;
1292 val* var89 /* : nullable Int */;
1293 val* var90 /* : nullable Bool */;
1294 val* var91 /* : nullable Bool */;
1295 val* var92 /* : MClass */;
1296 val* var94 /* : MClass */;
1297 val* var95 /* : String */;
1298 val* var97 /* : String */;
1299 static val* varonce98;
1300 val* var99 /* : String */;
1301 char* var100 /* : CString */;
1302 val* var101 /* : String */;
1303 val* var102 /* : nullable Int */;
1304 val* var103 /* : nullable Int */;
1305 val* var104 /* : nullable Bool */;
1306 val* var105 /* : nullable Bool */;
1307 short int var106 /* : Bool */;
1308 static val* varonce107;
1309 val* var108 /* : String */;
1310 char* var109 /* : CString */;
1311 val* var110 /* : String */;
1312 val* var111 /* : nullable Int */;
1313 val* var112 /* : nullable Int */;
1314 val* var113 /* : nullable Bool */;
1315 val* var114 /* : nullable Bool */;
1316 val* var115 /* : MClass */;
1317 val* var117 /* : MClass */;
1318 val* var118 /* : String */;
1319 val* var120 /* : String */;
1320 static val* varonce121;
1321 val* var122 /* : String */;
1322 char* var123 /* : CString */;
1323 val* var124 /* : String */;
1324 val* var125 /* : nullable Int */;
1325 val* var126 /* : nullable Int */;
1326 val* var127 /* : nullable Bool */;
1327 val* var128 /* : nullable Bool */;
1328 short int var129 /* : Bool */;
1329 static val* varonce130;
1330 val* var131 /* : String */;
1331 char* var132 /* : CString */;
1332 val* var133 /* : String */;
1333 val* var134 /* : nullable Int */;
1334 val* var135 /* : nullable Int */;
1335 val* var136 /* : nullable Bool */;
1336 val* var137 /* : nullable Bool */;
1337 val* var138 /* : MClass */;
1338 val* var140 /* : MClass */;
1339 val* var141 /* : String */;
1340 val* var143 /* : String */;
1341 static val* varonce144;
1342 val* var145 /* : String */;
1343 char* var146 /* : CString */;
1344 val* var147 /* : String */;
1345 val* var148 /* : nullable Int */;
1346 val* var149 /* : nullable Int */;
1347 val* var150 /* : nullable Bool */;
1348 val* var151 /* : nullable Bool */;
1349 short int var152 /* : Bool */;
1350 static val* varonce153;
1351 val* var154 /* : String */;
1352 char* var155 /* : CString */;
1353 val* var156 /* : String */;
1354 val* var157 /* : nullable Int */;
1355 val* var158 /* : nullable Int */;
1356 val* var159 /* : nullable Bool */;
1357 val* var160 /* : nullable Bool */;
1358 val* var161 /* : MClass */;
1359 val* var163 /* : MClass */;
1360 val* var164 /* : String */;
1361 val* var166 /* : String */;
1362 static val* varonce167;
1363 val* var168 /* : String */;
1364 char* var169 /* : CString */;
1365 val* var170 /* : String */;
1366 val* var171 /* : nullable Int */;
1367 val* var172 /* : nullable Int */;
1368 val* var173 /* : nullable Bool */;
1369 val* var174 /* : nullable Bool */;
1370 short int var175 /* : Bool */;
1371 static val* varonce176;
1372 val* var177 /* : String */;
1373 char* var178 /* : CString */;
1374 val* var179 /* : String */;
1375 val* var180 /* : nullable Int */;
1376 val* var181 /* : nullable Int */;
1377 val* var182 /* : nullable Bool */;
1378 val* var183 /* : nullable Bool */;
1379 val* var184 /* : MClass */;
1380 val* var186 /* : MClass */;
1381 val* var187 /* : String */;
1382 val* var189 /* : String */;
1383 static val* varonce190;
1384 val* var191 /* : String */;
1385 char* var192 /* : CString */;
1386 val* var193 /* : String */;
1387 val* var194 /* : nullable Int */;
1388 val* var195 /* : nullable Int */;
1389 val* var196 /* : nullable Bool */;
1390 val* var197 /* : nullable Bool */;
1391 short int var198 /* : Bool */;
1392 static val* varonce199;
1393 val* var200 /* : String */;
1394 char* var201 /* : CString */;
1395 val* var202 /* : String */;
1396 val* var203 /* : nullable Int */;
1397 val* var204 /* : nullable Int */;
1398 val* var205 /* : nullable Bool */;
1399 val* var206 /* : nullable Bool */;
1400 val* var207 /* : MClass */;
1401 val* var209 /* : MClass */;
1402 val* var210 /* : String */;
1403 val* var212 /* : String */;
1404 static val* varonce213;
1405 val* var214 /* : String */;
1406 char* var215 /* : CString */;
1407 val* var216 /* : String */;
1408 val* var217 /* : nullable Int */;
1409 val* var218 /* : nullable Int */;
1410 val* var219 /* : nullable Bool */;
1411 val* var220 /* : nullable Bool */;
1412 short int var221 /* : Bool */;
1413 static val* varonce222;
1414 val* var223 /* : String */;
1415 char* var224 /* : CString */;
1416 val* var225 /* : String */;
1417 val* var226 /* : nullable Int */;
1418 val* var227 /* : nullable Int */;
1419 val* var228 /* : nullable Bool */;
1420 val* var229 /* : nullable Bool */;
1421 val* var230 /* : MClass */;
1422 val* var232 /* : MClass */;
1423 val* var233 /* : String */;
1424 val* var235 /* : String */;
1425 static val* varonce236;
1426 val* var237 /* : String */;
1427 char* var238 /* : CString */;
1428 val* var239 /* : String */;
1429 val* var240 /* : nullable Int */;
1430 val* var241 /* : nullable Int */;
1431 val* var242 /* : nullable Bool */;
1432 val* var243 /* : nullable Bool */;
1433 short int var244 /* : Bool */;
1434 static val* varonce245;
1435 val* var246 /* : String */;
1436 char* var247 /* : CString */;
1437 val* var248 /* : String */;
1438 val* var249 /* : nullable Int */;
1439 val* var250 /* : nullable Int */;
1440 val* var251 /* : nullable Bool */;
1441 val* var252 /* : nullable Bool */;
1442 val* var253 /* : MClass */;
1443 val* var255 /* : MClass */;
1444 val* var256 /* : String */;
1445 val* var258 /* : String */;
1446 static val* varonce259;
1447 val* var260 /* : String */;
1448 char* var261 /* : CString */;
1449 val* var262 /* : String */;
1450 val* var263 /* : nullable Int */;
1451 val* var264 /* : nullable Int */;
1452 val* var265 /* : nullable Bool */;
1453 val* var266 /* : nullable Bool */;
1454 short int var267 /* : Bool */;
1455 static val* varonce268;
1456 val* var269 /* : String */;
1457 char* var270 /* : CString */;
1458 val* var271 /* : String */;
1459 val* var272 /* : nullable Int */;
1460 val* var273 /* : nullable Int */;
1461 val* var274 /* : nullable Bool */;
1462 val* var275 /* : nullable Bool */;
1463 static val* varonce276;
1464 val* var277 /* : String */;
1465 char* var278 /* : CString */;
1466 val* var279 /* : String */;
1467 val* var280 /* : nullable Int */;
1468 val* var281 /* : nullable Int */;
1469 val* var282 /* : nullable Bool */;
1470 val* var283 /* : nullable Bool */;
1471 {
1472 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1473 var3 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1474 if (unlikely(var3 == NULL)) {
1475 if(catchStack.cursor >= 0){
1476 longjmp(catchStack.envs[catchStack.cursor], 1);
1477 }
1478 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1479 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1480 fatal_exit(1);
1481 }
1482 var1 = var3;
1483 RET_LABEL2:(void)0;
1484 }
1485 }
1486 {
1487 { /* Inline model$MClass$name (var1) on <var1:MClass> */
1488 var6 = var1->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var1:MClass> */
1489 if (unlikely(var6 == NULL)) {
1490 if(catchStack.cursor >= 0){
1491 longjmp(catchStack.envs[catchStack.cursor], 1);
1492 }
1493 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1494 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1495 fatal_exit(1);
1496 }
1497 var4 = var6;
1498 RET_LABEL5:(void)0;
1499 }
1500 }
1501 if (likely(varonce!=NULL)) {
1502 var7 = varonce;
1503 } else {
1504 var8 = "Int";
1505 var10 = (val*)(3l<<2|1);
1506 var11 = (val*)(3l<<2|1);
1507 var12 = (val*)((long)(0)<<2|3);
1508 var13 = (val*)((long)(0)<<2|3);
1509 var9 = core__flat___CString___to_s_unsafe(var8, var10, var11, var12, var13);
1510 var7 = var9;
1511 varonce = var7;
1512 }
1513 {
1514 var14 = ((short int(*)(val* self, val* p0))(var4->class->vft[COLOR_core__kernel__Object___61d_61d]))(var4, var7); /* == on <var4:String>*/
1515 }
1516 if (var14){
1517 if (likely(varonce15!=NULL)) {
1518 var16 = varonce15;
1519 } else {
1520 var17 = "l";
1521 var19 = (val*)(1l<<2|1);
1522 var20 = (val*)(1l<<2|1);
1523 var21 = (val*)((long)(0)<<2|3);
1524 var22 = (val*)((long)(0)<<2|3);
1525 var18 = core__flat___CString___to_s_unsafe(var17, var19, var20, var21, var22);
1526 var16 = var18;
1527 varonce15 = var16;
1528 }
1529 var = var16;
1530 goto RET_LABEL;
1531 } else {
1532 {
1533 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1534 var25 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1535 if (unlikely(var25 == NULL)) {
1536 if(catchStack.cursor >= 0){
1537 longjmp(catchStack.envs[catchStack.cursor], 1);
1538 }
1539 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1540 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1541 fatal_exit(1);
1542 }
1543 var23 = var25;
1544 RET_LABEL24:(void)0;
1545 }
1546 }
1547 {
1548 { /* Inline model$MClass$name (var23) on <var23:MClass> */
1549 var28 = var23->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var23:MClass> */
1550 if (unlikely(var28 == NULL)) {
1551 if(catchStack.cursor >= 0){
1552 longjmp(catchStack.envs[catchStack.cursor], 1);
1553 }
1554 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1555 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1556 fatal_exit(1);
1557 }
1558 var26 = var28;
1559 RET_LABEL27:(void)0;
1560 }
1561 }
1562 if (likely(varonce29!=NULL)) {
1563 var30 = varonce29;
1564 } else {
1565 var31 = "Bool";
1566 var33 = (val*)(4l<<2|1);
1567 var34 = (val*)(4l<<2|1);
1568 var35 = (val*)((long)(0)<<2|3);
1569 var36 = (val*)((long)(0)<<2|3);
1570 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
1571 var30 = var32;
1572 varonce29 = var30;
1573 }
1574 {
1575 var37 = ((short int(*)(val* self, val* p0))(var26->class->vft[COLOR_core__kernel__Object___61d_61d]))(var26, var30); /* == on <var26:String>*/
1576 }
1577 if (var37){
1578 if (likely(varonce38!=NULL)) {
1579 var39 = varonce38;
1580 } else {
1581 var40 = "s";
1582 var42 = (val*)(1l<<2|1);
1583 var43 = (val*)(1l<<2|1);
1584 var44 = (val*)((long)(0)<<2|3);
1585 var45 = (val*)((long)(0)<<2|3);
1586 var41 = core__flat___CString___to_s_unsafe(var40, var42, var43, var44, var45);
1587 var39 = var41;
1588 varonce38 = var39;
1589 }
1590 var = var39;
1591 goto RET_LABEL;
1592 } else {
1593 {
1594 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1595 var48 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1596 if (unlikely(var48 == NULL)) {
1597 if(catchStack.cursor >= 0){
1598 longjmp(catchStack.envs[catchStack.cursor], 1);
1599 }
1600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1602 fatal_exit(1);
1603 }
1604 var46 = var48;
1605 RET_LABEL47:(void)0;
1606 }
1607 }
1608 {
1609 { /* Inline model$MClass$name (var46) on <var46:MClass> */
1610 var51 = var46->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var46:MClass> */
1611 if (unlikely(var51 == NULL)) {
1612 if(catchStack.cursor >= 0){
1613 longjmp(catchStack.envs[catchStack.cursor], 1);
1614 }
1615 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1616 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1617 fatal_exit(1);
1618 }
1619 var49 = var51;
1620 RET_LABEL50:(void)0;
1621 }
1622 }
1623 if (likely(varonce52!=NULL)) {
1624 var53 = varonce52;
1625 } else {
1626 var54 = "Char";
1627 var56 = (val*)(4l<<2|1);
1628 var57 = (val*)(4l<<2|1);
1629 var58 = (val*)((long)(0)<<2|3);
1630 var59 = (val*)((long)(0)<<2|3);
1631 var55 = core__flat___CString___to_s_unsafe(var54, var56, var57, var58, var59);
1632 var53 = var55;
1633 varonce52 = var53;
1634 }
1635 {
1636 var60 = ((short int(*)(val* self, val* p0))(var49->class->vft[COLOR_core__kernel__Object___61d_61d]))(var49, var53); /* == on <var49:String>*/
1637 }
1638 if (var60){
1639 if (likely(varonce61!=NULL)) {
1640 var62 = varonce61;
1641 } else {
1642 var63 = "c";
1643 var65 = (val*)(1l<<2|1);
1644 var66 = (val*)(1l<<2|1);
1645 var67 = (val*)((long)(0)<<2|3);
1646 var68 = (val*)((long)(0)<<2|3);
1647 var64 = core__flat___CString___to_s_unsafe(var63, var65, var66, var67, var68);
1648 var62 = var64;
1649 varonce61 = var62;
1650 }
1651 var = var62;
1652 goto RET_LABEL;
1653 } else {
1654 {
1655 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1656 var71 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1657 if (unlikely(var71 == NULL)) {
1658 if(catchStack.cursor >= 0){
1659 longjmp(catchStack.envs[catchStack.cursor], 1);
1660 }
1661 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1662 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1663 fatal_exit(1);
1664 }
1665 var69 = var71;
1666 RET_LABEL70:(void)0;
1667 }
1668 }
1669 {
1670 { /* Inline model$MClass$name (var69) on <var69:MClass> */
1671 var74 = var69->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var69:MClass> */
1672 if (unlikely(var74 == NULL)) {
1673 if(catchStack.cursor >= 0){
1674 longjmp(catchStack.envs[catchStack.cursor], 1);
1675 }
1676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1677 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1678 fatal_exit(1);
1679 }
1680 var72 = var74;
1681 RET_LABEL73:(void)0;
1682 }
1683 }
1684 if (likely(varonce75!=NULL)) {
1685 var76 = varonce75;
1686 } else {
1687 var77 = "Float";
1688 var79 = (val*)(5l<<2|1);
1689 var80 = (val*)(5l<<2|1);
1690 var81 = (val*)((long)(0)<<2|3);
1691 var82 = (val*)((long)(0)<<2|3);
1692 var78 = core__flat___CString___to_s_unsafe(var77, var79, var80, var81, var82);
1693 var76 = var78;
1694 varonce75 = var76;
1695 }
1696 {
1697 var83 = ((short int(*)(val* self, val* p0))(var72->class->vft[COLOR_core__kernel__Object___61d_61d]))(var72, var76); /* == on <var72:String>*/
1698 }
1699 if (var83){
1700 if (likely(varonce84!=NULL)) {
1701 var85 = varonce84;
1702 } else {
1703 var86 = "d";
1704 var88 = (val*)(1l<<2|1);
1705 var89 = (val*)(1l<<2|1);
1706 var90 = (val*)((long)(0)<<2|3);
1707 var91 = (val*)((long)(0)<<2|3);
1708 var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91);
1709 var85 = var87;
1710 varonce84 = var85;
1711 }
1712 var = var85;
1713 goto RET_LABEL;
1714 } else {
1715 {
1716 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1717 var94 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1718 if (unlikely(var94 == NULL)) {
1719 if(catchStack.cursor >= 0){
1720 longjmp(catchStack.envs[catchStack.cursor], 1);
1721 }
1722 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1723 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1724 fatal_exit(1);
1725 }
1726 var92 = var94;
1727 RET_LABEL93:(void)0;
1728 }
1729 }
1730 {
1731 { /* Inline model$MClass$name (var92) on <var92:MClass> */
1732 var97 = var92->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var92:MClass> */
1733 if (unlikely(var97 == NULL)) {
1734 if(catchStack.cursor >= 0){
1735 longjmp(catchStack.envs[catchStack.cursor], 1);
1736 }
1737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1738 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1739 fatal_exit(1);
1740 }
1741 var95 = var97;
1742 RET_LABEL96:(void)0;
1743 }
1744 }
1745 if (likely(varonce98!=NULL)) {
1746 var99 = varonce98;
1747 } else {
1748 var100 = "Int8";
1749 var102 = (val*)(4l<<2|1);
1750 var103 = (val*)(4l<<2|1);
1751 var104 = (val*)((long)(0)<<2|3);
1752 var105 = (val*)((long)(0)<<2|3);
1753 var101 = core__flat___CString___to_s_unsafe(var100, var102, var103, var104, var105);
1754 var99 = var101;
1755 varonce98 = var99;
1756 }
1757 {
1758 var106 = ((short int(*)(val* self, val* p0))(var95->class->vft[COLOR_core__kernel__Object___61d_61d]))(var95, var99); /* == on <var95:String>*/
1759 }
1760 if (var106){
1761 if (likely(varonce107!=NULL)) {
1762 var108 = varonce107;
1763 } else {
1764 var109 = "i8";
1765 var111 = (val*)(2l<<2|1);
1766 var112 = (val*)(2l<<2|1);
1767 var113 = (val*)((long)(0)<<2|3);
1768 var114 = (val*)((long)(0)<<2|3);
1769 var110 = core__flat___CString___to_s_unsafe(var109, var111, var112, var113, var114);
1770 var108 = var110;
1771 varonce107 = var108;
1772 }
1773 var = var108;
1774 goto RET_LABEL;
1775 } else {
1776 {
1777 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1778 var117 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1779 if (unlikely(var117 == NULL)) {
1780 if(catchStack.cursor >= 0){
1781 longjmp(catchStack.envs[catchStack.cursor], 1);
1782 }
1783 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1784 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1785 fatal_exit(1);
1786 }
1787 var115 = var117;
1788 RET_LABEL116:(void)0;
1789 }
1790 }
1791 {
1792 { /* Inline model$MClass$name (var115) on <var115:MClass> */
1793 var120 = var115->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var115:MClass> */
1794 if (unlikely(var120 == NULL)) {
1795 if(catchStack.cursor >= 0){
1796 longjmp(catchStack.envs[catchStack.cursor], 1);
1797 }
1798 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1799 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1800 fatal_exit(1);
1801 }
1802 var118 = var120;
1803 RET_LABEL119:(void)0;
1804 }
1805 }
1806 if (likely(varonce121!=NULL)) {
1807 var122 = varonce121;
1808 } else {
1809 var123 = "Byte";
1810 var125 = (val*)(4l<<2|1);
1811 var126 = (val*)(4l<<2|1);
1812 var127 = (val*)((long)(0)<<2|3);
1813 var128 = (val*)((long)(0)<<2|3);
1814 var124 = core__flat___CString___to_s_unsafe(var123, var125, var126, var127, var128);
1815 var122 = var124;
1816 varonce121 = var122;
1817 }
1818 {
1819 var129 = ((short int(*)(val* self, val* p0))(var118->class->vft[COLOR_core__kernel__Object___61d_61d]))(var118, var122); /* == on <var118:String>*/
1820 }
1821 if (var129){
1822 if (likely(varonce130!=NULL)) {
1823 var131 = varonce130;
1824 } else {
1825 var132 = "b";
1826 var134 = (val*)(1l<<2|1);
1827 var135 = (val*)(1l<<2|1);
1828 var136 = (val*)((long)(0)<<2|3);
1829 var137 = (val*)((long)(0)<<2|3);
1830 var133 = core__flat___CString___to_s_unsafe(var132, var134, var135, var136, var137);
1831 var131 = var133;
1832 varonce130 = var131;
1833 }
1834 var = var131;
1835 goto RET_LABEL;
1836 } else {
1837 {
1838 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1839 var140 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1840 if (unlikely(var140 == NULL)) {
1841 if(catchStack.cursor >= 0){
1842 longjmp(catchStack.envs[catchStack.cursor], 1);
1843 }
1844 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1845 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1846 fatal_exit(1);
1847 }
1848 var138 = var140;
1849 RET_LABEL139:(void)0;
1850 }
1851 }
1852 {
1853 { /* Inline model$MClass$name (var138) on <var138:MClass> */
1854 var143 = var138->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var138:MClass> */
1855 if (unlikely(var143 == NULL)) {
1856 if(catchStack.cursor >= 0){
1857 longjmp(catchStack.envs[catchStack.cursor], 1);
1858 }
1859 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1860 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1861 fatal_exit(1);
1862 }
1863 var141 = var143;
1864 RET_LABEL142:(void)0;
1865 }
1866 }
1867 if (likely(varonce144!=NULL)) {
1868 var145 = varonce144;
1869 } else {
1870 var146 = "Int16";
1871 var148 = (val*)(5l<<2|1);
1872 var149 = (val*)(5l<<2|1);
1873 var150 = (val*)((long)(0)<<2|3);
1874 var151 = (val*)((long)(0)<<2|3);
1875 var147 = core__flat___CString___to_s_unsafe(var146, var148, var149, var150, var151);
1876 var145 = var147;
1877 varonce144 = var145;
1878 }
1879 {
1880 var152 = ((short int(*)(val* self, val* p0))(var141->class->vft[COLOR_core__kernel__Object___61d_61d]))(var141, var145); /* == on <var141:String>*/
1881 }
1882 if (var152){
1883 if (likely(varonce153!=NULL)) {
1884 var154 = varonce153;
1885 } else {
1886 var155 = "i16";
1887 var157 = (val*)(3l<<2|1);
1888 var158 = (val*)(3l<<2|1);
1889 var159 = (val*)((long)(0)<<2|3);
1890 var160 = (val*)((long)(0)<<2|3);
1891 var156 = core__flat___CString___to_s_unsafe(var155, var157, var158, var159, var160);
1892 var154 = var156;
1893 varonce153 = var154;
1894 }
1895 var = var154;
1896 goto RET_LABEL;
1897 } else {
1898 {
1899 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1900 var163 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1901 if (unlikely(var163 == NULL)) {
1902 if(catchStack.cursor >= 0){
1903 longjmp(catchStack.envs[catchStack.cursor], 1);
1904 }
1905 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1906 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1907 fatal_exit(1);
1908 }
1909 var161 = var163;
1910 RET_LABEL162:(void)0;
1911 }
1912 }
1913 {
1914 { /* Inline model$MClass$name (var161) on <var161:MClass> */
1915 var166 = var161->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var161:MClass> */
1916 if (unlikely(var166 == NULL)) {
1917 if(catchStack.cursor >= 0){
1918 longjmp(catchStack.envs[catchStack.cursor], 1);
1919 }
1920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1921 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1922 fatal_exit(1);
1923 }
1924 var164 = var166;
1925 RET_LABEL165:(void)0;
1926 }
1927 }
1928 if (likely(varonce167!=NULL)) {
1929 var168 = varonce167;
1930 } else {
1931 var169 = "UInt16";
1932 var171 = (val*)(6l<<2|1);
1933 var172 = (val*)(6l<<2|1);
1934 var173 = (val*)((long)(0)<<2|3);
1935 var174 = (val*)((long)(0)<<2|3);
1936 var170 = core__flat___CString___to_s_unsafe(var169, var171, var172, var173, var174);
1937 var168 = var170;
1938 varonce167 = var168;
1939 }
1940 {
1941 var175 = ((short int(*)(val* self, val* p0))(var164->class->vft[COLOR_core__kernel__Object___61d_61d]))(var164, var168); /* == on <var164:String>*/
1942 }
1943 if (var175){
1944 if (likely(varonce176!=NULL)) {
1945 var177 = varonce176;
1946 } else {
1947 var178 = "u16";
1948 var180 = (val*)(3l<<2|1);
1949 var181 = (val*)(3l<<2|1);
1950 var182 = (val*)((long)(0)<<2|3);
1951 var183 = (val*)((long)(0)<<2|3);
1952 var179 = core__flat___CString___to_s_unsafe(var178, var180, var181, var182, var183);
1953 var177 = var179;
1954 varonce176 = var177;
1955 }
1956 var = var177;
1957 goto RET_LABEL;
1958 } else {
1959 {
1960 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
1961 var186 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
1962 if (unlikely(var186 == NULL)) {
1963 if(catchStack.cursor >= 0){
1964 longjmp(catchStack.envs[catchStack.cursor], 1);
1965 }
1966 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
1967 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
1968 fatal_exit(1);
1969 }
1970 var184 = var186;
1971 RET_LABEL185:(void)0;
1972 }
1973 }
1974 {
1975 { /* Inline model$MClass$name (var184) on <var184:MClass> */
1976 var189 = var184->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var184:MClass> */
1977 if (unlikely(var189 == NULL)) {
1978 if(catchStack.cursor >= 0){
1979 longjmp(catchStack.envs[catchStack.cursor], 1);
1980 }
1981 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1982 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
1983 fatal_exit(1);
1984 }
1985 var187 = var189;
1986 RET_LABEL188:(void)0;
1987 }
1988 }
1989 if (likely(varonce190!=NULL)) {
1990 var191 = varonce190;
1991 } else {
1992 var192 = "Int32";
1993 var194 = (val*)(5l<<2|1);
1994 var195 = (val*)(5l<<2|1);
1995 var196 = (val*)((long)(0)<<2|3);
1996 var197 = (val*)((long)(0)<<2|3);
1997 var193 = core__flat___CString___to_s_unsafe(var192, var194, var195, var196, var197);
1998 var191 = var193;
1999 varonce190 = var191;
2000 }
2001 {
2002 var198 = ((short int(*)(val* self, val* p0))(var187->class->vft[COLOR_core__kernel__Object___61d_61d]))(var187, var191); /* == on <var187:String>*/
2003 }
2004 if (var198){
2005 if (likely(varonce199!=NULL)) {
2006 var200 = varonce199;
2007 } else {
2008 var201 = "i32";
2009 var203 = (val*)(3l<<2|1);
2010 var204 = (val*)(3l<<2|1);
2011 var205 = (val*)((long)(0)<<2|3);
2012 var206 = (val*)((long)(0)<<2|3);
2013 var202 = core__flat___CString___to_s_unsafe(var201, var203, var204, var205, var206);
2014 var200 = var202;
2015 varonce199 = var200;
2016 }
2017 var = var200;
2018 goto RET_LABEL;
2019 } else {
2020 {
2021 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
2022 var209 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
2023 if (unlikely(var209 == NULL)) {
2024 if(catchStack.cursor >= 0){
2025 longjmp(catchStack.envs[catchStack.cursor], 1);
2026 }
2027 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2028 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
2029 fatal_exit(1);
2030 }
2031 var207 = var209;
2032 RET_LABEL208:(void)0;
2033 }
2034 }
2035 {
2036 { /* Inline model$MClass$name (var207) on <var207:MClass> */
2037 var212 = var207->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var207:MClass> */
2038 if (unlikely(var212 == NULL)) {
2039 if(catchStack.cursor >= 0){
2040 longjmp(catchStack.envs[catchStack.cursor], 1);
2041 }
2042 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2043 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
2044 fatal_exit(1);
2045 }
2046 var210 = var212;
2047 RET_LABEL211:(void)0;
2048 }
2049 }
2050 if (likely(varonce213!=NULL)) {
2051 var214 = varonce213;
2052 } else {
2053 var215 = "UInt32";
2054 var217 = (val*)(6l<<2|1);
2055 var218 = (val*)(6l<<2|1);
2056 var219 = (val*)((long)(0)<<2|3);
2057 var220 = (val*)((long)(0)<<2|3);
2058 var216 = core__flat___CString___to_s_unsafe(var215, var217, var218, var219, var220);
2059 var214 = var216;
2060 varonce213 = var214;
2061 }
2062 {
2063 var221 = ((short int(*)(val* self, val* p0))(var210->class->vft[COLOR_core__kernel__Object___61d_61d]))(var210, var214); /* == on <var210:String>*/
2064 }
2065 if (var221){
2066 if (likely(varonce222!=NULL)) {
2067 var223 = varonce222;
2068 } else {
2069 var224 = "u32";
2070 var226 = (val*)(3l<<2|1);
2071 var227 = (val*)(3l<<2|1);
2072 var228 = (val*)((long)(0)<<2|3);
2073 var229 = (val*)((long)(0)<<2|3);
2074 var225 = core__flat___CString___to_s_unsafe(var224, var226, var227, var228, var229);
2075 var223 = var225;
2076 varonce222 = var223;
2077 }
2078 var = var223;
2079 goto RET_LABEL;
2080 } else {
2081 {
2082 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
2083 var232 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
2084 if (unlikely(var232 == NULL)) {
2085 if(catchStack.cursor >= 0){
2086 longjmp(catchStack.envs[catchStack.cursor], 1);
2087 }
2088 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2089 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
2090 fatal_exit(1);
2091 }
2092 var230 = var232;
2093 RET_LABEL231:(void)0;
2094 }
2095 }
2096 {
2097 { /* Inline model$MClass$name (var230) on <var230:MClass> */
2098 var235 = var230->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var230:MClass> */
2099 if (unlikely(var235 == NULL)) {
2100 if(catchStack.cursor >= 0){
2101 longjmp(catchStack.envs[catchStack.cursor], 1);
2102 }
2103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2104 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
2105 fatal_exit(1);
2106 }
2107 var233 = var235;
2108 RET_LABEL234:(void)0;
2109 }
2110 }
2111 if (likely(varonce236!=NULL)) {
2112 var237 = varonce236;
2113 } else {
2114 var238 = "CString";
2115 var240 = (val*)(7l<<2|1);
2116 var241 = (val*)(7l<<2|1);
2117 var242 = (val*)((long)(0)<<2|3);
2118 var243 = (val*)((long)(0)<<2|3);
2119 var239 = core__flat___CString___to_s_unsafe(var238, var240, var241, var242, var243);
2120 var237 = var239;
2121 varonce236 = var237;
2122 }
2123 {
2124 var244 = ((short int(*)(val* self, val* p0))(var233->class->vft[COLOR_core__kernel__Object___61d_61d]))(var233, var237); /* == on <var233:String>*/
2125 }
2126 if (var244){
2127 if (likely(varonce245!=NULL)) {
2128 var246 = varonce245;
2129 } else {
2130 var247 = "str";
2131 var249 = (val*)(3l<<2|1);
2132 var250 = (val*)(3l<<2|1);
2133 var251 = (val*)((long)(0)<<2|3);
2134 var252 = (val*)((long)(0)<<2|3);
2135 var248 = core__flat___CString___to_s_unsafe(var247, var249, var250, var251, var252);
2136 var246 = var248;
2137 varonce245 = var246;
2138 }
2139 var = var246;
2140 goto RET_LABEL;
2141 } else {
2142 {
2143 { /* Inline model$MClassType$mclass (self) on <self:MClassType> */
2144 var255 = self->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <self:MClassType> */
2145 if (unlikely(var255 == NULL)) {
2146 if(catchStack.cursor >= 0){
2147 longjmp(catchStack.envs[catchStack.cursor], 1);
2148 }
2149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
2150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
2151 fatal_exit(1);
2152 }
2153 var253 = var255;
2154 RET_LABEL254:(void)0;
2155 }
2156 }
2157 {
2158 { /* Inline model$MClass$name (var253) on <var253:MClass> */
2159 var258 = var253->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var253:MClass> */
2160 if (unlikely(var258 == NULL)) {
2161 if(catchStack.cursor >= 0){
2162 longjmp(catchStack.envs[catchStack.cursor], 1);
2163 }
2164 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2165 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
2166 fatal_exit(1);
2167 }
2168 var256 = var258;
2169 RET_LABEL257:(void)0;
2170 }
2171 }
2172 if (likely(varonce259!=NULL)) {
2173 var260 = varonce259;
2174 } else {
2175 var261 = "NativeArray";
2176 var263 = (val*)(11l<<2|1);
2177 var264 = (val*)(11l<<2|1);
2178 var265 = (val*)((long)(0)<<2|3);
2179 var266 = (val*)((long)(0)<<2|3);
2180 var262 = core__flat___CString___to_s_unsafe(var261, var263, var264, var265, var266);
2181 var260 = var262;
2182 varonce259 = var260;
2183 }
2184 {
2185 var267 = ((short int(*)(val* self, val* p0))(var256->class->vft[COLOR_core__kernel__Object___61d_61d]))(var256, var260); /* == on <var256:String>*/
2186 }
2187 if (var267){
2188 if (likely(varonce268!=NULL)) {
2189 var269 = varonce268;
2190 } else {
2191 var270 = "val";
2192 var272 = (val*)(3l<<2|1);
2193 var273 = (val*)(3l<<2|1);
2194 var274 = (val*)((long)(0)<<2|3);
2195 var275 = (val*)((long)(0)<<2|3);
2196 var271 = core__flat___CString___to_s_unsafe(var270, var272, var273, var274, var275);
2197 var269 = var271;
2198 varonce268 = var269;
2199 }
2200 var = var269;
2201 goto RET_LABEL;
2202 } else {
2203 if (likely(varonce276!=NULL)) {
2204 var277 = varonce276;
2205 } else {
2206 var278 = "val";
2207 var280 = (val*)(3l<<2|1);
2208 var281 = (val*)(3l<<2|1);
2209 var282 = (val*)((long)(0)<<2|3);
2210 var283 = (val*)((long)(0)<<2|3);
2211 var279 = core__flat___CString___to_s_unsafe(var278, var280, var281, var282, var283);
2212 var277 = var279;
2213 varonce276 = var277;
2214 }
2215 var = var277;
2216 goto RET_LABEL;
2217 }
2218 }
2219 }
2220 }
2221 }
2222 }
2223 }
2224 }
2225 }
2226 }
2227 }
2228 }
2229 RET_LABEL:;
2230 return var;
2231 }
2232 /* method abstract_compiler$MMethodDef$can_inline for (self: MMethodDef, AbstractCompilerVisitor): Bool */
2233 short int nitc__abstract_compiler___MMethodDef___can_inline(val* self, val* p0) {
2234 short int var /* : Bool */;
2235 short int var1 /* : Bool */;
2236 int cltype;
2237 int idtype;
2238 const struct type* type_struct;
2239 const char* var_class_name;
2240 val* var_v /* var v: AbstractCompilerVisitor */;
2241 short int var2 /* : Bool */;
2242 short int var4 /* : Bool */;
2243 val* var5 /* : nullable Object */;
2244 val* var7 /* : nullable Object */;
2245 short int var8 /* : Bool */;
2246 short int var9 /* : Bool */;
2247 val* var10 /* : AbstractCompiler */;
2248 val* var12 /* : AbstractCompiler */;
2249 val* var13 /* : ModelBuilder */;
2250 val* var15 /* : ModelBuilder */;
2251 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2252 val* var16 /* : nullable ANode */;
2253 val* var_node /* var node: nullable ANode */;
2254 short int var17 /* : Bool */;
2255 int cltype18;
2256 int idtype19;
2257 short int var20 /* : Bool */;
2258 short int var21 /* : Bool */;
2259 int cltype22;
2260 int idtype23;
2261 short int var24 /* : Bool */;
2262 short int var25 /* : Bool */;
2263 val* var_other /* var other: nullable Object */;
2264 short int var27 /* : Bool */;
2265 short int var29 /* : Bool */;
2266 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
2267 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2268 type_struct = self->type->resolution_table->types[COLOR_nitc__abstract_compiler__MPropDef__VISITOR];
2269 cltype = type_struct->color;
2270 idtype = type_struct->id;
2271 if(cltype >= p0->type->table_size) {
2272 var1 = 0;
2273 } else {
2274 var1 = p0->type->type_table[cltype] == idtype;
2275 }
2276 if (unlikely(!var1)) {
2277 var_class_name = p0 == NULL ? "null" : p0->type->name;
2278 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
2279 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2148);
2280 fatal_exit(1);
2281 }
2282 var_v = p0;
2283 {
2284 { /* Inline model$MMethodDef$is_abstract (self) on <self:MMethodDef> */
2285 var4 = self->attrs[COLOR_nitc__model__MMethodDef___is_abstract].s; /* _is_abstract on <self:MMethodDef> */
2286 var2 = var4;
2287 RET_LABEL3:(void)0;
2288 }
2289 }
2290 if (var2){
2291 var = 1;
2292 goto RET_LABEL;
2293 } else {
2294 }
2295 {
2296 { /* Inline model$MMethodDef$constant_value (self) on <self:MMethodDef> */
2297 var7 = self->attrs[COLOR_nitc__model__MMethodDef___constant_value].val; /* _constant_value on <self:MMethodDef> */
2298 var5 = var7;
2299 RET_LABEL6:(void)0;
2300 }
2301 }
2302 if (var5 == NULL) {
2303 var8 = 0; /* is null */
2304 } else {
2305 var8 = 1; /* arg is null and recv is not */
2306 }
2307 if (0) {
2308 var9 = ((short int(*)(val* self, val* p0))((((long)var5&3)?class_info[((long)var5&3)]:var5->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var5, ((val*)NULL)); /* != on <var5:nullable Object>*/
2309 var8 = var9;
2310 }
2311 if (var8){
2312 var = 1;
2313 goto RET_LABEL;
2314 } else {
2315 }
2316 {
2317 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
2318 var12 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
2319 if (unlikely(var12 == NULL)) {
2320 if(catchStack.cursor >= 0){
2321 longjmp(catchStack.envs[catchStack.cursor], 1);
2322 }
2323 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2324 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
2325 fatal_exit(1);
2326 }
2327 var10 = var12;
2328 RET_LABEL11:(void)0;
2329 }
2330 }
2331 {
2332 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var10) on <var10:AbstractCompiler> */
2333 var15 = var10->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var10:AbstractCompiler> */
2334 if (unlikely(var15 == NULL)) {
2335 if(catchStack.cursor >= 0){
2336 longjmp(catchStack.envs[catchStack.cursor], 1);
2337 }
2338 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2339 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
2340 fatal_exit(1);
2341 }
2342 var13 = var15;
2343 RET_LABEL14:(void)0;
2344 }
2345 }
2346 var_modelbuilder = var13;
2347 {
2348 var16 = nitc__modelize_property___ModelBuilder___mpropdef2node(var_modelbuilder, self);
2349 }
2350 var_node = var16;
2351 /* <var_node:nullable ANode> isa APropdef */
2352 cltype18 = type_nitc__APropdef.color;
2353 idtype19 = type_nitc__APropdef.id;
2354 if(var_node == NULL) {
2355 var17 = 0;
2356 } else {
2357 if(cltype18 >= var_node->type->table_size) {
2358 var17 = 0;
2359 } else {
2360 var17 = var_node->type->type_table[cltype18] == idtype19;
2361 }
2362 }
2363 if (var17){
2364 {
2365 var20 = ((short int(*)(val* self))(var_node->class->vft[COLOR_nitc__abstract_compiler__APropdef__can_inline]))(var_node); /* can_inline on <var_node:nullable ANode(APropdef)>*/
2366 }
2367 var = var20;
2368 goto RET_LABEL;
2369 } else {
2370 /* <var_node:nullable ANode> isa AClassdef */
2371 cltype22 = type_nitc__AClassdef.color;
2372 idtype23 = type_nitc__AClassdef.id;
2373 if(var_node == NULL) {
2374 var21 = 0;
2375 } else {
2376 if(cltype22 >= var_node->type->table_size) {
2377 var21 = 0;
2378 } else {
2379 var21 = var_node->type->type_table[cltype22] == idtype23;
2380 }
2381 }
2382 if (var21){
2383 var = 1;
2384 goto RET_LABEL;
2385 } else {
2386 if (var_node == NULL) {
2387 var24 = 1; /* is null */
2388 } else {
2389 var24 = 0; /* arg is null but recv is not */
2390 }
2391 if (0) {
2392 { /* Inline kernel$Object$== (var_node,((val*)NULL)) on <var_node:nullable ANode> */
2393 var_other = ((val*)NULL);
2394 {
2395 { /* Inline kernel$Object$is_same_instance (var_node,var_other) on <var_node:nullable ANode(ANode)> */
2396 var29 = var_node == var_other;
2397 var27 = var29;
2398 goto RET_LABEL28;
2399 RET_LABEL28:(void)0;
2400 }
2401 }
2402 var25 = var27;
2403 goto RET_LABEL26;
2404 RET_LABEL26:(void)0;
2405 }
2406 var24 = var25;
2407 }
2408 if (var24){
2409 var = 1;
2410 goto RET_LABEL;
2411 } else {
2412 if(catchStack.cursor >= 0){
2413 longjmp(catchStack.envs[catchStack.cursor], 1);
2414 }
2415 PRINT_ERROR("Runtime error: %s", "Aborted");
2416 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2163);
2417 fatal_exit(1);
2418 }
2419 }
2420 }
2421 RET_LABEL:;
2422 return var;
2423 }
2424 /* method abstract_compiler$MMethodDef$compile_inside_to_c for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]): nullable RuntimeVariable */
2425 val* nitc__abstract_compiler___MMethodDef___compile_inside_to_c(val* self, val* p0, val* p1) {
2426 val* var /* : nullable RuntimeVariable */;
2427 short int var1 /* : Bool */;
2428 int cltype;
2429 int idtype;
2430 const struct type* type_struct;
2431 const char* var_class_name;
2432 val* var_v /* var v: AbstractCompilerVisitor */;
2433 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
2434 val* var2 /* : AbstractCompiler */;
2435 val* var4 /* : AbstractCompiler */;
2436 val* var5 /* : ModelBuilder */;
2437 val* var7 /* : ModelBuilder */;
2438 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
2439 val* var8 /* : nullable Object */;
2440 val* var10 /* : nullable Object */;
2441 val* var_val /* var val: nullable Object */;
2442 val* var11 /* : nullable ANode */;
2443 val* var_node /* var node: nullable ANode */;
2444 short int var12 /* : Bool */;
2445 short int var14 /* : Bool */;
2446 val* var15 /* : nullable Object */;
2447 val* var16 /* : String */;
2448 val* var_cn /* var cn: String */;
2449 val* var18 /* : NativeArray[String] */;
2450 static val* varonce;
2451 static val* varonce19;
2452 val* var20 /* : String */;
2453 char* var21 /* : CString */;
2454 val* var22 /* : String */;
2455 val* var23 /* : nullable Int */;
2456 val* var24 /* : nullable Int */;
2457 val* var25 /* : nullable Bool */;
2458 val* var26 /* : nullable Bool */;
2459 static val* varonce27;
2460 val* var28 /* : String */;
2461 char* var29 /* : CString */;
2462 val* var30 /* : String */;
2463 val* var31 /* : nullable Int */;
2464 val* var32 /* : nullable Int */;
2465 val* var33 /* : nullable Bool */;
2466 val* var34 /* : nullable Bool */;
2467 static val* varonce35;
2468 val* var36 /* : String */;
2469 char* var37 /* : CString */;
2470 val* var38 /* : String */;
2471 val* var39 /* : nullable Int */;
2472 val* var40 /* : nullable Int */;
2473 val* var41 /* : nullable Bool */;
2474 val* var42 /* : nullable Bool */;
2475 val* var43 /* : MProperty */;
2476 val* var45 /* : MProperty */;
2477 val* var46 /* : String */;
2478 val* var48 /* : String */;
2479 val* var49 /* : String */;
2480 val* var50 /* : String */;
2481 short int var51 /* : Bool */;
2482 int cltype52;
2483 int idtype53;
2484 val* var54 /* : nullable ANode */;
2485 val* var56 /* : nullable ANode */;
2486 val* var_oldnode /* var oldnode: nullable ANode */;
2487 short int var59 /* : Bool */;
2488 int cltype60;
2489 int idtype61;
2490 val* var62 /* : nullable ANode */;
2491 val* var64 /* : nullable ANode */;
2492 val* var_oldnode65 /* var oldnode: nullable ANode */;
2493 short int var68 /* : Bool */;
2494 short int var69 /* : Bool */;
2495 val* var70 /* : RuntimeVariable */;
2496 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
2497 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2498 type_struct = self->type->resolution_table->types[COLOR_nitc__abstract_compiler__MPropDef__VISITOR];
2499 cltype = type_struct->color;
2500 idtype = type_struct->id;
2501 if(cltype >= p0->type->table_size) {
2502 var1 = 0;
2503 } else {
2504 var1 = p0->type->type_table[cltype] == idtype;
2505 }
2506 if (unlikely(!var1)) {
2507 var_class_name = p0 == NULL ? "null" : p0->type->name;
2508 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
2509 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2167);
2510 fatal_exit(1);
2511 }
2512 var_v = p0;
2513 var_arguments = p1;
2514 {
2515 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
2516 var4 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
2517 if (unlikely(var4 == NULL)) {
2518 if(catchStack.cursor >= 0){
2519 longjmp(catchStack.envs[catchStack.cursor], 1);
2520 }
2521 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2522 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
2523 fatal_exit(1);
2524 }
2525 var2 = var4;
2526 RET_LABEL3:(void)0;
2527 }
2528 }
2529 {
2530 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var2) on <var2:AbstractCompiler> */
2531 var7 = var2->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var2:AbstractCompiler> */
2532 if (unlikely(var7 == NULL)) {
2533 if(catchStack.cursor >= 0){
2534 longjmp(catchStack.envs[catchStack.cursor], 1);
2535 }
2536 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2537 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
2538 fatal_exit(1);
2539 }
2540 var5 = var7;
2541 RET_LABEL6:(void)0;
2542 }
2543 }
2544 var_modelbuilder = var5;
2545 {
2546 { /* Inline model$MMethodDef$constant_value (self) on <self:MMethodDef> */
2547 var10 = self->attrs[COLOR_nitc__model__MMethodDef___constant_value].val; /* _constant_value on <self:MMethodDef> */
2548 var8 = var10;
2549 RET_LABEL9:(void)0;
2550 }
2551 }
2552 var_val = var8;
2553 {
2554 var11 = nitc__modelize_property___ModelBuilder___mpropdef2node(var_modelbuilder, self);
2555 }
2556 var_node = var11;
2557 {
2558 { /* Inline model$MMethodDef$is_abstract (self) on <self:MMethodDef> */
2559 var14 = self->attrs[COLOR_nitc__model__MMethodDef___is_abstract].s; /* _is_abstract on <self:MMethodDef> */
2560 var12 = var14;
2561 RET_LABEL13:(void)0;
2562 }
2563 }
2564 if (var12){
2565 {
2566 var15 = core___core__SequenceRead___Collection__first(var_arguments);
2567 }
2568 {
2569 var16 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var15); /* class_name_string on <var_v:AbstractCompilerVisitor>*/
2570 }
2571 var_cn = var16;
2572 {
2573 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (var_v,var_node) on <var_v:AbstractCompilerVisitor> */
2574 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_node; /* _current_node on <var_v:AbstractCompilerVisitor> */
2575 RET_LABEL17:(void)0;
2576 }
2577 }
2578 if (unlikely(varonce==NULL)) {
2579 var18 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2580 if (likely(varonce19!=NULL)) {
2581 var20 = varonce19;
2582 } else {
2583 var21 = "PRINT_ERROR(\"Runtime error: Abstract method `%s` called on `%s`\", \"";
2584 var23 = (val*)(67l<<2|1);
2585 var24 = (val*)(67l<<2|1);
2586 var25 = (val*)((long)(0)<<2|3);
2587 var26 = (val*)((long)(0)<<2|3);
2588 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
2589 var20 = var22;
2590 varonce19 = var20;
2591 }
2592 ((struct instance_core__NativeArray*)var18)->values[0]=var20;
2593 if (likely(varonce27!=NULL)) {
2594 var28 = varonce27;
2595 } else {
2596 var29 = "\", ";
2597 var31 = (val*)(3l<<2|1);
2598 var32 = (val*)(3l<<2|1);
2599 var33 = (val*)((long)(0)<<2|3);
2600 var34 = (val*)((long)(0)<<2|3);
2601 var30 = core__flat___CString___to_s_unsafe(var29, var31, var32, var33, var34);
2602 var28 = var30;
2603 varonce27 = var28;
2604 }
2605 ((struct instance_core__NativeArray*)var18)->values[2]=var28;
2606 if (likely(varonce35!=NULL)) {
2607 var36 = varonce35;
2608 } else {
2609 var37 = ");";
2610 var39 = (val*)(2l<<2|1);
2611 var40 = (val*)(2l<<2|1);
2612 var41 = (val*)((long)(0)<<2|3);
2613 var42 = (val*)((long)(0)<<2|3);
2614 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
2615 var36 = var38;
2616 varonce35 = var36;
2617 }
2618 ((struct instance_core__NativeArray*)var18)->values[4]=var36;
2619 } else {
2620 var18 = varonce;
2621 varonce = NULL;
2622 }
2623 {
2624 { /* Inline model$MPropDef$mproperty (self) on <self:MMethodDef> */
2625 var45 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MMethodDef> */
2626 if (unlikely(var45 == NULL)) {
2627 if(catchStack.cursor >= 0){
2628 longjmp(catchStack.envs[catchStack.cursor], 1);
2629 }
2630 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2631 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
2632 fatal_exit(1);
2633 }
2634 var43 = var45;
2635 RET_LABEL44:(void)0;
2636 }
2637 }
2638 {
2639 { /* Inline model$MProperty$name (var43) on <var43:MProperty(MMethod)> */
2640 var48 = var43->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var43:MProperty(MMethod)> */
2641 if (unlikely(var48 == NULL)) {
2642 if(catchStack.cursor >= 0){
2643 longjmp(catchStack.envs[catchStack.cursor], 1);
2644 }
2645 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
2646 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
2647 fatal_exit(1);
2648 }
2649 var46 = var48;
2650 RET_LABEL47:(void)0;
2651 }
2652 }
2653 {
2654 var49 = ((val*(*)(val* self))(var46->class->vft[COLOR_core__abstract_text__Text__escape_to_c]))(var46); /* escape_to_c on <var46:String>*/
2655 }
2656 ((struct instance_core__NativeArray*)var18)->values[1]=var49;
2657 ((struct instance_core__NativeArray*)var18)->values[3]=var_cn;
2658 {
2659 var50 = ((val*(*)(val* self))(var18->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var18); /* native_to_s on <var18:NativeArray[String]>*/
2660 }
2661 varonce = var18;
2662 {
2663 nitc___nitc__AbstractCompilerVisitor___add(var_v, var50); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
2664 }
2665 {
2666 nitc___nitc__AbstractCompilerVisitor___add_raw_abort(var_v); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_raw_abort on <var_v:AbstractCompilerVisitor>*/
2667 }
2668 var = ((val*)NULL);
2669 goto RET_LABEL;
2670 } else {
2671 }
2672 /* <var_node:nullable ANode> isa APropdef */
2673 cltype52 = type_nitc__APropdef.color;
2674 idtype53 = type_nitc__APropdef.id;
2675 if(var_node == NULL) {
2676 var51 = 0;
2677 } else {
2678 if(cltype52 >= var_node->type->table_size) {
2679 var51 = 0;
2680 } else {
2681 var51 = var_node->type->type_table[cltype52] == idtype53;
2682 }
2683 }
2684 if (var51){
2685 {
2686 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (var_v) on <var_v:AbstractCompilerVisitor> */
2687 var56 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
2688 var54 = var56;
2689 RET_LABEL55:(void)0;
2690 }
2691 }
2692 var_oldnode = var54;
2693 {
2694 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (var_v,var_node) on <var_v:AbstractCompilerVisitor> */
2695 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_node; /* _current_node on <var_v:AbstractCompilerVisitor> */
2696 RET_LABEL57:(void)0;
2697 }
2698 }
2699 {
2700 nitc__abstract_compiler___MMethodDef___compile_parameter_check(self, var_v, var_arguments); /* Direct call abstract_compiler$MMethodDef$compile_parameter_check on <self:MMethodDef>*/
2701 }
2702 {
2703 ((void(*)(val* self, val* p0, val* p1, val* p2))(var_node->class->vft[COLOR_nitc__abstract_compiler__APropdef__compile_to_c]))(var_node, var_v, self, var_arguments); /* compile_to_c on <var_node:nullable ANode(APropdef)>*/
2704 }
2705 {
2706 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (var_v,var_oldnode) on <var_v:AbstractCompilerVisitor> */
2707 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode; /* _current_node on <var_v:AbstractCompilerVisitor> */
2708 RET_LABEL58:(void)0;
2709 }
2710 }
2711 } else {
2712 /* <var_node:nullable ANode> isa AClassdef */
2713 cltype60 = type_nitc__AClassdef.color;
2714 idtype61 = type_nitc__AClassdef.id;
2715 if(var_node == NULL) {
2716 var59 = 0;
2717 } else {
2718 if(cltype60 >= var_node->type->table_size) {
2719 var59 = 0;
2720 } else {
2721 var59 = var_node->type->type_table[cltype60] == idtype61;
2722 }
2723 }
2724 if (var59){
2725 {
2726 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node (var_v) on <var_v:AbstractCompilerVisitor> */
2727 var64 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val; /* _current_node on <var_v:AbstractCompilerVisitor> */
2728 var62 = var64;
2729 RET_LABEL63:(void)0;
2730 }
2731 }
2732 var_oldnode65 = var62;
2733 {
2734 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (var_v,var_node) on <var_v:AbstractCompilerVisitor> */
2735 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_node; /* _current_node on <var_v:AbstractCompilerVisitor> */
2736 RET_LABEL66:(void)0;
2737 }
2738 }
2739 {
2740 nitc__abstract_compiler___MMethodDef___compile_parameter_check(self, var_v, var_arguments); /* Direct call abstract_compiler$MMethodDef$compile_parameter_check on <self:MMethodDef>*/
2741 }
2742 {
2743 nitc__abstract_compiler___AClassdef___compile_to_c(var_node, var_v, self, var_arguments); /* Direct call abstract_compiler$AClassdef$compile_to_c on <var_node:nullable ANode(AClassdef)>*/
2744 }
2745 {
2746 { /* Inline abstract_compiler$AbstractCompilerVisitor$current_node= (var_v,var_oldnode65) on <var_v:AbstractCompilerVisitor> */
2747 var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___current_node].val = var_oldnode65; /* _current_node on <var_v:AbstractCompilerVisitor> */
2748 RET_LABEL67:(void)0;
2749 }
2750 }
2751 } else {
2752 if (var_val == NULL) {
2753 var68 = 0; /* is null */
2754 } else {
2755 var68 = 1; /* arg is null and recv is not */
2756 }
2757 if (0) {
2758 var69 = ((short int(*)(val* self, val* p0))((((long)var_val&3)?class_info[((long)var_val&3)]:var_val->class)->vft[COLOR_core__kernel__Object___33d_61d]))(var_val, ((val*)NULL)); /* != on <var_val:nullable Object>*/
2759 var68 = var69;
2760 }
2761 if (var68){
2762 {
2763 var70 = nitc___nitc__AbstractCompilerVisitor___value_instance(var_v, var_val);
2764 }
2765 {
2766 nitc___nitc__AbstractCompilerVisitor___ret(var_v, var70); /* Direct call abstract_compiler$AbstractCompilerVisitor$ret on <var_v:AbstractCompilerVisitor>*/
2767 }
2768 } else {
2769 if(catchStack.cursor >= 0){
2770 longjmp(catchStack.envs[catchStack.cursor], 1);
2771 }
2772 PRINT_ERROR("Runtime error: %s", "Aborted");
2773 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2197);
2774 fatal_exit(1);
2775 }
2776 }
2777 }
2778 var = ((val*)NULL);
2779 goto RET_LABEL;
2780 RET_LABEL:;
2781 return var;
2782 }
2783 /* method abstract_compiler$MMethodDef$compile_parameter_check for (self: MMethodDef, AbstractCompilerVisitor, Array[RuntimeVariable]) */
2784 void nitc__abstract_compiler___MMethodDef___compile_parameter_check(val* self, val* p0, val* p1) {
2785 short int var /* : Bool */;
2786 int cltype;
2787 int idtype;
2788 const struct type* type_struct;
2789 const char* var_class_name;
2790 val* var_v /* var v: AbstractCompilerVisitor */;
2791 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
2792 val* var1 /* : AbstractCompiler */;
2793 val* var3 /* : AbstractCompiler */;
2794 val* var4 /* : ModelBuilder */;
2795 val* var6 /* : ModelBuilder */;
2796 val* var7 /* : ToolContext */;
2797 val* var9 /* : ToolContext */;
2798 val* var10 /* : OptionBool */;
2799 val* var12 /* : OptionBool */;
2800 val* var13 /* : nullable Object */;
2801 val* var15 /* : nullable Object */;
2802 short int var16 /* : Bool */;
2803 val* var17 /* : nullable MSignature */;
2804 val* var19 /* : nullable MSignature */;
2805 val* var_msignature /* var msignature: MSignature */;
2806 long var_i /* var i: Int */;
2807 long var20 /* : Int */;
2808 long var_ /* var : Int */;
2809 short int var21 /* : Bool */;
2810 short int var23 /* : Bool */;
2811 int cltype24;
2812 int idtype25;
2813 const char* var_class_name26;
2814 short int var27 /* : Bool */;
2815 val* var28 /* : Array[MParameter] */;
2816 val* var30 /* : Array[MParameter] */;
2817 val* var31 /* : nullable Object */;
2818 val* var_mp /* var mp: MParameter */;
2819 short int var32 /* : Bool */;
2820 short int var34 /* : Bool */;
2821 val* var36 /* : MProperty */;
2822 val* var38 /* : MProperty */;
2823 val* var39 /* : MPropDef */;
2824 val* var41 /* : MPropDef */;
2825 val* var42 /* : nullable MSignature */;
2826 val* var44 /* : nullable MSignature */;
2827 val* var45 /* : Array[MParameter] */;
2828 val* var47 /* : Array[MParameter] */;
2829 val* var48 /* : nullable Object */;
2830 val* var49 /* : MType */;
2831 val* var51 /* : MType */;
2832 val* var_origmtype /* var origmtype: MType */;
2833 short int var52 /* : Bool */;
2834 short int var53 /* : Bool */;
2835 val* var54 /* : MType */;
2836 val* var56 /* : MType */;
2837 val* var_mtype /* var mtype: MType */;
2838 val* var57 /* : NativeArray[String] */;
2839 static val* varonce;
2840 static val* varonce58;
2841 val* var59 /* : String */;
2842 char* var60 /* : CString */;
2843 val* var61 /* : String */;
2844 val* var62 /* : nullable Int */;
2845 val* var63 /* : nullable Int */;
2846 val* var64 /* : nullable Bool */;
2847 val* var65 /* : nullable Bool */;
2848 static val* varonce66;
2849 val* var67 /* : String */;
2850 char* var68 /* : CString */;
2851 val* var69 /* : String */;
2852 val* var70 /* : nullable Int */;
2853 val* var71 /* : nullable Int */;
2854 val* var72 /* : nullable Bool */;
2855 val* var73 /* : nullable Bool */;
2856 static val* varonce74;
2857 val* var75 /* : String */;
2858 char* var76 /* : CString */;
2859 val* var77 /* : String */;
2860 val* var78 /* : nullable Int */;
2861 val* var79 /* : nullable Int */;
2862 val* var80 /* : nullable Bool */;
2863 val* var81 /* : nullable Bool */;
2864 static val* varonce82;
2865 val* var83 /* : String */;
2866 char* var84 /* : CString */;
2867 val* var85 /* : String */;
2868 val* var86 /* : nullable Int */;
2869 val* var87 /* : nullable Int */;
2870 val* var88 /* : nullable Bool */;
2871 val* var89 /* : nullable Bool */;
2872 static val* varonce90;
2873 val* var91 /* : String */;
2874 char* var92 /* : CString */;
2875 val* var93 /* : String */;
2876 val* var94 /* : nullable Int */;
2877 val* var95 /* : nullable Int */;
2878 val* var96 /* : nullable Bool */;
2879 val* var97 /* : nullable Bool */;
2880 val* var98 /* : String */;
2881 val* var99 /* : String */;
2882 val* var101 /* : String */;
2883 long var102 /* : Int */;
2884 short int var104 /* : Bool */;
2885 int cltype105;
2886 int idtype106;
2887 const char* var_class_name107;
2888 long var108 /* : Int */;
2889 val* var109 /* : nullable Object */;
2890 val* var110 /* : String */;
2891 val* var111 /* : String */;
2892 val* var112 /* : String */;
2893 long var113 /* : Int */;
2894 short int var115 /* : Bool */;
2895 int cltype116;
2896 int idtype117;
2897 const char* var_class_name118;
2898 long var119 /* : Int */;
2899 val* var120 /* : nullable Object */;
2900 static val* varonce121;
2901 val* var122 /* : String */;
2902 char* var123 /* : CString */;
2903 val* var124 /* : String */;
2904 val* var125 /* : nullable Int */;
2905 val* var126 /* : nullable Int */;
2906 val* var127 /* : nullable Bool */;
2907 val* var128 /* : nullable Bool */;
2908 long var129 /* : Int */;
2909 /* Covariant cast for argument 0 (v) <p0:AbstractCompilerVisitor> isa VISITOR */
2910 /* <p0:AbstractCompilerVisitor> isa VISITOR */
2911 type_struct = self->type->resolution_table->types[COLOR_nitc__abstract_compiler__MPropDef__VISITOR];
2912 cltype = type_struct->color;
2913 idtype = type_struct->id;
2914 if(cltype >= p0->type->table_size) {
2915 var = 0;
2916 } else {
2917 var = p0->type->type_table[cltype] == idtype;
2918 }
2919 if (unlikely(!var)) {
2920 var_class_name = p0 == NULL ? "null" : p0->type->name;
2921 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "VISITOR", var_class_name);
2922 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2202);
2923 fatal_exit(1);
2924 }
2925 var_v = p0;
2926 var_arguments = p1;
2927 {
2928 { /* Inline abstract_compiler$AbstractCompilerVisitor$compiler (var_v) on <var_v:AbstractCompilerVisitor> */
2929 var3 = var_v->attrs[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor___compiler].val; /* _compiler on <var_v:AbstractCompilerVisitor> */
2930 if (unlikely(var3 == NULL)) {
2931 if(catchStack.cursor >= 0){
2932 longjmp(catchStack.envs[catchStack.cursor], 1);
2933 }
2934 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _compiler");
2935 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1214);
2936 fatal_exit(1);
2937 }
2938 var1 = var3;
2939 RET_LABEL2:(void)0;
2940 }
2941 }
2942 {
2943 { /* Inline abstract_compiler$AbstractCompiler$modelbuilder (var1) on <var1:AbstractCompiler> */
2944 var6 = var1->attrs[COLOR_nitc__abstract_compiler__AbstractCompiler___modelbuilder].val; /* _modelbuilder on <var1:AbstractCompiler> */
2945 if (unlikely(var6 == NULL)) {
2946 if(catchStack.cursor >= 0){
2947 longjmp(catchStack.envs[catchStack.cursor], 1);
2948 }
2949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2950 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 552);
2951 fatal_exit(1);
2952 }
2953 var4 = var6;
2954 RET_LABEL5:(void)0;
2955 }
2956 }
2957 {
2958 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var4) on <var4:ModelBuilder> */
2959 var9 = var4->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var4:ModelBuilder> */
2960 if (unlikely(var9 == NULL)) {
2961 if(catchStack.cursor >= 0){
2962 longjmp(catchStack.envs[catchStack.cursor], 1);
2963 }
2964 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
2965 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
2966 fatal_exit(1);
2967 }
2968 var7 = var9;
2969 RET_LABEL8:(void)0;
2970 }
2971 }
2972 {
2973 { /* Inline abstract_compiler$ToolContext$opt_no_check_covariance (var7) on <var7:ToolContext> */
2974 var12 = var7->attrs[COLOR_nitc__abstract_compiler__ToolContext___opt_no_check_covariance].val; /* _opt_no_check_covariance on <var7:ToolContext> */
2975 if (unlikely(var12 == NULL)) {
2976 if(catchStack.cursor >= 0){
2977 longjmp(catchStack.envs[catchStack.cursor], 1);
2978 }
2979 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_no_check_covariance");
2980 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 48);
2981 fatal_exit(1);
2982 }
2983 var10 = var12;
2984 RET_LABEL11:(void)0;
2985 }
2986 }
2987 {
2988 { /* Inline opts$Option$value (var10) on <var10:OptionBool> */
2989 var15 = var10->attrs[COLOR_opts__Option___value].val; /* _value on <var10:OptionBool> */
2990 var13 = var15;
2991 RET_LABEL14:(void)0;
2992 }
2993 }
2994 var16 = (short int)((long)(var13)>>2);
2995 if (var16){
2996 goto RET_LABEL;
2997 } else {
2998 }
2999 {
3000 { /* Inline model$MMethodDef$msignature (self) on <self:MMethodDef> */
3001 var19 = self->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <self:MMethodDef> */
3002 var17 = var19;
3003 RET_LABEL18:(void)0;
3004 }
3005 }
3006 if (unlikely(var17 == NULL)) {
3007 if(catchStack.cursor >= 0){
3008 longjmp(catchStack.envs[catchStack.cursor], 1);
3009 }
3010 PRINT_ERROR("Runtime error: %s", "Cast failed");
3011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2207);
3012 fatal_exit(1);
3013 }
3014 var_msignature = var17;
3015 var_i = 0l;
3016 {
3017 var20 = nitc___nitc__MSignature___arity(var_msignature);
3018 }
3019 var_ = var20;
3020 for(;;) {
3021 {
3022 { /* Inline kernel$Int$< (var_i,var_) on <var_i:Int> */
3023 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
3024 /* <var_:Int> isa OTHER */
3025 var23 = 1; /* easy <var_:Int> isa OTHER*/
3026 if (unlikely(!var23)) {
3027 var_class_name26 = type_core__Int.name;
3028 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name26);
3029 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3030 fatal_exit(1);
3031 }
3032 var27 = var_i < var_;
3033 var21 = var27;
3034 goto RET_LABEL22;
3035 RET_LABEL22:(void)0;
3036 }
3037 }
3038 if (var21){
3039 } else {
3040 goto BREAK_label;
3041 }
3042 {
3043 { /* Inline model$MSignature$mparameters (var_msignature) on <var_msignature:MSignature> */
3044 var30 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:MSignature> */
3045 if (unlikely(var30 == NULL)) {
3046 if(catchStack.cursor >= 0){
3047 longjmp(catchStack.envs[catchStack.cursor], 1);
3048 }
3049 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3050 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
3051 fatal_exit(1);
3052 }
3053 var28 = var30;
3054 RET_LABEL29:(void)0;
3055 }
3056 }
3057 {
3058 var31 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var28, var_i);
3059 }
3060 var_mp = var31;
3061 {
3062 { /* Inline model$MParameter$is_vararg (var_mp) on <var_mp:MParameter> */
3063 var34 = var_mp->attrs[COLOR_nitc__model__MParameter___is_vararg].s; /* _is_vararg on <var_mp:MParameter> */
3064 var32 = var34;
3065 RET_LABEL33:(void)0;
3066 }
3067 }
3068 if (var32){
3069 goto BREAK_label35;
3070 } else {
3071 }
3072 {
3073 { /* Inline model$MPropDef$mproperty (self) on <self:MMethodDef> */
3074 var38 = self->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <self:MMethodDef> */
3075 if (unlikely(var38 == NULL)) {
3076 if(catchStack.cursor >= 0){
3077 longjmp(catchStack.envs[catchStack.cursor], 1);
3078 }
3079 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3080 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3081 fatal_exit(1);
3082 }
3083 var36 = var38;
3084 RET_LABEL37:(void)0;
3085 }
3086 }
3087 {
3088 { /* Inline model$MProperty$intro (var36) on <var36:MProperty(MMethod)> */
3089 var41 = var36->attrs[COLOR_nitc__model__MProperty___intro].val; /* _intro on <var36:MProperty(MMethod)> */
3090 if (unlikely(var41 == NULL)) {
3091 if(catchStack.cursor >= 0){
3092 longjmp(catchStack.envs[catchStack.cursor], 1);
3093 }
3094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
3095 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2097);
3096 fatal_exit(1);
3097 }
3098 var39 = var41;
3099 RET_LABEL40:(void)0;
3100 }
3101 }
3102 {
3103 { /* Inline model$MMethodDef$msignature (var39) on <var39:MPropDef(MMethodDef)> */
3104 var44 = var39->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var39:MPropDef(MMethodDef)> */
3105 var42 = var44;
3106 RET_LABEL43:(void)0;
3107 }
3108 }
3109 if (var42 == NULL) {
3110 if(catchStack.cursor >= 0){
3111 longjmp(catchStack.envs[catchStack.cursor], 1);
3112 }
3113 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3114 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2215);
3115 fatal_exit(1);
3116 } else {
3117 { /* Inline model$MSignature$mparameters (var42) on <var42:nullable MSignature> */
3118 if (unlikely(var42 == NULL)) {
3119 if(catchStack.cursor >= 0){
3120 longjmp(catchStack.envs[catchStack.cursor], 1);
3121 }
3122 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3123 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
3124 fatal_exit(1);
3125 }
3126 var47 = var42->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var42:nullable MSignature> */
3127 if (unlikely(var47 == NULL)) {
3128 if(catchStack.cursor >= 0){
3129 longjmp(catchStack.envs[catchStack.cursor], 1);
3130 }
3131 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
3132 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
3133 fatal_exit(1);
3134 }
3135 var45 = var47;
3136 RET_LABEL46:(void)0;
3137 }
3138 }
3139 {
3140 var48 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var45, var_i);
3141 }
3142 {
3143 { /* Inline model$MParameter$mtype (var48) on <var48:nullable Object(MParameter)> */
3144 var51 = var48->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var48:nullable Object(MParameter)> */
3145 if (unlikely(var51 == NULL)) {
3146 if(catchStack.cursor >= 0){
3147 longjmp(catchStack.envs[catchStack.cursor], 1);
3148 }
3149 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
3151 fatal_exit(1);
3152 }
3153 var49 = var51;
3154 RET_LABEL50:(void)0;
3155 }
3156 }
3157 var_origmtype = var49;
3158 {
3159 var52 = ((short int(*)(val* self))(var_origmtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_origmtype); /* need_anchor on <var_origmtype:MType>*/
3160 }
3161 var53 = !var52;
3162 if (var53){
3163 goto BREAK_label35;
3164 } else {
3165 }
3166 {
3167 { /* Inline model$MParameter$mtype (var_mp) on <var_mp:MParameter> */
3168 var56 = var_mp->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_mp:MParameter> */
3169 if (unlikely(var56 == NULL)) {
3170 if(catchStack.cursor >= 0){
3171 longjmp(catchStack.envs[catchStack.cursor], 1);
3172 }
3173 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3174 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
3175 fatal_exit(1);
3176 }
3177 var54 = var56;
3178 RET_LABEL55:(void)0;
3179 }
3180 }
3181 var_mtype = var54;
3182 if (unlikely(varonce==NULL)) {
3183 var57 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
3184 if (likely(varonce58!=NULL)) {
3185 var59 = varonce58;
3186 } else {
3187 var60 = "/* Covariant cast for argument ";
3188 var62 = (val*)(31l<<2|1);
3189 var63 = (val*)(31l<<2|1);
3190 var64 = (val*)((long)(0)<<2|3);
3191 var65 = (val*)((long)(0)<<2|3);
3192 var61 = core__flat___CString___to_s_unsafe(var60, var62, var63, var64, var65);
3193 var59 = var61;
3194 varonce58 = var59;
3195 }
3196 ((struct instance_core__NativeArray*)var57)->values[0]=var59;
3197 if (likely(varonce66!=NULL)) {
3198 var67 = varonce66;
3199 } else {
3200 var68 = " (";
3201 var70 = (val*)(2l<<2|1);
3202 var71 = (val*)(2l<<2|1);
3203 var72 = (val*)((long)(0)<<2|3);
3204 var73 = (val*)((long)(0)<<2|3);
3205 var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
3206 var67 = var69;
3207 varonce66 = var67;
3208 }
3209 ((struct instance_core__NativeArray*)var57)->values[2]=var67;
3210 if (likely(varonce74!=NULL)) {
3211 var75 = varonce74;
3212 } else {
3213 var76 = ") ";
3214 var78 = (val*)(2l<<2|1);
3215 var79 = (val*)(2l<<2|1);
3216 var80 = (val*)((long)(0)<<2|3);
3217 var81 = (val*)((long)(0)<<2|3);
3218 var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81);
3219 var75 = var77;
3220 varonce74 = var75;
3221 }
3222 ((struct instance_core__NativeArray*)var57)->values[4]=var75;
3223 if (likely(varonce82!=NULL)) {
3224 var83 = varonce82;
3225 } else {
3226 var84 = " isa ";
3227 var86 = (val*)(5l<<2|1);
3228 var87 = (val*)(5l<<2|1);
3229 var88 = (val*)((long)(0)<<2|3);
3230 var89 = (val*)((long)(0)<<2|3);
3231 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
3232 var83 = var85;
3233 varonce82 = var83;
3234 }
3235 ((struct instance_core__NativeArray*)var57)->values[6]=var83;
3236 if (likely(varonce90!=NULL)) {
3237 var91 = varonce90;
3238 } else {
3239 var92 = " */";
3240 var94 = (val*)(3l<<2|1);
3241 var95 = (val*)(3l<<2|1);
3242 var96 = (val*)((long)(0)<<2|3);
3243 var97 = (val*)((long)(0)<<2|3);
3244 var93 = core__flat___CString___to_s_unsafe(var92, var94, var95, var96, var97);
3245 var91 = var93;
3246 varonce90 = var91;
3247 }
3248 ((struct instance_core__NativeArray*)var57)->values[8]=var91;
3249 } else {
3250 var57 = varonce;
3251 varonce = NULL;
3252 }
3253 var98 = core__flat___Int___core__abstract_text__Object__to_s(var_i);
3254 ((struct instance_core__NativeArray*)var57)->values[1]=var98;
3255 {
3256 { /* Inline model$MParameter$name (var_mp) on <var_mp:MParameter> */
3257 var101 = var_mp->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var_mp:MParameter> */
3258 if (unlikely(var101 == NULL)) {
3259 if(catchStack.cursor >= 0){
3260 longjmp(catchStack.envs[catchStack.cursor], 1);
3261 }
3262 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3263 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
3264 fatal_exit(1);
3265 }
3266 var99 = var101;
3267 RET_LABEL100:(void)0;
3268 }
3269 }
3270 ((struct instance_core__NativeArray*)var57)->values[3]=var99;
3271 {
3272 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
3273 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3274 /* <1l:Int> isa OTHER */
3275 var104 = 1; /* easy <1l:Int> isa OTHER*/
3276 if (unlikely(!var104)) {
3277 var_class_name107 = type_core__Int.name;
3278 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name107);
3279 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3280 fatal_exit(1);
3281 }
3282 var108 = var_i + 1l;
3283 var102 = var108;
3284 goto RET_LABEL103;
3285 RET_LABEL103:(void)0;
3286 }
3287 }
3288 {
3289 var109 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, var102);
3290 }
3291 {
3292 var110 = nitc___nitc__RuntimeVariable___core__abstract_text__Object__inspect(var109);
3293 }
3294 ((struct instance_core__NativeArray*)var57)->values[5]=var110;
3295 {
3296 var111 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
3297 }
3298 ((struct instance_core__NativeArray*)var57)->values[7]=var111;
3299 {
3300 var112 = ((val*(*)(val* self))(var57->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var57); /* native_to_s on <var57:NativeArray[String]>*/
3301 }
3302 varonce = var57;
3303 {
3304 nitc___nitc__AbstractCompilerVisitor___add(var_v, var112); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3305 }
3306 {
3307 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
3308 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3309 /* <1l:Int> isa OTHER */
3310 var115 = 1; /* easy <1l:Int> isa OTHER*/
3311 if (unlikely(!var115)) {
3312 var_class_name118 = type_core__Int.name;
3313 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name118);
3314 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3315 fatal_exit(1);
3316 }
3317 var119 = var_i + 1l;
3318 var113 = var119;
3319 goto RET_LABEL114;
3320 RET_LABEL114:(void)0;
3321 }
3322 }
3323 {
3324 var120 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, var113);
3325 }
3326 if (likely(varonce121!=NULL)) {
3327 var122 = varonce121;
3328 } else {
3329 var123 = "covariance";
3330 var125 = (val*)(10l<<2|1);
3331 var126 = (val*)(10l<<2|1);
3332 var127 = (val*)((long)(0)<<2|3);
3333 var128 = (val*)((long)(0)<<2|3);
3334 var124 = core__flat___CString___to_s_unsafe(var123, var125, var126, var127, var128);
3335 var122 = var124;
3336 varonce121 = var122;
3337 }
3338 {
3339 nitc___nitc__AbstractCompilerVisitor___add_cast(var_v, var120, var_mtype, var122); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_cast on <var_v:AbstractCompilerVisitor>*/
3340 }
3341 BREAK_label35: (void)0;
3342 {
3343 var129 = core___core__Int___Discrete__successor(var_i, 1l);
3344 }
3345 var_i = var129;
3346 }
3347 BREAK_label: (void)0;
3348 RET_LABEL:;
3349 }
3350 /* method abstract_compiler$APropdef$compile_to_c for (self: APropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3351 void nitc__abstract_compiler___APropdef___compile_to_c(val* self, val* p0, val* p1, val* p2) {
3352 val* var_v /* var v: AbstractCompilerVisitor */;
3353 val* var_mpropdef /* var mpropdef: MMethodDef */;
3354 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
3355 val* var /* : NativeArray[String] */;
3356 static val* varonce;
3357 static val* varonce1;
3358 val* var2 /* : String */;
3359 char* var3 /* : CString */;
3360 val* var4 /* : String */;
3361 val* var5 /* : nullable Int */;
3362 val* var6 /* : nullable Int */;
3363 val* var7 /* : nullable Bool */;
3364 val* var8 /* : nullable Bool */;
3365 static val* varonce9;
3366 val* var10 /* : String */;
3367 char* var11 /* : CString */;
3368 val* var12 /* : String */;
3369 val* var13 /* : nullable Int */;
3370 val* var14 /* : nullable Int */;
3371 val* var15 /* : nullable Bool */;
3372 val* var16 /* : nullable Bool */;
3373 static val* varonce17;
3374 val* var18 /* : String */;
3375 char* var19 /* : CString */;
3376 val* var20 /* : String */;
3377 val* var21 /* : nullable Int */;
3378 val* var22 /* : nullable Int */;
3379 val* var23 /* : nullable Bool */;
3380 val* var24 /* : nullable Bool */;
3381 static val* varonce25;
3382 val* var26 /* : String */;
3383 char* var27 /* : CString */;
3384 val* var28 /* : String */;
3385 val* var29 /* : nullable Int */;
3386 val* var30 /* : nullable Int */;
3387 val* var31 /* : nullable Bool */;
3388 val* var32 /* : nullable Bool */;
3389 val* var33 /* : String */;
3390 val* var34 /* : String */;
3391 val* var35 /* : Location */;
3392 val* var37 /* : Location */;
3393 val* var38 /* : String */;
3394 val* var39 /* : String */;
3395 static val* varonce40;
3396 val* var41 /* : String */;
3397 char* var42 /* : CString */;
3398 val* var43 /* : String */;
3399 val* var44 /* : nullable Int */;
3400 val* var45 /* : nullable Int */;
3401 val* var46 /* : nullable Bool */;
3402 val* var47 /* : nullable Bool */;
3403 var_v = p0;
3404 var_mpropdef = p1;
3405 var_arguments = p2;
3406 if (unlikely(varonce==NULL)) {
3407 var = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
3408 if (likely(varonce1!=NULL)) {
3409 var2 = varonce1;
3410 } else {
3411 var3 = "PRINT_ERROR(\"NOT YET IMPLEMENTED ";
3412 var5 = (val*)(33l<<2|1);
3413 var6 = (val*)(33l<<2|1);
3414 var7 = (val*)((long)(0)<<2|3);
3415 var8 = (val*)((long)(0)<<2|3);
3416 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
3417 var2 = var4;
3418 varonce1 = var2;
3419 }
3420 ((struct instance_core__NativeArray*)var)->values[0]=var2;
3421 if (likely(varonce9!=NULL)) {
3422 var10 = varonce9;
3423 } else {
3424 var11 = " ";
3425 var13 = (val*)(1l<<2|1);
3426 var14 = (val*)(1l<<2|1);
3427 var15 = (val*)((long)(0)<<2|3);
3428 var16 = (val*)((long)(0)<<2|3);
3429 var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
3430 var10 = var12;
3431 varonce9 = var10;
3432 }
3433 ((struct instance_core__NativeArray*)var)->values[2]=var10;
3434 if (likely(varonce17!=NULL)) {
3435 var18 = varonce17;
3436 } else {
3437 var19 = " at ";
3438 var21 = (val*)(4l<<2|1);
3439 var22 = (val*)(4l<<2|1);
3440 var23 = (val*)((long)(0)<<2|3);
3441 var24 = (val*)((long)(0)<<2|3);
3442 var20 = core__flat___CString___to_s_unsafe(var19, var21, var22, var23, var24);
3443 var18 = var20;
3444 varonce17 = var18;
3445 }
3446 ((struct instance_core__NativeArray*)var)->values[4]=var18;
3447 if (likely(varonce25!=NULL)) {
3448 var26 = varonce25;
3449 } else {
3450 var27 = "\\n\");";
3451 var29 = (val*)(5l<<2|1);
3452 var30 = (val*)(5l<<2|1);
3453 var31 = (val*)((long)(0)<<2|3);
3454 var32 = (val*)((long)(0)<<2|3);
3455 var28 = core__flat___CString___to_s_unsafe(var27, var29, var30, var31, var32);
3456 var26 = var28;
3457 varonce25 = var26;
3458 }
3459 ((struct instance_core__NativeArray*)var)->values[6]=var26;
3460 } else {
3461 var = varonce;
3462 varonce = NULL;
3463 }
3464 {
3465 var33 = core__abstract_text___Object___class_name(self);
3466 }
3467 ((struct instance_core__NativeArray*)var)->values[1]=var33;
3468 {
3469 var34 = ((val*(*)(val* self))(var_mpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mpropdef); /* to_s on <var_mpropdef:MMethodDef>*/
3470 }
3471 ((struct instance_core__NativeArray*)var)->values[3]=var34;
3472 {
3473 { /* Inline parser_nodes$ANode$location (self) on <self:APropdef> */
3474 var37 = self->attrs[COLOR_nitc__parser_nodes__ANode___location].val; /* _location on <self:APropdef> */
3475 if (unlikely(var37 == NULL)) {
3476 if(catchStack.cursor >= 0){
3477 longjmp(catchStack.envs[catchStack.cursor], 1);
3478 }
3479 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _location");
3480 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 25);
3481 fatal_exit(1);
3482 }
3483 var35 = var37;
3484 RET_LABEL36:(void)0;
3485 }
3486 }
3487 {
3488 var38 = nitc___nitc__Location___core__abstract_text__Object__to_s(var35);
3489 }
3490 ((struct instance_core__NativeArray*)var)->values[5]=var38;
3491 {
3492 var39 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
3493 }
3494 varonce = var;
3495 {
3496 nitc___nitc__AbstractCompilerVisitor___add(var_v, var39); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
3497 }
3498 if (likely(varonce40!=NULL)) {
3499 var41 = varonce40;
3500 } else {
3501 var42 = "Not yet implemented";
3502 var44 = (val*)(19l<<2|1);
3503 var45 = (val*)(19l<<2|1);
3504 var46 = (val*)((long)(0)<<2|3);
3505 var47 = (val*)((long)(0)<<2|3);
3506 var43 = core__flat___CString___to_s_unsafe(var42, var44, var45, var46, var47);
3507 var41 = var43;
3508 varonce40 = var41;
3509 }
3510 {
3511 nitc___nitc__ANode___debug(self, var41); /* Direct call parser_nodes$ANode$debug on <self:APropdef>*/
3512 }
3513 RET_LABEL:;
3514 }
3515 /* method abstract_compiler$APropdef$can_inline for (self: APropdef): Bool */
3516 short int nitc__abstract_compiler___APropdef___can_inline(val* self) {
3517 short int var /* : Bool */;
3518 var = 1;
3519 goto RET_LABEL;
3520 RET_LABEL:;
3521 return var;
3522 }
3523 /* method abstract_compiler$AMethPropdef$compile_to_c for (self: AMethPropdef, AbstractCompilerVisitor, MMethodDef, Array[RuntimeVariable]) */
3524 void nitc__abstract_compiler___AMethPropdef___APropdef__compile_to_c(val* self, val* p0, val* p1, val* p2) {
3525 val* var_v /* var v: AbstractCompilerVisitor */;
3526 val* var_mpropdef /* var mpropdef: MMethodDef */;
3527 val* var_arguments /* var arguments: Array[RuntimeVariable] */;
3528 val* var /* : nullable Array[CallSite] */;
3529 val* var2 /* : nullable Array[CallSite] */;
3530 val* var_auto_super_inits /* var auto_super_inits: nullable Array[CallSite] */;
3531 short int var3 /* : Bool */;
3532 short int var4 /* : Bool */;
3533 val* var_other /* var other: nullable Object */;
3534 short int var6 /* : Bool */;
3535 short int var7 /* : Bool */;
3536 val* var8 /* : Array[RuntimeVariable] */;
3537 val* var_ /* var : Array[RuntimeVariable] */;
3538 val* var9 /* : nullable Object */;
3539 val* var_args /* var args: Array[RuntimeVariable] */;
3540 val* var_10 /* var : Array[CallSite] */;
3541 val* var11 /* : IndexedIterator[nullable Object] */;
3542 val* var_12 /* var : IndexedIterator[CallSite] */;
3543 short int var13 /* : Bool */;
3544 val* var14 /* : nullable Object */;
3545 val* var_auto_super_init /* var auto_super_init: CallSite */;
3546 val* var15 /* : MMethod */;
3547 val* var17 /* : MMethod */;
3548 val* var18 /* : MProperty */;
3549 val* var20 /* : MProperty */;
3550 short int var21 /* : Bool */;
3551 short int var23 /* : Bool */;
3552 short int var24 /* : Bool */;
3553 long var_i /* var i: Int */;
3554 val* var25 /* : MSignature */;
3555 val* var27 /* : MSignature */;
3556 long var28 /* : Int */;
3557 long var29 /* : Int */;
3558 short int var31 /* : Bool */;
3559 int cltype;
3560 int idtype;
3561 const char* var_class_name;
3562 long var32 /* : Int */;
3563 long var_33 /* var : Int */;
3564 short int var34 /* : Bool */;
3565 short int var36 /* : Bool */;
3566 int cltype37;
3567 int idtype38;
3568 const char* var_class_name39;
3569 short int var40 /* : Bool */;
3570 val* var42 /* : nullable Object */;
3571 long var43 /* : Int */;
3572 val* var44 /* : MMethod */;
3573 val* var46 /* : MMethod */;
3574 val* var47 /* : MProperty */;
3575 val* var49 /* : MProperty */;
3576 short int var50 /* : Bool */;
3577 short int var52 /* : Bool */;
3578 short int var53 /* : Bool */;
3579 val* var54 /* : nullable RuntimeVariable */;
3580 short int var55 /* : Bool */;
3581 short int var57 /* : Bool */;
3582 val* var58 /* : nullable Object */;
3583 val* var59 /* : MType */;
3584 val* var61 /* : MType */;
3585 short int var62 /* : Bool */;
3586 int cltype63;
3587 int idtype64;
3588 const char* var_class_name65;
3589 val* var66 /* : nullable RuntimeVariable */;
3590 short int var67 /* : Bool */;
3591 short int var69 /* : Bool */;
3592 short int var70 /* : Bool */;
3593 short int var71 /* : Bool */;
3594 short int var73 /* : Bool */;
3595 val* var74 /* : MProperty */;
3596 val* var76 /* : MProperty */;
3597 short int var77 /* : Bool */;
3598 short int var79 /* : Bool */;
3599 short int var80 /* : Bool */;
3600 short int var81 /* : Bool */;
3601 val* var82 /* : nullable AExpr */;
3602 val* var84 /* : nullable AExpr */;
3603 val* var_n_block /* var n_block: nullable AExpr */;
3604 short int var85 /* : Bool */;
3605 short int var86 /* : Bool */;
3606 short int var88 /* : Bool */;
3607 short int var89 /* : Bool */;
3608 long var_i90 /* var i: Int */;
3609 val* var91 /* : nullable MSignature */;
3610 val* var93 /* : nullable MSignature */;
3611 long var94 /* : Int */;
3612 long var_95 /* var : Int */;
3613 short int var96 /* : Bool */;
3614 short int var98 /* : Bool */;
3615 int cltype99;
3616 int idtype100;
3617 const char* var_class_name101;
3618 short int var102 /* : Bool */;
3619 val* var104 /* : nullable ASignature */;
3620 val* var106 /* : nullable ASignature */;
3621 val* var107 /* : ANodes[AParam] */;
3622 val* var109 /* : ANodes[AParam] */;
3623 val* var110 /* : ANode */;
3624 val* var111 /* : nullable Variable */;
3625 val* var113 /* : nullable Variable */;
3626 val* var_variable /* var variable: Variable */;
3627 val* var114 /* : RuntimeVariable */;
3628 long var115 /* : Int */;
3629 short int var117 /* : Bool */;
3630 int cltype118;
3631 int idtype119;
3632 const char* var_class_name120;
3633 long var121 /* : Int */;
3634 val* var122 /* : nullable Object */;
3635 long var123 /* : Int */;
3636 val* var124 /* : nullable Object */;
3637 val* var125 /* : String */;
3638 val* var_cn /* var cn: String */;
3639 val* var126 /* : NativeArray[String] */;
3640 static val* varonce;
3641 static val* varonce127;
3642 val* var128 /* : String */;
3643 char* var129 /* : CString */;
3644 val* var130 /* : String */;
3645 val* var131 /* : nullable Int */;
3646 val* var132 /* : nullable Int */;
3647 val* var133 /* : nullable Bool */;
3648 val* var134 /* : nullable Bool */;
3649 static val* varonce135;
3650 val* var136 /* : String */;
3651 char* var137 /* : CString */;
3652 val* var138 /* : String */;
3653 val* var139 /* : nullable Int */;
3654 val* var140 /* : nullable Int */;
3655 val* var141 /* : nullable Bool */;
3656 val* var142 /* : nullable Bool */;
3657 static val* varonce143;
3658 val* var144 /* : String */;
3659 char* var145 /* : CString */;
3660 val* var146 /* : String */;
3661 val* var147 /* : nullable Int */;
3662 val* var148 /* : nullable Int */;
3663 val* var149 /* : nullable Bool */;
3664 val* var150 /* : nullable Bool */;
3665 val* var151 /* : MProperty */;
3666 val* var153 /* : MProperty */;
3667 val* var154 /* : String */;
3668 val* var156 /* : String */;
3669 val* var157 /* : String */;
3670 val* var158 /* : String */;
3671 var_v = p0;
3672 var_mpropdef = p1;
3673 var_arguments = p2;
3674 {
3675 { /* Inline auto_super_init$AMethPropdef$auto_super_inits (self) on <self:AMethPropdef> */
3676 var2 = self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
3677 var = var2;
3678 RET_LABEL1:(void)0;
3679 }
3680 }
3681 var_auto_super_inits = var;
3682 if (var_auto_super_inits == NULL) {
3683 var3 = 0; /* is null */
3684 } else {
3685 var3 = 1; /* arg is null and recv is not */
3686 }
3687 if (0) {
3688 { /* Inline kernel$Object$!= (var_auto_super_inits,((val*)NULL)) on <var_auto_super_inits:nullable Array[CallSite]> */
3689 var_other = ((val*)NULL);
3690 {
3691 var6 = ((short int(*)(val* self, val* p0))(var_auto_super_inits->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_auto_super_inits, var_other); /* == on <var_auto_super_inits:nullable Array[CallSite](Array[CallSite])>*/
3692 }
3693 var7 = !var6;
3694 var4 = var7;
3695 goto RET_LABEL5;
3696 RET_LABEL5:(void)0;
3697 }
3698 var3 = var4;
3699 }
3700 if (var3){
3701 var8 = NEW_core__Array(&type_core__Array__nitc__RuntimeVariable);
3702 {
3703 core___core__Array___with_capacity(var8, 1l); /* Direct call array$Array$with_capacity on <var8:Array[RuntimeVariable]>*/
3704 }
3705 var_ = var8;
3706 {
3707 var9 = core___core__SequenceRead___Collection__first(var_arguments);
3708 }
3709 {
3710 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var9); /* Direct call array$AbstractArray$push on <var_:Array[RuntimeVariable]>*/
3711 }
3712 var_args = var_;
3713 var_10 = var_auto_super_inits;
3714 {
3715 var11 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_10);
3716 }
3717 var_12 = var11;
3718 for(;;) {
3719 {
3720 var13 = ((short int(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_12); /* is_ok on <var_12:IndexedIterator[CallSite]>*/
3721 }
3722 if (var13){
3723 } else {
3724 goto BREAK_label;
3725 }
3726 {
3727 var14 = ((val*(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_12); /* item on <var_12:IndexedIterator[CallSite]>*/
3728 }
3729 var_auto_super_init = var14;
3730 {
3731 { /* Inline typing$CallSite$mproperty (var_auto_super_init) on <var_auto_super_init:CallSite> */
3732 var17 = var_auto_super_init->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_auto_super_init:CallSite> */
3733 if (unlikely(var17 == NULL)) {
3734 if(catchStack.cursor >= 0){
3735 longjmp(catchStack.envs[catchStack.cursor], 1);
3736 }
3737 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3738 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
3739 fatal_exit(1);
3740 }
3741 var15 = var17;
3742 RET_LABEL16:(void)0;
3743 }
3744 }
3745 {
3746 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
3747 var20 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
3748 if (unlikely(var20 == NULL)) {
3749 if(catchStack.cursor >= 0){
3750 longjmp(catchStack.envs[catchStack.cursor], 1);
3751 }
3752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3753 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3754 fatal_exit(1);
3755 }
3756 var18 = var20;
3757 RET_LABEL19:(void)0;
3758 }
3759 }
3760 {
3761 { /* Inline kernel$Object$!= (var15,var18) on <var15:MMethod> */
3762 var_other = var18;
3763 {
3764 var23 = ((short int(*)(val* self, val* p0))(var15->class->vft[COLOR_core__kernel__Object___61d_61d]))(var15, var_other); /* == on <var15:MMethod>*/
3765 }
3766 var24 = !var23;
3767 var21 = var24;
3768 goto RET_LABEL22;
3769 RET_LABEL22:(void)0;
3770 }
3771 }
3772 if (unlikely(!var21)) {
3773 if(catchStack.cursor >= 0){
3774 longjmp(catchStack.envs[catchStack.cursor], 1);
3775 }
3776 PRINT_ERROR("Runtime error: %s", "Assert failed");
3777 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2249);
3778 fatal_exit(1);
3779 }
3780 {
3781 core___core__AbstractArray___core__abstract_collection__RemovableCollection__clear(var_args); /* Direct call array$AbstractArray$clear on <var_args:Array[RuntimeVariable]>*/
3782 }
3783 var_i = 0l;
3784 {
3785 { /* Inline typing$CallSite$msignature (var_auto_super_init) on <var_auto_super_init:CallSite> */
3786 var27 = var_auto_super_init->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_auto_super_init:CallSite> */
3787 if (unlikely(var27 == NULL)) {
3788 if(catchStack.cursor >= 0){
3789 longjmp(catchStack.envs[catchStack.cursor], 1);
3790 }
3791 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
3792 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
3793 fatal_exit(1);
3794 }
3795 var25 = var27;
3796 RET_LABEL26:(void)0;
3797 }
3798 }
3799 {
3800 var28 = nitc___nitc__MSignature___arity(var25);
3801 }
3802 {
3803 { /* Inline kernel$Int$+ (var28,1l) on <var28:Int> */
3804 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3805 /* <1l:Int> isa OTHER */
3806 var31 = 1; /* easy <1l:Int> isa OTHER*/
3807 if (unlikely(!var31)) {
3808 var_class_name = type_core__Int.name;
3809 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name);
3810 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
3811 fatal_exit(1);
3812 }
3813 var32 = var28 + 1l;
3814 var29 = var32;
3815 goto RET_LABEL30;
3816 RET_LABEL30:(void)0;
3817 }
3818 }
3819 var_33 = var29;
3820 for(;;) {
3821 {
3822 { /* Inline kernel$Int$< (var_i,var_33) on <var_i:Int> */
3823 /* Covariant cast for argument 0 (i) <var_33:Int> isa OTHER */
3824 /* <var_33:Int> isa OTHER */
3825 var36 = 1; /* easy <var_33:Int> isa OTHER*/
3826 if (unlikely(!var36)) {
3827 var_class_name39 = type_core__Int.name;
3828 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39);
3829 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
3830 fatal_exit(1);
3831 }
3832 var40 = var_i < var_33;
3833 var34 = var40;
3834 goto RET_LABEL35;
3835 RET_LABEL35:(void)0;
3836 }
3837 }
3838 if (var34){
3839 } else {
3840 goto BREAK_label41;
3841 }
3842 {
3843 var42 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, var_i);
3844 }
3845 {
3846 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var42); /* Direct call array$Array$add on <var_args:Array[RuntimeVariable]>*/
3847 }
3848 {
3849 var43 = core___core__Int___Discrete__successor(var_i, 1l);
3850 }
3851 var_i = var43;
3852 }
3853 BREAK_label41: (void)0;
3854 {
3855 { /* Inline typing$CallSite$mproperty (var_auto_super_init) on <var_auto_super_init:CallSite> */
3856 var46 = var_auto_super_init->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_auto_super_init:CallSite> */
3857 if (unlikely(var46 == NULL)) {
3858 if(catchStack.cursor >= 0){
3859 longjmp(catchStack.envs[catchStack.cursor], 1);
3860 }
3861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3862 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
3863 fatal_exit(1);
3864 }
3865 var44 = var46;
3866 RET_LABEL45:(void)0;
3867 }
3868 }
3869 {
3870 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
3871 var49 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
3872 if (unlikely(var49 == NULL)) {
3873 if(catchStack.cursor >= 0){
3874 longjmp(catchStack.envs[catchStack.cursor], 1);
3875 }
3876 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3877 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3878 fatal_exit(1);
3879 }
3880 var47 = var49;
3881 RET_LABEL48:(void)0;
3882 }
3883 }
3884 {
3885 { /* Inline kernel$Object$!= (var44,var47) on <var44:MMethod> */
3886 var_other = var47;
3887 {
3888 var52 = ((short int(*)(val* self, val* p0))(var44->class->vft[COLOR_core__kernel__Object___61d_61d]))(var44, var_other); /* == on <var44:MMethod>*/
3889 }
3890 var53 = !var52;
3891 var50 = var53;
3892 goto RET_LABEL51;
3893 RET_LABEL51:(void)0;
3894 }
3895 }
3896 if (unlikely(!var50)) {
3897 if(catchStack.cursor >= 0){
3898 longjmp(catchStack.envs[catchStack.cursor], 1);
3899 }
3900 PRINT_ERROR("Runtime error: %s", "Assert failed");
3901 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2254);
3902 fatal_exit(1);
3903 }
3904 {
3905 var54 = ((val*(*)(val* self, val* p0, val* p1))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__compile_callsite]))(var_v, var_auto_super_init, var_args); /* compile_callsite on <var_v:AbstractCompilerVisitor>*/
3906 }
3907 {
3908 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_12); /* next on <var_12:IndexedIterator[CallSite]>*/
3909 }
3910 }
3911 BREAK_label: (void)0;
3912 {
3913 ((void(*)(val* self))((((long)var_12&3)?class_info[((long)var_12&3)]:var_12->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_12); /* finish on <var_12:IndexedIterator[CallSite]>*/
3914 }
3915 } else {
3916 }
3917 {
3918 { /* Inline auto_super_init$AMethPropdef$auto_super_call (self) on <self:AMethPropdef> */
3919 var57 = self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_call].s; /* _auto_super_call on <self:AMethPropdef> */
3920 var55 = var57;
3921 RET_LABEL56:(void)0;
3922 }
3923 }
3924 if (var55){
3925 {
3926 var58 = core___core__SequenceRead___Collection__first(var_arguments);
3927 }
3928 {
3929 { /* Inline abstract_compiler$RuntimeVariable$mtype (var58) on <var58:nullable Object(RuntimeVariable)> */
3930 var61 = var58->attrs[COLOR_nitc__abstract_compiler__RuntimeVariable___mtype].val; /* _mtype on <var58:nullable Object(RuntimeVariable)> */
3931 if (unlikely(var61 == NULL)) {
3932 if(catchStack.cursor >= 0){
3933 longjmp(catchStack.envs[catchStack.cursor], 1);
3934 }
3935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
3936 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 1983);
3937 fatal_exit(1);
3938 }
3939 var59 = var61;
3940 RET_LABEL60:(void)0;
3941 }
3942 }
3943 /* <var59:MType> isa MClassType */
3944 cltype63 = type_nitc__MClassType.color;
3945 idtype64 = type_nitc__MClassType.id;
3946 if(cltype63 >= var59->type->table_size) {
3947 var62 = 0;
3948 } else {
3949 var62 = var59->type->type_table[cltype63] == idtype64;
3950 }
3951 if (unlikely(!var62)) {
3952 var_class_name65 = var59 == NULL ? "null" : var59->type->name;
3953 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name65);
3954 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2259);
3955 fatal_exit(1);
3956 }
3957 {
3958 var66 = nitc___nitc__SeparateCompilerVisitor___nitc__abstract_compiler__AbstractCompilerVisitor__supercall(var_v, var_mpropdef, var59, var_arguments);
3959 }
3960 } else {
3961 }
3962 {
3963 { /* Inline model$MMethodDef$is_intern (var_mpropdef) on <var_mpropdef:MMethodDef> */
3964 var69 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___is_intern].s; /* _is_intern on <var_mpropdef:MMethodDef> */
3965 var67 = var69;
3966 RET_LABEL68:(void)0;
3967 }
3968 }
3969 if (var67){
3970 {
3971 var70 = nitc__abstract_compiler___AMethPropdef___compile_intern_to_c(self, var_v, var_mpropdef, var_arguments);
3972 }
3973 if (var70){
3974 goto RET_LABEL;
3975 } else {
3976 }
3977 } else {
3978 }
3979 {
3980 { /* Inline model$MMethodDef$is_extern (var_mpropdef) on <var_mpropdef:MMethodDef> */
3981 var73 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___is_extern].s; /* _is_extern on <var_mpropdef:MMethodDef> */
3982 var71 = var73;
3983 RET_LABEL72:(void)0;
3984 }
3985 }
3986 if (var71){
3987 {
3988 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
3989 var76 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
3990 if (unlikely(var76 == NULL)) {
3991 if(catchStack.cursor >= 0){
3992 longjmp(catchStack.envs[catchStack.cursor], 1);
3993 }
3994 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3995 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3996 fatal_exit(1);
3997 }
3998 var74 = var76;
3999 RET_LABEL75:(void)0;
4000 }
4001 }
4002 {
4003 { /* Inline model$MMethod$is_init (var74) on <var74:MProperty(MMethod)> */
4004 var79 = var74->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var74:MProperty(MMethod)> */
4005 var77 = var79;
4006 RET_LABEL78:(void)0;
4007 }
4008 }
4009 if (var77){
4010 {
4011 var80 = nitc__light___AMethPropdef___compile_externinit_to_c(self, var_v, var_mpropdef, var_arguments);
4012 }
4013 if (var80){
4014 goto RET_LABEL;
4015 } else {
4016 }
4017 } else {
4018 {
4019 var81 = nitc__light___AMethPropdef___compile_externmeth_to_c(self, var_v, var_mpropdef, var_arguments);
4020 }
4021 if (var81){
4022 goto RET_LABEL;
4023 } else {
4024 }
4025 }
4026 } else {
4027 }
4028 {
4029 { /* Inline parser_nodes$AMethPropdef$n_block (self) on <self:AMethPropdef> */
4030 var84 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
4031 var82 = var84;
4032 RET_LABEL83:(void)0;
4033 }
4034 }
4035 var_n_block = var82;
4036 if (var_n_block == NULL) {
4037 var85 = 0; /* is null */
4038 } else {
4039 var85 = 1; /* arg is null and recv is not */
4040 }
4041 if (0) {
4042 { /* Inline kernel$Object$!= (var_n_block,((val*)NULL)) on <var_n_block:nullable AExpr> */
4043 var_other = ((val*)NULL);
4044 {
4045 var88 = ((short int(*)(val* self, val* p0))(var_n_block->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_n_block, var_other); /* == on <var_n_block:nullable AExpr(AExpr)>*/
4046 }
4047 var89 = !var88;
4048 var86 = var89;
4049 goto RET_LABEL87;
4050 RET_LABEL87:(void)0;
4051 }
4052 var85 = var86;
4053 }
4054 if (var85){
4055 var_i90 = 0l;
4056 {
4057 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:MMethodDef> */
4058 var93 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:MMethodDef> */
4059 var91 = var93;
4060 RET_LABEL92:(void)0;
4061 }
4062 }
4063 if (var91 == NULL) {
4064 if(catchStack.cursor >= 0){
4065 longjmp(catchStack.envs[catchStack.cursor], 1);
4066 }
4067 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4068 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2277);
4069 fatal_exit(1);
4070 } else {
4071 var94 = nitc___nitc__MSignature___arity(var91);
4072 }
4073 var_95 = var94;
4074 for(;;) {
4075 {
4076 { /* Inline kernel$Int$< (var_i90,var_95) on <var_i90:Int> */
4077 /* Covariant cast for argument 0 (i) <var_95:Int> isa OTHER */
4078 /* <var_95:Int> isa OTHER */
4079 var98 = 1; /* easy <var_95:Int> isa OTHER*/
4080 if (unlikely(!var98)) {
4081 var_class_name101 = type_core__Int.name;
4082 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name101);
4083 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4084 fatal_exit(1);
4085 }
4086 var102 = var_i90 < var_95;
4087 var96 = var102;
4088 goto RET_LABEL97;
4089 RET_LABEL97:(void)0;
4090 }
4091 }
4092 if (var96){
4093 } else {
4094 goto BREAK_label103;
4095 }
4096 {
4097 { /* Inline parser_nodes$AMethPropdef$n_signature (self) on <self:AMethPropdef> */
4098 var106 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_signature].val; /* _n_signature on <self:AMethPropdef> */
4099 var104 = var106;
4100 RET_LABEL105:(void)0;
4101 }
4102 }
4103 if (var104 == NULL) {
4104 if(catchStack.cursor >= 0){
4105 longjmp(catchStack.envs[catchStack.cursor], 1);
4106 }
4107 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4108 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2278);
4109 fatal_exit(1);
4110 } else {
4111 { /* Inline parser_nodes$ASignature$n_params (var104) on <var104:nullable ASignature> */
4112 if (unlikely(var104 == NULL)) {
4113 if(catchStack.cursor >= 0){
4114 longjmp(catchStack.envs[catchStack.cursor], 1);
4115 }
4116 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4117 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
4118 fatal_exit(1);
4119 }
4120 var109 = var104->attrs[COLOR_nitc__parser_nodes__ASignature___n_params].val; /* _n_params on <var104:nullable ASignature> */
4121 if (unlikely(var109 == NULL)) {
4122 if(catchStack.cursor >= 0){
4123 longjmp(catchStack.envs[catchStack.cursor], 1);
4124 }
4125 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
4126 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1746);
4127 fatal_exit(1);
4128 }
4129 var107 = var109;
4130 RET_LABEL108:(void)0;
4131 }
4132 }
4133 {
4134 var110 = nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var107, var_i90);
4135 }
4136 {
4137 { /* Inline scope$AParam$variable (var110) on <var110:ANode(AParam)> */
4138 var113 = var110->attrs[COLOR_nitc__scope__AParam___variable].val; /* _variable on <var110:ANode(AParam)> */
4139 var111 = var113;
4140 RET_LABEL112:(void)0;
4141 }
4142 }
4143 if (unlikely(var111 == NULL)) {
4144 if(catchStack.cursor >= 0){
4145 longjmp(catchStack.envs[catchStack.cursor], 1);
4146 }
4147 PRINT_ERROR("Runtime error: %s", "Cast failed");
4148 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2278);
4149 fatal_exit(1);
4150 }
4151 var_variable = var111;
4152 {
4153 var114 = nitc___nitc__AbstractCompilerVisitor___variable(var_v, var_variable);
4154 }
4155 {
4156 { /* Inline kernel$Int$+ (var_i90,1l) on <var_i90:Int> */
4157 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4158 /* <1l:Int> isa OTHER */
4159 var117 = 1; /* easy <1l:Int> isa OTHER*/
4160 if (unlikely(!var117)) {
4161 var_class_name120 = type_core__Int.name;
4162 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name120);
4163 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4164 fatal_exit(1);
4165 }
4166 var121 = var_i90 + 1l;
4167 var115 = var121;
4168 goto RET_LABEL116;
4169 RET_LABEL116:(void)0;
4170 }
4171 }
4172 {
4173 var122 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_arguments, var115);
4174 }
4175 {
4176 nitc___nitc__AbstractCompilerVisitor___assign(var_v, var114, var122); /* Direct call abstract_compiler$AbstractCompilerVisitor$assign on <var_v:AbstractCompilerVisitor>*/
4177 }
4178 {
4179 var123 = core___core__Int___Discrete__successor(var_i90, 1l);
4180 }
4181 var_i90 = var123;
4182 }
4183 BREAK_label103: (void)0;
4184 {
4185 nitc___nitc__AbstractCompilerVisitor___stmt(var_v, var_n_block); /* Direct call abstract_compiler$AbstractCompilerVisitor$stmt on <var_v:AbstractCompilerVisitor>*/
4186 }
4187 goto RET_LABEL;
4188 } else {
4189 }
4190 {
4191 var124 = core___core__SequenceRead___Collection__first(var_arguments);
4192 }
4193 {
4194 var125 = ((val*(*)(val* self, val* p0))(var_v->class->vft[COLOR_nitc__abstract_compiler__AbstractCompilerVisitor__class_name_string]))(var_v, var124); /* class_name_string on <var_v:AbstractCompilerVisitor>*/
4195 }
4196 var_cn = var125;
4197 if (unlikely(varonce==NULL)) {
4198 var126 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
4199 if (likely(varonce127!=NULL)) {
4200 var128 = varonce127;
4201 } else {
4202 var129 = "PRINT_ERROR(\"Runtime error: uncompiled method `%s` called on `%s`. NOT YET IMPLEMENTED\", \"";
4203 var131 = (val*)(90l<<2|1);
4204 var132 = (val*)(90l<<2|1);
4205 var133 = (val*)((long)(0)<<2|3);
4206 var134 = (val*)((long)(0)<<2|3);
4207 var130 = core__flat___CString___to_s_unsafe(var129, var131, var132, var133, var134);
4208 var128 = var130;
4209 varonce127 = var128;
4210 }
4211 ((struct instance_core__NativeArray*)var126)->values[0]=var128;
4212 if (likely(varonce135!=NULL)) {
4213 var136 = varonce135;
4214 } else {
4215 var137 = "\", ";
4216 var139 = (val*)(3l<<2|1);
4217 var140 = (val*)(3l<<2|1);
4218 var141 = (val*)((long)(0)<<2|3);
4219 var142 = (val*)((long)(0)<<2|3);
4220 var138 = core__flat___CString___to_s_unsafe(var137, var139, var140, var141, var142);
4221 var136 = var138;
4222 varonce135 = var136;
4223 }
4224 ((struct instance_core__NativeArray*)var126)->values[2]=var136;
4225 if (likely(varonce143!=NULL)) {
4226 var144 = varonce143;
4227 } else {
4228 var145 = ");";
4229 var147 = (val*)(2l<<2|1);
4230 var148 = (val*)(2l<<2|1);
4231 var149 = (val*)((long)(0)<<2|3);
4232 var150 = (val*)((long)(0)<<2|3);
4233 var146 = core__flat___CString___to_s_unsafe(var145, var147, var148, var149, var150);
4234 var144 = var146;
4235 varonce143 = var144;
4236 }
4237 ((struct instance_core__NativeArray*)var126)->values[4]=var144;
4238 } else {
4239 var126 = varonce;
4240 varonce = NULL;
4241 }
4242 {
4243 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:MMethodDef> */
4244 var153 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:MMethodDef> */
4245 if (unlikely(var153 == NULL)) {
4246 if(catchStack.cursor >= 0){
4247 longjmp(catchStack.envs[catchStack.cursor], 1);
4248 }
4249 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4250 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4251 fatal_exit(1);
4252 }
4253 var151 = var153;
4254 RET_LABEL152:(void)0;
4255 }
4256 }
4257 {
4258 { /* Inline model$MProperty$name (var151) on <var151:MProperty(MMethod)> */
4259 var156 = var151->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var151:MProperty(MMethod)> */
4260 if (unlikely(var156 == NULL)) {
4261 if(catchStack.cursor >= 0){
4262 longjmp(catchStack.envs[catchStack.cursor], 1);
4263 }
4264 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4265 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
4266 fatal_exit(1);
4267 }
4268 var154 = var156;
4269 RET_LABEL155:(void)0;
4270 }
4271 }
4272 {
4273 var157 = ((val*(*)(val* self))(var154->class->vft[COLOR_core__abstract_text__Text__escape_to_c]))(var154); /* escape_to_c on <var154:String>*/
4274 }
4275 ((struct instance_core__NativeArray*)var126)->values[1]=var157;
4276 ((struct instance_core__NativeArray*)var126)->values[3]=var_cn;
4277 {
4278 var158 = ((val*(*)(val* self))(var126->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var126); /* native_to_s on <var126:NativeArray[String]>*/
4279 }
4280 varonce = var126;
4281 {
4282 nitc___nitc__AbstractCompilerVisitor___add(var_v, var158); /* Direct call abstract_compiler$AbstractCompilerVisitor$add on <var_v:AbstractCompilerVisitor>*/
4283 }
4284 {
4285 nitc___nitc__AbstractCompilerVisitor___add_raw_abort(var_v); /* Direct call abstract_compiler$AbstractCompilerVisitor$add_raw_abort on <var_v:AbstractCompilerVisitor>*/
4286 }
4287 RET_LABEL:;
4288 }
4289 /* method abstract_compiler$AMethPropdef$can_inline for (self: AMethPropdef): Bool */
4290 short int nitc__abstract_compiler___AMethPropdef___APropdef__can_inline(val* self) {
4291 short int var /* : Bool */;
4292 val* var1 /* : nullable Array[CallSite] */;
4293 val* var3 /* : nullable Array[CallSite] */;
4294 short int var4 /* : Bool */;
4295 short int var5 /* : Bool */;
4296 val* var_other /* var other: nullable Object */;
4297 short int var7 /* : Bool */;
4298 short int var8 /* : Bool */;
4299 val* var9 /* : nullable AExpr */;
4300 val* var11 /* : nullable AExpr */;
4301 val* var_nblock /* var nblock: nullable AExpr */;
4302 short int var12 /* : Bool */;
4303 short int var13 /* : Bool */;
4304 val* var_other15 /* var other: nullable Object */;
4305 short int var16 /* : Bool */;
4306 short int var18 /* : Bool */;
4307 short int var19 /* : Bool */;
4308 short int var20 /* : Bool */;
4309 val* var21 /* : nullable MPropDef */;
4310 val* var23 /* : nullable MPropDef */;
4311 val* var24 /* : MProperty */;
4312 val* var26 /* : MProperty */;
4313 val* var27 /* : String */;
4314 val* var29 /* : String */;
4315 static val* varonce;
4316 val* var30 /* : String */;
4317 char* var31 /* : CString */;
4318 val* var32 /* : String */;
4319 val* var33 /* : nullable Int */;
4320 val* var34 /* : nullable Int */;
4321 val* var35 /* : nullable Bool */;
4322 val* var36 /* : nullable Bool */;
4323 short int var37 /* : Bool */;
4324 short int var_ /* var : Bool */;
4325 val* var38 /* : nullable MPropDef */;
4326 val* var40 /* : nullable MPropDef */;
4327 val* var41 /* : MProperty */;
4328 val* var43 /* : MProperty */;
4329 val* var44 /* : String */;
4330 val* var46 /* : String */;
4331 static val* varonce47;
4332 val* var48 /* : String */;
4333 char* var49 /* : CString */;
4334 val* var50 /* : String */;
4335 val* var51 /* : nullable Int */;
4336 val* var52 /* : nullable Int */;
4337 val* var53 /* : nullable Bool */;
4338 val* var54 /* : nullable Bool */;
4339 short int var55 /* : Bool */;
4340 short int var_56 /* var : Bool */;
4341 val* var57 /* : nullable MPropDef */;
4342 val* var59 /* : nullable MPropDef */;
4343 val* var60 /* : MClassDef */;
4344 val* var62 /* : MClassDef */;
4345 val* var63 /* : MClass */;
4346 val* var65 /* : MClass */;
4347 val* var66 /* : String */;
4348 val* var68 /* : String */;
4349 static val* varonce69;
4350 val* var70 /* : String */;
4351 char* var71 /* : CString */;
4352 val* var72 /* : String */;
4353 val* var73 /* : nullable Int */;
4354 val* var74 /* : nullable Int */;
4355 val* var75 /* : nullable Bool */;
4356 val* var76 /* : nullable Bool */;
4357 short int var77 /* : Bool */;
4358 short int var78 /* : Bool */;
4359 short int var79 /* : Bool */;
4360 int cltype;
4361 int idtype;
4362 short int var_80 /* var : Bool */;
4363 val* var81 /* : ANodes[AExpr] */;
4364 val* var83 /* : ANodes[AExpr] */;
4365 long var84 /* : Int */;
4366 short int var85 /* : Bool */;
4367 short int var87 /* : Bool */;
4368 {
4369 { /* Inline auto_super_init$AMethPropdef$auto_super_inits (self) on <self:AMethPropdef> */
4370 var3 = self->attrs[COLOR_nitc__auto_super_init__AMethPropdef___auto_super_inits].val; /* _auto_super_inits on <self:AMethPropdef> */
4371 var1 = var3;
4372 RET_LABEL2:(void)0;
4373 }
4374 }
4375 if (var1 == NULL) {
4376 var4 = 0; /* is null */
4377 } else {
4378 var4 = 1; /* arg is null and recv is not */
4379 }
4380 if (0) {
4381 { /* Inline kernel$Object$!= (var1,((val*)NULL)) on <var1:nullable Array[CallSite]> */
4382 var_other = ((val*)NULL);
4383 {
4384 var7 = ((short int(*)(val* self, val* p0))(var1->class->vft[COLOR_core__kernel__Object___61d_61d]))(var1, var_other); /* == on <var1:nullable Array[CallSite](Array[CallSite])>*/
4385 }
4386 var8 = !var7;
4387 var5 = var8;
4388 goto RET_LABEL6;
4389 RET_LABEL6:(void)0;
4390 }
4391 var4 = var5;
4392 }
4393 if (var4){
4394 var = 0;
4395 goto RET_LABEL;
4396 } else {
4397 }
4398 {
4399 { /* Inline parser_nodes$AMethPropdef$n_block (self) on <self:AMethPropdef> */
4400 var11 = self->attrs[COLOR_nitc__parser_nodes__AMethPropdef___n_block].val; /* _n_block on <self:AMethPropdef> */
4401 var9 = var11;
4402 RET_LABEL10:(void)0;
4403 }
4404 }
4405 var_nblock = var9;
4406 if (var_nblock == NULL) {
4407 var12 = 1; /* is null */
4408 } else {
4409 var12 = 0; /* arg is null but recv is not */
4410 }
4411 if (0) {
4412 { /* Inline kernel$Object$== (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
4413 var_other15 = ((val*)NULL);
4414 {
4415 { /* Inline kernel$Object$is_same_instance (var_nblock,var_other15) on <var_nblock:nullable AExpr(AExpr)> */
4416 var18 = var_nblock == var_other15;
4417 var16 = var18;
4418 goto RET_LABEL17;
4419 RET_LABEL17:(void)0;
4420 }
4421 }
4422 var13 = var16;
4423 goto RET_LABEL14;
4424 RET_LABEL14:(void)0;
4425 }
4426 var12 = var13;
4427 }
4428 if (var12){
4429 var = 1;
4430 goto RET_LABEL;
4431 } else {
4432 }
4433 {
4434 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
4435 var23 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
4436 var21 = var23;
4437 RET_LABEL22:(void)0;
4438 }
4439 }
4440 if (var21 == NULL) {
4441 if(catchStack.cursor >= 0){
4442 longjmp(catchStack.envs[catchStack.cursor], 1);
4443 }
4444 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2296);
4446 fatal_exit(1);
4447 } else {
4448 { /* Inline model$MPropDef$mproperty (var21) on <var21:nullable MPropDef(nullable MMethodDef)> */
4449 if (unlikely(var21 == NULL)) {
4450 if(catchStack.cursor >= 0){
4451 longjmp(catchStack.envs[catchStack.cursor], 1);
4452 }
4453 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4454 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4455 fatal_exit(1);
4456 }
4457 var26 = var21->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var21:nullable MPropDef(nullable MMethodDef)> */
4458 if (unlikely(var26 == NULL)) {
4459 if(catchStack.cursor >= 0){
4460 longjmp(catchStack.envs[catchStack.cursor], 1);
4461 }
4462 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4463 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4464 fatal_exit(1);
4465 }
4466 var24 = var26;
4467 RET_LABEL25:(void)0;
4468 }
4469 }
4470 {
4471 { /* Inline model$MProperty$name (var24) on <var24:MProperty(MMethod)> */
4472 var29 = var24->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var24:MProperty(MMethod)> */
4473 if (unlikely(var29 == NULL)) {
4474 if(catchStack.cursor >= 0){
4475 longjmp(catchStack.envs[catchStack.cursor], 1);
4476 }
4477 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4478 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
4479 fatal_exit(1);
4480 }
4481 var27 = var29;
4482 RET_LABEL28:(void)0;
4483 }
4484 }
4485 if (likely(varonce!=NULL)) {
4486 var30 = varonce;
4487 } else {
4488 var31 = "==";
4489 var33 = (val*)(2l<<2|1);
4490 var34 = (val*)(2l<<2|1);
4491 var35 = (val*)((long)(0)<<2|3);
4492 var36 = (val*)((long)(0)<<2|3);
4493 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
4494 var30 = var32;
4495 varonce = var30;
4496 }
4497 {
4498 var37 = ((short int(*)(val* self, val* p0))(var27->class->vft[COLOR_core__kernel__Object___61d_61d]))(var27, var30); /* == on <var27:String>*/
4499 }
4500 var_ = var37;
4501 if (var37){
4502 var20 = var_;
4503 } else {
4504 {
4505 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
4506 var40 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
4507 var38 = var40;
4508 RET_LABEL39:(void)0;
4509 }
4510 }
4511 if (var38 == NULL) {
4512 if(catchStack.cursor >= 0){
4513 longjmp(catchStack.envs[catchStack.cursor], 1);
4514 }
4515 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4516 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2296);
4517 fatal_exit(1);
4518 } else {
4519 { /* Inline model$MPropDef$mproperty (var38) on <var38:nullable MPropDef(nullable MMethodDef)> */
4520 if (unlikely(var38 == NULL)) {
4521 if(catchStack.cursor >= 0){
4522 longjmp(catchStack.envs[catchStack.cursor], 1);
4523 }
4524 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4525 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4526 fatal_exit(1);
4527 }
4528 var43 = var38->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var38:nullable MPropDef(nullable MMethodDef)> */
4529 if (unlikely(var43 == NULL)) {
4530 if(catchStack.cursor >= 0){
4531 longjmp(catchStack.envs[catchStack.cursor], 1);
4532 }
4533 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4534 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4535 fatal_exit(1);
4536 }
4537 var41 = var43;
4538 RET_LABEL42:(void)0;
4539 }
4540 }
4541 {
4542 { /* Inline model$MProperty$name (var41) on <var41:MProperty(MMethod)> */
4543 var46 = var41->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var41:MProperty(MMethod)> */
4544 if (unlikely(var46 == NULL)) {
4545 if(catchStack.cursor >= 0){
4546 longjmp(catchStack.envs[catchStack.cursor], 1);
4547 }
4548 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4549 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
4550 fatal_exit(1);
4551 }
4552 var44 = var46;
4553 RET_LABEL45:(void)0;
4554 }
4555 }
4556 if (likely(varonce47!=NULL)) {
4557 var48 = varonce47;
4558 } else {
4559 var49 = "!=";
4560 var51 = (val*)(2l<<2|1);
4561 var52 = (val*)(2l<<2|1);
4562 var53 = (val*)((long)(0)<<2|3);
4563 var54 = (val*)((long)(0)<<2|3);
4564 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
4565 var48 = var50;
4566 varonce47 = var48;
4567 }
4568 {
4569 var55 = ((short int(*)(val* self, val* p0))(var44->class->vft[COLOR_core__kernel__Object___61d_61d]))(var44, var48); /* == on <var44:String>*/
4570 }
4571 var20 = var55;
4572 }
4573 var_56 = var20;
4574 if (var20){
4575 {
4576 { /* Inline modelize_property$APropdef$mpropdef (self) on <self:AMethPropdef> */
4577 var59 = self->attrs[COLOR_nitc__modelize_property__APropdef___mpropdef].val; /* _mpropdef on <self:AMethPropdef> */
4578 var57 = var59;
4579 RET_LABEL58:(void)0;
4580 }
4581 }
4582 if (var57 == NULL) {
4583 if(catchStack.cursor >= 0){
4584 longjmp(catchStack.envs[catchStack.cursor], 1);
4585 }
4586 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4587 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__abstract_compiler, 2296);
4588 fatal_exit(1);
4589 } else {
4590 { /* Inline model$MPropDef$mclassdef (var57) on <var57:nullable MPropDef(nullable MMethodDef)> */
4591 if (unlikely(var57 == NULL)) {
4592 if(catchStack.cursor >= 0){
4593 longjmp(catchStack.envs[catchStack.cursor], 1);
4594 }
4595 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
4597 fatal_exit(1);
4598 }
4599 var62 = var57->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var57:nullable MPropDef(nullable MMethodDef)> */
4600 if (unlikely(var62 == NULL)) {
4601 if(catchStack.cursor >= 0){
4602 longjmp(catchStack.envs[catchStack.cursor], 1);
4603 }
4604 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
4605 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
4606 fatal_exit(1);
4607 }
4608 var60 = var62;
4609 RET_LABEL61:(void)0;
4610 }
4611 }
4612 {
4613 { /* Inline model$MClassDef$mclass (var60) on <var60:MClassDef> */
4614 var65 = var60->attrs[COLOR_nitc__model__MClassDef___mclass].val; /* _mclass on <var60:MClassDef> */
4615 if (unlikely(var65 == NULL)) {
4616 if(catchStack.cursor >= 0){
4617 longjmp(catchStack.envs[catchStack.cursor], 1);
4618 }
4619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
4620 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 591);
4621 fatal_exit(1);
4622 }
4623 var63 = var65;
4624 RET_LABEL64:(void)0;
4625 }
4626 }
4627 {
4628 { /* Inline model$MClass$name (var63) on <var63:MClass> */
4629 var68 = var63->attrs[COLOR_nitc__model__MClass___name].val; /* _name on <var63:MClass> */
4630 if (unlikely(var68 == NULL)) {
4631 if(catchStack.cursor >= 0){
4632 longjmp(catchStack.envs[catchStack.cursor], 1);
4633 }
4634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 396);
4636 fatal_exit(1);
4637 }
4638 var66 = var68;
4639 RET_LABEL67:(void)0;
4640 }
4641 }
4642 if (likely(varonce69!=NULL)) {
4643 var70 = varonce69;
4644 } else {
4645 var71 = "Object";
4646 var73 = (val*)(6l<<2|1);
4647 var74 = (val*)(6l<<2|1);
4648 var75 = (val*)((long)(0)<<2|3);
4649 var76 = (val*)((long)(0)<<2|3);
4650 var72 = core__flat___CString___to_s_unsafe(var71, var73, var74, var75, var76);
4651 var70 = var72;
4652 varonce69 = var70;
4653 }
4654 {
4655 var77 = ((short int(*)(val* self, val* p0))(var66->class->vft[COLOR_core__kernel__Object___61d_61d]))(var66, var70); /* == on <var66:String>*/
4656 }
4657 var19 = var77;
4658 } else {
4659 var19 = var_56;
4660 }
4661 if (var19){
4662 var = 1;
4663 goto RET_LABEL;
4664 } else {
4665 }
4666 /* <var_nblock:nullable AExpr(AExpr)> isa ABlockExpr */
4667 cltype = type_nitc__ABlockExpr.color;
4668 idtype = type_nitc__ABlockExpr.id;
4669 if(cltype >= var_nblock->type->table_size) {
4670 var79 = 0;
4671 } else {
4672 var79 = var_nblock->type->type_table[cltype] == idtype;
4673 }
4674 var_80 = var79;
4675 if (var79){
4676 {
4677 { /* Inline parser_nodes$ABlockExpr$n_expr (var_nblock) on <var_nblock:nullable AExpr(ABlockExpr)> */
4678 var83 = var_nblock->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <var_nblock:nullable AExpr(ABlockExpr)> */
4679 if (unlikely(var83 == NULL)) {
4680 if(catchStack.cursor >= 0){
4681 longjmp(catchStack.envs[catchStack.cursor], 1);
4682 }
4683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4684 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
4685 fatal_exit(1);
4686 }
4687 var81 = var83;
4688 RET_LABEL82:(void)0;
4689 }
4690 }
4691 {
4692 var84 = nitc___nitc__ANodes___core__abstract_collection__Collection__length(var81);
4693 }
4694 {
4695 { /* Inline kernel$Int$== (var84,0l) on <var84:Int> */
4696 var87 = var84 == 0l;
4697 var85 = var87;
4698 goto RET_LABEL86;
4699 RET_LABEL86:(void)0;
4700 }
4701 }
4702 var78 = var85;
4703 } else {
4704 var78 = var_80;
4705 }
4706 if (var78){
4707 var = 1;
4708 goto RET_LABEL;
4709 } else {
4710 }
4711 var = 0;
4712 goto RET_LABEL;
4713 RET_LABEL:;
4714 return var;
4715 }