Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__typing.sep.3.c
1 #include "nitc__typing.sep.0.h"
2 /* method typing$ASendExpr$accept_typing for (self: ASendExpr, TypeVisitor) */
3 void nitc__typing___ASendExpr___AExpr__accept_typing(val* self, val* p0) {
4 val* var_v /* var v: TypeVisitor */;
5 val* var /* : AExpr */;
6 val* var2 /* : AExpr */;
7 val* var_nrecv /* var nrecv: AExpr */;
8 val* var3 /* : nullable MType */;
9 val* var_recvtype /* var recvtype: nullable MType */;
10 val* var4 /* : String */;
11 val* var_name /* var name: String */;
12 val* var5 /* : ANode */;
13 val* var_node /* var node: ANode */;
14 short int var6 /* : Bool */;
15 short int var7 /* : Bool */;
16 val* var_other /* var other: nullable Object */;
17 short int var9 /* : Bool */;
18 short int var11 /* : Bool */;
19 val* var_callsite /* var callsite: nullable Object */;
20 val* var12 /* : MType */;
21 val* var_unsafe_type /* var unsafe_type: MType */;
22 val* var13 /* : nullable MProperty */;
23 val* var_mproperty /* var mproperty: nullable MProperty */;
24 short int var14 /* : Bool */;
25 short int var15 /* : Bool */;
26 short int var16 /* : Bool */;
27 short int var18 /* : Bool */;
28 short int var20 /* : Bool */;
29 short int var_ /* var : Bool */;
30 short int var21 /* : Bool */;
31 int cltype;
32 int idtype;
33 static val* varonce;
34 val* var22 /* : String */;
35 char* var23 /* : CString */;
36 val* var24 /* : String */;
37 val* var25 /* : nullable Int */;
38 val* var26 /* : nullable Int */;
39 val* var27 /* : nullable Bool */;
40 val* var28 /* : nullable Bool */;
41 val* var29 /* : nullable MClass */;
42 val* var_sysclass /* var sysclass: nullable MClass */;
43 short int var30 /* : Bool */;
44 short int var31 /* : Bool */;
45 val* var_other33 /* var other: nullable Object */;
46 short int var34 /* : Bool */;
47 short int var35 /* : Bool */;
48 val* var36 /* : MClassType */;
49 val* var38 /* : MClassType */;
50 val* var_systype /* var systype: MClassType */;
51 val* var39 /* : nullable MProperty */;
52 short int var40 /* : Bool */;
53 short int var41 /* : Bool */;
54 short int var43 /* : Bool */;
55 short int var44 /* : Bool */;
56 val* var45 /* : nullable CallSite */;
57 short int var46 /* : Bool */;
58 short int var47 /* : Bool */;
59 short int var49 /* : Bool */;
60 short int var51 /* : Bool */;
61 short int var55 /* : Bool */;
62 short int var56 /* : Bool */;
63 short int var58 /* : Bool */;
64 short int var60 /* : Bool */;
65 short int var61 /* : Bool */;
66 int cltype62;
67 int idtype63;
68 val* var64 /* : nullable CallSite */;
69 short int var65 /* : Bool */;
70 short int var66 /* : Bool */;
71 short int var68 /* : Bool */;
72 short int var70 /* : Bool */;
73 val* var72 /* : MSignature */;
74 val* var74 /* : MSignature */;
75 val* var_msignature /* var msignature: MSignature */;
76 val* var75 /* : Array[AExpr] */;
77 val* var_args /* var args: Array[AExpr] */;
78 short int var76 /* : Bool */;
79 val* var77 /* : MMethod */;
80 val* var79 /* : MMethod */;
81 short int var80 /* : Bool */;
82 short int var82 /* : Bool */;
83 val* var83 /* : nullable MPropDef */;
84 val* var85 /* : nullable MPropDef */;
85 val* var_vmpropdef /* var vmpropdef: nullable MPropDef */;
86 short int var86 /* : Bool */;
87 short int var87 /* : Bool */;
88 int cltype88;
89 int idtype89;
90 short int var_90 /* var : Bool */;
91 val* var91 /* : MProperty */;
92 val* var93 /* : MProperty */;
93 short int var94 /* : Bool */;
94 short int var96 /* : Bool */;
95 short int var97 /* : Bool */;
96 static val* varonce98;
97 val* var99 /* : String */;
98 char* var100 /* : CString */;
99 val* var101 /* : String */;
100 val* var102 /* : nullable Int */;
101 val* var103 /* : nullable Int */;
102 val* var104 /* : nullable Bool */;
103 val* var105 /* : nullable Bool */;
104 short int var106 /* : Bool */;
105 short int var107 /* : Bool */;
106 short int var108 /* : Bool */;
107 int cltype109;
108 int idtype110;
109 short int var_111 /* var : Bool */;
110 val* var112 /* : MProperty */;
111 val* var114 /* : MProperty */;
112 short int var115 /* : Bool */;
113 short int var117 /* : Bool */;
114 short int var_118 /* var : Bool */;
115 val* var119 /* : MMethod */;
116 val* var121 /* : MMethod */;
117 short int var122 /* : Bool */;
118 short int var124 /* : Bool */;
119 short int var125 /* : Bool */;
120 val* var127 /* : NativeArray[String] */;
121 static val* varonce126;
122 static val* varonce128;
123 val* var129 /* : String */;
124 char* var130 /* : CString */;
125 val* var131 /* : String */;
126 val* var132 /* : nullable Int */;
127 val* var133 /* : nullable Int */;
128 val* var134 /* : nullable Bool */;
129 val* var135 /* : nullable Bool */;
130 static val* varonce136;
131 val* var137 /* : String */;
132 char* var138 /* : CString */;
133 val* var139 /* : String */;
134 val* var140 /* : nullable Int */;
135 val* var141 /* : nullable Int */;
136 val* var142 /* : nullable Bool */;
137 val* var143 /* : nullable Bool */;
138 static val* varonce144;
139 val* var145 /* : String */;
140 char* var146 /* : CString */;
141 val* var147 /* : String */;
142 val* var148 /* : nullable Int */;
143 val* var149 /* : nullable Int */;
144 val* var150 /* : nullable Bool */;
145 val* var151 /* : nullable Bool */;
146 val* var152 /* : String */;
147 val* var153 /* : MMethod */;
148 val* var155 /* : MMethod */;
149 val* var156 /* : String */;
150 val* var157 /* : String */;
151 val* var158 /* : nullable MType */;
152 val* var160 /* : nullable MType */;
153 val* var_ret /* var ret: nullable MType */;
154 short int var161 /* : Bool */;
155 short int var162 /* : Bool */;
156 short int var164 /* : Bool */;
157 short int var165 /* : Bool */;
158 var_v = p0;
159 {
160 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:ASendExpr> */
161 var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendExpr> */
162 if (unlikely(var2 == NULL)) {
163 if(catchStack.cursor >= 0){
164 longjmp(catchStack.envs[catchStack.cursor], 1);
165 }
166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
167 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
168 fatal_exit(1);
169 }
170 var = var2;
171 RET_LABEL1:(void)0;
172 }
173 }
174 var_nrecv = var;
175 {
176 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nrecv);
177 }
178 var_recvtype = var3;
179 {
180 var4 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_name]))(self); /* property_name on <self:ASendExpr>*/
181 }
182 var_name = var4;
183 {
184 var5 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_node]))(self); /* property_node on <self:ASendExpr>*/
185 }
186 var_node = var5;
187 if (var_recvtype == NULL) {
188 var6 = 1; /* is null */
189 } else {
190 var6 = 0; /* arg is null but recv is not */
191 }
192 if (0) {
193 { /* Inline kernel$Object$== (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
194 var_other = ((val*)NULL);
195 {
196 { /* Inline kernel$Object$is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
197 var11 = var_recvtype == var_other;
198 var9 = var11;
199 goto RET_LABEL10;
200 RET_LABEL10:(void)0;
201 }
202 }
203 var7 = var9;
204 goto RET_LABEL8;
205 RET_LABEL8:(void)0;
206 }
207 var6 = var7;
208 }
209 if (var6){
210 goto RET_LABEL;
211 } else {
212 }
213 var_callsite = ((val*)NULL);
214 {
215 var12 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_recvtype);
216 }
217 var_unsafe_type = var12;
218 {
219 var13 = nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(var_v, var_node, var_unsafe_type, var_name);
220 }
221 var_mproperty = var13;
222 if (var_mproperty == NULL) {
223 var15 = 1; /* is null */
224 } else {
225 var15 = 0; /* arg is null but recv is not */
226 }
227 if (0) {
228 { /* Inline kernel$Object$== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
229 var_other = ((val*)NULL);
230 {
231 { /* Inline kernel$Object$is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
232 var20 = var_mproperty == var_other;
233 var18 = var20;
234 goto RET_LABEL19;
235 RET_LABEL19:(void)0;
236 }
237 }
238 var16 = var18;
239 goto RET_LABEL17;
240 RET_LABEL17:(void)0;
241 }
242 var15 = var16;
243 }
244 var_ = var15;
245 if (var15){
246 /* <var_nrecv:AExpr> isa AImplicitSelfExpr */
247 cltype = type_nitc__AImplicitSelfExpr.color;
248 idtype = type_nitc__AImplicitSelfExpr.id;
249 if(cltype >= var_nrecv->type->table_size) {
250 var21 = 0;
251 } else {
252 var21 = var_nrecv->type->type_table[cltype] == idtype;
253 }
254 var14 = var21;
255 } else {
256 var14 = var_;
257 }
258 if (var14){
259 if (likely(varonce!=NULL)) {
260 var22 = varonce;
261 } else {
262 var23 = "Sys";
263 var25 = (val*)(3l<<2|1);
264 var26 = (val*)(3l<<2|1);
265 var27 = (val*)((long)(0)<<2|3);
266 var28 = (val*)((long)(0)<<2|3);
267 var24 = core__flat___CString___to_s_unsafe(var23, var25, var26, var27, var28);
268 var22 = var24;
269 varonce = var22;
270 }
271 {
272 var29 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, var_node, var22);
273 }
274 var_sysclass = var29;
275 if (var_sysclass == NULL) {
276 var30 = 0; /* is null */
277 } else {
278 var30 = 1; /* arg is null and recv is not */
279 }
280 if (0) {
281 { /* Inline kernel$Object$!= (var_sysclass,((val*)NULL)) on <var_sysclass:nullable MClass> */
282 var_other33 = ((val*)NULL);
283 {
284 var34 = ((short int(*)(val* self, val* p0))(var_sysclass->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_sysclass, var_other33); /* == on <var_sysclass:nullable MClass(MClass)>*/
285 }
286 var35 = !var34;
287 var31 = var35;
288 goto RET_LABEL32;
289 RET_LABEL32:(void)0;
290 }
291 var30 = var31;
292 }
293 if (var30){
294 {
295 { /* Inline model$MClass$mclass_type (var_sysclass) on <var_sysclass:nullable MClass(MClass)> */
296 var38 = var_sysclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_sysclass:nullable MClass(MClass)> */
297 if (unlikely(var38 == NULL)) {
298 if(catchStack.cursor >= 0){
299 longjmp(catchStack.envs[catchStack.cursor], 1);
300 }
301 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
302 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
303 fatal_exit(1);
304 }
305 var36 = var38;
306 RET_LABEL37:(void)0;
307 }
308 }
309 var_systype = var36;
310 {
311 var39 = nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(var_v, var_node, var_systype, var_name);
312 }
313 var_mproperty = var39;
314 if (var_mproperty == NULL) {
315 var40 = 0; /* is null */
316 } else {
317 var40 = 1; /* arg is null and recv is not */
318 }
319 if (0) {
320 { /* Inline kernel$Object$!= (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
321 var_other33 = ((val*)NULL);
322 {
323 var43 = ((short int(*)(val* self, val* p0))(var_mproperty->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mproperty, var_other33); /* == on <var_mproperty:nullable MProperty(MProperty)>*/
324 }
325 var44 = !var43;
326 var41 = var44;
327 goto RET_LABEL42;
328 RET_LABEL42:(void)0;
329 }
330 var40 = var41;
331 }
332 if (var40){
333 {
334 var45 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_systype, var_name, 0);
335 }
336 var_callsite = var45;
337 if (var_callsite == NULL) {
338 var46 = 1; /* is null */
339 } else {
340 var46 = 0; /* arg is null but recv is not */
341 }
342 if (0) {
343 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable Object(nullable CallSite)> */
344 var_other = ((val*)NULL);
345 {
346 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on <var_callsite:nullable Object(CallSite)> */
347 var51 = var_callsite == var_other;
348 var49 = var51;
349 goto RET_LABEL50;
350 RET_LABEL50:(void)0;
351 }
352 }
353 var47 = var49;
354 goto RET_LABEL48;
355 RET_LABEL48:(void)0;
356 }
357 var46 = var47;
358 }
359 if (var46){
360 goto RET_LABEL;
361 } else {
362 }
363 {
364 { /* Inline typing$AImplicitSelfExpr$is_sys= (var_nrecv,1) on <var_nrecv:AExpr(AImplicitSelfExpr)> */
365 var_nrecv->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s = 1; /* _is_sys on <var_nrecv:AExpr(AImplicitSelfExpr)> */
366 RET_LABEL52:(void)0;
367 }
368 }
369 {
370 { /* Inline typing$ASelfExpr$its_variable= (var_nrecv,((val*)NULL)) on <var_nrecv:AExpr(AImplicitSelfExpr)> */
371 var_nrecv->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = ((val*)NULL); /* _its_variable on <var_nrecv:AExpr(AImplicitSelfExpr)> */
372 RET_LABEL53:(void)0;
373 }
374 }
375 {
376 { /* Inline typing$AExpr$mtype= (var_nrecv,var_systype) on <var_nrecv:AExpr(AImplicitSelfExpr)> */
377 var_nrecv->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_systype; /* _mtype on <var_nrecv:AExpr(AImplicitSelfExpr)> */
378 RET_LABEL54:(void)0;
379 }
380 }
381 var_recvtype = var_systype;
382 } else {
383 }
384 } else {
385 }
386 } else {
387 }
388 if (var_callsite == NULL) {
389 var55 = 1; /* is null */
390 } else {
391 var55 = 0; /* arg is null but recv is not */
392 }
393 if (0) {
394 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable Object(nullable CallSite)> */
395 var_other = ((val*)NULL);
396 {
397 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on <var_callsite:nullable Object(CallSite)> */
398 var60 = var_callsite == var_other;
399 var58 = var60;
400 goto RET_LABEL59;
401 RET_LABEL59:(void)0;
402 }
403 }
404 var56 = var58;
405 goto RET_LABEL57;
406 RET_LABEL57:(void)0;
407 }
408 var55 = var56;
409 }
410 if (var55){
411 /* <var_nrecv:AExpr> isa ASelfExpr */
412 cltype62 = type_nitc__ASelfExpr.color;
413 idtype63 = type_nitc__ASelfExpr.id;
414 if(cltype62 >= var_nrecv->type->table_size) {
415 var61 = 0;
416 } else {
417 var61 = var_nrecv->type->type_table[cltype62] == idtype63;
418 }
419 {
420 var64 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_recvtype, var_name, var61);
421 }
422 var_callsite = var64;
423 if (var_callsite == NULL) {
424 var65 = 1; /* is null */
425 } else {
426 var65 = 0; /* arg is null but recv is not */
427 }
428 if (0) {
429 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable Object(nullable CallSite)> */
430 var_other = ((val*)NULL);
431 {
432 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on <var_callsite:nullable Object(CallSite)> */
433 var70 = var_callsite == var_other;
434 var68 = var70;
435 goto RET_LABEL69;
436 RET_LABEL69:(void)0;
437 }
438 }
439 var66 = var68;
440 goto RET_LABEL67;
441 RET_LABEL67:(void)0;
442 }
443 var65 = var66;
444 }
445 if (var65){
446 goto RET_LABEL;
447 } else {
448 }
449 } else {
450 }
451 {
452 { /* Inline typing$ASendExpr$callsite= (self,var_callsite) on <self:ASendExpr> */
453 self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val = var_callsite; /* _callsite on <self:ASendExpr> */
454 RET_LABEL71:(void)0;
455 }
456 }
457 {
458 { /* Inline typing$CallSite$msignature (var_callsite) on <var_callsite:nullable Object(CallSite)> */
459 var74 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_callsite:nullable Object(CallSite)> */
460 if (unlikely(var74 == NULL)) {
461 if(catchStack.cursor >= 0){
462 longjmp(catchStack.envs[catchStack.cursor], 1);
463 }
464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
466 fatal_exit(1);
467 }
468 var72 = var74;
469 RET_LABEL73:(void)0;
470 }
471 }
472 var_msignature = var72;
473 {
474 var75 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__compute_raw_arguments]))(self); /* compute_raw_arguments on <self:ASendExpr>*/
475 }
476 var_args = var75;
477 {
478 var76 = nitc___nitc__CallSite___check_signature(var_callsite, var_v, var_node, var_args);
479 }
480 {
481 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:nullable Object(CallSite)> */
482 var79 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable Object(CallSite)> */
483 if (unlikely(var79 == NULL)) {
484 if(catchStack.cursor >= 0){
485 longjmp(catchStack.envs[catchStack.cursor], 1);
486 }
487 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
488 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
489 fatal_exit(1);
490 }
491 var77 = var79;
492 RET_LABEL78:(void)0;
493 }
494 }
495 {
496 { /* Inline model$MMethod$is_init (var77) on <var77:MMethod> */
497 var82 = var77->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var77:MMethod> */
498 var80 = var82;
499 RET_LABEL81:(void)0;
500 }
501 }
502 if (var80){
503 {
504 { /* Inline typing$TypeVisitor$mpropdef (var_v) on <var_v:TypeVisitor> */
505 var85 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on <var_v:TypeVisitor> */
506 var83 = var85;
507 RET_LABEL84:(void)0;
508 }
509 }
510 var_vmpropdef = var83;
511 /* <var_vmpropdef:nullable MPropDef> isa MMethodDef */
512 cltype88 = type_nitc__MMethodDef.color;
513 idtype89 = type_nitc__MMethodDef.id;
514 if(var_vmpropdef == NULL) {
515 var87 = 0;
516 } else {
517 if(cltype88 >= var_vmpropdef->type->table_size) {
518 var87 = 0;
519 } else {
520 var87 = var_vmpropdef->type->type_table[cltype88] == idtype89;
521 }
522 }
523 var_90 = var87;
524 if (var87){
525 {
526 { /* Inline model$MPropDef$mproperty (var_vmpropdef) on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
527 var93 = var_vmpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
528 if (unlikely(var93 == NULL)) {
529 if(catchStack.cursor >= 0){
530 longjmp(catchStack.envs[catchStack.cursor], 1);
531 }
532 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
533 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
534 fatal_exit(1);
535 }
536 var91 = var93;
537 RET_LABEL92:(void)0;
538 }
539 }
540 {
541 { /* Inline model$MMethod$is_init (var91) on <var91:MProperty(MMethod)> */
542 var96 = var91->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var91:MProperty(MMethod)> */
543 var94 = var96;
544 RET_LABEL95:(void)0;
545 }
546 }
547 var86 = var94;
548 } else {
549 var86 = var_90;
550 }
551 var97 = !var86;
552 if (var97){
553 if (likely(varonce98!=NULL)) {
554 var99 = varonce98;
555 } else {
556 var100 = "Error: an `init` can only be called from another `init`.";
557 var102 = (val*)(56l<<2|1);
558 var103 = (val*)(56l<<2|1);
559 var104 = (val*)((long)(0)<<2|3);
560 var105 = (val*)((long)(0)<<2|3);
561 var101 = core__flat___CString___to_s_unsafe(var100, var102, var103, var104, var105);
562 var99 = var101;
563 varonce98 = var99;
564 }
565 {
566 nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_node, var99); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
567 }
568 } else {
569 }
570 /* <var_vmpropdef:nullable MPropDef> isa MMethodDef */
571 cltype109 = type_nitc__MMethodDef.color;
572 idtype110 = type_nitc__MMethodDef.id;
573 if(var_vmpropdef == NULL) {
574 var108 = 0;
575 } else {
576 if(cltype109 >= var_vmpropdef->type->table_size) {
577 var108 = 0;
578 } else {
579 var108 = var_vmpropdef->type->type_table[cltype109] == idtype110;
580 }
581 }
582 var_111 = var108;
583 if (var108){
584 {
585 { /* Inline model$MPropDef$mproperty (var_vmpropdef) on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
586 var114 = var_vmpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_vmpropdef:nullable MPropDef(MMethodDef)> */
587 if (unlikely(var114 == NULL)) {
588 if(catchStack.cursor >= 0){
589 longjmp(catchStack.envs[catchStack.cursor], 1);
590 }
591 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
592 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
593 fatal_exit(1);
594 }
595 var112 = var114;
596 RET_LABEL113:(void)0;
597 }
598 }
599 {
600 { /* Inline model$MMethod$is_root_init (var112) on <var112:MProperty(MMethod)> */
601 var117 = var112->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <var112:MProperty(MMethod)> */
602 var115 = var117;
603 RET_LABEL116:(void)0;
604 }
605 }
606 var107 = var115;
607 } else {
608 var107 = var_111;
609 }
610 var_118 = var107;
611 if (var107){
612 {
613 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:nullable Object(CallSite)> */
614 var121 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable Object(CallSite)> */
615 if (unlikely(var121 == NULL)) {
616 if(catchStack.cursor >= 0){
617 longjmp(catchStack.envs[catchStack.cursor], 1);
618 }
619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
620 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
621 fatal_exit(1);
622 }
623 var119 = var121;
624 RET_LABEL120:(void)0;
625 }
626 }
627 {
628 { /* Inline model$MMethod$is_root_init (var119) on <var119:MMethod> */
629 var124 = var119->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <var119:MMethod> */
630 var122 = var124;
631 RET_LABEL123:(void)0;
632 }
633 }
634 var125 = !var122;
635 var106 = var125;
636 } else {
637 var106 = var_118;
638 }
639 if (var106){
640 if (unlikely(varonce126==NULL)) {
641 var127 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
642 if (likely(varonce128!=NULL)) {
643 var129 = varonce128;
644 } else {
645 var130 = "Error: `";
646 var132 = (val*)(8l<<2|1);
647 var133 = (val*)(8l<<2|1);
648 var134 = (val*)((long)(0)<<2|3);
649 var135 = (val*)((long)(0)<<2|3);
650 var131 = core__flat___CString___to_s_unsafe(var130, var132, var133, var134, var135);
651 var129 = var131;
652 varonce128 = var129;
653 }
654 ((struct instance_core__NativeArray*)var127)->values[0]=var129;
655 if (likely(varonce136!=NULL)) {
656 var137 = varonce136;
657 } else {
658 var138 = "` cannot call a factory `";
659 var140 = (val*)(25l<<2|1);
660 var141 = (val*)(25l<<2|1);
661 var142 = (val*)((long)(0)<<2|3);
662 var143 = (val*)((long)(0)<<2|3);
663 var139 = core__flat___CString___to_s_unsafe(var138, var140, var141, var142, var143);
664 var137 = var139;
665 varonce136 = var137;
666 }
667 ((struct instance_core__NativeArray*)var127)->values[2]=var137;
668 if (likely(varonce144!=NULL)) {
669 var145 = varonce144;
670 } else {
671 var146 = "`.";
672 var148 = (val*)(2l<<2|1);
673 var149 = (val*)(2l<<2|1);
674 var150 = (val*)((long)(0)<<2|3);
675 var151 = (val*)((long)(0)<<2|3);
676 var147 = core__flat___CString___to_s_unsafe(var146, var148, var149, var150, var151);
677 var145 = var147;
678 varonce144 = var145;
679 }
680 ((struct instance_core__NativeArray*)var127)->values[4]=var145;
681 } else {
682 var127 = varonce126;
683 varonce126 = NULL;
684 }
685 {
686 var152 = ((val*(*)(val* self))(var_vmpropdef->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_vmpropdef); /* to_s on <var_vmpropdef:nullable MPropDef(MMethodDef)>*/
687 }
688 ((struct instance_core__NativeArray*)var127)->values[1]=var152;
689 {
690 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:nullable Object(CallSite)> */
691 var155 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable Object(CallSite)> */
692 if (unlikely(var155 == NULL)) {
693 if(catchStack.cursor >= 0){
694 longjmp(catchStack.envs[catchStack.cursor], 1);
695 }
696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
697 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
698 fatal_exit(1);
699 }
700 var153 = var155;
701 RET_LABEL154:(void)0;
702 }
703 }
704 {
705 var156 = ((val*(*)(val* self))(var153->class->vft[COLOR_core__abstract_text__Object__to_s]))(var153); /* to_s on <var153:MMethod>*/
706 }
707 ((struct instance_core__NativeArray*)var127)->values[3]=var156;
708 {
709 var157 = ((val*(*)(val* self))(var127->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var127); /* native_to_s on <var127:NativeArray[String]>*/
710 }
711 varonce126 = var127;
712 {
713 nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_node, var157); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
714 }
715 } else {
716 }
717 } else {
718 }
719 {
720 { /* Inline model$MSignature$return_mtype (var_msignature) on <var_msignature:MSignature> */
721 var160 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_msignature:MSignature> */
722 var158 = var160;
723 RET_LABEL159:(void)0;
724 }
725 }
726 var_ret = var158;
727 if (var_ret == NULL) {
728 var161 = 0; /* is null */
729 } else {
730 var161 = 1; /* arg is null and recv is not */
731 }
732 if (0) {
733 { /* Inline kernel$Object$!= (var_ret,((val*)NULL)) on <var_ret:nullable MType> */
734 var_other33 = ((val*)NULL);
735 {
736 var164 = ((short int(*)(val* self, val* p0))(var_ret->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret, var_other33); /* == on <var_ret:nullable MType(MType)>*/
737 }
738 var165 = !var164;
739 var162 = var165;
740 goto RET_LABEL163;
741 RET_LABEL163:(void)0;
742 }
743 var161 = var162;
744 }
745 if (var161){
746 {
747 { /* Inline typing$AExpr$mtype= (self,var_ret) on <self:ASendExpr> */
748 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_ret; /* _mtype on <self:ASendExpr> */
749 RET_LABEL166:(void)0;
750 }
751 }
752 } else {
753 {
754 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ASendExpr> */
755 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ASendExpr> */
756 RET_LABEL167:(void)0;
757 }
758 }
759 }
760 RET_LABEL:;
761 }
762 /* method typing$ASendExpr$property_node for (self: ASendExpr): ANode */
763 val* nitc__typing___ASendExpr___property_node(val* self) {
764 val* var /* : ANode */;
765 var = self;
766 goto RET_LABEL;
767 RET_LABEL:;
768 return var;
769 }
770 /* method typing$ASendExpr$raw_arguments for (self: ASendExpr): Array[AExpr] */
771 val* nitc__typing___ASendExpr___raw_arguments(val* self) {
772 val* var /* : Array[AExpr] */;
773 val* var1 /* : Array[AExpr] */;
774 {
775 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__compute_raw_arguments]))(self); /* compute_raw_arguments on <self:ASendExpr>*/
776 }
777 var = var1;
778 goto RET_LABEL;
779 RET_LABEL:;
780 return var;
781 }
782 /* method typing$ABinopExpr$compute_raw_arguments for (self: ABinopExpr): Array[AExpr] */
783 val* nitc__typing___ABinopExpr___ASendExpr__compute_raw_arguments(val* self) {
784 val* var /* : Array[AExpr] */;
785 val* var1 /* : Array[AExpr] */;
786 val* var_ /* var : Array[AExpr] */;
787 val* var2 /* : AExpr */;
788 val* var4 /* : AExpr */;
789 var1 = NEW_core__Array(&type_core__Array__nitc__AExpr);
790 {
791 core___core__Array___with_capacity(var1, 1l); /* Direct call array$Array$with_capacity on <var1:Array[AExpr]>*/
792 }
793 var_ = var1;
794 {
795 { /* Inline parser_nodes$ABinopExpr$n_expr2 (self) on <self:ABinopExpr> */
796 var4 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:ABinopExpr> */
797 if (unlikely(var4 == NULL)) {
798 if(catchStack.cursor >= 0){
799 longjmp(catchStack.envs[catchStack.cursor], 1);
800 }
801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
802 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2114);
803 fatal_exit(1);
804 }
805 var2 = var4;
806 RET_LABEL3:(void)0;
807 }
808 }
809 {
810 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_, var2); /* Direct call array$AbstractArray$push on <var_:Array[AExpr]>*/
811 }
812 var = var_;
813 goto RET_LABEL;
814 RET_LABEL:;
815 return var;
816 }
817 /* method typing$ABinopExpr$property_name for (self: ABinopExpr): String */
818 val* nitc__typing___ABinopExpr___ASendExpr__property_name(val* self) {
819 val* var /* : String */;
820 val* var1 /* : String */;
821 {
822 var1 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__parser_nodes__ABinopExpr__operator]))(self); /* operator on <self:ABinopExpr>*/
823 }
824 var = var1;
825 goto RET_LABEL;
826 RET_LABEL:;
827 return var;
828 }
829 /* method typing$ABinopExpr$property_node for (self: ABinopExpr): ANode */
830 val* nitc__typing___ABinopExpr___ASendExpr__property_node(val* self) {
831 val* var /* : ANode */;
832 val* var1 /* : Token */;
833 val* var3 /* : Token */;
834 {
835 { /* Inline parser_nodes$ABinopExpr$n_op (self) on <self:ABinopExpr> */
836 var3 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_op].val; /* _n_op on <self:ABinopExpr> */
837 if (unlikely(var3 == NULL)) {
838 if(catchStack.cursor >= 0){
839 longjmp(catchStack.envs[catchStack.cursor], 1);
840 }
841 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_op");
842 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2111);
843 fatal_exit(1);
844 }
845 var1 = var3;
846 RET_LABEL2:(void)0;
847 }
848 }
849 var = var1;
850 goto RET_LABEL;
851 RET_LABEL:;
852 return var;
853 }
854 /* method typing$AEqFormExpr$accept_typing for (self: AEqFormExpr, TypeVisitor) */
855 void nitc__typing___AEqFormExpr___AExpr__accept_typing(val* self, val* p0) {
856 val* var_v /* var v: TypeVisitor */;
857 var_v = p0;
858 {
859 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__typing___AEqFormExpr___AExpr__accept_typing]))(self, p0); /* accept_typing on <self:AEqFormExpr>*/
860 }
861 {
862 nitc__typing___nitc__typing__TypeVisitor___null_test(var_v, self); /* Direct call typing$TypeVisitor$null_test on <var_v:TypeVisitor>*/
863 }
864 RET_LABEL:;
865 }
866 /* method typing$AEqFormExpr$accept_post_typing for (self: AEqFormExpr, TypeVisitor) */
867 void nitc__typing___AEqFormExpr___ANode__accept_post_typing(val* self, val* p0) {
868 val* var_v /* var v: TypeVisitor */;
869 val* var /* : AExpr */;
870 val* var2 /* : AExpr */;
871 val* var3 /* : nullable MType */;
872 val* var_mtype /* var mtype: nullable MType */;
873 val* var4 /* : AExpr */;
874 val* var6 /* : AExpr */;
875 val* var7 /* : nullable MType */;
876 val* var_mtype2 /* var mtype2: nullable MType */;
877 short int var8 /* : Bool */;
878 short int var9 /* : Bool */;
879 short int var10 /* : Bool */;
880 val* var_other /* var other: nullable Object */;
881 short int var12 /* : Bool */;
882 short int var14 /* : Bool */;
883 short int var_ /* var : Bool */;
884 short int var15 /* : Bool */;
885 short int var16 /* : Bool */;
886 short int var18 /* : Bool */;
887 short int var20 /* : Bool */;
888 short int var21 /* : Bool */;
889 int cltype;
890 int idtype;
891 short int var22 /* : Bool */;
892 val* var23 /* : AExpr */;
893 val* var25 /* : AExpr */;
894 short int var26 /* : Bool */;
895 var_v = p0;
896 {
897 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:AEqFormExpr> */
898 var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqFormExpr> */
899 if (unlikely(var2 == NULL)) {
900 if(catchStack.cursor >= 0){
901 longjmp(catchStack.envs[catchStack.cursor], 1);
902 }
903 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
904 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
905 fatal_exit(1);
906 }
907 var = var2;
908 RET_LABEL1:(void)0;
909 }
910 }
911 {
912 var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on <var:AExpr>*/
913 }
914 var_mtype = var3;
915 {
916 { /* Inline parser_nodes$ABinopExpr$n_expr2 (self) on <self:AEqFormExpr> */
917 var6 = self->attrs[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2].val; /* _n_expr2 on <self:AEqFormExpr> */
918 if (unlikely(var6 == NULL)) {
919 if(catchStack.cursor >= 0){
920 longjmp(catchStack.envs[catchStack.cursor], 1);
921 }
922 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
923 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2114);
924 fatal_exit(1);
925 }
926 var4 = var6;
927 RET_LABEL5:(void)0;
928 }
929 }
930 {
931 var7 = ((val*(*)(val* self))(var4->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var4); /* mtype on <var4:AExpr>*/
932 }
933 var_mtype2 = var7;
934 if (var_mtype == NULL) {
935 var9 = 1; /* is null */
936 } else {
937 var9 = 0; /* arg is null but recv is not */
938 }
939 if (0) {
940 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
941 var_other = ((val*)NULL);
942 {
943 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
944 var14 = var_mtype == var_other;
945 var12 = var14;
946 goto RET_LABEL13;
947 RET_LABEL13:(void)0;
948 }
949 }
950 var10 = var12;
951 goto RET_LABEL11;
952 RET_LABEL11:(void)0;
953 }
954 var9 = var10;
955 }
956 var_ = var9;
957 if (var9){
958 var8 = var_;
959 } else {
960 if (var_mtype2 == NULL) {
961 var15 = 1; /* is null */
962 } else {
963 var15 = 0; /* arg is null but recv is not */
964 }
965 if (0) {
966 { /* Inline kernel$Object$== (var_mtype2,((val*)NULL)) on <var_mtype2:nullable MType> */
967 var_other = ((val*)NULL);
968 {
969 { /* Inline kernel$Object$is_same_instance (var_mtype2,var_other) on <var_mtype2:nullable MType(MType)> */
970 var20 = var_mtype2 == var_other;
971 var18 = var20;
972 goto RET_LABEL19;
973 RET_LABEL19:(void)0;
974 }
975 }
976 var16 = var18;
977 goto RET_LABEL17;
978 RET_LABEL17:(void)0;
979 }
980 var15 = var16;
981 }
982 var8 = var15;
983 }
984 if (var8){
985 goto RET_LABEL;
986 } else {
987 }
988 /* <var_mtype2:nullable MType(MType)> isa MNullType */
989 cltype = type_nitc__MNullType.color;
990 idtype = type_nitc__MNullType.id;
991 if(cltype >= var_mtype2->type->table_size) {
992 var21 = 0;
993 } else {
994 var21 = var_mtype2->type->type_table[cltype] == idtype;
995 }
996 var22 = !var21;
997 if (var22){
998 goto RET_LABEL;
999 } else {
1000 }
1001 {
1002 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:AEqFormExpr> */
1003 var25 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:AEqFormExpr> */
1004 if (unlikely(var25 == NULL)) {
1005 if(catchStack.cursor >= 0){
1006 longjmp(catchStack.envs[catchStack.cursor], 1);
1007 }
1008 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1009 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
1010 fatal_exit(1);
1011 }
1012 var23 = var25;
1013 RET_LABEL24:(void)0;
1014 }
1015 }
1016 {
1017 var26 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var23, var_mtype);
1018 }
1019 RET_LABEL:;
1020 }
1021 /* method typing$AUnaryopExpr$property_name for (self: AUnaryopExpr): String */
1022 val* nitc__typing___AUnaryopExpr___ASendExpr__property_name(val* self) {
1023 val* var /* : String */;
1024 val* var1 /* : NativeArray[String] */;
1025 static val* varonce;
1026 static val* varonce2;
1027 val* var3 /* : String */;
1028 char* var4 /* : CString */;
1029 val* var5 /* : String */;
1030 val* var6 /* : nullable Int */;
1031 val* var7 /* : nullable Int */;
1032 val* var8 /* : nullable Bool */;
1033 val* var9 /* : nullable Bool */;
1034 val* var10 /* : String */;
1035 val* var11 /* : String */;
1036 if (unlikely(varonce==NULL)) {
1037 var1 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
1038 if (likely(varonce2!=NULL)) {
1039 var3 = varonce2;
1040 } else {
1041 var4 = "unary ";
1042 var6 = (val*)(6l<<2|1);
1043 var7 = (val*)(6l<<2|1);
1044 var8 = (val*)((long)(0)<<2|3);
1045 var9 = (val*)((long)(0)<<2|3);
1046 var5 = core__flat___CString___to_s_unsafe(var4, var6, var7, var8, var9);
1047 var3 = var5;
1048 varonce2 = var3;
1049 }
1050 ((struct instance_core__NativeArray*)var1)->values[0]=var3;
1051 } else {
1052 var1 = varonce;
1053 varonce = NULL;
1054 }
1055 {
1056 var10 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__parser_nodes__AUnaryopExpr__operator]))(self); /* operator on <self:AUnaryopExpr>*/
1057 }
1058 ((struct instance_core__NativeArray*)var1)->values[1]=var10;
1059 {
1060 var11 = ((val*(*)(val* self))(var1->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var1); /* native_to_s on <var1:NativeArray[String]>*/
1061 }
1062 varonce = var1;
1063 var = var11;
1064 goto RET_LABEL;
1065 RET_LABEL:;
1066 return var;
1067 }
1068 /* method typing$AUnaryopExpr$compute_raw_arguments for (self: AUnaryopExpr): Array[AExpr] */
1069 val* nitc__typing___AUnaryopExpr___ASendExpr__compute_raw_arguments(val* self) {
1070 val* var /* : Array[AExpr] */;
1071 val* var1 /* : Array[AExpr] */;
1072 var1 = NEW_core__Array(&type_core__Array__nitc__AExpr);
1073 {
1074 core___core__Array___core__kernel__Object__init(var1); /* Direct call array$Array$init on <var1:Array[AExpr]>*/
1075 }
1076 var = var1;
1077 goto RET_LABEL;
1078 RET_LABEL:;
1079 return var;
1080 }
1081 /* method typing$ACallExpr$property_name for (self: ACallExpr): String */
1082 val* nitc__typing___ACallExpr___ASendExpr__property_name(val* self) {
1083 val* var /* : String */;
1084 val* var1 /* : AQid */;
1085 val* var3 /* : AQid */;
1086 val* var4 /* : TId */;
1087 val* var6 /* : TId */;
1088 val* var7 /* : String */;
1089 {
1090 { /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:ACallExpr> */
1091 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallExpr> */
1092 if (unlikely(var3 == NULL)) {
1093 if(catchStack.cursor >= 0){
1094 longjmp(catchStack.envs[catchStack.cursor], 1);
1095 }
1096 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
1097 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
1098 fatal_exit(1);
1099 }
1100 var1 = var3;
1101 RET_LABEL2:(void)0;
1102 }
1103 }
1104 {
1105 { /* Inline parser_nodes$AQid$n_id (var1) on <var1:AQid> */
1106 var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var1:AQid> */
1107 if (unlikely(var6 == NULL)) {
1108 if(catchStack.cursor >= 0){
1109 longjmp(catchStack.envs[catchStack.cursor], 1);
1110 }
1111 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1112 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1721);
1113 fatal_exit(1);
1114 }
1115 var4 = var6;
1116 RET_LABEL5:(void)0;
1117 }
1118 }
1119 {
1120 var7 = nitc__lexer_work___Token___text(var4);
1121 }
1122 var = var7;
1123 goto RET_LABEL;
1124 RET_LABEL:;
1125 return var;
1126 }
1127 /* method typing$ACallExpr$property_node for (self: ACallExpr): ANode */
1128 val* nitc__typing___ACallExpr___ASendExpr__property_node(val* self) {
1129 val* var /* : ANode */;
1130 val* var1 /* : AQid */;
1131 val* var3 /* : AQid */;
1132 {
1133 { /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:ACallExpr> */
1134 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallExpr> */
1135 if (unlikely(var3 == NULL)) {
1136 if(catchStack.cursor >= 0){
1137 longjmp(catchStack.envs[catchStack.cursor], 1);
1138 }
1139 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
1140 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
1141 fatal_exit(1);
1142 }
1143 var1 = var3;
1144 RET_LABEL2:(void)0;
1145 }
1146 }
1147 var = var1;
1148 goto RET_LABEL;
1149 RET_LABEL:;
1150 return var;
1151 }
1152 /* method typing$ACallExpr$compute_raw_arguments for (self: ACallExpr): Array[AExpr] */
1153 val* nitc__typing___ACallExpr___ASendExpr__compute_raw_arguments(val* self) {
1154 val* var /* : Array[AExpr] */;
1155 val* var1 /* : AExprs */;
1156 val* var3 /* : AExprs */;
1157 val* var4 /* : Array[AExpr] */;
1158 {
1159 { /* Inline parser_nodes$ACallFormExpr$n_args (self) on <self:ACallExpr> */
1160 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallExpr> */
1161 if (unlikely(var3 == NULL)) {
1162 if(catchStack.cursor >= 0){
1163 longjmp(catchStack.envs[catchStack.cursor], 1);
1164 }
1165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1166 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2380);
1167 fatal_exit(1);
1168 }
1169 var1 = var3;
1170 RET_LABEL2:(void)0;
1171 }
1172 }
1173 {
1174 var4 = nitc__typing___AExprs___to_a(var1);
1175 }
1176 var = var4;
1177 goto RET_LABEL;
1178 RET_LABEL:;
1179 return var;
1180 }
1181 /* method typing$ACallAssignExpr$property_name for (self: ACallAssignExpr): String */
1182 val* nitc__typing___ACallAssignExpr___ASendExpr__property_name(val* self) {
1183 val* var /* : String */;
1184 val* var1 /* : AQid */;
1185 val* var3 /* : AQid */;
1186 val* var4 /* : TId */;
1187 val* var6 /* : TId */;
1188 val* var7 /* : String */;
1189 static val* varonce;
1190 val* var8 /* : String */;
1191 char* var9 /* : CString */;
1192 val* var10 /* : String */;
1193 val* var11 /* : nullable Int */;
1194 val* var12 /* : nullable Int */;
1195 val* var13 /* : nullable Bool */;
1196 val* var14 /* : nullable Bool */;
1197 val* var15 /* : Text */;
1198 {
1199 { /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:ACallAssignExpr> */
1200 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallAssignExpr> */
1201 if (unlikely(var3 == NULL)) {
1202 if(catchStack.cursor >= 0){
1203 longjmp(catchStack.envs[catchStack.cursor], 1);
1204 }
1205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
1206 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
1207 fatal_exit(1);
1208 }
1209 var1 = var3;
1210 RET_LABEL2:(void)0;
1211 }
1212 }
1213 {
1214 { /* Inline parser_nodes$AQid$n_id (var1) on <var1:AQid> */
1215 var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var1:AQid> */
1216 if (unlikely(var6 == NULL)) {
1217 if(catchStack.cursor >= 0){
1218 longjmp(catchStack.envs[catchStack.cursor], 1);
1219 }
1220 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1221 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1721);
1222 fatal_exit(1);
1223 }
1224 var4 = var6;
1225 RET_LABEL5:(void)0;
1226 }
1227 }
1228 {
1229 var7 = nitc__lexer_work___Token___text(var4);
1230 }
1231 if (likely(varonce!=NULL)) {
1232 var8 = varonce;
1233 } else {
1234 var9 = "=";
1235 var11 = (val*)(1l<<2|1);
1236 var12 = (val*)(1l<<2|1);
1237 var13 = (val*)((long)(0)<<2|3);
1238 var14 = (val*)((long)(0)<<2|3);
1239 var10 = core__flat___CString___to_s_unsafe(var9, var11, var12, var13, var14);
1240 var8 = var10;
1241 varonce = var8;
1242 }
1243 {
1244 var15 = ((val*(*)(val* self, val* p0))(var7->class->vft[COLOR_core__abstract_text__Text___43d]))(var7, var8); /* + on <var7:String>*/
1245 }
1246 var = var15;
1247 goto RET_LABEL;
1248 RET_LABEL:;
1249 return var;
1250 }
1251 /* method typing$ACallAssignExpr$property_node for (self: ACallAssignExpr): ANode */
1252 val* nitc__typing___ACallAssignExpr___ASendExpr__property_node(val* self) {
1253 val* var /* : ANode */;
1254 val* var1 /* : AQid */;
1255 val* var3 /* : AQid */;
1256 {
1257 { /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:ACallAssignExpr> */
1258 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallAssignExpr> */
1259 if (unlikely(var3 == NULL)) {
1260 if(catchStack.cursor >= 0){
1261 longjmp(catchStack.envs[catchStack.cursor], 1);
1262 }
1263 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
1264 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
1265 fatal_exit(1);
1266 }
1267 var1 = var3;
1268 RET_LABEL2:(void)0;
1269 }
1270 }
1271 var = var1;
1272 goto RET_LABEL;
1273 RET_LABEL:;
1274 return var;
1275 }
1276 /* method typing$ACallAssignExpr$compute_raw_arguments for (self: ACallAssignExpr): Array[AExpr] */
1277 val* nitc__typing___ACallAssignExpr___ASendExpr__compute_raw_arguments(val* self) {
1278 val* var /* : Array[AExpr] */;
1279 val* var1 /* : AExprs */;
1280 val* var3 /* : AExprs */;
1281 val* var4 /* : Array[AExpr] */;
1282 val* var_res /* var res: Array[AExpr] */;
1283 val* var5 /* : AExpr */;
1284 val* var7 /* : AExpr */;
1285 {
1286 { /* Inline parser_nodes$ACallFormExpr$n_args (self) on <self:ACallAssignExpr> */
1287 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallAssignExpr> */
1288 if (unlikely(var3 == NULL)) {
1289 if(catchStack.cursor >= 0){
1290 longjmp(catchStack.envs[catchStack.cursor], 1);
1291 }
1292 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1293 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2380);
1294 fatal_exit(1);
1295 }
1296 var1 = var3;
1297 RET_LABEL2:(void)0;
1298 }
1299 }
1300 {
1301 var4 = nitc__typing___AExprs___to_a(var1);
1302 }
1303 var_res = var4;
1304 {
1305 { /* Inline parser_nodes$AAssignFormExpr$n_value (self) on <self:ACallAssignExpr> */
1306 var7 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ACallAssignExpr> */
1307 if (unlikely(var7 == NULL)) {
1308 if(catchStack.cursor >= 0){
1309 longjmp(catchStack.envs[catchStack.cursor], 1);
1310 }
1311 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1312 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2073);
1313 fatal_exit(1);
1314 }
1315 var5 = var7;
1316 RET_LABEL6:(void)0;
1317 }
1318 }
1319 {
1320 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var5); /* Direct call array$Array$add on <var_res:Array[AExpr]>*/
1321 }
1322 var = var_res;
1323 goto RET_LABEL;
1324 RET_LABEL:;
1325 return var;
1326 }
1327 /* method typing$ABraExpr$property_name for (self: ABraExpr): String */
1328 val* nitc__typing___ABraExpr___ASendExpr__property_name(val* self) {
1329 val* var /* : String */;
1330 static val* varonce;
1331 val* var1 /* : String */;
1332 char* var2 /* : CString */;
1333 val* var3 /* : String */;
1334 val* var4 /* : nullable Int */;
1335 val* var5 /* : nullable Int */;
1336 val* var6 /* : nullable Bool */;
1337 val* var7 /* : nullable Bool */;
1338 if (likely(varonce!=NULL)) {
1339 var1 = varonce;
1340 } else {
1341 var2 = "[]";
1342 var4 = (val*)(2l<<2|1);
1343 var5 = (val*)(2l<<2|1);
1344 var6 = (val*)((long)(0)<<2|3);
1345 var7 = (val*)((long)(0)<<2|3);
1346 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
1347 var1 = var3;
1348 varonce = var1;
1349 }
1350 var = var1;
1351 goto RET_LABEL;
1352 RET_LABEL:;
1353 return var;
1354 }
1355 /* method typing$ABraExpr$compute_raw_arguments for (self: ABraExpr): Array[AExpr] */
1356 val* nitc__typing___ABraExpr___ASendExpr__compute_raw_arguments(val* self) {
1357 val* var /* : Array[AExpr] */;
1358 val* var1 /* : AExprs */;
1359 val* var3 /* : AExprs */;
1360 val* var4 /* : Array[AExpr] */;
1361 {
1362 { /* Inline parser_nodes$ABraFormExpr$n_args (self) on <self:ABraExpr> */
1363 var3 = self->attrs[COLOR_nitc__parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraExpr> */
1364 if (unlikely(var3 == NULL)) {
1365 if(catchStack.cursor >= 0){
1366 longjmp(catchStack.envs[catchStack.cursor], 1);
1367 }
1368 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1369 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2449);
1370 fatal_exit(1);
1371 }
1372 var1 = var3;
1373 RET_LABEL2:(void)0;
1374 }
1375 }
1376 {
1377 var4 = nitc__typing___AExprs___to_a(var1);
1378 }
1379 var = var4;
1380 goto RET_LABEL;
1381 RET_LABEL:;
1382 return var;
1383 }
1384 /* method typing$ABraAssignExpr$property_name for (self: ABraAssignExpr): String */
1385 val* nitc__typing___ABraAssignExpr___ASendExpr__property_name(val* self) {
1386 val* var /* : String */;
1387 static val* varonce;
1388 val* var1 /* : String */;
1389 char* var2 /* : CString */;
1390 val* var3 /* : String */;
1391 val* var4 /* : nullable Int */;
1392 val* var5 /* : nullable Int */;
1393 val* var6 /* : nullable Bool */;
1394 val* var7 /* : nullable Bool */;
1395 if (likely(varonce!=NULL)) {
1396 var1 = varonce;
1397 } else {
1398 var2 = "[]=";
1399 var4 = (val*)(3l<<2|1);
1400 var5 = (val*)(3l<<2|1);
1401 var6 = (val*)((long)(0)<<2|3);
1402 var7 = (val*)((long)(0)<<2|3);
1403 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
1404 var1 = var3;
1405 varonce = var1;
1406 }
1407 var = var1;
1408 goto RET_LABEL;
1409 RET_LABEL:;
1410 return var;
1411 }
1412 /* method typing$ABraAssignExpr$compute_raw_arguments for (self: ABraAssignExpr): Array[AExpr] */
1413 val* nitc__typing___ABraAssignExpr___ASendExpr__compute_raw_arguments(val* self) {
1414 val* var /* : Array[AExpr] */;
1415 val* var1 /* : AExprs */;
1416 val* var3 /* : AExprs */;
1417 val* var4 /* : Array[AExpr] */;
1418 val* var_res /* var res: Array[AExpr] */;
1419 val* var5 /* : AExpr */;
1420 val* var7 /* : AExpr */;
1421 {
1422 { /* Inline parser_nodes$ABraFormExpr$n_args (self) on <self:ABraAssignExpr> */
1423 var3 = self->attrs[COLOR_nitc__parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraAssignExpr> */
1424 if (unlikely(var3 == NULL)) {
1425 if(catchStack.cursor >= 0){
1426 longjmp(catchStack.envs[catchStack.cursor], 1);
1427 }
1428 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
1429 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2449);
1430 fatal_exit(1);
1431 }
1432 var1 = var3;
1433 RET_LABEL2:(void)0;
1434 }
1435 }
1436 {
1437 var4 = nitc__typing___AExprs___to_a(var1);
1438 }
1439 var_res = var4;
1440 {
1441 { /* Inline parser_nodes$AAssignFormExpr$n_value (self) on <self:ABraAssignExpr> */
1442 var7 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:ABraAssignExpr> */
1443 if (unlikely(var7 == NULL)) {
1444 if(catchStack.cursor >= 0){
1445 longjmp(catchStack.envs[catchStack.cursor], 1);
1446 }
1447 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2073);
1449 fatal_exit(1);
1450 }
1451 var5 = var7;
1452 RET_LABEL6:(void)0;
1453 }
1454 }
1455 {
1456 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res, var5); /* Direct call array$Array$add on <var_res:Array[AExpr]>*/
1457 }
1458 var = var_res;
1459 goto RET_LABEL;
1460 RET_LABEL:;
1461 return var;
1462 }
1463 /* method typing$ASendReassignFormExpr$write_callsite for (self: ASendReassignFormExpr): nullable CallSite */
1464 val* nitc__typing___ASendReassignFormExpr___write_callsite(val* self) {
1465 val* var /* : nullable CallSite */;
1466 val* var1 /* : nullable CallSite */;
1467 var1 = self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val; /* _write_callsite on <self:ASendReassignFormExpr> */
1468 var = var1;
1469 RET_LABEL:;
1470 return var;
1471 }
1472 /* method typing$ASendReassignFormExpr$write_callsite= for (self: ASendReassignFormExpr, nullable CallSite) */
1473 void nitc__typing___ASendReassignFormExpr___write_callsite_61d(val* self, val* p0) {
1474 self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val = p0; /* _write_callsite on <self:ASendReassignFormExpr> */
1475 RET_LABEL:;
1476 }
1477 /* method typing$ASendReassignFormExpr$accept_typing for (self: ASendReassignFormExpr, TypeVisitor) */
1478 void nitc__typing___ASendReassignFormExpr___AExpr__accept_typing(val* self, val* p0) {
1479 val* var_v /* var v: TypeVisitor */;
1480 val* var /* : AExpr */;
1481 val* var2 /* : AExpr */;
1482 val* var3 /* : nullable MType */;
1483 val* var_recvtype /* var recvtype: nullable MType */;
1484 val* var4 /* : String */;
1485 val* var_name /* var name: String */;
1486 val* var5 /* : ANode */;
1487 val* var_node /* var node: ANode */;
1488 short int var6 /* : Bool */;
1489 short int var7 /* : Bool */;
1490 val* var_other /* var other: nullable Object */;
1491 short int var9 /* : Bool */;
1492 short int var11 /* : Bool */;
1493 val* var12 /* : AExpr */;
1494 val* var14 /* : AExpr */;
1495 short int var15 /* : Bool */;
1496 int cltype;
1497 int idtype;
1498 short int var_for_self /* var for_self: Bool */;
1499 val* var16 /* : nullable CallSite */;
1500 val* var_callsite /* var callsite: nullable CallSite */;
1501 short int var17 /* : Bool */;
1502 short int var18 /* : Bool */;
1503 short int var20 /* : Bool */;
1504 short int var22 /* : Bool */;
1505 val* var24 /* : Array[AExpr] */;
1506 val* var_args /* var args: Array[AExpr] */;
1507 short int var25 /* : Bool */;
1508 val* var26 /* : MSignature */;
1509 val* var28 /* : MSignature */;
1510 val* var29 /* : nullable MType */;
1511 val* var31 /* : nullable MType */;
1512 val* var_readtype /* var readtype: nullable MType */;
1513 short int var32 /* : Bool */;
1514 short int var33 /* : Bool */;
1515 short int var35 /* : Bool */;
1516 short int var37 /* : Bool */;
1517 val* var38 /* : NativeArray[String] */;
1518 static val* varonce;
1519 static val* varonce39;
1520 val* var40 /* : String */;
1521 char* var41 /* : CString */;
1522 val* var42 /* : String */;
1523 val* var43 /* : nullable Int */;
1524 val* var44 /* : nullable Int */;
1525 val* var45 /* : nullable Bool */;
1526 val* var46 /* : nullable Bool */;
1527 static val* varonce47;
1528 val* var48 /* : String */;
1529 char* var49 /* : CString */;
1530 val* var50 /* : String */;
1531 val* var51 /* : nullable Int */;
1532 val* var52 /* : nullable Int */;
1533 val* var53 /* : nullable Bool */;
1534 val* var54 /* : nullable Bool */;
1535 val* var55 /* : String */;
1536 static val* varonce56;
1537 val* var57 /* : String */;
1538 char* var58 /* : CString */;
1539 val* var59 /* : String */;
1540 val* var60 /* : nullable Int */;
1541 val* var61 /* : nullable Int */;
1542 val* var62 /* : nullable Bool */;
1543 val* var63 /* : nullable Bool */;
1544 val* var64 /* : Text */;
1545 val* var65 /* : AExpr */;
1546 val* var67 /* : AExpr */;
1547 short int var68 /* : Bool */;
1548 int cltype69;
1549 int idtype70;
1550 val* var71 /* : nullable CallSite */;
1551 val* var_wcallsite /* var wcallsite: nullable CallSite */;
1552 short int var72 /* : Bool */;
1553 short int var73 /* : Bool */;
1554 short int var75 /* : Bool */;
1555 short int var77 /* : Bool */;
1556 val* var79 /* : MSignature */;
1557 val* var81 /* : MSignature */;
1558 val* var82 /* : Array[MParameter] */;
1559 val* var84 /* : Array[MParameter] */;
1560 val* var85 /* : nullable Object */;
1561 val* var86 /* : MType */;
1562 val* var88 /* : MType */;
1563 val* var89 /* : nullable MType */;
1564 val* var_wtype /* var wtype: nullable MType */;
1565 short int var90 /* : Bool */;
1566 short int var91 /* : Bool */;
1567 short int var93 /* : Bool */;
1568 short int var95 /* : Bool */;
1569 val* var96 /* : Array[nullable Object] */;
1570 val* var97 /* : AExpr */;
1571 val* var99 /* : AExpr */;
1572 short int var100 /* : Bool */;
1573 var_v = p0;
1574 {
1575 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:ASendReassignFormExpr> */
1576 var2 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
1577 if (unlikely(var2 == NULL)) {
1578 if(catchStack.cursor >= 0){
1579 longjmp(catchStack.envs[catchStack.cursor], 1);
1580 }
1581 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1582 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
1583 fatal_exit(1);
1584 }
1585 var = var2;
1586 RET_LABEL1:(void)0;
1587 }
1588 }
1589 {
1590 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
1591 }
1592 var_recvtype = var3;
1593 {
1594 var4 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_name]))(self); /* property_name on <self:ASendReassignFormExpr>*/
1595 }
1596 var_name = var4;
1597 {
1598 var5 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_node]))(self); /* property_node on <self:ASendReassignFormExpr>*/
1599 }
1600 var_node = var5;
1601 if (var_recvtype == NULL) {
1602 var6 = 1; /* is null */
1603 } else {
1604 var6 = 0; /* arg is null but recv is not */
1605 }
1606 if (0) {
1607 { /* Inline kernel$Object$== (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
1608 var_other = ((val*)NULL);
1609 {
1610 { /* Inline kernel$Object$is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
1611 var11 = var_recvtype == var_other;
1612 var9 = var11;
1613 goto RET_LABEL10;
1614 RET_LABEL10:(void)0;
1615 }
1616 }
1617 var7 = var9;
1618 goto RET_LABEL8;
1619 RET_LABEL8:(void)0;
1620 }
1621 var6 = var7;
1622 }
1623 if (var6){
1624 goto RET_LABEL;
1625 } else {
1626 }
1627 {
1628 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:ASendReassignFormExpr> */
1629 var14 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
1630 if (unlikely(var14 == NULL)) {
1631 if(catchStack.cursor >= 0){
1632 longjmp(catchStack.envs[catchStack.cursor], 1);
1633 }
1634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
1636 fatal_exit(1);
1637 }
1638 var12 = var14;
1639 RET_LABEL13:(void)0;
1640 }
1641 }
1642 /* <var12:AExpr> isa ASelfExpr */
1643 cltype = type_nitc__ASelfExpr.color;
1644 idtype = type_nitc__ASelfExpr.id;
1645 if(cltype >= var12->type->table_size) {
1646 var15 = 0;
1647 } else {
1648 var15 = var12->type->type_table[cltype] == idtype;
1649 }
1650 var_for_self = var15;
1651 {
1652 var16 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_recvtype, var_name, var_for_self);
1653 }
1654 var_callsite = var16;
1655 if (var_callsite == NULL) {
1656 var17 = 1; /* is null */
1657 } else {
1658 var17 = 0; /* arg is null but recv is not */
1659 }
1660 if (0) {
1661 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
1662 var_other = ((val*)NULL);
1663 {
1664 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
1665 var22 = var_callsite == var_other;
1666 var20 = var22;
1667 goto RET_LABEL21;
1668 RET_LABEL21:(void)0;
1669 }
1670 }
1671 var18 = var20;
1672 goto RET_LABEL19;
1673 RET_LABEL19:(void)0;
1674 }
1675 var17 = var18;
1676 }
1677 if (var17){
1678 goto RET_LABEL;
1679 } else {
1680 }
1681 {
1682 { /* Inline typing$ASendExpr$callsite= (self,var_callsite) on <self:ASendReassignFormExpr> */
1683 self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val = var_callsite; /* _callsite on <self:ASendReassignFormExpr> */
1684 RET_LABEL23:(void)0;
1685 }
1686 }
1687 {
1688 var24 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__compute_raw_arguments]))(self); /* compute_raw_arguments on <self:ASendReassignFormExpr>*/
1689 }
1690 var_args = var24;
1691 {
1692 var25 = nitc___nitc__CallSite___check_signature(var_callsite, var_v, var_node, var_args);
1693 }
1694 {
1695 { /* Inline typing$CallSite$msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
1696 var28 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
1697 if (unlikely(var28 == NULL)) {
1698 if(catchStack.cursor >= 0){
1699 longjmp(catchStack.envs[catchStack.cursor], 1);
1700 }
1701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
1703 fatal_exit(1);
1704 }
1705 var26 = var28;
1706 RET_LABEL27:(void)0;
1707 }
1708 }
1709 {
1710 { /* Inline model$MSignature$return_mtype (var26) on <var26:MSignature> */
1711 var31 = var26->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var26:MSignature> */
1712 var29 = var31;
1713 RET_LABEL30:(void)0;
1714 }
1715 }
1716 var_readtype = var29;
1717 if (var_readtype == NULL) {
1718 var32 = 1; /* is null */
1719 } else {
1720 var32 = 0; /* arg is null but recv is not */
1721 }
1722 if (0) {
1723 { /* Inline kernel$Object$== (var_readtype,((val*)NULL)) on <var_readtype:nullable MType> */
1724 var_other = ((val*)NULL);
1725 {
1726 { /* Inline kernel$Object$is_same_instance (var_readtype,var_other) on <var_readtype:nullable MType(MType)> */
1727 var37 = var_readtype == var_other;
1728 var35 = var37;
1729 goto RET_LABEL36;
1730 RET_LABEL36:(void)0;
1731 }
1732 }
1733 var33 = var35;
1734 goto RET_LABEL34;
1735 RET_LABEL34:(void)0;
1736 }
1737 var32 = var33;
1738 }
1739 if (var32){
1740 if (unlikely(varonce==NULL)) {
1741 var38 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1742 if (likely(varonce39!=NULL)) {
1743 var40 = varonce39;
1744 } else {
1745 var41 = "Error: `";
1746 var43 = (val*)(8l<<2|1);
1747 var44 = (val*)(8l<<2|1);
1748 var45 = (val*)((long)(0)<<2|3);
1749 var46 = (val*)((long)(0)<<2|3);
1750 var42 = core__flat___CString___to_s_unsafe(var41, var43, var44, var45, var46);
1751 var40 = var42;
1752 varonce39 = var40;
1753 }
1754 ((struct instance_core__NativeArray*)var38)->values[0]=var40;
1755 if (likely(varonce47!=NULL)) {
1756 var48 = varonce47;
1757 } else {
1758 var49 = "` is not a function.";
1759 var51 = (val*)(20l<<2|1);
1760 var52 = (val*)(20l<<2|1);
1761 var53 = (val*)((long)(0)<<2|3);
1762 var54 = (val*)((long)(0)<<2|3);
1763 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
1764 var48 = var50;
1765 varonce47 = var48;
1766 }
1767 ((struct instance_core__NativeArray*)var38)->values[2]=var48;
1768 } else {
1769 var38 = varonce;
1770 varonce = NULL;
1771 }
1772 ((struct instance_core__NativeArray*)var38)->values[1]=var_name;
1773 {
1774 var55 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
1775 }
1776 varonce = var38;
1777 {
1778 nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_node, var55); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
1779 }
1780 goto RET_LABEL;
1781 } else {
1782 }
1783 if (likely(varonce56!=NULL)) {
1784 var57 = varonce56;
1785 } else {
1786 var58 = "=";
1787 var60 = (val*)(1l<<2|1);
1788 var61 = (val*)(1l<<2|1);
1789 var62 = (val*)((long)(0)<<2|3);
1790 var63 = (val*)((long)(0)<<2|3);
1791 var59 = core__flat___CString___to_s_unsafe(var58, var60, var61, var62, var63);
1792 var57 = var59;
1793 varonce56 = var57;
1794 }
1795 {
1796 var64 = ((val*(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__abstract_text__Text___43d]))(var_name, var57); /* + on <var_name:String>*/
1797 }
1798 {
1799 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:ASendReassignFormExpr> */
1800 var67 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendReassignFormExpr> */
1801 if (unlikely(var67 == NULL)) {
1802 if(catchStack.cursor >= 0){
1803 longjmp(catchStack.envs[catchStack.cursor], 1);
1804 }
1805 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1806 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
1807 fatal_exit(1);
1808 }
1809 var65 = var67;
1810 RET_LABEL66:(void)0;
1811 }
1812 }
1813 /* <var65:AExpr> isa ASelfExpr */
1814 cltype69 = type_nitc__ASelfExpr.color;
1815 idtype70 = type_nitc__ASelfExpr.id;
1816 if(cltype69 >= var65->type->table_size) {
1817 var68 = 0;
1818 } else {
1819 var68 = var65->type->type_table[cltype69] == idtype70;
1820 }
1821 {
1822 var71 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_recvtype, var64, var68);
1823 }
1824 var_wcallsite = var71;
1825 if (var_wcallsite == NULL) {
1826 var72 = 1; /* is null */
1827 } else {
1828 var72 = 0; /* arg is null but recv is not */
1829 }
1830 if (0) {
1831 { /* Inline kernel$Object$== (var_wcallsite,((val*)NULL)) on <var_wcallsite:nullable CallSite> */
1832 var_other = ((val*)NULL);
1833 {
1834 { /* Inline kernel$Object$is_same_instance (var_wcallsite,var_other) on <var_wcallsite:nullable CallSite(CallSite)> */
1835 var77 = var_wcallsite == var_other;
1836 var75 = var77;
1837 goto RET_LABEL76;
1838 RET_LABEL76:(void)0;
1839 }
1840 }
1841 var73 = var75;
1842 goto RET_LABEL74;
1843 RET_LABEL74:(void)0;
1844 }
1845 var72 = var73;
1846 }
1847 if (var72){
1848 goto RET_LABEL;
1849 } else {
1850 }
1851 {
1852 { /* Inline typing$ASendReassignFormExpr$write_callsite= (self,var_wcallsite) on <self:ASendReassignFormExpr> */
1853 self->attrs[COLOR_nitc__typing__ASendReassignFormExpr___write_callsite].val = var_wcallsite; /* _write_callsite on <self:ASendReassignFormExpr> */
1854 RET_LABEL78:(void)0;
1855 }
1856 }
1857 {
1858 { /* Inline typing$CallSite$msignature (var_wcallsite) on <var_wcallsite:nullable CallSite(CallSite)> */
1859 var81 = var_wcallsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_wcallsite:nullable CallSite(CallSite)> */
1860 if (unlikely(var81 == NULL)) {
1861 if(catchStack.cursor >= 0){
1862 longjmp(catchStack.envs[catchStack.cursor], 1);
1863 }
1864 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1865 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
1866 fatal_exit(1);
1867 }
1868 var79 = var81;
1869 RET_LABEL80:(void)0;
1870 }
1871 }
1872 {
1873 { /* Inline model$MSignature$mparameters (var79) on <var79:MSignature> */
1874 var84 = var79->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var79:MSignature> */
1875 if (unlikely(var84 == NULL)) {
1876 if(catchStack.cursor >= 0){
1877 longjmp(catchStack.envs[catchStack.cursor], 1);
1878 }
1879 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1880 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
1881 fatal_exit(1);
1882 }
1883 var82 = var84;
1884 RET_LABEL83:(void)0;
1885 }
1886 }
1887 {
1888 var85 = core___core__SequenceRead___last(var82);
1889 }
1890 {
1891 { /* Inline model$MParameter$mtype (var85) on <var85:nullable Object(MParameter)> */
1892 var88 = var85->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var85:nullable Object(MParameter)> */
1893 if (unlikely(var88 == NULL)) {
1894 if(catchStack.cursor >= 0){
1895 longjmp(catchStack.envs[catchStack.cursor], 1);
1896 }
1897 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1898 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
1899 fatal_exit(1);
1900 }
1901 var86 = var88;
1902 RET_LABEL87:(void)0;
1903 }
1904 }
1905 {
1906 var89 = nitc__typing___AReassignFormExpr___resolve_reassignment(self, var_v, var_readtype, var86);
1907 }
1908 var_wtype = var89;
1909 if (var_wtype == NULL) {
1910 var90 = 1; /* is null */
1911 } else {
1912 var90 = 0; /* arg is null but recv is not */
1913 }
1914 if (0) {
1915 { /* Inline kernel$Object$== (var_wtype,((val*)NULL)) on <var_wtype:nullable MType> */
1916 var_other = ((val*)NULL);
1917 {
1918 { /* Inline kernel$Object$is_same_instance (var_wtype,var_other) on <var_wtype:nullable MType(MType)> */
1919 var95 = var_wtype == var_other;
1920 var93 = var95;
1921 goto RET_LABEL94;
1922 RET_LABEL94:(void)0;
1923 }
1924 }
1925 var91 = var93;
1926 goto RET_LABEL92;
1927 RET_LABEL92:(void)0;
1928 }
1929 var90 = var91;
1930 }
1931 if (var90){
1932 goto RET_LABEL;
1933 } else {
1934 }
1935 {
1936 var96 = core__array___Collection___to_a(var_args);
1937 }
1938 var_args = var96;
1939 {
1940 { /* Inline parser_nodes$AReassignFormExpr$n_value (self) on <self:ASendReassignFormExpr> */
1941 var99 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:ASendReassignFormExpr> */
1942 if (unlikely(var99 == NULL)) {
1943 if(catchStack.cursor >= 0){
1944 longjmp(catchStack.envs[catchStack.cursor], 1);
1945 }
1946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2084);
1948 fatal_exit(1);
1949 }
1950 var97 = var99;
1951 RET_LABEL98:(void)0;
1952 }
1953 }
1954 {
1955 core___core__Array___core__abstract_collection__SimpleCollection__add(var_args, var97); /* Direct call array$Array$add on <var_args:Array[AExpr]>*/
1956 }
1957 {
1958 var100 = nitc___nitc__CallSite___check_signature(var_wcallsite, var_v, var_node, var_args);
1959 }
1960 {
1961 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ASendReassignFormExpr> */
1962 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ASendReassignFormExpr> */
1963 RET_LABEL101:(void)0;
1964 }
1965 }
1966 RET_LABEL:;
1967 }
1968 /* method typing$ACallReassignExpr$property_name for (self: ACallReassignExpr): String */
1969 val* nitc__typing___ACallReassignExpr___ASendExpr__property_name(val* self) {
1970 val* var /* : String */;
1971 val* var1 /* : AQid */;
1972 val* var3 /* : AQid */;
1973 val* var4 /* : TId */;
1974 val* var6 /* : TId */;
1975 val* var7 /* : String */;
1976 {
1977 { /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:ACallReassignExpr> */
1978 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallReassignExpr> */
1979 if (unlikely(var3 == NULL)) {
1980 if(catchStack.cursor >= 0){
1981 longjmp(catchStack.envs[catchStack.cursor], 1);
1982 }
1983 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
1984 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
1985 fatal_exit(1);
1986 }
1987 var1 = var3;
1988 RET_LABEL2:(void)0;
1989 }
1990 }
1991 {
1992 { /* Inline parser_nodes$AQid$n_id (var1) on <var1:AQid> */
1993 var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var1:AQid> */
1994 if (unlikely(var6 == NULL)) {
1995 if(catchStack.cursor >= 0){
1996 longjmp(catchStack.envs[catchStack.cursor], 1);
1997 }
1998 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
1999 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1721);
2000 fatal_exit(1);
2001 }
2002 var4 = var6;
2003 RET_LABEL5:(void)0;
2004 }
2005 }
2006 {
2007 var7 = nitc__lexer_work___Token___text(var4);
2008 }
2009 var = var7;
2010 goto RET_LABEL;
2011 RET_LABEL:;
2012 return var;
2013 }
2014 /* method typing$ACallReassignExpr$property_node for (self: ACallReassignExpr): ANode */
2015 val* nitc__typing___ACallReassignExpr___ASendExpr__property_node(val* self) {
2016 val* var /* : ANode */;
2017 val* var1 /* : AQid */;
2018 val* var3 /* : AQid */;
2019 val* var4 /* : TId */;
2020 val* var6 /* : TId */;
2021 {
2022 { /* Inline parser_nodes$ACallFormExpr$n_qid (self) on <self:ACallReassignExpr> */
2023 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_qid].val; /* _n_qid on <self:ACallReassignExpr> */
2024 if (unlikely(var3 == NULL)) {
2025 if(catchStack.cursor >= 0){
2026 longjmp(catchStack.envs[catchStack.cursor], 1);
2027 }
2028 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_qid");
2029 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2377);
2030 fatal_exit(1);
2031 }
2032 var1 = var3;
2033 RET_LABEL2:(void)0;
2034 }
2035 }
2036 {
2037 { /* Inline parser_nodes$AQid$n_id (var1) on <var1:AQid> */
2038 var6 = var1->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var1:AQid> */
2039 if (unlikely(var6 == NULL)) {
2040 if(catchStack.cursor >= 0){
2041 longjmp(catchStack.envs[catchStack.cursor], 1);
2042 }
2043 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
2044 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1721);
2045 fatal_exit(1);
2046 }
2047 var4 = var6;
2048 RET_LABEL5:(void)0;
2049 }
2050 }
2051 var = var4;
2052 goto RET_LABEL;
2053 RET_LABEL:;
2054 return var;
2055 }
2056 /* method typing$ACallReassignExpr$compute_raw_arguments for (self: ACallReassignExpr): Array[AExpr] */
2057 val* nitc__typing___ACallReassignExpr___ASendExpr__compute_raw_arguments(val* self) {
2058 val* var /* : Array[AExpr] */;
2059 val* var1 /* : AExprs */;
2060 val* var3 /* : AExprs */;
2061 val* var4 /* : Array[AExpr] */;
2062 {
2063 { /* Inline parser_nodes$ACallFormExpr$n_args (self) on <self:ACallReassignExpr> */
2064 var3 = self->attrs[COLOR_nitc__parser_nodes__ACallFormExpr___n_args].val; /* _n_args on <self:ACallReassignExpr> */
2065 if (unlikely(var3 == NULL)) {
2066 if(catchStack.cursor >= 0){
2067 longjmp(catchStack.envs[catchStack.cursor], 1);
2068 }
2069 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2070 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2380);
2071 fatal_exit(1);
2072 }
2073 var1 = var3;
2074 RET_LABEL2:(void)0;
2075 }
2076 }
2077 {
2078 var4 = nitc__typing___AExprs___to_a(var1);
2079 }
2080 var = var4;
2081 goto RET_LABEL;
2082 RET_LABEL:;
2083 return var;
2084 }
2085 /* method typing$ABraReassignExpr$property_name for (self: ABraReassignExpr): String */
2086 val* nitc__typing___ABraReassignExpr___ASendExpr__property_name(val* self) {
2087 val* var /* : String */;
2088 static val* varonce;
2089 val* var1 /* : String */;
2090 char* var2 /* : CString */;
2091 val* var3 /* : String */;
2092 val* var4 /* : nullable Int */;
2093 val* var5 /* : nullable Int */;
2094 val* var6 /* : nullable Bool */;
2095 val* var7 /* : nullable Bool */;
2096 if (likely(varonce!=NULL)) {
2097 var1 = varonce;
2098 } else {
2099 var2 = "[]";
2100 var4 = (val*)(2l<<2|1);
2101 var5 = (val*)(2l<<2|1);
2102 var6 = (val*)((long)(0)<<2|3);
2103 var7 = (val*)((long)(0)<<2|3);
2104 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
2105 var1 = var3;
2106 varonce = var1;
2107 }
2108 var = var1;
2109 goto RET_LABEL;
2110 RET_LABEL:;
2111 return var;
2112 }
2113 /* method typing$ABraReassignExpr$compute_raw_arguments for (self: ABraReassignExpr): Array[AExpr] */
2114 val* nitc__typing___ABraReassignExpr___ASendExpr__compute_raw_arguments(val* self) {
2115 val* var /* : Array[AExpr] */;
2116 val* var1 /* : AExprs */;
2117 val* var3 /* : AExprs */;
2118 val* var4 /* : Array[AExpr] */;
2119 {
2120 { /* Inline parser_nodes$ABraFormExpr$n_args (self) on <self:ABraReassignExpr> */
2121 var3 = self->attrs[COLOR_nitc__parser_nodes__ABraFormExpr___n_args].val; /* _n_args on <self:ABraReassignExpr> */
2122 if (unlikely(var3 == NULL)) {
2123 if(catchStack.cursor >= 0){
2124 longjmp(catchStack.envs[catchStack.cursor], 1);
2125 }
2126 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2127 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2449);
2128 fatal_exit(1);
2129 }
2130 var1 = var3;
2131 RET_LABEL2:(void)0;
2132 }
2133 }
2134 {
2135 var4 = nitc__typing___AExprs___to_a(var1);
2136 }
2137 var = var4;
2138 goto RET_LABEL;
2139 RET_LABEL:;
2140 return var;
2141 }
2142 /* method typing$AInitExpr$property_name for (self: AInitExpr): String */
2143 val* nitc__typing___AInitExpr___ASendExpr__property_name(val* self) {
2144 val* var /* : String */;
2145 static val* varonce;
2146 val* var1 /* : String */;
2147 char* var2 /* : CString */;
2148 val* var3 /* : String */;
2149 val* var4 /* : nullable Int */;
2150 val* var5 /* : nullable Int */;
2151 val* var6 /* : nullable Bool */;
2152 val* var7 /* : nullable Bool */;
2153 if (likely(varonce!=NULL)) {
2154 var1 = varonce;
2155 } else {
2156 var2 = "init";
2157 var4 = (val*)(4l<<2|1);
2158 var5 = (val*)(4l<<2|1);
2159 var6 = (val*)((long)(0)<<2|3);
2160 var7 = (val*)((long)(0)<<2|3);
2161 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
2162 var1 = var3;
2163 varonce = var1;
2164 }
2165 var = var1;
2166 goto RET_LABEL;
2167 RET_LABEL:;
2168 return var;
2169 }
2170 /* method typing$AInitExpr$property_node for (self: AInitExpr): ANode */
2171 val* nitc__typing___AInitExpr___ASendExpr__property_node(val* self) {
2172 val* var /* : ANode */;
2173 val* var1 /* : TKwinit */;
2174 val* var3 /* : TKwinit */;
2175 {
2176 { /* Inline parser_nodes$AInitExpr$n_kwinit (self) on <self:AInitExpr> */
2177 var3 = self->attrs[COLOR_nitc__parser_nodes__AInitExpr___n_kwinit].val; /* _n_kwinit on <self:AInitExpr> */
2178 if (unlikely(var3 == NULL)) {
2179 if(catchStack.cursor >= 0){
2180 longjmp(catchStack.envs[catchStack.cursor], 1);
2181 }
2182 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwinit");
2183 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2438);
2184 fatal_exit(1);
2185 }
2186 var1 = var3;
2187 RET_LABEL2:(void)0;
2188 }
2189 }
2190 var = var1;
2191 goto RET_LABEL;
2192 RET_LABEL:;
2193 return var;
2194 }
2195 /* method typing$AInitExpr$compute_raw_arguments for (self: AInitExpr): Array[AExpr] */
2196 val* nitc__typing___AInitExpr___ASendExpr__compute_raw_arguments(val* self) {
2197 val* var /* : Array[AExpr] */;
2198 val* var1 /* : AExprs */;
2199 val* var3 /* : AExprs */;
2200 val* var4 /* : Array[AExpr] */;
2201 {
2202 { /* Inline parser_nodes$AInitExpr$n_args (self) on <self:AInitExpr> */
2203 var3 = self->attrs[COLOR_nitc__parser_nodes__AInitExpr___n_args].val; /* _n_args on <self:AInitExpr> */
2204 if (unlikely(var3 == NULL)) {
2205 if(catchStack.cursor >= 0){
2206 longjmp(catchStack.envs[catchStack.cursor], 1);
2207 }
2208 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2209 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2441);
2210 fatal_exit(1);
2211 }
2212 var1 = var3;
2213 RET_LABEL2:(void)0;
2214 }
2215 }
2216 {
2217 var4 = nitc__typing___AExprs___to_a(var1);
2218 }
2219 var = var4;
2220 goto RET_LABEL;
2221 RET_LABEL:;
2222 return var;
2223 }
2224 /* method typing$AExprs$to_a for (self: AExprs): Array[AExpr] */
2225 val* nitc__typing___AExprs___to_a(val* self) {
2226 val* var /* : Array[AExpr] */;
2227 val* var1 /* : ANodes[AExpr] */;
2228 val* var3 /* : ANodes[AExpr] */;
2229 val* var4 /* : Array[nullable Object] */;
2230 {
2231 { /* Inline parser_nodes$AExprs$n_exprs (self) on <self:AExprs> */
2232 var3 = self->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <self:AExprs> */
2233 if (unlikely(var3 == NULL)) {
2234 if(catchStack.cursor >= 0){
2235 longjmp(catchStack.envs[catchStack.cursor], 1);
2236 }
2237 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
2238 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
2239 fatal_exit(1);
2240 }
2241 var1 = var3;
2242 RET_LABEL2:(void)0;
2243 }
2244 }
2245 {
2246 var4 = core__array___Collection___to_a(var1);
2247 }
2248 var = var4;
2249 goto RET_LABEL;
2250 RET_LABEL:;
2251 return var;
2252 }
2253 /* method typing$ASuperExpr$callsite for (self: ASuperExpr): nullable CallSite */
2254 val* nitc__typing___ASuperExpr___callsite(val* self) {
2255 val* var /* : nullable CallSite */;
2256 val* var1 /* : nullable CallSite */;
2257 var1 = self->attrs[COLOR_nitc__typing__ASuperExpr___callsite].val; /* _callsite on <self:ASuperExpr> */
2258 var = var1;
2259 RET_LABEL:;
2260 return var;
2261 }
2262 /* method typing$ASuperExpr$callsite= for (self: ASuperExpr, nullable CallSite) */
2263 void nitc__typing___ASuperExpr___callsite_61d(val* self, val* p0) {
2264 self->attrs[COLOR_nitc__typing__ASuperExpr___callsite].val = p0; /* _callsite on <self:ASuperExpr> */
2265 RET_LABEL:;
2266 }
2267 /* method typing$ASuperExpr$mpropdef for (self: ASuperExpr): nullable MMethodDef */
2268 val* nitc__typing___ASuperExpr___mpropdef(val* self) {
2269 val* var /* : nullable MMethodDef */;
2270 val* var1 /* : nullable MMethodDef */;
2271 var1 = self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val; /* _mpropdef on <self:ASuperExpr> */
2272 var = var1;
2273 RET_LABEL:;
2274 return var;
2275 }
2276 /* method typing$ASuperExpr$mpropdef= for (self: ASuperExpr, nullable MMethodDef) */
2277 void nitc__typing___ASuperExpr___mpropdef_61d(val* self, val* p0) {
2278 self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val = p0; /* _mpropdef on <self:ASuperExpr> */
2279 RET_LABEL:;
2280 }
2281 /* method typing$ASuperExpr$accept_typing for (self: ASuperExpr, TypeVisitor) */
2282 void nitc__typing___ASuperExpr___AExpr__accept_typing(val* self, val* p0) {
2283 val* var_v /* var v: TypeVisitor */;
2284 val* var /* : nullable MClassType */;
2285 val* var2 /* : nullable MClassType */;
2286 val* var_anchor /* var anchor: nullable MClassType */;
2287 short int var3 /* : Bool */;
2288 short int var4 /* : Bool */;
2289 val* var_other /* var other: nullable Object */;
2290 short int var6 /* : Bool */;
2291 short int var7 /* : Bool */;
2292 val* var8 /* : Variable */;
2293 val* var10 /* : Variable */;
2294 val* var11 /* : nullable MType */;
2295 val* var_recvtype /* var recvtype: nullable MType */;
2296 short int var12 /* : Bool */;
2297 short int var13 /* : Bool */;
2298 short int var15 /* : Bool */;
2299 short int var16 /* : Bool */;
2300 val* var17 /* : nullable MPropDef */;
2301 val* var19 /* : nullable MPropDef */;
2302 val* var20 /* : MProperty */;
2303 val* var22 /* : MProperty */;
2304 val* var_mproperty /* var mproperty: MProperty */;
2305 short int var23 /* : Bool */;
2306 int cltype;
2307 int idtype;
2308 short int var24 /* : Bool */;
2309 static val* varonce;
2310 val* var25 /* : String */;
2311 char* var26 /* : CString */;
2312 val* var27 /* : String */;
2313 val* var28 /* : nullable Int */;
2314 val* var29 /* : nullable Int */;
2315 val* var30 /* : nullable Bool */;
2316 val* var31 /* : nullable Bool */;
2317 val* var32 /* : MModule */;
2318 val* var34 /* : MModule */;
2319 val* var35 /* : Array[MPropDef] */;
2320 val* var_superprops /* var superprops: Array[MMethodDef] */;
2321 long var36 /* : Int */;
2322 long var38 /* : Int */;
2323 short int var39 /* : Bool */;
2324 short int var41 /* : Bool */;
2325 short int var42 /* : Bool */;
2326 short int var43 /* : Bool */;
2327 short int var45 /* : Bool */;
2328 short int var_ /* var : Bool */;
2329 val* var46 /* : nullable MPropDef */;
2330 val* var48 /* : nullable MPropDef */;
2331 short int var49 /* : Bool */;
2332 val* var51 /* : NativeArray[String] */;
2333 static val* varonce50;
2334 static val* varonce52;
2335 val* var53 /* : String */;
2336 char* var54 /* : CString */;
2337 val* var55 /* : String */;
2338 val* var56 /* : nullable Int */;
2339 val* var57 /* : nullable Int */;
2340 val* var58 /* : nullable Bool */;
2341 val* var59 /* : nullable Bool */;
2342 static val* varonce60;
2343 val* var61 /* : String */;
2344 char* var62 /* : CString */;
2345 val* var63 /* : String */;
2346 val* var64 /* : nullable Int */;
2347 val* var65 /* : nullable Int */;
2348 val* var66 /* : nullable Bool */;
2349 val* var67 /* : nullable Bool */;
2350 val* var68 /* : String */;
2351 val* var69 /* : String */;
2352 val* var70 /* : nullable Object */;
2353 val* var_superprop /* var superprop: MMethodDef */;
2354 val* var71 /* : nullable MSignature */;
2355 val* var73 /* : nullable MSignature */;
2356 val* var_msignature /* var msignature: MSignature */;
2357 val* var74 /* : MType */;
2358 short int var75 /* : Bool */;
2359 int cltype76;
2360 int idtype77;
2361 const char* var_class_name;
2362 val* var78 /* : AExprs */;
2363 val* var80 /* : AExprs */;
2364 val* var81 /* : Array[AExpr] */;
2365 val* var_args /* var args: Array[AExpr] */;
2366 long var82 /* : Int */;
2367 long var84 /* : Int */;
2368 short int var85 /* : Bool */;
2369 short int var87 /* : Bool */;
2370 int cltype88;
2371 int idtype89;
2372 const char* var_class_name90;
2373 short int var91 /* : Bool */;
2374 val* var92 /* : nullable SignatureMap */;
2375 val* var94 /* : nullable MType */;
2376 val* var96 /* : nullable MType */;
2377 val* var99 /* : nullable MPropDef */;
2378 val* var101 /* : nullable MPropDef */;
2379 val* var103 /* : nullable MPropDef */;
2380 val* var105 /* : nullable MPropDef */;
2381 short int var106 /* : Bool */;
2382 int cltype107;
2383 int idtype108;
2384 const char* var_class_name109;
2385 var_v = p0;
2386 {
2387 { /* Inline typing$TypeVisitor$anchor (var_v) on <var_v:TypeVisitor> */
2388 var2 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on <var_v:TypeVisitor> */
2389 var = var2;
2390 RET_LABEL1:(void)0;
2391 }
2392 }
2393 var_anchor = var;
2394 if (var_anchor == NULL) {
2395 var3 = 0; /* is null */
2396 } else {
2397 var3 = 1; /* arg is null and recv is not */
2398 }
2399 if (0) {
2400 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
2401 var_other = ((val*)NULL);
2402 {
2403 var6 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
2404 }
2405 var7 = !var6;
2406 var4 = var7;
2407 goto RET_LABEL5;
2408 RET_LABEL5:(void)0;
2409 }
2410 var3 = var4;
2411 }
2412 if (unlikely(!var3)) {
2413 if(catchStack.cursor >= 0){
2414 longjmp(catchStack.envs[catchStack.cursor], 1);
2415 }
2416 PRINT_ERROR("Runtime error: %s", "Assert failed");
2417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2033);
2418 fatal_exit(1);
2419 }
2420 {
2421 { /* Inline typing$TypeVisitor$selfvariable (var_v) on <var_v:TypeVisitor> */
2422 var10 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on <var_v:TypeVisitor> */
2423 if (unlikely(var10 == NULL)) {
2424 if(catchStack.cursor >= 0){
2425 longjmp(catchStack.envs[catchStack.cursor], 1);
2426 }
2427 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
2428 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51);
2429 fatal_exit(1);
2430 }
2431 var8 = var10;
2432 RET_LABEL9:(void)0;
2433 }
2434 }
2435 {
2436 var11 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var8);
2437 }
2438 var_recvtype = var11;
2439 if (var_recvtype == NULL) {
2440 var12 = 0; /* is null */
2441 } else {
2442 var12 = 1; /* arg is null and recv is not */
2443 }
2444 if (0) {
2445 { /* Inline kernel$Object$!= (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
2446 var_other = ((val*)NULL);
2447 {
2448 var15 = ((short int(*)(val* self, val* p0))(var_recvtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_recvtype, var_other); /* == on <var_recvtype:nullable MType(MType)>*/
2449 }
2450 var16 = !var15;
2451 var13 = var16;
2452 goto RET_LABEL14;
2453 RET_LABEL14:(void)0;
2454 }
2455 var12 = var13;
2456 }
2457 if (unlikely(!var12)) {
2458 if(catchStack.cursor >= 0){
2459 longjmp(catchStack.envs[catchStack.cursor], 1);
2460 }
2461 PRINT_ERROR("Runtime error: %s", "Assert failed");
2462 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2035);
2463 fatal_exit(1);
2464 }
2465 {
2466 { /* Inline typing$TypeVisitor$mpropdef (var_v) on <var_v:TypeVisitor> */
2467 var19 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on <var_v:TypeVisitor> */
2468 var17 = var19;
2469 RET_LABEL18:(void)0;
2470 }
2471 }
2472 if (var17 == NULL) {
2473 if(catchStack.cursor >= 0){
2474 longjmp(catchStack.envs[catchStack.cursor], 1);
2475 }
2476 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2477 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2036);
2478 fatal_exit(1);
2479 } else {
2480 { /* Inline model$MPropDef$mproperty (var17) on <var17:nullable MPropDef> */
2481 if (unlikely(var17 == NULL)) {
2482 if(catchStack.cursor >= 0){
2483 longjmp(catchStack.envs[catchStack.cursor], 1);
2484 }
2485 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2486 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
2487 fatal_exit(1);
2488 }
2489 var22 = var17->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var17:nullable MPropDef> */
2490 if (unlikely(var22 == NULL)) {
2491 if(catchStack.cursor >= 0){
2492 longjmp(catchStack.envs[catchStack.cursor], 1);
2493 }
2494 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
2495 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
2496 fatal_exit(1);
2497 }
2498 var20 = var22;
2499 RET_LABEL21:(void)0;
2500 }
2501 }
2502 var_mproperty = var20;
2503 /* <var_mproperty:MProperty> isa MMethod */
2504 cltype = type_nitc__MMethod.color;
2505 idtype = type_nitc__MMethod.id;
2506 if(cltype >= var_mproperty->type->table_size) {
2507 var23 = 0;
2508 } else {
2509 var23 = var_mproperty->type->type_table[cltype] == idtype;
2510 }
2511 var24 = !var23;
2512 if (var24){
2513 if (likely(varonce!=NULL)) {
2514 var25 = varonce;
2515 } else {
2516 var26 = "Error: `super` only usable in a `method`.";
2517 var28 = (val*)(41l<<2|1);
2518 var29 = (val*)(41l<<2|1);
2519 var30 = (val*)((long)(0)<<2|3);
2520 var31 = (val*)((long)(0)<<2|3);
2521 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
2522 var25 = var27;
2523 varonce = var25;
2524 }
2525 {
2526 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var25); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
2527 }
2528 goto RET_LABEL;
2529 } else {
2530 }
2531 {
2532 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
2533 var34 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
2534 if (unlikely(var34 == NULL)) {
2535 if(catchStack.cursor >= 0){
2536 longjmp(catchStack.envs[catchStack.cursor], 1);
2537 }
2538 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2539 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
2540 fatal_exit(1);
2541 }
2542 var32 = var34;
2543 RET_LABEL33:(void)0;
2544 }
2545 }
2546 {
2547 var35 = nitc___nitc__MProperty___lookup_super_definitions(var_mproperty, var32, var_anchor);
2548 }
2549 var_superprops = var35;
2550 {
2551 { /* Inline array$AbstractArrayRead$length (var_superprops) on <var_superprops:Array[MMethodDef]> */
2552 var38 = var_superprops->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_superprops:Array[MMethodDef]> */
2553 var36 = var38;
2554 RET_LABEL37:(void)0;
2555 }
2556 }
2557 {
2558 { /* Inline kernel$Int$== (var36,0l) on <var36:Int> */
2559 var41 = var36 == 0l;
2560 var39 = var41;
2561 goto RET_LABEL40;
2562 RET_LABEL40:(void)0;
2563 }
2564 }
2565 if (var39){
2566 {
2567 { /* Inline model$MMethod$is_init (var_mproperty) on <var_mproperty:MProperty(MMethod)> */
2568 var45 = var_mproperty->attrs[COLOR_nitc__model__MMethod___is_init].s; /* _is_init on <var_mproperty:MProperty(MMethod)> */
2569 var43 = var45;
2570 RET_LABEL44:(void)0;
2571 }
2572 }
2573 var_ = var43;
2574 if (var43){
2575 {
2576 { /* Inline typing$TypeVisitor$mpropdef (var_v) on <var_v:TypeVisitor> */
2577 var48 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on <var_v:TypeVisitor> */
2578 var46 = var48;
2579 RET_LABEL47:(void)0;
2580 }
2581 }
2582 if (var46 == NULL) {
2583 if(catchStack.cursor >= 0){
2584 longjmp(catchStack.envs[catchStack.cursor], 1);
2585 }
2586 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2587 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2043);
2588 fatal_exit(1);
2589 } else {
2590 var49 = nitc___nitc__MPropDef___is_intro(var46);
2591 }
2592 var42 = var49;
2593 } else {
2594 var42 = var_;
2595 }
2596 if (var42){
2597 {
2598 nitc__typing___ASuperExpr___process_superinit(self, var_v); /* Direct call typing$ASuperExpr$process_superinit on <self:ASuperExpr>*/
2599 }
2600 goto RET_LABEL;
2601 } else {
2602 }
2603 if (unlikely(varonce50==NULL)) {
2604 var51 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
2605 if (likely(varonce52!=NULL)) {
2606 var53 = varonce52;
2607 } else {
2608 var54 = "Error: no super method to call for `";
2609 var56 = (val*)(36l<<2|1);
2610 var57 = (val*)(36l<<2|1);
2611 var58 = (val*)((long)(0)<<2|3);
2612 var59 = (val*)((long)(0)<<2|3);
2613 var55 = core__flat___CString___to_s_unsafe(var54, var56, var57, var58, var59);
2614 var53 = var55;
2615 varonce52 = var53;
2616 }
2617 ((struct instance_core__NativeArray*)var51)->values[0]=var53;
2618 if (likely(varonce60!=NULL)) {
2619 var61 = varonce60;
2620 } else {
2621 var62 = "`.";
2622 var64 = (val*)(2l<<2|1);
2623 var65 = (val*)(2l<<2|1);
2624 var66 = (val*)((long)(0)<<2|3);
2625 var67 = (val*)((long)(0)<<2|3);
2626 var63 = core__flat___CString___to_s_unsafe(var62, var64, var65, var66, var67);
2627 var61 = var63;
2628 varonce60 = var61;
2629 }
2630 ((struct instance_core__NativeArray*)var51)->values[2]=var61;
2631 } else {
2632 var51 = varonce50;
2633 varonce50 = NULL;
2634 }
2635 {
2636 var68 = ((val*(*)(val* self))(var_mproperty->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mproperty); /* to_s on <var_mproperty:MProperty(MMethod)>*/
2637 }
2638 ((struct instance_core__NativeArray*)var51)->values[1]=var68;
2639 {
2640 var69 = ((val*(*)(val* self))(var51->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var51); /* native_to_s on <var51:NativeArray[String]>*/
2641 }
2642 varonce50 = var51;
2643 {
2644 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var69); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
2645 }
2646 goto RET_LABEL;
2647 } else {
2648 }
2649 {
2650 var70 = core___core__SequenceRead___Collection__first(var_superprops);
2651 }
2652 var_superprop = var70;
2653 {
2654 { /* Inline model$MMethodDef$msignature (var_superprop) on <var_superprop:MMethodDef> */
2655 var73 = var_superprop->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_superprop:MMethodDef> */
2656 var71 = var73;
2657 RET_LABEL72:(void)0;
2658 }
2659 }
2660 if (unlikely(var71 == NULL)) {
2661 if(catchStack.cursor >= 0){
2662 longjmp(catchStack.envs[catchStack.cursor], 1);
2663 }
2664 PRINT_ERROR("Runtime error: %s", "Cast failed");
2665 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2053);
2666 fatal_exit(1);
2667 }
2668 var_msignature = var71;
2669 {
2670 var74 = nitc__typing___nitc__typing__TypeVisitor___resolve_for(var_v, var_msignature, var_recvtype, 1);
2671 }
2672 /* <var74:MType> isa MSignature */
2673 cltype76 = type_nitc__MSignature.color;
2674 idtype77 = type_nitc__MSignature.id;
2675 if(cltype76 >= var74->type->table_size) {
2676 var75 = 0;
2677 } else {
2678 var75 = var74->type->type_table[cltype76] == idtype77;
2679 }
2680 if (unlikely(!var75)) {
2681 var_class_name = var74 == NULL ? "null" : var74->type->name;
2682 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name);
2683 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2054);
2684 fatal_exit(1);
2685 }
2686 var_msignature = var74;
2687 {
2688 { /* Inline parser_nodes$ASuperExpr$n_args (self) on <self:ASuperExpr> */
2689 var80 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
2690 if (unlikely(var80 == NULL)) {
2691 if(catchStack.cursor >= 0){
2692 longjmp(catchStack.envs[catchStack.cursor], 1);
2693 }
2694 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
2695 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2429);
2696 fatal_exit(1);
2697 }
2698 var78 = var80;
2699 RET_LABEL79:(void)0;
2700 }
2701 }
2702 {
2703 var81 = nitc__typing___AExprs___to_a(var78);
2704 }
2705 var_args = var81;
2706 {
2707 { /* Inline array$AbstractArrayRead$length (var_args) on <var_args:Array[AExpr]> */
2708 var84 = var_args->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_args:Array[AExpr]> */
2709 var82 = var84;
2710 RET_LABEL83:(void)0;
2711 }
2712 }
2713 {
2714 { /* Inline kernel$Int$> (var82,0l) on <var82:Int> */
2715 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
2716 /* <0l:Int> isa OTHER */
2717 var87 = 1; /* easy <0l:Int> isa OTHER*/
2718 if (unlikely(!var87)) {
2719 var_class_name90 = type_core__Int.name;
2720 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name90);
2721 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
2722 fatal_exit(1);
2723 }
2724 var91 = var82 > 0l;
2725 var85 = var91;
2726 goto RET_LABEL86;
2727 RET_LABEL86:(void)0;
2728 }
2729 }
2730 if (var85){
2731 {
2732 var92 = nitc__typing___nitc__typing__TypeVisitor___check_signature(var_v, self, var_args, var_mproperty, var_msignature);
2733 }
2734 {
2735 { /* Inline typing$ASuperExpr$signaturemap= (self,var92) on <self:ASuperExpr> */
2736 self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val = var92; /* _signaturemap on <self:ASuperExpr> */
2737 RET_LABEL93:(void)0;
2738 }
2739 }
2740 } else {
2741 }
2742 {
2743 { /* Inline model$MSignature$return_mtype (var_msignature) on <var_msignature:MSignature> */
2744 var96 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_msignature:MSignature> */
2745 var94 = var96;
2746 RET_LABEL95:(void)0;
2747 }
2748 }
2749 {
2750 { /* Inline typing$AExpr$mtype= (self,var94) on <self:ASuperExpr> */
2751 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var94; /* _mtype on <self:ASuperExpr> */
2752 RET_LABEL97:(void)0;
2753 }
2754 }
2755 {
2756 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ASuperExpr> */
2757 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ASuperExpr> */
2758 RET_LABEL98:(void)0;
2759 }
2760 }
2761 {
2762 { /* Inline typing$TypeVisitor$mpropdef (var_v) on <var_v:TypeVisitor> */
2763 var101 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on <var_v:TypeVisitor> */
2764 var99 = var101;
2765 RET_LABEL100:(void)0;
2766 }
2767 }
2768 if (var99 == NULL) {
2769 if(catchStack.cursor >= 0){
2770 longjmp(catchStack.envs[catchStack.cursor], 1);
2771 }
2772 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2773 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2061);
2774 fatal_exit(1);
2775 } else {
2776 { /* Inline modelize_property$MPropDef$has_supercall= (var99,1) on <var99:nullable MPropDef> */
2777 if (unlikely(var99 == NULL)) {
2778 if(catchStack.cursor >= 0){
2779 longjmp(catchStack.envs[catchStack.cursor], 1);
2780 }
2781 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelize_property, 484);
2783 fatal_exit(1);
2784 }
2785 var99->attrs[COLOR_nitc__modelize_property__MPropDef___has_supercall].s = 1; /* _has_supercall on <var99:nullable MPropDef> */
2786 RET_LABEL102:(void)0;
2787 }
2788 }
2789 {
2790 { /* Inline typing$TypeVisitor$mpropdef (var_v) on <var_v:TypeVisitor> */
2791 var105 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on <var_v:TypeVisitor> */
2792 var103 = var105;
2793 RET_LABEL104:(void)0;
2794 }
2795 }
2796 /* <var103:nullable MPropDef> isa MMethodDef */
2797 cltype107 = type_nitc__MMethodDef.color;
2798 idtype108 = type_nitc__MMethodDef.id;
2799 if(var103 == NULL) {
2800 var106 = 0;
2801 } else {
2802 if(cltype107 >= var103->type->table_size) {
2803 var106 = 0;
2804 } else {
2805 var106 = var103->type->type_table[cltype107] == idtype108;
2806 }
2807 }
2808 if (unlikely(!var106)) {
2809 var_class_name109 = var103 == NULL ? "null" : var103->type->name;
2810 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MMethodDef", var_class_name109);
2811 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2062);
2812 fatal_exit(1);
2813 }
2814 {
2815 { /* Inline typing$ASuperExpr$mpropdef= (self,var103) on <self:ASuperExpr> */
2816 self->attrs[COLOR_nitc__typing__ASuperExpr___mpropdef].val = var103; /* _mpropdef on <self:ASuperExpr> */
2817 RET_LABEL110:(void)0;
2818 }
2819 }
2820 RET_LABEL:;
2821 }
2822 /* method typing$ASuperExpr$signaturemap for (self: ASuperExpr): nullable SignatureMap */
2823 val* nitc__typing___ASuperExpr___signaturemap(val* self) {
2824 val* var /* : nullable SignatureMap */;
2825 val* var1 /* : nullable SignatureMap */;
2826 var1 = self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val; /* _signaturemap on <self:ASuperExpr> */
2827 var = var1;
2828 RET_LABEL:;
2829 return var;
2830 }
2831 /* method typing$ASuperExpr$signaturemap= for (self: ASuperExpr, nullable SignatureMap) */
2832 void nitc__typing___ASuperExpr___signaturemap_61d(val* self, val* p0) {
2833 self->attrs[COLOR_nitc__typing__ASuperExpr___signaturemap].val = p0; /* _signaturemap on <self:ASuperExpr> */
2834 RET_LABEL:;
2835 }
2836 /* method typing$ASuperExpr$process_superinit for (self: ASuperExpr, TypeVisitor) */
2837 void nitc__typing___ASuperExpr___process_superinit(val* self, val* p0) {
2838 val* var_v /* var v: TypeVisitor */;
2839 val* var /* : nullable MClassType */;
2840 val* var2 /* : nullable MClassType */;
2841 val* var_anchor /* var anchor: nullable MClassType */;
2842 short int var3 /* : Bool */;
2843 short int var4 /* : Bool */;
2844 val* var_other /* var other: nullable Object */;
2845 short int var6 /* : Bool */;
2846 short int var7 /* : Bool */;
2847 val* var8 /* : Variable */;
2848 val* var10 /* : Variable */;
2849 val* var11 /* : nullable MType */;
2850 val* var_recvtype /* var recvtype: nullable MType */;
2851 short int var12 /* : Bool */;
2852 short int var13 /* : Bool */;
2853 short int var15 /* : Bool */;
2854 short int var16 /* : Bool */;
2855 val* var17 /* : nullable MPropDef */;
2856 val* var19 /* : nullable MPropDef */;
2857 val* var_mpropdef /* var mpropdef: nullable MPropDef */;
2858 short int var20 /* : Bool */;
2859 int cltype;
2860 int idtype;
2861 val* var21 /* : MProperty */;
2862 val* var23 /* : MProperty */;
2863 val* var_mproperty /* var mproperty: MMethod */;
2864 val* var_superprop /* var superprop: nullable MMethodDef */;
2865 val* var24 /* : MClassDef */;
2866 val* var26 /* : MClassDef */;
2867 val* var27 /* : Array[MClassType] */;
2868 val* var29 /* : Array[MClassType] */;
2869 val* var_ /* var : Array[MClassType] */;
2870 val* var30 /* : IndexedIterator[nullable Object] */;
2871 val* var_31 /* var : IndexedIterator[MClassType] */;
2872 short int var32 /* : Bool */;
2873 val* var33 /* : nullable Object */;
2874 val* var_msupertype /* var msupertype: MClassType */;
2875 val* var34 /* : MModule */;
2876 val* var36 /* : MModule */;
2877 val* var37 /* : MClassType */;
2878 val* var38 /* : ModelBuilder */;
2879 val* var40 /* : ModelBuilder */;
2880 val* var41 /* : ToolContext */;
2881 val* var43 /* : ToolContext */;
2882 long var44 /* : Int */;
2883 long var46 /* : Int */;
2884 long var_errcount /* var errcount: Int */;
2885 val* var47 /* : String */;
2886 val* var49 /* : String */;
2887 val* var50 /* : nullable MProperty */;
2888 short int var51 /* : Bool */;
2889 int cltype52;
2890 int idtype53;
2891 const char* var_class_name;
2892 val* var_candidate /* var candidate: nullable MMethod */;
2893 short int var54 /* : Bool */;
2894 short int var55 /* : Bool */;
2895 val* var_other57 /* var other: nullable Object */;
2896 short int var58 /* : Bool */;
2897 short int var60 /* : Bool */;
2898 val* var61 /* : ModelBuilder */;
2899 val* var63 /* : ModelBuilder */;
2900 val* var64 /* : ToolContext */;
2901 val* var66 /* : ToolContext */;
2902 long var67 /* : Int */;
2903 long var69 /* : Int */;
2904 short int var70 /* : Bool */;
2905 short int var72 /* : Bool */;
2906 int cltype73;
2907 int idtype74;
2908 const char* var_class_name75;
2909 short int var76 /* : Bool */;
2910 short int var78 /* : Bool */;
2911 short int var79 /* : Bool */;
2912 short int var80 /* : Bool */;
2913 short int var82 /* : Bool */;
2914 short int var83 /* : Bool */;
2915 short int var_84 /* var : Bool */;
2916 short int var85 /* : Bool */;
2917 short int var87 /* : Bool */;
2918 short int var88 /* : Bool */;
2919 short int var89 /* : Bool */;
2920 short int var90 /* : Bool */;
2921 short int var91 /* : Bool */;
2922 short int var93 /* : Bool */;
2923 short int var94 /* : Bool */;
2924 short int var_95 /* var : Bool */;
2925 val* var96 /* : MProperty */;
2926 val* var98 /* : MProperty */;
2927 short int var99 /* : Bool */;
2928 short int var101 /* : Bool */;
2929 short int var102 /* : Bool */;
2930 short int var_103 /* var : Bool */;
2931 val* var104 /* : MProperty */;
2932 val* var106 /* : MProperty */;
2933 short int var107 /* : Bool */;
2934 short int var109 /* : Bool */;
2935 short int var110 /* : Bool */;
2936 val* var111 /* : NativeArray[String] */;
2937 static val* varonce;
2938 static val* varonce112;
2939 val* var113 /* : String */;
2940 char* var114 /* : CString */;
2941 val* var115 /* : String */;
2942 val* var116 /* : nullable Int */;
2943 val* var117 /* : nullable Int */;
2944 val* var118 /* : nullable Bool */;
2945 val* var119 /* : nullable Bool */;
2946 static val* varonce120;
2947 val* var121 /* : String */;
2948 char* var122 /* : CString */;
2949 val* var123 /* : String */;
2950 val* var124 /* : nullable Int */;
2951 val* var125 /* : nullable Int */;
2952 val* var126 /* : nullable Bool */;
2953 val* var127 /* : nullable Bool */;
2954 static val* varonce128;
2955 val* var129 /* : String */;
2956 char* var130 /* : CString */;
2957 val* var131 /* : String */;
2958 val* var132 /* : nullable Int */;
2959 val* var133 /* : nullable Int */;
2960 val* var134 /* : nullable Bool */;
2961 val* var135 /* : nullable Bool */;
2962 static val* varonce136;
2963 val* var137 /* : String */;
2964 char* var138 /* : CString */;
2965 val* var139 /* : String */;
2966 val* var140 /* : nullable Int */;
2967 val* var141 /* : nullable Int */;
2968 val* var142 /* : nullable Bool */;
2969 val* var143 /* : nullable Bool */;
2970 val* var144 /* : String */;
2971 val* var145 /* : String */;
2972 val* var146 /* : MProperty */;
2973 val* var148 /* : MProperty */;
2974 val* var149 /* : String */;
2975 val* var150 /* : String */;
2976 val* var151 /* : MModule */;
2977 val* var153 /* : MModule */;
2978 val* var154 /* : Array[MPropDef] */;
2979 val* var_candidatedefs /* var candidatedefs: Array[MMethodDef] */;
2980 short int var155 /* : Bool */;
2981 short int var156 /* : Bool */;
2982 short int var157 /* : Bool */;
2983 short int var159 /* : Bool */;
2984 short int var160 /* : Bool */;
2985 short int var_161 /* var : Bool */;
2986 val* var162 /* : MProperty */;
2987 val* var164 /* : MProperty */;
2988 short int var165 /* : Bool */;
2989 short int var167 /* : Bool */;
2990 short int var169 /* : Bool */;
2991 val* var170 /* : nullable Object */;
2992 short int var171 /* : Bool */;
2993 short int var173 /* : Bool */;
2994 short int var175 /* : Bool */;
2995 long var176 /* : Int */;
2996 long var178 /* : Int */;
2997 short int var179 /* : Bool */;
2998 short int var181 /* : Bool */;
2999 int cltype182;
3000 int idtype183;
3001 const char* var_class_name184;
3002 short int var185 /* : Bool */;
3003 val* var187 /* : NativeArray[String] */;
3004 static val* varonce186;
3005 static val* varonce188;
3006 val* var189 /* : String */;
3007 char* var190 /* : CString */;
3008 val* var191 /* : String */;
3009 val* var192 /* : nullable Int */;
3010 val* var193 /* : nullable Int */;
3011 val* var194 /* : nullable Bool */;
3012 val* var195 /* : nullable Bool */;
3013 static val* varonce196;
3014 val* var197 /* : String */;
3015 char* var198 /* : CString */;
3016 val* var199 /* : String */;
3017 val* var200 /* : nullable Int */;
3018 val* var201 /* : nullable Int */;
3019 val* var202 /* : nullable Bool */;
3020 val* var203 /* : nullable Bool */;
3021 static val* varonce204;
3022 val* var205 /* : String */;
3023 char* var206 /* : CString */;
3024 val* var207 /* : String */;
3025 val* var208 /* : nullable Int */;
3026 val* var209 /* : nullable Int */;
3027 val* var210 /* : nullable Bool */;
3028 val* var211 /* : nullable Bool */;
3029 val* var212 /* : String */;
3030 val* var213 /* : String */;
3031 static val* varonce214;
3032 val* var215 /* : String */;
3033 char* var216 /* : CString */;
3034 val* var217 /* : String */;
3035 val* var218 /* : nullable Int */;
3036 val* var219 /* : nullable Int */;
3037 val* var220 /* : nullable Bool */;
3038 val* var221 /* : nullable Bool */;
3039 val* var222 /* : String */;
3040 val* var223 /* : String */;
3041 val* var224 /* : nullable Object */;
3042 short int var225 /* : Bool */;
3043 short int var226 /* : Bool */;
3044 short int var228 /* : Bool */;
3045 short int var230 /* : Bool */;
3046 val* var232 /* : NativeArray[String] */;
3047 static val* varonce231;
3048 static val* varonce233;
3049 val* var234 /* : String */;
3050 char* var235 /* : CString */;
3051 val* var236 /* : String */;
3052 val* var237 /* : nullable Int */;
3053 val* var238 /* : nullable Int */;
3054 val* var239 /* : nullable Bool */;
3055 val* var240 /* : nullable Bool */;
3056 static val* varonce241;
3057 val* var242 /* : String */;
3058 char* var243 /* : CString */;
3059 val* var244 /* : String */;
3060 val* var245 /* : nullable Int */;
3061 val* var246 /* : nullable Int */;
3062 val* var247 /* : nullable Bool */;
3063 val* var248 /* : nullable Bool */;
3064 val* var249 /* : String */;
3065 val* var250 /* : String */;
3066 val* var251 /* : MSignature */;
3067 val* var252 /* : nullable MSignature */;
3068 val* var254 /* : nullable MSignature */;
3069 val* var255 /* : nullable MSignature */;
3070 val* var257 /* : nullable MSignature */;
3071 val* var_msignature /* var msignature: MSignature */;
3072 val* var258 /* : MType */;
3073 short int var259 /* : Bool */;
3074 int cltype260;
3075 int idtype261;
3076 const char* var_class_name262;
3077 val* var263 /* : CallSite */;
3078 val* var264 /* : Location */;
3079 val* var265 /* : MModule */;
3080 val* var267 /* : MModule */;
3081 val* var268 /* : nullable MClassType */;
3082 val* var270 /* : nullable MClassType */;
3083 val* var271 /* : MProperty */;
3084 val* var273 /* : MProperty */;
3085 val* var_callsite /* var callsite: CallSite */;
3086 val* var275 /* : AExprs */;
3087 val* var277 /* : AExprs */;
3088 val* var278 /* : Array[AExpr] */;
3089 val* var_args /* var args: Array[AExpr] */;
3090 long var279 /* : Int */;
3091 long var281 /* : Int */;
3092 short int var282 /* : Bool */;
3093 short int var284 /* : Bool */;
3094 int cltype285;
3095 int idtype286;
3096 const char* var_class_name287;
3097 short int var288 /* : Bool */;
3098 short int var289 /* : Bool */;
3099 val* var290 /* : nullable MSignature */;
3100 val* var292 /* : nullable MSignature */;
3101 long var293 /* : Int */;
3102 long var294 /* : Int */;
3103 short int var295 /* : Bool */;
3104 short int var297 /* : Bool */;
3105 int cltype298;
3106 int idtype299;
3107 const char* var_class_name300;
3108 short int var301 /* : Bool */;
3109 val* var303 /* : NativeArray[String] */;
3110 static val* varonce302;
3111 static val* varonce304;
3112 val* var305 /* : String */;
3113 char* var306 /* : CString */;
3114 val* var307 /* : String */;
3115 val* var308 /* : nullable Int */;
3116 val* var309 /* : nullable Int */;
3117 val* var310 /* : nullable Bool */;
3118 val* var311 /* : nullable Bool */;
3119 static val* varonce312;
3120 val* var313 /* : String */;
3121 char* var314 /* : CString */;
3122 val* var315 /* : String */;
3123 val* var316 /* : nullable Int */;
3124 val* var317 /* : nullable Int */;
3125 val* var318 /* : nullable Bool */;
3126 val* var319 /* : nullable Bool */;
3127 static val* varonce320;
3128 val* var321 /* : String */;
3129 char* var322 /* : CString */;
3130 val* var323 /* : String */;
3131 val* var324 /* : nullable Int */;
3132 val* var325 /* : nullable Int */;
3133 val* var326 /* : nullable Bool */;
3134 val* var327 /* : nullable Bool */;
3135 static val* varonce328;
3136 val* var329 /* : String */;
3137 char* var330 /* : CString */;
3138 val* var331 /* : String */;
3139 val* var332 /* : nullable Int */;
3140 val* var333 /* : nullable Int */;
3141 val* var334 /* : nullable Bool */;
3142 val* var335 /* : nullable Bool */;
3143 val* var336 /* : nullable MSignature */;
3144 val* var338 /* : nullable MSignature */;
3145 long var339 /* : Int */;
3146 val* var340 /* : String */;
3147 long var341 /* : Int */;
3148 val* var342 /* : String */;
3149 val* var343 /* : String */;
3150 val* var344 /* : String */;
3151 long var_i /* var i: Int */;
3152 val* var345 /* : Array[MParameter] */;
3153 val* var347 /* : Array[MParameter] */;
3154 val* var_348 /* var : Array[MParameter] */;
3155 val* var349 /* : IndexedIterator[nullable Object] */;
3156 val* var_350 /* var : IndexedIterator[MParameter] */;
3157 short int var351 /* : Bool */;
3158 val* var353 /* : nullable Object */;
3159 val* var_sp /* var sp: MParameter */;
3160 val* var354 /* : nullable MSignature */;
3161 val* var356 /* : nullable MSignature */;
3162 val* var357 /* : Array[MParameter] */;
3163 val* var359 /* : Array[MParameter] */;
3164 val* var360 /* : nullable Object */;
3165 val* var_p /* var p: MParameter */;
3166 val* var361 /* : MType */;
3167 val* var363 /* : MType */;
3168 val* var364 /* : MType */;
3169 val* var366 /* : MType */;
3170 short int var367 /* : Bool */;
3171 short int var368 /* : Bool */;
3172 val* var370 /* : NativeArray[String] */;
3173 static val* varonce369;
3174 static val* varonce371;
3175 val* var372 /* : String */;
3176 char* var373 /* : CString */;
3177 val* var374 /* : String */;
3178 val* var375 /* : nullable Int */;
3179 val* var376 /* : nullable Int */;
3180 val* var377 /* : nullable Bool */;
3181 val* var378 /* : nullable Bool */;
3182 static val* varonce379;
3183 val* var380 /* : String */;
3184 char* var381 /* : CString */;
3185 val* var382 /* : String */;
3186 val* var383 /* : nullable Int */;
3187 val* var384 /* : nullable Int */;
3188 val* var385 /* : nullable Bool */;
3189 val* var386 /* : nullable Bool */;
3190 static val* varonce387;
3191 val* var388 /* : String */;
3192 char* var389 /* : CString */;
3193 val* var390 /* : String */;
3194 val* var391 /* : nullable Int */;
3195 val* var392 /* : nullable Int */;
3196 val* var393 /* : nullable Bool */;
3197 val* var394 /* : nullable Bool */;
3198 static val* varonce395;
3199 val* var396 /* : String */;
3200 char* var397 /* : CString */;
3201 val* var398 /* : String */;
3202 val* var399 /* : nullable Int */;
3203 val* var400 /* : nullable Int */;
3204 val* var401 /* : nullable Bool */;
3205 val* var402 /* : nullable Bool */;
3206 static val* varonce403;
3207 val* var404 /* : String */;
3208 char* var405 /* : CString */;
3209 val* var406 /* : String */;
3210 val* var407 /* : nullable Int */;
3211 val* var408 /* : nullable Int */;
3212 val* var409 /* : nullable Bool */;
3213 val* var410 /* : nullable Bool */;
3214 val* var411 /* : String */;
3215 val* var412 /* : MType */;
3216 val* var414 /* : MType */;
3217 val* var415 /* : String */;
3218 val* var416 /* : String */;
3219 val* var418 /* : String */;
3220 val* var419 /* : MType */;
3221 val* var421 /* : MType */;
3222 val* var422 /* : String */;
3223 val* var423 /* : String */;
3224 val* var424 /* : String */;
3225 long var425 /* : Int */;
3226 short int var427 /* : Bool */;
3227 int cltype428;
3228 int idtype429;
3229 const char* var_class_name430;
3230 long var431 /* : Int */;
3231 var_v = p0;
3232 {
3233 { /* Inline typing$TypeVisitor$anchor (var_v) on <var_v:TypeVisitor> */
3234 var2 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on <var_v:TypeVisitor> */
3235 var = var2;
3236 RET_LABEL1:(void)0;
3237 }
3238 }
3239 var_anchor = var;
3240 if (var_anchor == NULL) {
3241 var3 = 0; /* is null */
3242 } else {
3243 var3 = 1; /* arg is null and recv is not */
3244 }
3245 if (0) {
3246 { /* Inline kernel$Object$!= (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
3247 var_other = ((val*)NULL);
3248 {
3249 var6 = ((short int(*)(val* self, val* p0))(var_anchor->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_anchor, var_other); /* == on <var_anchor:nullable MClassType(MClassType)>*/
3250 }
3251 var7 = !var6;
3252 var4 = var7;
3253 goto RET_LABEL5;
3254 RET_LABEL5:(void)0;
3255 }
3256 var3 = var4;
3257 }
3258 if (unlikely(!var3)) {
3259 if(catchStack.cursor >= 0){
3260 longjmp(catchStack.envs[catchStack.cursor], 1);
3261 }
3262 PRINT_ERROR("Runtime error: %s", "Assert failed");
3263 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2072);
3264 fatal_exit(1);
3265 }
3266 {
3267 { /* Inline typing$TypeVisitor$selfvariable (var_v) on <var_v:TypeVisitor> */
3268 var10 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on <var_v:TypeVisitor> */
3269 if (unlikely(var10 == NULL)) {
3270 if(catchStack.cursor >= 0){
3271 longjmp(catchStack.envs[catchStack.cursor], 1);
3272 }
3273 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
3274 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51);
3275 fatal_exit(1);
3276 }
3277 var8 = var10;
3278 RET_LABEL9:(void)0;
3279 }
3280 }
3281 {
3282 var11 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var8);
3283 }
3284 var_recvtype = var11;
3285 if (var_recvtype == NULL) {
3286 var12 = 0; /* is null */
3287 } else {
3288 var12 = 1; /* arg is null and recv is not */
3289 }
3290 if (0) {
3291 { /* Inline kernel$Object$!= (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
3292 var_other = ((val*)NULL);
3293 {
3294 var15 = ((short int(*)(val* self, val* p0))(var_recvtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_recvtype, var_other); /* == on <var_recvtype:nullable MType(MType)>*/
3295 }
3296 var16 = !var15;
3297 var13 = var16;
3298 goto RET_LABEL14;
3299 RET_LABEL14:(void)0;
3300 }
3301 var12 = var13;
3302 }
3303 if (unlikely(!var12)) {
3304 if(catchStack.cursor >= 0){
3305 longjmp(catchStack.envs[catchStack.cursor], 1);
3306 }
3307 PRINT_ERROR("Runtime error: %s", "Assert failed");
3308 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2074);
3309 fatal_exit(1);
3310 }
3311 {
3312 { /* Inline typing$TypeVisitor$mpropdef (var_v) on <var_v:TypeVisitor> */
3313 var19 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on <var_v:TypeVisitor> */
3314 var17 = var19;
3315 RET_LABEL18:(void)0;
3316 }
3317 }
3318 var_mpropdef = var17;
3319 /* <var_mpropdef:nullable MPropDef> isa MMethodDef */
3320 cltype = type_nitc__MMethodDef.color;
3321 idtype = type_nitc__MMethodDef.id;
3322 if(var_mpropdef == NULL) {
3323 var20 = 0;
3324 } else {
3325 if(cltype >= var_mpropdef->type->table_size) {
3326 var20 = 0;
3327 } else {
3328 var20 = var_mpropdef->type->type_table[cltype] == idtype;
3329 }
3330 }
3331 if (unlikely(!var20)) {
3332 if(catchStack.cursor >= 0){
3333 longjmp(catchStack.envs[catchStack.cursor], 1);
3334 }
3335 PRINT_ERROR("Runtime error: %s", "Assert failed");
3336 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2076);
3337 fatal_exit(1);
3338 }
3339 {
3340 { /* Inline model$MPropDef$mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
3341 var23 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_mpropdef:nullable MPropDef(MMethodDef)> */
3342 if (unlikely(var23 == NULL)) {
3343 if(catchStack.cursor >= 0){
3344 longjmp(catchStack.envs[catchStack.cursor], 1);
3345 }
3346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3347 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3348 fatal_exit(1);
3349 }
3350 var21 = var23;
3351 RET_LABEL22:(void)0;
3352 }
3353 }
3354 var_mproperty = var21;
3355 var_superprop = ((val*)NULL);
3356 {
3357 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
3358 var26 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MPropDef(MMethodDef)> */
3359 if (unlikely(var26 == NULL)) {
3360 if(catchStack.cursor >= 0){
3361 longjmp(catchStack.envs[catchStack.cursor], 1);
3362 }
3363 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
3364 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
3365 fatal_exit(1);
3366 }
3367 var24 = var26;
3368 RET_LABEL25:(void)0;
3369 }
3370 }
3371 {
3372 { /* Inline model$MClassDef$supertypes (var24) on <var24:MClassDef> */
3373 var29 = var24->attrs[COLOR_nitc__model__MClassDef___supertypes].val; /* _supertypes on <var24:MClassDef> */
3374 if (unlikely(var29 == NULL)) {
3375 if(catchStack.cursor >= 0){
3376 longjmp(catchStack.envs[catchStack.cursor], 1);
3377 }
3378 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _supertypes");
3379 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 666);
3380 fatal_exit(1);
3381 }
3382 var27 = var29;
3383 RET_LABEL28:(void)0;
3384 }
3385 }
3386 var_ = var27;
3387 {
3388 var30 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_);
3389 }
3390 var_31 = var30;
3391 for(;;) {
3392 {
3393 var32 = ((short int(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_31); /* is_ok on <var_31:IndexedIterator[MClassType]>*/
3394 }
3395 if (var32){
3396 } else {
3397 goto BREAK_label;
3398 }
3399 {
3400 var33 = ((val*(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_31); /* item on <var_31:IndexedIterator[MClassType]>*/
3401 }
3402 var_msupertype = var33;
3403 {
3404 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
3405 var36 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
3406 if (unlikely(var36 == NULL)) {
3407 if(catchStack.cursor >= 0){
3408 longjmp(catchStack.envs[catchStack.cursor], 1);
3409 }
3410 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
3412 fatal_exit(1);
3413 }
3414 var34 = var36;
3415 RET_LABEL35:(void)0;
3416 }
3417 }
3418 {
3419 var37 = nitc___nitc__MClassType___MType__anchor_to(var_msupertype, var34, var_anchor);
3420 }
3421 var_msupertype = var37;
3422 {
3423 { /* Inline typing$TypeVisitor$modelbuilder (var_v) on <var_v:TypeVisitor> */
3424 var40 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on <var_v:TypeVisitor> */
3425 if (unlikely(var40 == NULL)) {
3426 if(catchStack.cursor >= 0){
3427 longjmp(catchStack.envs[catchStack.cursor], 1);
3428 }
3429 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3430 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35);
3431 fatal_exit(1);
3432 }
3433 var38 = var40;
3434 RET_LABEL39:(void)0;
3435 }
3436 }
3437 {
3438 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var38) on <var38:ModelBuilder> */
3439 var43 = var38->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var38:ModelBuilder> */
3440 if (unlikely(var43 == NULL)) {
3441 if(catchStack.cursor >= 0){
3442 longjmp(catchStack.envs[catchStack.cursor], 1);
3443 }
3444 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3445 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
3446 fatal_exit(1);
3447 }
3448 var41 = var43;
3449 RET_LABEL42:(void)0;
3450 }
3451 }
3452 {
3453 { /* Inline toolcontext$ToolContext$error_count (var41) on <var41:ToolContext> */
3454 var46 = var41->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <var41:ToolContext> */
3455 var44 = var46;
3456 RET_LABEL45:(void)0;
3457 }
3458 }
3459 var_errcount = var44;
3460 {
3461 { /* Inline model$MProperty$name (var_mproperty) on <var_mproperty:MMethod> */
3462 var49 = var_mproperty->attrs[COLOR_nitc__model__MProperty___name].val; /* _name on <var_mproperty:MMethod> */
3463 if (unlikely(var49 == NULL)) {
3464 if(catchStack.cursor >= 0){
3465 longjmp(catchStack.envs[catchStack.cursor], 1);
3466 }
3467 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
3468 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2047);
3469 fatal_exit(1);
3470 }
3471 var47 = var49;
3472 RET_LABEL48:(void)0;
3473 }
3474 }
3475 {
3476 var50 = nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(var_v, self, var_msupertype, var47);
3477 }
3478 /* <var50:nullable MProperty> isa nullable MMethod */
3479 cltype52 = type_nullable__nitc__MMethod.color;
3480 idtype53 = type_nullable__nitc__MMethod.id;
3481 if(var50 == NULL) {
3482 var51 = 1;
3483 } else {
3484 if(cltype52 >= var50->type->table_size) {
3485 var51 = 0;
3486 } else {
3487 var51 = var50->type->type_table[cltype52] == idtype53;
3488 }
3489 }
3490 if (unlikely(!var51)) {
3491 var_class_name = var50 == NULL ? "null" : var50->type->name;
3492 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "nullable MMethod", var_class_name);
3493 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2082);
3494 fatal_exit(1);
3495 }
3496 var_candidate = var50;
3497 if (var_candidate == NULL) {
3498 var54 = 1; /* is null */
3499 } else {
3500 var54 = 0; /* arg is null but recv is not */
3501 }
3502 if (0) {
3503 { /* Inline kernel$Object$== (var_candidate,((val*)NULL)) on <var_candidate:nullable MMethod> */
3504 var_other57 = ((val*)NULL);
3505 {
3506 { /* Inline kernel$Object$is_same_instance (var_candidate,var_other57) on <var_candidate:nullable MMethod(MMethod)> */
3507 var60 = var_candidate == var_other57;
3508 var58 = var60;
3509 goto RET_LABEL59;
3510 RET_LABEL59:(void)0;
3511 }
3512 }
3513 var55 = var58;
3514 goto RET_LABEL56;
3515 RET_LABEL56:(void)0;
3516 }
3517 var54 = var55;
3518 }
3519 if (var54){
3520 {
3521 { /* Inline typing$TypeVisitor$modelbuilder (var_v) on <var_v:TypeVisitor> */
3522 var63 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on <var_v:TypeVisitor> */
3523 if (unlikely(var63 == NULL)) {
3524 if(catchStack.cursor >= 0){
3525 longjmp(catchStack.envs[catchStack.cursor], 1);
3526 }
3527 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3528 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35);
3529 fatal_exit(1);
3530 }
3531 var61 = var63;
3532 RET_LABEL62:(void)0;
3533 }
3534 }
3535 {
3536 { /* Inline modelbuilder_base$ModelBuilder$toolcontext (var61) on <var61:ModelBuilder> */
3537 var66 = var61->attrs[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext].val; /* _toolcontext on <var61:ModelBuilder> */
3538 if (unlikely(var66 == NULL)) {
3539 if(catchStack.cursor >= 0){
3540 longjmp(catchStack.envs[catchStack.cursor], 1);
3541 }
3542 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3543 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base, 47);
3544 fatal_exit(1);
3545 }
3546 var64 = var66;
3547 RET_LABEL65:(void)0;
3548 }
3549 }
3550 {
3551 { /* Inline toolcontext$ToolContext$error_count (var64) on <var64:ToolContext> */
3552 var69 = var64->attrs[COLOR_nitc__toolcontext__ToolContext___error_count].l; /* _error_count on <var64:ToolContext> */
3553 var67 = var69;
3554 RET_LABEL68:(void)0;
3555 }
3556 }
3557 {
3558 { /* Inline kernel$Int$> (var67,var_errcount) on <var67:Int> */
3559 /* Covariant cast for argument 0 (i) <var_errcount:Int> isa OTHER */
3560 /* <var_errcount:Int> isa OTHER */
3561 var72 = 1; /* easy <var_errcount:Int> isa OTHER*/
3562 if (unlikely(!var72)) {
3563 var_class_name75 = type_core__Int.name;
3564 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name75);
3565 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
3566 fatal_exit(1);
3567 }
3568 var76 = var67 > var_errcount;
3569 var70 = var76;
3570 goto RET_LABEL71;
3571 RET_LABEL71:(void)0;
3572 }
3573 }
3574 if (var70){
3575 goto RET_LABEL;
3576 } else {
3577 }
3578 goto BREAK_label77;
3579 } else {
3580 }
3581 if (var_superprop == NULL) {
3582 var79 = 0; /* is null */
3583 } else {
3584 var79 = 1; /* arg is null and recv is not */
3585 }
3586 if (0) {
3587 { /* Inline kernel$Object$!= (var_superprop,((val*)NULL)) on <var_superprop:nullable MMethodDef> */
3588 var_other = ((val*)NULL);
3589 {
3590 var82 = ((short int(*)(val* self, val* p0))(var_superprop->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_superprop, var_other); /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/
3591 }
3592 var83 = !var82;
3593 var80 = var83;
3594 goto RET_LABEL81;
3595 RET_LABEL81:(void)0;
3596 }
3597 var79 = var80;
3598 }
3599 var_84 = var79;
3600 if (var79){
3601 {
3602 { /* Inline model$MMethod$is_root_init (var_candidate) on <var_candidate:nullable MMethod(MMethod)> */
3603 var87 = var_candidate->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <var_candidate:nullable MMethod(MMethod)> */
3604 var85 = var87;
3605 RET_LABEL86:(void)0;
3606 }
3607 }
3608 var78 = var85;
3609 } else {
3610 var78 = var_84;
3611 }
3612 if (var78){
3613 goto BREAK_label77;
3614 } else {
3615 }
3616 if (var_superprop == NULL) {
3617 var90 = 0; /* is null */
3618 } else {
3619 var90 = 1; /* arg is null and recv is not */
3620 }
3621 if (0) {
3622 { /* Inline kernel$Object$!= (var_superprop,((val*)NULL)) on <var_superprop:nullable MMethodDef> */
3623 var_other = ((val*)NULL);
3624 {
3625 var93 = ((short int(*)(val* self, val* p0))(var_superprop->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_superprop, var_other); /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/
3626 }
3627 var94 = !var93;
3628 var91 = var94;
3629 goto RET_LABEL92;
3630 RET_LABEL92:(void)0;
3631 }
3632 var90 = var91;
3633 }
3634 var_95 = var90;
3635 if (var90){
3636 {
3637 { /* Inline model$MPropDef$mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
3638 var98 = var_superprop->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
3639 if (unlikely(var98 == NULL)) {
3640 if(catchStack.cursor >= 0){
3641 longjmp(catchStack.envs[catchStack.cursor], 1);
3642 }
3643 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3644 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3645 fatal_exit(1);
3646 }
3647 var96 = var98;
3648 RET_LABEL97:(void)0;
3649 }
3650 }
3651 {
3652 { /* Inline kernel$Object$!= (var96,var_candidate) on <var96:MProperty(MMethod)> */
3653 var_other = var_candidate;
3654 {
3655 var101 = ((short int(*)(val* self, val* p0))(var96->class->vft[COLOR_core__kernel__Object___61d_61d]))(var96, var_other); /* == on <var96:MProperty(MMethod)>*/
3656 }
3657 var102 = !var101;
3658 var99 = var102;
3659 goto RET_LABEL100;
3660 RET_LABEL100:(void)0;
3661 }
3662 }
3663 var89 = var99;
3664 } else {
3665 var89 = var_95;
3666 }
3667 var_103 = var89;
3668 if (var89){
3669 {
3670 { /* Inline model$MPropDef$mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
3671 var106 = var_superprop->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
3672 if (unlikely(var106 == NULL)) {
3673 if(catchStack.cursor >= 0){
3674 longjmp(catchStack.envs[catchStack.cursor], 1);
3675 }
3676 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3677 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3678 fatal_exit(1);
3679 }
3680 var104 = var106;
3681 RET_LABEL105:(void)0;
3682 }
3683 }
3684 {
3685 { /* Inline model$MMethod$is_root_init (var104) on <var104:MProperty(MMethod)> */
3686 var109 = var104->attrs[COLOR_nitc__model__MMethod___is_root_init].s; /* _is_root_init on <var104:MProperty(MMethod)> */
3687 var107 = var109;
3688 RET_LABEL108:(void)0;
3689 }
3690 }
3691 var110 = !var107;
3692 var88 = var110;
3693 } else {
3694 var88 = var_103;
3695 }
3696 if (var88){
3697 if (unlikely(varonce==NULL)) {
3698 var111 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
3699 if (likely(varonce112!=NULL)) {
3700 var113 = varonce112;
3701 } else {
3702 var114 = "Error: conflicting super constructor to call for `";
3703 var116 = (val*)(50l<<2|1);
3704 var117 = (val*)(50l<<2|1);
3705 var118 = (val*)((long)(0)<<2|3);
3706 var119 = (val*)((long)(0)<<2|3);
3707 var115 = core__flat___CString___to_s_unsafe(var114, var116, var117, var118, var119);
3708 var113 = var115;
3709 varonce112 = var113;
3710 }
3711 ((struct instance_core__NativeArray*)var111)->values[0]=var113;
3712 if (likely(varonce120!=NULL)) {
3713 var121 = varonce120;
3714 } else {
3715 var122 = "`: `";
3716 var124 = (val*)(4l<<2|1);
3717 var125 = (val*)(4l<<2|1);
3718 var126 = (val*)((long)(0)<<2|3);
3719 var127 = (val*)((long)(0)<<2|3);
3720 var123 = core__flat___CString___to_s_unsafe(var122, var124, var125, var126, var127);
3721 var121 = var123;
3722 varonce120 = var121;
3723 }
3724 ((struct instance_core__NativeArray*)var111)->values[2]=var121;
3725 if (likely(varonce128!=NULL)) {
3726 var129 = varonce128;
3727 } else {
3728 var130 = "`, `";
3729 var132 = (val*)(4l<<2|1);
3730 var133 = (val*)(4l<<2|1);
3731 var134 = (val*)((long)(0)<<2|3);
3732 var135 = (val*)((long)(0)<<2|3);
3733 var131 = core__flat___CString___to_s_unsafe(var130, var132, var133, var134, var135);
3734 var129 = var131;
3735 varonce128 = var129;
3736 }
3737 ((struct instance_core__NativeArray*)var111)->values[4]=var129;
3738 if (likely(varonce136!=NULL)) {
3739 var137 = varonce136;
3740 } else {
3741 var138 = "`";
3742 var140 = (val*)(1l<<2|1);
3743 var141 = (val*)(1l<<2|1);
3744 var142 = (val*)((long)(0)<<2|3);
3745 var143 = (val*)((long)(0)<<2|3);
3746 var139 = core__flat___CString___to_s_unsafe(var138, var140, var141, var142, var143);
3747 var137 = var139;
3748 varonce136 = var137;
3749 }
3750 ((struct instance_core__NativeArray*)var111)->values[6]=var137;
3751 } else {
3752 var111 = varonce;
3753 varonce = NULL;
3754 }
3755 {
3756 var144 = ((val*(*)(val* self))(var_mproperty->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mproperty); /* to_s on <var_mproperty:MMethod>*/
3757 }
3758 ((struct instance_core__NativeArray*)var111)->values[1]=var144;
3759 {
3760 var145 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_candidate);
3761 }
3762 ((struct instance_core__NativeArray*)var111)->values[3]=var145;
3763 {
3764 { /* Inline model$MPropDef$mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
3765 var148 = var_superprop->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
3766 if (unlikely(var148 == NULL)) {
3767 if(catchStack.cursor >= 0){
3768 longjmp(catchStack.envs[catchStack.cursor], 1);
3769 }
3770 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3771 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3772 fatal_exit(1);
3773 }
3774 var146 = var148;
3775 RET_LABEL147:(void)0;
3776 }
3777 }
3778 {
3779 var149 = nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var146);
3780 }
3781 ((struct instance_core__NativeArray*)var111)->values[5]=var149;
3782 {
3783 var150 = ((val*(*)(val* self))(var111->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var111); /* native_to_s on <var111:NativeArray[String]>*/
3784 }
3785 varonce = var111;
3786 {
3787 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var150); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
3788 }
3789 goto RET_LABEL;
3790 } else {
3791 }
3792 {
3793 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
3794 var153 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
3795 if (unlikely(var153 == NULL)) {
3796 if(catchStack.cursor >= 0){
3797 longjmp(catchStack.envs[catchStack.cursor], 1);
3798 }
3799 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3800 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
3801 fatal_exit(1);
3802 }
3803 var151 = var153;
3804 RET_LABEL152:(void)0;
3805 }
3806 }
3807 {
3808 var154 = nitc___nitc__MProperty___lookup_definitions(var_candidate, var151, var_anchor);
3809 }
3810 var_candidatedefs = var154;
3811 if (var_superprop == NULL) {
3812 var156 = 0; /* is null */
3813 } else {
3814 var156 = 1; /* arg is null and recv is not */
3815 }
3816 if (0) {
3817 { /* Inline kernel$Object$!= (var_superprop,((val*)NULL)) on <var_superprop:nullable MMethodDef> */
3818 var_other = ((val*)NULL);
3819 {
3820 var159 = ((short int(*)(val* self, val* p0))(var_superprop->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_superprop, var_other); /* == on <var_superprop:nullable MMethodDef(MMethodDef)>*/
3821 }
3822 var160 = !var159;
3823 var157 = var160;
3824 goto RET_LABEL158;
3825 RET_LABEL158:(void)0;
3826 }
3827 var156 = var157;
3828 }
3829 var_161 = var156;
3830 if (var156){
3831 {
3832 { /* Inline model$MPropDef$mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
3833 var164 = var_superprop->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
3834 if (unlikely(var164 == NULL)) {
3835 if(catchStack.cursor >= 0){
3836 longjmp(catchStack.envs[catchStack.cursor], 1);
3837 }
3838 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3839 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
3840 fatal_exit(1);
3841 }
3842 var162 = var164;
3843 RET_LABEL163:(void)0;
3844 }
3845 }
3846 {
3847 { /* Inline kernel$Object$== (var162,var_candidate) on <var162:MProperty(MMethod)> */
3848 var_other57 = var_candidate;
3849 {
3850 { /* Inline kernel$Object$is_same_instance (var162,var_other57) on <var162:MProperty(MMethod)> */
3851 var169 = var162 == var_other57;
3852 var167 = var169;
3853 goto RET_LABEL168;
3854 RET_LABEL168:(void)0;
3855 }
3856 }
3857 var165 = var167;
3858 goto RET_LABEL166;
3859 RET_LABEL166:(void)0;
3860 }
3861 }
3862 var155 = var165;
3863 } else {
3864 var155 = var_161;
3865 }
3866 if (var155){
3867 {
3868 var170 = core___core__SequenceRead___Collection__first(var_candidatedefs);
3869 }
3870 {
3871 { /* Inline kernel$Object$== (var_superprop,var170) on <var_superprop:nullable MMethodDef(MMethodDef)> */
3872 var_other57 = var170;
3873 {
3874 { /* Inline kernel$Object$is_same_instance (var_superprop,var_other57) on <var_superprop:nullable MMethodDef(MMethodDef)> */
3875 var175 = var_superprop == var_other57;
3876 var173 = var175;
3877 goto RET_LABEL174;
3878 RET_LABEL174:(void)0;
3879 }
3880 }
3881 var171 = var173;
3882 goto RET_LABEL172;
3883 RET_LABEL172:(void)0;
3884 }
3885 }
3886 if (var171){
3887 goto BREAK_label77;
3888 } else {
3889 }
3890 {
3891 core___core__Array___core__abstract_collection__SimpleCollection__add(var_candidatedefs, var_superprop); /* Direct call array$Array$add on <var_candidatedefs:Array[MMethodDef]>*/
3892 }
3893 } else {
3894 }
3895 {
3896 { /* Inline array$AbstractArrayRead$length (var_candidatedefs) on <var_candidatedefs:Array[MMethodDef]> */
3897 var178 = var_candidatedefs->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_candidatedefs:Array[MMethodDef]> */
3898 var176 = var178;
3899 RET_LABEL177:(void)0;
3900 }
3901 }
3902 {
3903 { /* Inline kernel$Int$> (var176,1l) on <var176:Int> */
3904 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
3905 /* <1l:Int> isa OTHER */
3906 var181 = 1; /* easy <1l:Int> isa OTHER*/
3907 if (unlikely(!var181)) {
3908 var_class_name184 = type_core__Int.name;
3909 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name184);
3910 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
3911 fatal_exit(1);
3912 }
3913 var185 = var176 > 1l;
3914 var179 = var185;
3915 goto RET_LABEL180;
3916 RET_LABEL180:(void)0;
3917 }
3918 }
3919 if (var179){
3920 if (unlikely(varonce186==NULL)) {
3921 var187 = NEW_core__NativeArray((int)6l, &type_core__NativeArray__core__String);
3922 if (likely(varonce188!=NULL)) {
3923 var189 = varonce188;
3924 } else {
3925 var190 = "Error: conflicting property definitions for property `";
3926 var192 = (val*)(54l<<2|1);
3927 var193 = (val*)(54l<<2|1);
3928 var194 = (val*)((long)(0)<<2|3);
3929 var195 = (val*)((long)(0)<<2|3);
3930 var191 = core__flat___CString___to_s_unsafe(var190, var192, var193, var194, var195);
3931 var189 = var191;
3932 varonce188 = var189;
3933 }
3934 ((struct instance_core__NativeArray*)var187)->values[0]=var189;
3935 if (likely(varonce196!=NULL)) {
3936 var197 = varonce196;
3937 } else {
3938 var198 = "` in `";
3939 var200 = (val*)(6l<<2|1);
3940 var201 = (val*)(6l<<2|1);
3941 var202 = (val*)((long)(0)<<2|3);
3942 var203 = (val*)((long)(0)<<2|3);
3943 var199 = core__flat___CString___to_s_unsafe(var198, var200, var201, var202, var203);
3944 var197 = var199;
3945 varonce196 = var197;
3946 }
3947 ((struct instance_core__NativeArray*)var187)->values[2]=var197;
3948 if (likely(varonce204!=NULL)) {
3949 var205 = varonce204;
3950 } else {
3951 var206 = "`: ";
3952 var208 = (val*)(3l<<2|1);
3953 var209 = (val*)(3l<<2|1);
3954 var210 = (val*)((long)(0)<<2|3);
3955 var211 = (val*)((long)(0)<<2|3);
3956 var207 = core__flat___CString___to_s_unsafe(var206, var208, var209, var210, var211);
3957 var205 = var207;
3958 varonce204 = var205;
3959 }
3960 ((struct instance_core__NativeArray*)var187)->values[4]=var205;
3961 } else {
3962 var187 = varonce186;
3963 varonce186 = NULL;
3964 }
3965 {
3966 var212 = ((val*(*)(val* self))(var_mproperty->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mproperty); /* to_s on <var_mproperty:MMethod>*/
3967 }
3968 ((struct instance_core__NativeArray*)var187)->values[1]=var212;
3969 {
3970 var213 = ((val*(*)(val* self))(var_recvtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recvtype); /* to_s on <var_recvtype:nullable MType(MType)>*/
3971 }
3972 ((struct instance_core__NativeArray*)var187)->values[3]=var213;
3973 if (likely(varonce214!=NULL)) {
3974 var215 = varonce214;
3975 } else {
3976 var216 = ", ";
3977 var218 = (val*)(2l<<2|1);
3978 var219 = (val*)(2l<<2|1);
3979 var220 = (val*)((long)(0)<<2|3);
3980 var221 = (val*)((long)(0)<<2|3);
3981 var217 = core__flat___CString___to_s_unsafe(var216, var218, var219, var220, var221);
3982 var215 = var217;
3983 varonce214 = var215;
3984 }
3985 {
3986 var222 = core__abstract_text___Collection___join(var_candidatedefs, var215, ((val*)NULL));
3987 }
3988 ((struct instance_core__NativeArray*)var187)->values[5]=var222;
3989 {
3990 var223 = ((val*(*)(val* self))(var187->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var187); /* native_to_s on <var187:NativeArray[String]>*/
3991 }
3992 varonce186 = var187;
3993 {
3994 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var223); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
3995 }
3996 goto RET_LABEL;
3997 } else {
3998 }
3999 {
4000 var224 = core___core__SequenceRead___Collection__first(var_candidatedefs);
4001 }
4002 var_superprop = var224;
4003 BREAK_label77: (void)0;
4004 {
4005 ((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_31); /* next on <var_31:IndexedIterator[MClassType]>*/
4006 }
4007 }
4008 BREAK_label: (void)0;
4009 {
4010 ((void(*)(val* self))((((long)var_31&3)?class_info[((long)var_31&3)]:var_31->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_31); /* finish on <var_31:IndexedIterator[MClassType]>*/
4011 }
4012 if (var_superprop == NULL) {
4013 var225 = 1; /* is null */
4014 } else {
4015 var225 = 0; /* arg is null but recv is not */
4016 }
4017 if (0) {
4018 { /* Inline kernel$Object$== (var_superprop,((val*)NULL)) on <var_superprop:nullable MMethodDef> */
4019 var_other57 = ((val*)NULL);
4020 {
4021 { /* Inline kernel$Object$is_same_instance (var_superprop,var_other57) on <var_superprop:nullable MMethodDef(MMethodDef)> */
4022 var230 = var_superprop == var_other57;
4023 var228 = var230;
4024 goto RET_LABEL229;
4025 RET_LABEL229:(void)0;
4026 }
4027 }
4028 var226 = var228;
4029 goto RET_LABEL227;
4030 RET_LABEL227:(void)0;
4031 }
4032 var225 = var226;
4033 }
4034 if (var225){
4035 if (unlikely(varonce231==NULL)) {
4036 var232 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4037 if (likely(varonce233!=NULL)) {
4038 var234 = varonce233;
4039 } else {
4040 var235 = "Error: no super method to call for `";
4041 var237 = (val*)(36l<<2|1);
4042 var238 = (val*)(36l<<2|1);
4043 var239 = (val*)((long)(0)<<2|3);
4044 var240 = (val*)((long)(0)<<2|3);
4045 var236 = core__flat___CString___to_s_unsafe(var235, var237, var238, var239, var240);
4046 var234 = var236;
4047 varonce233 = var234;
4048 }
4049 ((struct instance_core__NativeArray*)var232)->values[0]=var234;
4050 if (likely(varonce241!=NULL)) {
4051 var242 = varonce241;
4052 } else {
4053 var243 = "`.";
4054 var245 = (val*)(2l<<2|1);
4055 var246 = (val*)(2l<<2|1);
4056 var247 = (val*)((long)(0)<<2|3);
4057 var248 = (val*)((long)(0)<<2|3);
4058 var244 = core__flat___CString___to_s_unsafe(var243, var245, var246, var247, var248);
4059 var242 = var244;
4060 varonce241 = var242;
4061 }
4062 ((struct instance_core__NativeArray*)var232)->values[2]=var242;
4063 } else {
4064 var232 = varonce231;
4065 varonce231 = NULL;
4066 }
4067 {
4068 var249 = ((val*(*)(val* self))(var_mproperty->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mproperty); /* to_s on <var_mproperty:MMethod>*/
4069 }
4070 ((struct instance_core__NativeArray*)var232)->values[1]=var249;
4071 {
4072 var250 = ((val*(*)(val* self))(var232->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var232); /* native_to_s on <var232:NativeArray[String]>*/
4073 }
4074 varonce231 = var232;
4075 {
4076 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var250); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4077 }
4078 goto RET_LABEL;
4079 } else {
4080 }
4081 {
4082 { /* Inline model$MMethodDef$new_msignature (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
4083 var254 = var_superprop->attrs[COLOR_nitc__model__MMethodDef___new_msignature].val; /* _new_msignature on <var_superprop:nullable MMethodDef(MMethodDef)> */
4084 var252 = var254;
4085 RET_LABEL253:(void)0;
4086 }
4087 }
4088 if (var252!=NULL) {
4089 var251 = var252;
4090 } else {
4091 {
4092 { /* Inline model$MMethodDef$msignature (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
4093 var257 = var_superprop->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_superprop:nullable MMethodDef(MMethodDef)> */
4094 var255 = var257;
4095 RET_LABEL256:(void)0;
4096 }
4097 }
4098 if (unlikely(var255 == NULL)) {
4099 if(catchStack.cursor >= 0){
4100 longjmp(catchStack.envs[catchStack.cursor], 1);
4101 }
4102 PRINT_ERROR("Runtime error: %s", "Cast failed");
4103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2110);
4104 fatal_exit(1);
4105 }
4106 var251 = var255;
4107 }
4108 var_msignature = var251;
4109 {
4110 var258 = nitc__typing___nitc__typing__TypeVisitor___resolve_for(var_v, var_msignature, var_recvtype, 1);
4111 }
4112 /* <var258:MType> isa MSignature */
4113 cltype260 = type_nitc__MSignature.color;
4114 idtype261 = type_nitc__MSignature.id;
4115 if(cltype260 >= var258->type->table_size) {
4116 var259 = 0;
4117 } else {
4118 var259 = var258->type->type_table[cltype260] == idtype261;
4119 }
4120 if (unlikely(!var259)) {
4121 var_class_name262 = var258 == NULL ? "null" : var258->type->name;
4122 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name262);
4123 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2111);
4124 fatal_exit(1);
4125 }
4126 var_msignature = var258;
4127 var263 = NEW_nitc__CallSite(&type_nitc__CallSite);
4128 {
4129 var264 = nitc___nitc__ANode___hot_location(self);
4130 }
4131 {
4132 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
4133 var267 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
4134 if (unlikely(var267 == NULL)) {
4135 if(catchStack.cursor >= 0){
4136 longjmp(catchStack.envs[catchStack.cursor], 1);
4137 }
4138 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4139 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
4140 fatal_exit(1);
4141 }
4142 var265 = var267;
4143 RET_LABEL266:(void)0;
4144 }
4145 }
4146 {
4147 { /* Inline typing$TypeVisitor$anchor (var_v) on <var_v:TypeVisitor> */
4148 var270 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on <var_v:TypeVisitor> */
4149 var268 = var270;
4150 RET_LABEL269:(void)0;
4151 }
4152 }
4153 {
4154 { /* Inline model$MPropDef$mproperty (var_superprop) on <var_superprop:nullable MMethodDef(MMethodDef)> */
4155 var273 = var_superprop->attrs[COLOR_nitc__model__MPropDef___mproperty].val; /* _mproperty on <var_superprop:nullable MMethodDef(MMethodDef)> */
4156 if (unlikely(var273 == NULL)) {
4157 if(catchStack.cursor >= 0){
4158 longjmp(catchStack.envs[catchStack.cursor], 1);
4159 }
4160 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
4161 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2357);
4162 fatal_exit(1);
4163 }
4164 var271 = var273;
4165 RET_LABEL272:(void)0;
4166 }
4167 }
4168 {
4169 ((void(*)(val* self, val* p0))(var263->class->vft[COLOR_nitc__typing__CallSite__location_61d]))(var263, var264); /* location= on <var263:CallSite>*/
4170 }
4171 {
4172 ((void(*)(val* self, val* p0))(var263->class->vft[COLOR_nitc__typing__CallSite__recv_61d]))(var263, var_recvtype); /* recv= on <var263:CallSite>*/
4173 }
4174 {
4175 ((void(*)(val* self, val* p0))(var263->class->vft[COLOR_nitc__typing__CallSite__mmodule_61d]))(var263, var265); /* mmodule= on <var263:CallSite>*/
4176 }
4177 {
4178 ((void(*)(val* self, val* p0))(var263->class->vft[COLOR_nitc__typing__CallSite__anchor_61d]))(var263, var268); /* anchor= on <var263:CallSite>*/
4179 }
4180 {
4181 ((void(*)(val* self, short int p0))(var263->class->vft[COLOR_nitc__typing__CallSite__recv_is_self_61d]))(var263, 1); /* recv_is_self= on <var263:CallSite>*/
4182 }
4183 {
4184 ((void(*)(val* self, val* p0))(var263->class->vft[COLOR_nitc__typing__CallSite__mproperty_61d]))(var263, var271); /* mproperty= on <var263:CallSite>*/
4185 }
4186 {
4187 ((void(*)(val* self, val* p0))(var263->class->vft[COLOR_nitc__typing__CallSite__mpropdef_61d]))(var263, var_superprop); /* mpropdef= on <var263:CallSite>*/
4188 }
4189 {
4190 ((void(*)(val* self, val* p0))(var263->class->vft[COLOR_nitc__typing__CallSite__msignature_61d]))(var263, var_msignature); /* msignature= on <var263:CallSite>*/
4191 }
4192 {
4193 ((void(*)(val* self, short int p0))(var263->class->vft[COLOR_nitc__typing__CallSite__erasure_cast_61d]))(var263, 0); /* erasure_cast= on <var263:CallSite>*/
4194 }
4195 {
4196 ((void(*)(val* self))(var263->class->vft[COLOR_core__kernel__Object__init]))(var263); /* init on <var263:CallSite>*/
4197 }
4198 var_callsite = var263;
4199 {
4200 { /* Inline typing$ASuperExpr$callsite= (self,var_callsite) on <self:ASuperExpr> */
4201 self->attrs[COLOR_nitc__typing__ASuperExpr___callsite].val = var_callsite; /* _callsite on <self:ASuperExpr> */
4202 RET_LABEL274:(void)0;
4203 }
4204 }
4205 {
4206 { /* Inline parser_nodes$ASuperExpr$n_args (self) on <self:ASuperExpr> */
4207 var277 = self->attrs[COLOR_nitc__parser_nodes__ASuperExpr___n_args].val; /* _n_args on <self:ASuperExpr> */
4208 if (unlikely(var277 == NULL)) {
4209 if(catchStack.cursor >= 0){
4210 longjmp(catchStack.envs[catchStack.cursor], 1);
4211 }
4212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
4213 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2429);
4214 fatal_exit(1);
4215 }
4216 var275 = var277;
4217 RET_LABEL276:(void)0;
4218 }
4219 }
4220 {
4221 var278 = nitc__typing___AExprs___to_a(var275);
4222 }
4223 var_args = var278;
4224 {
4225 { /* Inline array$AbstractArrayRead$length (var_args) on <var_args:Array[AExpr]> */
4226 var281 = var_args->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_args:Array[AExpr]> */
4227 var279 = var281;
4228 RET_LABEL280:(void)0;
4229 }
4230 }
4231 {
4232 { /* Inline kernel$Int$> (var279,0l) on <var279:Int> */
4233 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4234 /* <0l:Int> isa OTHER */
4235 var284 = 1; /* easy <0l:Int> isa OTHER*/
4236 if (unlikely(!var284)) {
4237 var_class_name287 = type_core__Int.name;
4238 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name287);
4239 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 727);
4240 fatal_exit(1);
4241 }
4242 var288 = var279 > 0l;
4243 var282 = var288;
4244 goto RET_LABEL283;
4245 RET_LABEL283:(void)0;
4246 }
4247 }
4248 if (var282){
4249 {
4250 var289 = nitc___nitc__CallSite___check_signature(var_callsite, var_v, self, var_args);
4251 }
4252 } else {
4253 {
4254 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4255 var292 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4256 var290 = var292;
4257 RET_LABEL291:(void)0;
4258 }
4259 }
4260 if (var290 == NULL) {
4261 if(catchStack.cursor >= 0){
4262 longjmp(catchStack.envs[catchStack.cursor], 1);
4263 }
4264 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4265 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2121);
4266 fatal_exit(1);
4267 } else {
4268 var293 = nitc___nitc__MSignature___arity(var290);
4269 }
4270 {
4271 var294 = nitc___nitc__MSignature___arity(var_msignature);
4272 }
4273 {
4274 { /* Inline kernel$Int$< (var293,var294) on <var293:Int> */
4275 /* Covariant cast for argument 0 (i) <var294:Int> isa OTHER */
4276 /* <var294:Int> isa OTHER */
4277 var297 = 1; /* easy <var294:Int> isa OTHER*/
4278 if (unlikely(!var297)) {
4279 var_class_name300 = type_core__Int.name;
4280 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name300);
4281 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 725);
4282 fatal_exit(1);
4283 }
4284 var301 = var293 < var294;
4285 var295 = var301;
4286 goto RET_LABEL296;
4287 RET_LABEL296:(void)0;
4288 }
4289 }
4290 if (var295){
4291 if (unlikely(varonce302==NULL)) {
4292 var303 = NEW_core__NativeArray((int)7l, &type_core__NativeArray__core__String);
4293 if (likely(varonce304!=NULL)) {
4294 var305 = varonce304;
4295 } else {
4296 var306 = "Error: not enough implicit arguments to pass. Got `";
4297 var308 = (val*)(51l<<2|1);
4298 var309 = (val*)(51l<<2|1);
4299 var310 = (val*)((long)(0)<<2|3);
4300 var311 = (val*)((long)(0)<<2|3);
4301 var307 = core__flat___CString___to_s_unsafe(var306, var308, var309, var310, var311);
4302 var305 = var307;
4303 varonce304 = var305;
4304 }
4305 ((struct instance_core__NativeArray*)var303)->values[0]=var305;
4306 if (likely(varonce312!=NULL)) {
4307 var313 = varonce312;
4308 } else {
4309 var314 = "`, expected at least `";
4310 var316 = (val*)(22l<<2|1);
4311 var317 = (val*)(22l<<2|1);
4312 var318 = (val*)((long)(0)<<2|3);
4313 var319 = (val*)((long)(0)<<2|3);
4314 var315 = core__flat___CString___to_s_unsafe(var314, var316, var317, var318, var319);
4315 var313 = var315;
4316 varonce312 = var313;
4317 }
4318 ((struct instance_core__NativeArray*)var303)->values[2]=var313;
4319 if (likely(varonce320!=NULL)) {
4320 var321 = varonce320;
4321 } else {
4322 var322 = "`. Signature is `";
4323 var324 = (val*)(17l<<2|1);
4324 var325 = (val*)(17l<<2|1);
4325 var326 = (val*)((long)(0)<<2|3);
4326 var327 = (val*)((long)(0)<<2|3);
4327 var323 = core__flat___CString___to_s_unsafe(var322, var324, var325, var326, var327);
4328 var321 = var323;
4329 varonce320 = var321;
4330 }
4331 ((struct instance_core__NativeArray*)var303)->values[4]=var321;
4332 if (likely(varonce328!=NULL)) {
4333 var329 = varonce328;
4334 } else {
4335 var330 = "`.";
4336 var332 = (val*)(2l<<2|1);
4337 var333 = (val*)(2l<<2|1);
4338 var334 = (val*)((long)(0)<<2|3);
4339 var335 = (val*)((long)(0)<<2|3);
4340 var331 = core__flat___CString___to_s_unsafe(var330, var332, var333, var334, var335);
4341 var329 = var331;
4342 varonce328 = var329;
4343 }
4344 ((struct instance_core__NativeArray*)var303)->values[6]=var329;
4345 } else {
4346 var303 = varonce302;
4347 varonce302 = NULL;
4348 }
4349 {
4350 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4351 var338 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4352 var336 = var338;
4353 RET_LABEL337:(void)0;
4354 }
4355 }
4356 if (var336 == NULL) {
4357 if(catchStack.cursor >= 0){
4358 longjmp(catchStack.envs[catchStack.cursor], 1);
4359 }
4360 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4361 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2122);
4362 fatal_exit(1);
4363 } else {
4364 var339 = nitc___nitc__MSignature___arity(var336);
4365 }
4366 var340 = core__flat___Int___core__abstract_text__Object__to_s(var339);
4367 ((struct instance_core__NativeArray*)var303)->values[1]=var340;
4368 {
4369 var341 = nitc___nitc__MSignature___arity(var_msignature);
4370 }
4371 var342 = core__flat___Int___core__abstract_text__Object__to_s(var341);
4372 ((struct instance_core__NativeArray*)var303)->values[3]=var342;
4373 {
4374 var343 = ((val*(*)(val* self))(var_msignature->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_msignature); /* to_s on <var_msignature:MSignature>*/
4375 }
4376 ((struct instance_core__NativeArray*)var303)->values[5]=var343;
4377 {
4378 var344 = ((val*(*)(val* self))(var303->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var303); /* native_to_s on <var303:NativeArray[String]>*/
4379 }
4380 varonce302 = var303;
4381 {
4382 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var344); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4383 }
4384 goto RET_LABEL;
4385 } else {
4386 }
4387 var_i = 0l;
4388 {
4389 { /* Inline model$MSignature$mparameters (var_msignature) on <var_msignature:MSignature> */
4390 var347 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:MSignature> */
4391 if (unlikely(var347 == NULL)) {
4392 if(catchStack.cursor >= 0){
4393 longjmp(catchStack.envs[catchStack.cursor], 1);
4394 }
4395 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4396 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
4397 fatal_exit(1);
4398 }
4399 var345 = var347;
4400 RET_LABEL346:(void)0;
4401 }
4402 }
4403 var_348 = var345;
4404 {
4405 var349 = core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_348);
4406 }
4407 var_350 = var349;
4408 for(;;) {
4409 {
4410 var351 = ((short int(*)(val* self))((((long)var_350&3)?class_info[((long)var_350&3)]:var_350->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_350); /* is_ok on <var_350:IndexedIterator[MParameter]>*/
4411 }
4412 if (var351){
4413 } else {
4414 goto BREAK_label352;
4415 }
4416 {
4417 var353 = ((val*(*)(val* self))((((long)var_350&3)?class_info[((long)var_350&3)]:var_350->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_350); /* item on <var_350:IndexedIterator[MParameter]>*/
4418 }
4419 var_sp = var353;
4420 {
4421 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4422 var356 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
4423 var354 = var356;
4424 RET_LABEL355:(void)0;
4425 }
4426 }
4427 if (var354 == NULL) {
4428 if(catchStack.cursor >= 0){
4429 longjmp(catchStack.envs[catchStack.cursor], 1);
4430 }
4431 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4432 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2128);
4433 fatal_exit(1);
4434 } else {
4435 { /* Inline model$MSignature$mparameters (var354) on <var354:nullable MSignature> */
4436 if (unlikely(var354 == NULL)) {
4437 if(catchStack.cursor >= 0){
4438 longjmp(catchStack.envs[catchStack.cursor], 1);
4439 }
4440 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4441 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
4442 fatal_exit(1);
4443 }
4444 var359 = var354->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var354:nullable MSignature> */
4445 if (unlikely(var359 == NULL)) {
4446 if(catchStack.cursor >= 0){
4447 longjmp(catchStack.envs[catchStack.cursor], 1);
4448 }
4449 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
4450 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
4451 fatal_exit(1);
4452 }
4453 var357 = var359;
4454 RET_LABEL358:(void)0;
4455 }
4456 }
4457 {
4458 var360 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var357, var_i);
4459 }
4460 var_p = var360;
4461 {
4462 { /* Inline model$MParameter$mtype (var_p) on <var_p:MParameter> */
4463 var363 = var_p->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
4464 if (unlikely(var363 == NULL)) {
4465 if(catchStack.cursor >= 0){
4466 longjmp(catchStack.envs[catchStack.cursor], 1);
4467 }
4468 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4469 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
4470 fatal_exit(1);
4471 }
4472 var361 = var363;
4473 RET_LABEL362:(void)0;
4474 }
4475 }
4476 {
4477 { /* Inline model$MParameter$mtype (var_sp) on <var_sp:MParameter> */
4478 var366 = var_sp->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
4479 if (unlikely(var366 == NULL)) {
4480 if(catchStack.cursor >= 0){
4481 longjmp(catchStack.envs[catchStack.cursor], 1);
4482 }
4483 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4484 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
4485 fatal_exit(1);
4486 }
4487 var364 = var366;
4488 RET_LABEL365:(void)0;
4489 }
4490 }
4491 {
4492 var367 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var361, var364);
4493 }
4494 var368 = !var367;
4495 if (var368){
4496 if (unlikely(varonce369==NULL)) {
4497 var370 = NEW_core__NativeArray((int)10l, &type_core__NativeArray__core__String);
4498 if (likely(varonce371!=NULL)) {
4499 var372 = varonce371;
4500 } else {
4501 var373 = "Type Error: expected argument #";
4502 var375 = (val*)(31l<<2|1);
4503 var376 = (val*)(31l<<2|1);
4504 var377 = (val*)((long)(0)<<2|3);
4505 var378 = (val*)((long)(0)<<2|3);
4506 var374 = core__flat___CString___to_s_unsafe(var373, var375, var376, var377, var378);
4507 var372 = var374;
4508 varonce371 = var372;
4509 }
4510 ((struct instance_core__NativeArray*)var370)->values[0]=var372;
4511 if (likely(varonce379!=NULL)) {
4512 var380 = varonce379;
4513 } else {
4514 var381 = " of type `";
4515 var383 = (val*)(10l<<2|1);
4516 var384 = (val*)(10l<<2|1);
4517 var385 = (val*)((long)(0)<<2|3);
4518 var386 = (val*)((long)(0)<<2|3);
4519 var382 = core__flat___CString___to_s_unsafe(var381, var383, var384, var385, var386);
4520 var380 = var382;
4521 varonce379 = var380;
4522 }
4523 ((struct instance_core__NativeArray*)var370)->values[2]=var380;
4524 if (likely(varonce387!=NULL)) {
4525 var388 = varonce387;
4526 } else {
4527 var389 = "`, got implicit argument `";
4528 var391 = (val*)(26l<<2|1);
4529 var392 = (val*)(26l<<2|1);
4530 var393 = (val*)((long)(0)<<2|3);
4531 var394 = (val*)((long)(0)<<2|3);
4532 var390 = core__flat___CString___to_s_unsafe(var389, var391, var392, var393, var394);
4533 var388 = var390;
4534 varonce387 = var388;
4535 }
4536 ((struct instance_core__NativeArray*)var370)->values[4]=var388;
4537 if (likely(varonce395!=NULL)) {
4538 var396 = varonce395;
4539 } else {
4540 var397 = "` of type `";
4541 var399 = (val*)(11l<<2|1);
4542 var400 = (val*)(11l<<2|1);
4543 var401 = (val*)((long)(0)<<2|3);
4544 var402 = (val*)((long)(0)<<2|3);
4545 var398 = core__flat___CString___to_s_unsafe(var397, var399, var400, var401, var402);
4546 var396 = var398;
4547 varonce395 = var396;
4548 }
4549 ((struct instance_core__NativeArray*)var370)->values[6]=var396;
4550 if (likely(varonce403!=NULL)) {
4551 var404 = varonce403;
4552 } else {
4553 var405 = "`. Signature is ";
4554 var407 = (val*)(16l<<2|1);
4555 var408 = (val*)(16l<<2|1);
4556 var409 = (val*)((long)(0)<<2|3);
4557 var410 = (val*)((long)(0)<<2|3);
4558 var406 = core__flat___CString___to_s_unsafe(var405, var407, var408, var409, var410);
4559 var404 = var406;
4560 varonce403 = var404;
4561 }
4562 ((struct instance_core__NativeArray*)var370)->values[8]=var404;
4563 } else {
4564 var370 = varonce369;
4565 varonce369 = NULL;
4566 }
4567 var411 = core__flat___Int___core__abstract_text__Object__to_s(var_i);
4568 ((struct instance_core__NativeArray*)var370)->values[1]=var411;
4569 {
4570 { /* Inline model$MParameter$mtype (var_sp) on <var_sp:MParameter> */
4571 var414 = var_sp->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_sp:MParameter> */
4572 if (unlikely(var414 == NULL)) {
4573 if(catchStack.cursor >= 0){
4574 longjmp(catchStack.envs[catchStack.cursor], 1);
4575 }
4576 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4577 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
4578 fatal_exit(1);
4579 }
4580 var412 = var414;
4581 RET_LABEL413:(void)0;
4582 }
4583 }
4584 {
4585 var415 = ((val*(*)(val* self))(var412->class->vft[COLOR_core__abstract_text__Object__to_s]))(var412); /* to_s on <var412:MType>*/
4586 }
4587 ((struct instance_core__NativeArray*)var370)->values[3]=var415;
4588 {
4589 { /* Inline model$MParameter$name (var_p) on <var_p:MParameter> */
4590 var418 = var_p->attrs[COLOR_nitc__model__MParameter___name].val; /* _name on <var_p:MParameter> */
4591 if (unlikely(var418 == NULL)) {
4592 if(catchStack.cursor >= 0){
4593 longjmp(catchStack.envs[catchStack.cursor], 1);
4594 }
4595 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
4596 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1993);
4597 fatal_exit(1);
4598 }
4599 var416 = var418;
4600 RET_LABEL417:(void)0;
4601 }
4602 }
4603 ((struct instance_core__NativeArray*)var370)->values[5]=var416;
4604 {
4605 { /* Inline model$MParameter$mtype (var_p) on <var_p:MParameter> */
4606 var421 = var_p->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var_p:MParameter> */
4607 if (unlikely(var421 == NULL)) {
4608 if(catchStack.cursor >= 0){
4609 longjmp(catchStack.envs[catchStack.cursor], 1);
4610 }
4611 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
4612 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
4613 fatal_exit(1);
4614 }
4615 var419 = var421;
4616 RET_LABEL420:(void)0;
4617 }
4618 }
4619 {
4620 var422 = ((val*(*)(val* self))(var419->class->vft[COLOR_core__abstract_text__Object__to_s]))(var419); /* to_s on <var419:MType>*/
4621 }
4622 ((struct instance_core__NativeArray*)var370)->values[7]=var422;
4623 {
4624 var423 = ((val*(*)(val* self))(var_msignature->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_msignature); /* to_s on <var_msignature:MSignature>*/
4625 }
4626 ((struct instance_core__NativeArray*)var370)->values[9]=var423;
4627 {
4628 var424 = ((val*(*)(val* self))(var370->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var370); /* native_to_s on <var370:NativeArray[String]>*/
4629 }
4630 varonce369 = var370;
4631 {
4632 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var424); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4633 }
4634 goto RET_LABEL;
4635 } else {
4636 }
4637 {
4638 { /* Inline kernel$Int$+ (var_i,1l) on <var_i:Int> */
4639 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
4640 /* <1l:Int> isa OTHER */
4641 var427 = 1; /* easy <1l:Int> isa OTHER*/
4642 if (unlikely(!var427)) {
4643 var_class_name430 = type_core__Int.name;
4644 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name430);
4645 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel, 728);
4646 fatal_exit(1);
4647 }
4648 var431 = var_i + 1l;
4649 var425 = var431;
4650 goto RET_LABEL426;
4651 RET_LABEL426:(void)0;
4652 }
4653 }
4654 var_i = var425;
4655 {
4656 ((void(*)(val* self))((((long)var_350&3)?class_info[((long)var_350&3)]:var_350->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_350); /* next on <var_350:IndexedIterator[MParameter]>*/
4657 }
4658 }
4659 BREAK_label352: (void)0;
4660 {
4661 ((void(*)(val* self))((((long)var_350&3)?class_info[((long)var_350&3)]:var_350->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_350); /* finish on <var_350:IndexedIterator[MParameter]>*/
4662 }
4663 }
4664 {
4665 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ASuperExpr> */
4666 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ASuperExpr> */
4667 RET_LABEL432:(void)0;
4668 }
4669 }
4670 RET_LABEL:;
4671 }
4672 /* method typing$ANewExpr$callsite for (self: ANewExpr): nullable CallSite */
4673 val* nitc__typing___ANewExpr___callsite(val* self) {
4674 val* var /* : nullable CallSite */;
4675 val* var1 /* : nullable CallSite */;
4676 var1 = self->attrs[COLOR_nitc__typing__ANewExpr___callsite].val; /* _callsite on <self:ANewExpr> */
4677 var = var1;
4678 RET_LABEL:;
4679 return var;
4680 }
4681 /* method typing$ANewExpr$callsite= for (self: ANewExpr, nullable CallSite) */
4682 void nitc__typing___ANewExpr___callsite_61d(val* self, val* p0) {
4683 self->attrs[COLOR_nitc__typing__ANewExpr___callsite].val = p0; /* _callsite on <self:ANewExpr> */
4684 RET_LABEL:;
4685 }
4686 /* method typing$ANewExpr$recvtype for (self: ANewExpr): nullable MClassType */
4687 val* nitc__typing___ANewExpr___recvtype(val* self) {
4688 val* var /* : nullable MClassType */;
4689 val* var1 /* : nullable MClassType */;
4690 var1 = self->attrs[COLOR_nitc__typing__ANewExpr___recvtype].val; /* _recvtype on <self:ANewExpr> */
4691 var = var1;
4692 RET_LABEL:;
4693 return var;
4694 }
4695 /* method typing$ANewExpr$recvtype= for (self: ANewExpr, nullable MClassType) */
4696 void nitc__typing___ANewExpr___recvtype_61d(val* self, val* p0) {
4697 self->attrs[COLOR_nitc__typing__ANewExpr___recvtype].val = p0; /* _recvtype on <self:ANewExpr> */
4698 RET_LABEL:;
4699 }
4700 /* method typing$ANewExpr$accept_typing for (self: ANewExpr, TypeVisitor) */
4701 void nitc__typing___ANewExpr___AExpr__accept_typing(val* self, val* p0) {
4702 val* var_v /* var v: TypeVisitor */;
4703 val* var /* : AType */;
4704 val* var2 /* : AType */;
4705 val* var3 /* : nullable MType */;
4706 val* var_recvtype /* var recvtype: nullable MType */;
4707 short int var4 /* : Bool */;
4708 short int var5 /* : Bool */;
4709 val* var_other /* var other: nullable Object */;
4710 short int var7 /* : Bool */;
4711 short int var9 /* : Bool */;
4712 short int var10 /* : Bool */;
4713 int cltype;
4714 int idtype;
4715 short int var11 /* : Bool */;
4716 short int var12 /* : Bool */;
4717 int cltype13;
4718 int idtype14;
4719 val* var15 /* : NativeArray[String] */;
4720 static val* varonce;
4721 static val* varonce16;
4722 val* var17 /* : String */;
4723 char* var18 /* : CString */;
4724 val* var19 /* : String */;
4725 val* var20 /* : nullable Int */;
4726 val* var21 /* : nullable Int */;
4727 val* var22 /* : nullable Bool */;
4728 val* var23 /* : nullable Bool */;
4729 static val* varonce24;
4730 val* var25 /* : String */;
4731 char* var26 /* : CString */;
4732 val* var27 /* : String */;
4733 val* var28 /* : nullable Int */;
4734 val* var29 /* : nullable Int */;
4735 val* var30 /* : nullable Bool */;
4736 val* var31 /* : nullable Bool */;
4737 val* var32 /* : String */;
4738 val* var33 /* : String */;
4739 short int var34 /* : Bool */;
4740 int cltype35;
4741 int idtype36;
4742 val* var38 /* : NativeArray[String] */;
4743 static val* varonce37;
4744 static val* varonce39;
4745 val* var40 /* : String */;
4746 char* var41 /* : CString */;
4747 val* var42 /* : String */;
4748 val* var43 /* : nullable Int */;
4749 val* var44 /* : nullable Int */;
4750 val* var45 /* : nullable Bool */;
4751 val* var46 /* : nullable Bool */;
4752 static val* varonce47;
4753 val* var48 /* : String */;
4754 char* var49 /* : CString */;
4755 val* var50 /* : String */;
4756 val* var51 /* : nullable Int */;
4757 val* var52 /* : nullable Int */;
4758 val* var53 /* : nullable Bool */;
4759 val* var54 /* : nullable Bool */;
4760 val* var55 /* : String */;
4761 val* var56 /* : String */;
4762 val* var58 /* : NativeArray[String] */;
4763 static val* varonce57;
4764 static val* varonce59;
4765 val* var60 /* : String */;
4766 char* var61 /* : CString */;
4767 val* var62 /* : String */;
4768 val* var63 /* : nullable Int */;
4769 val* var64 /* : nullable Int */;
4770 val* var65 /* : nullable Bool */;
4771 val* var66 /* : nullable Bool */;
4772 static val* varonce67;
4773 val* var68 /* : String */;
4774 char* var69 /* : CString */;
4775 val* var70 /* : String */;
4776 val* var71 /* : nullable Int */;
4777 val* var72 /* : nullable Int */;
4778 val* var73 /* : nullable Bool */;
4779 val* var74 /* : nullable Bool */;
4780 val* var75 /* : String */;
4781 val* var76 /* : String */;
4782 val* var78 /* : MClass */;
4783 val* var80 /* : MClass */;
4784 val* var81 /* : MClassKind */;
4785 val* var83 /* : MClassKind */;
4786 val* var_kind /* var kind: MClassKind */;
4787 val* var84 /* : nullable AQid */;
4788 val* var86 /* : nullable AQid */;
4789 val* var_nqid /* var nqid: nullable AQid */;
4790 short int var87 /* : Bool */;
4791 short int var88 /* : Bool */;
4792 val* var_other90 /* var other: nullable Object */;
4793 short int var91 /* : Bool */;
4794 short int var92 /* : Bool */;
4795 val* var93 /* : TId */;
4796 val* var95 /* : TId */;
4797 val* var96 /* : String */;
4798 val* var_name /* var name: String */;
4799 val* var_node /* var node: ANode */;
4800 static val* varonce97;
4801 val* var98 /* : String */;
4802 char* var99 /* : CString */;
4803 val* var100 /* : String */;
4804 val* var101 /* : nullable Int */;
4805 val* var102 /* : nullable Int */;
4806 val* var103 /* : nullable Bool */;
4807 val* var104 /* : nullable Bool */;
4808 val* var105 /* : TKwnew */;
4809 val* var107 /* : TKwnew */;
4810 static val* varonce108;
4811 val* var109 /* : String */;
4812 char* var110 /* : CString */;
4813 val* var111 /* : String */;
4814 val* var112 /* : nullable Int */;
4815 val* var113 /* : nullable Int */;
4816 val* var114 /* : nullable Bool */;
4817 val* var115 /* : nullable Bool */;
4818 short int var116 /* : Bool */;
4819 val* var117 /* : Sys */;
4820 val* var118 /* : MClassKind */;
4821 short int var119 /* : Bool */;
4822 short int var121 /* : Bool */;
4823 short int var122 /* : Bool */;
4824 val* var124 /* : NativeArray[String] */;
4825 static val* varonce123;
4826 static val* varonce125;
4827 val* var126 /* : String */;
4828 char* var127 /* : CString */;
4829 val* var128 /* : String */;
4830 val* var129 /* : nullable Int */;
4831 val* var130 /* : nullable Int */;
4832 val* var131 /* : nullable Bool */;
4833 val* var132 /* : nullable Bool */;
4834 static val* varonce133;
4835 val* var134 /* : String */;
4836 char* var135 /* : CString */;
4837 val* var136 /* : String */;
4838 val* var137 /* : nullable Int */;
4839 val* var138 /* : nullable Int */;
4840 val* var139 /* : nullable Bool */;
4841 val* var140 /* : nullable Bool */;
4842 static val* varonce141;
4843 val* var142 /* : String */;
4844 char* var143 /* : CString */;
4845 val* var144 /* : String */;
4846 val* var145 /* : nullable Int */;
4847 val* var146 /* : nullable Int */;
4848 val* var147 /* : nullable Bool */;
4849 val* var148 /* : nullable Bool */;
4850 val* var149 /* : String */;
4851 val* var150 /* : String */;
4852 val* var151 /* : String */;
4853 val* var152 /* : AExprs */;
4854 val* var154 /* : AExprs */;
4855 val* var155 /* : ANodes[AExpr] */;
4856 val* var157 /* : ANodes[AExpr] */;
4857 short int var158 /* : Bool */;
4858 val* var159 /* : AExprs */;
4859 val* var161 /* : AExprs */;
4860 static val* varonce162;
4861 val* var163 /* : String */;
4862 char* var164 /* : CString */;
4863 val* var165 /* : String */;
4864 val* var166 /* : nullable Int */;
4865 val* var167 /* : nullable Int */;
4866 val* var168 /* : nullable Bool */;
4867 val* var169 /* : nullable Bool */;
4868 val* var171 /* : nullable CallSite */;
4869 val* var_callsite /* var callsite: nullable CallSite */;
4870 short int var172 /* : Bool */;
4871 short int var173 /* : Bool */;
4872 short int var175 /* : Bool */;
4873 short int var177 /* : Bool */;
4874 val* var178 /* : MMethod */;
4875 val* var180 /* : MMethod */;
4876 short int var181 /* : Bool */;
4877 short int var183 /* : Bool */;
4878 short int var184 /* : Bool */;
4879 val* var185 /* : Sys */;
4880 val* var186 /* : MClassKind */;
4881 short int var187 /* : Bool */;
4882 short int var189 /* : Bool */;
4883 short int var190 /* : Bool */;
4884 val* var192 /* : NativeArray[String] */;
4885 static val* varonce191;
4886 static val* varonce193;
4887 val* var194 /* : String */;
4888 char* var195 /* : CString */;
4889 val* var196 /* : String */;
4890 val* var197 /* : nullable Int */;
4891 val* var198 /* : nullable Int */;
4892 val* var199 /* : nullable Bool */;
4893 val* var200 /* : nullable Bool */;
4894 static val* varonce201;
4895 val* var202 /* : String */;
4896 char* var203 /* : CString */;
4897 val* var204 /* : String */;
4898 val* var205 /* : nullable Int */;
4899 val* var206 /* : nullable Int */;
4900 val* var207 /* : nullable Bool */;
4901 val* var208 /* : nullable Bool */;
4902 static val* varonce209;
4903 val* var210 /* : String */;
4904 char* var211 /* : CString */;
4905 val* var212 /* : String */;
4906 val* var213 /* : nullable Int */;
4907 val* var214 /* : nullable Int */;
4908 val* var215 /* : nullable Bool */;
4909 val* var216 /* : nullable Bool */;
4910 val* var217 /* : String */;
4911 val* var218 /* : String */;
4912 val* var219 /* : String */;
4913 val* var221 /* : MSignature */;
4914 val* var223 /* : MSignature */;
4915 val* var224 /* : nullable MType */;
4916 val* var226 /* : nullable MType */;
4917 val* var228 /* : nullable MType */;
4918 val* var230 /* : nullable MType */;
4919 short int var231 /* : Bool */;
4920 short int var232 /* : Bool */;
4921 short int var234 /* : Bool */;
4922 short int var235 /* : Bool */;
4923 val* var237 /* : MMethod */;
4924 val* var239 /* : MMethod */;
4925 val* var240 /* : MClass */;
4926 val* var242 /* : MClass */;
4927 short int var243 /* : Bool */;
4928 short int var244 /* : Bool */;
4929 val* var246 /* : NativeArray[String] */;
4930 static val* varonce245;
4931 static val* varonce247;
4932 val* var248 /* : String */;
4933 char* var249 /* : CString */;
4934 val* var250 /* : String */;
4935 val* var251 /* : nullable Int */;
4936 val* var252 /* : nullable Int */;
4937 val* var253 /* : nullable Bool */;
4938 val* var254 /* : nullable Bool */;
4939 static val* varonce255;
4940 val* var256 /* : String */;
4941 char* var257 /* : CString */;
4942 val* var258 /* : String */;
4943 val* var259 /* : nullable Int */;
4944 val* var260 /* : nullable Int */;
4945 val* var261 /* : nullable Bool */;
4946 val* var262 /* : nullable Bool */;
4947 val* var263 /* : String */;
4948 val* var264 /* : AExprs */;
4949 val* var266 /* : AExprs */;
4950 val* var267 /* : Array[AExpr] */;
4951 val* var_args /* var args: Array[AExpr] */;
4952 short int var268 /* : Bool */;
4953 var_v = p0;
4954 {
4955 { /* Inline parser_nodes$ANewExpr$n_type (self) on <self:ANewExpr> */
4956 var2 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_type].val; /* _n_type on <self:ANewExpr> */
4957 if (unlikely(var2 == NULL)) {
4958 if(catchStack.cursor >= 0){
4959 longjmp(catchStack.envs[catchStack.cursor], 1);
4960 }
4961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
4962 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2340);
4963 fatal_exit(1);
4964 }
4965 var = var2;
4966 RET_LABEL1:(void)0;
4967 }
4968 }
4969 {
4970 var3 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var);
4971 }
4972 var_recvtype = var3;
4973 if (var_recvtype == NULL) {
4974 var4 = 1; /* is null */
4975 } else {
4976 var4 = 0; /* arg is null but recv is not */
4977 }
4978 if (0) {
4979 { /* Inline kernel$Object$== (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
4980 var_other = ((val*)NULL);
4981 {
4982 { /* Inline kernel$Object$is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
4983 var9 = var_recvtype == var_other;
4984 var7 = var9;
4985 goto RET_LABEL8;
4986 RET_LABEL8:(void)0;
4987 }
4988 }
4989 var5 = var7;
4990 goto RET_LABEL6;
4991 RET_LABEL6:(void)0;
4992 }
4993 var4 = var5;
4994 }
4995 if (var4){
4996 goto RET_LABEL;
4997 } else {
4998 }
4999 /* <var_recvtype:nullable MType(MType)> isa MClassType */
5000 cltype = type_nitc__MClassType.color;
5001 idtype = type_nitc__MClassType.id;
5002 if(cltype >= var_recvtype->type->table_size) {
5003 var10 = 0;
5004 } else {
5005 var10 = var_recvtype->type->type_table[cltype] == idtype;
5006 }
5007 var11 = !var10;
5008 if (var11){
5009 /* <var_recvtype:nullable MType(MType)> isa MNullableType */
5010 cltype13 = type_nitc__MNullableType.color;
5011 idtype14 = type_nitc__MNullableType.id;
5012 if(cltype13 >= var_recvtype->type->table_size) {
5013 var12 = 0;
5014 } else {
5015 var12 = var_recvtype->type->type_table[cltype13] == idtype14;
5016 }
5017 if (var12){
5018 if (unlikely(varonce==NULL)) {
5019 var15 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5020 if (likely(varonce16!=NULL)) {
5021 var17 = varonce16;
5022 } else {
5023 var18 = "Type Error: cannot instantiate the nullable type `";
5024 var20 = (val*)(50l<<2|1);
5025 var21 = (val*)(50l<<2|1);
5026 var22 = (val*)((long)(0)<<2|3);
5027 var23 = (val*)((long)(0)<<2|3);
5028 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
5029 var17 = var19;
5030 varonce16 = var17;
5031 }
5032 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
5033 if (likely(varonce24!=NULL)) {
5034 var25 = varonce24;
5035 } else {
5036 var26 = "`.";
5037 var28 = (val*)(2l<<2|1);
5038 var29 = (val*)(2l<<2|1);
5039 var30 = (val*)((long)(0)<<2|3);
5040 var31 = (val*)((long)(0)<<2|3);
5041 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
5042 var25 = var27;
5043 varonce24 = var25;
5044 }
5045 ((struct instance_core__NativeArray*)var15)->values[2]=var25;
5046 } else {
5047 var15 = varonce;
5048 varonce = NULL;
5049 }
5050 {
5051 var32 = ((val*(*)(val* self))(var_recvtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recvtype); /* to_s on <var_recvtype:nullable MType(MNullableType)>*/
5052 }
5053 ((struct instance_core__NativeArray*)var15)->values[1]=var32;
5054 {
5055 var33 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
5056 }
5057 varonce = var15;
5058 {
5059 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var33); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
5060 }
5061 goto RET_LABEL;
5062 } else {
5063 /* <var_recvtype:nullable MType(MType)> isa MFormalType */
5064 cltype35 = type_nitc__MFormalType.color;
5065 idtype36 = type_nitc__MFormalType.id;
5066 if(cltype35 >= var_recvtype->type->table_size) {
5067 var34 = 0;
5068 } else {
5069 var34 = var_recvtype->type->type_table[cltype35] == idtype36;
5070 }
5071 if (var34){
5072 if (unlikely(varonce37==NULL)) {
5073 var38 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5074 if (likely(varonce39!=NULL)) {
5075 var40 = varonce39;
5076 } else {
5077 var41 = "Type Error: cannot instantiate the formal type `";
5078 var43 = (val*)(48l<<2|1);
5079 var44 = (val*)(48l<<2|1);
5080 var45 = (val*)((long)(0)<<2|3);
5081 var46 = (val*)((long)(0)<<2|3);
5082 var42 = core__flat___CString___to_s_unsafe(var41, var43, var44, var45, var46);
5083 var40 = var42;
5084 varonce39 = var40;
5085 }
5086 ((struct instance_core__NativeArray*)var38)->values[0]=var40;
5087 if (likely(varonce47!=NULL)) {
5088 var48 = varonce47;
5089 } else {
5090 var49 = "`.";
5091 var51 = (val*)(2l<<2|1);
5092 var52 = (val*)(2l<<2|1);
5093 var53 = (val*)((long)(0)<<2|3);
5094 var54 = (val*)((long)(0)<<2|3);
5095 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
5096 var48 = var50;
5097 varonce47 = var48;
5098 }
5099 ((struct instance_core__NativeArray*)var38)->values[2]=var48;
5100 } else {
5101 var38 = varonce37;
5102 varonce37 = NULL;
5103 }
5104 {
5105 var55 = ((val*(*)(val* self))(var_recvtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recvtype); /* to_s on <var_recvtype:nullable MType(MFormalType)>*/
5106 }
5107 ((struct instance_core__NativeArray*)var38)->values[1]=var55;
5108 {
5109 var56 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
5110 }
5111 varonce37 = var38;
5112 {
5113 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var56); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
5114 }
5115 goto RET_LABEL;
5116 } else {
5117 if (unlikely(varonce57==NULL)) {
5118 var58 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5119 if (likely(varonce59!=NULL)) {
5120 var60 = varonce59;
5121 } else {
5122 var61 = "Type Error: cannot instantiate the type `";
5123 var63 = (val*)(41l<<2|1);
5124 var64 = (val*)(41l<<2|1);
5125 var65 = (val*)((long)(0)<<2|3);
5126 var66 = (val*)((long)(0)<<2|3);
5127 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
5128 var60 = var62;
5129 varonce59 = var60;
5130 }
5131 ((struct instance_core__NativeArray*)var58)->values[0]=var60;
5132 if (likely(varonce67!=NULL)) {
5133 var68 = varonce67;
5134 } else {
5135 var69 = "`.";
5136 var71 = (val*)(2l<<2|1);
5137 var72 = (val*)(2l<<2|1);
5138 var73 = (val*)((long)(0)<<2|3);
5139 var74 = (val*)((long)(0)<<2|3);
5140 var70 = core__flat___CString___to_s_unsafe(var69, var71, var72, var73, var74);
5141 var68 = var70;
5142 varonce67 = var68;
5143 }
5144 ((struct instance_core__NativeArray*)var58)->values[2]=var68;
5145 } else {
5146 var58 = varonce57;
5147 varonce57 = NULL;
5148 }
5149 {
5150 var75 = ((val*(*)(val* self))(var_recvtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recvtype); /* to_s on <var_recvtype:nullable MType(MType)>*/
5151 }
5152 ((struct instance_core__NativeArray*)var58)->values[1]=var75;
5153 {
5154 var76 = ((val*(*)(val* self))(var58->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var58); /* native_to_s on <var58:NativeArray[String]>*/
5155 }
5156 varonce57 = var58;
5157 {
5158 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var76); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
5159 }
5160 goto RET_LABEL;
5161 }
5162 }
5163 } else {
5164 }
5165 {
5166 { /* Inline typing$ANewExpr$recvtype= (self,var_recvtype) on <self:ANewExpr> */
5167 self->attrs[COLOR_nitc__typing__ANewExpr___recvtype].val = var_recvtype; /* _recvtype on <self:ANewExpr> */
5168 RET_LABEL77:(void)0;
5169 }
5170 }
5171 {
5172 { /* Inline model$MClassType$mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
5173 var80 = var_recvtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
5174 if (unlikely(var80 == NULL)) {
5175 if(catchStack.cursor >= 0){
5176 longjmp(catchStack.envs[catchStack.cursor], 1);
5177 }
5178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5179 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
5180 fatal_exit(1);
5181 }
5182 var78 = var80;
5183 RET_LABEL79:(void)0;
5184 }
5185 }
5186 {
5187 { /* Inline model$MClass$kind (var78) on <var78:MClass> */
5188 var83 = var78->attrs[COLOR_nitc__model__MClass___kind].val; /* _kind on <var78:MClass> */
5189 if (unlikely(var83 == NULL)) {
5190 if(catchStack.cursor >= 0){
5191 longjmp(catchStack.envs[catchStack.cursor], 1);
5192 }
5193 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _kind");
5194 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 472);
5195 fatal_exit(1);
5196 }
5197 var81 = var83;
5198 RET_LABEL82:(void)0;
5199 }
5200 }
5201 var_kind = var81;
5202 {
5203 { /* Inline parser_nodes$ANewExpr$n_qid (self) on <self:ANewExpr> */
5204 var86 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_qid].val; /* _n_qid on <self:ANewExpr> */
5205 var84 = var86;
5206 RET_LABEL85:(void)0;
5207 }
5208 }
5209 var_nqid = var84;
5210 if (var_nqid == NULL) {
5211 var87 = 0; /* is null */
5212 } else {
5213 var87 = 1; /* arg is null and recv is not */
5214 }
5215 if (0) {
5216 { /* Inline kernel$Object$!= (var_nqid,((val*)NULL)) on <var_nqid:nullable AQid> */
5217 var_other90 = ((val*)NULL);
5218 {
5219 var91 = ((short int(*)(val* self, val* p0))(var_nqid->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nqid, var_other90); /* == on <var_nqid:nullable AQid(AQid)>*/
5220 }
5221 var92 = !var91;
5222 var88 = var92;
5223 goto RET_LABEL89;
5224 RET_LABEL89:(void)0;
5225 }
5226 var87 = var88;
5227 }
5228 if (var87){
5229 {
5230 { /* Inline parser_nodes$AQid$n_id (var_nqid) on <var_nqid:nullable AQid(AQid)> */
5231 var95 = var_nqid->attrs[COLOR_nitc__parser_nodes__AQid___n_id].val; /* _n_id on <var_nqid:nullable AQid(AQid)> */
5232 if (unlikely(var95 == NULL)) {
5233 if(catchStack.cursor >= 0){
5234 longjmp(catchStack.envs[catchStack.cursor], 1);
5235 }
5236 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5237 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1721);
5238 fatal_exit(1);
5239 }
5240 var93 = var95;
5241 RET_LABEL94:(void)0;
5242 }
5243 }
5244 {
5245 var96 = nitc__lexer_work___Token___text(var93);
5246 }
5247 var_name = var96;
5248 var_node = var_nqid;
5249 } else {
5250 if (likely(varonce97!=NULL)) {
5251 var98 = varonce97;
5252 } else {
5253 var99 = "new";
5254 var101 = (val*)(3l<<2|1);
5255 var102 = (val*)(3l<<2|1);
5256 var103 = (val*)((long)(0)<<2|3);
5257 var104 = (val*)((long)(0)<<2|3);
5258 var100 = core__flat___CString___to_s_unsafe(var99, var101, var102, var103, var104);
5259 var98 = var100;
5260 varonce97 = var98;
5261 }
5262 var_name = var98;
5263 {
5264 { /* Inline parser_nodes$ANewExpr$n_kwnew (self) on <self:ANewExpr> */
5265 var107 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_kwnew].val; /* _n_kwnew on <self:ANewExpr> */
5266 if (unlikely(var107 == NULL)) {
5267 if(catchStack.cursor >= 0){
5268 longjmp(catchStack.envs[catchStack.cursor], 1);
5269 }
5270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_kwnew");
5271 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2337);
5272 fatal_exit(1);
5273 }
5274 var105 = var107;
5275 RET_LABEL106:(void)0;
5276 }
5277 }
5278 var_node = var105;
5279 }
5280 if (likely(varonce108!=NULL)) {
5281 var109 = varonce108;
5282 } else {
5283 var110 = "intern";
5284 var112 = (val*)(6l<<2|1);
5285 var113 = (val*)(6l<<2|1);
5286 var114 = (val*)((long)(0)<<2|3);
5287 var115 = (val*)((long)(0)<<2|3);
5288 var111 = core__flat___CString___to_s_unsafe(var110, var112, var113, var114, var115);
5289 var109 = var111;
5290 varonce108 = var109;
5291 }
5292 {
5293 var116 = ((short int(*)(val* self, val* p0))(var_name->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_name, var109); /* == on <var_name:String>*/
5294 }
5295 if (var116){
5296 var117 = glob_sys;
5297 {
5298 var118 = nitc__model___core__Sys___concrete_kind(var117);
5299 }
5300 {
5301 { /* Inline kernel$Object$!= (var_kind,var118) on <var_kind:MClassKind> */
5302 var_other90 = var118;
5303 {
5304 var121 = ((short int(*)(val* self, val* p0))(var_kind->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_kind, var_other90); /* == on <var_kind:MClassKind>*/
5305 }
5306 var122 = !var121;
5307 var119 = var122;
5308 goto RET_LABEL120;
5309 RET_LABEL120:(void)0;
5310 }
5311 }
5312 if (var119){
5313 if (unlikely(varonce123==NULL)) {
5314 var124 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5315 if (likely(varonce125!=NULL)) {
5316 var126 = varonce125;
5317 } else {
5318 var127 = "Type Error: cannot instantiate ";
5319 var129 = (val*)(31l<<2|1);
5320 var130 = (val*)(31l<<2|1);
5321 var131 = (val*)((long)(0)<<2|3);
5322 var132 = (val*)((long)(0)<<2|3);
5323 var128 = core__flat___CString___to_s_unsafe(var127, var129, var130, var131, var132);
5324 var126 = var128;
5325 varonce125 = var126;
5326 }
5327 ((struct instance_core__NativeArray*)var124)->values[0]=var126;
5328 if (likely(varonce133!=NULL)) {
5329 var134 = varonce133;
5330 } else {
5331 var135 = " ";
5332 var137 = (val*)(1l<<2|1);
5333 var138 = (val*)(1l<<2|1);
5334 var139 = (val*)((long)(0)<<2|3);
5335 var140 = (val*)((long)(0)<<2|3);
5336 var136 = core__flat___CString___to_s_unsafe(var135, var137, var138, var139, var140);
5337 var134 = var136;
5338 varonce133 = var134;
5339 }
5340 ((struct instance_core__NativeArray*)var124)->values[2]=var134;
5341 if (likely(varonce141!=NULL)) {
5342 var142 = varonce141;
5343 } else {
5344 var143 = ".";
5345 var145 = (val*)(1l<<2|1);
5346 var146 = (val*)(1l<<2|1);
5347 var147 = (val*)((long)(0)<<2|3);
5348 var148 = (val*)((long)(0)<<2|3);
5349 var144 = core__flat___CString___to_s_unsafe(var143, var145, var146, var147, var148);
5350 var142 = var144;
5351 varonce141 = var142;
5352 }
5353 ((struct instance_core__NativeArray*)var124)->values[4]=var142;
5354 } else {
5355 var124 = varonce123;
5356 varonce123 = NULL;
5357 }
5358 {
5359 var149 = ((val*(*)(val* self))(var_kind->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_kind); /* to_s on <var_kind:MClassKind>*/
5360 }
5361 ((struct instance_core__NativeArray*)var124)->values[1]=var149;
5362 {
5363 var150 = ((val*(*)(val* self))(var_recvtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recvtype); /* to_s on <var_recvtype:nullable MType(MClassType)>*/
5364 }
5365 ((struct instance_core__NativeArray*)var124)->values[3]=var150;
5366 {
5367 var151 = ((val*(*)(val* self))(var124->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var124); /* native_to_s on <var124:NativeArray[String]>*/
5368 }
5369 varonce123 = var124;
5370 {
5371 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var151); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
5372 }
5373 goto RET_LABEL;
5374 } else {
5375 }
5376 {
5377 { /* Inline parser_nodes$ANewExpr$n_args (self) on <self:ANewExpr> */
5378 var154 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
5379 if (unlikely(var154 == NULL)) {
5380 if(catchStack.cursor >= 0){
5381 longjmp(catchStack.envs[catchStack.cursor], 1);
5382 }
5383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5384 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2346);
5385 fatal_exit(1);
5386 }
5387 var152 = var154;
5388 RET_LABEL153:(void)0;
5389 }
5390 }
5391 {
5392 { /* Inline parser_nodes$AExprs$n_exprs (var152) on <var152:AExprs> */
5393 var157 = var152->attrs[COLOR_nitc__parser_nodes__AExprs___n_exprs].val; /* _n_exprs on <var152:AExprs> */
5394 if (unlikely(var157 == NULL)) {
5395 if(catchStack.cursor >= 0){
5396 longjmp(catchStack.envs[catchStack.cursor], 1);
5397 }
5398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
5399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2790);
5400 fatal_exit(1);
5401 }
5402 var155 = var157;
5403 RET_LABEL156:(void)0;
5404 }
5405 }
5406 {
5407 var158 = core___core__Collection___not_empty(var155);
5408 }
5409 if (var158){
5410 {
5411 { /* Inline parser_nodes$ANewExpr$n_args (self) on <self:ANewExpr> */
5412 var161 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
5413 if (unlikely(var161 == NULL)) {
5414 if(catchStack.cursor >= 0){
5415 longjmp(catchStack.envs[catchStack.cursor], 1);
5416 }
5417 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5418 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2346);
5419 fatal_exit(1);
5420 }
5421 var159 = var161;
5422 RET_LABEL160:(void)0;
5423 }
5424 }
5425 if (likely(varonce162!=NULL)) {
5426 var163 = varonce162;
5427 } else {
5428 var164 = "Type Error: the intern constructor expects no arguments.";
5429 var166 = (val*)(56l<<2|1);
5430 var167 = (val*)(56l<<2|1);
5431 var168 = (val*)((long)(0)<<2|3);
5432 var169 = (val*)((long)(0)<<2|3);
5433 var165 = core__flat___CString___to_s_unsafe(var164, var166, var167, var168, var169);
5434 var163 = var165;
5435 varonce162 = var163;
5436 }
5437 {
5438 nitc__typing___nitc__typing__TypeVisitor___error(var_v, var159, var163); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
5439 }
5440 goto RET_LABEL;
5441 } else {
5442 }
5443 {
5444 { /* Inline typing$AExpr$mtype= (self,var_recvtype) on <self:ANewExpr> */
5445 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_recvtype; /* _mtype on <self:ANewExpr> */
5446 RET_LABEL170:(void)0;
5447 }
5448 }
5449 goto RET_LABEL;
5450 } else {
5451 }
5452 {
5453 var171 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var_node, var_recvtype, var_name, 0);
5454 }
5455 var_callsite = var171;
5456 if (var_callsite == NULL) {
5457 var172 = 1; /* is null */
5458 } else {
5459 var172 = 0; /* arg is null but recv is not */
5460 }
5461 if (0) {
5462 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
5463 var_other = ((val*)NULL);
5464 {
5465 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
5466 var177 = var_callsite == var_other;
5467 var175 = var177;
5468 goto RET_LABEL176;
5469 RET_LABEL176:(void)0;
5470 }
5471 }
5472 var173 = var175;
5473 goto RET_LABEL174;
5474 RET_LABEL174:(void)0;
5475 }
5476 var172 = var173;
5477 }
5478 if (var172){
5479 goto RET_LABEL;
5480 } else {
5481 }
5482 {
5483 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5484 var180 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
5485 if (unlikely(var180 == NULL)) {
5486 if(catchStack.cursor >= 0){
5487 longjmp(catchStack.envs[catchStack.cursor], 1);
5488 }
5489 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5490 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
5491 fatal_exit(1);
5492 }
5493 var178 = var180;
5494 RET_LABEL179:(void)0;
5495 }
5496 }
5497 {
5498 { /* Inline model$MMethod$is_new (var178) on <var178:MMethod> */
5499 var183 = var178->attrs[COLOR_nitc__model__MMethod___is_new].s; /* _is_new on <var178:MMethod> */
5500 var181 = var183;
5501 RET_LABEL182:(void)0;
5502 }
5503 }
5504 var184 = !var181;
5505 if (var184){
5506 var185 = glob_sys;
5507 {
5508 var186 = nitc__model___core__Sys___concrete_kind(var185);
5509 }
5510 {
5511 { /* Inline kernel$Object$!= (var_kind,var186) on <var_kind:MClassKind> */
5512 var_other90 = var186;
5513 {
5514 var189 = ((short int(*)(val* self, val* p0))(var_kind->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_kind, var_other90); /* == on <var_kind:MClassKind>*/
5515 }
5516 var190 = !var189;
5517 var187 = var190;
5518 goto RET_LABEL188;
5519 RET_LABEL188:(void)0;
5520 }
5521 }
5522 if (var187){
5523 if (unlikely(varonce191==NULL)) {
5524 var192 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
5525 if (likely(varonce193!=NULL)) {
5526 var194 = varonce193;
5527 } else {
5528 var195 = "Type Error: cannot instantiate ";
5529 var197 = (val*)(31l<<2|1);
5530 var198 = (val*)(31l<<2|1);
5531 var199 = (val*)((long)(0)<<2|3);
5532 var200 = (val*)((long)(0)<<2|3);
5533 var196 = core__flat___CString___to_s_unsafe(var195, var197, var198, var199, var200);
5534 var194 = var196;
5535 varonce193 = var194;
5536 }
5537 ((struct instance_core__NativeArray*)var192)->values[0]=var194;
5538 if (likely(varonce201!=NULL)) {
5539 var202 = varonce201;
5540 } else {
5541 var203 = " `";
5542 var205 = (val*)(2l<<2|1);
5543 var206 = (val*)(2l<<2|1);
5544 var207 = (val*)((long)(0)<<2|3);
5545 var208 = (val*)((long)(0)<<2|3);
5546 var204 = core__flat___CString___to_s_unsafe(var203, var205, var206, var207, var208);
5547 var202 = var204;
5548 varonce201 = var202;
5549 }
5550 ((struct instance_core__NativeArray*)var192)->values[2]=var202;
5551 if (likely(varonce209!=NULL)) {
5552 var210 = varonce209;
5553 } else {
5554 var211 = "`.";
5555 var213 = (val*)(2l<<2|1);
5556 var214 = (val*)(2l<<2|1);
5557 var215 = (val*)((long)(0)<<2|3);
5558 var216 = (val*)((long)(0)<<2|3);
5559 var212 = core__flat___CString___to_s_unsafe(var211, var213, var214, var215, var216);
5560 var210 = var212;
5561 varonce209 = var210;
5562 }
5563 ((struct instance_core__NativeArray*)var192)->values[4]=var210;
5564 } else {
5565 var192 = varonce191;
5566 varonce191 = NULL;
5567 }
5568 {
5569 var217 = ((val*(*)(val* self))(var_kind->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_kind); /* to_s on <var_kind:MClassKind>*/
5570 }
5571 ((struct instance_core__NativeArray*)var192)->values[1]=var217;
5572 {
5573 var218 = ((val*(*)(val* self))(var_recvtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recvtype); /* to_s on <var_recvtype:nullable MType(MClassType)>*/
5574 }
5575 ((struct instance_core__NativeArray*)var192)->values[3]=var218;
5576 {
5577 var219 = ((val*(*)(val* self))(var192->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var192); /* native_to_s on <var192:NativeArray[String]>*/
5578 }
5579 varonce191 = var192;
5580 {
5581 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var219); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
5582 }
5583 goto RET_LABEL;
5584 } else {
5585 }
5586 {
5587 { /* Inline typing$AExpr$mtype= (self,var_recvtype) on <self:ANewExpr> */
5588 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_recvtype; /* _mtype on <self:ANewExpr> */
5589 RET_LABEL220:(void)0;
5590 }
5591 }
5592 } else {
5593 {
5594 { /* Inline typing$CallSite$msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5595 var223 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
5596 if (unlikely(var223 == NULL)) {
5597 if(catchStack.cursor >= 0){
5598 longjmp(catchStack.envs[catchStack.cursor], 1);
5599 }
5600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
5601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
5602 fatal_exit(1);
5603 }
5604 var221 = var223;
5605 RET_LABEL222:(void)0;
5606 }
5607 }
5608 {
5609 { /* Inline model$MSignature$return_mtype (var221) on <var221:MSignature> */
5610 var226 = var221->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var221:MSignature> */
5611 var224 = var226;
5612 RET_LABEL225:(void)0;
5613 }
5614 }
5615 {
5616 { /* Inline typing$AExpr$mtype= (self,var224) on <self:ANewExpr> */
5617 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var224; /* _mtype on <self:ANewExpr> */
5618 RET_LABEL227:(void)0;
5619 }
5620 }
5621 {
5622 { /* Inline typing$AExpr$mtype (self) on <self:ANewExpr> */
5623 var230 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:ANewExpr> */
5624 var228 = var230;
5625 RET_LABEL229:(void)0;
5626 }
5627 }
5628 if (var228 == NULL) {
5629 var231 = 0; /* is null */
5630 } else {
5631 var231 = 1; /* arg is null and recv is not */
5632 }
5633 if (0) {
5634 { /* Inline kernel$Object$!= (var228,((val*)NULL)) on <var228:nullable MType> */
5635 var_other90 = ((val*)NULL);
5636 {
5637 var234 = ((short int(*)(val* self, val* p0))(var228->class->vft[COLOR_core__kernel__Object___61d_61d]))(var228, var_other90); /* == on <var228:nullable MType(MType)>*/
5638 }
5639 var235 = !var234;
5640 var232 = var235;
5641 goto RET_LABEL233;
5642 RET_LABEL233:(void)0;
5643 }
5644 var231 = var232;
5645 }
5646 if (unlikely(!var231)) {
5647 if(catchStack.cursor >= 0){
5648 longjmp(catchStack.envs[catchStack.cursor], 1);
5649 }
5650 PRINT_ERROR("Runtime error: %s", "Assert failed");
5651 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2219);
5652 fatal_exit(1);
5653 }
5654 }
5655 {
5656 { /* Inline typing$ANewExpr$callsite= (self,var_callsite) on <self:ANewExpr> */
5657 self->attrs[COLOR_nitc__typing__ANewExpr___callsite].val = var_callsite; /* _callsite on <self:ANewExpr> */
5658 RET_LABEL236:(void)0;
5659 }
5660 }
5661 {
5662 { /* Inline typing$CallSite$mproperty (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
5663 var239 = var_callsite->attrs[COLOR_nitc__typing__CallSite___mproperty].val; /* _mproperty on <var_callsite:nullable CallSite(CallSite)> */
5664 if (unlikely(var239 == NULL)) {
5665 if(catchStack.cursor >= 0){
5666 longjmp(catchStack.envs[catchStack.cursor], 1);
5667 }
5668 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
5669 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 656);
5670 fatal_exit(1);
5671 }
5672 var237 = var239;
5673 RET_LABEL238:(void)0;
5674 }
5675 }
5676 {
5677 { /* Inline model$MClassType$mclass (var_recvtype) on <var_recvtype:nullable MType(MClassType)> */
5678 var242 = var_recvtype->attrs[COLOR_nitc__model__MClassType___mclass].val; /* _mclass on <var_recvtype:nullable MType(MClassType)> */
5679 if (unlikely(var242 == NULL)) {
5680 if(catchStack.cursor >= 0){
5681 longjmp(catchStack.envs[catchStack.cursor], 1);
5682 }
5683 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
5684 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1197);
5685 fatal_exit(1);
5686 }
5687 var240 = var242;
5688 RET_LABEL241:(void)0;
5689 }
5690 }
5691 {
5692 var243 = nitc___nitc__MMethod___is_init_for(var237, var240);
5693 }
5694 var244 = !var243;
5695 if (var244){
5696 if (unlikely(varonce245==NULL)) {
5697 var246 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5698 if (likely(varonce247!=NULL)) {
5699 var248 = varonce247;
5700 } else {
5701 var249 = "Error: `";
5702 var251 = (val*)(8l<<2|1);
5703 var252 = (val*)(8l<<2|1);
5704 var253 = (val*)((long)(0)<<2|3);
5705 var254 = (val*)((long)(0)<<2|3);
5706 var250 = core__flat___CString___to_s_unsafe(var249, var251, var252, var253, var254);
5707 var248 = var250;
5708 varonce247 = var248;
5709 }
5710 ((struct instance_core__NativeArray*)var246)->values[0]=var248;
5711 if (likely(varonce255!=NULL)) {
5712 var256 = varonce255;
5713 } else {
5714 var257 = "` is not a constructor.";
5715 var259 = (val*)(23l<<2|1);
5716 var260 = (val*)(23l<<2|1);
5717 var261 = (val*)((long)(0)<<2|3);
5718 var262 = (val*)((long)(0)<<2|3);
5719 var258 = core__flat___CString___to_s_unsafe(var257, var259, var260, var261, var262);
5720 var256 = var258;
5721 varonce255 = var256;
5722 }
5723 ((struct instance_core__NativeArray*)var246)->values[2]=var256;
5724 } else {
5725 var246 = varonce245;
5726 varonce245 = NULL;
5727 }
5728 ((struct instance_core__NativeArray*)var246)->values[1]=var_name;
5729 {
5730 var263 = ((val*(*)(val* self))(var246->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var246); /* native_to_s on <var246:NativeArray[String]>*/
5731 }
5732 varonce245 = var246;
5733 {
5734 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var263); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
5735 }
5736 goto RET_LABEL;
5737 } else {
5738 }
5739 {
5740 { /* Inline parser_nodes$ANewExpr$n_args (self) on <self:ANewExpr> */
5741 var266 = self->attrs[COLOR_nitc__parser_nodes__ANewExpr___n_args].val; /* _n_args on <self:ANewExpr> */
5742 if (unlikely(var266 == NULL)) {
5743 if(catchStack.cursor >= 0){
5744 longjmp(catchStack.envs[catchStack.cursor], 1);
5745 }
5746 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_args");
5747 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2346);
5748 fatal_exit(1);
5749 }
5750 var264 = var266;
5751 RET_LABEL265:(void)0;
5752 }
5753 }
5754 {
5755 var267 = nitc__typing___AExprs___to_a(var264);
5756 }
5757 var_args = var267;
5758 {
5759 var268 = nitc___nitc__CallSite___check_signature(var_callsite, var_v, var_node, var_args);
5760 }
5761 RET_LABEL:;
5762 }
5763 /* method typing$AAttrFormExpr$mproperty for (self: AAttrFormExpr): nullable MAttribute */
5764 val* nitc__typing___AAttrFormExpr___mproperty(val* self) {
5765 val* var /* : nullable MAttribute */;
5766 val* var1 /* : nullable MAttribute */;
5767 var1 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val; /* _mproperty on <self:AAttrFormExpr> */
5768 var = var1;
5769 RET_LABEL:;
5770 return var;
5771 }
5772 /* method typing$AAttrFormExpr$mproperty= for (self: AAttrFormExpr, nullable MAttribute) */
5773 void nitc__typing___AAttrFormExpr___mproperty_61d(val* self, val* p0) {
5774 self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val = p0; /* _mproperty on <self:AAttrFormExpr> */
5775 RET_LABEL:;
5776 }
5777 /* method typing$AAttrFormExpr$attr_type for (self: AAttrFormExpr): nullable MType */
5778 val* nitc__typing___AAttrFormExpr___attr_type(val* self) {
5779 val* var /* : nullable MType */;
5780 val* var1 /* : nullable MType */;
5781 var1 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___attr_type].val; /* _attr_type on <self:AAttrFormExpr> */
5782 var = var1;
5783 RET_LABEL:;
5784 return var;
5785 }
5786 /* method typing$AAttrFormExpr$attr_type= for (self: AAttrFormExpr, nullable MType) */
5787 void nitc__typing___AAttrFormExpr___attr_type_61d(val* self, val* p0) {
5788 self->attrs[COLOR_nitc__typing__AAttrFormExpr___attr_type].val = p0; /* _attr_type on <self:AAttrFormExpr> */
5789 RET_LABEL:;
5790 }
5791 /* method typing$AAttrFormExpr$resolve_property for (self: AAttrFormExpr, TypeVisitor) */
5792 void nitc__typing___AAttrFormExpr___resolve_property(val* self, val* p0) {
5793 val* var_v /* var v: TypeVisitor */;
5794 val* var /* : AExpr */;
5795 val* var2 /* : AExpr */;
5796 val* var3 /* : nullable MType */;
5797 val* var_recvtype /* var recvtype: nullable MType */;
5798 short int var4 /* : Bool */;
5799 short int var5 /* : Bool */;
5800 val* var_other /* var other: nullable Object */;
5801 short int var7 /* : Bool */;
5802 short int var9 /* : Bool */;
5803 val* var10 /* : TAttrid */;
5804 val* var12 /* : TAttrid */;
5805 val* var_node /* var node: TAttrid */;
5806 val* var13 /* : String */;
5807 val* var_name /* var name: String */;
5808 short int var14 /* : Bool */;
5809 int cltype;
5810 int idtype;
5811 val* var15 /* : NativeArray[String] */;
5812 static val* varonce;
5813 static val* varonce16;
5814 val* var17 /* : String */;
5815 char* var18 /* : CString */;
5816 val* var19 /* : String */;
5817 val* var20 /* : nullable Int */;
5818 val* var21 /* : nullable Int */;
5819 val* var22 /* : nullable Bool */;
5820 val* var23 /* : nullable Bool */;
5821 static val* varonce24;
5822 val* var25 /* : String */;
5823 char* var26 /* : CString */;
5824 val* var27 /* : String */;
5825 val* var28 /* : nullable Int */;
5826 val* var29 /* : nullable Int */;
5827 val* var30 /* : nullable Bool */;
5828 val* var31 /* : nullable Bool */;
5829 val* var32 /* : String */;
5830 val* var33 /* : MType */;
5831 val* var_unsafe_type /* var unsafe_type: MType */;
5832 val* var34 /* : nullable MProperty */;
5833 val* var_mproperty /* var mproperty: nullable MProperty */;
5834 short int var35 /* : Bool */;
5835 short int var36 /* : Bool */;
5836 short int var38 /* : Bool */;
5837 short int var40 /* : Bool */;
5838 val* var41 /* : ModelBuilder */;
5839 val* var43 /* : ModelBuilder */;
5840 val* var45 /* : NativeArray[String] */;
5841 static val* varonce44;
5842 static val* varonce46;
5843 val* var47 /* : String */;
5844 char* var48 /* : CString */;
5845 val* var49 /* : String */;
5846 val* var50 /* : nullable Int */;
5847 val* var51 /* : nullable Int */;
5848 val* var52 /* : nullable Bool */;
5849 val* var53 /* : nullable Bool */;
5850 static val* varonce54;
5851 val* var55 /* : String */;
5852 char* var56 /* : CString */;
5853 val* var57 /* : String */;
5854 val* var58 /* : nullable Int */;
5855 val* var59 /* : nullable Int */;
5856 val* var60 /* : nullable Bool */;
5857 val* var61 /* : nullable Bool */;
5858 static val* varonce62;
5859 val* var63 /* : String */;
5860 char* var64 /* : CString */;
5861 val* var65 /* : String */;
5862 val* var66 /* : nullable Int */;
5863 val* var67 /* : nullable Int */;
5864 val* var68 /* : nullable Bool */;
5865 val* var69 /* : nullable Bool */;
5866 val* var70 /* : String */;
5867 val* var71 /* : String */;
5868 short int var72 /* : Bool */;
5869 int cltype73;
5870 int idtype74;
5871 val* var76 /* : MModule */;
5872 val* var78 /* : MModule */;
5873 val* var79 /* : Array[MPropDef] */;
5874 val* var_mpropdefs /* var mpropdefs: Array[MAttributeDef] */;
5875 long var80 /* : Int */;
5876 long var82 /* : Int */;
5877 short int var83 /* : Bool */;
5878 short int var85 /* : Bool */;
5879 val* var86 /* : nullable Object */;
5880 val* var_mpropdef /* var mpropdef: MAttributeDef */;
5881 val* var87 /* : nullable MType */;
5882 val* var89 /* : nullable MType */;
5883 val* var_attr_type /* var attr_type: nullable MType */;
5884 short int var90 /* : Bool */;
5885 short int var91 /* : Bool */;
5886 short int var93 /* : Bool */;
5887 short int var95 /* : Bool */;
5888 val* var96 /* : AExpr */;
5889 val* var98 /* : AExpr */;
5890 short int var99 /* : Bool */;
5891 int cltype100;
5892 int idtype101;
5893 val* var102 /* : MType */;
5894 var_v = p0;
5895 {
5896 { /* Inline parser_nodes$AAttrFormExpr$n_expr (self) on <self:AAttrFormExpr> */
5897 var2 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrFormExpr> */
5898 if (unlikely(var2 == NULL)) {
5899 if(catchStack.cursor >= 0){
5900 longjmp(catchStack.envs[catchStack.cursor], 1);
5901 }
5902 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5903 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2354);
5904 fatal_exit(1);
5905 }
5906 var = var2;
5907 RET_LABEL1:(void)0;
5908 }
5909 }
5910 {
5911 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
5912 }
5913 var_recvtype = var3;
5914 if (var_recvtype == NULL) {
5915 var4 = 1; /* is null */
5916 } else {
5917 var4 = 0; /* arg is null but recv is not */
5918 }
5919 if (0) {
5920 { /* Inline kernel$Object$== (var_recvtype,((val*)NULL)) on <var_recvtype:nullable MType> */
5921 var_other = ((val*)NULL);
5922 {
5923 { /* Inline kernel$Object$is_same_instance (var_recvtype,var_other) on <var_recvtype:nullable MType(MType)> */
5924 var9 = var_recvtype == var_other;
5925 var7 = var9;
5926 goto RET_LABEL8;
5927 RET_LABEL8:(void)0;
5928 }
5929 }
5930 var5 = var7;
5931 goto RET_LABEL6;
5932 RET_LABEL6:(void)0;
5933 }
5934 var4 = var5;
5935 }
5936 if (var4){
5937 goto RET_LABEL;
5938 } else {
5939 }
5940 {
5941 { /* Inline parser_nodes$AAttrFormExpr$n_id (self) on <self:AAttrFormExpr> */
5942 var12 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AAttrFormExpr> */
5943 if (unlikely(var12 == NULL)) {
5944 if(catchStack.cursor >= 0){
5945 longjmp(catchStack.envs[catchStack.cursor], 1);
5946 }
5947 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5948 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2357);
5949 fatal_exit(1);
5950 }
5951 var10 = var12;
5952 RET_LABEL11:(void)0;
5953 }
5954 }
5955 var_node = var10;
5956 {
5957 var13 = nitc__lexer_work___Token___text(var_node);
5958 }
5959 var_name = var13;
5960 /* <var_recvtype:nullable MType(MType)> isa MNullType */
5961 cltype = type_nitc__MNullType.color;
5962 idtype = type_nitc__MNullType.id;
5963 if(cltype >= var_recvtype->type->table_size) {
5964 var14 = 0;
5965 } else {
5966 var14 = var_recvtype->type->type_table[cltype] == idtype;
5967 }
5968 if (var14){
5969 if (unlikely(varonce==NULL)) {
5970 var15 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
5971 if (likely(varonce16!=NULL)) {
5972 var17 = varonce16;
5973 } else {
5974 var18 = "Error: attribute `";
5975 var20 = (val*)(18l<<2|1);
5976 var21 = (val*)(18l<<2|1);
5977 var22 = (val*)((long)(0)<<2|3);
5978 var23 = (val*)((long)(0)<<2|3);
5979 var19 = core__flat___CString___to_s_unsafe(var18, var20, var21, var22, var23);
5980 var17 = var19;
5981 varonce16 = var17;
5982 }
5983 ((struct instance_core__NativeArray*)var15)->values[0]=var17;
5984 if (likely(varonce24!=NULL)) {
5985 var25 = varonce24;
5986 } else {
5987 var26 = "` access on `null`.";
5988 var28 = (val*)(19l<<2|1);
5989 var29 = (val*)(19l<<2|1);
5990 var30 = (val*)((long)(0)<<2|3);
5991 var31 = (val*)((long)(0)<<2|3);
5992 var27 = core__flat___CString___to_s_unsafe(var26, var28, var29, var30, var31);
5993 var25 = var27;
5994 varonce24 = var25;
5995 }
5996 ((struct instance_core__NativeArray*)var15)->values[2]=var25;
5997 } else {
5998 var15 = varonce;
5999 varonce = NULL;
6000 }
6001 ((struct instance_core__NativeArray*)var15)->values[1]=var_name;
6002 {
6003 var32 = ((val*(*)(val* self))(var15->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var15); /* native_to_s on <var15:NativeArray[String]>*/
6004 }
6005 varonce = var15;
6006 {
6007 nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_node, var32); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
6008 }
6009 goto RET_LABEL;
6010 } else {
6011 }
6012 {
6013 var33 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_recvtype);
6014 }
6015 var_unsafe_type = var33;
6016 {
6017 var34 = nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(var_v, var_node, var_unsafe_type, var_name);
6018 }
6019 var_mproperty = var34;
6020 if (var_mproperty == NULL) {
6021 var35 = 1; /* is null */
6022 } else {
6023 var35 = 0; /* arg is null but recv is not */
6024 }
6025 if (0) {
6026 { /* Inline kernel$Object$== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
6027 var_other = ((val*)NULL);
6028 {
6029 { /* Inline kernel$Object$is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
6030 var40 = var_mproperty == var_other;
6031 var38 = var40;
6032 goto RET_LABEL39;
6033 RET_LABEL39:(void)0;
6034 }
6035 }
6036 var36 = var38;
6037 goto RET_LABEL37;
6038 RET_LABEL37:(void)0;
6039 }
6040 var35 = var36;
6041 }
6042 if (var35){
6043 {
6044 { /* Inline typing$TypeVisitor$modelbuilder (var_v) on <var_v:TypeVisitor> */
6045 var43 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on <var_v:TypeVisitor> */
6046 if (unlikely(var43 == NULL)) {
6047 if(catchStack.cursor >= 0){
6048 longjmp(catchStack.envs[catchStack.cursor], 1);
6049 }
6050 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6051 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35);
6052 fatal_exit(1);
6053 }
6054 var41 = var43;
6055 RET_LABEL42:(void)0;
6056 }
6057 }
6058 if (unlikely(varonce44==NULL)) {
6059 var45 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
6060 if (likely(varonce46!=NULL)) {
6061 var47 = varonce46;
6062 } else {
6063 var48 = "Error: attribute `";
6064 var50 = (val*)(18l<<2|1);
6065 var51 = (val*)(18l<<2|1);
6066 var52 = (val*)((long)(0)<<2|3);
6067 var53 = (val*)((long)(0)<<2|3);
6068 var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53);
6069 var47 = var49;
6070 varonce46 = var47;
6071 }
6072 ((struct instance_core__NativeArray*)var45)->values[0]=var47;
6073 if (likely(varonce54!=NULL)) {
6074 var55 = varonce54;
6075 } else {
6076 var56 = "` does not exist in `";
6077 var58 = (val*)(21l<<2|1);
6078 var59 = (val*)(21l<<2|1);
6079 var60 = (val*)((long)(0)<<2|3);
6080 var61 = (val*)((long)(0)<<2|3);
6081 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
6082 var55 = var57;
6083 varonce54 = var55;
6084 }
6085 ((struct instance_core__NativeArray*)var45)->values[2]=var55;
6086 if (likely(varonce62!=NULL)) {
6087 var63 = varonce62;
6088 } else {
6089 var64 = "`.";
6090 var66 = (val*)(2l<<2|1);
6091 var67 = (val*)(2l<<2|1);
6092 var68 = (val*)((long)(0)<<2|3);
6093 var69 = (val*)((long)(0)<<2|3);
6094 var65 = core__flat___CString___to_s_unsafe(var64, var66, var67, var68, var69);
6095 var63 = var65;
6096 varonce62 = var63;
6097 }
6098 ((struct instance_core__NativeArray*)var45)->values[4]=var63;
6099 } else {
6100 var45 = varonce44;
6101 varonce44 = NULL;
6102 }
6103 ((struct instance_core__NativeArray*)var45)->values[1]=var_name;
6104 {
6105 var70 = ((val*(*)(val* self))(var_recvtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_recvtype); /* to_s on <var_recvtype:nullable MType(MType)>*/
6106 }
6107 ((struct instance_core__NativeArray*)var45)->values[3]=var70;
6108 {
6109 var71 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var45); /* native_to_s on <var45:NativeArray[String]>*/
6110 }
6111 varonce44 = var45;
6112 {
6113 nitc___nitc__ModelBuilder___error(var41, var_node, var71); /* Direct call modelbuilder_base$ModelBuilder$error on <var41:ModelBuilder>*/
6114 }
6115 goto RET_LABEL;
6116 } else {
6117 }
6118 /* <var_mproperty:nullable MProperty(MProperty)> isa MAttribute */
6119 cltype73 = type_nitc__MAttribute.color;
6120 idtype74 = type_nitc__MAttribute.id;
6121 if(cltype73 >= var_mproperty->type->table_size) {
6122 var72 = 0;
6123 } else {
6124 var72 = var_mproperty->type->type_table[cltype73] == idtype74;
6125 }
6126 if (unlikely(!var72)) {
6127 if(catchStack.cursor >= 0){
6128 longjmp(catchStack.envs[catchStack.cursor], 1);
6129 }
6130 PRINT_ERROR("Runtime error: %s", "Assert failed");
6131 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2270);
6132 fatal_exit(1);
6133 }
6134 {
6135 { /* Inline typing$AAttrFormExpr$mproperty= (self,var_mproperty) on <self:AAttrFormExpr> */
6136 self->attrs[COLOR_nitc__typing__AAttrFormExpr___mproperty].val = var_mproperty; /* _mproperty on <self:AAttrFormExpr> */
6137 RET_LABEL75:(void)0;
6138 }
6139 }
6140 {
6141 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
6142 var78 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
6143 if (unlikely(var78 == NULL)) {
6144 if(catchStack.cursor >= 0){
6145 longjmp(catchStack.envs[catchStack.cursor], 1);
6146 }
6147 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6148 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
6149 fatal_exit(1);
6150 }
6151 var76 = var78;
6152 RET_LABEL77:(void)0;
6153 }
6154 }
6155 {
6156 var79 = nitc___nitc__MProperty___lookup_definitions(var_mproperty, var76, var_unsafe_type);
6157 }
6158 var_mpropdefs = var79;
6159 {
6160 { /* Inline array$AbstractArrayRead$length (var_mpropdefs) on <var_mpropdefs:Array[MAttributeDef]> */
6161 var82 = var_mpropdefs->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_mpropdefs:Array[MAttributeDef]> */
6162 var80 = var82;
6163 RET_LABEL81:(void)0;
6164 }
6165 }
6166 {
6167 { /* Inline kernel$Int$== (var80,1l) on <var80:Int> */
6168 var85 = var80 == 1l;
6169 var83 = var85;
6170 goto RET_LABEL84;
6171 RET_LABEL84:(void)0;
6172 }
6173 }
6174 if (unlikely(!var83)) {
6175 if(catchStack.cursor >= 0){
6176 longjmp(catchStack.envs[catchStack.cursor], 1);
6177 }
6178 PRINT_ERROR("Runtime error: %s", "Assert failed");
6179 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2274);
6180 fatal_exit(1);
6181 }
6182 {
6183 var86 = core___core__SequenceRead___Collection__first(var_mpropdefs);
6184 }
6185 var_mpropdef = var86;
6186 {
6187 { /* Inline model$MAttributeDef$static_mtype (var_mpropdef) on <var_mpropdef:MAttributeDef> */
6188 var89 = var_mpropdef->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var_mpropdef:MAttributeDef> */
6189 var87 = var89;
6190 RET_LABEL88:(void)0;
6191 }
6192 }
6193 var_attr_type = var87;
6194 if (var_attr_type == NULL) {
6195 var90 = 1; /* is null */
6196 } else {
6197 var90 = 0; /* arg is null but recv is not */
6198 }
6199 if (0) {
6200 { /* Inline kernel$Object$== (var_attr_type,((val*)NULL)) on <var_attr_type:nullable MType> */
6201 var_other = ((val*)NULL);
6202 {
6203 { /* Inline kernel$Object$is_same_instance (var_attr_type,var_other) on <var_attr_type:nullable MType(MType)> */
6204 var95 = var_attr_type == var_other;
6205 var93 = var95;
6206 goto RET_LABEL94;
6207 RET_LABEL94:(void)0;
6208 }
6209 }
6210 var91 = var93;
6211 goto RET_LABEL92;
6212 RET_LABEL92:(void)0;
6213 }
6214 var90 = var91;
6215 }
6216 if (var90){
6217 goto RET_LABEL;
6218 } else {
6219 }
6220 {
6221 { /* Inline parser_nodes$AAttrFormExpr$n_expr (self) on <self:AAttrFormExpr> */
6222 var98 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AAttrFormExpr> */
6223 if (unlikely(var98 == NULL)) {
6224 if(catchStack.cursor >= 0){
6225 longjmp(catchStack.envs[catchStack.cursor], 1);
6226 }
6227 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6228 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2354);
6229 fatal_exit(1);
6230 }
6231 var96 = var98;
6232 RET_LABEL97:(void)0;
6233 }
6234 }
6235 /* <var96:AExpr> isa ASelfExpr */
6236 cltype100 = type_nitc__ASelfExpr.color;
6237 idtype101 = type_nitc__ASelfExpr.id;
6238 if(cltype100 >= var96->type->table_size) {
6239 var99 = 0;
6240 } else {
6241 var99 = var96->type->type_table[cltype100] == idtype101;
6242 }
6243 {
6244 var102 = nitc__typing___nitc__typing__TypeVisitor___resolve_for(var_v, var_attr_type, var_recvtype, var99);
6245 }
6246 var_attr_type = var102;
6247 {
6248 { /* Inline typing$AAttrFormExpr$attr_type= (self,var_attr_type) on <self:AAttrFormExpr> */
6249 self->attrs[COLOR_nitc__typing__AAttrFormExpr___attr_type].val = var_attr_type; /* _attr_type on <self:AAttrFormExpr> */
6250 RET_LABEL103:(void)0;
6251 }
6252 }
6253 RET_LABEL:;
6254 }
6255 /* method typing$AAttrExpr$accept_typing for (self: AAttrExpr, TypeVisitor) */
6256 void nitc__typing___AAttrExpr___AExpr__accept_typing(val* self, val* p0) {
6257 val* var_v /* var v: TypeVisitor */;
6258 val* var /* : nullable MType */;
6259 val* var2 /* : nullable MType */;
6260 var_v = p0;
6261 {
6262 nitc__typing___AAttrFormExpr___resolve_property(self, var_v); /* Direct call typing$AAttrFormExpr$resolve_property on <self:AAttrExpr>*/
6263 }
6264 {
6265 { /* Inline typing$AAttrFormExpr$attr_type (self) on <self:AAttrExpr> */
6266 var2 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___attr_type].val; /* _attr_type on <self:AAttrExpr> */
6267 var = var2;
6268 RET_LABEL1:(void)0;
6269 }
6270 }
6271 {
6272 { /* Inline typing$AExpr$mtype= (self,var) on <self:AAttrExpr> */
6273 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var; /* _mtype on <self:AAttrExpr> */
6274 RET_LABEL3:(void)0;
6275 }
6276 }
6277 RET_LABEL:;
6278 }
6279 /* method typing$AAttrAssignExpr$accept_typing for (self: AAttrAssignExpr, TypeVisitor) */
6280 void nitc__typing___AAttrAssignExpr___AExpr__accept_typing(val* self, val* p0) {
6281 val* var_v /* var v: TypeVisitor */;
6282 val* var /* : nullable MType */;
6283 val* var2 /* : nullable MType */;
6284 val* var_mtype /* var mtype: nullable MType */;
6285 val* var3 /* : AExpr */;
6286 val* var5 /* : AExpr */;
6287 val* var6 /* : nullable MType */;
6288 short int var7 /* : Bool */;
6289 short int var8 /* : Bool */;
6290 val* var_other /* var other: nullable Object */;
6291 short int var10 /* : Bool */;
6292 short int var11 /* : Bool */;
6293 var_v = p0;
6294 {
6295 nitc__typing___AAttrFormExpr___resolve_property(self, var_v); /* Direct call typing$AAttrFormExpr$resolve_property on <self:AAttrAssignExpr>*/
6296 }
6297 {
6298 { /* Inline typing$AAttrFormExpr$attr_type (self) on <self:AAttrAssignExpr> */
6299 var2 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___attr_type].val; /* _attr_type on <self:AAttrAssignExpr> */
6300 var = var2;
6301 RET_LABEL1:(void)0;
6302 }
6303 }
6304 var_mtype = var;
6305 {
6306 { /* Inline parser_nodes$AAssignFormExpr$n_value (self) on <self:AAttrAssignExpr> */
6307 var5 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AAttrAssignExpr> */
6308 if (unlikely(var5 == NULL)) {
6309 if(catchStack.cursor >= 0){
6310 longjmp(catchStack.envs[catchStack.cursor], 1);
6311 }
6312 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
6313 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2073);
6314 fatal_exit(1);
6315 }
6316 var3 = var5;
6317 RET_LABEL4:(void)0;
6318 }
6319 }
6320 {
6321 var6 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var3, var_mtype);
6322 }
6323 if (var_mtype == NULL) {
6324 var7 = 0; /* is null */
6325 } else {
6326 var7 = 1; /* arg is null and recv is not */
6327 }
6328 if (0) {
6329 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
6330 var_other = ((val*)NULL);
6331 {
6332 var10 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other); /* == on <var_mtype:nullable MType(MType)>*/
6333 }
6334 var11 = !var10;
6335 var8 = var11;
6336 goto RET_LABEL9;
6337 RET_LABEL9:(void)0;
6338 }
6339 var7 = var8;
6340 }
6341 {
6342 { /* Inline typing$AExpr$is_typed= (self,var7) on <self:AAttrAssignExpr> */
6343 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = var7; /* _is_typed on <self:AAttrAssignExpr> */
6344 RET_LABEL12:(void)0;
6345 }
6346 }
6347 RET_LABEL:;
6348 }
6349 /* method typing$AAttrReassignExpr$accept_typing for (self: AAttrReassignExpr, TypeVisitor) */
6350 void nitc__typing___AAttrReassignExpr___AExpr__accept_typing(val* self, val* p0) {
6351 val* var_v /* var v: TypeVisitor */;
6352 val* var /* : nullable MType */;
6353 val* var2 /* : nullable MType */;
6354 val* var_mtype /* var mtype: nullable MType */;
6355 short int var3 /* : Bool */;
6356 short int var4 /* : Bool */;
6357 val* var_other /* var other: nullable Object */;
6358 short int var6 /* : Bool */;
6359 short int var8 /* : Bool */;
6360 val* var9 /* : nullable MType */;
6361 val* var_rettype /* var rettype: nullable MType */;
6362 short int var10 /* : Bool */;
6363 short int var11 /* : Bool */;
6364 val* var_other13 /* var other: nullable Object */;
6365 short int var14 /* : Bool */;
6366 short int var15 /* : Bool */;
6367 var_v = p0;
6368 {
6369 nitc__typing___AAttrFormExpr___resolve_property(self, var_v); /* Direct call typing$AAttrFormExpr$resolve_property on <self:AAttrReassignExpr>*/
6370 }
6371 {
6372 { /* Inline typing$AAttrFormExpr$attr_type (self) on <self:AAttrReassignExpr> */
6373 var2 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___attr_type].val; /* _attr_type on <self:AAttrReassignExpr> */
6374 var = var2;
6375 RET_LABEL1:(void)0;
6376 }
6377 }
6378 var_mtype = var;
6379 if (var_mtype == NULL) {
6380 var3 = 1; /* is null */
6381 } else {
6382 var3 = 0; /* arg is null but recv is not */
6383 }
6384 if (0) {
6385 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
6386 var_other = ((val*)NULL);
6387 {
6388 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
6389 var8 = var_mtype == var_other;
6390 var6 = var8;
6391 goto RET_LABEL7;
6392 RET_LABEL7:(void)0;
6393 }
6394 }
6395 var4 = var6;
6396 goto RET_LABEL5;
6397 RET_LABEL5:(void)0;
6398 }
6399 var3 = var4;
6400 }
6401 if (var3){
6402 goto RET_LABEL;
6403 } else {
6404 }
6405 {
6406 var9 = nitc__typing___AReassignFormExpr___resolve_reassignment(self, var_v, var_mtype, var_mtype);
6407 }
6408 var_rettype = var9;
6409 if (var_rettype == NULL) {
6410 var10 = 0; /* is null */
6411 } else {
6412 var10 = 1; /* arg is null and recv is not */
6413 }
6414 if (0) {
6415 { /* Inline kernel$Object$!= (var_rettype,((val*)NULL)) on <var_rettype:nullable MType> */
6416 var_other13 = ((val*)NULL);
6417 {
6418 var14 = ((short int(*)(val* self, val* p0))(var_rettype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rettype, var_other13); /* == on <var_rettype:nullable MType(MType)>*/
6419 }
6420 var15 = !var14;
6421 var11 = var15;
6422 goto RET_LABEL12;
6423 RET_LABEL12:(void)0;
6424 }
6425 var10 = var11;
6426 }
6427 {
6428 { /* Inline typing$AExpr$is_typed= (self,var10) on <self:AAttrReassignExpr> */
6429 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = var10; /* _is_typed on <self:AAttrReassignExpr> */
6430 RET_LABEL16:(void)0;
6431 }
6432 }
6433 RET_LABEL:;
6434 }
6435 /* method typing$AIssetAttrExpr$accept_typing for (self: AIssetAttrExpr, TypeVisitor) */
6436 void nitc__typing___AIssetAttrExpr___AExpr__accept_typing(val* self, val* p0) {
6437 val* var_v /* var v: TypeVisitor */;
6438 val* var /* : nullable MType */;
6439 val* var2 /* : nullable MType */;
6440 val* var_mtype /* var mtype: nullable MType */;
6441 short int var3 /* : Bool */;
6442 short int var4 /* : Bool */;
6443 val* var_other /* var other: nullable Object */;
6444 short int var6 /* : Bool */;
6445 short int var8 /* : Bool */;
6446 val* var9 /* : AExpr */;
6447 val* var11 /* : AExpr */;
6448 val* var12 /* : nullable MType */;
6449 val* var_recvtype /* var recvtype: MType */;
6450 val* var13 /* : MType */;
6451 val* var_bound /* var bound: MType */;
6452 short int var14 /* : Bool */;
6453 int cltype;
6454 int idtype;
6455 val* var15 /* : TAttrid */;
6456 val* var17 /* : TAttrid */;
6457 static val* varonce;
6458 val* var18 /* : String */;
6459 char* var19 /* : CString */;
6460 val* var20 /* : String */;
6461 val* var21 /* : nullable Int */;
6462 val* var22 /* : nullable Int */;
6463 val* var23 /* : nullable Bool */;
6464 val* var24 /* : nullable Bool */;
6465 val* var25 /* : nullable MType */;
6466 var_v = p0;
6467 {
6468 nitc__typing___AAttrFormExpr___resolve_property(self, var_v); /* Direct call typing$AAttrFormExpr$resolve_property on <self:AIssetAttrExpr>*/
6469 }
6470 {
6471 { /* Inline typing$AAttrFormExpr$attr_type (self) on <self:AIssetAttrExpr> */
6472 var2 = self->attrs[COLOR_nitc__typing__AAttrFormExpr___attr_type].val; /* _attr_type on <self:AIssetAttrExpr> */
6473 var = var2;
6474 RET_LABEL1:(void)0;
6475 }
6476 }
6477 var_mtype = var;
6478 if (var_mtype == NULL) {
6479 var3 = 1; /* is null */
6480 } else {
6481 var3 = 0; /* arg is null but recv is not */
6482 }
6483 if (0) {
6484 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
6485 var_other = ((val*)NULL);
6486 {
6487 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
6488 var8 = var_mtype == var_other;
6489 var6 = var8;
6490 goto RET_LABEL7;
6491 RET_LABEL7:(void)0;
6492 }
6493 }
6494 var4 = var6;
6495 goto RET_LABEL5;
6496 RET_LABEL5:(void)0;
6497 }
6498 var3 = var4;
6499 }
6500 if (var3){
6501 goto RET_LABEL;
6502 } else {
6503 }
6504 {
6505 { /* Inline parser_nodes$AAttrFormExpr$n_expr (self) on <self:AIssetAttrExpr> */
6506 var11 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_expr].val; /* _n_expr on <self:AIssetAttrExpr> */
6507 if (unlikely(var11 == NULL)) {
6508 if(catchStack.cursor >= 0){
6509 longjmp(catchStack.envs[catchStack.cursor], 1);
6510 }
6511 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6512 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2354);
6513 fatal_exit(1);
6514 }
6515 var9 = var11;
6516 RET_LABEL10:(void)0;
6517 }
6518 }
6519 {
6520 var12 = ((val*(*)(val* self))(var9->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var9); /* mtype on <var9:AExpr>*/
6521 }
6522 if (unlikely(var12 == NULL)) {
6523 if(catchStack.cursor >= 0){
6524 longjmp(catchStack.envs[catchStack.cursor], 1);
6525 }
6526 PRINT_ERROR("Runtime error: %s", "Cast failed");
6527 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 2333);
6528 fatal_exit(1);
6529 }
6530 var_recvtype = var12;
6531 {
6532 var13 = nitc__typing___nitc__typing__TypeVisitor___resolve_for(var_v, var_mtype, var_recvtype, 0);
6533 }
6534 var_bound = var13;
6535 /* <var_bound:MType> isa MNullableType */
6536 cltype = type_nitc__MNullableType.color;
6537 idtype = type_nitc__MNullableType.id;
6538 if(cltype >= var_bound->type->table_size) {
6539 var14 = 0;
6540 } else {
6541 var14 = var_bound->type->type_table[cltype] == idtype;
6542 }
6543 if (var14){
6544 {
6545 { /* Inline parser_nodes$AAttrFormExpr$n_id (self) on <self:AIssetAttrExpr> */
6546 var17 = self->attrs[COLOR_nitc__parser_nodes__AAttrFormExpr___n_id].val; /* _n_id on <self:AIssetAttrExpr> */
6547 if (unlikely(var17 == NULL)) {
6548 if(catchStack.cursor >= 0){
6549 longjmp(catchStack.envs[catchStack.cursor], 1);
6550 }
6551 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
6552 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2357);
6553 fatal_exit(1);
6554 }
6555 var15 = var17;
6556 RET_LABEL16:(void)0;
6557 }
6558 }
6559 if (likely(varonce!=NULL)) {
6560 var18 = varonce;
6561 } else {
6562 var19 = "Type Error: `isset` on a nullable attribute.";
6563 var21 = (val*)(44l<<2|1);
6564 var22 = (val*)(44l<<2|1);
6565 var23 = (val*)((long)(0)<<2|3);
6566 var24 = (val*)((long)(0)<<2|3);
6567 var20 = core__flat___CString___to_s_unsafe(var19, var21, var22, var23, var24);
6568 var18 = var20;
6569 varonce = var18;
6570 }
6571 {
6572 nitc__typing___nitc__typing__TypeVisitor___error(var_v, var15, var18); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
6573 }
6574 } else {
6575 }
6576 {
6577 var25 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
6578 }
6579 {
6580 { /* Inline typing$AExpr$mtype= (self,var25) on <self:AIssetAttrExpr> */
6581 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var25; /* _mtype on <self:AIssetAttrExpr> */
6582 RET_LABEL26:(void)0;
6583 }
6584 }
6585 RET_LABEL:;
6586 }
6587 /* method typing$AVarargExpr$accept_typing for (self: AVarargExpr, TypeVisitor) */
6588 void nitc__typing___AVarargExpr___AExpr__accept_typing(val* self, val* p0) {
6589 val* var_v /* var v: TypeVisitor */;
6590 static val* varonce;
6591 val* var /* : String */;
6592 char* var1 /* : CString */;
6593 val* var2 /* : String */;
6594 val* var3 /* : nullable Int */;
6595 val* var4 /* : nullable Int */;
6596 val* var5 /* : nullable Bool */;
6597 val* var6 /* : nullable Bool */;
6598 var_v = p0;
6599 if (likely(varonce!=NULL)) {
6600 var = varonce;
6601 } else {
6602 var1 = "Syntax Error: unexpected `...`.";
6603 var3 = (val*)(31l<<2|1);
6604 var4 = (val*)(31l<<2|1);
6605 var5 = (val*)((long)(0)<<2|3);
6606 var6 = (val*)((long)(0)<<2|3);
6607 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
6608 var = var2;
6609 varonce = var;
6610 }
6611 {
6612 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
6613 }
6614 RET_LABEL:;
6615 }
6616 /* method typing$ADebugTypeExpr$accept_typing for (self: ADebugTypeExpr, TypeVisitor) */
6617 void nitc__typing___ADebugTypeExpr___AExpr__accept_typing(val* self, val* p0) {
6618 val* var_v /* var v: TypeVisitor */;
6619 val* var /* : AExpr */;
6620 val* var2 /* : AExpr */;
6621 val* var3 /* : nullable MType */;
6622 val* var_expr /* var expr: nullable MType */;
6623 short int var4 /* : Bool */;
6624 short int var5 /* : Bool */;
6625 val* var_other /* var other: nullable Object */;
6626 short int var7 /* : Bool */;
6627 short int var9 /* : Bool */;
6628 val* var10 /* : MType */;
6629 val* var_unsafe /* var unsafe: MType */;
6630 val* var11 /* : AType */;
6631 val* var13 /* : AType */;
6632 val* var_ntype /* var ntype: AType */;
6633 val* var14 /* : nullable MType */;
6634 val* var_mtype /* var mtype: nullable MType */;
6635 short int var15 /* : Bool */;
6636 short int var16 /* : Bool */;
6637 short int var17 /* : Bool */;
6638 val* var_other19 /* var other: nullable Object */;
6639 short int var20 /* : Bool */;
6640 short int var21 /* : Bool */;
6641 short int var_ /* var : Bool */;
6642 short int var22 /* : Bool */;
6643 short int var24 /* : Bool */;
6644 short int var25 /* : Bool */;
6645 val* var26 /* : MType */;
6646 val* var_umtype /* var umtype: MType */;
6647 val* var27 /* : ModelBuilder */;
6648 val* var29 /* : ModelBuilder */;
6649 static val* varonce;
6650 val* var30 /* : String */;
6651 char* var31 /* : CString */;
6652 val* var32 /* : String */;
6653 val* var33 /* : nullable Int */;
6654 val* var34 /* : nullable Int */;
6655 val* var35 /* : nullable Bool */;
6656 val* var36 /* : nullable Bool */;
6657 val* var38 /* : NativeArray[String] */;
6658 static val* varonce37;
6659 static val* varonce39;
6660 val* var40 /* : String */;
6661 char* var41 /* : CString */;
6662 val* var42 /* : String */;
6663 val* var43 /* : nullable Int */;
6664 val* var44 /* : nullable Int */;
6665 val* var45 /* : nullable Bool */;
6666 val* var46 /* : nullable Bool */;
6667 static val* varonce47;
6668 val* var48 /* : String */;
6669 char* var49 /* : CString */;
6670 val* var50 /* : String */;
6671 val* var51 /* : nullable Int */;
6672 val* var52 /* : nullable Int */;
6673 val* var53 /* : nullable Bool */;
6674 val* var54 /* : nullable Bool */;
6675 static val* varonce55;
6676 val* var56 /* : String */;
6677 char* var57 /* : CString */;
6678 val* var58 /* : String */;
6679 val* var59 /* : nullable Int */;
6680 val* var60 /* : nullable Int */;
6681 val* var61 /* : nullable Bool */;
6682 val* var62 /* : nullable Bool */;
6683 static val* varonce63;
6684 val* var64 /* : String */;
6685 char* var65 /* : CString */;
6686 val* var66 /* : String */;
6687 val* var67 /* : nullable Int */;
6688 val* var68 /* : nullable Int */;
6689 val* var69 /* : nullable Bool */;
6690 val* var70 /* : nullable Bool */;
6691 static val* varonce71;
6692 val* var72 /* : String */;
6693 char* var73 /* : CString */;
6694 val* var74 /* : String */;
6695 val* var75 /* : nullable Int */;
6696 val* var76 /* : nullable Int */;
6697 val* var77 /* : nullable Bool */;
6698 val* var78 /* : nullable Bool */;
6699 val* var79 /* : String */;
6700 val* var80 /* : String */;
6701 val* var81 /* : String */;
6702 val* var82 /* : String */;
6703 val* var83 /* : String */;
6704 var_v = p0;
6705 {
6706 { /* Inline parser_nodes$ADebugTypeExpr$n_expr (self) on <self:ADebugTypeExpr> */
6707 var2 = self->attrs[COLOR_nitc__parser_nodes__ADebugTypeExpr___n_expr].val; /* _n_expr on <self:ADebugTypeExpr> */
6708 if (unlikely(var2 == NULL)) {
6709 if(catchStack.cursor >= 0){
6710 longjmp(catchStack.envs[catchStack.cursor], 1);
6711 }
6712 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6713 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2779);
6714 fatal_exit(1);
6715 }
6716 var = var2;
6717 RET_LABEL1:(void)0;
6718 }
6719 }
6720 {
6721 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
6722 }
6723 var_expr = var3;
6724 if (var_expr == NULL) {
6725 var4 = 1; /* is null */
6726 } else {
6727 var4 = 0; /* arg is null but recv is not */
6728 }
6729 if (0) {
6730 { /* Inline kernel$Object$== (var_expr,((val*)NULL)) on <var_expr:nullable MType> */
6731 var_other = ((val*)NULL);
6732 {
6733 { /* Inline kernel$Object$is_same_instance (var_expr,var_other) on <var_expr:nullable MType(MType)> */
6734 var9 = var_expr == var_other;
6735 var7 = var9;
6736 goto RET_LABEL8;
6737 RET_LABEL8:(void)0;
6738 }
6739 }
6740 var5 = var7;
6741 goto RET_LABEL6;
6742 RET_LABEL6:(void)0;
6743 }
6744 var4 = var5;
6745 }
6746 if (var4){
6747 goto RET_LABEL;
6748 } else {
6749 }
6750 {
6751 var10 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_expr);
6752 }
6753 var_unsafe = var10;
6754 {
6755 { /* Inline parser_nodes$ADebugTypeExpr$n_type (self) on <self:ADebugTypeExpr> */
6756 var13 = self->attrs[COLOR_nitc__parser_nodes__ADebugTypeExpr___n_type].val; /* _n_type on <self:ADebugTypeExpr> */
6757 if (unlikely(var13 == NULL)) {
6758 if(catchStack.cursor >= 0){
6759 longjmp(catchStack.envs[catchStack.cursor], 1);
6760 }
6761 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
6762 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2782);
6763 fatal_exit(1);
6764 }
6765 var11 = var13;
6766 RET_LABEL12:(void)0;
6767 }
6768 }
6769 var_ntype = var11;
6770 {
6771 var14 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var_ntype);
6772 }
6773 var_mtype = var14;
6774 if (var_mtype == NULL) {
6775 var16 = 0; /* is null */
6776 } else {
6777 var16 = 1; /* arg is null and recv is not */
6778 }
6779 if (0) {
6780 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
6781 var_other19 = ((val*)NULL);
6782 {
6783 var20 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other19); /* == on <var_mtype:nullable MType(MType)>*/
6784 }
6785 var21 = !var20;
6786 var17 = var21;
6787 goto RET_LABEL18;
6788 RET_LABEL18:(void)0;
6789 }
6790 var16 = var17;
6791 }
6792 var_ = var16;
6793 if (var16){
6794 {
6795 { /* Inline kernel$Object$!= (var_mtype,var_expr) on <var_mtype:nullable MType(MType)> */
6796 var_other19 = var_expr;
6797 {
6798 var24 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other19); /* == on <var_mtype:nullable MType(MType)>*/
6799 }
6800 var25 = !var24;
6801 var22 = var25;
6802 goto RET_LABEL23;
6803 RET_LABEL23:(void)0;
6804 }
6805 }
6806 var15 = var22;
6807 } else {
6808 var15 = var_;
6809 }
6810 if (var15){
6811 {
6812 var26 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_mtype);
6813 }
6814 var_umtype = var26;
6815 {
6816 { /* Inline typing$TypeVisitor$modelbuilder (var_v) on <var_v:TypeVisitor> */
6817 var29 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on <var_v:TypeVisitor> */
6818 if (unlikely(var29 == NULL)) {
6819 if(catchStack.cursor >= 0){
6820 longjmp(catchStack.envs[catchStack.cursor], 1);
6821 }
6822 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6823 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35);
6824 fatal_exit(1);
6825 }
6826 var27 = var29;
6827 RET_LABEL28:(void)0;
6828 }
6829 }
6830 if (likely(varonce!=NULL)) {
6831 var30 = varonce;
6832 } else {
6833 var31 = "debug";
6834 var33 = (val*)(5l<<2|1);
6835 var34 = (val*)(5l<<2|1);
6836 var35 = (val*)((long)(0)<<2|3);
6837 var36 = (val*)((long)(0)<<2|3);
6838 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
6839 var30 = var32;
6840 varonce = var30;
6841 }
6842 if (unlikely(varonce37==NULL)) {
6843 var38 = NEW_core__NativeArray((int)9l, &type_core__NativeArray__core__String);
6844 if (likely(varonce39!=NULL)) {
6845 var40 = varonce39;
6846 } else {
6847 var41 = "Found type ";
6848 var43 = (val*)(11l<<2|1);
6849 var44 = (val*)(11l<<2|1);
6850 var45 = (val*)((long)(0)<<2|3);
6851 var46 = (val*)((long)(0)<<2|3);
6852 var42 = core__flat___CString___to_s_unsafe(var41, var43, var44, var45, var46);
6853 var40 = var42;
6854 varonce39 = var40;
6855 }
6856 ((struct instance_core__NativeArray*)var38)->values[0]=var40;
6857 if (likely(varonce47!=NULL)) {
6858 var48 = varonce47;
6859 } else {
6860 var49 = " (-> ";
6861 var51 = (val*)(5l<<2|1);
6862 var52 = (val*)(5l<<2|1);
6863 var53 = (val*)((long)(0)<<2|3);
6864 var54 = (val*)((long)(0)<<2|3);
6865 var50 = core__flat___CString___to_s_unsafe(var49, var51, var52, var53, var54);
6866 var48 = var50;
6867 varonce47 = var48;
6868 }
6869 ((struct instance_core__NativeArray*)var38)->values[2]=var48;
6870 if (likely(varonce55!=NULL)) {
6871 var56 = varonce55;
6872 } else {
6873 var57 = "), expected ";
6874 var59 = (val*)(12l<<2|1);
6875 var60 = (val*)(12l<<2|1);
6876 var61 = (val*)((long)(0)<<2|3);
6877 var62 = (val*)((long)(0)<<2|3);
6878 var58 = core__flat___CString___to_s_unsafe(var57, var59, var60, var61, var62);
6879 var56 = var58;
6880 varonce55 = var56;
6881 }
6882 ((struct instance_core__NativeArray*)var38)->values[4]=var56;
6883 if (likely(varonce63!=NULL)) {
6884 var64 = varonce63;
6885 } else {
6886 var65 = " (-> ";
6887 var67 = (val*)(5l<<2|1);
6888 var68 = (val*)(5l<<2|1);
6889 var69 = (val*)((long)(0)<<2|3);
6890 var70 = (val*)((long)(0)<<2|3);
6891 var66 = core__flat___CString___to_s_unsafe(var65, var67, var68, var69, var70);
6892 var64 = var66;
6893 varonce63 = var64;
6894 }
6895 ((struct instance_core__NativeArray*)var38)->values[6]=var64;
6896 if (likely(varonce71!=NULL)) {
6897 var72 = varonce71;
6898 } else {
6899 var73 = ")";
6900 var75 = (val*)(1l<<2|1);
6901 var76 = (val*)(1l<<2|1);
6902 var77 = (val*)((long)(0)<<2|3);
6903 var78 = (val*)((long)(0)<<2|3);
6904 var74 = core__flat___CString___to_s_unsafe(var73, var75, var76, var77, var78);
6905 var72 = var74;
6906 varonce71 = var72;
6907 }
6908 ((struct instance_core__NativeArray*)var38)->values[8]=var72;
6909 } else {
6910 var38 = varonce37;
6911 varonce37 = NULL;
6912 }
6913 {
6914 var79 = ((val*(*)(val* self))(var_expr->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_expr); /* to_s on <var_expr:nullable MType(MType)>*/
6915 }
6916 ((struct instance_core__NativeArray*)var38)->values[1]=var79;
6917 {
6918 var80 = ((val*(*)(val* self))(var_unsafe->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_unsafe); /* to_s on <var_unsafe:MType>*/
6919 }
6920 ((struct instance_core__NativeArray*)var38)->values[3]=var80;
6921 {
6922 var81 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:nullable MType(MType)>*/
6923 }
6924 ((struct instance_core__NativeArray*)var38)->values[5]=var81;
6925 {
6926 var82 = ((val*(*)(val* self))(var_umtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_umtype); /* to_s on <var_umtype:MType>*/
6927 }
6928 ((struct instance_core__NativeArray*)var38)->values[7]=var82;
6929 {
6930 var83 = ((val*(*)(val* self))(var38->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var38); /* native_to_s on <var38:NativeArray[String]>*/
6931 }
6932 varonce37 = var38;
6933 {
6934 nitc___nitc__ModelBuilder___warning(var27, self, var30, var83); /* Direct call modelbuilder_base$ModelBuilder$warning on <var27:ModelBuilder>*/
6935 }
6936 } else {
6937 }
6938 {
6939 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ADebugTypeExpr> */
6940 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ADebugTypeExpr> */
6941 RET_LABEL84:(void)0;
6942 }
6943 }
6944 RET_LABEL:;
6945 }