Merge: doc: fixed some typos and other misc. corrections
[nit.git] / c_src / nitc__typing.sep.2.c
1 #include "nitc__typing.sep.0.h"
2 /* method typing$PostTypingVisitor$type_visitor for (self: PostTypingVisitor): TypeVisitor */
3 val* nitc__typing___nitc__typing__PostTypingVisitor___type_visitor(val* self) {
4 val* var /* : TypeVisitor */;
5 val* var1 /* : TypeVisitor */;
6 var1 = self->attrs[COLOR_nitc__typing__PostTypingVisitor___type_visitor].val; /* _type_visitor on <self:PostTypingVisitor> */
7 if (unlikely(var1 == NULL)) {
8 if(catchStack.cursor >= 0){
9 longjmp(catchStack.envs[catchStack.cursor], 1);
10 }
11 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_visitor");
12 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 801);
13 fatal_exit(1);
14 }
15 var = var1;
16 RET_LABEL:;
17 return var;
18 }
19 /* method typing$PostTypingVisitor$type_visitor= for (self: PostTypingVisitor, TypeVisitor) */
20 void nitc__typing___nitc__typing__PostTypingVisitor___type_visitor_61d(val* self, val* p0) {
21 self->attrs[COLOR_nitc__typing__PostTypingVisitor___type_visitor].val = p0; /* _type_visitor on <self:PostTypingVisitor> */
22 RET_LABEL:;
23 }
24 /* method typing$PostTypingVisitor$visit for (self: PostTypingVisitor, ANode) */
25 void nitc__typing___nitc__typing__PostTypingVisitor___nitc__parser_nodes__Visitor__visit(val* self, val* p0) {
26 val* var_n /* var n: ANode */;
27 val* var /* : TypeVisitor */;
28 val* var2 /* : TypeVisitor */;
29 short int var3 /* : Bool */;
30 short int var4 /* : Bool */;
31 short int var5 /* : Bool */;
32 int cltype;
33 int idtype;
34 short int var_ /* var : Bool */;
35 val* var6 /* : nullable MType */;
36 short int var7 /* : Bool */;
37 short int var8 /* : Bool */;
38 val* var_other /* var other: nullable Object */;
39 short int var10 /* : Bool */;
40 short int var12 /* : Bool */;
41 short int var_13 /* var : Bool */;
42 short int var14 /* : Bool */;
43 short int var16 /* : Bool */;
44 short int var17 /* : Bool */;
45 var_n = p0;
46 {
47 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__parser_nodes__ANode__visit_all]))(var_n, self); /* visit_all on <var_n:ANode>*/
48 }
49 {
50 { /* Inline typing$PostTypingVisitor$type_visitor (self) on <self:PostTypingVisitor> */
51 var2 = self->attrs[COLOR_nitc__typing__PostTypingVisitor___type_visitor].val; /* _type_visitor on <self:PostTypingVisitor> */
52 if (unlikely(var2 == NULL)) {
53 if(catchStack.cursor >= 0){
54 longjmp(catchStack.envs[catchStack.cursor], 1);
55 }
56 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_visitor");
57 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 801);
58 fatal_exit(1);
59 }
60 var = var2;
61 RET_LABEL1:(void)0;
62 }
63 }
64 {
65 ((void(*)(val* self, val* p0))(var_n->class->vft[COLOR_nitc__typing__ANode__accept_post_typing]))(var_n, var); /* accept_post_typing on <var_n:ANode>*/
66 }
67 /* <var_n:ANode> isa AExpr */
68 cltype = type_nitc__AExpr.color;
69 idtype = type_nitc__AExpr.id;
70 if(cltype >= var_n->type->table_size) {
71 var5 = 0;
72 } else {
73 var5 = var_n->type->type_table[cltype] == idtype;
74 }
75 var_ = var5;
76 if (var5){
77 {
78 var6 = ((val*(*)(val* self))(var_n->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var_n); /* mtype on <var_n:ANode(AExpr)>*/
79 }
80 if (var6 == NULL) {
81 var7 = 1; /* is null */
82 } else {
83 var7 = 0; /* arg is null but recv is not */
84 }
85 if (0) {
86 { /* Inline kernel$Object$== (var6,((val*)NULL)) on <var6:nullable MType> */
87 var_other = ((val*)NULL);
88 {
89 { /* Inline kernel$Object$is_same_instance (var6,var_other) on <var6:nullable MType(MType)> */
90 var12 = var6 == var_other;
91 var10 = var12;
92 goto RET_LABEL11;
93 RET_LABEL11:(void)0;
94 }
95 }
96 var8 = var10;
97 goto RET_LABEL9;
98 RET_LABEL9:(void)0;
99 }
100 var7 = var8;
101 }
102 var4 = var7;
103 } else {
104 var4 = var_;
105 }
106 var_13 = var4;
107 if (var4){
108 {
109 { /* Inline typing$AExpr$is_typed (var_n) on <var_n:ANode(AExpr)> */
110 var16 = var_n->attrs[COLOR_nitc__typing__AExpr___is_typed].s; /* _is_typed on <var_n:ANode(AExpr)> */
111 var14 = var16;
112 RET_LABEL15:(void)0;
113 }
114 }
115 var17 = !var14;
116 var3 = var17;
117 } else {
118 var3 = var_13;
119 }
120 if (var3){
121 {
122 { /* Inline modelbuilder_base$ANode$is_broken= (var_n,1) on <var_n:ANode(AExpr)> */
123 var_n->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <var_n:ANode(AExpr)> */
124 RET_LABEL18:(void)0;
125 }
126 }
127 } else {
128 }
129 RET_LABEL:;
130 }
131 /* method typing$PostTypingVisitor$init for (self: PostTypingVisitor) */
132 void nitc__typing___nitc__typing__PostTypingVisitor___core__kernel__Object__init(val* self) {
133 {
134 ((void(*)(val* self))(self->class->vft[COLOR_nitc__typing___nitc__typing__PostTypingVisitor___core__kernel__Object__init]))(self); /* init on <self:PostTypingVisitor>*/
135 }
136 RET_LABEL:;
137 }
138 /* method typing$ANode$accept_post_typing for (self: ANode, TypeVisitor) */
139 void nitc__typing___ANode___accept_post_typing(val* self, val* p0) {
140 val* var_v /* var v: TypeVisitor */;
141 var_v = p0;
142 RET_LABEL:;
143 }
144 /* method typing$ANode$bad_expr_message for (self: ANode, AExpr): nullable String */
145 val* nitc__typing___ANode___bad_expr_message(val* self, val* p0) {
146 val* var /* : nullable String */;
147 val* var_child /* var child: AExpr */;
148 var_child = p0;
149 var = ((val*)NULL);
150 goto RET_LABEL;
151 RET_LABEL:;
152 return var;
153 }
154 /* method typing$AAttrPropdef$do_typing for (self: AAttrPropdef, ModelBuilder) */
155 void nitc__typing___AAttrPropdef___APropdef__do_typing(val* self, val* p0) {
156 val* var_modelbuilder /* var modelbuilder: ModelBuilder */;
157 short int var /* : Bool */;
158 short int var2 /* : Bool */;
159 short int var3 /* : Bool */;
160 val* var4 /* : nullable MMethodDef */;
161 val* var6 /* : nullable MMethodDef */;
162 val* var_mpropdef /* var mpropdef: nullable MMethodDef */;
163 short int var7 /* : Bool */;
164 short int var8 /* : Bool */;
165 short int var9 /* : Bool */;
166 val* var_other /* var other: nullable Object */;
167 short int var11 /* : Bool */;
168 short int var13 /* : Bool */;
169 short int var_ /* var : Bool */;
170 val* var14 /* : nullable MSignature */;
171 val* var16 /* : nullable MSignature */;
172 short int var17 /* : Bool */;
173 short int var18 /* : Bool */;
174 short int var20 /* : Bool */;
175 short int var22 /* : Bool */;
176 val* var23 /* : TypeVisitor */;
177 val* var24 /* : MClassDef */;
178 val* var26 /* : MClassDef */;
179 val* var27 /* : MModule */;
180 val* var29 /* : MModule */;
181 val* var_v /* var v: TypeVisitor */;
182 val* var30 /* : Variable */;
183 val* var32 /* : Variable */;
184 val* var34 /* : nullable AExpr */;
185 val* var36 /* : nullable AExpr */;
186 val* var_nexpr /* var nexpr: nullable AExpr */;
187 short int var37 /* : Bool */;
188 short int var38 /* : Bool */;
189 val* var_other40 /* var other: nullable Object */;
190 short int var41 /* : Bool */;
191 short int var42 /* : Bool */;
192 val* var43 /* : nullable MType */;
193 val* var45 /* : nullable MType */;
194 val* var_mtype /* var mtype: nullable MType */;
195 val* var46 /* : nullable MType */;
196 val* var47 /* : nullable AExpr */;
197 val* var49 /* : nullable AExpr */;
198 val* var_nblock /* var nblock: nullable AExpr */;
199 short int var50 /* : Bool */;
200 short int var51 /* : Bool */;
201 short int var53 /* : Bool */;
202 short int var54 /* : Bool */;
203 val* var55 /* : nullable FlowContext */;
204 val* var57 /* : nullable FlowContext */;
205 short int var58 /* : Bool */;
206 short int var59 /* : Bool */;
207 static val* varonce;
208 val* var60 /* : String */;
209 char* var61 /* : CString */;
210 val* var62 /* : String */;
211 val* var63 /* : nullable Int */;
212 val* var64 /* : nullable Int */;
213 val* var65 /* : nullable Bool */;
214 val* var66 /* : nullable Bool */;
215 var_modelbuilder = p0;
216 {
217 { /* Inline modelize_property$AAttrPropdef$has_value (self) on <self:AAttrPropdef> */
218 var2 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___has_value].s; /* _has_value on <self:AAttrPropdef> */
219 var = var2;
220 RET_LABEL1:(void)0;
221 }
222 }
223 var3 = !var;
224 if (var3){
225 goto RET_LABEL;
226 } else {
227 }
228 {
229 { /* Inline modelize_property$AAttrPropdef$mreadpropdef (self) on <self:AAttrPropdef> */
230 var6 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef].val; /* _mreadpropdef on <self:AAttrPropdef> */
231 var4 = var6;
232 RET_LABEL5:(void)0;
233 }
234 }
235 var_mpropdef = var4;
236 if (var_mpropdef == NULL) {
237 var8 = 1; /* is null */
238 } else {
239 var8 = 0; /* arg is null but recv is not */
240 }
241 if (0) {
242 { /* Inline kernel$Object$== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
243 var_other = ((val*)NULL);
244 {
245 { /* Inline kernel$Object$is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
246 var13 = var_mpropdef == var_other;
247 var11 = var13;
248 goto RET_LABEL12;
249 RET_LABEL12:(void)0;
250 }
251 }
252 var9 = var11;
253 goto RET_LABEL10;
254 RET_LABEL10:(void)0;
255 }
256 var8 = var9;
257 }
258 var_ = var8;
259 if (var8){
260 var7 = var_;
261 } else {
262 {
263 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
264 var16 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
265 var14 = var16;
266 RET_LABEL15:(void)0;
267 }
268 }
269 if (var14 == NULL) {
270 var17 = 1; /* is null */
271 } else {
272 var17 = 0; /* arg is null but recv is not */
273 }
274 if (0) {
275 { /* Inline kernel$Object$== (var14,((val*)NULL)) on <var14:nullable MSignature> */
276 var_other = ((val*)NULL);
277 {
278 { /* Inline kernel$Object$is_same_instance (var14,var_other) on <var14:nullable MSignature(MSignature)> */
279 var22 = var14 == var_other;
280 var20 = var22;
281 goto RET_LABEL21;
282 RET_LABEL21:(void)0;
283 }
284 }
285 var18 = var20;
286 goto RET_LABEL19;
287 RET_LABEL19:(void)0;
288 }
289 var17 = var18;
290 }
291 var7 = var17;
292 }
293 if (var7){
294 goto RET_LABEL;
295 } else {
296 }
297 var23 = NEW_nitc__typing__TypeVisitor(&type_nitc__typing__TypeVisitor);
298 {
299 { /* Inline model$MPropDef$mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
300 var26 = var_mpropdef->attrs[COLOR_nitc__model__MPropDef___mclassdef].val; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
301 if (unlikely(var26 == NULL)) {
302 if(catchStack.cursor >= 0){
303 longjmp(catchStack.envs[catchStack.cursor], 1);
304 }
305 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
306 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 2354);
307 fatal_exit(1);
308 }
309 var24 = var26;
310 RET_LABEL25:(void)0;
311 }
312 }
313 {
314 { /* Inline model$MClassDef$mmodule (var24) on <var24:MClassDef> */
315 var29 = var24->attrs[COLOR_nitc__model__MClassDef___mmodule].val; /* _mmodule on <var24:MClassDef> */
316 if (unlikely(var29 == NULL)) {
317 if(catchStack.cursor >= 0){
318 longjmp(catchStack.envs[catchStack.cursor], 1);
319 }
320 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
321 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 588);
322 fatal_exit(1);
323 }
324 var27 = var29;
325 RET_LABEL28:(void)0;
326 }
327 }
328 {
329 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__modelbuilder_61d]))(var23, var_modelbuilder); /* modelbuilder= on <var23:TypeVisitor>*/
330 }
331 {
332 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__mmodule_61d]))(var23, var27); /* mmodule= on <var23:TypeVisitor>*/
333 }
334 {
335 ((void(*)(val* self, val* p0))(var23->class->vft[COLOR_nitc__typing__TypeVisitor__mpropdef_61d]))(var23, var_mpropdef); /* mpropdef= on <var23:TypeVisitor>*/
336 }
337 {
338 ((void(*)(val* self))(var23->class->vft[COLOR_core__kernel__Object__init]))(var23); /* init on <var23:TypeVisitor>*/
339 }
340 var_v = var23;
341 {
342 { /* Inline typing$TypeVisitor$selfvariable (var_v) on <var_v:TypeVisitor> */
343 var32 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on <var_v:TypeVisitor> */
344 if (unlikely(var32 == NULL)) {
345 if(catchStack.cursor >= 0){
346 longjmp(catchStack.envs[catchStack.cursor], 1);
347 }
348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
349 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51);
350 fatal_exit(1);
351 }
352 var30 = var32;
353 RET_LABEL31:(void)0;
354 }
355 }
356 {
357 { /* Inline typing$APropdef$selfvariable= (self,var30) on <self:AAttrPropdef> */
358 self->attrs[COLOR_nitc__typing__APropdef___selfvariable].val = var30; /* _selfvariable on <self:AAttrPropdef> */
359 RET_LABEL33:(void)0;
360 }
361 }
362 {
363 { /* Inline parser_nodes$AAttrPropdef$n_expr (self) on <self:AAttrPropdef> */
364 var36 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr].val; /* _n_expr on <self:AAttrPropdef> */
365 var34 = var36;
366 RET_LABEL35:(void)0;
367 }
368 }
369 var_nexpr = var34;
370 if (var_nexpr == NULL) {
371 var37 = 0; /* is null */
372 } else {
373 var37 = 1; /* arg is null and recv is not */
374 }
375 if (0) {
376 { /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
377 var_other40 = ((val*)NULL);
378 {
379 var41 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other40); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
380 }
381 var42 = !var41;
382 var38 = var42;
383 goto RET_LABEL39;
384 RET_LABEL39:(void)0;
385 }
386 var37 = var38;
387 }
388 if (var37){
389 {
390 { /* Inline modelize_property$AAttrPropdef$mtype (self) on <self:AAttrPropdef> */
391 var45 = self->attrs[COLOR_nitc__modelize_property__AAttrPropdef___mtype].val; /* _mtype on <self:AAttrPropdef> */
392 var43 = var45;
393 RET_LABEL44:(void)0;
394 }
395 }
396 var_mtype = var43;
397 {
398 var46 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_mtype);
399 }
400 } else {
401 }
402 {
403 { /* Inline parser_nodes$AAttrPropdef$n_block (self) on <self:AAttrPropdef> */
404 var49 = self->attrs[COLOR_nitc__parser_nodes__AAttrPropdef___n_block].val; /* _n_block on <self:AAttrPropdef> */
405 var47 = var49;
406 RET_LABEL48:(void)0;
407 }
408 }
409 var_nblock = var47;
410 if (var_nblock == NULL) {
411 var50 = 0; /* is null */
412 } else {
413 var50 = 1; /* arg is null and recv is not */
414 }
415 if (0) {
416 { /* Inline kernel$Object$!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
417 var_other40 = ((val*)NULL);
418 {
419 var53 = ((short int(*)(val* self, val* p0))(var_nblock->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nblock, var_other40); /* == on <var_nblock:nullable AExpr(AExpr)>*/
420 }
421 var54 = !var53;
422 var51 = var54;
423 goto RET_LABEL52;
424 RET_LABEL52:(void)0;
425 }
426 var50 = var51;
427 }
428 if (var50){
429 {
430 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var_nblock); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
431 }
432 {
433 { /* Inline flow$AExpr$after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
434 var57 = var_nblock->attrs[COLOR_nitc__flow__AExpr___after_flow_context].val; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
435 var55 = var57;
436 RET_LABEL56:(void)0;
437 }
438 }
439 if (var55 == NULL) {
440 if(catchStack.cursor >= 0){
441 longjmp(catchStack.envs[catchStack.cursor], 1);
442 }
443 PRINT_ERROR("Runtime error: %s", "Receiver is null");
444 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 840);
445 fatal_exit(1);
446 } else {
447 var58 = nitc___nitc__FlowContext___is_unreachable(var55);
448 }
449 var59 = !var58;
450 if (var59){
451 if (likely(varonce!=NULL)) {
452 var60 = varonce;
453 } else {
454 var61 = "Error: reached end of block; expected `return`.";
455 var63 = (val*)(47l<<2|1);
456 var64 = (val*)(47l<<2|1);
457 var65 = (val*)((long)(0)<<2|3);
458 var66 = (val*)((long)(0)<<2|3);
459 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
460 var60 = var62;
461 varonce = var60;
462 }
463 {
464 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var60); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
465 }
466 } else {
467 }
468 } else {
469 }
470 RET_LABEL:;
471 }
472 /* method typing$AExpr$mtype for (self: AExpr): nullable MType */
473 val* nitc__typing___AExpr___mtype(val* self) {
474 val* var /* : nullable MType */;
475 val* var1 /* : nullable MType */;
476 var1 = self->attrs[COLOR_nitc__typing__AExpr___mtype].val; /* _mtype on <self:AExpr> */
477 var = var1;
478 RET_LABEL:;
479 return var;
480 }
481 /* method typing$AExpr$mtype= for (self: AExpr, nullable MType) */
482 void nitc__typing___AExpr___mtype_61d(val* self, val* p0) {
483 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = p0; /* _mtype on <self:AExpr> */
484 RET_LABEL:;
485 }
486 /* method typing$AExpr$is_typed for (self: AExpr): Bool */
487 short int nitc__typing___AExpr___is_typed(val* self) {
488 short int var /* : Bool */;
489 short int var1 /* : Bool */;
490 var1 = self->attrs[COLOR_nitc__typing__AExpr___is_typed].s; /* _is_typed on <self:AExpr> */
491 var = var1;
492 RET_LABEL:;
493 return var;
494 }
495 /* method typing$AExpr$is_typed= for (self: AExpr, Bool) */
496 void nitc__typing___AExpr___is_typed_61d(val* self, short int p0) {
497 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = p0; /* _is_typed on <self:AExpr> */
498 RET_LABEL:;
499 }
500 /* method typing$AExpr$implicit_cast_to for (self: AExpr): nullable MType */
501 val* nitc__typing___AExpr___implicit_cast_to(val* self) {
502 val* var /* : nullable MType */;
503 val* var1 /* : nullable MType */;
504 var1 = self->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val; /* _implicit_cast_to on <self:AExpr> */
505 var = var1;
506 RET_LABEL:;
507 return var;
508 }
509 /* method typing$AExpr$implicit_cast_to= for (self: AExpr, nullable MType) */
510 void nitc__typing___AExpr___implicit_cast_to_61d(val* self, val* p0) {
511 self->attrs[COLOR_nitc__typing__AExpr___implicit_cast_to].val = p0; /* _implicit_cast_to on <self:AExpr> */
512 RET_LABEL:;
513 }
514 /* method typing$AExpr$its_variable for (self: AExpr): nullable Variable */
515 val* nitc__typing___AExpr___its_variable(val* self) {
516 val* var /* : nullable Variable */;
517 var = ((val*)NULL);
518 goto RET_LABEL;
519 RET_LABEL:;
520 return var;
521 }
522 /* method typing$AExpr$accept_typing for (self: AExpr, TypeVisitor) */
523 void nitc__typing___AExpr___accept_typing(val* self, val* p0) {
524 val* var_v /* var v: TypeVisitor */;
525 val* var /* : NativeArray[String] */;
526 static val* varonce;
527 static val* varonce1;
528 val* var2 /* : String */;
529 char* var3 /* : CString */;
530 val* var4 /* : String */;
531 val* var5 /* : nullable Int */;
532 val* var6 /* : nullable Int */;
533 val* var7 /* : nullable Bool */;
534 val* var8 /* : nullable Bool */;
535 val* var9 /* : String */;
536 val* var10 /* : String */;
537 var_v = p0;
538 if (unlikely(varonce==NULL)) {
539 var = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
540 if (likely(varonce1!=NULL)) {
541 var2 = varonce1;
542 } else {
543 var3 = "no implemented accept_typing for ";
544 var5 = (val*)(33l<<2|1);
545 var6 = (val*)(33l<<2|1);
546 var7 = (val*)((long)(0)<<2|3);
547 var8 = (val*)((long)(0)<<2|3);
548 var4 = core__flat___CString___to_s_unsafe(var3, var5, var6, var7, var8);
549 var2 = var4;
550 varonce1 = var2;
551 }
552 ((struct instance_core__NativeArray*)var)->values[0]=var2;
553 } else {
554 var = varonce;
555 varonce = NULL;
556 }
557 {
558 var9 = core__abstract_text___Object___class_name(self);
559 }
560 ((struct instance_core__NativeArray*)var)->values[1]=var9;
561 {
562 var10 = ((val*(*)(val* self))(var->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var); /* native_to_s on <var:NativeArray[String]>*/
563 }
564 varonce = var;
565 {
566 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var10); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
567 }
568 RET_LABEL:;
569 }
570 /* method typing$AExpr$comprehension for (self: AExpr): nullable AArrayExpr */
571 val* nitc__typing___AExpr___comprehension(val* self) {
572 val* var /* : nullable AArrayExpr */;
573 val* var1 /* : nullable AArrayExpr */;
574 var1 = self->attrs[COLOR_nitc__typing__AExpr___comprehension].val; /* _comprehension on <self:AExpr> */
575 var = var1;
576 RET_LABEL:;
577 return var;
578 }
579 /* method typing$AExpr$comprehension= for (self: AExpr, nullable AArrayExpr) */
580 void nitc__typing___AExpr___comprehension_61d(val* self, val* p0) {
581 self->attrs[COLOR_nitc__typing__AExpr___comprehension].val = p0; /* _comprehension on <self:AExpr> */
582 RET_LABEL:;
583 }
584 /* method typing$AExpr$vararg_decl for (self: AExpr): Int */
585 long nitc__typing___AExpr___vararg_decl(val* self) {
586 long var /* : Int */;
587 long var1 /* : Int */;
588 var1 = self->attrs[COLOR_nitc__typing__AExpr___vararg_decl].l; /* _vararg_decl on <self:AExpr> */
589 var = var1;
590 RET_LABEL:;
591 return var;
592 }
593 /* method typing$AExpr$vararg_decl= for (self: AExpr, Int) */
594 void nitc__typing___AExpr___vararg_decl_61d(val* self, long p0) {
595 self->attrs[COLOR_nitc__typing__AExpr___vararg_decl].l = p0; /* _vararg_decl on <self:AExpr> */
596 RET_LABEL:;
597 }
598 /* method typing$ABlockExpr$accept_typing for (self: ABlockExpr, TypeVisitor) */
599 void nitc__typing___ABlockExpr___AExpr__accept_typing(val* self, val* p0) {
600 val* var_v /* var v: TypeVisitor */;
601 val* var /* : ANodes[AExpr] */;
602 val* var2 /* : ANodes[AExpr] */;
603 val* var_ /* var : ANodes[AExpr] */;
604 val* var3 /* : Iterator[ANode] */;
605 val* var_4 /* var : Iterator[AExpr] */;
606 short int var5 /* : Bool */;
607 val* var6 /* : nullable Object */;
608 val* var_e /* var e: AExpr */;
609 var_v = p0;
610 {
611 { /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
612 var2 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
613 if (unlikely(var2 == NULL)) {
614 if(catchStack.cursor >= 0){
615 longjmp(catchStack.envs[catchStack.cursor], 1);
616 }
617 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
618 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
619 fatal_exit(1);
620 }
621 var = var2;
622 RET_LABEL1:(void)0;
623 }
624 }
625 var_ = var;
626 {
627 var3 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
628 }
629 var_4 = var3;
630 for(;;) {
631 {
632 var5 = ((short int(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_4); /* is_ok on <var_4:Iterator[AExpr]>*/
633 }
634 if (var5){
635 } else {
636 goto BREAK_label;
637 }
638 {
639 var6 = ((val*(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_4); /* item on <var_4:Iterator[AExpr]>*/
640 }
641 var_e = var6;
642 {
643 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var_e); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
644 }
645 {
646 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_4); /* next on <var_4:Iterator[AExpr]>*/
647 }
648 }
649 BREAK_label: (void)0;
650 {
651 ((void(*)(val* self))((((long)var_4&3)?class_info[((long)var_4&3)]:var_4->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_4); /* finish on <var_4:Iterator[AExpr]>*/
652 }
653 {
654 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ABlockExpr> */
655 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ABlockExpr> */
656 RET_LABEL7:(void)0;
657 }
658 }
659 RET_LABEL:;
660 }
661 /* method typing$ABlockExpr$mtype for (self: ABlockExpr): nullable MType */
662 val* nitc__typing___ABlockExpr___AExpr__mtype(val* self) {
663 val* var /* : nullable MType */;
664 val* var1 /* : ANodes[AExpr] */;
665 val* var3 /* : ANodes[AExpr] */;
666 short int var4 /* : Bool */;
667 val* var5 /* : ANodes[AExpr] */;
668 val* var7 /* : ANodes[AExpr] */;
669 val* var8 /* : nullable Object */;
670 val* var9 /* : nullable MType */;
671 {
672 { /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
673 var3 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
674 if (unlikely(var3 == NULL)) {
675 if(catchStack.cursor >= 0){
676 longjmp(catchStack.envs[catchStack.cursor], 1);
677 }
678 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
679 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
680 fatal_exit(1);
681 }
682 var1 = var3;
683 RET_LABEL2:(void)0;
684 }
685 }
686 {
687 var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var1);
688 }
689 if (var4){
690 var = ((val*)NULL);
691 goto RET_LABEL;
692 } else {
693 }
694 {
695 { /* Inline parser_nodes$ABlockExpr$n_expr (self) on <self:ABlockExpr> */
696 var7 = self->attrs[COLOR_nitc__parser_nodes__ABlockExpr___n_expr].val; /* _n_expr on <self:ABlockExpr> */
697 if (unlikely(var7 == NULL)) {
698 if(catchStack.cursor >= 0){
699 longjmp(catchStack.envs[catchStack.cursor], 1);
700 }
701 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
702 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1811);
703 fatal_exit(1);
704 }
705 var5 = var7;
706 RET_LABEL6:(void)0;
707 }
708 }
709 {
710 var8 = core___core__SequenceRead___last(var5);
711 }
712 {
713 var9 = ((val*(*)(val* self))(var8->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var8); /* mtype on <var8:nullable Object(AExpr)>*/
714 }
715 var = var9;
716 goto RET_LABEL;
717 RET_LABEL:;
718 return var;
719 }
720 /* method typing$AVardeclExpr$accept_typing for (self: AVardeclExpr, TypeVisitor) */
721 void nitc__typing___AVardeclExpr___AExpr__accept_typing(val* self, val* p0) {
722 val* var_v /* var v: TypeVisitor */;
723 val* var /* : nullable Variable */;
724 val* var2 /* : nullable Variable */;
725 val* var_variable /* var variable: nullable Variable */;
726 short int var3 /* : Bool */;
727 short int var4 /* : Bool */;
728 val* var_other /* var other: nullable Object */;
729 short int var6 /* : Bool */;
730 short int var8 /* : Bool */;
731 val* var9 /* : nullable AType */;
732 val* var11 /* : nullable AType */;
733 val* var_ntype /* var ntype: nullable AType */;
734 short int var12 /* : Bool */;
735 short int var13 /* : Bool */;
736 short int var15 /* : Bool */;
737 short int var17 /* : Bool */;
738 val* var_mtype /* var mtype: nullable MType */;
739 val* var18 /* : nullable MType */;
740 short int var19 /* : Bool */;
741 short int var20 /* : Bool */;
742 short int var22 /* : Bool */;
743 short int var24 /* : Bool */;
744 val* var25 /* : nullable AExpr */;
745 val* var27 /* : nullable AExpr */;
746 val* var_nexpr /* var nexpr: nullable AExpr */;
747 short int var28 /* : Bool */;
748 short int var29 /* : Bool */;
749 val* var_other31 /* var other: nullable Object */;
750 short int var32 /* : Bool */;
751 short int var33 /* : Bool */;
752 short int var34 /* : Bool */;
753 short int var35 /* : Bool */;
754 short int var37 /* : Bool */;
755 short int var38 /* : Bool */;
756 val* var39 /* : nullable MType */;
757 val* var_etype /* var etype: nullable MType */;
758 short int var40 /* : Bool */;
759 short int var41 /* : Bool */;
760 short int var43 /* : Bool */;
761 short int var45 /* : Bool */;
762 short int var46 /* : Bool */;
763 short int var47 /* : Bool */;
764 short int var49 /* : Bool */;
765 short int var50 /* : Bool */;
766 val* var51 /* : ModelBuilder */;
767 val* var53 /* : ModelBuilder */;
768 static val* varonce;
769 val* var54 /* : String */;
770 char* var55 /* : CString */;
771 val* var56 /* : String */;
772 val* var57 /* : nullable Int */;
773 val* var58 /* : nullable Int */;
774 val* var59 /* : nullable Bool */;
775 val* var60 /* : nullable Bool */;
776 val* var62 /* : NativeArray[String] */;
777 static val* varonce61;
778 static val* varonce63;
779 val* var64 /* : String */;
780 char* var65 /* : CString */;
781 val* var66 /* : String */;
782 val* var67 /* : nullable Int */;
783 val* var68 /* : nullable Int */;
784 val* var69 /* : nullable Bool */;
785 val* var70 /* : nullable Bool */;
786 static val* varonce71;
787 val* var72 /* : String */;
788 char* var73 /* : CString */;
789 val* var74 /* : String */;
790 val* var75 /* : nullable Int */;
791 val* var76 /* : nullable Int */;
792 val* var77 /* : nullable Bool */;
793 val* var78 /* : nullable Bool */;
794 val* var79 /* : String */;
795 val* var81 /* : String */;
796 val* var82 /* : String */;
797 val* var83 /* : nullable MType */;
798 short int var84 /* : Bool */;
799 short int var85 /* : Bool */;
800 short int var87 /* : Bool */;
801 short int var89 /* : Bool */;
802 val* var_decltype /* var decltype: nullable MType */;
803 short int var90 /* : Bool */;
804 short int var91 /* : Bool */;
805 short int var92 /* : Bool */;
806 short int var94 /* : Bool */;
807 short int var96 /* : Bool */;
808 short int var_ /* var : Bool */;
809 short int var97 /* : Bool */;
810 int cltype;
811 int idtype;
812 static val* varonce98;
813 val* var99 /* : String */;
814 char* var100 /* : CString */;
815 val* var101 /* : String */;
816 val* var102 /* : nullable Int */;
817 val* var103 /* : nullable Int */;
818 val* var104 /* : nullable Bool */;
819 val* var105 /* : nullable Bool */;
820 val* var106 /* : nullable MClass */;
821 val* var_objclass /* var objclass: nullable MClass */;
822 short int var107 /* : Bool */;
823 short int var108 /* : Bool */;
824 short int var110 /* : Bool */;
825 short int var112 /* : Bool */;
826 val* var113 /* : MClassType */;
827 val* var115 /* : MClassType */;
828 val* var116 /* : MType */;
829 short int var117 /* : Bool */;
830 short int var118 /* : Bool */;
831 short int var120 /* : Bool */;
832 short int var122 /* : Bool */;
833 var_v = p0;
834 {
835 { /* Inline scope$AVardeclExpr$variable (self) on <self:AVardeclExpr> */
836 var2 = self->attrs[COLOR_nitc__scope__AVardeclExpr___variable].val; /* _variable on <self:AVardeclExpr> */
837 var = var2;
838 RET_LABEL1:(void)0;
839 }
840 }
841 var_variable = var;
842 if (var_variable == NULL) {
843 var3 = 1; /* is null */
844 } else {
845 var3 = 0; /* arg is null but recv is not */
846 }
847 if (0) {
848 { /* Inline kernel$Object$== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
849 var_other = ((val*)NULL);
850 {
851 { /* Inline kernel$Object$is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
852 var8 = var_variable == var_other;
853 var6 = var8;
854 goto RET_LABEL7;
855 RET_LABEL7:(void)0;
856 }
857 }
858 var4 = var6;
859 goto RET_LABEL5;
860 RET_LABEL5:(void)0;
861 }
862 var3 = var4;
863 }
864 if (var3){
865 goto RET_LABEL;
866 } else {
867 }
868 {
869 { /* Inline parser_nodes$AVardeclExpr$n_type (self) on <self:AVardeclExpr> */
870 var11 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_type].val; /* _n_type on <self:AVardeclExpr> */
871 var9 = var11;
872 RET_LABEL10:(void)0;
873 }
874 }
875 var_ntype = var9;
876 if (var_ntype == NULL) {
877 var12 = 1; /* is null */
878 } else {
879 var12 = 0; /* arg is null but recv is not */
880 }
881 if (0) {
882 { /* Inline kernel$Object$== (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
883 var_other = ((val*)NULL);
884 {
885 { /* Inline kernel$Object$is_same_instance (var_ntype,var_other) on <var_ntype:nullable AType(AType)> */
886 var17 = var_ntype == var_other;
887 var15 = var17;
888 goto RET_LABEL16;
889 RET_LABEL16:(void)0;
890 }
891 }
892 var13 = var15;
893 goto RET_LABEL14;
894 RET_LABEL14:(void)0;
895 }
896 var12 = var13;
897 }
898 if (var12){
899 var_mtype = ((val*)NULL);
900 } else {
901 {
902 var18 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var_ntype);
903 }
904 var_mtype = var18;
905 if (var_mtype == NULL) {
906 var19 = 1; /* is null */
907 } else {
908 var19 = 0; /* arg is null but recv is not */
909 }
910 if (0) {
911 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
912 var_other = ((val*)NULL);
913 {
914 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
915 var24 = var_mtype == var_other;
916 var22 = var24;
917 goto RET_LABEL23;
918 RET_LABEL23:(void)0;
919 }
920 }
921 var20 = var22;
922 goto RET_LABEL21;
923 RET_LABEL21:(void)0;
924 }
925 var19 = var20;
926 }
927 if (var19){
928 goto RET_LABEL;
929 } else {
930 }
931 }
932 {
933 { /* Inline parser_nodes$AVardeclExpr$n_expr (self) on <self:AVardeclExpr> */
934 var27 = self->attrs[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr].val; /* _n_expr on <self:AVardeclExpr> */
935 var25 = var27;
936 RET_LABEL26:(void)0;
937 }
938 }
939 var_nexpr = var25;
940 if (var_nexpr == NULL) {
941 var28 = 0; /* is null */
942 } else {
943 var28 = 1; /* arg is null and recv is not */
944 }
945 if (0) {
946 { /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
947 var_other31 = ((val*)NULL);
948 {
949 var32 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other31); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
950 }
951 var33 = !var32;
952 var29 = var33;
953 goto RET_LABEL30;
954 RET_LABEL30:(void)0;
955 }
956 var28 = var29;
957 }
958 if (var28){
959 if (var_mtype == NULL) {
960 var34 = 0; /* is null */
961 } else {
962 var34 = 1; /* arg is null and recv is not */
963 }
964 if (0) {
965 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
966 var_other31 = ((val*)NULL);
967 {
968 var37 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other31); /* == on <var_mtype:nullable MType(MType)>*/
969 }
970 var38 = !var37;
971 var35 = var38;
972 goto RET_LABEL36;
973 RET_LABEL36:(void)0;
974 }
975 var34 = var35;
976 }
977 if (var34){
978 {
979 var39 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_mtype);
980 }
981 var_etype = var39;
982 if (var_etype == NULL) {
983 var40 = 0; /* <var_mtype:nullable MType(MType)> cannot be null */
984 } else {
985 { /* Inline kernel$Object$== (var_etype,var_mtype) on <var_etype:nullable MType> */
986 var_other = var_mtype;
987 {
988 { /* Inline kernel$Object$is_same_instance (var_etype,var_other) on <var_etype:nullable MType(MType)> */
989 var45 = var_etype == var_other;
990 var43 = var45;
991 goto RET_LABEL44;
992 RET_LABEL44:(void)0;
993 }
994 }
995 var41 = var43;
996 goto RET_LABEL42;
997 RET_LABEL42:(void)0;
998 }
999 var40 = var41;
1000 }
1001 if (var40){
1002 if (var_ntype == NULL) {
1003 var46 = 0; /* is null */
1004 } else {
1005 var46 = 1; /* arg is null and recv is not */
1006 }
1007 if (0) {
1008 { /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
1009 var_other31 = ((val*)NULL);
1010 {
1011 var49 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other31); /* == on <var_ntype:nullable AType(AType)>*/
1012 }
1013 var50 = !var49;
1014 var47 = var50;
1015 goto RET_LABEL48;
1016 RET_LABEL48:(void)0;
1017 }
1018 var46 = var47;
1019 }
1020 if (unlikely(!var46)) {
1021 if(catchStack.cursor >= 0){
1022 longjmp(catchStack.envs[catchStack.cursor], 1);
1023 }
1024 PRINT_ERROR("Runtime error: %s", "Assert failed");
1025 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 938);
1026 fatal_exit(1);
1027 }
1028 {
1029 { /* Inline typing$TypeVisitor$modelbuilder (var_v) on <var_v:TypeVisitor> */
1030 var53 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on <var_v:TypeVisitor> */
1031 if (unlikely(var53 == NULL)) {
1032 if(catchStack.cursor >= 0){
1033 longjmp(catchStack.envs[catchStack.cursor], 1);
1034 }
1035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1036 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35);
1037 fatal_exit(1);
1038 }
1039 var51 = var53;
1040 RET_LABEL52:(void)0;
1041 }
1042 }
1043 if (likely(varonce!=NULL)) {
1044 var54 = varonce;
1045 } else {
1046 var55 = "useless-type";
1047 var57 = (val*)(12l<<2|1);
1048 var58 = (val*)(12l<<2|1);
1049 var59 = (val*)((long)(0)<<2|3);
1050 var60 = (val*)((long)(0)<<2|3);
1051 var56 = core__flat___CString___to_s_unsafe(var55, var57, var58, var59, var60);
1052 var54 = var56;
1053 varonce = var54;
1054 }
1055 if (unlikely(varonce61==NULL)) {
1056 var62 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
1057 if (likely(varonce63!=NULL)) {
1058 var64 = varonce63;
1059 } else {
1060 var65 = "Warning: useless type definition for variable `";
1061 var67 = (val*)(47l<<2|1);
1062 var68 = (val*)(47l<<2|1);
1063 var69 = (val*)((long)(0)<<2|3);
1064 var70 = (val*)((long)(0)<<2|3);
1065 var66 = core__flat___CString___to_s_unsafe(var65, var67, var68, var69, var70);
1066 var64 = var66;
1067 varonce63 = var64;
1068 }
1069 ((struct instance_core__NativeArray*)var62)->values[0]=var64;
1070 if (likely(varonce71!=NULL)) {
1071 var72 = varonce71;
1072 } else {
1073 var73 = "`";
1074 var75 = (val*)(1l<<2|1);
1075 var76 = (val*)(1l<<2|1);
1076 var77 = (val*)((long)(0)<<2|3);
1077 var78 = (val*)((long)(0)<<2|3);
1078 var74 = core__flat___CString___to_s_unsafe(var73, var75, var76, var77, var78);
1079 var72 = var74;
1080 varonce71 = var72;
1081 }
1082 ((struct instance_core__NativeArray*)var62)->values[2]=var72;
1083 } else {
1084 var62 = varonce61;
1085 varonce61 = NULL;
1086 }
1087 {
1088 { /* Inline scope$Variable$name (var_variable) on <var_variable:nullable Variable(Variable)> */
1089 var81 = var_variable->attrs[COLOR_nitc__scope__Variable___name].val; /* _name on <var_variable:nullable Variable(Variable)> */
1090 if (unlikely(var81 == NULL)) {
1091 if(catchStack.cursor >= 0){
1092 longjmp(catchStack.envs[catchStack.cursor], 1);
1093 }
1094 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
1095 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope, 36);
1096 fatal_exit(1);
1097 }
1098 var79 = var81;
1099 RET_LABEL80:(void)0;
1100 }
1101 }
1102 ((struct instance_core__NativeArray*)var62)->values[1]=var79;
1103 {
1104 var82 = ((val*(*)(val* self))(var62->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var62); /* native_to_s on <var62:NativeArray[String]>*/
1105 }
1106 varonce61 = var62;
1107 {
1108 nitc___nitc__ModelBuilder___advice(var51, var_ntype, var54, var82); /* Direct call modelbuilder_base$ModelBuilder$advice on <var51:ModelBuilder>*/
1109 }
1110 } else {
1111 }
1112 } else {
1113 {
1114 var83 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr);
1115 }
1116 var_mtype = var83;
1117 if (var_mtype == NULL) {
1118 var84 = 1; /* is null */
1119 } else {
1120 var84 = 0; /* arg is null but recv is not */
1121 }
1122 if (0) {
1123 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1124 var_other = ((val*)NULL);
1125 {
1126 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1127 var89 = var_mtype == var_other;
1128 var87 = var89;
1129 goto RET_LABEL88;
1130 RET_LABEL88:(void)0;
1131 }
1132 }
1133 var85 = var87;
1134 goto RET_LABEL86;
1135 RET_LABEL86:(void)0;
1136 }
1137 var84 = var85;
1138 }
1139 if (var84){
1140 goto RET_LABEL;
1141 } else {
1142 }
1143 }
1144 } else {
1145 }
1146 var_decltype = var_mtype;
1147 if (var_mtype == NULL) {
1148 var91 = 1; /* is null */
1149 } else {
1150 var91 = 0; /* arg is null but recv is not */
1151 }
1152 if (0) {
1153 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1154 var_other = ((val*)NULL);
1155 {
1156 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1157 var96 = var_mtype == var_other;
1158 var94 = var96;
1159 goto RET_LABEL95;
1160 RET_LABEL95:(void)0;
1161 }
1162 }
1163 var92 = var94;
1164 goto RET_LABEL93;
1165 RET_LABEL93:(void)0;
1166 }
1167 var91 = var92;
1168 }
1169 var_ = var91;
1170 if (var91){
1171 var90 = var_;
1172 } else {
1173 /* <var_mtype:nullable MType(MType)> isa MNullType */
1174 cltype = type_nitc__MNullType.color;
1175 idtype = type_nitc__MNullType.id;
1176 if(cltype >= var_mtype->type->table_size) {
1177 var97 = 0;
1178 } else {
1179 var97 = var_mtype->type->type_table[cltype] == idtype;
1180 }
1181 var90 = var97;
1182 }
1183 if (var90){
1184 if (likely(varonce98!=NULL)) {
1185 var99 = varonce98;
1186 } else {
1187 var100 = "Object";
1188 var102 = (val*)(6l<<2|1);
1189 var103 = (val*)(6l<<2|1);
1190 var104 = (val*)((long)(0)<<2|3);
1191 var105 = (val*)((long)(0)<<2|3);
1192 var101 = core__flat___CString___to_s_unsafe(var100, var102, var103, var104, var105);
1193 var99 = var101;
1194 varonce98 = var99;
1195 }
1196 {
1197 var106 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var99);
1198 }
1199 var_objclass = var106;
1200 if (var_objclass == NULL) {
1201 var107 = 1; /* is null */
1202 } else {
1203 var107 = 0; /* arg is null but recv is not */
1204 }
1205 if (0) {
1206 { /* Inline kernel$Object$== (var_objclass,((val*)NULL)) on <var_objclass:nullable MClass> */
1207 var_other = ((val*)NULL);
1208 {
1209 { /* Inline kernel$Object$is_same_instance (var_objclass,var_other) on <var_objclass:nullable MClass(MClass)> */
1210 var112 = var_objclass == var_other;
1211 var110 = var112;
1212 goto RET_LABEL111;
1213 RET_LABEL111:(void)0;
1214 }
1215 }
1216 var108 = var110;
1217 goto RET_LABEL109;
1218 RET_LABEL109:(void)0;
1219 }
1220 var107 = var108;
1221 }
1222 if (var107){
1223 goto RET_LABEL;
1224 } else {
1225 }
1226 {
1227 { /* Inline model$MClass$mclass_type (var_objclass) on <var_objclass:nullable MClass(MClass)> */
1228 var115 = var_objclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_objclass:nullable MClass(MClass)> */
1229 if (unlikely(var115 == NULL)) {
1230 if(catchStack.cursor >= 0){
1231 longjmp(catchStack.envs[catchStack.cursor], 1);
1232 }
1233 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
1234 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
1235 fatal_exit(1);
1236 }
1237 var113 = var115;
1238 RET_LABEL114:(void)0;
1239 }
1240 }
1241 {
1242 var116 = nitc___nitc__MType___as_nullable(var113);
1243 }
1244 var_decltype = var116;
1245 if (var_mtype == NULL) {
1246 var117 = 1; /* is null */
1247 } else {
1248 var117 = 0; /* arg is null but recv is not */
1249 }
1250 if (0) {
1251 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType(nullable MNullType)> */
1252 var_other = ((val*)NULL);
1253 {
1254 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MNullType)> */
1255 var122 = var_mtype == var_other;
1256 var120 = var122;
1257 goto RET_LABEL121;
1258 RET_LABEL121:(void)0;
1259 }
1260 }
1261 var118 = var120;
1262 goto RET_LABEL119;
1263 RET_LABEL119:(void)0;
1264 }
1265 var117 = var118;
1266 }
1267 if (var117){
1268 var_mtype = var_decltype;
1269 } else {
1270 }
1271 } else {
1272 }
1273 {
1274 { /* Inline typing$Variable$declared_type= (var_variable,var_decltype) on <var_variable:nullable Variable(Variable)> */
1275 var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val = var_decltype; /* _declared_type on <var_variable:nullable Variable(Variable)> */
1276 RET_LABEL123:(void)0;
1277 }
1278 }
1279 {
1280 nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_mtype); /* Direct call typing$TypeVisitor$set_variable on <var_v:TypeVisitor>*/
1281 }
1282 {
1283 { /* Inline typing$AExpr$mtype= (self,var_mtype) on <self:AVardeclExpr> */
1284 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AVardeclExpr> */
1285 RET_LABEL124:(void)0;
1286 }
1287 }
1288 {
1289 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AVardeclExpr> */
1290 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AVardeclExpr> */
1291 RET_LABEL125:(void)0;
1292 }
1293 }
1294 RET_LABEL:;
1295 }
1296 /* method typing$AVarExpr$its_variable for (self: AVarExpr): nullable Variable */
1297 val* nitc__typing___AVarExpr___AExpr__its_variable(val* self) {
1298 val* var /* : nullable Variable */;
1299 val* var1 /* : nullable Variable */;
1300 val* var3 /* : nullable Variable */;
1301 {
1302 { /* Inline scope$AVarFormExpr$variable (self) on <self:AVarExpr> */
1303 var3 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
1304 var1 = var3;
1305 RET_LABEL2:(void)0;
1306 }
1307 }
1308 var = var1;
1309 goto RET_LABEL;
1310 RET_LABEL:;
1311 return var;
1312 }
1313 /* method typing$AVarExpr$accept_typing for (self: AVarExpr, TypeVisitor) */
1314 void nitc__typing___AVarExpr___AExpr__accept_typing(val* self, val* p0) {
1315 val* var_v /* var v: TypeVisitor */;
1316 val* var /* : nullable Variable */;
1317 val* var2 /* : nullable Variable */;
1318 val* var_variable /* var variable: nullable Variable */;
1319 short int var3 /* : Bool */;
1320 short int var4 /* : Bool */;
1321 val* var_other /* var other: nullable Object */;
1322 short int var6 /* : Bool */;
1323 short int var8 /* : Bool */;
1324 val* var9 /* : nullable MType */;
1325 val* var_mtype /* var mtype: nullable MType */;
1326 short int var10 /* : Bool */;
1327 short int var11 /* : Bool */;
1328 val* var_other13 /* var other: nullable Object */;
1329 short int var14 /* : Bool */;
1330 short int var15 /* : Bool */;
1331 var_v = p0;
1332 {
1333 { /* Inline scope$AVarFormExpr$variable (self) on <self:AVarExpr> */
1334 var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarExpr> */
1335 var = var2;
1336 RET_LABEL1:(void)0;
1337 }
1338 }
1339 var_variable = var;
1340 if (var_variable == NULL) {
1341 var3 = 1; /* is null */
1342 } else {
1343 var3 = 0; /* arg is null but recv is not */
1344 }
1345 if (0) {
1346 { /* Inline kernel$Object$== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
1347 var_other = ((val*)NULL);
1348 {
1349 { /* Inline kernel$Object$is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
1350 var8 = var_variable == var_other;
1351 var6 = var8;
1352 goto RET_LABEL7;
1353 RET_LABEL7:(void)0;
1354 }
1355 }
1356 var4 = var6;
1357 goto RET_LABEL5;
1358 RET_LABEL5:(void)0;
1359 }
1360 var3 = var4;
1361 }
1362 if (var3){
1363 goto RET_LABEL;
1364 } else {
1365 }
1366 {
1367 var9 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable);
1368 }
1369 var_mtype = var9;
1370 if (var_mtype == NULL) {
1371 var10 = 0; /* is null */
1372 } else {
1373 var10 = 1; /* arg is null and recv is not */
1374 }
1375 if (0) {
1376 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1377 var_other13 = ((val*)NULL);
1378 {
1379 var14 = ((short int(*)(val* self, val* p0))(var_mtype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mtype, var_other13); /* == on <var_mtype:nullable MType(MType)>*/
1380 }
1381 var15 = !var14;
1382 var11 = var15;
1383 goto RET_LABEL12;
1384 RET_LABEL12:(void)0;
1385 }
1386 var10 = var11;
1387 }
1388 if (var10){
1389 } else {
1390 }
1391 {
1392 { /* Inline typing$AExpr$mtype= (self,var_mtype) on <self:AVarExpr> */
1393 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AVarExpr> */
1394 RET_LABEL16:(void)0;
1395 }
1396 }
1397 RET_LABEL:;
1398 }
1399 /* method typing$AVarAssignExpr$accept_typing for (self: AVarAssignExpr, TypeVisitor) */
1400 void nitc__typing___AVarAssignExpr___AExpr__accept_typing(val* self, val* p0) {
1401 val* var_v /* var v: TypeVisitor */;
1402 val* var /* : nullable Variable */;
1403 val* var2 /* : nullable Variable */;
1404 val* var_variable /* var variable: nullable Variable */;
1405 short int var3 /* : Bool */;
1406 short int var4 /* : Bool */;
1407 val* var_other /* var other: nullable Object */;
1408 short int var6 /* : Bool */;
1409 short int var7 /* : Bool */;
1410 val* var8 /* : AExpr */;
1411 val* var10 /* : AExpr */;
1412 val* var11 /* : nullable MType */;
1413 val* var13 /* : nullable MType */;
1414 val* var14 /* : nullable MType */;
1415 val* var_mtype /* var mtype: nullable MType */;
1416 var_v = p0;
1417 {
1418 { /* Inline scope$AVarFormExpr$variable (self) on <self:AVarAssignExpr> */
1419 var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarAssignExpr> */
1420 var = var2;
1421 RET_LABEL1:(void)0;
1422 }
1423 }
1424 var_variable = var;
1425 if (var_variable == NULL) {
1426 var3 = 0; /* is null */
1427 } else {
1428 var3 = 1; /* arg is null and recv is not */
1429 }
1430 if (0) {
1431 { /* Inline kernel$Object$!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
1432 var_other = ((val*)NULL);
1433 {
1434 var6 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on <var_variable:nullable Variable(Variable)>*/
1435 }
1436 var7 = !var6;
1437 var4 = var7;
1438 goto RET_LABEL5;
1439 RET_LABEL5:(void)0;
1440 }
1441 var3 = var4;
1442 }
1443 if (unlikely(!var3)) {
1444 if(catchStack.cursor >= 0){
1445 longjmp(catchStack.envs[catchStack.cursor], 1);
1446 }
1447 PRINT_ERROR("Runtime error: %s", "Assert failed");
1448 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 987);
1449 fatal_exit(1);
1450 }
1451 {
1452 { /* Inline parser_nodes$AAssignFormExpr$n_value (self) on <self:AVarAssignExpr> */
1453 var10 = self->attrs[COLOR_nitc__parser_nodes__AAssignFormExpr___n_value].val; /* _n_value on <self:AVarAssignExpr> */
1454 if (unlikely(var10 == NULL)) {
1455 if(catchStack.cursor >= 0){
1456 longjmp(catchStack.envs[catchStack.cursor], 1);
1457 }
1458 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1459 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2073);
1460 fatal_exit(1);
1461 }
1462 var8 = var10;
1463 RET_LABEL9:(void)0;
1464 }
1465 }
1466 {
1467 { /* Inline typing$Variable$declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
1468 var13 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:nullable Variable(Variable)> */
1469 var11 = var13;
1470 RET_LABEL12:(void)0;
1471 }
1472 }
1473 {
1474 var14 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var8, var11);
1475 }
1476 var_mtype = var14;
1477 {
1478 nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_mtype); /* Direct call typing$TypeVisitor$set_variable on <var_v:TypeVisitor>*/
1479 }
1480 {
1481 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AVarAssignExpr> */
1482 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AVarAssignExpr> */
1483 RET_LABEL15:(void)0;
1484 }
1485 }
1486 RET_LABEL:;
1487 }
1488 /* method typing$AReassignFormExpr$reassign_callsite for (self: AReassignFormExpr): nullable CallSite */
1489 val* nitc__typing___AReassignFormExpr___reassign_callsite(val* self) {
1490 val* var /* : nullable CallSite */;
1491 val* var1 /* : nullable CallSite */;
1492 var1 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val; /* _reassign_callsite on <self:AReassignFormExpr> */
1493 var = var1;
1494 RET_LABEL:;
1495 return var;
1496 }
1497 /* method typing$AReassignFormExpr$reassign_callsite= for (self: AReassignFormExpr, nullable CallSite) */
1498 void nitc__typing___AReassignFormExpr___reassign_callsite_61d(val* self, val* p0) {
1499 self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val = p0; /* _reassign_callsite on <self:AReassignFormExpr> */
1500 RET_LABEL:;
1501 }
1502 /* method typing$AReassignFormExpr$read_type for (self: AReassignFormExpr): nullable MType */
1503 val* nitc__typing___AReassignFormExpr___read_type(val* self) {
1504 val* var /* : nullable MType */;
1505 val* var1 /* : nullable MType */;
1506 var1 = self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val; /* _read_type on <self:AReassignFormExpr> */
1507 var = var1;
1508 RET_LABEL:;
1509 return var;
1510 }
1511 /* method typing$AReassignFormExpr$read_type= for (self: AReassignFormExpr, nullable MType) */
1512 void nitc__typing___AReassignFormExpr___read_type_61d(val* self, val* p0) {
1513 self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = p0; /* _read_type on <self:AReassignFormExpr> */
1514 RET_LABEL:;
1515 }
1516 /* method typing$AReassignFormExpr$resolve_reassignment for (self: AReassignFormExpr, TypeVisitor, MType, MType): nullable MType */
1517 val* nitc__typing___AReassignFormExpr___resolve_reassignment(val* self, val* p0, val* p1, val* p2) {
1518 val* var /* : nullable MType */;
1519 val* var_v /* var v: TypeVisitor */;
1520 val* var_readtype /* var readtype: MType */;
1521 val* var_writetype /* var writetype: MType */;
1522 val* var1 /* : AAssignOp */;
1523 val* var3 /* : AAssignOp */;
1524 val* var4 /* : String */;
1525 val* var_reassign_name /* var reassign_name: String */;
1526 val* var6 /* : AAssignOp */;
1527 val* var8 /* : AAssignOp */;
1528 val* var9 /* : nullable CallSite */;
1529 val* var_callsite /* var callsite: nullable CallSite */;
1530 short int var10 /* : Bool */;
1531 short int var11 /* : Bool */;
1532 val* var_other /* var other: nullable Object */;
1533 short int var13 /* : Bool */;
1534 short int var15 /* : Bool */;
1535 val* var17 /* : MSignature */;
1536 val* var19 /* : MSignature */;
1537 val* var_msignature /* var msignature: MSignature */;
1538 val* var20 /* : nullable MType */;
1539 val* var22 /* : nullable MType */;
1540 val* var_rettype /* var rettype: nullable MType */;
1541 short int var23 /* : Bool */;
1542 long var24 /* : Int */;
1543 short int var25 /* : Bool */;
1544 short int var27 /* : Bool */;
1545 short int var_ /* var : Bool */;
1546 short int var28 /* : Bool */;
1547 short int var29 /* : Bool */;
1548 val* var_other31 /* var other: nullable Object */;
1549 short int var32 /* : Bool */;
1550 short int var33 /* : Bool */;
1551 val* var34 /* : AExpr */;
1552 val* var36 /* : AExpr */;
1553 val* var37 /* : Array[MParameter] */;
1554 val* var39 /* : Array[MParameter] */;
1555 val* var40 /* : nullable Object */;
1556 val* var41 /* : MType */;
1557 val* var43 /* : MType */;
1558 val* var44 /* : nullable MType */;
1559 val* var_value_type /* var value_type: nullable MType */;
1560 short int var45 /* : Bool */;
1561 short int var46 /* : Bool */;
1562 short int var48 /* : Bool */;
1563 short int var50 /* : Bool */;
1564 val* var51 /* : nullable MType */;
1565 var_v = p0;
1566 var_readtype = p1;
1567 var_writetype = p2;
1568 {
1569 { /* Inline parser_nodes$AReassignFormExpr$n_assign_op (self) on <self:AReassignFormExpr> */
1570 var3 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AReassignFormExpr> */
1571 if (unlikely(var3 == NULL)) {
1572 if(catchStack.cursor >= 0){
1573 longjmp(catchStack.envs[catchStack.cursor], 1);
1574 }
1575 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
1576 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2081);
1577 fatal_exit(1);
1578 }
1579 var1 = var3;
1580 RET_LABEL2:(void)0;
1581 }
1582 }
1583 {
1584 var4 = ((val*(*)(val* self))(var1->class->vft[COLOR_nitc__parser_nodes__AAssignOp__operator]))(var1); /* operator on <var1:AAssignOp>*/
1585 }
1586 var_reassign_name = var4;
1587 {
1588 { /* Inline typing$AReassignFormExpr$read_type= (self,var_readtype) on <self:AReassignFormExpr> */
1589 self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = var_readtype; /* _read_type on <self:AReassignFormExpr> */
1590 RET_LABEL5:(void)0;
1591 }
1592 }
1593 {
1594 { /* Inline parser_nodes$AReassignFormExpr$n_assign_op (self) on <self:AReassignFormExpr> */
1595 var8 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_assign_op].val; /* _n_assign_op on <self:AReassignFormExpr> */
1596 if (unlikely(var8 == NULL)) {
1597 if(catchStack.cursor >= 0){
1598 longjmp(catchStack.envs[catchStack.cursor], 1);
1599 }
1600 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_assign_op");
1601 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2081);
1602 fatal_exit(1);
1603 }
1604 var6 = var8;
1605 RET_LABEL7:(void)0;
1606 }
1607 }
1608 {
1609 var9 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, var6, var_readtype, var_reassign_name, 0);
1610 }
1611 var_callsite = var9;
1612 if (var_callsite == NULL) {
1613 var10 = 1; /* is null */
1614 } else {
1615 var10 = 0; /* arg is null but recv is not */
1616 }
1617 if (0) {
1618 { /* Inline kernel$Object$== (var_callsite,((val*)NULL)) on <var_callsite:nullable CallSite> */
1619 var_other = ((val*)NULL);
1620 {
1621 { /* Inline kernel$Object$is_same_instance (var_callsite,var_other) on <var_callsite:nullable CallSite(CallSite)> */
1622 var15 = var_callsite == var_other;
1623 var13 = var15;
1624 goto RET_LABEL14;
1625 RET_LABEL14:(void)0;
1626 }
1627 }
1628 var11 = var13;
1629 goto RET_LABEL12;
1630 RET_LABEL12:(void)0;
1631 }
1632 var10 = var11;
1633 }
1634 if (var10){
1635 var = ((val*)NULL);
1636 goto RET_LABEL;
1637 } else {
1638 }
1639 {
1640 { /* Inline typing$AReassignFormExpr$reassign_callsite= (self,var_callsite) on <self:AReassignFormExpr> */
1641 self->attrs[COLOR_nitc__typing__AReassignFormExpr___reassign_callsite].val = var_callsite; /* _reassign_callsite on <self:AReassignFormExpr> */
1642 RET_LABEL16:(void)0;
1643 }
1644 }
1645 {
1646 { /* Inline typing$CallSite$msignature (var_callsite) on <var_callsite:nullable CallSite(CallSite)> */
1647 var19 = var_callsite->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_callsite:nullable CallSite(CallSite)> */
1648 if (unlikely(var19 == NULL)) {
1649 if(catchStack.cursor >= 0){
1650 longjmp(catchStack.envs[catchStack.cursor], 1);
1651 }
1652 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
1653 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
1654 fatal_exit(1);
1655 }
1656 var17 = var19;
1657 RET_LABEL18:(void)0;
1658 }
1659 }
1660 var_msignature = var17;
1661 {
1662 { /* Inline model$MSignature$return_mtype (var_msignature) on <var_msignature:MSignature> */
1663 var22 = var_msignature->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var_msignature:MSignature> */
1664 var20 = var22;
1665 RET_LABEL21:(void)0;
1666 }
1667 }
1668 var_rettype = var20;
1669 {
1670 var24 = nitc___nitc__MSignature___arity(var_msignature);
1671 }
1672 {
1673 { /* Inline kernel$Int$== (var24,1l) on <var24:Int> */
1674 var27 = var24 == 1l;
1675 var25 = var27;
1676 goto RET_LABEL26;
1677 RET_LABEL26:(void)0;
1678 }
1679 }
1680 var_ = var25;
1681 if (var25){
1682 if (var_rettype == NULL) {
1683 var28 = 0; /* is null */
1684 } else {
1685 var28 = 1; /* arg is null and recv is not */
1686 }
1687 if (0) {
1688 { /* Inline kernel$Object$!= (var_rettype,((val*)NULL)) on <var_rettype:nullable MType> */
1689 var_other31 = ((val*)NULL);
1690 {
1691 var32 = ((short int(*)(val* self, val* p0))(var_rettype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rettype, var_other31); /* == on <var_rettype:nullable MType(MType)>*/
1692 }
1693 var33 = !var32;
1694 var29 = var33;
1695 goto RET_LABEL30;
1696 RET_LABEL30:(void)0;
1697 }
1698 var28 = var29;
1699 }
1700 var23 = var28;
1701 } else {
1702 var23 = var_;
1703 }
1704 if (unlikely(!var23)) {
1705 if(catchStack.cursor >= 0){
1706 longjmp(catchStack.envs[catchStack.cursor], 1);
1707 }
1708 PRINT_ERROR("Runtime error: %s", "Assert failed");
1709 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1020);
1710 fatal_exit(1);
1711 }
1712 {
1713 { /* Inline parser_nodes$AReassignFormExpr$n_value (self) on <self:AReassignFormExpr> */
1714 var36 = self->attrs[COLOR_nitc__parser_nodes__AReassignFormExpr___n_value].val; /* _n_value on <self:AReassignFormExpr> */
1715 if (unlikely(var36 == NULL)) {
1716 if(catchStack.cursor >= 0){
1717 longjmp(catchStack.envs[catchStack.cursor], 1);
1718 }
1719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_value");
1720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2084);
1721 fatal_exit(1);
1722 }
1723 var34 = var36;
1724 RET_LABEL35:(void)0;
1725 }
1726 }
1727 {
1728 { /* Inline model$MSignature$mparameters (var_msignature) on <var_msignature:MSignature> */
1729 var39 = var_msignature->attrs[COLOR_nitc__model__MSignature___mparameters].val; /* _mparameters on <var_msignature:MSignature> */
1730 if (unlikely(var39 == NULL)) {
1731 if(catchStack.cursor >= 0){
1732 longjmp(catchStack.envs[catchStack.cursor], 1);
1733 }
1734 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
1735 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1879);
1736 fatal_exit(1);
1737 }
1738 var37 = var39;
1739 RET_LABEL38:(void)0;
1740 }
1741 }
1742 {
1743 var40 = core___core__SequenceRead___Collection__first(var37);
1744 }
1745 {
1746 { /* Inline model$MParameter$mtype (var40) on <var40:nullable Object(MParameter)> */
1747 var43 = var40->attrs[COLOR_nitc__model__MParameter___mtype].val; /* _mtype on <var40:nullable Object(MParameter)> */
1748 if (unlikely(var43 == NULL)) {
1749 if(catchStack.cursor >= 0){
1750 longjmp(catchStack.envs[catchStack.cursor], 1);
1751 }
1752 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
1753 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1996);
1754 fatal_exit(1);
1755 }
1756 var41 = var43;
1757 RET_LABEL42:(void)0;
1758 }
1759 }
1760 {
1761 var44 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var34, var41);
1762 }
1763 var_value_type = var44;
1764 if (var_value_type == NULL) {
1765 var45 = 1; /* is null */
1766 } else {
1767 var45 = 0; /* arg is null but recv is not */
1768 }
1769 if (0) {
1770 { /* Inline kernel$Object$== (var_value_type,((val*)NULL)) on <var_value_type:nullable MType> */
1771 var_other = ((val*)NULL);
1772 {
1773 { /* Inline kernel$Object$is_same_instance (var_value_type,var_other) on <var_value_type:nullable MType(MType)> */
1774 var50 = var_value_type == var_other;
1775 var48 = var50;
1776 goto RET_LABEL49;
1777 RET_LABEL49:(void)0;
1778 }
1779 }
1780 var46 = var48;
1781 goto RET_LABEL47;
1782 RET_LABEL47:(void)0;
1783 }
1784 var45 = var46;
1785 }
1786 if (var45){
1787 var = ((val*)NULL);
1788 goto RET_LABEL;
1789 } else {
1790 }
1791 {
1792 var51 = nitc__typing___nitc__typing__TypeVisitor___check_subtype(var_v, self, var_rettype, var_writetype, 0);
1793 }
1794 var = var_rettype;
1795 goto RET_LABEL;
1796 RET_LABEL:;
1797 return var;
1798 }
1799 /* method typing$AVarReassignExpr$accept_typing for (self: AVarReassignExpr, TypeVisitor) */
1800 void nitc__typing___AVarReassignExpr___AExpr__accept_typing(val* self, val* p0) {
1801 val* var_v /* var v: TypeVisitor */;
1802 val* var /* : nullable Variable */;
1803 val* var2 /* : nullable Variable */;
1804 val* var_variable /* var variable: nullable Variable */;
1805 short int var3 /* : Bool */;
1806 short int var4 /* : Bool */;
1807 val* var_other /* var other: nullable Object */;
1808 short int var6 /* : Bool */;
1809 short int var7 /* : Bool */;
1810 val* var8 /* : nullable MType */;
1811 val* var_readtype /* var readtype: nullable MType */;
1812 short int var9 /* : Bool */;
1813 short int var10 /* : Bool */;
1814 val* var_other12 /* var other: nullable Object */;
1815 short int var13 /* : Bool */;
1816 short int var15 /* : Bool */;
1817 val* var17 /* : nullable MType */;
1818 val* var19 /* : nullable MType */;
1819 val* var_writetype /* var writetype: nullable MType */;
1820 short int var20 /* : Bool */;
1821 short int var21 /* : Bool */;
1822 short int var23 /* : Bool */;
1823 short int var25 /* : Bool */;
1824 val* var26 /* : nullable MType */;
1825 val* var_rettype /* var rettype: nullable MType */;
1826 short int var27 /* : Bool */;
1827 short int var28 /* : Bool */;
1828 short int var30 /* : Bool */;
1829 short int var31 /* : Bool */;
1830 var_v = p0;
1831 {
1832 { /* Inline scope$AVarFormExpr$variable (self) on <self:AVarReassignExpr> */
1833 var2 = self->attrs[COLOR_nitc__scope__AVarFormExpr___variable].val; /* _variable on <self:AVarReassignExpr> */
1834 var = var2;
1835 RET_LABEL1:(void)0;
1836 }
1837 }
1838 var_variable = var;
1839 if (var_variable == NULL) {
1840 var3 = 0; /* is null */
1841 } else {
1842 var3 = 1; /* arg is null and recv is not */
1843 }
1844 if (0) {
1845 { /* Inline kernel$Object$!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
1846 var_other = ((val*)NULL);
1847 {
1848 var6 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on <var_variable:nullable Variable(Variable)>*/
1849 }
1850 var7 = !var6;
1851 var4 = var7;
1852 goto RET_LABEL5;
1853 RET_LABEL5:(void)0;
1854 }
1855 var3 = var4;
1856 }
1857 if (unlikely(!var3)) {
1858 if(catchStack.cursor >= 0){
1859 longjmp(catchStack.envs[catchStack.cursor], 1);
1860 }
1861 PRINT_ERROR("Runtime error: %s", "Assert failed");
1862 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1034);
1863 fatal_exit(1);
1864 }
1865 {
1866 var8 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable);
1867 }
1868 var_readtype = var8;
1869 if (var_readtype == NULL) {
1870 var9 = 1; /* is null */
1871 } else {
1872 var9 = 0; /* arg is null but recv is not */
1873 }
1874 if (0) {
1875 { /* Inline kernel$Object$== (var_readtype,((val*)NULL)) on <var_readtype:nullable MType> */
1876 var_other12 = ((val*)NULL);
1877 {
1878 { /* Inline kernel$Object$is_same_instance (var_readtype,var_other12) on <var_readtype:nullable MType(MType)> */
1879 var15 = var_readtype == var_other12;
1880 var13 = var15;
1881 goto RET_LABEL14;
1882 RET_LABEL14:(void)0;
1883 }
1884 }
1885 var10 = var13;
1886 goto RET_LABEL11;
1887 RET_LABEL11:(void)0;
1888 }
1889 var9 = var10;
1890 }
1891 if (var9){
1892 goto RET_LABEL;
1893 } else {
1894 }
1895 {
1896 { /* Inline typing$AReassignFormExpr$read_type= (self,var_readtype) on <self:AVarReassignExpr> */
1897 self->attrs[COLOR_nitc__typing__AReassignFormExpr___read_type].val = var_readtype; /* _read_type on <self:AVarReassignExpr> */
1898 RET_LABEL16:(void)0;
1899 }
1900 }
1901 {
1902 { /* Inline typing$Variable$declared_type (var_variable) on <var_variable:nullable Variable(Variable)> */
1903 var19 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:nullable Variable(Variable)> */
1904 var17 = var19;
1905 RET_LABEL18:(void)0;
1906 }
1907 }
1908 var_writetype = var17;
1909 if (var_writetype == NULL) {
1910 var20 = 1; /* is null */
1911 } else {
1912 var20 = 0; /* arg is null but recv is not */
1913 }
1914 if (0) {
1915 { /* Inline kernel$Object$== (var_writetype,((val*)NULL)) on <var_writetype:nullable MType> */
1916 var_other12 = ((val*)NULL);
1917 {
1918 { /* Inline kernel$Object$is_same_instance (var_writetype,var_other12) on <var_writetype:nullable MType(MType)> */
1919 var25 = var_writetype == var_other12;
1920 var23 = var25;
1921 goto RET_LABEL24;
1922 RET_LABEL24:(void)0;
1923 }
1924 }
1925 var21 = var23;
1926 goto RET_LABEL22;
1927 RET_LABEL22:(void)0;
1928 }
1929 var20 = var21;
1930 }
1931 if (var20){
1932 goto RET_LABEL;
1933 } else {
1934 }
1935 {
1936 var26 = nitc__typing___AReassignFormExpr___resolve_reassignment(self, var_v, var_readtype, var_writetype);
1937 }
1938 var_rettype = var26;
1939 {
1940 nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v, self, var_variable, var_rettype); /* Direct call typing$TypeVisitor$set_variable on <var_v:TypeVisitor>*/
1941 }
1942 if (var_rettype == NULL) {
1943 var27 = 0; /* is null */
1944 } else {
1945 var27 = 1; /* arg is null and recv is not */
1946 }
1947 if (0) {
1948 { /* Inline kernel$Object$!= (var_rettype,((val*)NULL)) on <var_rettype:nullable MType> */
1949 var_other = ((val*)NULL);
1950 {
1951 var30 = ((short int(*)(val* self, val* p0))(var_rettype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_rettype, var_other); /* == on <var_rettype:nullable MType(MType)>*/
1952 }
1953 var31 = !var30;
1954 var28 = var31;
1955 goto RET_LABEL29;
1956 RET_LABEL29:(void)0;
1957 }
1958 var27 = var28;
1959 }
1960 {
1961 { /* Inline typing$AExpr$is_typed= (self,var27) on <self:AVarReassignExpr> */
1962 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = var27; /* _is_typed on <self:AVarReassignExpr> */
1963 RET_LABEL32:(void)0;
1964 }
1965 }
1966 RET_LABEL:;
1967 }
1968 /* method typing$AContinueExpr$accept_typing for (self: AContinueExpr, TypeVisitor) */
1969 void nitc__typing___AContinueExpr___AExpr__accept_typing(val* self, val* p0) {
1970 val* var_v /* var v: TypeVisitor */;
1971 val* var /* : nullable AExpr */;
1972 val* var2 /* : nullable AExpr */;
1973 val* var_nexpr /* var nexpr: nullable AExpr */;
1974 short int var3 /* : Bool */;
1975 short int var4 /* : Bool */;
1976 val* var_other /* var other: nullable Object */;
1977 short int var6 /* : Bool */;
1978 short int var7 /* : Bool */;
1979 val* var8 /* : nullable MType */;
1980 var_v = p0;
1981 {
1982 { /* Inline parser_nodes$AEscapeExpr$n_expr (self) on <self:AContinueExpr> */
1983 var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on <self:AContinueExpr> */
1984 var = var2;
1985 RET_LABEL1:(void)0;
1986 }
1987 }
1988 var_nexpr = var;
1989 if (var_nexpr == NULL) {
1990 var3 = 0; /* is null */
1991 } else {
1992 var3 = 1; /* arg is null and recv is not */
1993 }
1994 if (0) {
1995 { /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
1996 var_other = ((val*)NULL);
1997 {
1998 var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
1999 }
2000 var7 = !var6;
2001 var4 = var7;
2002 goto RET_LABEL5;
2003 RET_LABEL5:(void)0;
2004 }
2005 var3 = var4;
2006 }
2007 if (var3){
2008 {
2009 var8 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr);
2010 }
2011 } else {
2012 }
2013 {
2014 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AContinueExpr> */
2015 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AContinueExpr> */
2016 RET_LABEL9:(void)0;
2017 }
2018 }
2019 RET_LABEL:;
2020 }
2021 /* method typing$ABreakExpr$accept_typing for (self: ABreakExpr, TypeVisitor) */
2022 void nitc__typing___ABreakExpr___AExpr__accept_typing(val* self, val* p0) {
2023 val* var_v /* var v: TypeVisitor */;
2024 val* var /* : nullable AExpr */;
2025 val* var2 /* : nullable AExpr */;
2026 val* var_nexpr /* var nexpr: nullable AExpr */;
2027 short int var3 /* : Bool */;
2028 short int var4 /* : Bool */;
2029 val* var_other /* var other: nullable Object */;
2030 short int var6 /* : Bool */;
2031 short int var7 /* : Bool */;
2032 val* var8 /* : nullable MType */;
2033 var_v = p0;
2034 {
2035 { /* Inline parser_nodes$AEscapeExpr$n_expr (self) on <self:ABreakExpr> */
2036 var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on <self:ABreakExpr> */
2037 var = var2;
2038 RET_LABEL1:(void)0;
2039 }
2040 }
2041 var_nexpr = var;
2042 if (var_nexpr == NULL) {
2043 var3 = 0; /* is null */
2044 } else {
2045 var3 = 1; /* arg is null and recv is not */
2046 }
2047 if (0) {
2048 { /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
2049 var_other = ((val*)NULL);
2050 {
2051 var6 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
2052 }
2053 var7 = !var6;
2054 var4 = var7;
2055 goto RET_LABEL5;
2056 RET_LABEL5:(void)0;
2057 }
2058 var3 = var4;
2059 }
2060 if (var3){
2061 {
2062 var8 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr);
2063 }
2064 } else {
2065 }
2066 {
2067 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ABreakExpr> */
2068 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ABreakExpr> */
2069 RET_LABEL9:(void)0;
2070 }
2071 }
2072 RET_LABEL:;
2073 }
2074 /* method typing$AReturnExpr$accept_typing for (self: AReturnExpr, TypeVisitor) */
2075 void nitc__typing___AReturnExpr___AExpr__accept_typing(val* self, val* p0) {
2076 val* var_v /* var v: TypeVisitor */;
2077 val* var /* : nullable AExpr */;
2078 val* var2 /* : nullable AExpr */;
2079 val* var_nexpr /* var nexpr: nullable AExpr */;
2080 val* var3 /* : nullable MPropDef */;
2081 val* var5 /* : nullable MPropDef */;
2082 val* var_mpropdef /* var mpropdef: nullable MPropDef */;
2083 short int var6 /* : Bool */;
2084 int cltype;
2085 int idtype;
2086 val* var7 /* : nullable MSignature */;
2087 val* var9 /* : nullable MSignature */;
2088 val* var10 /* : nullable MType */;
2089 val* var12 /* : nullable MType */;
2090 val* var_ret_type /* var ret_type: nullable Object */;
2091 short int var13 /* : Bool */;
2092 int cltype14;
2093 int idtype15;
2094 val* var16 /* : nullable MType */;
2095 val* var18 /* : nullable MType */;
2096 short int var19 /* : Bool */;
2097 short int var20 /* : Bool */;
2098 val* var_other /* var other: nullable Object */;
2099 short int var22 /* : Bool */;
2100 short int var23 /* : Bool */;
2101 short int var24 /* : Bool */;
2102 short int var25 /* : Bool */;
2103 short int var27 /* : Bool */;
2104 short int var28 /* : Bool */;
2105 val* var29 /* : nullable MType */;
2106 val* var30 /* : nullable MType */;
2107 static val* varonce;
2108 val* var31 /* : String */;
2109 char* var32 /* : CString */;
2110 val* var33 /* : String */;
2111 val* var34 /* : nullable Int */;
2112 val* var35 /* : nullable Int */;
2113 val* var36 /* : nullable Bool */;
2114 val* var37 /* : nullable Bool */;
2115 short int var38 /* : Bool */;
2116 short int var39 /* : Bool */;
2117 short int var41 /* : Bool */;
2118 short int var42 /* : Bool */;
2119 static val* varonce43;
2120 val* var44 /* : String */;
2121 char* var45 /* : CString */;
2122 val* var46 /* : String */;
2123 val* var47 /* : nullable Int */;
2124 val* var48 /* : nullable Int */;
2125 val* var49 /* : nullable Bool */;
2126 val* var50 /* : nullable Bool */;
2127 var_v = p0;
2128 {
2129 { /* Inline parser_nodes$AEscapeExpr$n_expr (self) on <self:AReturnExpr> */
2130 var2 = self->attrs[COLOR_nitc__parser_nodes__AEscapeExpr___n_expr].val; /* _n_expr on <self:AReturnExpr> */
2131 var = var2;
2132 RET_LABEL1:(void)0;
2133 }
2134 }
2135 var_nexpr = var;
2136 {
2137 { /* Inline typing$TypeVisitor$mpropdef (var_v) on <var_v:TypeVisitor> */
2138 var5 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mpropdef].val; /* _mpropdef on <var_v:TypeVisitor> */
2139 var3 = var5;
2140 RET_LABEL4:(void)0;
2141 }
2142 }
2143 var_mpropdef = var3;
2144 /* <var_mpropdef:nullable MPropDef> isa MMethodDef */
2145 cltype = type_nitc__MMethodDef.color;
2146 idtype = type_nitc__MMethodDef.id;
2147 if(var_mpropdef == NULL) {
2148 var6 = 0;
2149 } else {
2150 if(cltype >= var_mpropdef->type->table_size) {
2151 var6 = 0;
2152 } else {
2153 var6 = var_mpropdef->type->type_table[cltype] == idtype;
2154 }
2155 }
2156 if (var6){
2157 {
2158 { /* Inline model$MMethodDef$msignature (var_mpropdef) on <var_mpropdef:nullable MPropDef(MMethodDef)> */
2159 var9 = var_mpropdef->attrs[COLOR_nitc__model__MMethodDef___msignature].val; /* _msignature on <var_mpropdef:nullable MPropDef(MMethodDef)> */
2160 var7 = var9;
2161 RET_LABEL8:(void)0;
2162 }
2163 }
2164 if (var7 == NULL) {
2165 if(catchStack.cursor >= 0){
2166 longjmp(catchStack.envs[catchStack.cursor], 1);
2167 }
2168 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2169 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1082);
2170 fatal_exit(1);
2171 } else {
2172 { /* Inline model$MSignature$return_mtype (var7) on <var7:nullable MSignature> */
2173 if (unlikely(var7 == NULL)) {
2174 if(catchStack.cursor >= 0){
2175 longjmp(catchStack.envs[catchStack.cursor], 1);
2176 }
2177 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2178 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 1891);
2179 fatal_exit(1);
2180 }
2181 var12 = var7->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var7:nullable MSignature> */
2182 var10 = var12;
2183 RET_LABEL11:(void)0;
2184 }
2185 }
2186 var_ret_type = var10;
2187 } else {
2188 /* <var_mpropdef:nullable MPropDef> isa MAttributeDef */
2189 cltype14 = type_nitc__MAttributeDef.color;
2190 idtype15 = type_nitc__MAttributeDef.id;
2191 if(var_mpropdef == NULL) {
2192 var13 = 0;
2193 } else {
2194 if(cltype14 >= var_mpropdef->type->table_size) {
2195 var13 = 0;
2196 } else {
2197 var13 = var_mpropdef->type->type_table[cltype14] == idtype15;
2198 }
2199 }
2200 if (var13){
2201 {
2202 { /* Inline model$MAttributeDef$static_mtype (var_mpropdef) on <var_mpropdef:nullable MPropDef(MAttributeDef)> */
2203 var18 = var_mpropdef->attrs[COLOR_nitc__model__MAttributeDef___static_mtype].val; /* _static_mtype on <var_mpropdef:nullable MPropDef(MAttributeDef)> */
2204 var16 = var18;
2205 RET_LABEL17:(void)0;
2206 }
2207 }
2208 var_ret_type = var16;
2209 } else {
2210 if(catchStack.cursor >= 0){
2211 longjmp(catchStack.envs[catchStack.cursor], 1);
2212 }
2213 PRINT_ERROR("Runtime error: %s", "Aborted");
2214 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1086);
2215 fatal_exit(1);
2216 }
2217 }
2218 if (var_nexpr == NULL) {
2219 var19 = 0; /* is null */
2220 } else {
2221 var19 = 1; /* arg is null and recv is not */
2222 }
2223 if (0) {
2224 { /* Inline kernel$Object$!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
2225 var_other = ((val*)NULL);
2226 {
2227 var22 = ((short int(*)(val* self, val* p0))(var_nexpr->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_nexpr, var_other); /* == on <var_nexpr:nullable AExpr(AExpr)>*/
2228 }
2229 var23 = !var22;
2230 var20 = var23;
2231 goto RET_LABEL21;
2232 RET_LABEL21:(void)0;
2233 }
2234 var19 = var20;
2235 }
2236 if (var19){
2237 if (var_ret_type == NULL) {
2238 var24 = 0; /* is null */
2239 } else {
2240 var24 = 1; /* arg is null and recv is not */
2241 }
2242 if (0) {
2243 { /* Inline kernel$Object$!= (var_ret_type,((val*)NULL)) on <var_ret_type:nullable Object(nullable MType)> */
2244 var_other = ((val*)NULL);
2245 {
2246 var27 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other); /* == on <var_ret_type:nullable Object(MType)>*/
2247 }
2248 var28 = !var27;
2249 var25 = var28;
2250 goto RET_LABEL26;
2251 RET_LABEL26:(void)0;
2252 }
2253 var24 = var25;
2254 }
2255 if (var24){
2256 {
2257 var29 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_ret_type);
2258 }
2259 } else {
2260 {
2261 var30 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_nexpr);
2262 }
2263 if (likely(varonce!=NULL)) {
2264 var31 = varonce;
2265 } else {
2266 var32 = "Error: `return` with value in a procedure.";
2267 var34 = (val*)(42l<<2|1);
2268 var35 = (val*)(42l<<2|1);
2269 var36 = (val*)((long)(0)<<2|3);
2270 var37 = (val*)((long)(0)<<2|3);
2271 var33 = core__flat___CString___to_s_unsafe(var32, var34, var35, var36, var37);
2272 var31 = var33;
2273 varonce = var31;
2274 }
2275 {
2276 nitc__typing___nitc__typing__TypeVisitor___error(var_v, var_nexpr, var31); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
2277 }
2278 goto RET_LABEL;
2279 }
2280 } else {
2281 if (var_ret_type == NULL) {
2282 var38 = 0; /* is null */
2283 } else {
2284 var38 = 1; /* arg is null and recv is not */
2285 }
2286 if (0) {
2287 { /* Inline kernel$Object$!= (var_ret_type,((val*)NULL)) on <var_ret_type:nullable Object(nullable MType)> */
2288 var_other = ((val*)NULL);
2289 {
2290 var41 = ((short int(*)(val* self, val* p0))(var_ret_type->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ret_type, var_other); /* == on <var_ret_type:nullable Object(MType)>*/
2291 }
2292 var42 = !var41;
2293 var39 = var42;
2294 goto RET_LABEL40;
2295 RET_LABEL40:(void)0;
2296 }
2297 var38 = var39;
2298 }
2299 if (var38){
2300 if (likely(varonce43!=NULL)) {
2301 var44 = varonce43;
2302 } else {
2303 var45 = "Error: `return` without value in a function.";
2304 var47 = (val*)(44l<<2|1);
2305 var48 = (val*)(44l<<2|1);
2306 var49 = (val*)((long)(0)<<2|3);
2307 var50 = (val*)((long)(0)<<2|3);
2308 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
2309 var44 = var46;
2310 varonce43 = var44;
2311 }
2312 {
2313 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var44); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
2314 }
2315 goto RET_LABEL;
2316 } else {
2317 }
2318 }
2319 {
2320 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AReturnExpr> */
2321 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AReturnExpr> */
2322 RET_LABEL51:(void)0;
2323 }
2324 }
2325 RET_LABEL:;
2326 }
2327 /* method typing$AAbortExpr$accept_typing for (self: AAbortExpr, TypeVisitor) */
2328 void nitc__typing___AAbortExpr___AExpr__accept_typing(val* self, val* p0) {
2329 val* var_v /* var v: TypeVisitor */;
2330 var_v = p0;
2331 {
2332 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AAbortExpr> */
2333 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AAbortExpr> */
2334 RET_LABEL1:(void)0;
2335 }
2336 }
2337 RET_LABEL:;
2338 }
2339 /* method typing$AIfExpr$accept_typing for (self: AIfExpr, TypeVisitor) */
2340 void nitc__typing___AIfExpr___AExpr__accept_typing(val* self, val* p0) {
2341 val* var_v /* var v: TypeVisitor */;
2342 val* var /* : AExpr */;
2343 val* var2 /* : AExpr */;
2344 val* var3 /* : nullable MType */;
2345 val* var4 /* : nullable AExpr */;
2346 val* var6 /* : nullable AExpr */;
2347 val* var7 /* : nullable AExpr */;
2348 val* var9 /* : nullable AExpr */;
2349 short int var11 /* : Bool */;
2350 val* var12 /* : nullable AExpr */;
2351 val* var14 /* : nullable AExpr */;
2352 short int var15 /* : Bool */;
2353 short int var16 /* : Bool */;
2354 val* var_other /* var other: nullable Object */;
2355 short int var18 /* : Bool */;
2356 short int var19 /* : Bool */;
2357 short int var_ /* var : Bool */;
2358 val* var20 /* : nullable AExpr */;
2359 val* var22 /* : nullable AExpr */;
2360 short int var23 /* : Bool */;
2361 short int var24 /* : Bool */;
2362 val* var_other26 /* var other: nullable Object */;
2363 short int var27 /* : Bool */;
2364 short int var29 /* : Bool */;
2365 val* var30 /* : nullable AExpr */;
2366 val* var32 /* : nullable AExpr */;
2367 val* var33 /* : nullable MType */;
2368 var_v = p0;
2369 {
2370 { /* Inline parser_nodes$AIfExpr$n_expr (self) on <self:AIfExpr> */
2371 var2 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_expr].val; /* _n_expr on <self:AIfExpr> */
2372 if (unlikely(var2 == NULL)) {
2373 if(catchStack.cursor >= 0){
2374 longjmp(catchStack.envs[catchStack.cursor], 1);
2375 }
2376 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2377 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1924);
2378 fatal_exit(1);
2379 }
2380 var = var2;
2381 RET_LABEL1:(void)0;
2382 }
2383 }
2384 {
2385 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
2386 }
2387 {
2388 { /* Inline parser_nodes$AIfExpr$n_then (self) on <self:AIfExpr> */
2389 var6 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
2390 var4 = var6;
2391 RET_LABEL5:(void)0;
2392 }
2393 }
2394 {
2395 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var4); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
2396 }
2397 {
2398 { /* Inline parser_nodes$AIfExpr$n_else (self) on <self:AIfExpr> */
2399 var9 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
2400 var7 = var9;
2401 RET_LABEL8:(void)0;
2402 }
2403 }
2404 {
2405 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var7); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
2406 }
2407 {
2408 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AIfExpr> */
2409 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AIfExpr> */
2410 RET_LABEL10:(void)0;
2411 }
2412 }
2413 {
2414 { /* Inline parser_nodes$AIfExpr$n_then (self) on <self:AIfExpr> */
2415 var14 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
2416 var12 = var14;
2417 RET_LABEL13:(void)0;
2418 }
2419 }
2420 if (var12 == NULL) {
2421 var15 = 0; /* is null */
2422 } else {
2423 var15 = 1; /* arg is null and recv is not */
2424 }
2425 if (0) {
2426 { /* Inline kernel$Object$!= (var12,((val*)NULL)) on <var12:nullable AExpr> */
2427 var_other = ((val*)NULL);
2428 {
2429 var18 = ((short int(*)(val* self, val* p0))(var12->class->vft[COLOR_core__kernel__Object___61d_61d]))(var12, var_other); /* == on <var12:nullable AExpr(AExpr)>*/
2430 }
2431 var19 = !var18;
2432 var16 = var19;
2433 goto RET_LABEL17;
2434 RET_LABEL17:(void)0;
2435 }
2436 var15 = var16;
2437 }
2438 var_ = var15;
2439 if (var15){
2440 {
2441 { /* Inline parser_nodes$AIfExpr$n_else (self) on <self:AIfExpr> */
2442 var22 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <self:AIfExpr> */
2443 var20 = var22;
2444 RET_LABEL21:(void)0;
2445 }
2446 }
2447 if (var20 == NULL) {
2448 var23 = 1; /* is null */
2449 } else {
2450 var23 = 0; /* arg is null but recv is not */
2451 }
2452 if (0) {
2453 { /* Inline kernel$Object$== (var20,((val*)NULL)) on <var20:nullable AExpr> */
2454 var_other26 = ((val*)NULL);
2455 {
2456 { /* Inline kernel$Object$is_same_instance (var20,var_other26) on <var20:nullable AExpr(AExpr)> */
2457 var29 = var20 == var_other26;
2458 var27 = var29;
2459 goto RET_LABEL28;
2460 RET_LABEL28:(void)0;
2461 }
2462 }
2463 var24 = var27;
2464 goto RET_LABEL25;
2465 RET_LABEL25:(void)0;
2466 }
2467 var23 = var24;
2468 }
2469 var11 = var23;
2470 } else {
2471 var11 = var_;
2472 }
2473 if (var11){
2474 {
2475 { /* Inline parser_nodes$AIfExpr$n_then (self) on <self:AIfExpr> */
2476 var32 = self->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <self:AIfExpr> */
2477 var30 = var32;
2478 RET_LABEL31:(void)0;
2479 }
2480 }
2481 if (var30 == 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__typing, 1122);
2487 fatal_exit(1);
2488 } else {
2489 var33 = ((val*(*)(val* self))(var30->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var30); /* mtype on <var30:nullable AExpr>*/
2490 }
2491 {
2492 { /* Inline typing$AExpr$mtype= (self,var33) on <self:AIfExpr> */
2493 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var33; /* _mtype on <self:AIfExpr> */
2494 RET_LABEL34:(void)0;
2495 }
2496 }
2497 } else {
2498 }
2499 RET_LABEL:;
2500 }
2501 /* method typing$AIfexprExpr$accept_typing for (self: AIfexprExpr, TypeVisitor) */
2502 void nitc__typing___AIfexprExpr___AExpr__accept_typing(val* self, val* p0) {
2503 val* var_v /* var v: TypeVisitor */;
2504 val* var /* : AExpr */;
2505 val* var2 /* : AExpr */;
2506 val* var3 /* : nullable MType */;
2507 val* var4 /* : AExpr */;
2508 val* var6 /* : AExpr */;
2509 val* var7 /* : nullable MType */;
2510 val* var_t1 /* var t1: nullable MType */;
2511 val* var8 /* : AExpr */;
2512 val* var10 /* : AExpr */;
2513 val* var11 /* : nullable MType */;
2514 val* var_t2 /* var t2: nullable MType */;
2515 short int var12 /* : Bool */;
2516 short int var13 /* : Bool */;
2517 short int var14 /* : Bool */;
2518 val* var_other /* var other: nullable Object */;
2519 short int var16 /* : Bool */;
2520 short int var18 /* : Bool */;
2521 short int var_ /* var : Bool */;
2522 short int var19 /* : Bool */;
2523 short int var20 /* : Bool */;
2524 short int var22 /* : Bool */;
2525 short int var24 /* : Bool */;
2526 val* var25 /* : Array[MType] */;
2527 val* var_26 /* var : Array[MType] */;
2528 val* var27 /* : nullable MType */;
2529 val* var_t /* var t: nullable MType */;
2530 short int var28 /* : Bool */;
2531 short int var29 /* : Bool */;
2532 short int var31 /* : Bool */;
2533 short int var33 /* : Bool */;
2534 val* var34 /* : NativeArray[String] */;
2535 static val* varonce;
2536 static val* varonce35;
2537 val* var36 /* : String */;
2538 char* var37 /* : CString */;
2539 val* var38 /* : String */;
2540 val* var39 /* : nullable Int */;
2541 val* var40 /* : nullable Int */;
2542 val* var41 /* : nullable Bool */;
2543 val* var42 /* : nullable Bool */;
2544 static val* varonce43;
2545 val* var44 /* : String */;
2546 char* var45 /* : CString */;
2547 val* var46 /* : String */;
2548 val* var47 /* : nullable Int */;
2549 val* var48 /* : nullable Int */;
2550 val* var49 /* : nullable Bool */;
2551 val* var50 /* : nullable Bool */;
2552 static val* varonce51;
2553 val* var52 /* : String */;
2554 char* var53 /* : CString */;
2555 val* var54 /* : String */;
2556 val* var55 /* : nullable Int */;
2557 val* var56 /* : nullable Int */;
2558 val* var57 /* : nullable Bool */;
2559 val* var58 /* : nullable Bool */;
2560 val* var59 /* : String */;
2561 val* var60 /* : String */;
2562 val* var61 /* : String */;
2563 var_v = p0;
2564 {
2565 { /* Inline parser_nodes$AIfexprExpr$n_expr (self) on <self:AIfexprExpr> */
2566 var2 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_expr].val; /* _n_expr on <self:AIfexprExpr> */
2567 if (unlikely(var2 == NULL)) {
2568 if(catchStack.cursor >= 0){
2569 longjmp(catchStack.envs[catchStack.cursor], 1);
2570 }
2571 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1947);
2573 fatal_exit(1);
2574 }
2575 var = var2;
2576 RET_LABEL1:(void)0;
2577 }
2578 }
2579 {
2580 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
2581 }
2582 {
2583 { /* Inline parser_nodes$AIfexprExpr$n_then (self) on <self:AIfexprExpr> */
2584 var6 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_then].val; /* _n_then on <self:AIfexprExpr> */
2585 if (unlikely(var6 == NULL)) {
2586 if(catchStack.cursor >= 0){
2587 longjmp(catchStack.envs[catchStack.cursor], 1);
2588 }
2589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_then");
2590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1953);
2591 fatal_exit(1);
2592 }
2593 var4 = var6;
2594 RET_LABEL5:(void)0;
2595 }
2596 }
2597 {
2598 var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var4);
2599 }
2600 var_t1 = var7;
2601 {
2602 { /* Inline parser_nodes$AIfexprExpr$n_else (self) on <self:AIfexprExpr> */
2603 var10 = self->attrs[COLOR_nitc__parser_nodes__AIfexprExpr___n_else].val; /* _n_else on <self:AIfexprExpr> */
2604 if (unlikely(var10 == NULL)) {
2605 if(catchStack.cursor >= 0){
2606 longjmp(catchStack.envs[catchStack.cursor], 1);
2607 }
2608 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_else");
2609 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1959);
2610 fatal_exit(1);
2611 }
2612 var8 = var10;
2613 RET_LABEL9:(void)0;
2614 }
2615 }
2616 {
2617 var11 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var8);
2618 }
2619 var_t2 = var11;
2620 if (var_t1 == NULL) {
2621 var13 = 1; /* is null */
2622 } else {
2623 var13 = 0; /* arg is null but recv is not */
2624 }
2625 if (0) {
2626 { /* Inline kernel$Object$== (var_t1,((val*)NULL)) on <var_t1:nullable MType> */
2627 var_other = ((val*)NULL);
2628 {
2629 { /* Inline kernel$Object$is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
2630 var18 = var_t1 == var_other;
2631 var16 = var18;
2632 goto RET_LABEL17;
2633 RET_LABEL17:(void)0;
2634 }
2635 }
2636 var14 = var16;
2637 goto RET_LABEL15;
2638 RET_LABEL15:(void)0;
2639 }
2640 var13 = var14;
2641 }
2642 var_ = var13;
2643 if (var13){
2644 var12 = var_;
2645 } else {
2646 if (var_t2 == NULL) {
2647 var19 = 1; /* is null */
2648 } else {
2649 var19 = 0; /* arg is null but recv is not */
2650 }
2651 if (0) {
2652 { /* Inline kernel$Object$== (var_t2,((val*)NULL)) on <var_t2:nullable MType> */
2653 var_other = ((val*)NULL);
2654 {
2655 { /* Inline kernel$Object$is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
2656 var24 = var_t2 == var_other;
2657 var22 = var24;
2658 goto RET_LABEL23;
2659 RET_LABEL23:(void)0;
2660 }
2661 }
2662 var20 = var22;
2663 goto RET_LABEL21;
2664 RET_LABEL21:(void)0;
2665 }
2666 var19 = var20;
2667 }
2668 var12 = var19;
2669 }
2670 if (var12){
2671 goto RET_LABEL;
2672 } else {
2673 }
2674 var25 = NEW_core__Array(&type_core__Array__nitc__MType);
2675 {
2676 core___core__Array___with_capacity(var25, 2l); /* Direct call array$Array$with_capacity on <var25:Array[MType]>*/
2677 }
2678 var_26 = var25;
2679 {
2680 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t1); /* Direct call array$AbstractArray$push on <var_26:Array[MType]>*/
2681 }
2682 {
2683 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t2); /* Direct call array$AbstractArray$push on <var_26:Array[MType]>*/
2684 }
2685 {
2686 var27 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_26);
2687 }
2688 var_t = var27;
2689 if (var_t == NULL) {
2690 var28 = 1; /* is null */
2691 } else {
2692 var28 = 0; /* arg is null but recv is not */
2693 }
2694 if (0) {
2695 { /* Inline kernel$Object$== (var_t,((val*)NULL)) on <var_t:nullable MType> */
2696 var_other = ((val*)NULL);
2697 {
2698 { /* Inline kernel$Object$is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
2699 var33 = var_t == var_other;
2700 var31 = var33;
2701 goto RET_LABEL32;
2702 RET_LABEL32:(void)0;
2703 }
2704 }
2705 var29 = var31;
2706 goto RET_LABEL30;
2707 RET_LABEL30:(void)0;
2708 }
2709 var28 = var29;
2710 }
2711 if (var28){
2712 if (unlikely(varonce==NULL)) {
2713 var34 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
2714 if (likely(varonce35!=NULL)) {
2715 var36 = varonce35;
2716 } else {
2717 var37 = "Type Error: ambiguous type `";
2718 var39 = (val*)(28l<<2|1);
2719 var40 = (val*)(28l<<2|1);
2720 var41 = (val*)((long)(0)<<2|3);
2721 var42 = (val*)((long)(0)<<2|3);
2722 var38 = core__flat___CString___to_s_unsafe(var37, var39, var40, var41, var42);
2723 var36 = var38;
2724 varonce35 = var36;
2725 }
2726 ((struct instance_core__NativeArray*)var34)->values[0]=var36;
2727 if (likely(varonce43!=NULL)) {
2728 var44 = varonce43;
2729 } else {
2730 var45 = "` vs `";
2731 var47 = (val*)(6l<<2|1);
2732 var48 = (val*)(6l<<2|1);
2733 var49 = (val*)((long)(0)<<2|3);
2734 var50 = (val*)((long)(0)<<2|3);
2735 var46 = core__flat___CString___to_s_unsafe(var45, var47, var48, var49, var50);
2736 var44 = var46;
2737 varonce43 = var44;
2738 }
2739 ((struct instance_core__NativeArray*)var34)->values[2]=var44;
2740 if (likely(varonce51!=NULL)) {
2741 var52 = varonce51;
2742 } else {
2743 var53 = "`.";
2744 var55 = (val*)(2l<<2|1);
2745 var56 = (val*)(2l<<2|1);
2746 var57 = (val*)((long)(0)<<2|3);
2747 var58 = (val*)((long)(0)<<2|3);
2748 var54 = core__flat___CString___to_s_unsafe(var53, var55, var56, var57, var58);
2749 var52 = var54;
2750 varonce51 = var52;
2751 }
2752 ((struct instance_core__NativeArray*)var34)->values[4]=var52;
2753 } else {
2754 var34 = varonce;
2755 varonce = NULL;
2756 }
2757 {
2758 var59 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t1); /* to_s on <var_t1:nullable MType(MType)>*/
2759 }
2760 ((struct instance_core__NativeArray*)var34)->values[1]=var59;
2761 {
2762 var60 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t2); /* to_s on <var_t2:nullable MType(MType)>*/
2763 }
2764 ((struct instance_core__NativeArray*)var34)->values[3]=var60;
2765 {
2766 var61 = ((val*(*)(val* self))(var34->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var34); /* native_to_s on <var34:NativeArray[String]>*/
2767 }
2768 varonce = var34;
2769 {
2770 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var61); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
2771 }
2772 } else {
2773 }
2774 {
2775 { /* Inline typing$AExpr$mtype= (self,var_t) on <self:AIfexprExpr> */
2776 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t; /* _mtype on <self:AIfexprExpr> */
2777 RET_LABEL62:(void)0;
2778 }
2779 }
2780 RET_LABEL:;
2781 }
2782 /* method typing$ADoExpr$accept_typing for (self: ADoExpr, TypeVisitor) */
2783 void nitc__typing___ADoExpr___AExpr__accept_typing(val* self, val* p0) {
2784 val* var_v /* var v: TypeVisitor */;
2785 val* var /* : nullable AExpr */;
2786 val* var2 /* : nullable AExpr */;
2787 val* var3 /* : nullable AExpr */;
2788 val* var5 /* : nullable AExpr */;
2789 var_v = p0;
2790 {
2791 { /* Inline parser_nodes$ADoExpr$n_block (self) on <self:ADoExpr> */
2792 var2 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_block].val; /* _n_block on <self:ADoExpr> */
2793 var = var2;
2794 RET_LABEL1:(void)0;
2795 }
2796 }
2797 {
2798 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
2799 }
2800 {
2801 { /* Inline parser_nodes$ADoExpr$n_catch (self) on <self:ADoExpr> */
2802 var5 = self->attrs[COLOR_nitc__parser_nodes__ADoExpr___n_catch].val; /* _n_catch on <self:ADoExpr> */
2803 var3 = var5;
2804 RET_LABEL4:(void)0;
2805 }
2806 }
2807 {
2808 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var3); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
2809 }
2810 {
2811 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ADoExpr> */
2812 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ADoExpr> */
2813 RET_LABEL6:(void)0;
2814 }
2815 }
2816 RET_LABEL:;
2817 }
2818 /* method typing$AWhileExpr$accept_typing for (self: AWhileExpr, TypeVisitor) */
2819 void nitc__typing___AWhileExpr___AExpr__accept_typing(val* self, val* p0) {
2820 val* var_v /* var v: TypeVisitor */;
2821 val* var /* : AExpr */;
2822 val* var3 /* : AExpr */;
2823 val* var4 /* : nullable MType */;
2824 val* var5 /* : nullable AExpr */;
2825 val* var7 /* : nullable AExpr */;
2826 var_v = p0;
2827 {
2828 { /* Inline typing$TypeVisitor$has_loop= (var_v,1) on <var_v:TypeVisitor> */
2829 var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on <var_v:TypeVisitor> */
2830 RET_LABEL1:(void)0;
2831 }
2832 }
2833 {
2834 { /* Inline parser_nodes$AWhileExpr$n_expr (self) on <self:AWhileExpr> */
2835 var3 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_expr].val; /* _n_expr on <self:AWhileExpr> */
2836 if (unlikely(var3 == NULL)) {
2837 if(catchStack.cursor >= 0){
2838 longjmp(catchStack.envs[catchStack.cursor], 1);
2839 }
2840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2841 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 1971);
2842 fatal_exit(1);
2843 }
2844 var = var3;
2845 RET_LABEL2:(void)0;
2846 }
2847 }
2848 {
2849 var4 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
2850 }
2851 {
2852 { /* Inline parser_nodes$AWhileExpr$n_block (self) on <self:AWhileExpr> */
2853 var7 = self->attrs[COLOR_nitc__parser_nodes__AWhileExpr___n_block].val; /* _n_block on <self:AWhileExpr> */
2854 var5 = var7;
2855 RET_LABEL6:(void)0;
2856 }
2857 }
2858 {
2859 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var5); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
2860 }
2861 {
2862 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AWhileExpr> */
2863 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AWhileExpr> */
2864 RET_LABEL8:(void)0;
2865 }
2866 }
2867 RET_LABEL:;
2868 }
2869 /* method typing$ALoopExpr$accept_typing for (self: ALoopExpr, TypeVisitor) */
2870 void nitc__typing___ALoopExpr___AExpr__accept_typing(val* self, val* p0) {
2871 val* var_v /* var v: TypeVisitor */;
2872 val* var /* : nullable AExpr */;
2873 val* var3 /* : nullable AExpr */;
2874 var_v = p0;
2875 {
2876 { /* Inline typing$TypeVisitor$has_loop= (var_v,1) on <var_v:TypeVisitor> */
2877 var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on <var_v:TypeVisitor> */
2878 RET_LABEL1:(void)0;
2879 }
2880 }
2881 {
2882 { /* Inline parser_nodes$ALoopExpr$n_block (self) on <self:ALoopExpr> */
2883 var3 = self->attrs[COLOR_nitc__parser_nodes__ALoopExpr___n_block].val; /* _n_block on <self:ALoopExpr> */
2884 var = var3;
2885 RET_LABEL2:(void)0;
2886 }
2887 }
2888 {
2889 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
2890 }
2891 {
2892 { /* Inline typing$AExpr$is_typed= (self,1) on <self:ALoopExpr> */
2893 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:ALoopExpr> */
2894 RET_LABEL4:(void)0;
2895 }
2896 }
2897 RET_LABEL:;
2898 }
2899 /* method typing$AForExpr$accept_typing for (self: AForExpr, TypeVisitor) */
2900 void nitc__typing___AForExpr___AExpr__accept_typing(val* self, val* p0) {
2901 val* var_v /* var v: TypeVisitor */;
2902 val* var /* : ANodes[AForGroup] */;
2903 val* var3 /* : ANodes[AForGroup] */;
2904 val* var_ /* var : ANodes[AForGroup] */;
2905 val* var4 /* : Iterator[ANode] */;
2906 val* var_5 /* var : Iterator[AForGroup] */;
2907 short int var6 /* : Bool */;
2908 val* var7 /* : nullable Object */;
2909 val* var_g /* var g: AForGroup */;
2910 val* var8 /* : AExpr */;
2911 val* var10 /* : AExpr */;
2912 val* var11 /* : nullable MType */;
2913 val* var_mtype /* var mtype: nullable MType */;
2914 short int var12 /* : Bool */;
2915 short int var13 /* : Bool */;
2916 val* var_other /* var other: nullable Object */;
2917 short int var15 /* : Bool */;
2918 short int var17 /* : Bool */;
2919 short int var18 /* : Bool */;
2920 short int var20 /* : Bool */;
2921 val* var22 /* : nullable AExpr */;
2922 val* var24 /* : nullable AExpr */;
2923 val* var25 /* : nullable AExpr */;
2924 val* var27 /* : nullable AExpr */;
2925 val* var28 /* : nullable MType */;
2926 var_v = p0;
2927 {
2928 { /* Inline typing$TypeVisitor$has_loop= (var_v,1) on <var_v:TypeVisitor> */
2929 var_v->attrs[COLOR_nitc__typing__TypeVisitor___has_loop].s = 1; /* _has_loop on <var_v:TypeVisitor> */
2930 RET_LABEL1:(void)0;
2931 }
2932 }
2933 {
2934 { /* Inline parser_nodes$AForExpr$n_groups (self) on <self:AForExpr> */
2935 var3 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_groups].val; /* _n_groups on <self:AForExpr> */
2936 if (unlikely(var3 == NULL)) {
2937 if(catchStack.cursor >= 0){
2938 longjmp(catchStack.envs[catchStack.cursor], 1);
2939 }
2940 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_groups");
2941 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2001);
2942 fatal_exit(1);
2943 }
2944 var = var3;
2945 RET_LABEL2:(void)0;
2946 }
2947 }
2948 var_ = var;
2949 {
2950 var4 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
2951 }
2952 var_5 = var4;
2953 for(;;) {
2954 {
2955 var6 = ((short int(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_5); /* is_ok on <var_5:Iterator[AForGroup]>*/
2956 }
2957 if (var6){
2958 } else {
2959 goto BREAK_label;
2960 }
2961 {
2962 var7 = ((val*(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_5); /* item on <var_5:Iterator[AForGroup]>*/
2963 }
2964 var_g = var7;
2965 {
2966 { /* Inline parser_nodes$AForGroup$n_expr (var_g) on <var_g:AForGroup> */
2967 var10 = var_g->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <var_g:AForGroup> */
2968 if (unlikely(var10 == NULL)) {
2969 if(catchStack.cursor >= 0){
2970 longjmp(catchStack.envs[catchStack.cursor], 1);
2971 }
2972 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2973 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024);
2974 fatal_exit(1);
2975 }
2976 var8 = var10;
2977 RET_LABEL9:(void)0;
2978 }
2979 }
2980 {
2981 var11 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var8);
2982 }
2983 var_mtype = var11;
2984 if (var_mtype == NULL) {
2985 var12 = 1; /* is null */
2986 } else {
2987 var12 = 0; /* arg is null but recv is not */
2988 }
2989 if (0) {
2990 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
2991 var_other = ((val*)NULL);
2992 {
2993 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
2994 var17 = var_mtype == var_other;
2995 var15 = var17;
2996 goto RET_LABEL16;
2997 RET_LABEL16:(void)0;
2998 }
2999 }
3000 var13 = var15;
3001 goto RET_LABEL14;
3002 RET_LABEL14:(void)0;
3003 }
3004 var12 = var13;
3005 }
3006 if (var12){
3007 goto RET_LABEL;
3008 } else {
3009 }
3010 {
3011 nitc__typing___AForGroup___do_type_iterator(var_g, var_v, var_mtype); /* Direct call typing$AForGroup$do_type_iterator on <var_g:AForGroup>*/
3012 }
3013 {
3014 { /* Inline modelbuilder_base$ANode$is_broken (var_g) on <var_g:AForGroup> */
3015 var20 = var_g->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s; /* _is_broken on <var_g:AForGroup> */
3016 var18 = var20;
3017 RET_LABEL19:(void)0;
3018 }
3019 }
3020 if (var18){
3021 {
3022 { /* Inline modelbuilder_base$ANode$is_broken= (self,1) on <self:AForExpr> */
3023 self->attrs[COLOR_nitc__modelbuilder_base__ANode___is_broken].s = 1; /* _is_broken on <self:AForExpr> */
3024 RET_LABEL21:(void)0;
3025 }
3026 }
3027 } else {
3028 }
3029 {
3030 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_5); /* next on <var_5:Iterator[AForGroup]>*/
3031 }
3032 }
3033 BREAK_label: (void)0;
3034 {
3035 ((void(*)(val* self))((((long)var_5&3)?class_info[((long)var_5&3)]:var_5->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_5); /* finish on <var_5:Iterator[AForGroup]>*/
3036 }
3037 {
3038 { /* Inline parser_nodes$AForExpr$n_block (self) on <self:AForExpr> */
3039 var24 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
3040 var22 = var24;
3041 RET_LABEL23:(void)0;
3042 }
3043 }
3044 {
3045 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var22); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
3046 }
3047 {
3048 { /* Inline parser_nodes$AForExpr$n_block (self) on <self:AForExpr> */
3049 var27 = self->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <self:AForExpr> */
3050 var25 = var27;
3051 RET_LABEL26:(void)0;
3052 }
3053 }
3054 if (var25 == NULL) {
3055 if(catchStack.cursor >= 0){
3056 longjmp(catchStack.envs[catchStack.cursor], 1);
3057 }
3058 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3059 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1189);
3060 fatal_exit(1);
3061 } else {
3062 var28 = ((val*(*)(val* self))(var25->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var25); /* mtype on <var25:nullable AExpr>*/
3063 }
3064 {
3065 { /* Inline typing$AExpr$mtype= (self,var28) on <self:AForExpr> */
3066 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var28; /* _mtype on <self:AForExpr> */
3067 RET_LABEL29:(void)0;
3068 }
3069 }
3070 {
3071 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AForExpr> */
3072 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AForExpr> */
3073 RET_LABEL30:(void)0;
3074 }
3075 }
3076 RET_LABEL:;
3077 }
3078 /* method typing$AForGroup$coltype= for (self: AForGroup, nullable MClassType) */
3079 void nitc__typing___AForGroup___coltype_61d(val* self, val* p0) {
3080 self->attrs[COLOR_nitc__typing__AForGroup___coltype].val = p0; /* _coltype on <self:AForGroup> */
3081 RET_LABEL:;
3082 }
3083 /* method typing$AForGroup$method_iterator for (self: AForGroup): nullable CallSite */
3084 val* nitc__typing___AForGroup___method_iterator(val* self) {
3085 val* var /* : nullable CallSite */;
3086 val* var1 /* : nullable CallSite */;
3087 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val; /* _method_iterator on <self:AForGroup> */
3088 var = var1;
3089 RET_LABEL:;
3090 return var;
3091 }
3092 /* method typing$AForGroup$method_iterator= for (self: AForGroup, nullable CallSite) */
3093 void nitc__typing___AForGroup___method_iterator_61d(val* self, val* p0) {
3094 self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val = p0; /* _method_iterator on <self:AForGroup> */
3095 RET_LABEL:;
3096 }
3097 /* method typing$AForGroup$method_is_ok for (self: AForGroup): nullable CallSite */
3098 val* nitc__typing___AForGroup___method_is_ok(val* self) {
3099 val* var /* : nullable CallSite */;
3100 val* var1 /* : nullable CallSite */;
3101 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val; /* _method_is_ok on <self:AForGroup> */
3102 var = var1;
3103 RET_LABEL:;
3104 return var;
3105 }
3106 /* method typing$AForGroup$method_is_ok= for (self: AForGroup, nullable CallSite) */
3107 void nitc__typing___AForGroup___method_is_ok_61d(val* self, val* p0) {
3108 self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val = p0; /* _method_is_ok on <self:AForGroup> */
3109 RET_LABEL:;
3110 }
3111 /* method typing$AForGroup$method_item for (self: AForGroup): nullable CallSite */
3112 val* nitc__typing___AForGroup___method_item(val* self) {
3113 val* var /* : nullable CallSite */;
3114 val* var1 /* : nullable CallSite */;
3115 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_item].val; /* _method_item on <self:AForGroup> */
3116 var = var1;
3117 RET_LABEL:;
3118 return var;
3119 }
3120 /* method typing$AForGroup$method_item= for (self: AForGroup, nullable CallSite) */
3121 void nitc__typing___AForGroup___method_item_61d(val* self, val* p0) {
3122 self->attrs[COLOR_nitc__typing__AForGroup___method_item].val = p0; /* _method_item on <self:AForGroup> */
3123 RET_LABEL:;
3124 }
3125 /* method typing$AForGroup$method_next for (self: AForGroup): nullable CallSite */
3126 val* nitc__typing___AForGroup___method_next(val* self) {
3127 val* var /* : nullable CallSite */;
3128 val* var1 /* : nullable CallSite */;
3129 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_next].val; /* _method_next on <self:AForGroup> */
3130 var = var1;
3131 RET_LABEL:;
3132 return var;
3133 }
3134 /* method typing$AForGroup$method_next= for (self: AForGroup, nullable CallSite) */
3135 void nitc__typing___AForGroup___method_next_61d(val* self, val* p0) {
3136 self->attrs[COLOR_nitc__typing__AForGroup___method_next].val = p0; /* _method_next on <self:AForGroup> */
3137 RET_LABEL:;
3138 }
3139 /* method typing$AForGroup$method_key for (self: AForGroup): nullable CallSite */
3140 val* nitc__typing___AForGroup___method_key(val* self) {
3141 val* var /* : nullable CallSite */;
3142 val* var1 /* : nullable CallSite */;
3143 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_key].val; /* _method_key on <self:AForGroup> */
3144 var = var1;
3145 RET_LABEL:;
3146 return var;
3147 }
3148 /* method typing$AForGroup$method_key= for (self: AForGroup, nullable CallSite) */
3149 void nitc__typing___AForGroup___method_key_61d(val* self, val* p0) {
3150 self->attrs[COLOR_nitc__typing__AForGroup___method_key].val = p0; /* _method_key on <self:AForGroup> */
3151 RET_LABEL:;
3152 }
3153 /* method typing$AForGroup$method_finish for (self: AForGroup): nullable CallSite */
3154 val* nitc__typing___AForGroup___method_finish(val* self) {
3155 val* var /* : nullable CallSite */;
3156 val* var1 /* : nullable CallSite */;
3157 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val; /* _method_finish on <self:AForGroup> */
3158 var = var1;
3159 RET_LABEL:;
3160 return var;
3161 }
3162 /* method typing$AForGroup$method_finish= for (self: AForGroup, nullable CallSite) */
3163 void nitc__typing___AForGroup___method_finish_61d(val* self, val* p0) {
3164 self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val = p0; /* _method_finish on <self:AForGroup> */
3165 RET_LABEL:;
3166 }
3167 /* method typing$AForGroup$method_lt for (self: AForGroup): nullable CallSite */
3168 val* nitc__typing___AForGroup___method_lt(val* self) {
3169 val* var /* : nullable CallSite */;
3170 val* var1 /* : nullable CallSite */;
3171 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val; /* _method_lt on <self:AForGroup> */
3172 var = var1;
3173 RET_LABEL:;
3174 return var;
3175 }
3176 /* method typing$AForGroup$method_lt= for (self: AForGroup, nullable CallSite) */
3177 void nitc__typing___AForGroup___method_lt_61d(val* self, val* p0) {
3178 self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = p0; /* _method_lt on <self:AForGroup> */
3179 RET_LABEL:;
3180 }
3181 /* method typing$AForGroup$method_successor for (self: AForGroup): nullable CallSite */
3182 val* nitc__typing___AForGroup___method_successor(val* self) {
3183 val* var /* : nullable CallSite */;
3184 val* var1 /* : nullable CallSite */;
3185 var1 = self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val; /* _method_successor on <self:AForGroup> */
3186 var = var1;
3187 RET_LABEL:;
3188 return var;
3189 }
3190 /* method typing$AForGroup$method_successor= for (self: AForGroup, nullable CallSite) */
3191 void nitc__typing___AForGroup___method_successor_61d(val* self, val* p0) {
3192 self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val = p0; /* _method_successor on <self:AForGroup> */
3193 RET_LABEL:;
3194 }
3195 /* method typing$AForGroup$do_type_iterator for (self: AForGroup, TypeVisitor, MType) */
3196 void nitc__typing___AForGroup___do_type_iterator(val* self, val* p0, val* p1) {
3197 val* var_v /* var v: TypeVisitor */;
3198 val* var_mtype /* var mtype: MType */;
3199 short int var /* : Bool */;
3200 int cltype;
3201 int idtype;
3202 static val* varonce;
3203 val* var1 /* : String */;
3204 char* var2 /* : CString */;
3205 val* var3 /* : String */;
3206 val* var4 /* : nullable Int */;
3207 val* var5 /* : nullable Int */;
3208 val* var6 /* : nullable Bool */;
3209 val* var7 /* : nullable Bool */;
3210 static val* varonce8;
3211 val* var9 /* : String */;
3212 char* var10 /* : CString */;
3213 val* var11 /* : String */;
3214 val* var12 /* : nullable Int */;
3215 val* var13 /* : nullable Int */;
3216 val* var14 /* : nullable Bool */;
3217 val* var15 /* : nullable Bool */;
3218 val* var16 /* : nullable MClass */;
3219 val* var_objcla /* var objcla: nullable MClass */;
3220 short int var17 /* : Bool */;
3221 short int var18 /* : Bool */;
3222 val* var_other /* var other: nullable Object */;
3223 short int var20 /* : Bool */;
3224 short int var22 /* : Bool */;
3225 static val* varonce23;
3226 val* var24 /* : String */;
3227 char* var25 /* : CString */;
3228 val* var26 /* : String */;
3229 val* var27 /* : nullable Int */;
3230 val* var28 /* : nullable Int */;
3231 val* var29 /* : nullable Bool */;
3232 val* var30 /* : nullable Bool */;
3233 val* var31 /* : AExpr */;
3234 val* var33 /* : AExpr */;
3235 short int var34 /* : Bool */;
3236 int cltype35;
3237 int idtype36;
3238 val* var37 /* : nullable CallSite */;
3239 val* var_itdef /* var itdef: nullable CallSite */;
3240 short int var38 /* : Bool */;
3241 short int var39 /* : Bool */;
3242 short int var41 /* : Bool */;
3243 short int var43 /* : Bool */;
3244 val* var45 /* : NativeArray[String] */;
3245 static val* varonce44;
3246 static val* varonce46;
3247 val* var47 /* : String */;
3248 char* var48 /* : CString */;
3249 val* var49 /* : String */;
3250 val* var50 /* : nullable Int */;
3251 val* var51 /* : nullable Int */;
3252 val* var52 /* : nullable Bool */;
3253 val* var53 /* : nullable Bool */;
3254 static val* varonce54;
3255 val* var55 /* : String */;
3256 char* var56 /* : CString */;
3257 val* var57 /* : String */;
3258 val* var58 /* : nullable Int */;
3259 val* var59 /* : nullable Int */;
3260 val* var60 /* : nullable Bool */;
3261 val* var61 /* : nullable Bool */;
3262 val* var62 /* : String */;
3263 val* var63 /* : String */;
3264 val* var65 /* : MSignature */;
3265 val* var67 /* : MSignature */;
3266 val* var68 /* : nullable MType */;
3267 val* var70 /* : nullable MType */;
3268 val* var_ittype /* var ittype: nullable MType */;
3269 short int var71 /* : Bool */;
3270 short int var72 /* : Bool */;
3271 short int var74 /* : Bool */;
3272 short int var76 /* : Bool */;
3273 static val* varonce77;
3274 val* var78 /* : String */;
3275 char* var79 /* : CString */;
3276 val* var80 /* : String */;
3277 val* var81 /* : nullable Int */;
3278 val* var82 /* : nullable Int */;
3279 val* var83 /* : nullable Bool */;
3280 val* var84 /* : nullable Bool */;
3281 static val* varonce85;
3282 val* var86 /* : String */;
3283 char* var87 /* : CString */;
3284 val* var88 /* : String */;
3285 val* var89 /* : nullable Int */;
3286 val* var90 /* : nullable Int */;
3287 val* var91 /* : nullable Bool */;
3288 val* var92 /* : nullable Bool */;
3289 val* var93 /* : nullable MClass */;
3290 val* var_colit_cla /* var colit_cla: nullable MClass */;
3291 static val* varonce94;
3292 val* var95 /* : String */;
3293 char* var96 /* : CString */;
3294 val* var97 /* : String */;
3295 val* var98 /* : nullable Int */;
3296 val* var99 /* : nullable Int */;
3297 val* var100 /* : nullable Bool */;
3298 val* var101 /* : nullable Bool */;
3299 val* var102 /* : nullable MClass */;
3300 val* var_mapit_cla /* var mapit_cla: nullable MClass */;
3301 short int var_is_col /* var is_col: Bool */;
3302 short int var_is_map /* var is_map: Bool */;
3303 short int var103 /* : Bool */;
3304 short int var104 /* : Bool */;
3305 short int var105 /* : Bool */;
3306 val* var_other107 /* var other: nullable Object */;
3307 short int var108 /* : Bool */;
3308 short int var109 /* : Bool */;
3309 short int var_ /* var : Bool */;
3310 val* var110 /* : Array[MType] */;
3311 val* var_111 /* var : Array[MType] */;
3312 val* var112 /* : MClassType */;
3313 val* var114 /* : MClassType */;
3314 val* var115 /* : MType */;
3315 val* var116 /* : MClassType */;
3316 short int var117 /* : Bool */;
3317 val* var118 /* : MModule */;
3318 val* var120 /* : MModule */;
3319 val* var121 /* : nullable MClassType */;
3320 val* var123 /* : nullable MClassType */;
3321 val* var124 /* : MClassType */;
3322 val* var_coltype /* var coltype: MClassType */;
3323 val* var125 /* : nullable Array[Variable] */;
3324 val* var127 /* : nullable Array[Variable] */;
3325 val* var_variables /* var variables: nullable Array[Variable] */;
3326 long var128 /* : Int */;
3327 long var130 /* : Int */;
3328 short int var131 /* : Bool */;
3329 short int var133 /* : Bool */;
3330 short int var134 /* : Bool */;
3331 static val* varonce135;
3332 val* var136 /* : String */;
3333 char* var137 /* : CString */;
3334 val* var138 /* : String */;
3335 val* var139 /* : nullable Int */;
3336 val* var140 /* : nullable Int */;
3337 val* var141 /* : nullable Bool */;
3338 val* var142 /* : nullable Bool */;
3339 val* var143 /* : nullable Object */;
3340 val* var144 /* : Array[MType] */;
3341 val* var145 /* : nullable Object */;
3342 short int var147 /* : Bool */;
3343 short int var148 /* : Bool */;
3344 short int var149 /* : Bool */;
3345 short int var151 /* : Bool */;
3346 short int var152 /* : Bool */;
3347 short int var_153 /* var : Bool */;
3348 val* var154 /* : Array[MType] */;
3349 val* var_155 /* var : Array[MType] */;
3350 val* var156 /* : MClassType */;
3351 val* var158 /* : MClassType */;
3352 val* var159 /* : MType */;
3353 val* var160 /* : MClassType */;
3354 val* var162 /* : MClassType */;
3355 val* var163 /* : MType */;
3356 val* var164 /* : MClassType */;
3357 short int var165 /* : Bool */;
3358 val* var166 /* : MModule */;
3359 val* var168 /* : MModule */;
3360 val* var169 /* : nullable MClassType */;
3361 val* var171 /* : nullable MClassType */;
3362 val* var172 /* : MClassType */;
3363 val* var_coltype173 /* var coltype: MClassType */;
3364 val* var174 /* : nullable Array[Variable] */;
3365 val* var176 /* : nullable Array[Variable] */;
3366 val* var_variables177 /* var variables: nullable Array[Variable] */;
3367 long var178 /* : Int */;
3368 long var180 /* : Int */;
3369 short int var181 /* : Bool */;
3370 short int var183 /* : Bool */;
3371 short int var184 /* : Bool */;
3372 static val* varonce185;
3373 val* var186 /* : String */;
3374 char* var187 /* : CString */;
3375 val* var188 /* : String */;
3376 val* var189 /* : nullable Int */;
3377 val* var190 /* : nullable Int */;
3378 val* var191 /* : nullable Bool */;
3379 val* var192 /* : nullable Bool */;
3380 val* var193 /* : nullable Object */;
3381 val* var194 /* : Array[MType] */;
3382 val* var195 /* : nullable Object */;
3383 val* var197 /* : nullable Object */;
3384 val* var198 /* : Array[MType] */;
3385 val* var199 /* : nullable Object */;
3386 short int var201 /* : Bool */;
3387 short int var202 /* : Bool */;
3388 short int var_203 /* var : Bool */;
3389 short int var204 /* : Bool */;
3390 static val* varonce205;
3391 val* var206 /* : String */;
3392 char* var207 /* : CString */;
3393 val* var208 /* : String */;
3394 val* var209 /* : nullable Int */;
3395 val* var210 /* : nullable Int */;
3396 val* var211 /* : nullable Bool */;
3397 val* var212 /* : nullable Bool */;
3398 short int var213 /* : Bool */;
3399 val* var214 /* : MType */;
3400 val* var215 /* : MType */;
3401 short int var216 /* : Bool */;
3402 int cltype217;
3403 int idtype218;
3404 const char* var_class_name;
3405 static val* varonce220;
3406 val* var221 /* : String */;
3407 char* var222 /* : CString */;
3408 val* var223 /* : String */;
3409 val* var224 /* : nullable Int */;
3410 val* var225 /* : nullable Int */;
3411 val* var226 /* : nullable Bool */;
3412 val* var227 /* : nullable Bool */;
3413 val* var228 /* : nullable CallSite */;
3414 val* var_ikdef /* var ikdef: nullable CallSite */;
3415 short int var229 /* : Bool */;
3416 short int var230 /* : Bool */;
3417 short int var232 /* : Bool */;
3418 short int var234 /* : Bool */;
3419 val* var236 /* : NativeArray[String] */;
3420 static val* varonce235;
3421 static val* varonce237;
3422 val* var238 /* : String */;
3423 char* var239 /* : CString */;
3424 val* var240 /* : String */;
3425 val* var241 /* : nullable Int */;
3426 val* var242 /* : nullable Int */;
3427 val* var243 /* : nullable Bool */;
3428 val* var244 /* : nullable Bool */;
3429 static val* varonce245;
3430 val* var246 /* : String */;
3431 char* var247 /* : CString */;
3432 val* var248 /* : String */;
3433 val* var249 /* : nullable Int */;
3434 val* var250 /* : nullable Int */;
3435 val* var251 /* : nullable Bool */;
3436 val* var252 /* : nullable Bool */;
3437 val* var253 /* : String */;
3438 val* var254 /* : String */;
3439 static val* varonce256;
3440 val* var257 /* : String */;
3441 char* var258 /* : CString */;
3442 val* var259 /* : String */;
3443 val* var260 /* : nullable Int */;
3444 val* var261 /* : nullable Int */;
3445 val* var262 /* : nullable Bool */;
3446 val* var263 /* : nullable Bool */;
3447 val* var264 /* : nullable CallSite */;
3448 val* var_itemdef /* var itemdef: nullable CallSite */;
3449 short int var265 /* : Bool */;
3450 short int var266 /* : Bool */;
3451 short int var268 /* : Bool */;
3452 short int var270 /* : Bool */;
3453 val* var272 /* : NativeArray[String] */;
3454 static val* varonce271;
3455 static val* varonce273;
3456 val* var274 /* : String */;
3457 char* var275 /* : CString */;
3458 val* var276 /* : String */;
3459 val* var277 /* : nullable Int */;
3460 val* var278 /* : nullable Int */;
3461 val* var279 /* : nullable Bool */;
3462 val* var280 /* : nullable Bool */;
3463 static val* varonce281;
3464 val* var282 /* : String */;
3465 char* var283 /* : CString */;
3466 val* var284 /* : String */;
3467 val* var285 /* : nullable Int */;
3468 val* var286 /* : nullable Int */;
3469 val* var287 /* : nullable Bool */;
3470 val* var288 /* : nullable Bool */;
3471 val* var289 /* : String */;
3472 val* var290 /* : String */;
3473 static val* varonce292;
3474 val* var293 /* : String */;
3475 char* var294 /* : CString */;
3476 val* var295 /* : String */;
3477 val* var296 /* : nullable Int */;
3478 val* var297 /* : nullable Int */;
3479 val* var298 /* : nullable Bool */;
3480 val* var299 /* : nullable Bool */;
3481 val* var300 /* : nullable CallSite */;
3482 val* var_nextdef /* var nextdef: nullable CallSite */;
3483 short int var301 /* : Bool */;
3484 short int var302 /* : Bool */;
3485 short int var304 /* : Bool */;
3486 short int var306 /* : Bool */;
3487 val* var308 /* : NativeArray[String] */;
3488 static val* varonce307;
3489 static val* varonce309;
3490 val* var310 /* : String */;
3491 char* var311 /* : CString */;
3492 val* var312 /* : String */;
3493 val* var313 /* : nullable Int */;
3494 val* var314 /* : nullable Int */;
3495 val* var315 /* : nullable Bool */;
3496 val* var316 /* : nullable Bool */;
3497 static val* varonce317;
3498 val* var318 /* : String */;
3499 char* var319 /* : CString */;
3500 val* var320 /* : String */;
3501 val* var321 /* : nullable Int */;
3502 val* var322 /* : nullable Int */;
3503 val* var323 /* : nullable Bool */;
3504 val* var324 /* : nullable Bool */;
3505 val* var325 /* : String */;
3506 val* var326 /* : String */;
3507 static val* varonce328;
3508 val* var329 /* : String */;
3509 char* var330 /* : CString */;
3510 val* var331 /* : String */;
3511 val* var332 /* : nullable Int */;
3512 val* var333 /* : nullable Int */;
3513 val* var334 /* : nullable Bool */;
3514 val* var335 /* : nullable Bool */;
3515 val* var336 /* : nullable CallSite */;
3516 static val* varonce338;
3517 val* var339 /* : String */;
3518 char* var340 /* : CString */;
3519 val* var341 /* : String */;
3520 val* var342 /* : nullable Int */;
3521 val* var343 /* : nullable Int */;
3522 val* var344 /* : nullable Bool */;
3523 val* var345 /* : nullable Bool */;
3524 val* var346 /* : nullable CallSite */;
3525 val* var_keydef /* var keydef: nullable CallSite */;
3526 short int var347 /* : Bool */;
3527 short int var348 /* : Bool */;
3528 short int var350 /* : Bool */;
3529 short int var352 /* : Bool */;
3530 val* var354 /* : NativeArray[String] */;
3531 static val* varonce353;
3532 static val* varonce355;
3533 val* var356 /* : String */;
3534 char* var357 /* : CString */;
3535 val* var358 /* : String */;
3536 val* var359 /* : nullable Int */;
3537 val* var360 /* : nullable Int */;
3538 val* var361 /* : nullable Bool */;
3539 val* var362 /* : nullable Bool */;
3540 static val* varonce363;
3541 val* var364 /* : String */;
3542 char* var365 /* : CString */;
3543 val* var366 /* : String */;
3544 val* var367 /* : nullable Int */;
3545 val* var368 /* : nullable Int */;
3546 val* var369 /* : nullable Bool */;
3547 val* var370 /* : nullable Bool */;
3548 val* var371 /* : String */;
3549 val* var372 /* : String */;
3550 short int var374 /* : Bool */;
3551 val* var375 /* : nullable Array[Variable] */;
3552 val* var377 /* : nullable Array[Variable] */;
3553 long var378 /* : Int */;
3554 long var380 /* : Int */;
3555 short int var381 /* : Bool */;
3556 short int var383 /* : Bool */;
3557 short int var_384 /* var : Bool */;
3558 val* var385 /* : AExpr */;
3559 val* var387 /* : AExpr */;
3560 short int var388 /* : Bool */;
3561 int cltype389;
3562 int idtype390;
3563 val* var391 /* : nullable Array[Variable] */;
3564 val* var393 /* : nullable Array[Variable] */;
3565 val* var394 /* : nullable Object */;
3566 val* var_variable /* var variable: Variable */;
3567 val* var395 /* : nullable MType */;
3568 val* var397 /* : nullable MType */;
3569 val* var_vtype /* var vtype: MType */;
3570 val* var398 /* : AExpr */;
3571 val* var400 /* : AExpr */;
3572 short int var401 /* : Bool */;
3573 int cltype402;
3574 int idtype403;
3575 static val* varonce404;
3576 val* var405 /* : String */;
3577 char* var406 /* : CString */;
3578 val* var407 /* : String */;
3579 val* var408 /* : nullable Int */;
3580 val* var409 /* : nullable Int */;
3581 val* var410 /* : nullable Bool */;
3582 val* var411 /* : nullable Bool */;
3583 val* var412 /* : nullable CallSite */;
3584 static val* varonce414;
3585 val* var415 /* : String */;
3586 char* var416 /* : CString */;
3587 val* var417 /* : String */;
3588 val* var418 /* : nullable Int */;
3589 val* var419 /* : nullable Int */;
3590 val* var420 /* : nullable Bool */;
3591 val* var421 /* : nullable Bool */;
3592 val* var422 /* : nullable CallSite */;
3593 static val* varonce424;
3594 val* var425 /* : String */;
3595 char* var426 /* : CString */;
3596 val* var427 /* : String */;
3597 val* var428 /* : nullable Int */;
3598 val* var429 /* : nullable Int */;
3599 val* var430 /* : nullable Bool */;
3600 val* var431 /* : nullable Bool */;
3601 val* var432 /* : nullable CallSite */;
3602 var_v = p0;
3603 var_mtype = p1;
3604 /* <var_mtype:MType> isa MNullType */
3605 cltype = type_nitc__MNullType.color;
3606 idtype = type_nitc__MNullType.id;
3607 if(cltype >= var_mtype->type->table_size) {
3608 var = 0;
3609 } else {
3610 var = var_mtype->type->type_table[cltype] == idtype;
3611 }
3612 if (var){
3613 if (likely(varonce!=NULL)) {
3614 var1 = varonce;
3615 } else {
3616 var2 = "Type Error: `for` cannot iterate over `null`.";
3617 var4 = (val*)(45l<<2|1);
3618 var5 = (val*)(45l<<2|1);
3619 var6 = (val*)((long)(0)<<2|3);
3620 var7 = (val*)((long)(0)<<2|3);
3621 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
3622 var1 = var3;
3623 varonce = var1;
3624 }
3625 {
3626 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var1); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
3627 }
3628 goto RET_LABEL;
3629 } else {
3630 }
3631 if (likely(varonce8!=NULL)) {
3632 var9 = varonce8;
3633 } else {
3634 var10 = "Object";
3635 var12 = (val*)(6l<<2|1);
3636 var13 = (val*)(6l<<2|1);
3637 var14 = (val*)((long)(0)<<2|3);
3638 var15 = (val*)((long)(0)<<2|3);
3639 var11 = core__flat___CString___to_s_unsafe(var10, var12, var13, var14, var15);
3640 var9 = var11;
3641 varonce8 = var9;
3642 }
3643 {
3644 var16 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var9);
3645 }
3646 var_objcla = var16;
3647 if (var_objcla == NULL) {
3648 var17 = 1; /* is null */
3649 } else {
3650 var17 = 0; /* arg is null but recv is not */
3651 }
3652 if (0) {
3653 { /* Inline kernel$Object$== (var_objcla,((val*)NULL)) on <var_objcla:nullable MClass> */
3654 var_other = ((val*)NULL);
3655 {
3656 { /* Inline kernel$Object$is_same_instance (var_objcla,var_other) on <var_objcla:nullable MClass(MClass)> */
3657 var22 = var_objcla == var_other;
3658 var20 = var22;
3659 goto RET_LABEL21;
3660 RET_LABEL21:(void)0;
3661 }
3662 }
3663 var18 = var20;
3664 goto RET_LABEL19;
3665 RET_LABEL19:(void)0;
3666 }
3667 var17 = var18;
3668 }
3669 if (var17){
3670 goto RET_LABEL;
3671 } else {
3672 }
3673 if (likely(varonce23!=NULL)) {
3674 var24 = varonce23;
3675 } else {
3676 var25 = "iterator";
3677 var27 = (val*)(8l<<2|1);
3678 var28 = (val*)(8l<<2|1);
3679 var29 = (val*)((long)(0)<<2|3);
3680 var30 = (val*)((long)(0)<<2|3);
3681 var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30);
3682 var24 = var26;
3683 varonce23 = var24;
3684 }
3685 {
3686 { /* Inline parser_nodes$AForGroup$n_expr (self) on <self:AForGroup> */
3687 var33 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <self:AForGroup> */
3688 if (unlikely(var33 == NULL)) {
3689 if(catchStack.cursor >= 0){
3690 longjmp(catchStack.envs[catchStack.cursor], 1);
3691 }
3692 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
3693 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024);
3694 fatal_exit(1);
3695 }
3696 var31 = var33;
3697 RET_LABEL32:(void)0;
3698 }
3699 }
3700 /* <var31:AExpr> isa ASelfExpr */
3701 cltype35 = type_nitc__ASelfExpr.color;
3702 idtype36 = type_nitc__ASelfExpr.id;
3703 if(cltype35 >= var31->type->table_size) {
3704 var34 = 0;
3705 } else {
3706 var34 = var31->type->type_table[cltype35] == idtype36;
3707 }
3708 {
3709 var37 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var24, var34);
3710 }
3711 var_itdef = var37;
3712 if (var_itdef == NULL) {
3713 var38 = 1; /* is null */
3714 } else {
3715 var38 = 0; /* arg is null but recv is not */
3716 }
3717 if (0) {
3718 { /* Inline kernel$Object$== (var_itdef,((val*)NULL)) on <var_itdef:nullable CallSite> */
3719 var_other = ((val*)NULL);
3720 {
3721 { /* Inline kernel$Object$is_same_instance (var_itdef,var_other) on <var_itdef:nullable CallSite(CallSite)> */
3722 var43 = var_itdef == var_other;
3723 var41 = var43;
3724 goto RET_LABEL42;
3725 RET_LABEL42:(void)0;
3726 }
3727 }
3728 var39 = var41;
3729 goto RET_LABEL40;
3730 RET_LABEL40:(void)0;
3731 }
3732 var38 = var39;
3733 }
3734 if (var38){
3735 if (unlikely(varonce44==NULL)) {
3736 var45 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
3737 if (likely(varonce46!=NULL)) {
3738 var47 = varonce46;
3739 } else {
3740 var48 = "Type Error: `for` expects a type providing an `iterator` method, got `";
3741 var50 = (val*)(70l<<2|1);
3742 var51 = (val*)(70l<<2|1);
3743 var52 = (val*)((long)(0)<<2|3);
3744 var53 = (val*)((long)(0)<<2|3);
3745 var49 = core__flat___CString___to_s_unsafe(var48, var50, var51, var52, var53);
3746 var47 = var49;
3747 varonce46 = var47;
3748 }
3749 ((struct instance_core__NativeArray*)var45)->values[0]=var47;
3750 if (likely(varonce54!=NULL)) {
3751 var55 = varonce54;
3752 } else {
3753 var56 = "`.";
3754 var58 = (val*)(2l<<2|1);
3755 var59 = (val*)(2l<<2|1);
3756 var60 = (val*)((long)(0)<<2|3);
3757 var61 = (val*)((long)(0)<<2|3);
3758 var57 = core__flat___CString___to_s_unsafe(var56, var58, var59, var60, var61);
3759 var55 = var57;
3760 varonce54 = var55;
3761 }
3762 ((struct instance_core__NativeArray*)var45)->values[2]=var55;
3763 } else {
3764 var45 = varonce44;
3765 varonce44 = NULL;
3766 }
3767 {
3768 var62 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:MType>*/
3769 }
3770 ((struct instance_core__NativeArray*)var45)->values[1]=var62;
3771 {
3772 var63 = ((val*(*)(val* self))(var45->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var45); /* native_to_s on <var45:NativeArray[String]>*/
3773 }
3774 varonce44 = var45;
3775 {
3776 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var63); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
3777 }
3778 goto RET_LABEL;
3779 } else {
3780 }
3781 {
3782 { /* Inline typing$AForGroup$method_iterator= (self,var_itdef) on <self:AForGroup> */
3783 self->attrs[COLOR_nitc__typing__AForGroup___method_iterator].val = var_itdef; /* _method_iterator on <self:AForGroup> */
3784 RET_LABEL64:(void)0;
3785 }
3786 }
3787 {
3788 { /* Inline typing$CallSite$msignature (var_itdef) on <var_itdef:nullable CallSite(CallSite)> */
3789 var67 = var_itdef->attrs[COLOR_nitc__typing__CallSite___msignature].val; /* _msignature on <var_itdef:nullable CallSite(CallSite)> */
3790 if (unlikely(var67 == NULL)) {
3791 if(catchStack.cursor >= 0){
3792 longjmp(catchStack.envs[catchStack.cursor], 1);
3793 }
3794 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
3795 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 663);
3796 fatal_exit(1);
3797 }
3798 var65 = var67;
3799 RET_LABEL66:(void)0;
3800 }
3801 }
3802 {
3803 { /* Inline model$MSignature$return_mtype (var65) on <var65:MSignature> */
3804 var70 = var65->attrs[COLOR_nitc__model__MSignature___return_mtype].val; /* _return_mtype on <var65:MSignature> */
3805 var68 = var70;
3806 RET_LABEL69:(void)0;
3807 }
3808 }
3809 var_ittype = var68;
3810 if (var_ittype == NULL) {
3811 var71 = 1; /* is null */
3812 } else {
3813 var71 = 0; /* arg is null but recv is not */
3814 }
3815 if (0) {
3816 { /* Inline kernel$Object$== (var_ittype,((val*)NULL)) on <var_ittype:nullable MType> */
3817 var_other = ((val*)NULL);
3818 {
3819 { /* Inline kernel$Object$is_same_instance (var_ittype,var_other) on <var_ittype:nullable MType(MType)> */
3820 var76 = var_ittype == var_other;
3821 var74 = var76;
3822 goto RET_LABEL75;
3823 RET_LABEL75:(void)0;
3824 }
3825 }
3826 var72 = var74;
3827 goto RET_LABEL73;
3828 RET_LABEL73:(void)0;
3829 }
3830 var71 = var72;
3831 }
3832 if (var71){
3833 if (likely(varonce77!=NULL)) {
3834 var78 = varonce77;
3835 } else {
3836 var79 = "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type.";
3837 var81 = (val*)(94l<<2|1);
3838 var82 = (val*)(94l<<2|1);
3839 var83 = (val*)((long)(0)<<2|3);
3840 var84 = (val*)((long)(0)<<2|3);
3841 var80 = core__flat___CString___to_s_unsafe(var79, var81, var82, var83, var84);
3842 var78 = var80;
3843 varonce77 = var78;
3844 }
3845 {
3846 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var78); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
3847 }
3848 goto RET_LABEL;
3849 } else {
3850 }
3851 if (likely(varonce85!=NULL)) {
3852 var86 = varonce85;
3853 } else {
3854 var87 = "Iterator";
3855 var89 = (val*)(8l<<2|1);
3856 var90 = (val*)(8l<<2|1);
3857 var91 = (val*)((long)(0)<<2|3);
3858 var92 = (val*)((long)(0)<<2|3);
3859 var88 = core__flat___CString___to_s_unsafe(var87, var89, var90, var91, var92);
3860 var86 = var88;
3861 varonce85 = var86;
3862 }
3863 {
3864 var93 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, self, var86);
3865 }
3866 var_colit_cla = var93;
3867 if (likely(varonce94!=NULL)) {
3868 var95 = varonce94;
3869 } else {
3870 var96 = "MapIterator";
3871 var98 = (val*)(11l<<2|1);
3872 var99 = (val*)(11l<<2|1);
3873 var100 = (val*)((long)(0)<<2|3);
3874 var101 = (val*)((long)(0)<<2|3);
3875 var97 = core__flat___CString___to_s_unsafe(var96, var98, var99, var100, var101);
3876 var95 = var97;
3877 varonce94 = var95;
3878 }
3879 {
3880 var102 = nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(var_v, self, var95);
3881 }
3882 var_mapit_cla = var102;
3883 var_is_col = 0;
3884 var_is_map = 0;
3885 if (var_colit_cla == NULL) {
3886 var104 = 0; /* is null */
3887 } else {
3888 var104 = 1; /* arg is null and recv is not */
3889 }
3890 if (0) {
3891 { /* Inline kernel$Object$!= (var_colit_cla,((val*)NULL)) on <var_colit_cla:nullable MClass> */
3892 var_other107 = ((val*)NULL);
3893 {
3894 var108 = ((short int(*)(val* self, val* p0))(var_colit_cla->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_colit_cla, var_other107); /* == on <var_colit_cla:nullable MClass(MClass)>*/
3895 }
3896 var109 = !var108;
3897 var105 = var109;
3898 goto RET_LABEL106;
3899 RET_LABEL106:(void)0;
3900 }
3901 var104 = var105;
3902 }
3903 var_ = var104;
3904 if (var104){
3905 var110 = NEW_core__Array(&type_core__Array__nitc__MType);
3906 {
3907 core___core__Array___with_capacity(var110, 1l); /* Direct call array$Array$with_capacity on <var110:Array[MType]>*/
3908 }
3909 var_111 = var110;
3910 {
3911 { /* Inline model$MClass$mclass_type (var_objcla) on <var_objcla:nullable MClass(MClass)> */
3912 var114 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_objcla:nullable MClass(MClass)> */
3913 if (unlikely(var114 == NULL)) {
3914 if(catchStack.cursor >= 0){
3915 longjmp(catchStack.envs[catchStack.cursor], 1);
3916 }
3917 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
3918 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
3919 fatal_exit(1);
3920 }
3921 var112 = var114;
3922 RET_LABEL113:(void)0;
3923 }
3924 }
3925 {
3926 var115 = nitc___nitc__MType___as_nullable(var112);
3927 }
3928 {
3929 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_111, var115); /* Direct call array$AbstractArray$push on <var_111:Array[MType]>*/
3930 }
3931 {
3932 var116 = nitc___nitc__MClass___get_mtype(var_colit_cla, var_111);
3933 }
3934 {
3935 var117 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_ittype, var116);
3936 }
3937 var103 = var117;
3938 } else {
3939 var103 = var_;
3940 }
3941 if (var103){
3942 {
3943 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
3944 var120 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
3945 if (unlikely(var120 == NULL)) {
3946 if(catchStack.cursor >= 0){
3947 longjmp(catchStack.envs[catchStack.cursor], 1);
3948 }
3949 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3950 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
3951 fatal_exit(1);
3952 }
3953 var118 = var120;
3954 RET_LABEL119:(void)0;
3955 }
3956 }
3957 {
3958 { /* Inline typing$TypeVisitor$anchor (var_v) on <var_v:TypeVisitor> */
3959 var123 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on <var_v:TypeVisitor> */
3960 var121 = var123;
3961 RET_LABEL122:(void)0;
3962 }
3963 }
3964 {
3965 var124 = nitc___nitc__MType___supertype_to(var_ittype, var118, var121, var_colit_cla);
3966 }
3967 var_coltype = var124;
3968 {
3969 { /* Inline scope$AForGroup$variables (self) on <self:AForGroup> */
3970 var127 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
3971 var125 = var127;
3972 RET_LABEL126:(void)0;
3973 }
3974 }
3975 var_variables = var125;
3976 if (var_variables == NULL) {
3977 if(catchStack.cursor >= 0){
3978 longjmp(catchStack.envs[catchStack.cursor], 1);
3979 }
3980 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3981 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1243);
3982 fatal_exit(1);
3983 } else {
3984 { /* Inline array$AbstractArrayRead$length (var_variables) on <var_variables:nullable Array[Variable]> */
3985 if (unlikely(var_variables == NULL)) {
3986 if(catchStack.cursor >= 0){
3987 longjmp(catchStack.envs[catchStack.cursor], 1);
3988 }
3989 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3990 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
3991 fatal_exit(1);
3992 }
3993 var130 = var_variables->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_variables:nullable Array[Variable]> */
3994 var128 = var130;
3995 RET_LABEL129:(void)0;
3996 }
3997 }
3998 {
3999 { /* Inline kernel$Int$!= (var128,1l) on <var128:Int> */
4000 var133 = var128 == 1l;
4001 var134 = !var133;
4002 var131 = var134;
4003 goto RET_LABEL132;
4004 RET_LABEL132:(void)0;
4005 }
4006 }
4007 if (var131){
4008 if (likely(varonce135!=NULL)) {
4009 var136 = varonce135;
4010 } else {
4011 var137 = "Type Error: `for` expects only one variable when using `Iterator`.";
4012 var139 = (val*)(66l<<2|1);
4013 var140 = (val*)(66l<<2|1);
4014 var141 = (val*)((long)(0)<<2|3);
4015 var142 = (val*)((long)(0)<<2|3);
4016 var138 = core__flat___CString___to_s_unsafe(var137, var139, var140, var141, var142);
4017 var136 = var138;
4018 varonce135 = var136;
4019 }
4020 {
4021 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var136); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4022 }
4023 } else {
4024 if (var_variables == NULL) {
4025 if(catchStack.cursor >= 0){
4026 longjmp(catchStack.envs[catchStack.cursor], 1);
4027 }
4028 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4029 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1246);
4030 fatal_exit(1);
4031 } else {
4032 var143 = core___core__SequenceRead___Collection__first(var_variables);
4033 }
4034 {
4035 var144 = ((val*(*)(val* self))(var_coltype->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype); /* arguments on <var_coltype:MClassType>*/
4036 }
4037 {
4038 var145 = core___core__SequenceRead___Collection__first(var144);
4039 }
4040 {
4041 { /* Inline typing$Variable$declared_type= (var143,var145) on <var143:nullable Object(Variable)> */
4042 var143->attrs[COLOR_nitc__typing__Variable___declared_type].val = var145; /* _declared_type on <var143:nullable Object(Variable)> */
4043 RET_LABEL146:(void)0;
4044 }
4045 }
4046 }
4047 var_is_col = 1;
4048 } else {
4049 }
4050 if (var_mapit_cla == NULL) {
4051 var148 = 0; /* is null */
4052 } else {
4053 var148 = 1; /* arg is null and recv is not */
4054 }
4055 if (0) {
4056 { /* Inline kernel$Object$!= (var_mapit_cla,((val*)NULL)) on <var_mapit_cla:nullable MClass> */
4057 var_other107 = ((val*)NULL);
4058 {
4059 var151 = ((short int(*)(val* self, val* p0))(var_mapit_cla->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_mapit_cla, var_other107); /* == on <var_mapit_cla:nullable MClass(MClass)>*/
4060 }
4061 var152 = !var151;
4062 var149 = var152;
4063 goto RET_LABEL150;
4064 RET_LABEL150:(void)0;
4065 }
4066 var148 = var149;
4067 }
4068 var_153 = var148;
4069 if (var148){
4070 var154 = NEW_core__Array(&type_core__Array__nitc__MType);
4071 {
4072 core___core__Array___with_capacity(var154, 2l); /* Direct call array$Array$with_capacity on <var154:Array[MType]>*/
4073 }
4074 var_155 = var154;
4075 {
4076 { /* Inline model$MClass$mclass_type (var_objcla) on <var_objcla:nullable MClass(MClass)> */
4077 var158 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_objcla:nullable MClass(MClass)> */
4078 if (unlikely(var158 == NULL)) {
4079 if(catchStack.cursor >= 0){
4080 longjmp(catchStack.envs[catchStack.cursor], 1);
4081 }
4082 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4083 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
4084 fatal_exit(1);
4085 }
4086 var156 = var158;
4087 RET_LABEL157:(void)0;
4088 }
4089 }
4090 {
4091 var159 = nitc___nitc__MType___as_nullable(var156);
4092 }
4093 {
4094 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_155, var159); /* Direct call array$AbstractArray$push on <var_155:Array[MType]>*/
4095 }
4096 {
4097 { /* Inline model$MClass$mclass_type (var_objcla) on <var_objcla:nullable MClass(MClass)> */
4098 var162 = var_objcla->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_objcla:nullable MClass(MClass)> */
4099 if (unlikely(var162 == NULL)) {
4100 if(catchStack.cursor >= 0){
4101 longjmp(catchStack.envs[catchStack.cursor], 1);
4102 }
4103 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
4104 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
4105 fatal_exit(1);
4106 }
4107 var160 = var162;
4108 RET_LABEL161:(void)0;
4109 }
4110 }
4111 {
4112 var163 = nitc___nitc__MType___as_nullable(var160);
4113 }
4114 {
4115 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_155, var163); /* Direct call array$AbstractArray$push on <var_155:Array[MType]>*/
4116 }
4117 {
4118 var164 = nitc___nitc__MClass___get_mtype(var_mapit_cla, var_155);
4119 }
4120 {
4121 var165 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_ittype, var164);
4122 }
4123 var147 = var165;
4124 } else {
4125 var147 = var_153;
4126 }
4127 if (var147){
4128 {
4129 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
4130 var168 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
4131 if (unlikely(var168 == NULL)) {
4132 if(catchStack.cursor >= 0){
4133 longjmp(catchStack.envs[catchStack.cursor], 1);
4134 }
4135 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4136 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
4137 fatal_exit(1);
4138 }
4139 var166 = var168;
4140 RET_LABEL167:(void)0;
4141 }
4142 }
4143 {
4144 { /* Inline typing$TypeVisitor$anchor (var_v) on <var_v:TypeVisitor> */
4145 var171 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___anchor].val; /* _anchor on <var_v:TypeVisitor> */
4146 var169 = var171;
4147 RET_LABEL170:(void)0;
4148 }
4149 }
4150 {
4151 var172 = nitc___nitc__MType___supertype_to(var_ittype, var166, var169, var_mapit_cla);
4152 }
4153 var_coltype173 = var172;
4154 {
4155 { /* Inline scope$AForGroup$variables (self) on <self:AForGroup> */
4156 var176 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
4157 var174 = var176;
4158 RET_LABEL175:(void)0;
4159 }
4160 }
4161 var_variables177 = var174;
4162 if (var_variables177 == NULL) {
4163 if(catchStack.cursor >= 0){
4164 longjmp(catchStack.envs[catchStack.cursor], 1);
4165 }
4166 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4167 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1255);
4168 fatal_exit(1);
4169 } else {
4170 { /* Inline array$AbstractArrayRead$length (var_variables177) on <var_variables177:nullable Array[Variable]> */
4171 if (unlikely(var_variables177 == NULL)) {
4172 if(catchStack.cursor >= 0){
4173 longjmp(catchStack.envs[catchStack.cursor], 1);
4174 }
4175 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4176 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
4177 fatal_exit(1);
4178 }
4179 var180 = var_variables177->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var_variables177:nullable Array[Variable]> */
4180 var178 = var180;
4181 RET_LABEL179:(void)0;
4182 }
4183 }
4184 {
4185 { /* Inline kernel$Int$!= (var178,2l) on <var178:Int> */
4186 var183 = var178 == 2l;
4187 var184 = !var183;
4188 var181 = var184;
4189 goto RET_LABEL182;
4190 RET_LABEL182:(void)0;
4191 }
4192 }
4193 if (var181){
4194 if (likely(varonce185!=NULL)) {
4195 var186 = varonce185;
4196 } else {
4197 var187 = "Type Error: `for` expects two variables when using `MapIterator`.";
4198 var189 = (val*)(65l<<2|1);
4199 var190 = (val*)(65l<<2|1);
4200 var191 = (val*)((long)(0)<<2|3);
4201 var192 = (val*)((long)(0)<<2|3);
4202 var188 = core__flat___CString___to_s_unsafe(var187, var189, var190, var191, var192);
4203 var186 = var188;
4204 varonce185 = var186;
4205 }
4206 {
4207 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var186); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4208 }
4209 } else {
4210 if (var_variables177 == NULL) {
4211 if(catchStack.cursor >= 0){
4212 longjmp(catchStack.envs[catchStack.cursor], 1);
4213 }
4214 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4215 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1258);
4216 fatal_exit(1);
4217 } else {
4218 var193 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_variables177, 0l);
4219 }
4220 {
4221 var194 = ((val*(*)(val* self))(var_coltype173->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype173); /* arguments on <var_coltype173:MClassType>*/
4222 }
4223 {
4224 var195 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var194, 0l);
4225 }
4226 {
4227 { /* Inline typing$Variable$declared_type= (var193,var195) on <var193:nullable Object(Variable)> */
4228 var193->attrs[COLOR_nitc__typing__Variable___declared_type].val = var195; /* _declared_type on <var193:nullable Object(Variable)> */
4229 RET_LABEL196:(void)0;
4230 }
4231 }
4232 if (var_variables177 == NULL) {
4233 if(catchStack.cursor >= 0){
4234 longjmp(catchStack.envs[catchStack.cursor], 1);
4235 }
4236 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4237 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1259);
4238 fatal_exit(1);
4239 } else {
4240 var197 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_variables177, 1l);
4241 }
4242 {
4243 var198 = ((val*(*)(val* self))(var_coltype173->class->vft[COLOR_nitc__model__MClassType__arguments]))(var_coltype173); /* arguments on <var_coltype173:MClassType>*/
4244 }
4245 {
4246 var199 = core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var198, 1l);
4247 }
4248 {
4249 { /* Inline typing$Variable$declared_type= (var197,var199) on <var197:nullable Object(Variable)> */
4250 var197->attrs[COLOR_nitc__typing__Variable___declared_type].val = var199; /* _declared_type on <var197:nullable Object(Variable)> */
4251 RET_LABEL200:(void)0;
4252 }
4253 }
4254 }
4255 var_is_map = 1;
4256 } else {
4257 }
4258 var202 = !var_is_col;
4259 var_203 = var202;
4260 if (var202){
4261 var204 = !var_is_map;
4262 var201 = var204;
4263 } else {
4264 var201 = var_203;
4265 }
4266 if (var201){
4267 if (likely(varonce205!=NULL)) {
4268 var206 = varonce205;
4269 } else {
4270 var207 = "Type Error: `for` expects the method `iterator` to return an `Iterator` or `MapIterator` type.";
4271 var209 = (val*)(94l<<2|1);
4272 var210 = (val*)(94l<<2|1);
4273 var211 = (val*)((long)(0)<<2|3);
4274 var212 = (val*)((long)(0)<<2|3);
4275 var208 = core__flat___CString___to_s_unsafe(var207, var209, var210, var211, var212);
4276 var206 = var208;
4277 varonce205 = var206;
4278 }
4279 {
4280 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var206); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4281 }
4282 goto RET_LABEL;
4283 } else {
4284 }
4285 {
4286 var213 = ((short int(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__need_anchor]))(var_mtype); /* need_anchor on <var_mtype:MType>*/
4287 }
4288 if (var213){
4289 {
4290 var214 = nitc__typing___nitc__typing__TypeVisitor___anchor_to(var_v, var_mtype);
4291 }
4292 var_mtype = var214;
4293 } else {
4294 }
4295 {
4296 var215 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__undecorate]))(var_mtype); /* undecorate on <var_mtype:MType>*/
4297 }
4298 var_mtype = var215;
4299 /* <var_mtype:MType> isa MClassType */
4300 cltype217 = type_nitc__MClassType.color;
4301 idtype218 = type_nitc__MClassType.id;
4302 if(cltype217 >= var_mtype->type->table_size) {
4303 var216 = 0;
4304 } else {
4305 var216 = var_mtype->type->type_table[cltype217] == idtype218;
4306 }
4307 if (unlikely(!var216)) {
4308 var_class_name = var_mtype == NULL ? "null" : var_mtype->type->name;
4309 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MClassType", var_class_name);
4310 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1273);
4311 fatal_exit(1);
4312 }
4313 {
4314 { /* Inline typing$AForGroup$coltype= (self,var_mtype) on <self:AForGroup> */
4315 self->attrs[COLOR_nitc__typing__AForGroup___coltype].val = var_mtype; /* _coltype on <self:AForGroup> */
4316 RET_LABEL219:(void)0;
4317 }
4318 }
4319 if (likely(varonce220!=NULL)) {
4320 var221 = varonce220;
4321 } else {
4322 var222 = "is_ok";
4323 var224 = (val*)(5l<<2|1);
4324 var225 = (val*)(5l<<2|1);
4325 var226 = (val*)((long)(0)<<2|3);
4326 var227 = (val*)((long)(0)<<2|3);
4327 var223 = core__flat___CString___to_s_unsafe(var222, var224, var225, var226, var227);
4328 var221 = var223;
4329 varonce220 = var221;
4330 }
4331 {
4332 var228 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var221, 0);
4333 }
4334 var_ikdef = var228;
4335 if (var_ikdef == NULL) {
4336 var229 = 1; /* is null */
4337 } else {
4338 var229 = 0; /* arg is null but recv is not */
4339 }
4340 if (0) {
4341 { /* Inline kernel$Object$== (var_ikdef,((val*)NULL)) on <var_ikdef:nullable CallSite> */
4342 var_other = ((val*)NULL);
4343 {
4344 { /* Inline kernel$Object$is_same_instance (var_ikdef,var_other) on <var_ikdef:nullable CallSite(CallSite)> */
4345 var234 = var_ikdef == var_other;
4346 var232 = var234;
4347 goto RET_LABEL233;
4348 RET_LABEL233:(void)0;
4349 }
4350 }
4351 var230 = var232;
4352 goto RET_LABEL231;
4353 RET_LABEL231:(void)0;
4354 }
4355 var229 = var230;
4356 }
4357 if (var229){
4358 if (unlikely(varonce235==NULL)) {
4359 var236 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4360 if (likely(varonce237!=NULL)) {
4361 var238 = varonce237;
4362 } else {
4363 var239 = "Type Error: `for` expects a method `is_ok` in type `";
4364 var241 = (val*)(52l<<2|1);
4365 var242 = (val*)(52l<<2|1);
4366 var243 = (val*)((long)(0)<<2|3);
4367 var244 = (val*)((long)(0)<<2|3);
4368 var240 = core__flat___CString___to_s_unsafe(var239, var241, var242, var243, var244);
4369 var238 = var240;
4370 varonce237 = var238;
4371 }
4372 ((struct instance_core__NativeArray*)var236)->values[0]=var238;
4373 if (likely(varonce245!=NULL)) {
4374 var246 = varonce245;
4375 } else {
4376 var247 = "`.";
4377 var249 = (val*)(2l<<2|1);
4378 var250 = (val*)(2l<<2|1);
4379 var251 = (val*)((long)(0)<<2|3);
4380 var252 = (val*)((long)(0)<<2|3);
4381 var248 = core__flat___CString___to_s_unsafe(var247, var249, var250, var251, var252);
4382 var246 = var248;
4383 varonce245 = var246;
4384 }
4385 ((struct instance_core__NativeArray*)var236)->values[2]=var246;
4386 } else {
4387 var236 = varonce235;
4388 varonce235 = NULL;
4389 }
4390 {
4391 var253 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on <var_ittype:nullable MType(MType)>*/
4392 }
4393 ((struct instance_core__NativeArray*)var236)->values[1]=var253;
4394 {
4395 var254 = ((val*(*)(val* self))(var236->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var236); /* native_to_s on <var236:NativeArray[String]>*/
4396 }
4397 varonce235 = var236;
4398 {
4399 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var254); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4400 }
4401 goto RET_LABEL;
4402 } else {
4403 }
4404 {
4405 { /* Inline typing$AForGroup$method_is_ok= (self,var_ikdef) on <self:AForGroup> */
4406 self->attrs[COLOR_nitc__typing__AForGroup___method_is_ok].val = var_ikdef; /* _method_is_ok on <self:AForGroup> */
4407 RET_LABEL255:(void)0;
4408 }
4409 }
4410 if (likely(varonce256!=NULL)) {
4411 var257 = varonce256;
4412 } else {
4413 var258 = "item";
4414 var260 = (val*)(4l<<2|1);
4415 var261 = (val*)(4l<<2|1);
4416 var262 = (val*)((long)(0)<<2|3);
4417 var263 = (val*)((long)(0)<<2|3);
4418 var259 = core__flat___CString___to_s_unsafe(var258, var260, var261, var262, var263);
4419 var257 = var259;
4420 varonce256 = var257;
4421 }
4422 {
4423 var264 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var257, 0);
4424 }
4425 var_itemdef = var264;
4426 if (var_itemdef == NULL) {
4427 var265 = 1; /* is null */
4428 } else {
4429 var265 = 0; /* arg is null but recv is not */
4430 }
4431 if (0) {
4432 { /* Inline kernel$Object$== (var_itemdef,((val*)NULL)) on <var_itemdef:nullable CallSite> */
4433 var_other = ((val*)NULL);
4434 {
4435 { /* Inline kernel$Object$is_same_instance (var_itemdef,var_other) on <var_itemdef:nullable CallSite(CallSite)> */
4436 var270 = var_itemdef == var_other;
4437 var268 = var270;
4438 goto RET_LABEL269;
4439 RET_LABEL269:(void)0;
4440 }
4441 }
4442 var266 = var268;
4443 goto RET_LABEL267;
4444 RET_LABEL267:(void)0;
4445 }
4446 var265 = var266;
4447 }
4448 if (var265){
4449 if (unlikely(varonce271==NULL)) {
4450 var272 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4451 if (likely(varonce273!=NULL)) {
4452 var274 = varonce273;
4453 } else {
4454 var275 = "Type Error: `for` expects a method `item` in type `";
4455 var277 = (val*)(51l<<2|1);
4456 var278 = (val*)(51l<<2|1);
4457 var279 = (val*)((long)(0)<<2|3);
4458 var280 = (val*)((long)(0)<<2|3);
4459 var276 = core__flat___CString___to_s_unsafe(var275, var277, var278, var279, var280);
4460 var274 = var276;
4461 varonce273 = var274;
4462 }
4463 ((struct instance_core__NativeArray*)var272)->values[0]=var274;
4464 if (likely(varonce281!=NULL)) {
4465 var282 = varonce281;
4466 } else {
4467 var283 = "`.";
4468 var285 = (val*)(2l<<2|1);
4469 var286 = (val*)(2l<<2|1);
4470 var287 = (val*)((long)(0)<<2|3);
4471 var288 = (val*)((long)(0)<<2|3);
4472 var284 = core__flat___CString___to_s_unsafe(var283, var285, var286, var287, var288);
4473 var282 = var284;
4474 varonce281 = var282;
4475 }
4476 ((struct instance_core__NativeArray*)var272)->values[2]=var282;
4477 } else {
4478 var272 = varonce271;
4479 varonce271 = NULL;
4480 }
4481 {
4482 var289 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on <var_ittype:nullable MType(MType)>*/
4483 }
4484 ((struct instance_core__NativeArray*)var272)->values[1]=var289;
4485 {
4486 var290 = ((val*(*)(val* self))(var272->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var272); /* native_to_s on <var272:NativeArray[String]>*/
4487 }
4488 varonce271 = var272;
4489 {
4490 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var290); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4491 }
4492 goto RET_LABEL;
4493 } else {
4494 }
4495 {
4496 { /* Inline typing$AForGroup$method_item= (self,var_itemdef) on <self:AForGroup> */
4497 self->attrs[COLOR_nitc__typing__AForGroup___method_item].val = var_itemdef; /* _method_item on <self:AForGroup> */
4498 RET_LABEL291:(void)0;
4499 }
4500 }
4501 if (likely(varonce292!=NULL)) {
4502 var293 = varonce292;
4503 } else {
4504 var294 = "next";
4505 var296 = (val*)(4l<<2|1);
4506 var297 = (val*)(4l<<2|1);
4507 var298 = (val*)((long)(0)<<2|3);
4508 var299 = (val*)((long)(0)<<2|3);
4509 var295 = core__flat___CString___to_s_unsafe(var294, var296, var297, var298, var299);
4510 var293 = var295;
4511 varonce292 = var293;
4512 }
4513 {
4514 var300 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var293, 0);
4515 }
4516 var_nextdef = var300;
4517 if (var_nextdef == NULL) {
4518 var301 = 1; /* is null */
4519 } else {
4520 var301 = 0; /* arg is null but recv is not */
4521 }
4522 if (0) {
4523 { /* Inline kernel$Object$== (var_nextdef,((val*)NULL)) on <var_nextdef:nullable CallSite> */
4524 var_other = ((val*)NULL);
4525 {
4526 { /* Inline kernel$Object$is_same_instance (var_nextdef,var_other) on <var_nextdef:nullable CallSite(CallSite)> */
4527 var306 = var_nextdef == var_other;
4528 var304 = var306;
4529 goto RET_LABEL305;
4530 RET_LABEL305:(void)0;
4531 }
4532 }
4533 var302 = var304;
4534 goto RET_LABEL303;
4535 RET_LABEL303:(void)0;
4536 }
4537 var301 = var302;
4538 }
4539 if (var301){
4540 if (unlikely(varonce307==NULL)) {
4541 var308 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4542 if (likely(varonce309!=NULL)) {
4543 var310 = varonce309;
4544 } else {
4545 var311 = "Type Error: `for` expects a method `next` in type ";
4546 var313 = (val*)(50l<<2|1);
4547 var314 = (val*)(50l<<2|1);
4548 var315 = (val*)((long)(0)<<2|3);
4549 var316 = (val*)((long)(0)<<2|3);
4550 var312 = core__flat___CString___to_s_unsafe(var311, var313, var314, var315, var316);
4551 var310 = var312;
4552 varonce309 = var310;
4553 }
4554 ((struct instance_core__NativeArray*)var308)->values[0]=var310;
4555 if (likely(varonce317!=NULL)) {
4556 var318 = varonce317;
4557 } else {
4558 var319 = ".";
4559 var321 = (val*)(1l<<2|1);
4560 var322 = (val*)(1l<<2|1);
4561 var323 = (val*)((long)(0)<<2|3);
4562 var324 = (val*)((long)(0)<<2|3);
4563 var320 = core__flat___CString___to_s_unsafe(var319, var321, var322, var323, var324);
4564 var318 = var320;
4565 varonce317 = var318;
4566 }
4567 ((struct instance_core__NativeArray*)var308)->values[2]=var318;
4568 } else {
4569 var308 = varonce307;
4570 varonce307 = NULL;
4571 }
4572 {
4573 var325 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on <var_ittype:nullable MType(MType)>*/
4574 }
4575 ((struct instance_core__NativeArray*)var308)->values[1]=var325;
4576 {
4577 var326 = ((val*(*)(val* self))(var308->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var308); /* native_to_s on <var308:NativeArray[String]>*/
4578 }
4579 varonce307 = var308;
4580 {
4581 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var326); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4582 }
4583 goto RET_LABEL;
4584 } else {
4585 }
4586 {
4587 { /* Inline typing$AForGroup$method_next= (self,var_nextdef) on <self:AForGroup> */
4588 self->attrs[COLOR_nitc__typing__AForGroup___method_next].val = var_nextdef; /* _method_next on <self:AForGroup> */
4589 RET_LABEL327:(void)0;
4590 }
4591 }
4592 if (likely(varonce328!=NULL)) {
4593 var329 = varonce328;
4594 } else {
4595 var330 = "finish";
4596 var332 = (val*)(6l<<2|1);
4597 var333 = (val*)(6l<<2|1);
4598 var334 = (val*)((long)(0)<<2|3);
4599 var335 = (val*)((long)(0)<<2|3);
4600 var331 = core__flat___CString___to_s_unsafe(var330, var332, var333, var334, var335);
4601 var329 = var331;
4602 varonce328 = var329;
4603 }
4604 {
4605 var336 = nitc__typing___nitc__typing__TypeVisitor___try_get_method(var_v, self, var_ittype, var329, 0);
4606 }
4607 {
4608 { /* Inline typing$AForGroup$method_finish= (self,var336) on <self:AForGroup> */
4609 self->attrs[COLOR_nitc__typing__AForGroup___method_finish].val = var336; /* _method_finish on <self:AForGroup> */
4610 RET_LABEL337:(void)0;
4611 }
4612 }
4613 if (var_is_map){
4614 if (likely(varonce338!=NULL)) {
4615 var339 = varonce338;
4616 } else {
4617 var340 = "key";
4618 var342 = (val*)(3l<<2|1);
4619 var343 = (val*)(3l<<2|1);
4620 var344 = (val*)((long)(0)<<2|3);
4621 var345 = (val*)((long)(0)<<2|3);
4622 var341 = core__flat___CString___to_s_unsafe(var340, var342, var343, var344, var345);
4623 var339 = var341;
4624 varonce338 = var339;
4625 }
4626 {
4627 var346 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_ittype, var339, 0);
4628 }
4629 var_keydef = var346;
4630 if (var_keydef == NULL) {
4631 var347 = 1; /* is null */
4632 } else {
4633 var347 = 0; /* arg is null but recv is not */
4634 }
4635 if (0) {
4636 { /* Inline kernel$Object$== (var_keydef,((val*)NULL)) on <var_keydef:nullable CallSite> */
4637 var_other = ((val*)NULL);
4638 {
4639 { /* Inline kernel$Object$is_same_instance (var_keydef,var_other) on <var_keydef:nullable CallSite(CallSite)> */
4640 var352 = var_keydef == var_other;
4641 var350 = var352;
4642 goto RET_LABEL351;
4643 RET_LABEL351:(void)0;
4644 }
4645 }
4646 var348 = var350;
4647 goto RET_LABEL349;
4648 RET_LABEL349:(void)0;
4649 }
4650 var347 = var348;
4651 }
4652 if (var347){
4653 if (unlikely(varonce353==NULL)) {
4654 var354 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
4655 if (likely(varonce355!=NULL)) {
4656 var356 = varonce355;
4657 } else {
4658 var357 = "Type Error: `for` expects a method `key` in type `";
4659 var359 = (val*)(50l<<2|1);
4660 var360 = (val*)(50l<<2|1);
4661 var361 = (val*)((long)(0)<<2|3);
4662 var362 = (val*)((long)(0)<<2|3);
4663 var358 = core__flat___CString___to_s_unsafe(var357, var359, var360, var361, var362);
4664 var356 = var358;
4665 varonce355 = var356;
4666 }
4667 ((struct instance_core__NativeArray*)var354)->values[0]=var356;
4668 if (likely(varonce363!=NULL)) {
4669 var364 = varonce363;
4670 } else {
4671 var365 = "`.";
4672 var367 = (val*)(2l<<2|1);
4673 var368 = (val*)(2l<<2|1);
4674 var369 = (val*)((long)(0)<<2|3);
4675 var370 = (val*)((long)(0)<<2|3);
4676 var366 = core__flat___CString___to_s_unsafe(var365, var367, var368, var369, var370);
4677 var364 = var366;
4678 varonce363 = var364;
4679 }
4680 ((struct instance_core__NativeArray*)var354)->values[2]=var364;
4681 } else {
4682 var354 = varonce353;
4683 varonce353 = NULL;
4684 }
4685 {
4686 var371 = ((val*(*)(val* self))(var_ittype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_ittype); /* to_s on <var_ittype:nullable MType(MType)>*/
4687 }
4688 ((struct instance_core__NativeArray*)var354)->values[1]=var371;
4689 {
4690 var372 = ((val*(*)(val* self))(var354->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var354); /* native_to_s on <var354:NativeArray[String]>*/
4691 }
4692 varonce353 = var354;
4693 {
4694 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var372); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
4695 }
4696 goto RET_LABEL;
4697 } else {
4698 }
4699 {
4700 { /* Inline typing$AForGroup$method_key= (self,var_keydef) on <self:AForGroup> */
4701 self->attrs[COLOR_nitc__typing__AForGroup___method_key].val = var_keydef; /* _method_key on <self:AForGroup> */
4702 RET_LABEL373:(void)0;
4703 }
4704 }
4705 } else {
4706 }
4707 {
4708 { /* Inline scope$AForGroup$variables (self) on <self:AForGroup> */
4709 var377 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
4710 var375 = var377;
4711 RET_LABEL376:(void)0;
4712 }
4713 }
4714 if (var375 == NULL) {
4715 if(catchStack.cursor >= 0){
4716 longjmp(catchStack.envs[catchStack.cursor], 1);
4717 }
4718 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4719 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1308);
4720 fatal_exit(1);
4721 } else {
4722 { /* Inline array$AbstractArrayRead$length (var375) on <var375:nullable Array[Variable]> */
4723 if (unlikely(var375 == NULL)) {
4724 if(catchStack.cursor >= 0){
4725 longjmp(catchStack.envs[catchStack.cursor], 1);
4726 }
4727 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4728 PRINT_ERROR(" (%s:%d)\n", FILE_core__array, 26);
4729 fatal_exit(1);
4730 }
4731 var380 = var375->attrs[COLOR_core__array__AbstractArrayRead___length].l; /* _length on <var375:nullable Array[Variable]> */
4732 var378 = var380;
4733 RET_LABEL379:(void)0;
4734 }
4735 }
4736 {
4737 { /* Inline kernel$Int$== (var378,1l) on <var378:Int> */
4738 var383 = var378 == 1l;
4739 var381 = var383;
4740 goto RET_LABEL382;
4741 RET_LABEL382:(void)0;
4742 }
4743 }
4744 var_384 = var381;
4745 if (var381){
4746 {
4747 { /* Inline parser_nodes$AForGroup$n_expr (self) on <self:AForGroup> */
4748 var387 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <self:AForGroup> */
4749 if (unlikely(var387 == NULL)) {
4750 if(catchStack.cursor >= 0){
4751 longjmp(catchStack.envs[catchStack.cursor], 1);
4752 }
4753 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4754 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024);
4755 fatal_exit(1);
4756 }
4757 var385 = var387;
4758 RET_LABEL386:(void)0;
4759 }
4760 }
4761 /* <var385:AExpr> isa ARangeExpr */
4762 cltype389 = type_nitc__ARangeExpr.color;
4763 idtype390 = type_nitc__ARangeExpr.id;
4764 if(cltype389 >= var385->type->table_size) {
4765 var388 = 0;
4766 } else {
4767 var388 = var385->type->type_table[cltype389] == idtype390;
4768 }
4769 var374 = var388;
4770 } else {
4771 var374 = var_384;
4772 }
4773 if (var374){
4774 {
4775 { /* Inline scope$AForGroup$variables (self) on <self:AForGroup> */
4776 var393 = self->attrs[COLOR_nitc__scope__AForGroup___variables].val; /* _variables on <self:AForGroup> */
4777 var391 = var393;
4778 RET_LABEL392:(void)0;
4779 }
4780 }
4781 if (var391 == NULL) {
4782 if(catchStack.cursor >= 0){
4783 longjmp(catchStack.envs[catchStack.cursor], 1);
4784 }
4785 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4786 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1309);
4787 fatal_exit(1);
4788 } else {
4789 var394 = core___core__SequenceRead___Collection__first(var391);
4790 }
4791 var_variable = var394;
4792 {
4793 { /* Inline typing$Variable$declared_type (var_variable) on <var_variable:Variable> */
4794 var397 = var_variable->attrs[COLOR_nitc__typing__Variable___declared_type].val; /* _declared_type on <var_variable:Variable> */
4795 var395 = var397;
4796 RET_LABEL396:(void)0;
4797 }
4798 }
4799 if (unlikely(var395 == NULL)) {
4800 if(catchStack.cursor >= 0){
4801 longjmp(catchStack.envs[catchStack.cursor], 1);
4802 }
4803 PRINT_ERROR("Runtime error: %s", "Cast failed");
4804 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1310);
4805 fatal_exit(1);
4806 }
4807 var_vtype = var395;
4808 {
4809 { /* Inline parser_nodes$AForGroup$n_expr (self) on <self:AForGroup> */
4810 var400 = self->attrs[COLOR_nitc__parser_nodes__AForGroup___n_expr].val; /* _n_expr on <self:AForGroup> */
4811 if (unlikely(var400 == NULL)) {
4812 if(catchStack.cursor >= 0){
4813 longjmp(catchStack.envs[catchStack.cursor], 1);
4814 }
4815 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4816 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2024);
4817 fatal_exit(1);
4818 }
4819 var398 = var400;
4820 RET_LABEL399:(void)0;
4821 }
4822 }
4823 /* <var398:AExpr> isa AOrangeExpr */
4824 cltype402 = type_nitc__AOrangeExpr.color;
4825 idtype403 = type_nitc__AOrangeExpr.id;
4826 if(cltype402 >= var398->type->table_size) {
4827 var401 = 0;
4828 } else {
4829 var401 = var398->type->type_table[cltype402] == idtype403;
4830 }
4831 if (var401){
4832 if (likely(varonce404!=NULL)) {
4833 var405 = varonce404;
4834 } else {
4835 var406 = "<";
4836 var408 = (val*)(1l<<2|1);
4837 var409 = (val*)(1l<<2|1);
4838 var410 = (val*)((long)(0)<<2|3);
4839 var411 = (val*)((long)(0)<<2|3);
4840 var407 = core__flat___CString___to_s_unsafe(var406, var408, var409, var410, var411);
4841 var405 = var407;
4842 varonce404 = var405;
4843 }
4844 {
4845 var412 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var405, 0);
4846 }
4847 {
4848 { /* Inline typing$AForGroup$method_lt= (self,var412) on <self:AForGroup> */
4849 self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = var412; /* _method_lt on <self:AForGroup> */
4850 RET_LABEL413:(void)0;
4851 }
4852 }
4853 } else {
4854 if (likely(varonce414!=NULL)) {
4855 var415 = varonce414;
4856 } else {
4857 var416 = "<=";
4858 var418 = (val*)(2l<<2|1);
4859 var419 = (val*)(2l<<2|1);
4860 var420 = (val*)((long)(0)<<2|3);
4861 var421 = (val*)((long)(0)<<2|3);
4862 var417 = core__flat___CString___to_s_unsafe(var416, var418, var419, var420, var421);
4863 var415 = var417;
4864 varonce414 = var415;
4865 }
4866 {
4867 var422 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var415, 0);
4868 }
4869 {
4870 { /* Inline typing$AForGroup$method_lt= (self,var422) on <self:AForGroup> */
4871 self->attrs[COLOR_nitc__typing__AForGroup___method_lt].val = var422; /* _method_lt on <self:AForGroup> */
4872 RET_LABEL423:(void)0;
4873 }
4874 }
4875 }
4876 if (likely(varonce424!=NULL)) {
4877 var425 = varonce424;
4878 } else {
4879 var426 = "successor";
4880 var428 = (val*)(9l<<2|1);
4881 var429 = (val*)(9l<<2|1);
4882 var430 = (val*)((long)(0)<<2|3);
4883 var431 = (val*)((long)(0)<<2|3);
4884 var427 = core__flat___CString___to_s_unsafe(var426, var428, var429, var430, var431);
4885 var425 = var427;
4886 varonce424 = var425;
4887 }
4888 {
4889 var432 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_vtype, var425, 0);
4890 }
4891 {
4892 { /* Inline typing$AForGroup$method_successor= (self,var432) on <self:AForGroup> */
4893 self->attrs[COLOR_nitc__typing__AForGroup___method_successor].val = var432; /* _method_successor on <self:AForGroup> */
4894 RET_LABEL433:(void)0;
4895 }
4896 }
4897 } else {
4898 }
4899 RET_LABEL:;
4900 }
4901 /* method typing$AWithExpr$method_start for (self: AWithExpr): nullable CallSite */
4902 val* nitc__typing___AWithExpr___method_start(val* self) {
4903 val* var /* : nullable CallSite */;
4904 val* var1 /* : nullable CallSite */;
4905 var1 = self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val; /* _method_start on <self:AWithExpr> */
4906 var = var1;
4907 RET_LABEL:;
4908 return var;
4909 }
4910 /* method typing$AWithExpr$method_start= for (self: AWithExpr, nullable CallSite) */
4911 void nitc__typing___AWithExpr___method_start_61d(val* self, val* p0) {
4912 self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val = p0; /* _method_start on <self:AWithExpr> */
4913 RET_LABEL:;
4914 }
4915 /* method typing$AWithExpr$method_finish for (self: AWithExpr): nullable CallSite */
4916 val* nitc__typing___AWithExpr___method_finish(val* self) {
4917 val* var /* : nullable CallSite */;
4918 val* var1 /* : nullable CallSite */;
4919 var1 = self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val; /* _method_finish on <self:AWithExpr> */
4920 var = var1;
4921 RET_LABEL:;
4922 return var;
4923 }
4924 /* method typing$AWithExpr$method_finish= for (self: AWithExpr, nullable CallSite) */
4925 void nitc__typing___AWithExpr___method_finish_61d(val* self, val* p0) {
4926 self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val = p0; /* _method_finish on <self:AWithExpr> */
4927 RET_LABEL:;
4928 }
4929 /* method typing$AWithExpr$accept_typing for (self: AWithExpr, TypeVisitor) */
4930 void nitc__typing___AWithExpr___AExpr__accept_typing(val* self, val* p0) {
4931 val* var_v /* var v: TypeVisitor */;
4932 val* var /* : AExpr */;
4933 val* var2 /* : AExpr */;
4934 val* var3 /* : nullable MType */;
4935 val* var_mtype /* var mtype: nullable MType */;
4936 short int var4 /* : Bool */;
4937 short int var5 /* : Bool */;
4938 val* var_other /* var other: nullable Object */;
4939 short int var7 /* : Bool */;
4940 short int var9 /* : Bool */;
4941 static val* varonce;
4942 val* var10 /* : String */;
4943 char* var11 /* : CString */;
4944 val* var12 /* : String */;
4945 val* var13 /* : nullable Int */;
4946 val* var14 /* : nullable Int */;
4947 val* var15 /* : nullable Bool */;
4948 val* var16 /* : nullable Bool */;
4949 val* var17 /* : AExpr */;
4950 val* var19 /* : AExpr */;
4951 short int var20 /* : Bool */;
4952 int cltype;
4953 int idtype;
4954 val* var21 /* : nullable CallSite */;
4955 static val* varonce23;
4956 val* var24 /* : String */;
4957 char* var25 /* : CString */;
4958 val* var26 /* : String */;
4959 val* var27 /* : nullable Int */;
4960 val* var28 /* : nullable Int */;
4961 val* var29 /* : nullable Bool */;
4962 val* var30 /* : nullable Bool */;
4963 val* var31 /* : AExpr */;
4964 val* var33 /* : AExpr */;
4965 short int var34 /* : Bool */;
4966 int cltype35;
4967 int idtype36;
4968 val* var37 /* : nullable CallSite */;
4969 val* var39 /* : nullable AExpr */;
4970 val* var41 /* : nullable AExpr */;
4971 val* var42 /* : nullable AExpr */;
4972 val* var44 /* : nullable AExpr */;
4973 val* var45 /* : nullable MType */;
4974 var_v = p0;
4975 {
4976 { /* Inline parser_nodes$AWithExpr$n_expr (self) on <self:AWithExpr> */
4977 var2 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
4978 if (unlikely(var2 == NULL)) {
4979 if(catchStack.cursor >= 0){
4980 longjmp(catchStack.envs[catchStack.cursor], 1);
4981 }
4982 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
4983 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2036);
4984 fatal_exit(1);
4985 }
4986 var = var2;
4987 RET_LABEL1:(void)0;
4988 }
4989 }
4990 {
4991 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
4992 }
4993 var_mtype = var3;
4994 if (var_mtype == NULL) {
4995 var4 = 1; /* is null */
4996 } else {
4997 var4 = 0; /* arg is null but recv is not */
4998 }
4999 if (0) {
5000 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
5001 var_other = ((val*)NULL);
5002 {
5003 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
5004 var9 = var_mtype == var_other;
5005 var7 = var9;
5006 goto RET_LABEL8;
5007 RET_LABEL8:(void)0;
5008 }
5009 }
5010 var5 = var7;
5011 goto RET_LABEL6;
5012 RET_LABEL6:(void)0;
5013 }
5014 var4 = var5;
5015 }
5016 if (var4){
5017 goto RET_LABEL;
5018 } else {
5019 }
5020 if (likely(varonce!=NULL)) {
5021 var10 = varonce;
5022 } else {
5023 var11 = "start";
5024 var13 = (val*)(5l<<2|1);
5025 var14 = (val*)(5l<<2|1);
5026 var15 = (val*)((long)(0)<<2|3);
5027 var16 = (val*)((long)(0)<<2|3);
5028 var12 = core__flat___CString___to_s_unsafe(var11, var13, var14, var15, var16);
5029 var10 = var12;
5030 varonce = var10;
5031 }
5032 {
5033 { /* Inline parser_nodes$AWithExpr$n_expr (self) on <self:AWithExpr> */
5034 var19 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
5035 if (unlikely(var19 == NULL)) {
5036 if(catchStack.cursor >= 0){
5037 longjmp(catchStack.envs[catchStack.cursor], 1);
5038 }
5039 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5040 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2036);
5041 fatal_exit(1);
5042 }
5043 var17 = var19;
5044 RET_LABEL18:(void)0;
5045 }
5046 }
5047 /* <var17:AExpr> isa ASelfExpr */
5048 cltype = type_nitc__ASelfExpr.color;
5049 idtype = type_nitc__ASelfExpr.id;
5050 if(cltype >= var17->type->table_size) {
5051 var20 = 0;
5052 } else {
5053 var20 = var17->type->type_table[cltype] == idtype;
5054 }
5055 {
5056 var21 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var10, var20);
5057 }
5058 {
5059 { /* Inline typing$AWithExpr$method_start= (self,var21) on <self:AWithExpr> */
5060 self->attrs[COLOR_nitc__typing__AWithExpr___method_start].val = var21; /* _method_start on <self:AWithExpr> */
5061 RET_LABEL22:(void)0;
5062 }
5063 }
5064 if (likely(varonce23!=NULL)) {
5065 var24 = varonce23;
5066 } else {
5067 var25 = "finish";
5068 var27 = (val*)(6l<<2|1);
5069 var28 = (val*)(6l<<2|1);
5070 var29 = (val*)((long)(0)<<2|3);
5071 var30 = (val*)((long)(0)<<2|3);
5072 var26 = core__flat___CString___to_s_unsafe(var25, var27, var28, var29, var30);
5073 var24 = var26;
5074 varonce23 = var24;
5075 }
5076 {
5077 { /* Inline parser_nodes$AWithExpr$n_expr (self) on <self:AWithExpr> */
5078 var33 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_expr].val; /* _n_expr on <self:AWithExpr> */
5079 if (unlikely(var33 == NULL)) {
5080 if(catchStack.cursor >= 0){
5081 longjmp(catchStack.envs[catchStack.cursor], 1);
5082 }
5083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5084 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2036);
5085 fatal_exit(1);
5086 }
5087 var31 = var33;
5088 RET_LABEL32:(void)0;
5089 }
5090 }
5091 /* <var31:AExpr> isa ASelfExpr */
5092 cltype35 = type_nitc__ASelfExpr.color;
5093 idtype36 = type_nitc__ASelfExpr.id;
5094 if(cltype35 >= var31->type->table_size) {
5095 var34 = 0;
5096 } else {
5097 var34 = var31->type->type_table[cltype35] == idtype36;
5098 }
5099 {
5100 var37 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var24, var34);
5101 }
5102 {
5103 { /* Inline typing$AWithExpr$method_finish= (self,var37) on <self:AWithExpr> */
5104 self->attrs[COLOR_nitc__typing__AWithExpr___method_finish].val = var37; /* _method_finish on <self:AWithExpr> */
5105 RET_LABEL38:(void)0;
5106 }
5107 }
5108 {
5109 { /* Inline parser_nodes$AWithExpr$n_block (self) on <self:AWithExpr> */
5110 var41 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
5111 var39 = var41;
5112 RET_LABEL40:(void)0;
5113 }
5114 }
5115 {
5116 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var39); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
5117 }
5118 {
5119 { /* Inline parser_nodes$AWithExpr$n_block (self) on <self:AWithExpr> */
5120 var44 = self->attrs[COLOR_nitc__parser_nodes__AWithExpr___n_block].val; /* _n_block on <self:AWithExpr> */
5121 var42 = var44;
5122 RET_LABEL43:(void)0;
5123 }
5124 }
5125 if (var42 == NULL) {
5126 if(catchStack.cursor >= 0){
5127 longjmp(catchStack.envs[catchStack.cursor], 1);
5128 }
5129 PRINT_ERROR("Runtime error: %s", "Receiver is null");
5130 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1336);
5131 fatal_exit(1);
5132 } else {
5133 var45 = ((val*(*)(val* self))(var42->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var42); /* mtype on <var42:nullable AExpr>*/
5134 }
5135 {
5136 { /* Inline typing$AExpr$mtype= (self,var45) on <self:AWithExpr> */
5137 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var45; /* _mtype on <self:AWithExpr> */
5138 RET_LABEL46:(void)0;
5139 }
5140 }
5141 {
5142 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AWithExpr> */
5143 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AWithExpr> */
5144 RET_LABEL47:(void)0;
5145 }
5146 }
5147 RET_LABEL:;
5148 }
5149 /* method typing$AAssertExpr$accept_typing for (self: AAssertExpr, TypeVisitor) */
5150 void nitc__typing___AAssertExpr___AExpr__accept_typing(val* self, val* p0) {
5151 val* var_v /* var v: TypeVisitor */;
5152 val* var /* : AExpr */;
5153 val* var2 /* : AExpr */;
5154 val* var3 /* : nullable MType */;
5155 val* var4 /* : nullable AExpr */;
5156 val* var6 /* : nullable AExpr */;
5157 var_v = p0;
5158 {
5159 { /* Inline parser_nodes$AAssertExpr$n_expr (self) on <self:AAssertExpr> */
5160 var2 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_expr].val; /* _n_expr on <self:AAssertExpr> */
5161 if (unlikely(var2 == NULL)) {
5162 if(catchStack.cursor >= 0){
5163 longjmp(catchStack.envs[catchStack.cursor], 1);
5164 }
5165 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5166 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2056);
5167 fatal_exit(1);
5168 }
5169 var = var2;
5170 RET_LABEL1:(void)0;
5171 }
5172 }
5173 {
5174 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
5175 }
5176 {
5177 { /* Inline parser_nodes$AAssertExpr$n_else (self) on <self:AAssertExpr> */
5178 var6 = self->attrs[COLOR_nitc__parser_nodes__AAssertExpr___n_else].val; /* _n_else on <self:AAssertExpr> */
5179 var4 = var6;
5180 RET_LABEL5:(void)0;
5181 }
5182 }
5183 {
5184 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v, var4); /* Direct call typing$TypeVisitor$visit_stmt on <var_v:TypeVisitor>*/
5185 }
5186 {
5187 { /* Inline typing$AExpr$is_typed= (self,1) on <self:AAssertExpr> */
5188 self->attrs[COLOR_nitc__typing__AExpr___is_typed].s = 1; /* _is_typed on <self:AAssertExpr> */
5189 RET_LABEL7:(void)0;
5190 }
5191 }
5192 RET_LABEL:;
5193 }
5194 /* method typing$AOrExpr$accept_typing for (self: AOrExpr, TypeVisitor) */
5195 void nitc__typing___AOrExpr___AExpr__accept_typing(val* self, val* p0) {
5196 val* var_v /* var v: TypeVisitor */;
5197 val* var /* : AExpr */;
5198 val* var2 /* : AExpr */;
5199 val* var3 /* : nullable MType */;
5200 val* var4 /* : AExpr */;
5201 val* var6 /* : AExpr */;
5202 val* var7 /* : nullable MType */;
5203 val* var8 /* : nullable MType */;
5204 var_v = p0;
5205 {
5206 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AOrExpr> */
5207 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrExpr> */
5208 if (unlikely(var2 == NULL)) {
5209 if(catchStack.cursor >= 0){
5210 longjmp(catchStack.envs[catchStack.cursor], 1);
5211 }
5212 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5213 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
5214 fatal_exit(1);
5215 }
5216 var = var2;
5217 RET_LABEL1:(void)0;
5218 }
5219 }
5220 {
5221 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
5222 }
5223 {
5224 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AOrExpr> */
5225 var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrExpr> */
5226 if (unlikely(var6 == NULL)) {
5227 if(catchStack.cursor >= 0){
5228 longjmp(catchStack.envs[catchStack.cursor], 1);
5229 }
5230 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5231 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
5232 fatal_exit(1);
5233 }
5234 var4 = var6;
5235 RET_LABEL5:(void)0;
5236 }
5237 }
5238 {
5239 var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4);
5240 }
5241 {
5242 var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
5243 }
5244 {
5245 { /* Inline typing$AExpr$mtype= (self,var8) on <self:AOrExpr> */
5246 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on <self:AOrExpr> */
5247 RET_LABEL9:(void)0;
5248 }
5249 }
5250 RET_LABEL:;
5251 }
5252 /* method typing$AImpliesExpr$accept_typing for (self: AImpliesExpr, TypeVisitor) */
5253 void nitc__typing___AImpliesExpr___AExpr__accept_typing(val* self, val* p0) {
5254 val* var_v /* var v: TypeVisitor */;
5255 val* var /* : AExpr */;
5256 val* var2 /* : AExpr */;
5257 val* var3 /* : nullable MType */;
5258 val* var4 /* : AExpr */;
5259 val* var6 /* : AExpr */;
5260 val* var7 /* : nullable MType */;
5261 val* var8 /* : nullable MType */;
5262 var_v = p0;
5263 {
5264 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AImpliesExpr> */
5265 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AImpliesExpr> */
5266 if (unlikely(var2 == NULL)) {
5267 if(catchStack.cursor >= 0){
5268 longjmp(catchStack.envs[catchStack.cursor], 1);
5269 }
5270 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5271 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
5272 fatal_exit(1);
5273 }
5274 var = var2;
5275 RET_LABEL1:(void)0;
5276 }
5277 }
5278 {
5279 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
5280 }
5281 {
5282 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AImpliesExpr> */
5283 var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AImpliesExpr> */
5284 if (unlikely(var6 == NULL)) {
5285 if(catchStack.cursor >= 0){
5286 longjmp(catchStack.envs[catchStack.cursor], 1);
5287 }
5288 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5289 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
5290 fatal_exit(1);
5291 }
5292 var4 = var6;
5293 RET_LABEL5:(void)0;
5294 }
5295 }
5296 {
5297 var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4);
5298 }
5299 {
5300 var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
5301 }
5302 {
5303 { /* Inline typing$AExpr$mtype= (self,var8) on <self:AImpliesExpr> */
5304 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on <self:AImpliesExpr> */
5305 RET_LABEL9:(void)0;
5306 }
5307 }
5308 RET_LABEL:;
5309 }
5310 /* method typing$AAndExpr$accept_typing for (self: AAndExpr, TypeVisitor) */
5311 void nitc__typing___AAndExpr___AExpr__accept_typing(val* self, val* p0) {
5312 val* var_v /* var v: TypeVisitor */;
5313 val* var /* : AExpr */;
5314 val* var2 /* : AExpr */;
5315 val* var3 /* : nullable MType */;
5316 val* var4 /* : AExpr */;
5317 val* var6 /* : AExpr */;
5318 val* var7 /* : nullable MType */;
5319 val* var8 /* : nullable MType */;
5320 var_v = p0;
5321 {
5322 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AAndExpr> */
5323 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AAndExpr> */
5324 if (unlikely(var2 == NULL)) {
5325 if(catchStack.cursor >= 0){
5326 longjmp(catchStack.envs[catchStack.cursor], 1);
5327 }
5328 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5329 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
5330 fatal_exit(1);
5331 }
5332 var = var2;
5333 RET_LABEL1:(void)0;
5334 }
5335 }
5336 {
5337 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
5338 }
5339 {
5340 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AAndExpr> */
5341 var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AAndExpr> */
5342 if (unlikely(var6 == NULL)) {
5343 if(catchStack.cursor >= 0){
5344 longjmp(catchStack.envs[catchStack.cursor], 1);
5345 }
5346 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5347 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
5348 fatal_exit(1);
5349 }
5350 var4 = var6;
5351 RET_LABEL5:(void)0;
5352 }
5353 }
5354 {
5355 var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var4);
5356 }
5357 {
5358 var8 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
5359 }
5360 {
5361 { /* Inline typing$AExpr$mtype= (self,var8) on <self:AAndExpr> */
5362 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var8; /* _mtype on <self:AAndExpr> */
5363 RET_LABEL9:(void)0;
5364 }
5365 }
5366 RET_LABEL:;
5367 }
5368 /* method typing$ANotExpr$accept_typing for (self: ANotExpr, TypeVisitor) */
5369 void nitc__typing___ANotExpr___AExpr__accept_typing(val* self, val* p0) {
5370 val* var_v /* var v: TypeVisitor */;
5371 val* var /* : AExpr */;
5372 val* var2 /* : AExpr */;
5373 val* var3 /* : nullable MType */;
5374 val* var4 /* : nullable MType */;
5375 var_v = p0;
5376 {
5377 { /* Inline parser_nodes$ANotExpr$n_expr (self) on <self:ANotExpr> */
5378 var2 = self->attrs[COLOR_nitc__parser_nodes__ANotExpr___n_expr].val; /* _n_expr on <self:ANotExpr> */
5379 if (unlikely(var2 == NULL)) {
5380 if(catchStack.cursor >= 0){
5381 longjmp(catchStack.envs[catchStack.cursor], 1);
5382 }
5383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5384 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2171);
5385 fatal_exit(1);
5386 }
5387 var = var2;
5388 RET_LABEL1:(void)0;
5389 }
5390 }
5391 {
5392 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(var_v, var);
5393 }
5394 {
5395 var4 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
5396 }
5397 {
5398 { /* Inline typing$AExpr$mtype= (self,var4) on <self:ANotExpr> */
5399 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var4; /* _mtype on <self:ANotExpr> */
5400 RET_LABEL5:(void)0;
5401 }
5402 }
5403 RET_LABEL:;
5404 }
5405 /* method typing$AOrElseExpr$accept_typing for (self: AOrElseExpr, TypeVisitor) */
5406 void nitc__typing___AOrElseExpr___AExpr__accept_typing(val* self, val* p0) {
5407 val* var_v /* var v: TypeVisitor */;
5408 val* var /* : AExpr */;
5409 val* var2 /* : AExpr */;
5410 val* var3 /* : nullable MType */;
5411 val* var_t1 /* var t1: nullable MType */;
5412 val* var4 /* : AExpr */;
5413 val* var6 /* : AExpr */;
5414 val* var7 /* : nullable MType */;
5415 val* var_t2 /* var t2: nullable MType */;
5416 short int var8 /* : Bool */;
5417 short int var9 /* : Bool */;
5418 short int var10 /* : Bool */;
5419 val* var_other /* var other: nullable Object */;
5420 short int var12 /* : Bool */;
5421 short int var14 /* : Bool */;
5422 short int var_ /* var : Bool */;
5423 short int var15 /* : Bool */;
5424 short int var16 /* : Bool */;
5425 short int var18 /* : Bool */;
5426 short int var20 /* : Bool */;
5427 short int var21 /* : Bool */;
5428 int cltype;
5429 int idtype;
5430 short int var23 /* : Bool */;
5431 val* var24 /* : MType */;
5432 val* var25 /* : Array[MType] */;
5433 val* var_26 /* var : Array[MType] */;
5434 val* var27 /* : nullable MType */;
5435 val* var_t /* var t: nullable MType */;
5436 short int var28 /* : Bool */;
5437 short int var29 /* : Bool */;
5438 short int var31 /* : Bool */;
5439 short int var33 /* : Bool */;
5440 static val* varonce;
5441 val* var34 /* : String */;
5442 char* var35 /* : CString */;
5443 val* var36 /* : String */;
5444 val* var37 /* : nullable Int */;
5445 val* var38 /* : nullable Int */;
5446 val* var39 /* : nullable Bool */;
5447 val* var40 /* : nullable Bool */;
5448 val* var41 /* : nullable MClass */;
5449 val* var_c /* var c: nullable MClass */;
5450 short int var42 /* : Bool */;
5451 short int var43 /* : Bool */;
5452 short int var45 /* : Bool */;
5453 short int var47 /* : Bool */;
5454 val* var48 /* : MClassType */;
5455 val* var50 /* : MClassType */;
5456 short int var51 /* : Bool */;
5457 val* var52 /* : MType */;
5458 var_v = p0;
5459 {
5460 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AOrElseExpr> */
5461 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
5462 if (unlikely(var2 == NULL)) {
5463 if(catchStack.cursor >= 0){
5464 longjmp(catchStack.envs[catchStack.cursor], 1);
5465 }
5466 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5467 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
5468 fatal_exit(1);
5469 }
5470 var = var2;
5471 RET_LABEL1:(void)0;
5472 }
5473 }
5474 {
5475 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
5476 }
5477 var_t1 = var3;
5478 {
5479 { /* Inline parser_nodes$ABinBoolExpr$n_expr2 (self) on <self:AOrElseExpr> */
5480 var6 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr2].val; /* _n_expr2 on <self:AOrElseExpr> */
5481 if (unlikely(var6 == NULL)) {
5482 if(catchStack.cursor >= 0){
5483 longjmp(catchStack.envs[catchStack.cursor], 1);
5484 }
5485 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
5486 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2137);
5487 fatal_exit(1);
5488 }
5489 var4 = var6;
5490 RET_LABEL5:(void)0;
5491 }
5492 }
5493 {
5494 var7 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var4);
5495 }
5496 var_t2 = var7;
5497 if (var_t1 == NULL) {
5498 var9 = 1; /* is null */
5499 } else {
5500 var9 = 0; /* arg is null but recv is not */
5501 }
5502 if (0) {
5503 { /* Inline kernel$Object$== (var_t1,((val*)NULL)) on <var_t1:nullable MType> */
5504 var_other = ((val*)NULL);
5505 {
5506 { /* Inline kernel$Object$is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
5507 var14 = var_t1 == var_other;
5508 var12 = var14;
5509 goto RET_LABEL13;
5510 RET_LABEL13:(void)0;
5511 }
5512 }
5513 var10 = var12;
5514 goto RET_LABEL11;
5515 RET_LABEL11:(void)0;
5516 }
5517 var9 = var10;
5518 }
5519 var_ = var9;
5520 if (var9){
5521 var8 = var_;
5522 } else {
5523 if (var_t2 == NULL) {
5524 var15 = 1; /* is null */
5525 } else {
5526 var15 = 0; /* arg is null but recv is not */
5527 }
5528 if (0) {
5529 { /* Inline kernel$Object$== (var_t2,((val*)NULL)) on <var_t2:nullable MType> */
5530 var_other = ((val*)NULL);
5531 {
5532 { /* Inline kernel$Object$is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
5533 var20 = var_t2 == var_other;
5534 var18 = var20;
5535 goto RET_LABEL19;
5536 RET_LABEL19:(void)0;
5537 }
5538 }
5539 var16 = var18;
5540 goto RET_LABEL17;
5541 RET_LABEL17:(void)0;
5542 }
5543 var15 = var16;
5544 }
5545 var8 = var15;
5546 }
5547 if (var8){
5548 goto RET_LABEL;
5549 } else {
5550 }
5551 /* <var_t1:nullable MType(MType)> isa MNullType */
5552 cltype = type_nitc__MNullType.color;
5553 idtype = type_nitc__MNullType.id;
5554 if(cltype >= var_t1->type->table_size) {
5555 var21 = 0;
5556 } else {
5557 var21 = var_t1->type->type_table[cltype] == idtype;
5558 }
5559 if (var21){
5560 {
5561 { /* Inline typing$AExpr$mtype= (self,var_t2) on <self:AOrElseExpr> */
5562 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t2; /* _mtype on <self:AOrElseExpr> */
5563 RET_LABEL22:(void)0;
5564 }
5565 }
5566 goto RET_LABEL;
5567 } else {
5568 {
5569 var23 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_t1);
5570 }
5571 if (var23){
5572 {
5573 var24 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_t1); /* as_notnull on <var_t1:nullable MType(MType)>*/
5574 }
5575 var_t1 = var24;
5576 } else {
5577 }
5578 }
5579 var25 = NEW_core__Array(&type_core__Array__nitc__MType);
5580 {
5581 core___core__Array___with_capacity(var25, 2l); /* Direct call array$Array$with_capacity on <var25:Array[MType]>*/
5582 }
5583 var_26 = var25;
5584 {
5585 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t1); /* Direct call array$AbstractArray$push on <var_26:Array[MType]>*/
5586 }
5587 {
5588 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_26, var_t2); /* Direct call array$AbstractArray$push on <var_26:Array[MType]>*/
5589 }
5590 {
5591 var27 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_26);
5592 }
5593 var_t = var27;
5594 if (var_t == NULL) {
5595 var28 = 1; /* is null */
5596 } else {
5597 var28 = 0; /* arg is null but recv is not */
5598 }
5599 if (0) {
5600 { /* Inline kernel$Object$== (var_t,((val*)NULL)) on <var_t:nullable MType> */
5601 var_other = ((val*)NULL);
5602 {
5603 { /* Inline kernel$Object$is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
5604 var33 = var_t == var_other;
5605 var31 = var33;
5606 goto RET_LABEL32;
5607 RET_LABEL32:(void)0;
5608 }
5609 }
5610 var29 = var31;
5611 goto RET_LABEL30;
5612 RET_LABEL30:(void)0;
5613 }
5614 var28 = var29;
5615 }
5616 if (var28){
5617 if (likely(varonce!=NULL)) {
5618 var34 = varonce;
5619 } else {
5620 var35 = "Object";
5621 var37 = (val*)(6l<<2|1);
5622 var38 = (val*)(6l<<2|1);
5623 var39 = (val*)((long)(0)<<2|3);
5624 var40 = (val*)((long)(0)<<2|3);
5625 var36 = core__flat___CString___to_s_unsafe(var35, var37, var38, var39, var40);
5626 var34 = var36;
5627 varonce = var34;
5628 }
5629 {
5630 var41 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var34);
5631 }
5632 var_c = var41;
5633 if (var_c == NULL) {
5634 var42 = 1; /* is null */
5635 } else {
5636 var42 = 0; /* arg is null but recv is not */
5637 }
5638 if (0) {
5639 { /* Inline kernel$Object$== (var_c,((val*)NULL)) on <var_c:nullable MClass> */
5640 var_other = ((val*)NULL);
5641 {
5642 { /* Inline kernel$Object$is_same_instance (var_c,var_other) on <var_c:nullable MClass(MClass)> */
5643 var47 = var_c == var_other;
5644 var45 = var47;
5645 goto RET_LABEL46;
5646 RET_LABEL46:(void)0;
5647 }
5648 }
5649 var43 = var45;
5650 goto RET_LABEL44;
5651 RET_LABEL44:(void)0;
5652 }
5653 var42 = var43;
5654 }
5655 if (var42){
5656 goto RET_LABEL;
5657 } else {
5658 }
5659 {
5660 { /* Inline model$MClass$mclass_type (var_c) on <var_c:nullable MClass(MClass)> */
5661 var50 = var_c->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_c:nullable MClass(MClass)> */
5662 if (unlikely(var50 == NULL)) {
5663 if(catchStack.cursor >= 0){
5664 longjmp(catchStack.envs[catchStack.cursor], 1);
5665 }
5666 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
5667 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
5668 fatal_exit(1);
5669 }
5670 var48 = var50;
5671 RET_LABEL49:(void)0;
5672 }
5673 }
5674 var_t = var48;
5675 {
5676 var51 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_t2);
5677 }
5678 if (var51){
5679 {
5680 var52 = nitc___nitc__MType___as_nullable(var_t);
5681 }
5682 var_t = var52;
5683 } else {
5684 }
5685 } else {
5686 }
5687 {
5688 { /* Inline typing$AExpr$mtype= (self,var_t) on <self:AOrElseExpr> */
5689 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_t; /* _mtype on <self:AOrElseExpr> */
5690 RET_LABEL53:(void)0;
5691 }
5692 }
5693 RET_LABEL:;
5694 }
5695 /* method typing$AOrElseExpr$accept_post_typing for (self: AOrElseExpr, TypeVisitor) */
5696 void nitc__typing___AOrElseExpr___ANode__accept_post_typing(val* self, val* p0) {
5697 val* var_v /* var v: TypeVisitor */;
5698 val* var /* : AExpr */;
5699 val* var2 /* : AExpr */;
5700 val* var3 /* : nullable MType */;
5701 val* var_t1 /* var t1: nullable MType */;
5702 short int var4 /* : Bool */;
5703 short int var5 /* : Bool */;
5704 val* var_other /* var other: nullable Object */;
5705 short int var7 /* : Bool */;
5706 short int var9 /* : Bool */;
5707 val* var10 /* : AExpr */;
5708 val* var12 /* : AExpr */;
5709 short int var13 /* : Bool */;
5710 var_v = p0;
5711 {
5712 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AOrElseExpr> */
5713 var2 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
5714 if (unlikely(var2 == NULL)) {
5715 if(catchStack.cursor >= 0){
5716 longjmp(catchStack.envs[catchStack.cursor], 1);
5717 }
5718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5719 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
5720 fatal_exit(1);
5721 }
5722 var = var2;
5723 RET_LABEL1:(void)0;
5724 }
5725 }
5726 {
5727 var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on <var:AExpr>*/
5728 }
5729 var_t1 = var3;
5730 if (var_t1 == NULL) {
5731 var4 = 1; /* is null */
5732 } else {
5733 var4 = 0; /* arg is null but recv is not */
5734 }
5735 if (0) {
5736 { /* Inline kernel$Object$== (var_t1,((val*)NULL)) on <var_t1:nullable MType> */
5737 var_other = ((val*)NULL);
5738 {
5739 { /* Inline kernel$Object$is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
5740 var9 = var_t1 == var_other;
5741 var7 = var9;
5742 goto RET_LABEL8;
5743 RET_LABEL8:(void)0;
5744 }
5745 }
5746 var5 = var7;
5747 goto RET_LABEL6;
5748 RET_LABEL6:(void)0;
5749 }
5750 var4 = var5;
5751 }
5752 if (var4){
5753 goto RET_LABEL;
5754 } else {
5755 {
5756 { /* Inline parser_nodes$ABinBoolExpr$n_expr (self) on <self:AOrElseExpr> */
5757 var12 = self->attrs[COLOR_nitc__parser_nodes__ABinBoolExpr___n_expr].val; /* _n_expr on <self:AOrElseExpr> */
5758 if (unlikely(var12 == NULL)) {
5759 if(catchStack.cursor >= 0){
5760 longjmp(catchStack.envs[catchStack.cursor], 1);
5761 }
5762 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5763 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2131);
5764 fatal_exit(1);
5765 }
5766 var10 = var12;
5767 RET_LABEL11:(void)0;
5768 }
5769 }
5770 {
5771 var13 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var10, var_t1);
5772 }
5773 }
5774 RET_LABEL:;
5775 }
5776 /* method typing$ATrueExpr$accept_typing for (self: ATrueExpr, TypeVisitor) */
5777 void nitc__typing___ATrueExpr___AExpr__accept_typing(val* self, val* p0) {
5778 val* var_v /* var v: TypeVisitor */;
5779 val* var /* : nullable MType */;
5780 var_v = p0;
5781 {
5782 var = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
5783 }
5784 {
5785 { /* Inline typing$AExpr$mtype= (self,var) on <self:ATrueExpr> */
5786 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var; /* _mtype on <self:ATrueExpr> */
5787 RET_LABEL1:(void)0;
5788 }
5789 }
5790 RET_LABEL:;
5791 }
5792 /* method typing$AFalseExpr$accept_typing for (self: AFalseExpr, TypeVisitor) */
5793 void nitc__typing___AFalseExpr___AExpr__accept_typing(val* self, val* p0) {
5794 val* var_v /* var v: TypeVisitor */;
5795 val* var /* : nullable MType */;
5796 var_v = p0;
5797 {
5798 var = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
5799 }
5800 {
5801 { /* Inline typing$AExpr$mtype= (self,var) on <self:AFalseExpr> */
5802 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var; /* _mtype on <self:AFalseExpr> */
5803 RET_LABEL1:(void)0;
5804 }
5805 }
5806 RET_LABEL:;
5807 }
5808 /* method typing$AIntegerExpr$accept_typing for (self: AIntegerExpr, TypeVisitor) */
5809 void nitc__typing___AIntegerExpr___AExpr__accept_typing(val* self, val* p0) {
5810 val* var_v /* var v: TypeVisitor */;
5811 val* var_mclass /* var mclass: nullable MClass */;
5812 val* var /* : nullable Numeric */;
5813 val* var2 /* : nullable Numeric */;
5814 short int var3 /* : Bool */;
5815 int cltype;
5816 int idtype;
5817 static val* varonce;
5818 val* var4 /* : String */;
5819 char* var5 /* : CString */;
5820 val* var6 /* : String */;
5821 val* var7 /* : nullable Int */;
5822 val* var8 /* : nullable Int */;
5823 val* var9 /* : nullable Bool */;
5824 val* var10 /* : nullable Bool */;
5825 val* var11 /* : nullable MClass */;
5826 val* var12 /* : nullable Numeric */;
5827 val* var14 /* : nullable Numeric */;
5828 short int var15 /* : Bool */;
5829 int cltype16;
5830 int idtype17;
5831 static val* varonce18;
5832 val* var19 /* : String */;
5833 char* var20 /* : CString */;
5834 val* var21 /* : String */;
5835 val* var22 /* : nullable Int */;
5836 val* var23 /* : nullable Int */;
5837 val* var24 /* : nullable Bool */;
5838 val* var25 /* : nullable Bool */;
5839 val* var26 /* : nullable MClass */;
5840 val* var27 /* : nullable Numeric */;
5841 val* var29 /* : nullable Numeric */;
5842 short int var30 /* : Bool */;
5843 int cltype31;
5844 int idtype32;
5845 static val* varonce33;
5846 val* var34 /* : String */;
5847 char* var35 /* : CString */;
5848 val* var36 /* : String */;
5849 val* var37 /* : nullable Int */;
5850 val* var38 /* : nullable Int */;
5851 val* var39 /* : nullable Bool */;
5852 val* var40 /* : nullable Bool */;
5853 val* var41 /* : nullable MClass */;
5854 val* var42 /* : nullable Numeric */;
5855 val* var44 /* : nullable Numeric */;
5856 short int var45 /* : Bool */;
5857 int cltype46;
5858 int idtype47;
5859 static val* varonce48;
5860 val* var49 /* : String */;
5861 char* var50 /* : CString */;
5862 val* var51 /* : String */;
5863 val* var52 /* : nullable Int */;
5864 val* var53 /* : nullable Int */;
5865 val* var54 /* : nullable Bool */;
5866 val* var55 /* : nullable Bool */;
5867 val* var56 /* : nullable MClass */;
5868 val* var57 /* : nullable Numeric */;
5869 val* var59 /* : nullable Numeric */;
5870 short int var60 /* : Bool */;
5871 int cltype61;
5872 int idtype62;
5873 static val* varonce63;
5874 val* var64 /* : String */;
5875 char* var65 /* : CString */;
5876 val* var66 /* : String */;
5877 val* var67 /* : nullable Int */;
5878 val* var68 /* : nullable Int */;
5879 val* var69 /* : nullable Bool */;
5880 val* var70 /* : nullable Bool */;
5881 val* var71 /* : nullable MClass */;
5882 val* var72 /* : nullable Numeric */;
5883 val* var74 /* : nullable Numeric */;
5884 short int var75 /* : Bool */;
5885 int cltype76;
5886 int idtype77;
5887 static val* varonce78;
5888 val* var79 /* : String */;
5889 char* var80 /* : CString */;
5890 val* var81 /* : String */;
5891 val* var82 /* : nullable Int */;
5892 val* var83 /* : nullable Int */;
5893 val* var84 /* : nullable Bool */;
5894 val* var85 /* : nullable Bool */;
5895 val* var86 /* : nullable MClass */;
5896 val* var87 /* : nullable Numeric */;
5897 val* var89 /* : nullable Numeric */;
5898 short int var90 /* : Bool */;
5899 int cltype91;
5900 int idtype92;
5901 static val* varonce93;
5902 val* var94 /* : String */;
5903 char* var95 /* : CString */;
5904 val* var96 /* : String */;
5905 val* var97 /* : nullable Int */;
5906 val* var98 /* : nullable Int */;
5907 val* var99 /* : nullable Bool */;
5908 val* var100 /* : nullable Bool */;
5909 val* var101 /* : nullable MClass */;
5910 short int var102 /* : Bool */;
5911 short int var103 /* : Bool */;
5912 val* var_other /* var other: nullable Object */;
5913 short int var105 /* : Bool */;
5914 short int var107 /* : Bool */;
5915 val* var108 /* : MClassType */;
5916 val* var110 /* : MClassType */;
5917 var_v = p0;
5918 var_mclass = ((val*)NULL);
5919 {
5920 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
5921 var2 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
5922 var = var2;
5923 RET_LABEL1:(void)0;
5924 }
5925 }
5926 /* <var:nullable Numeric> isa Byte */
5927 cltype = type_core__Byte.color;
5928 idtype = type_core__Byte.id;
5929 if(var == NULL) {
5930 var3 = 0;
5931 } else {
5932 if(cltype >= (((long)var&3)?type_info[((long)var&3)]:var->type)->table_size) {
5933 var3 = 0;
5934 } else {
5935 var3 = (((long)var&3)?type_info[((long)var&3)]:var->type)->type_table[cltype] == idtype;
5936 }
5937 }
5938 if (var3){
5939 if (likely(varonce!=NULL)) {
5940 var4 = varonce;
5941 } else {
5942 var5 = "Byte";
5943 var7 = (val*)(4l<<2|1);
5944 var8 = (val*)(4l<<2|1);
5945 var9 = (val*)((long)(0)<<2|3);
5946 var10 = (val*)((long)(0)<<2|3);
5947 var6 = core__flat___CString___to_s_unsafe(var5, var7, var8, var9, var10);
5948 var4 = var6;
5949 varonce = var4;
5950 }
5951 {
5952 var11 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var4);
5953 }
5954 var_mclass = var11;
5955 } else {
5956 {
5957 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
5958 var14 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
5959 var12 = var14;
5960 RET_LABEL13:(void)0;
5961 }
5962 }
5963 /* <var12:nullable Numeric> isa Int */
5964 cltype16 = type_core__Int.color;
5965 idtype17 = type_core__Int.id;
5966 if(var12 == NULL) {
5967 var15 = 0;
5968 } else {
5969 if(cltype16 >= (((long)var12&3)?type_info[((long)var12&3)]:var12->type)->table_size) {
5970 var15 = 0;
5971 } else {
5972 var15 = (((long)var12&3)?type_info[((long)var12&3)]:var12->type)->type_table[cltype16] == idtype17;
5973 }
5974 }
5975 if (var15){
5976 if (likely(varonce18!=NULL)) {
5977 var19 = varonce18;
5978 } else {
5979 var20 = "Int";
5980 var22 = (val*)(3l<<2|1);
5981 var23 = (val*)(3l<<2|1);
5982 var24 = (val*)((long)(0)<<2|3);
5983 var25 = (val*)((long)(0)<<2|3);
5984 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
5985 var19 = var21;
5986 varonce18 = var19;
5987 }
5988 {
5989 var26 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var19);
5990 }
5991 var_mclass = var26;
5992 } else {
5993 {
5994 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
5995 var29 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
5996 var27 = var29;
5997 RET_LABEL28:(void)0;
5998 }
5999 }
6000 /* <var27:nullable Numeric> isa Int8 */
6001 cltype31 = type_core__Int8.color;
6002 idtype32 = type_core__Int8.id;
6003 if(var27 == NULL) {
6004 var30 = 0;
6005 } else {
6006 if(cltype31 >= (((long)var27&3)?type_info[((long)var27&3)]:var27->type)->table_size) {
6007 var30 = 0;
6008 } else {
6009 var30 = (((long)var27&3)?type_info[((long)var27&3)]:var27->type)->type_table[cltype31] == idtype32;
6010 }
6011 }
6012 if (var30){
6013 if (likely(varonce33!=NULL)) {
6014 var34 = varonce33;
6015 } else {
6016 var35 = "Int8";
6017 var37 = (val*)(4l<<2|1);
6018 var38 = (val*)(4l<<2|1);
6019 var39 = (val*)((long)(0)<<2|3);
6020 var40 = (val*)((long)(0)<<2|3);
6021 var36 = core__flat___CString___to_s_unsafe(var35, var37, var38, var39, var40);
6022 var34 = var36;
6023 varonce33 = var34;
6024 }
6025 {
6026 var41 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var34);
6027 }
6028 var_mclass = var41;
6029 } else {
6030 {
6031 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
6032 var44 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6033 var42 = var44;
6034 RET_LABEL43:(void)0;
6035 }
6036 }
6037 /* <var42:nullable Numeric> isa Int16 */
6038 cltype46 = type_core__Int16.color;
6039 idtype47 = type_core__Int16.id;
6040 if(var42 == NULL) {
6041 var45 = 0;
6042 } else {
6043 if(cltype46 >= (((long)var42&3)?type_info[((long)var42&3)]:var42->type)->table_size) {
6044 var45 = 0;
6045 } else {
6046 var45 = (((long)var42&3)?type_info[((long)var42&3)]:var42->type)->type_table[cltype46] == idtype47;
6047 }
6048 }
6049 if (var45){
6050 if (likely(varonce48!=NULL)) {
6051 var49 = varonce48;
6052 } else {
6053 var50 = "Int16";
6054 var52 = (val*)(5l<<2|1);
6055 var53 = (val*)(5l<<2|1);
6056 var54 = (val*)((long)(0)<<2|3);
6057 var55 = (val*)((long)(0)<<2|3);
6058 var51 = core__flat___CString___to_s_unsafe(var50, var52, var53, var54, var55);
6059 var49 = var51;
6060 varonce48 = var49;
6061 }
6062 {
6063 var56 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var49);
6064 }
6065 var_mclass = var56;
6066 } else {
6067 {
6068 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
6069 var59 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6070 var57 = var59;
6071 RET_LABEL58:(void)0;
6072 }
6073 }
6074 /* <var57:nullable Numeric> isa UInt16 */
6075 cltype61 = type_core__UInt16.color;
6076 idtype62 = type_core__UInt16.id;
6077 if(var57 == NULL) {
6078 var60 = 0;
6079 } else {
6080 if(cltype61 >= (((long)var57&3)?type_info[((long)var57&3)]:var57->type)->table_size) {
6081 var60 = 0;
6082 } else {
6083 var60 = (((long)var57&3)?type_info[((long)var57&3)]:var57->type)->type_table[cltype61] == idtype62;
6084 }
6085 }
6086 if (var60){
6087 if (likely(varonce63!=NULL)) {
6088 var64 = varonce63;
6089 } else {
6090 var65 = "UInt16";
6091 var67 = (val*)(6l<<2|1);
6092 var68 = (val*)(6l<<2|1);
6093 var69 = (val*)((long)(0)<<2|3);
6094 var70 = (val*)((long)(0)<<2|3);
6095 var66 = core__flat___CString___to_s_unsafe(var65, var67, var68, var69, var70);
6096 var64 = var66;
6097 varonce63 = var64;
6098 }
6099 {
6100 var71 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var64);
6101 }
6102 var_mclass = var71;
6103 } else {
6104 {
6105 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
6106 var74 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6107 var72 = var74;
6108 RET_LABEL73:(void)0;
6109 }
6110 }
6111 /* <var72:nullable Numeric> isa Int32 */
6112 cltype76 = type_core__Int32.color;
6113 idtype77 = type_core__Int32.id;
6114 if(var72 == NULL) {
6115 var75 = 0;
6116 } else {
6117 if(cltype76 >= (((long)var72&3)?type_info[((long)var72&3)]:var72->type)->table_size) {
6118 var75 = 0;
6119 } else {
6120 var75 = (((long)var72&3)?type_info[((long)var72&3)]:var72->type)->type_table[cltype76] == idtype77;
6121 }
6122 }
6123 if (var75){
6124 if (likely(varonce78!=NULL)) {
6125 var79 = varonce78;
6126 } else {
6127 var80 = "Int32";
6128 var82 = (val*)(5l<<2|1);
6129 var83 = (val*)(5l<<2|1);
6130 var84 = (val*)((long)(0)<<2|3);
6131 var85 = (val*)((long)(0)<<2|3);
6132 var81 = core__flat___CString___to_s_unsafe(var80, var82, var83, var84, var85);
6133 var79 = var81;
6134 varonce78 = var79;
6135 }
6136 {
6137 var86 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var79);
6138 }
6139 var_mclass = var86;
6140 } else {
6141 {
6142 { /* Inline literal$AIntegerExpr$value (self) on <self:AIntegerExpr> */
6143 var89 = self->attrs[COLOR_nitc__literal__AIntegerExpr___value].val; /* _value on <self:AIntegerExpr> */
6144 var87 = var89;
6145 RET_LABEL88:(void)0;
6146 }
6147 }
6148 /* <var87:nullable Numeric> isa UInt32 */
6149 cltype91 = type_core__UInt32.color;
6150 idtype92 = type_core__UInt32.id;
6151 if(var87 == NULL) {
6152 var90 = 0;
6153 } else {
6154 if(cltype91 >= (((long)var87&3)?type_info[((long)var87&3)]:var87->type)->table_size) {
6155 var90 = 0;
6156 } else {
6157 var90 = (((long)var87&3)?type_info[((long)var87&3)]:var87->type)->type_table[cltype91] == idtype92;
6158 }
6159 }
6160 if (var90){
6161 if (likely(varonce93!=NULL)) {
6162 var94 = varonce93;
6163 } else {
6164 var95 = "UInt32";
6165 var97 = (val*)(6l<<2|1);
6166 var98 = (val*)(6l<<2|1);
6167 var99 = (val*)((long)(0)<<2|3);
6168 var100 = (val*)((long)(0)<<2|3);
6169 var96 = core__flat___CString___to_s_unsafe(var95, var97, var98, var99, var100);
6170 var94 = var96;
6171 varonce93 = var94;
6172 }
6173 {
6174 var101 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var94);
6175 }
6176 var_mclass = var101;
6177 } else {
6178 }
6179 }
6180 }
6181 }
6182 }
6183 }
6184 }
6185 if (var_mclass == NULL) {
6186 var102 = 1; /* is null */
6187 } else {
6188 var102 = 0; /* arg is null but recv is not */
6189 }
6190 if (0) {
6191 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
6192 var_other = ((val*)NULL);
6193 {
6194 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
6195 var107 = var_mclass == var_other;
6196 var105 = var107;
6197 goto RET_LABEL106;
6198 RET_LABEL106:(void)0;
6199 }
6200 }
6201 var103 = var105;
6202 goto RET_LABEL104;
6203 RET_LABEL104:(void)0;
6204 }
6205 var102 = var103;
6206 }
6207 if (var102){
6208 goto RET_LABEL;
6209 } else {
6210 }
6211 {
6212 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6213 var110 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
6214 if (unlikely(var110 == NULL)) {
6215 if(catchStack.cursor >= 0){
6216 longjmp(catchStack.envs[catchStack.cursor], 1);
6217 }
6218 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6219 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
6220 fatal_exit(1);
6221 }
6222 var108 = var110;
6223 RET_LABEL109:(void)0;
6224 }
6225 }
6226 {
6227 { /* Inline typing$AExpr$mtype= (self,var108) on <self:AIntegerExpr> */
6228 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var108; /* _mtype on <self:AIntegerExpr> */
6229 RET_LABEL111:(void)0;
6230 }
6231 }
6232 RET_LABEL:;
6233 }
6234 /* method typing$AFloatExpr$accept_typing for (self: AFloatExpr, TypeVisitor) */
6235 void nitc__typing___AFloatExpr___AExpr__accept_typing(val* self, val* p0) {
6236 val* var_v /* var v: TypeVisitor */;
6237 static val* varonce;
6238 val* var /* : String */;
6239 char* var1 /* : CString */;
6240 val* var2 /* : String */;
6241 val* var3 /* : nullable Int */;
6242 val* var4 /* : nullable Int */;
6243 val* var5 /* : nullable Bool */;
6244 val* var6 /* : nullable Bool */;
6245 val* var7 /* : nullable MClass */;
6246 val* var_mclass /* var mclass: nullable MClass */;
6247 short int var8 /* : Bool */;
6248 short int var9 /* : Bool */;
6249 val* var_other /* var other: nullable Object */;
6250 short int var11 /* : Bool */;
6251 short int var13 /* : Bool */;
6252 val* var14 /* : MClassType */;
6253 val* var16 /* : MClassType */;
6254 var_v = p0;
6255 if (likely(varonce!=NULL)) {
6256 var = varonce;
6257 } else {
6258 var1 = "Float";
6259 var3 = (val*)(5l<<2|1);
6260 var4 = (val*)(5l<<2|1);
6261 var5 = (val*)((long)(0)<<2|3);
6262 var6 = (val*)((long)(0)<<2|3);
6263 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
6264 var = var2;
6265 varonce = var;
6266 }
6267 {
6268 var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var);
6269 }
6270 var_mclass = var7;
6271 if (var_mclass == NULL) {
6272 var8 = 1; /* is null */
6273 } else {
6274 var8 = 0; /* arg is null but recv is not */
6275 }
6276 if (0) {
6277 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
6278 var_other = ((val*)NULL);
6279 {
6280 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
6281 var13 = var_mclass == var_other;
6282 var11 = var13;
6283 goto RET_LABEL12;
6284 RET_LABEL12:(void)0;
6285 }
6286 }
6287 var9 = var11;
6288 goto RET_LABEL10;
6289 RET_LABEL10:(void)0;
6290 }
6291 var8 = var9;
6292 }
6293 if (var8){
6294 goto RET_LABEL;
6295 } else {
6296 }
6297 {
6298 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6299 var16 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
6300 if (unlikely(var16 == NULL)) {
6301 if(catchStack.cursor >= 0){
6302 longjmp(catchStack.envs[catchStack.cursor], 1);
6303 }
6304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
6306 fatal_exit(1);
6307 }
6308 var14 = var16;
6309 RET_LABEL15:(void)0;
6310 }
6311 }
6312 {
6313 { /* Inline typing$AExpr$mtype= (self,var14) on <self:AFloatExpr> */
6314 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var14; /* _mtype on <self:AFloatExpr> */
6315 RET_LABEL17:(void)0;
6316 }
6317 }
6318 RET_LABEL:;
6319 }
6320 /* method typing$ACharExpr$accept_typing for (self: ACharExpr, TypeVisitor) */
6321 void nitc__typing___ACharExpr___AExpr__accept_typing(val* self, val* p0) {
6322 val* var_v /* var v: TypeVisitor */;
6323 val* var_mclass /* var mclass: nullable MClass */;
6324 short int var /* : Bool */;
6325 static val* varonce;
6326 val* var1 /* : String */;
6327 char* var2 /* : CString */;
6328 val* var3 /* : String */;
6329 val* var4 /* : nullable Int */;
6330 val* var5 /* : nullable Int */;
6331 val* var6 /* : nullable Bool */;
6332 val* var7 /* : nullable Bool */;
6333 val* var8 /* : nullable MClass */;
6334 short int var9 /* : Bool */;
6335 static val* varonce10;
6336 val* var11 /* : String */;
6337 char* var12 /* : CString */;
6338 val* var13 /* : String */;
6339 val* var14 /* : nullable Int */;
6340 val* var15 /* : nullable Int */;
6341 val* var16 /* : nullable Bool */;
6342 val* var17 /* : nullable Bool */;
6343 val* var18 /* : nullable MClass */;
6344 static val* varonce19;
6345 val* var20 /* : String */;
6346 char* var21 /* : CString */;
6347 val* var22 /* : String */;
6348 val* var23 /* : nullable Int */;
6349 val* var24 /* : nullable Int */;
6350 val* var25 /* : nullable Bool */;
6351 val* var26 /* : nullable Bool */;
6352 val* var27 /* : nullable MClass */;
6353 short int var28 /* : Bool */;
6354 short int var29 /* : Bool */;
6355 val* var_other /* var other: nullable Object */;
6356 short int var31 /* : Bool */;
6357 short int var33 /* : Bool */;
6358 val* var34 /* : MClassType */;
6359 val* var36 /* : MClassType */;
6360 var_v = p0;
6361 var_mclass = ((val*)NULL);
6362 {
6363 var = nitc__literal___ACharExpr___is_ascii(self);
6364 }
6365 if (var){
6366 if (likely(varonce!=NULL)) {
6367 var1 = varonce;
6368 } else {
6369 var2 = "Byte";
6370 var4 = (val*)(4l<<2|1);
6371 var5 = (val*)(4l<<2|1);
6372 var6 = (val*)((long)(0)<<2|3);
6373 var7 = (val*)((long)(0)<<2|3);
6374 var3 = core__flat___CString___to_s_unsafe(var2, var4, var5, var6, var7);
6375 var1 = var3;
6376 varonce = var1;
6377 }
6378 {
6379 var8 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var1);
6380 }
6381 var_mclass = var8;
6382 } else {
6383 {
6384 var9 = nitc__literal___ACharExpr___is_code_point(self);
6385 }
6386 if (var9){
6387 if (likely(varonce10!=NULL)) {
6388 var11 = varonce10;
6389 } else {
6390 var12 = "Int";
6391 var14 = (val*)(3l<<2|1);
6392 var15 = (val*)(3l<<2|1);
6393 var16 = (val*)((long)(0)<<2|3);
6394 var17 = (val*)((long)(0)<<2|3);
6395 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
6396 var11 = var13;
6397 varonce10 = var11;
6398 }
6399 {
6400 var18 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var11);
6401 }
6402 var_mclass = var18;
6403 } else {
6404 if (likely(varonce19!=NULL)) {
6405 var20 = varonce19;
6406 } else {
6407 var21 = "Char";
6408 var23 = (val*)(4l<<2|1);
6409 var24 = (val*)(4l<<2|1);
6410 var25 = (val*)((long)(0)<<2|3);
6411 var26 = (val*)((long)(0)<<2|3);
6412 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
6413 var20 = var22;
6414 varonce19 = var20;
6415 }
6416 {
6417 var27 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var20);
6418 }
6419 var_mclass = var27;
6420 }
6421 }
6422 if (var_mclass == NULL) {
6423 var28 = 1; /* is null */
6424 } else {
6425 var28 = 0; /* arg is null but recv is not */
6426 }
6427 if (0) {
6428 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
6429 var_other = ((val*)NULL);
6430 {
6431 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
6432 var33 = var_mclass == var_other;
6433 var31 = var33;
6434 goto RET_LABEL32;
6435 RET_LABEL32:(void)0;
6436 }
6437 }
6438 var29 = var31;
6439 goto RET_LABEL30;
6440 RET_LABEL30:(void)0;
6441 }
6442 var28 = var29;
6443 }
6444 if (var28){
6445 goto RET_LABEL;
6446 } else {
6447 }
6448 {
6449 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6450 var36 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
6451 if (unlikely(var36 == NULL)) {
6452 if(catchStack.cursor >= 0){
6453 longjmp(catchStack.envs[catchStack.cursor], 1);
6454 }
6455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6456 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
6457 fatal_exit(1);
6458 }
6459 var34 = var36;
6460 RET_LABEL35:(void)0;
6461 }
6462 }
6463 {
6464 { /* Inline typing$AExpr$mtype= (self,var34) on <self:ACharExpr> */
6465 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var34; /* _mtype on <self:ACharExpr> */
6466 RET_LABEL37:(void)0;
6467 }
6468 }
6469 RET_LABEL:;
6470 }
6471 /* method typing$AugmentedStringFormExpr$to_re for (self: AugmentedStringFormExpr): nullable CallSite */
6472 val* nitc__typing___AugmentedStringFormExpr___to_re(val* self) {
6473 val* var /* : nullable CallSite */;
6474 val* var1 /* : nullable CallSite */;
6475 var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_re].val; /* _to_re on <self:AugmentedStringFormExpr> */
6476 var = var1;
6477 RET_LABEL:;
6478 return var;
6479 }
6480 /* method typing$AugmentedStringFormExpr$to_re= for (self: AugmentedStringFormExpr, nullable CallSite) */
6481 void nitc__typing___AugmentedStringFormExpr___to_re_61d(val* self, val* p0) {
6482 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_re].val = p0; /* _to_re on <self:AugmentedStringFormExpr> */
6483 RET_LABEL:;
6484 }
6485 /* method typing$AugmentedStringFormExpr$ignore_case for (self: AugmentedStringFormExpr): nullable CallSite */
6486 val* nitc__typing___AugmentedStringFormExpr___ignore_case(val* self) {
6487 val* var /* : nullable CallSite */;
6488 val* var1 /* : nullable CallSite */;
6489 var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___ignore_case].val; /* _ignore_case on <self:AugmentedStringFormExpr> */
6490 var = var1;
6491 RET_LABEL:;
6492 return var;
6493 }
6494 /* method typing$AugmentedStringFormExpr$ignore_case= for (self: AugmentedStringFormExpr, nullable CallSite) */
6495 void nitc__typing___AugmentedStringFormExpr___ignore_case_61d(val* self, val* p0) {
6496 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___ignore_case].val = p0; /* _ignore_case on <self:AugmentedStringFormExpr> */
6497 RET_LABEL:;
6498 }
6499 /* method typing$AugmentedStringFormExpr$newline for (self: AugmentedStringFormExpr): nullable CallSite */
6500 val* nitc__typing___AugmentedStringFormExpr___newline(val* self) {
6501 val* var /* : nullable CallSite */;
6502 val* var1 /* : nullable CallSite */;
6503 var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___newline].val; /* _newline on <self:AugmentedStringFormExpr> */
6504 var = var1;
6505 RET_LABEL:;
6506 return var;
6507 }
6508 /* method typing$AugmentedStringFormExpr$newline= for (self: AugmentedStringFormExpr, nullable CallSite) */
6509 void nitc__typing___AugmentedStringFormExpr___newline_61d(val* self, val* p0) {
6510 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___newline].val = p0; /* _newline on <self:AugmentedStringFormExpr> */
6511 RET_LABEL:;
6512 }
6513 /* method typing$AugmentedStringFormExpr$extended for (self: AugmentedStringFormExpr): nullable CallSite */
6514 val* nitc__typing___AugmentedStringFormExpr___extended(val* self) {
6515 val* var /* : nullable CallSite */;
6516 val* var1 /* : nullable CallSite */;
6517 var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___extended].val; /* _extended on <self:AugmentedStringFormExpr> */
6518 var = var1;
6519 RET_LABEL:;
6520 return var;
6521 }
6522 /* method typing$AugmentedStringFormExpr$extended= for (self: AugmentedStringFormExpr, nullable CallSite) */
6523 void nitc__typing___AugmentedStringFormExpr___extended_61d(val* self, val* p0) {
6524 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___extended].val = p0; /* _extended on <self:AugmentedStringFormExpr> */
6525 RET_LABEL:;
6526 }
6527 /* method typing$AugmentedStringFormExpr$to_bytes_with_copy for (self: AugmentedStringFormExpr): nullable CallSite */
6528 val* nitc__typing___AugmentedStringFormExpr___to_bytes_with_copy(val* self) {
6529 val* var /* : nullable CallSite */;
6530 val* var1 /* : nullable CallSite */;
6531 var1 = self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_bytes_with_copy].val; /* _to_bytes_with_copy on <self:AugmentedStringFormExpr> */
6532 var = var1;
6533 RET_LABEL:;
6534 return var;
6535 }
6536 /* method typing$AugmentedStringFormExpr$to_bytes_with_copy= for (self: AugmentedStringFormExpr, nullable CallSite) */
6537 void nitc__typing___AugmentedStringFormExpr___to_bytes_with_copy_61d(val* self, val* p0) {
6538 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_bytes_with_copy].val = p0; /* _to_bytes_with_copy on <self:AugmentedStringFormExpr> */
6539 RET_LABEL:;
6540 }
6541 /* method typing$AugmentedStringFormExpr$accept_typing for (self: AugmentedStringFormExpr, TypeVisitor) */
6542 void nitc__typing___AugmentedStringFormExpr___AExpr__accept_typing(val* self, val* p0) {
6543 val* var_v /* var v: TypeVisitor */;
6544 static val* varonce;
6545 val* var /* : String */;
6546 char* var1 /* : CString */;
6547 val* var2 /* : String */;
6548 val* var3 /* : nullable Int */;
6549 val* var4 /* : nullable Int */;
6550 val* var5 /* : nullable Bool */;
6551 val* var6 /* : nullable Bool */;
6552 val* var7 /* : nullable MClass */;
6553 val* var_mclass /* var mclass: nullable MClass */;
6554 short int var8 /* : Bool */;
6555 short int var9 /* : Bool */;
6556 val* var_other /* var other: nullable Object */;
6557 short int var11 /* : Bool */;
6558 short int var13 /* : Bool */;
6559 short int var14 /* : Bool */;
6560 val* var15 /* : MModule */;
6561 val* var17 /* : MModule */;
6562 val* var18 /* : MClassType */;
6563 static val* varonce19;
6564 val* var20 /* : String */;
6565 char* var21 /* : CString */;
6566 val* var22 /* : String */;
6567 val* var23 /* : nullable Int */;
6568 val* var24 /* : nullable Int */;
6569 val* var25 /* : nullable Bool */;
6570 val* var26 /* : nullable Bool */;
6571 val* var27 /* : nullable CallSite */;
6572 static val* varonce29;
6573 val* var30 /* : String */;
6574 char* var31 /* : CString */;
6575 val* var32 /* : String */;
6576 val* var33 /* : nullable Int */;
6577 val* var34 /* : nullable Int */;
6578 val* var35 /* : nullable Bool */;
6579 val* var36 /* : nullable Bool */;
6580 val* var37 /* : nullable MClass */;
6581 short int var38 /* : Bool */;
6582 val* var39 /* : MClassType */;
6583 val* var41 /* : MClassType */;
6584 static val* varonce42;
6585 val* var43 /* : String */;
6586 char* var44 /* : CString */;
6587 val* var45 /* : String */;
6588 val* var46 /* : nullable Int */;
6589 val* var47 /* : nullable Int */;
6590 val* var48 /* : nullable Bool */;
6591 val* var49 /* : nullable Bool */;
6592 val* var50 /* : nullable CallSite */;
6593 val* var52 /* : String */;
6594 val* var53 /* : SequenceRead[Char] */;
6595 val* var_ /* var : SequenceRead[Char] */;
6596 val* var54 /* : Iterator[nullable Object] */;
6597 val* var_55 /* var : IndexedIterator[Char] */;
6598 short int var56 /* : Bool */;
6599 val* var57 /* : nullable Object */;
6600 uint32_t var58 /* : Char */;
6601 uint32_t var_i /* var i: Char */;
6602 static val* varonce59;
6603 val* var60 /* : String */;
6604 char* var61 /* : CString */;
6605 val* var62 /* : String */;
6606 val* var63 /* : nullable Int */;
6607 val* var64 /* : nullable Int */;
6608 val* var65 /* : nullable Bool */;
6609 val* var66 /* : nullable Bool */;
6610 val* var67 /* : nullable MClass */;
6611 short int var68 /* : Bool */;
6612 short int var69 /* : Bool */;
6613 short int var71 /* : Bool */;
6614 short int var73 /* : Bool */;
6615 static val* varonce74;
6616 val* var75 /* : String */;
6617 char* var76 /* : CString */;
6618 val* var77 /* : String */;
6619 val* var78 /* : nullable Int */;
6620 val* var79 /* : nullable Int */;
6621 val* var80 /* : nullable Bool */;
6622 val* var81 /* : nullable Bool */;
6623 static val* varonce82;
6624 val* var83 /* : String */;
6625 char* var84 /* : CString */;
6626 val* var85 /* : String */;
6627 val* var86 /* : nullable Int */;
6628 val* var87 /* : nullable Int */;
6629 val* var88 /* : nullable Bool */;
6630 val* var89 /* : nullable Bool */;
6631 val* var_service /* var service: String */;
6632 short int var90 /* : Bool */;
6633 short int var92 /* : Bool */;
6634 static val* varonce93;
6635 val* var94 /* : String */;
6636 char* var95 /* : CString */;
6637 val* var96 /* : String */;
6638 val* var97 /* : nullable Int */;
6639 val* var98 /* : nullable Int */;
6640 val* var99 /* : nullable Bool */;
6641 val* var100 /* : nullable Bool */;
6642 val* var101 /* : MClassType */;
6643 val* var103 /* : MClassType */;
6644 val* var104 /* : nullable CallSite */;
6645 short int var106 /* : Bool */;
6646 short int var108 /* : Bool */;
6647 static val* varonce109;
6648 val* var110 /* : String */;
6649 char* var111 /* : CString */;
6650 val* var112 /* : String */;
6651 val* var113 /* : nullable Int */;
6652 val* var114 /* : nullable Int */;
6653 val* var115 /* : nullable Bool */;
6654 val* var116 /* : nullable Bool */;
6655 val* var117 /* : MClassType */;
6656 val* var119 /* : MClassType */;
6657 val* var120 /* : nullable CallSite */;
6658 short int var122 /* : Bool */;
6659 short int var124 /* : Bool */;
6660 static val* varonce125;
6661 val* var126 /* : String */;
6662 char* var127 /* : CString */;
6663 val* var128 /* : String */;
6664 val* var129 /* : nullable Int */;
6665 val* var130 /* : nullable Int */;
6666 val* var131 /* : nullable Bool */;
6667 val* var132 /* : nullable Bool */;
6668 val* var133 /* : MClassType */;
6669 val* var135 /* : MClassType */;
6670 val* var136 /* : nullable CallSite */;
6671 val* var139 /* : NativeArray[String] */;
6672 static val* varonce138;
6673 static val* varonce140;
6674 val* var141 /* : String */;
6675 char* var142 /* : CString */;
6676 val* var143 /* : String */;
6677 val* var144 /* : nullable Int */;
6678 val* var145 /* : nullable Int */;
6679 val* var146 /* : nullable Bool */;
6680 val* var147 /* : nullable Bool */;
6681 static val* varonce148;
6682 val* var149 /* : String */;
6683 char* var150 /* : CString */;
6684 val* var151 /* : String */;
6685 val* var152 /* : nullable Int */;
6686 val* var153 /* : nullable Int */;
6687 val* var154 /* : nullable Bool */;
6688 val* var155 /* : nullable Bool */;
6689 val* var156 /* : String */;
6690 val* var157 /* : String */;
6691 short int var158 /* : Bool */;
6692 short int var159 /* : Bool */;
6693 short int var161 /* : Bool */;
6694 short int var163 /* : Bool */;
6695 val* var164 /* : MClassType */;
6696 val* var166 /* : MClassType */;
6697 var_v = p0;
6698 if (likely(varonce!=NULL)) {
6699 var = varonce;
6700 } else {
6701 var1 = "String";
6702 var3 = (val*)(6l<<2|1);
6703 var4 = (val*)(6l<<2|1);
6704 var5 = (val*)((long)(0)<<2|3);
6705 var6 = (val*)((long)(0)<<2|3);
6706 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
6707 var = var2;
6708 varonce = var;
6709 }
6710 {
6711 var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var);
6712 }
6713 var_mclass = var7;
6714 if (var_mclass == NULL) {
6715 var8 = 1; /* is null */
6716 } else {
6717 var8 = 0; /* arg is null but recv is not */
6718 }
6719 if (0) {
6720 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
6721 var_other = ((val*)NULL);
6722 {
6723 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
6724 var13 = var_mclass == var_other;
6725 var11 = var13;
6726 goto RET_LABEL12;
6727 RET_LABEL12:(void)0;
6728 }
6729 }
6730 var9 = var11;
6731 goto RET_LABEL10;
6732 RET_LABEL10:(void)0;
6733 }
6734 var8 = var9;
6735 }
6736 if (var8){
6737 goto RET_LABEL;
6738 } else {
6739 }
6740 {
6741 var14 = nitc___nitc__AugmentedStringFormExpr___is_bytestring(self);
6742 }
6743 if (var14){
6744 {
6745 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
6746 var17 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
6747 if (unlikely(var17 == NULL)) {
6748 if(catchStack.cursor >= 0){
6749 longjmp(catchStack.envs[catchStack.cursor], 1);
6750 }
6751 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
6752 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
6753 fatal_exit(1);
6754 }
6755 var15 = var17;
6756 RET_LABEL16:(void)0;
6757 }
6758 }
6759 {
6760 var18 = nitc__model___MModule___c_string_type(var15);
6761 }
6762 if (likely(varonce19!=NULL)) {
6763 var20 = varonce19;
6764 } else {
6765 var21 = "to_bytes_with_copy";
6766 var23 = (val*)(18l<<2|1);
6767 var24 = (val*)(18l<<2|1);
6768 var25 = (val*)((long)(0)<<2|3);
6769 var26 = (val*)((long)(0)<<2|3);
6770 var22 = core__flat___CString___to_s_unsafe(var21, var23, var24, var25, var26);
6771 var20 = var22;
6772 varonce19 = var20;
6773 }
6774 {
6775 var27 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var18, var20, 0);
6776 }
6777 {
6778 { /* Inline typing$AugmentedStringFormExpr$to_bytes_with_copy= (self,var27) on <self:AugmentedStringFormExpr> */
6779 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_bytes_with_copy].val = var27; /* _to_bytes_with_copy on <self:AugmentedStringFormExpr> */
6780 RET_LABEL28:(void)0;
6781 }
6782 }
6783 if (likely(varonce29!=NULL)) {
6784 var30 = varonce29;
6785 } else {
6786 var31 = "Bytes";
6787 var33 = (val*)(5l<<2|1);
6788 var34 = (val*)(5l<<2|1);
6789 var35 = (val*)((long)(0)<<2|3);
6790 var36 = (val*)((long)(0)<<2|3);
6791 var32 = core__flat___CString___to_s_unsafe(var31, var33, var34, var35, var36);
6792 var30 = var32;
6793 varonce29 = var30;
6794 }
6795 {
6796 var37 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var30);
6797 }
6798 var_mclass = var37;
6799 } else {
6800 {
6801 var38 = nitc___nitc__AugmentedStringFormExpr___is_re(self);
6802 }
6803 if (var38){
6804 {
6805 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6806 var41 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
6807 if (unlikely(var41 == NULL)) {
6808 if(catchStack.cursor >= 0){
6809 longjmp(catchStack.envs[catchStack.cursor], 1);
6810 }
6811 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6812 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
6813 fatal_exit(1);
6814 }
6815 var39 = var41;
6816 RET_LABEL40:(void)0;
6817 }
6818 }
6819 if (likely(varonce42!=NULL)) {
6820 var43 = varonce42;
6821 } else {
6822 var44 = "to_re";
6823 var46 = (val*)(5l<<2|1);
6824 var47 = (val*)(5l<<2|1);
6825 var48 = (val*)((long)(0)<<2|3);
6826 var49 = (val*)((long)(0)<<2|3);
6827 var45 = core__flat___CString___to_s_unsafe(var44, var46, var47, var48, var49);
6828 var43 = var45;
6829 varonce42 = var43;
6830 }
6831 {
6832 var50 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var39, var43, 0);
6833 }
6834 {
6835 { /* Inline typing$AugmentedStringFormExpr$to_re= (self,var50) on <self:AugmentedStringFormExpr> */
6836 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___to_re].val = var50; /* _to_re on <self:AugmentedStringFormExpr> */
6837 RET_LABEL51:(void)0;
6838 }
6839 }
6840 {
6841 var52 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__literal__AAugmentedLiteral__suffix]))(self); /* suffix on <self:AugmentedStringFormExpr>*/
6842 }
6843 {
6844 var53 = ((val*(*)(val* self))(var52->class->vft[COLOR_core__abstract_text__Text__chars]))(var52); /* chars on <var52:String>*/
6845 }
6846 var_ = var53;
6847 {
6848 var54 = ((val*(*)(val* self))((((long)var_&3)?class_info[((long)var_&3)]:var_->class)->vft[COLOR_core__abstract_collection__Collection__iterator]))(var_); /* iterator on <var_:SequenceRead[Char]>*/
6849 }
6850 var_55 = var54;
6851 for(;;) {
6852 {
6853 var56 = ((short int(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_55); /* is_ok on <var_55:IndexedIterator[Char]>*/
6854 }
6855 if (var56){
6856 } else {
6857 goto BREAK_label;
6858 }
6859 {
6860 var57 = ((val*(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_55); /* item on <var_55:IndexedIterator[Char]>*/
6861 }
6862 var58 = (uint32_t)((long)(var57)>>2);
6863 var_i = var58;
6864 if (likely(varonce59!=NULL)) {
6865 var60 = varonce59;
6866 } else {
6867 var61 = "Regex";
6868 var63 = (val*)(5l<<2|1);
6869 var64 = (val*)(5l<<2|1);
6870 var65 = (val*)((long)(0)<<2|3);
6871 var66 = (val*)((long)(0)<<2|3);
6872 var62 = core__flat___CString___to_s_unsafe(var61, var63, var64, var65, var66);
6873 var60 = var62;
6874 varonce59 = var60;
6875 }
6876 {
6877 var67 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var60);
6878 }
6879 var_mclass = var67;
6880 if (var_mclass == NULL) {
6881 var68 = 1; /* is null */
6882 } else {
6883 var68 = 0; /* arg is null but recv is not */
6884 }
6885 if (0) {
6886 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
6887 var_other = ((val*)NULL);
6888 {
6889 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
6890 var73 = var_mclass == var_other;
6891 var71 = var73;
6892 goto RET_LABEL72;
6893 RET_LABEL72:(void)0;
6894 }
6895 }
6896 var69 = var71;
6897 goto RET_LABEL70;
6898 RET_LABEL70:(void)0;
6899 }
6900 var68 = var69;
6901 }
6902 if (var68){
6903 if (likely(varonce74!=NULL)) {
6904 var75 = varonce74;
6905 } else {
6906 var76 = "Error: `Regex` class unknown";
6907 var78 = (val*)(28l<<2|1);
6908 var79 = (val*)(28l<<2|1);
6909 var80 = (val*)((long)(0)<<2|3);
6910 var81 = (val*)((long)(0)<<2|3);
6911 var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81);
6912 var75 = var77;
6913 varonce74 = var75;
6914 }
6915 {
6916 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var75); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
6917 }
6918 goto RET_LABEL;
6919 } else {
6920 }
6921 if (likely(varonce82!=NULL)) {
6922 var83 = varonce82;
6923 } else {
6924 var84 = "";
6925 var86 = (val*)(0l<<2|1);
6926 var87 = (val*)(0l<<2|1);
6927 var88 = (val*)((long)(0)<<2|3);
6928 var89 = (val*)((long)(0)<<2|3);
6929 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
6930 var83 = var85;
6931 varonce82 = var83;
6932 }
6933 var_service = var83;
6934 {
6935 { /* Inline kernel$Char$== (var_i,'i') on <var_i:Char> */
6936 var92 = var_i == 'i';
6937 var90 = var92;
6938 goto RET_LABEL91;
6939 RET_LABEL91:(void)0;
6940 }
6941 }
6942 if (var90){
6943 if (likely(varonce93!=NULL)) {
6944 var94 = varonce93;
6945 } else {
6946 var95 = "ignore_case=";
6947 var97 = (val*)(12l<<2|1);
6948 var98 = (val*)(12l<<2|1);
6949 var99 = (val*)((long)(0)<<2|3);
6950 var100 = (val*)((long)(0)<<2|3);
6951 var96 = core__flat___CString___to_s_unsafe(var95, var97, var98, var99, var100);
6952 var94 = var96;
6953 varonce93 = var94;
6954 }
6955 var_service = var94;
6956 {
6957 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
6958 var103 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
6959 if (unlikely(var103 == NULL)) {
6960 if(catchStack.cursor >= 0){
6961 longjmp(catchStack.envs[catchStack.cursor], 1);
6962 }
6963 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
6964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
6965 fatal_exit(1);
6966 }
6967 var101 = var103;
6968 RET_LABEL102:(void)0;
6969 }
6970 }
6971 {
6972 var104 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var101, var_service, 0);
6973 }
6974 {
6975 { /* Inline typing$AugmentedStringFormExpr$ignore_case= (self,var104) on <self:AugmentedStringFormExpr> */
6976 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___ignore_case].val = var104; /* _ignore_case on <self:AugmentedStringFormExpr> */
6977 RET_LABEL105:(void)0;
6978 }
6979 }
6980 } else {
6981 {
6982 { /* Inline kernel$Char$== (var_i,'m') on <var_i:Char> */
6983 var108 = var_i == 'm';
6984 var106 = var108;
6985 goto RET_LABEL107;
6986 RET_LABEL107:(void)0;
6987 }
6988 }
6989 if (var106){
6990 if (likely(varonce109!=NULL)) {
6991 var110 = varonce109;
6992 } else {
6993 var111 = "newline=";
6994 var113 = (val*)(8l<<2|1);
6995 var114 = (val*)(8l<<2|1);
6996 var115 = (val*)((long)(0)<<2|3);
6997 var116 = (val*)((long)(0)<<2|3);
6998 var112 = core__flat___CString___to_s_unsafe(var111, var113, var114, var115, var116);
6999 var110 = var112;
7000 varonce109 = var110;
7001 }
7002 var_service = var110;
7003 {
7004 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
7005 var119 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
7006 if (unlikely(var119 == NULL)) {
7007 if(catchStack.cursor >= 0){
7008 longjmp(catchStack.envs[catchStack.cursor], 1);
7009 }
7010 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
7011 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
7012 fatal_exit(1);
7013 }
7014 var117 = var119;
7015 RET_LABEL118:(void)0;
7016 }
7017 }
7018 {
7019 var120 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var117, var_service, 0);
7020 }
7021 {
7022 { /* Inline typing$AugmentedStringFormExpr$newline= (self,var120) on <self:AugmentedStringFormExpr> */
7023 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___newline].val = var120; /* _newline on <self:AugmentedStringFormExpr> */
7024 RET_LABEL121:(void)0;
7025 }
7026 }
7027 } else {
7028 {
7029 { /* Inline kernel$Char$== (var_i,'b') on <var_i:Char> */
7030 var124 = var_i == 'b';
7031 var122 = var124;
7032 goto RET_LABEL123;
7033 RET_LABEL123:(void)0;
7034 }
7035 }
7036 if (var122){
7037 if (likely(varonce125!=NULL)) {
7038 var126 = varonce125;
7039 } else {
7040 var127 = "extended=";
7041 var129 = (val*)(9l<<2|1);
7042 var130 = (val*)(9l<<2|1);
7043 var131 = (val*)((long)(0)<<2|3);
7044 var132 = (val*)((long)(0)<<2|3);
7045 var128 = core__flat___CString___to_s_unsafe(var127, var129, var130, var131, var132);
7046 var126 = var128;
7047 varonce125 = var126;
7048 }
7049 var_service = var126;
7050 {
7051 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
7052 var135 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
7053 if (unlikely(var135 == NULL)) {
7054 if(catchStack.cursor >= 0){
7055 longjmp(catchStack.envs[catchStack.cursor], 1);
7056 }
7057 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
7058 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
7059 fatal_exit(1);
7060 }
7061 var133 = var135;
7062 RET_LABEL134:(void)0;
7063 }
7064 }
7065 {
7066 var136 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var133, var_service, 0);
7067 }
7068 {
7069 { /* Inline typing$AugmentedStringFormExpr$extended= (self,var136) on <self:AugmentedStringFormExpr> */
7070 self->attrs[COLOR_nitc__typing__AugmentedStringFormExpr___extended].val = var136; /* _extended on <self:AugmentedStringFormExpr> */
7071 RET_LABEL137:(void)0;
7072 }
7073 }
7074 } else {
7075 if (unlikely(varonce138==NULL)) {
7076 var139 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
7077 if (likely(varonce140!=NULL)) {
7078 var141 = varonce140;
7079 } else {
7080 var142 = "Type Error: Unrecognized suffix ";
7081 var144 = (val*)(32l<<2|1);
7082 var145 = (val*)(32l<<2|1);
7083 var146 = (val*)((long)(0)<<2|3);
7084 var147 = (val*)((long)(0)<<2|3);
7085 var143 = core__flat___CString___to_s_unsafe(var142, var144, var145, var146, var147);
7086 var141 = var143;
7087 varonce140 = var141;
7088 }
7089 ((struct instance_core__NativeArray*)var139)->values[0]=var141;
7090 if (likely(varonce148!=NULL)) {
7091 var149 = varonce148;
7092 } else {
7093 var150 = " in prefixed Regex";
7094 var152 = (val*)(18l<<2|1);
7095 var153 = (val*)(18l<<2|1);
7096 var154 = (val*)((long)(0)<<2|3);
7097 var155 = (val*)((long)(0)<<2|3);
7098 var151 = core__flat___CString___to_s_unsafe(var150, var152, var153, var154, var155);
7099 var149 = var151;
7100 varonce148 = var149;
7101 }
7102 ((struct instance_core__NativeArray*)var139)->values[2]=var149;
7103 } else {
7104 var139 = varonce138;
7105 varonce138 = NULL;
7106 }
7107 var156 = core__abstract_text___Char___Object__to_s(var_i);
7108 ((struct instance_core__NativeArray*)var139)->values[1]=var156;
7109 {
7110 var157 = ((val*(*)(val* self))(var139->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var139); /* native_to_s on <var139:NativeArray[String]>*/
7111 }
7112 varonce138 = var139;
7113 {
7114 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var157); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
7115 }
7116 if(catchStack.cursor >= 0){
7117 longjmp(catchStack.envs[catchStack.cursor], 1);
7118 }
7119 PRINT_ERROR("Runtime error: %s", "Aborted");
7120 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1530);
7121 fatal_exit(1);
7122 }
7123 }
7124 }
7125 {
7126 ((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_55); /* next on <var_55:IndexedIterator[Char]>*/
7127 }
7128 }
7129 BREAK_label: (void)0;
7130 {
7131 ((void(*)(val* self))((((long)var_55&3)?class_info[((long)var_55&3)]:var_55->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_55); /* finish on <var_55:IndexedIterator[Char]>*/
7132 }
7133 } else {
7134 }
7135 }
7136 if (var_mclass == NULL) {
7137 var158 = 1; /* is null */
7138 } else {
7139 var158 = 0; /* arg is null but recv is not */
7140 }
7141 if (0) {
7142 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
7143 var_other = ((val*)NULL);
7144 {
7145 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
7146 var163 = var_mclass == var_other;
7147 var161 = var163;
7148 goto RET_LABEL162;
7149 RET_LABEL162:(void)0;
7150 }
7151 }
7152 var159 = var161;
7153 goto RET_LABEL160;
7154 RET_LABEL160:(void)0;
7155 }
7156 var158 = var159;
7157 }
7158 if (var158){
7159 goto RET_LABEL;
7160 } else {
7161 }
7162 {
7163 { /* Inline model$MClass$mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
7164 var166 = var_mclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
7165 if (unlikely(var166 == NULL)) {
7166 if(catchStack.cursor >= 0){
7167 longjmp(catchStack.envs[catchStack.cursor], 1);
7168 }
7169 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
7170 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
7171 fatal_exit(1);
7172 }
7173 var164 = var166;
7174 RET_LABEL165:(void)0;
7175 }
7176 }
7177 {
7178 { /* Inline typing$AExpr$mtype= (self,var164) on <self:AugmentedStringFormExpr> */
7179 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var164; /* _mtype on <self:AugmentedStringFormExpr> */
7180 RET_LABEL167:(void)0;
7181 }
7182 }
7183 RET_LABEL:;
7184 }
7185 /* method typing$ASuperstringExpr$accept_typing for (self: ASuperstringExpr, TypeVisitor) */
7186 void nitc__typing___ASuperstringExpr___AExpr__accept_typing(val* self, val* p0) {
7187 val* var_v /* var v: TypeVisitor */;
7188 static val* varonce;
7189 val* var /* : String */;
7190 char* var1 /* : CString */;
7191 val* var2 /* : String */;
7192 val* var3 /* : nullable Int */;
7193 val* var4 /* : nullable Int */;
7194 val* var5 /* : nullable Bool */;
7195 val* var6 /* : nullable Bool */;
7196 val* var7 /* : nullable MClass */;
7197 val* var_objclass /* var objclass: nullable MClass */;
7198 short int var8 /* : Bool */;
7199 short int var9 /* : Bool */;
7200 val* var_other /* var other: nullable Object */;
7201 short int var11 /* : Bool */;
7202 short int var13 /* : Bool */;
7203 val* var14 /* : MClassType */;
7204 val* var16 /* : MClassType */;
7205 val* var_objtype /* var objtype: MClassType */;
7206 val* var17 /* : ANodes[AExpr] */;
7207 val* var19 /* : ANodes[AExpr] */;
7208 val* var_ /* var : ANodes[AExpr] */;
7209 val* var20 /* : Iterator[ANode] */;
7210 val* var_21 /* var : Iterator[AExpr] */;
7211 short int var22 /* : Bool */;
7212 val* var23 /* : nullable Object */;
7213 val* var_nexpr /* var nexpr: AExpr */;
7214 val* var24 /* : nullable MType */;
7215 var_v = p0;
7216 {
7217 ((void(*)(val* self, val* p0))(self->class->vft[COLOR_nitc__typing___ASuperstringExpr___AExpr__accept_typing]))(self, p0); /* accept_typing on <self:ASuperstringExpr>*/
7218 }
7219 if (likely(varonce!=NULL)) {
7220 var = varonce;
7221 } else {
7222 var1 = "Object";
7223 var3 = (val*)(6l<<2|1);
7224 var4 = (val*)(6l<<2|1);
7225 var5 = (val*)((long)(0)<<2|3);
7226 var6 = (val*)((long)(0)<<2|3);
7227 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
7228 var = var2;
7229 varonce = var;
7230 }
7231 {
7232 var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var);
7233 }
7234 var_objclass = var7;
7235 if (var_objclass == NULL) {
7236 var8 = 1; /* is null */
7237 } else {
7238 var8 = 0; /* arg is null but recv is not */
7239 }
7240 if (0) {
7241 { /* Inline kernel$Object$== (var_objclass,((val*)NULL)) on <var_objclass:nullable MClass> */
7242 var_other = ((val*)NULL);
7243 {
7244 { /* Inline kernel$Object$is_same_instance (var_objclass,var_other) on <var_objclass:nullable MClass(MClass)> */
7245 var13 = var_objclass == var_other;
7246 var11 = var13;
7247 goto RET_LABEL12;
7248 RET_LABEL12:(void)0;
7249 }
7250 }
7251 var9 = var11;
7252 goto RET_LABEL10;
7253 RET_LABEL10:(void)0;
7254 }
7255 var8 = var9;
7256 }
7257 if (var8){
7258 goto RET_LABEL;
7259 } else {
7260 }
7261 {
7262 { /* Inline model$MClass$mclass_type (var_objclass) on <var_objclass:nullable MClass(MClass)> */
7263 var16 = var_objclass->attrs[COLOR_nitc__model__MClass___mclass_type].val; /* _mclass_type on <var_objclass:nullable MClass(MClass)> */
7264 if (unlikely(var16 == NULL)) {
7265 if(catchStack.cursor >= 0){
7266 longjmp(catchStack.envs[catchStack.cursor], 1);
7267 }
7268 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
7269 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 520);
7270 fatal_exit(1);
7271 }
7272 var14 = var16;
7273 RET_LABEL15:(void)0;
7274 }
7275 }
7276 var_objtype = var14;
7277 {
7278 { /* Inline parser_nodes$ASuperstringExpr$n_exprs (self) on <self:ASuperstringExpr> */
7279 var19 = self->attrs[COLOR_nitc__parser_nodes__ASuperstringExpr___n_exprs].val; /* _n_exprs on <self:ASuperstringExpr> */
7280 if (unlikely(var19 == NULL)) {
7281 if(catchStack.cursor >= 0){
7282 longjmp(catchStack.envs[catchStack.cursor], 1);
7283 }
7284 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7285 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2645);
7286 fatal_exit(1);
7287 }
7288 var17 = var19;
7289 RET_LABEL18:(void)0;
7290 }
7291 }
7292 var_ = var17;
7293 {
7294 var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
7295 }
7296 var_21 = var20;
7297 for(;;) {
7298 {
7299 var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_21); /* is_ok on <var_21:Iterator[AExpr]>*/
7300 }
7301 if (var22){
7302 } else {
7303 goto BREAK_label;
7304 }
7305 {
7306 var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_21); /* item on <var_21:Iterator[AExpr]>*/
7307 }
7308 var_nexpr = var23;
7309 {
7310 var24 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var_nexpr, var_objtype);
7311 }
7312 {
7313 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_21); /* next on <var_21:Iterator[AExpr]>*/
7314 }
7315 }
7316 BREAK_label: (void)0;
7317 {
7318 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_21); /* finish on <var_21:Iterator[AExpr]>*/
7319 }
7320 RET_LABEL:;
7321 }
7322 /* method typing$AArrayExpr$with_capacity_callsite for (self: AArrayExpr): nullable CallSite */
7323 val* nitc__typing___AArrayExpr___with_capacity_callsite(val* self) {
7324 val* var /* : nullable CallSite */;
7325 val* var1 /* : nullable CallSite */;
7326 var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val; /* _with_capacity_callsite on <self:AArrayExpr> */
7327 var = var1;
7328 RET_LABEL:;
7329 return var;
7330 }
7331 /* method typing$AArrayExpr$with_capacity_callsite= for (self: AArrayExpr, nullable CallSite) */
7332 void nitc__typing___AArrayExpr___with_capacity_callsite_61d(val* self, val* p0) {
7333 self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val = p0; /* _with_capacity_callsite on <self:AArrayExpr> */
7334 RET_LABEL:;
7335 }
7336 /* method typing$AArrayExpr$push_callsite for (self: AArrayExpr): nullable CallSite */
7337 val* nitc__typing___AArrayExpr___push_callsite(val* self) {
7338 val* var /* : nullable CallSite */;
7339 val* var1 /* : nullable CallSite */;
7340 var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val; /* _push_callsite on <self:AArrayExpr> */
7341 var = var1;
7342 RET_LABEL:;
7343 return var;
7344 }
7345 /* method typing$AArrayExpr$push_callsite= for (self: AArrayExpr, nullable CallSite) */
7346 void nitc__typing___AArrayExpr___push_callsite_61d(val* self, val* p0) {
7347 self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val = p0; /* _push_callsite on <self:AArrayExpr> */
7348 RET_LABEL:;
7349 }
7350 /* method typing$AArrayExpr$element_mtype for (self: AArrayExpr): nullable MType */
7351 val* nitc__typing___AArrayExpr___element_mtype(val* self) {
7352 val* var /* : nullable MType */;
7353 val* var1 /* : nullable MType */;
7354 var1 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on <self:AArrayExpr> */
7355 var = var1;
7356 RET_LABEL:;
7357 return var;
7358 }
7359 /* method typing$AArrayExpr$element_mtype= for (self: AArrayExpr, nullable MType) */
7360 void nitc__typing___AArrayExpr___element_mtype_61d(val* self, val* p0) {
7361 self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val = p0; /* _element_mtype on <self:AArrayExpr> */
7362 RET_LABEL:;
7363 }
7364 /* method typing$AArrayExpr$set_comprehension for (self: AArrayExpr, nullable AExpr) */
7365 void nitc__typing___AArrayExpr___set_comprehension(val* self, val* p0) {
7366 val* var_n /* var n: nullable AExpr */;
7367 short int var /* : Bool */;
7368 short int var1 /* : Bool */;
7369 val* var_other /* var other: nullable Object */;
7370 short int var3 /* : Bool */;
7371 short int var5 /* : Bool */;
7372 short int var6 /* : Bool */;
7373 int cltype;
7374 int idtype;
7375 val* var7 /* : nullable AExpr */;
7376 val* var9 /* : nullable AExpr */;
7377 short int var10 /* : Bool */;
7378 int cltype11;
7379 int idtype12;
7380 val* var13 /* : nullable AExpr */;
7381 val* var15 /* : nullable AExpr */;
7382 val* var16 /* : nullable AExpr */;
7383 val* var18 /* : nullable AExpr */;
7384 var_n = p0;
7385 if (var_n == NULL) {
7386 var = 1; /* is null */
7387 } else {
7388 var = 0; /* arg is null but recv is not */
7389 }
7390 if (0) {
7391 { /* Inline kernel$Object$== (var_n,((val*)NULL)) on <var_n:nullable AExpr> */
7392 var_other = ((val*)NULL);
7393 {
7394 { /* Inline kernel$Object$is_same_instance (var_n,var_other) on <var_n:nullable AExpr(AExpr)> */
7395 var5 = var_n == var_other;
7396 var3 = var5;
7397 goto RET_LABEL4;
7398 RET_LABEL4:(void)0;
7399 }
7400 }
7401 var1 = var3;
7402 goto RET_LABEL2;
7403 RET_LABEL2:(void)0;
7404 }
7405 var = var1;
7406 }
7407 if (var){
7408 goto RET_LABEL;
7409 } else {
7410 /* <var_n:nullable AExpr(AExpr)> isa AForExpr */
7411 cltype = type_nitc__AForExpr.color;
7412 idtype = type_nitc__AForExpr.id;
7413 if(cltype >= var_n->type->table_size) {
7414 var6 = 0;
7415 } else {
7416 var6 = var_n->type->type_table[cltype] == idtype;
7417 }
7418 if (var6){
7419 {
7420 { /* Inline parser_nodes$AForExpr$n_block (var_n) on <var_n:nullable AExpr(AForExpr)> */
7421 var9 = var_n->attrs[COLOR_nitc__parser_nodes__AForExpr___n_block].val; /* _n_block on <var_n:nullable AExpr(AForExpr)> */
7422 var7 = var9;
7423 RET_LABEL8:(void)0;
7424 }
7425 }
7426 {
7427 nitc__typing___AArrayExpr___set_comprehension(self, var7); /* Direct call typing$AArrayExpr$set_comprehension on <self:AArrayExpr>*/
7428 }
7429 } else {
7430 /* <var_n:nullable AExpr(AExpr)> isa AIfExpr */
7431 cltype11 = type_nitc__AIfExpr.color;
7432 idtype12 = type_nitc__AIfExpr.id;
7433 if(cltype11 >= var_n->type->table_size) {
7434 var10 = 0;
7435 } else {
7436 var10 = var_n->type->type_table[cltype11] == idtype12;
7437 }
7438 if (var10){
7439 {
7440 { /* Inline parser_nodes$AIfExpr$n_then (var_n) on <var_n:nullable AExpr(AIfExpr)> */
7441 var15 = var_n->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_then].val; /* _n_then on <var_n:nullable AExpr(AIfExpr)> */
7442 var13 = var15;
7443 RET_LABEL14:(void)0;
7444 }
7445 }
7446 {
7447 nitc__typing___AArrayExpr___set_comprehension(self, var13); /* Direct call typing$AArrayExpr$set_comprehension on <self:AArrayExpr>*/
7448 }
7449 {
7450 { /* Inline parser_nodes$AIfExpr$n_else (var_n) on <var_n:nullable AExpr(AIfExpr)> */
7451 var18 = var_n->attrs[COLOR_nitc__parser_nodes__AIfExpr___n_else].val; /* _n_else on <var_n:nullable AExpr(AIfExpr)> */
7452 var16 = var18;
7453 RET_LABEL17:(void)0;
7454 }
7455 }
7456 {
7457 nitc__typing___AArrayExpr___set_comprehension(self, var16); /* Direct call typing$AArrayExpr$set_comprehension on <self:AArrayExpr>*/
7458 }
7459 } else {
7460 {
7461 { /* Inline typing$AExpr$comprehension= (var_n,self) on <var_n:nullable AExpr(AExpr)> */
7462 var_n->attrs[COLOR_nitc__typing__AExpr___comprehension].val = self; /* _comprehension on <var_n:nullable AExpr(AExpr)> */
7463 RET_LABEL19:(void)0;
7464 }
7465 }
7466 }
7467 }
7468 }
7469 RET_LABEL:;
7470 }
7471 /* method typing$AArrayExpr$accept_typing for (self: AArrayExpr, TypeVisitor) */
7472 void nitc__typing___AArrayExpr___AExpr__accept_typing(val* self, val* p0) {
7473 val* var_v /* var v: TypeVisitor */;
7474 val* var_mtype /* var mtype: nullable MType */;
7475 val* var /* : nullable AType */;
7476 val* var2 /* : nullable AType */;
7477 val* var_ntype /* var ntype: nullable AType */;
7478 short int var3 /* : Bool */;
7479 short int var4 /* : Bool */;
7480 val* var_other /* var other: nullable Object */;
7481 short int var6 /* : Bool */;
7482 short int var7 /* : Bool */;
7483 val* var8 /* : nullable MType */;
7484 short int var9 /* : Bool */;
7485 short int var10 /* : Bool */;
7486 val* var_other12 /* var other: nullable Object */;
7487 short int var13 /* : Bool */;
7488 short int var15 /* : Bool */;
7489 val* var16 /* : Array[nullable MType] */;
7490 val* var_mtypes /* var mtypes: Array[nullable MType] */;
7491 short int var_useless /* var useless: Bool */;
7492 val* var17 /* : ANodes[AExpr] */;
7493 val* var19 /* : ANodes[AExpr] */;
7494 val* var_ /* var : ANodes[AExpr] */;
7495 val* var20 /* : Iterator[ANode] */;
7496 val* var_21 /* var : Iterator[AExpr] */;
7497 short int var22 /* : Bool */;
7498 val* var23 /* : nullable Object */;
7499 val* var_e /* var e: AExpr */;
7500 val* var24 /* : nullable MType */;
7501 val* var_t /* var t: nullable MType */;
7502 short int var25 /* : Bool */;
7503 short int var26 /* : Bool */;
7504 short int var28 /* : Bool */;
7505 short int var30 /* : Bool */;
7506 short int var31 /* : Bool */;
7507 short int var32 /* : Bool */;
7508 short int var34 /* : Bool */;
7509 short int var35 /* : Bool */;
7510 val* var36 /* : nullable MType */;
7511 short int var37 /* : Bool */;
7512 short int var38 /* : Bool */;
7513 short int var40 /* : Bool */;
7514 short int var42 /* : Bool */;
7515 short int var43 /* : Bool */;
7516 short int var45 /* : Bool */;
7517 short int var47 /* : Bool */;
7518 short int var48 /* : Bool */;
7519 short int var49 /* : Bool */;
7520 short int var51 /* : Bool */;
7521 short int var53 /* : Bool */;
7522 val* var54 /* : nullable MType */;
7523 val* var56 /* : nullable MType */;
7524 short int var57 /* : Bool */;
7525 short int var58 /* : Bool */;
7526 short int var60 /* : Bool */;
7527 short int var61 /* : Bool */;
7528 val* var62 /* : nullable MType */;
7529 val* var64 /* : nullable MType */;
7530 val* var65 /* : nullable MType */;
7531 short int var66 /* : Bool */;
7532 short int var67 /* : Bool */;
7533 short int var68 /* : Bool */;
7534 short int var70 /* : Bool */;
7535 short int var72 /* : Bool */;
7536 short int var_73 /* var : Bool */;
7537 short int var74 /* : Bool */;
7538 int cltype;
7539 int idtype;
7540 val* var75 /* : NativeArray[String] */;
7541 static val* varonce;
7542 static val* varonce76;
7543 val* var77 /* : String */;
7544 char* var78 /* : CString */;
7545 val* var79 /* : String */;
7546 val* var80 /* : nullable Int */;
7547 val* var81 /* : nullable Int */;
7548 val* var82 /* : nullable Bool */;
7549 val* var83 /* : nullable Bool */;
7550 static val* varonce84;
7551 val* var85 /* : String */;
7552 char* var86 /* : CString */;
7553 val* var87 /* : String */;
7554 val* var88 /* : nullable Int */;
7555 val* var89 /* : nullable Int */;
7556 val* var90 /* : nullable Bool */;
7557 val* var91 /* : nullable Bool */;
7558 val* var92 /* : String */;
7559 val* var93 /* : String */;
7560 short int var94 /* : Bool */;
7561 short int var95 /* : Bool */;
7562 short int var97 /* : Bool */;
7563 short int var98 /* : Bool */;
7564 val* var99 /* : ModelBuilder */;
7565 val* var101 /* : ModelBuilder */;
7566 static val* varonce102;
7567 val* var103 /* : String */;
7568 char* var104 /* : CString */;
7569 val* var105 /* : String */;
7570 val* var106 /* : nullable Int */;
7571 val* var107 /* : nullable Int */;
7572 val* var108 /* : nullable Bool */;
7573 val* var109 /* : nullable Bool */;
7574 val* var111 /* : NativeArray[String] */;
7575 static val* varonce110;
7576 static val* varonce112;
7577 val* var113 /* : String */;
7578 char* var114 /* : CString */;
7579 val* var115 /* : String */;
7580 val* var116 /* : nullable Int */;
7581 val* var117 /* : nullable Int */;
7582 val* var118 /* : nullable Bool */;
7583 val* var119 /* : nullable Bool */;
7584 static val* varonce120;
7585 val* var121 /* : String */;
7586 char* var122 /* : CString */;
7587 val* var123 /* : String */;
7588 val* var124 /* : nullable Int */;
7589 val* var125 /* : nullable Int */;
7590 val* var126 /* : nullable Bool */;
7591 val* var127 /* : nullable Bool */;
7592 val* var128 /* : String */;
7593 val* var129 /* : String */;
7594 static val* varonce131;
7595 val* var132 /* : String */;
7596 char* var133 /* : CString */;
7597 val* var134 /* : String */;
7598 val* var135 /* : nullable Int */;
7599 val* var136 /* : nullable Int */;
7600 val* var137 /* : nullable Bool */;
7601 val* var138 /* : nullable Bool */;
7602 val* var139 /* : nullable MClass */;
7603 val* var_mclass /* var mclass: nullable MClass */;
7604 short int var140 /* : Bool */;
7605 short int var141 /* : Bool */;
7606 short int var143 /* : Bool */;
7607 short int var145 /* : Bool */;
7608 val* var146 /* : Array[MType] */;
7609 val* var_147 /* var : Array[MType] */;
7610 val* var148 /* : MClassType */;
7611 val* var_array_mtype /* var array_mtype: MClassType */;
7612 static val* varonce149;
7613 val* var150 /* : String */;
7614 char* var151 /* : CString */;
7615 val* var152 /* : String */;
7616 val* var153 /* : nullable Int */;
7617 val* var154 /* : nullable Int */;
7618 val* var155 /* : nullable Bool */;
7619 val* var156 /* : nullable Bool */;
7620 val* var157 /* : nullable CallSite */;
7621 static val* varonce159;
7622 val* var160 /* : String */;
7623 char* var161 /* : CString */;
7624 val* var162 /* : String */;
7625 val* var163 /* : nullable Int */;
7626 val* var164 /* : nullable Int */;
7627 val* var165 /* : nullable Bool */;
7628 val* var166 /* : nullable Bool */;
7629 val* var167 /* : nullable CallSite */;
7630 var_v = p0;
7631 var_mtype = ((val*)NULL);
7632 {
7633 { /* Inline parser_nodes$AArrayExpr$n_type (self) on <self:AArrayExpr> */
7634 var2 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_type].val; /* _n_type on <self:AArrayExpr> */
7635 var = var2;
7636 RET_LABEL1:(void)0;
7637 }
7638 }
7639 var_ntype = var;
7640 if (var_ntype == NULL) {
7641 var3 = 0; /* is null */
7642 } else {
7643 var3 = 1; /* arg is null and recv is not */
7644 }
7645 if (0) {
7646 { /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
7647 var_other = ((val*)NULL);
7648 {
7649 var6 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on <var_ntype:nullable AType(AType)>*/
7650 }
7651 var7 = !var6;
7652 var4 = var7;
7653 goto RET_LABEL5;
7654 RET_LABEL5:(void)0;
7655 }
7656 var3 = var4;
7657 }
7658 if (var3){
7659 {
7660 var8 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var_ntype);
7661 }
7662 var_mtype = var8;
7663 if (var_mtype == NULL) {
7664 var9 = 1; /* is null */
7665 } else {
7666 var9 = 0; /* arg is null but recv is not */
7667 }
7668 if (0) {
7669 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
7670 var_other12 = ((val*)NULL);
7671 {
7672 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other12) on <var_mtype:nullable MType(MType)> */
7673 var15 = var_mtype == var_other12;
7674 var13 = var15;
7675 goto RET_LABEL14;
7676 RET_LABEL14:(void)0;
7677 }
7678 }
7679 var10 = var13;
7680 goto RET_LABEL11;
7681 RET_LABEL11:(void)0;
7682 }
7683 var9 = var10;
7684 }
7685 if (var9){
7686 goto RET_LABEL;
7687 } else {
7688 }
7689 } else {
7690 }
7691 var16 = NEW_core__Array(&type_core__Array__nullable__nitc__MType);
7692 {
7693 core___core__Array___core__kernel__Object__init(var16); /* Direct call array$Array$init on <var16:Array[nullable MType]>*/
7694 }
7695 var_mtypes = var16;
7696 var_useless = 0;
7697 {
7698 { /* Inline parser_nodes$AArrayExpr$n_exprs (self) on <self:AArrayExpr> */
7699 var19 = self->attrs[COLOR_nitc__parser_nodes__AArrayExpr___n_exprs].val; /* _n_exprs on <self:AArrayExpr> */
7700 if (unlikely(var19 == NULL)) {
7701 if(catchStack.cursor >= 0){
7702 longjmp(catchStack.envs[catchStack.cursor], 1);
7703 }
7704 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_exprs");
7705 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2541);
7706 fatal_exit(1);
7707 }
7708 var17 = var19;
7709 RET_LABEL18:(void)0;
7710 }
7711 }
7712 var_ = var17;
7713 {
7714 var20 = nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_);
7715 }
7716 var_21 = var20;
7717 for(;;) {
7718 {
7719 var22 = ((short int(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__is_ok]))(var_21); /* is_ok on <var_21:Iterator[AExpr]>*/
7720 }
7721 if (var22){
7722 } else {
7723 goto BREAK_label;
7724 }
7725 {
7726 var23 = ((val*(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__item]))(var_21); /* item on <var_21:Iterator[AExpr]>*/
7727 }
7728 var_e = var23;
7729 {
7730 var24 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var_e);
7731 }
7732 var_t = var24;
7733 if (var_t == NULL) {
7734 var25 = 1; /* is null */
7735 } else {
7736 var25 = 0; /* arg is null but recv is not */
7737 }
7738 if (0) {
7739 { /* Inline kernel$Object$== (var_t,((val*)NULL)) on <var_t:nullable MType> */
7740 var_other12 = ((val*)NULL);
7741 {
7742 { /* Inline kernel$Object$is_same_instance (var_t,var_other12) on <var_t:nullable MType(MType)> */
7743 var30 = var_t == var_other12;
7744 var28 = var30;
7745 goto RET_LABEL29;
7746 RET_LABEL29:(void)0;
7747 }
7748 }
7749 var26 = var28;
7750 goto RET_LABEL27;
7751 RET_LABEL27:(void)0;
7752 }
7753 var25 = var26;
7754 }
7755 if (var25){
7756 goto RET_LABEL;
7757 } else {
7758 }
7759 {
7760 nitc__typing___AArrayExpr___set_comprehension(self, var_e); /* Direct call typing$AArrayExpr$set_comprehension on <self:AArrayExpr>*/
7761 }
7762 if (var_mtype == NULL) {
7763 var31 = 0; /* is null */
7764 } else {
7765 var31 = 1; /* arg is null and recv is not */
7766 }
7767 if (0) {
7768 { /* Inline kernel$Object$!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
7769 var_other = ((val*)NULL);
7770 {
7771 var34 = ((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)>*/
7772 }
7773 var35 = !var34;
7774 var32 = var35;
7775 goto RET_LABEL33;
7776 RET_LABEL33:(void)0;
7777 }
7778 var31 = var32;
7779 }
7780 if (var31){
7781 {
7782 var36 = nitc__typing___nitc__typing__TypeVisitor___check_subtype(var_v, var_e, var_t, var_mtype, 0);
7783 }
7784 if (var36 == NULL) {
7785 var37 = 1; /* is null */
7786 } else {
7787 var37 = 0; /* arg is null but recv is not */
7788 }
7789 if (0) {
7790 { /* Inline kernel$Object$== (var36,((val*)NULL)) on <var36:nullable MType> */
7791 var_other12 = ((val*)NULL);
7792 {
7793 { /* Inline kernel$Object$is_same_instance (var36,var_other12) on <var36:nullable MType(MType)> */
7794 var42 = var36 == var_other12;
7795 var40 = var42;
7796 goto RET_LABEL41;
7797 RET_LABEL41:(void)0;
7798 }
7799 }
7800 var38 = var40;
7801 goto RET_LABEL39;
7802 RET_LABEL39:(void)0;
7803 }
7804 var37 = var38;
7805 }
7806 if (var37){
7807 goto RET_LABEL;
7808 } else {
7809 }
7810 {
7811 { /* Inline kernel$Object$== (var_t,var_mtype) on <var_t:nullable MType(MType)> */
7812 var_other12 = var_mtype;
7813 {
7814 { /* Inline kernel$Object$is_same_instance (var_t,var_other12) on <var_t:nullable MType(MType)> */
7815 var47 = var_t == var_other12;
7816 var45 = var47;
7817 goto RET_LABEL46;
7818 RET_LABEL46:(void)0;
7819 }
7820 }
7821 var43 = var45;
7822 goto RET_LABEL44;
7823 RET_LABEL44:(void)0;
7824 }
7825 }
7826 if (var43){
7827 var_useless = 1;
7828 } else {
7829 }
7830 } else {
7831 {
7832 core___core__Array___core__abstract_collection__SimpleCollection__add(var_mtypes, var_t); /* Direct call array$Array$add on <var_mtypes:Array[nullable MType]>*/
7833 }
7834 }
7835 {
7836 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__next]))(var_21); /* next on <var_21:Iterator[AExpr]>*/
7837 }
7838 }
7839 BREAK_label: (void)0;
7840 {
7841 ((void(*)(val* self))((((long)var_21&3)?class_info[((long)var_21&3)]:var_21->class)->vft[COLOR_core__abstract_collection__Iterator__finish]))(var_21); /* finish on <var_21:Iterator[AExpr]>*/
7842 }
7843 if (var_mtype == NULL) {
7844 var48 = 1; /* is null */
7845 } else {
7846 var48 = 0; /* arg is null but recv is not */
7847 }
7848 if (0) {
7849 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
7850 var_other12 = ((val*)NULL);
7851 {
7852 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other12) on <var_mtype:nullable MType(MType)> */
7853 var53 = var_mtype == var_other12;
7854 var51 = var53;
7855 goto RET_LABEL52;
7856 RET_LABEL52:(void)0;
7857 }
7858 }
7859 var49 = var51;
7860 goto RET_LABEL50;
7861 RET_LABEL50:(void)0;
7862 }
7863 var48 = var49;
7864 }
7865 if (var48){
7866 {
7867 { /* Inline typing$AArrayExpr$element_mtype (self) on <self:AArrayExpr> */
7868 var56 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on <self:AArrayExpr> */
7869 var54 = var56;
7870 RET_LABEL55:(void)0;
7871 }
7872 }
7873 if (var54 == NULL) {
7874 var57 = 0; /* is null */
7875 } else {
7876 var57 = 1; /* arg is null and recv is not */
7877 }
7878 if (0) {
7879 { /* Inline kernel$Object$!= (var54,((val*)NULL)) on <var54:nullable MType> */
7880 var_other = ((val*)NULL);
7881 {
7882 var60 = ((short int(*)(val* self, val* p0))(var54->class->vft[COLOR_core__kernel__Object___61d_61d]))(var54, var_other); /* == on <var54:nullable MType(MType)>*/
7883 }
7884 var61 = !var60;
7885 var58 = var61;
7886 goto RET_LABEL59;
7887 RET_LABEL59:(void)0;
7888 }
7889 var57 = var58;
7890 }
7891 if (var57){
7892 {
7893 { /* Inline typing$AArrayExpr$element_mtype (self) on <self:AArrayExpr> */
7894 var64 = self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val; /* _element_mtype on <self:AArrayExpr> */
7895 var62 = var64;
7896 RET_LABEL63:(void)0;
7897 }
7898 }
7899 {
7900 core___core__Array___core__abstract_collection__SimpleCollection__add(var_mtypes, var62); /* Direct call array$Array$add on <var_mtypes:Array[nullable MType]>*/
7901 }
7902 } else {
7903 }
7904 {
7905 var65 = nitc__typing___nitc__typing__TypeVisitor___merge_types(var_v, self, var_mtypes);
7906 }
7907 var_mtype = var65;
7908 } else {
7909 }
7910 if (var_mtype == NULL) {
7911 var67 = 1; /* is null */
7912 } else {
7913 var67 = 0; /* arg is null but recv is not */
7914 }
7915 if (0) {
7916 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
7917 var_other12 = ((val*)NULL);
7918 {
7919 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other12) on <var_mtype:nullable MType(MType)> */
7920 var72 = var_mtype == var_other12;
7921 var70 = var72;
7922 goto RET_LABEL71;
7923 RET_LABEL71:(void)0;
7924 }
7925 }
7926 var68 = var70;
7927 goto RET_LABEL69;
7928 RET_LABEL69:(void)0;
7929 }
7930 var67 = var68;
7931 }
7932 var_73 = var67;
7933 if (var67){
7934 var66 = var_73;
7935 } else {
7936 /* <var_mtype:nullable MType(MType)> isa MNullType */
7937 cltype = type_nitc__MNullType.color;
7938 idtype = type_nitc__MNullType.id;
7939 if(cltype >= var_mtype->type->table_size) {
7940 var74 = 0;
7941 } else {
7942 var74 = var_mtype->type->type_table[cltype] == idtype;
7943 }
7944 var66 = var74;
7945 }
7946 if (var66){
7947 if (unlikely(varonce==NULL)) {
7948 var75 = NEW_core__NativeArray((int)2l, &type_core__NativeArray__core__String);
7949 if (likely(varonce76!=NULL)) {
7950 var77 = varonce76;
7951 } else {
7952 var78 = "Type Error: ambiguous array type ";
7953 var80 = (val*)(33l<<2|1);
7954 var81 = (val*)(33l<<2|1);
7955 var82 = (val*)((long)(0)<<2|3);
7956 var83 = (val*)((long)(0)<<2|3);
7957 var79 = core__flat___CString___to_s_unsafe(var78, var80, var81, var82, var83);
7958 var77 = var79;
7959 varonce76 = var77;
7960 }
7961 ((struct instance_core__NativeArray*)var75)->values[0]=var77;
7962 } else {
7963 var75 = varonce;
7964 varonce = NULL;
7965 }
7966 if (likely(varonce84!=NULL)) {
7967 var85 = varonce84;
7968 } else {
7969 var86 = " ";
7970 var88 = (val*)(1l<<2|1);
7971 var89 = (val*)(1l<<2|1);
7972 var90 = (val*)((long)(0)<<2|3);
7973 var91 = (val*)((long)(0)<<2|3);
7974 var87 = core__flat___CString___to_s_unsafe(var86, var88, var89, var90, var91);
7975 var85 = var87;
7976 varonce84 = var85;
7977 }
7978 {
7979 var92 = core__abstract_text___Collection___join(var_mtypes, var85, ((val*)NULL));
7980 }
7981 ((struct instance_core__NativeArray*)var75)->values[1]=var92;
7982 {
7983 var93 = ((val*(*)(val* self))(var75->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var75); /* native_to_s on <var75:NativeArray[String]>*/
7984 }
7985 varonce = var75;
7986 {
7987 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var93); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
7988 }
7989 goto RET_LABEL;
7990 } else {
7991 }
7992 if (var_useless){
7993 if (var_ntype == NULL) {
7994 var94 = 0; /* is null */
7995 } else {
7996 var94 = 1; /* arg is null and recv is not */
7997 }
7998 if (0) {
7999 { /* Inline kernel$Object$!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
8000 var_other = ((val*)NULL);
8001 {
8002 var97 = ((short int(*)(val* self, val* p0))(var_ntype->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_ntype, var_other); /* == on <var_ntype:nullable AType(AType)>*/
8003 }
8004 var98 = !var97;
8005 var95 = var98;
8006 goto RET_LABEL96;
8007 RET_LABEL96:(void)0;
8008 }
8009 var94 = var95;
8010 }
8011 if (unlikely(!var94)) {
8012 if(catchStack.cursor >= 0){
8013 longjmp(catchStack.envs[catchStack.cursor], 1);
8014 }
8015 PRINT_ERROR("Runtime error: %s", "Assert failed");
8016 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1611);
8017 fatal_exit(1);
8018 }
8019 {
8020 { /* Inline typing$TypeVisitor$modelbuilder (var_v) on <var_v:TypeVisitor> */
8021 var101 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___modelbuilder].val; /* _modelbuilder on <var_v:TypeVisitor> */
8022 if (unlikely(var101 == NULL)) {
8023 if(catchStack.cursor >= 0){
8024 longjmp(catchStack.envs[catchStack.cursor], 1);
8025 }
8026 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
8027 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 35);
8028 fatal_exit(1);
8029 }
8030 var99 = var101;
8031 RET_LABEL100:(void)0;
8032 }
8033 }
8034 if (likely(varonce102!=NULL)) {
8035 var103 = varonce102;
8036 } else {
8037 var104 = "useless-type";
8038 var106 = (val*)(12l<<2|1);
8039 var107 = (val*)(12l<<2|1);
8040 var108 = (val*)((long)(0)<<2|3);
8041 var109 = (val*)((long)(0)<<2|3);
8042 var105 = core__flat___CString___to_s_unsafe(var104, var106, var107, var108, var109);
8043 var103 = var105;
8044 varonce102 = var103;
8045 }
8046 if (unlikely(varonce110==NULL)) {
8047 var111 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
8048 if (likely(varonce112!=NULL)) {
8049 var113 = varonce112;
8050 } else {
8051 var114 = "Warning: useless type declaration `";
8052 var116 = (val*)(35l<<2|1);
8053 var117 = (val*)(35l<<2|1);
8054 var118 = (val*)((long)(0)<<2|3);
8055 var119 = (val*)((long)(0)<<2|3);
8056 var115 = core__flat___CString___to_s_unsafe(var114, var116, var117, var118, var119);
8057 var113 = var115;
8058 varonce112 = var113;
8059 }
8060 ((struct instance_core__NativeArray*)var111)->values[0]=var113;
8061 if (likely(varonce120!=NULL)) {
8062 var121 = varonce120;
8063 } else {
8064 var122 = "` in literal Array since it can be inferred from the elements type.";
8065 var124 = (val*)(67l<<2|1);
8066 var125 = (val*)(67l<<2|1);
8067 var126 = (val*)((long)(0)<<2|3);
8068 var127 = (val*)((long)(0)<<2|3);
8069 var123 = core__flat___CString___to_s_unsafe(var122, var124, var125, var126, var127);
8070 var121 = var123;
8071 varonce120 = var121;
8072 }
8073 ((struct instance_core__NativeArray*)var111)->values[2]=var121;
8074 } else {
8075 var111 = varonce110;
8076 varonce110 = NULL;
8077 }
8078 {
8079 var128 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_mtype); /* to_s on <var_mtype:nullable MType(MType)>*/
8080 }
8081 ((struct instance_core__NativeArray*)var111)->values[1]=var128;
8082 {
8083 var129 = ((val*(*)(val* self))(var111->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var111); /* native_to_s on <var111:NativeArray[String]>*/
8084 }
8085 varonce110 = var111;
8086 {
8087 nitc___nitc__ModelBuilder___warning(var99, var_ntype, var103, var129); /* Direct call modelbuilder_base$ModelBuilder$warning on <var99:ModelBuilder>*/
8088 }
8089 } else {
8090 }
8091 {
8092 { /* Inline typing$AArrayExpr$element_mtype= (self,var_mtype) on <self:AArrayExpr> */
8093 self->attrs[COLOR_nitc__typing__AArrayExpr___element_mtype].val = var_mtype; /* _element_mtype on <self:AArrayExpr> */
8094 RET_LABEL130:(void)0;
8095 }
8096 }
8097 if (likely(varonce131!=NULL)) {
8098 var132 = varonce131;
8099 } else {
8100 var133 = "Array";
8101 var135 = (val*)(5l<<2|1);
8102 var136 = (val*)(5l<<2|1);
8103 var137 = (val*)((long)(0)<<2|3);
8104 var138 = (val*)((long)(0)<<2|3);
8105 var134 = core__flat___CString___to_s_unsafe(var133, var135, var136, var137, var138);
8106 var132 = var134;
8107 varonce131 = var132;
8108 }
8109 {
8110 var139 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var132);
8111 }
8112 var_mclass = var139;
8113 if (var_mclass == NULL) {
8114 var140 = 1; /* is null */
8115 } else {
8116 var140 = 0; /* arg is null but recv is not */
8117 }
8118 if (0) {
8119 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
8120 var_other12 = ((val*)NULL);
8121 {
8122 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other12) on <var_mclass:nullable MClass(MClass)> */
8123 var145 = var_mclass == var_other12;
8124 var143 = var145;
8125 goto RET_LABEL144;
8126 RET_LABEL144:(void)0;
8127 }
8128 }
8129 var141 = var143;
8130 goto RET_LABEL142;
8131 RET_LABEL142:(void)0;
8132 }
8133 var140 = var141;
8134 }
8135 if (var140){
8136 goto RET_LABEL;
8137 } else {
8138 }
8139 var146 = NEW_core__Array(&type_core__Array__nitc__MType);
8140 {
8141 core___core__Array___with_capacity(var146, 1l); /* Direct call array$Array$with_capacity on <var146:Array[MType]>*/
8142 }
8143 var_147 = var146;
8144 {
8145 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_147, var_mtype); /* Direct call array$AbstractArray$push on <var_147:Array[MType]>*/
8146 }
8147 {
8148 var148 = nitc___nitc__MClass___get_mtype(var_mclass, var_147);
8149 }
8150 var_array_mtype = var148;
8151 if (likely(varonce149!=NULL)) {
8152 var150 = varonce149;
8153 } else {
8154 var151 = "with_capacity";
8155 var153 = (val*)(13l<<2|1);
8156 var154 = (val*)(13l<<2|1);
8157 var155 = (val*)((long)(0)<<2|3);
8158 var156 = (val*)((long)(0)<<2|3);
8159 var152 = core__flat___CString___to_s_unsafe(var151, var153, var154, var155, var156);
8160 var150 = var152;
8161 varonce149 = var150;
8162 }
8163 {
8164 var157 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_array_mtype, var150, 0);
8165 }
8166 {
8167 { /* Inline typing$AArrayExpr$with_capacity_callsite= (self,var157) on <self:AArrayExpr> */
8168 self->attrs[COLOR_nitc__typing__AArrayExpr___with_capacity_callsite].val = var157; /* _with_capacity_callsite on <self:AArrayExpr> */
8169 RET_LABEL158:(void)0;
8170 }
8171 }
8172 if (likely(varonce159!=NULL)) {
8173 var160 = varonce159;
8174 } else {
8175 var161 = "push";
8176 var163 = (val*)(4l<<2|1);
8177 var164 = (val*)(4l<<2|1);
8178 var165 = (val*)((long)(0)<<2|3);
8179 var166 = (val*)((long)(0)<<2|3);
8180 var162 = core__flat___CString___to_s_unsafe(var161, var163, var164, var165, var166);
8181 var160 = var162;
8182 varonce159 = var160;
8183 }
8184 {
8185 var167 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_array_mtype, var160, 0);
8186 }
8187 {
8188 { /* Inline typing$AArrayExpr$push_callsite= (self,var167) on <self:AArrayExpr> */
8189 self->attrs[COLOR_nitc__typing__AArrayExpr___push_callsite].val = var167; /* _push_callsite on <self:AArrayExpr> */
8190 RET_LABEL168:(void)0;
8191 }
8192 }
8193 {
8194 { /* Inline typing$AExpr$mtype= (self,var_array_mtype) on <self:AArrayExpr> */
8195 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_array_mtype; /* _mtype on <self:AArrayExpr> */
8196 RET_LABEL169:(void)0;
8197 }
8198 }
8199 RET_LABEL:;
8200 }
8201 /* method typing$ARangeExpr$init_callsite for (self: ARangeExpr): nullable CallSite */
8202 val* nitc__typing___ARangeExpr___init_callsite(val* self) {
8203 val* var /* : nullable CallSite */;
8204 val* var1 /* : nullable CallSite */;
8205 var1 = self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val; /* _init_callsite on <self:ARangeExpr> */
8206 var = var1;
8207 RET_LABEL:;
8208 return var;
8209 }
8210 /* method typing$ARangeExpr$init_callsite= for (self: ARangeExpr, nullable CallSite) */
8211 void nitc__typing___ARangeExpr___init_callsite_61d(val* self, val* p0) {
8212 self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val = p0; /* _init_callsite on <self:ARangeExpr> */
8213 RET_LABEL:;
8214 }
8215 /* method typing$ARangeExpr$accept_typing for (self: ARangeExpr, TypeVisitor) */
8216 void nitc__typing___ARangeExpr___AExpr__accept_typing(val* self, val* p0) {
8217 val* var_v /* var v: TypeVisitor */;
8218 static val* varonce;
8219 val* var /* : String */;
8220 char* var1 /* : CString */;
8221 val* var2 /* : String */;
8222 val* var3 /* : nullable Int */;
8223 val* var4 /* : nullable Int */;
8224 val* var5 /* : nullable Bool */;
8225 val* var6 /* : nullable Bool */;
8226 val* var7 /* : nullable MClass */;
8227 val* var_discrete_class /* var discrete_class: nullable MClass */;
8228 short int var8 /* : Bool */;
8229 short int var9 /* : Bool */;
8230 val* var_other /* var other: nullable Object */;
8231 short int var11 /* : Bool */;
8232 short int var13 /* : Bool */;
8233 val* var14 /* : MClassDef */;
8234 val* var16 /* : MClassDef */;
8235 val* var17 /* : MClassType */;
8236 val* var19 /* : MClassType */;
8237 val* var_discrete_type /* var discrete_type: MClassType */;
8238 val* var20 /* : AExpr */;
8239 val* var22 /* : AExpr */;
8240 val* var23 /* : nullable MType */;
8241 val* var_t1 /* var t1: nullable MType */;
8242 val* var24 /* : AExpr */;
8243 val* var26 /* : AExpr */;
8244 val* var27 /* : nullable MType */;
8245 val* var_t2 /* var t2: nullable MType */;
8246 short int var28 /* : Bool */;
8247 short int var29 /* : Bool */;
8248 short int var30 /* : Bool */;
8249 short int var32 /* : Bool */;
8250 short int var34 /* : Bool */;
8251 short int var_ /* var : Bool */;
8252 short int var35 /* : Bool */;
8253 short int var36 /* : Bool */;
8254 short int var38 /* : Bool */;
8255 short int var40 /* : Bool */;
8256 static val* varonce41;
8257 val* var42 /* : String */;
8258 char* var43 /* : CString */;
8259 val* var44 /* : String */;
8260 val* var45 /* : nullable Int */;
8261 val* var46 /* : nullable Int */;
8262 val* var47 /* : nullable Bool */;
8263 val* var48 /* : nullable Bool */;
8264 val* var49 /* : nullable MClass */;
8265 val* var_mclass /* var mclass: nullable MClass */;
8266 short int var50 /* : Bool */;
8267 short int var51 /* : Bool */;
8268 short int var53 /* : Bool */;
8269 short int var55 /* : Bool */;
8270 short int var56 /* : Bool */;
8271 val* var57 /* : Array[MType] */;
8272 val* var_58 /* var : Array[MType] */;
8273 val* var59 /* : MClassType */;
8274 val* var_mtype /* var mtype: nullable Object */;
8275 short int var60 /* : Bool */;
8276 val* var61 /* : Array[MType] */;
8277 val* var_62 /* var : Array[MType] */;
8278 val* var63 /* : MClassType */;
8279 val* var65 /* : NativeArray[String] */;
8280 static val* varonce64;
8281 static val* varonce66;
8282 val* var67 /* : String */;
8283 char* var68 /* : CString */;
8284 val* var69 /* : String */;
8285 val* var70 /* : nullable Int */;
8286 val* var71 /* : nullable Int */;
8287 val* var72 /* : nullable Bool */;
8288 val* var73 /* : nullable Bool */;
8289 static val* varonce74;
8290 val* var75 /* : String */;
8291 char* var76 /* : CString */;
8292 val* var77 /* : String */;
8293 val* var78 /* : nullable Int */;
8294 val* var79 /* : nullable Int */;
8295 val* var80 /* : nullable Bool */;
8296 val* var81 /* : nullable Bool */;
8297 static val* varonce82;
8298 val* var83 /* : String */;
8299 char* var84 /* : CString */;
8300 val* var85 /* : String */;
8301 val* var86 /* : nullable Int */;
8302 val* var87 /* : nullable Int */;
8303 val* var88 /* : nullable Bool */;
8304 val* var89 /* : nullable Bool */;
8305 val* var90 /* : String */;
8306 val* var91 /* : String */;
8307 val* var92 /* : String */;
8308 short int var94 /* : Bool */;
8309 int cltype;
8310 int idtype;
8311 static val* varonce95;
8312 val* var96 /* : String */;
8313 char* var97 /* : CString */;
8314 val* var98 /* : String */;
8315 val* var99 /* : nullable Int */;
8316 val* var100 /* : nullable Int */;
8317 val* var101 /* : nullable Bool */;
8318 val* var102 /* : nullable Bool */;
8319 val* var103 /* : nullable CallSite */;
8320 val* var_callsite /* var callsite: nullable Object */;
8321 short int var104 /* : Bool */;
8322 int cltype105;
8323 int idtype106;
8324 static val* varonce107;
8325 val* var108 /* : String */;
8326 char* var109 /* : CString */;
8327 val* var110 /* : String */;
8328 val* var111 /* : nullable Int */;
8329 val* var112 /* : nullable Int */;
8330 val* var113 /* : nullable Bool */;
8331 val* var114 /* : nullable Bool */;
8332 val* var115 /* : nullable CallSite */;
8333 var_v = p0;
8334 if (likely(varonce!=NULL)) {
8335 var = varonce;
8336 } else {
8337 var1 = "Discrete";
8338 var3 = (val*)(8l<<2|1);
8339 var4 = (val*)(8l<<2|1);
8340 var5 = (val*)((long)(0)<<2|3);
8341 var6 = (val*)((long)(0)<<2|3);
8342 var2 = core__flat___CString___to_s_unsafe(var1, var3, var4, var5, var6);
8343 var = var2;
8344 varonce = var;
8345 }
8346 {
8347 var7 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var);
8348 }
8349 var_discrete_class = var7;
8350 if (var_discrete_class == NULL) {
8351 var8 = 1; /* is null */
8352 } else {
8353 var8 = 0; /* arg is null but recv is not */
8354 }
8355 if (0) {
8356 { /* Inline kernel$Object$== (var_discrete_class,((val*)NULL)) on <var_discrete_class:nullable MClass> */
8357 var_other = ((val*)NULL);
8358 {
8359 { /* Inline kernel$Object$is_same_instance (var_discrete_class,var_other) on <var_discrete_class:nullable MClass(MClass)> */
8360 var13 = var_discrete_class == var_other;
8361 var11 = var13;
8362 goto RET_LABEL12;
8363 RET_LABEL12:(void)0;
8364 }
8365 }
8366 var9 = var11;
8367 goto RET_LABEL10;
8368 RET_LABEL10:(void)0;
8369 }
8370 var8 = var9;
8371 }
8372 if (var8){
8373 goto RET_LABEL;
8374 } else {
8375 }
8376 {
8377 { /* Inline model$MClass$intro (var_discrete_class) on <var_discrete_class:nullable MClass(MClass)> */
8378 var16 = var_discrete_class->attrs[COLOR_nitc__model__MClass___intro].val; /* _intro on <var_discrete_class:nullable MClass(MClass)> */
8379 if (unlikely(var16 == NULL)) {
8380 if(catchStack.cursor >= 0){
8381 longjmp(catchStack.envs[catchStack.cursor], 1);
8382 }
8383 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
8384 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 496);
8385 fatal_exit(1);
8386 }
8387 var14 = var16;
8388 RET_LABEL15:(void)0;
8389 }
8390 }
8391 {
8392 { /* Inline model$MClassDef$bound_mtype (var14) on <var14:MClassDef> */
8393 var19 = var14->attrs[COLOR_nitc__model__MClassDef___bound_mtype].val; /* _bound_mtype on <var14:MClassDef> */
8394 if (unlikely(var19 == NULL)) {
8395 if(catchStack.cursor >= 0){
8396 longjmp(catchStack.envs[catchStack.cursor], 1);
8397 }
8398 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
8399 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 594);
8400 fatal_exit(1);
8401 }
8402 var17 = var19;
8403 RET_LABEL18:(void)0;
8404 }
8405 }
8406 var_discrete_type = var17;
8407 {
8408 { /* Inline parser_nodes$ARangeExpr$n_expr (self) on <self:ARangeExpr> */
8409 var22 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr].val; /* _n_expr on <self:ARangeExpr> */
8410 if (unlikely(var22 == NULL)) {
8411 if(catchStack.cursor >= 0){
8412 longjmp(catchStack.envs[catchStack.cursor], 1);
8413 }
8414 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8415 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2502);
8416 fatal_exit(1);
8417 }
8418 var20 = var22;
8419 RET_LABEL21:(void)0;
8420 }
8421 }
8422 {
8423 var23 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var20, var_discrete_type);
8424 }
8425 var_t1 = var23;
8426 {
8427 { /* Inline parser_nodes$ARangeExpr$n_expr2 (self) on <self:ARangeExpr> */
8428 var26 = self->attrs[COLOR_nitc__parser_nodes__ARangeExpr___n_expr2].val; /* _n_expr2 on <self:ARangeExpr> */
8429 if (unlikely(var26 == NULL)) {
8430 if(catchStack.cursor >= 0){
8431 longjmp(catchStack.envs[catchStack.cursor], 1);
8432 }
8433 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
8434 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2508);
8435 fatal_exit(1);
8436 }
8437 var24 = var26;
8438 RET_LABEL25:(void)0;
8439 }
8440 }
8441 {
8442 var27 = nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v, var24, var_discrete_type);
8443 }
8444 var_t2 = var27;
8445 if (var_t1 == NULL) {
8446 var29 = 1; /* is null */
8447 } else {
8448 var29 = 0; /* arg is null but recv is not */
8449 }
8450 if (0) {
8451 { /* Inline kernel$Object$== (var_t1,((val*)NULL)) on <var_t1:nullable MType> */
8452 var_other = ((val*)NULL);
8453 {
8454 { /* Inline kernel$Object$is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
8455 var34 = var_t1 == var_other;
8456 var32 = var34;
8457 goto RET_LABEL33;
8458 RET_LABEL33:(void)0;
8459 }
8460 }
8461 var30 = var32;
8462 goto RET_LABEL31;
8463 RET_LABEL31:(void)0;
8464 }
8465 var29 = var30;
8466 }
8467 var_ = var29;
8468 if (var29){
8469 var28 = var_;
8470 } else {
8471 if (var_t2 == NULL) {
8472 var35 = 1; /* is null */
8473 } else {
8474 var35 = 0; /* arg is null but recv is not */
8475 }
8476 if (0) {
8477 { /* Inline kernel$Object$== (var_t2,((val*)NULL)) on <var_t2:nullable MType> */
8478 var_other = ((val*)NULL);
8479 {
8480 { /* Inline kernel$Object$is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
8481 var40 = var_t2 == var_other;
8482 var38 = var40;
8483 goto RET_LABEL39;
8484 RET_LABEL39:(void)0;
8485 }
8486 }
8487 var36 = var38;
8488 goto RET_LABEL37;
8489 RET_LABEL37:(void)0;
8490 }
8491 var35 = var36;
8492 }
8493 var28 = var35;
8494 }
8495 if (var28){
8496 goto RET_LABEL;
8497 } else {
8498 }
8499 if (likely(varonce41!=NULL)) {
8500 var42 = varonce41;
8501 } else {
8502 var43 = "Range";
8503 var45 = (val*)(5l<<2|1);
8504 var46 = (val*)(5l<<2|1);
8505 var47 = (val*)((long)(0)<<2|3);
8506 var48 = (val*)((long)(0)<<2|3);
8507 var44 = core__flat___CString___to_s_unsafe(var43, var45, var46, var47, var48);
8508 var42 = var44;
8509 varonce41 = var42;
8510 }
8511 {
8512 var49 = nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v, self, var42);
8513 }
8514 var_mclass = var49;
8515 if (var_mclass == NULL) {
8516 var50 = 1; /* is null */
8517 } else {
8518 var50 = 0; /* arg is null but recv is not */
8519 }
8520 if (0) {
8521 { /* Inline kernel$Object$== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
8522 var_other = ((val*)NULL);
8523 {
8524 { /* Inline kernel$Object$is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
8525 var55 = var_mclass == var_other;
8526 var53 = var55;
8527 goto RET_LABEL54;
8528 RET_LABEL54:(void)0;
8529 }
8530 }
8531 var51 = var53;
8532 goto RET_LABEL52;
8533 RET_LABEL52:(void)0;
8534 }
8535 var50 = var51;
8536 }
8537 if (var50){
8538 goto RET_LABEL;
8539 } else {
8540 }
8541 {
8542 var56 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_t1, var_t2);
8543 }
8544 if (var56){
8545 var57 = NEW_core__Array(&type_core__Array__nitc__MType);
8546 {
8547 core___core__Array___with_capacity(var57, 1l); /* Direct call array$Array$with_capacity on <var57:Array[MType]>*/
8548 }
8549 var_58 = var57;
8550 {
8551 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_58, var_t2); /* Direct call array$AbstractArray$push on <var_58:Array[MType]>*/
8552 }
8553 {
8554 var59 = nitc___nitc__MClass___get_mtype(var_mclass, var_58);
8555 }
8556 var_mtype = var59;
8557 } else {
8558 {
8559 var60 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_t2, var_t1);
8560 }
8561 if (var60){
8562 var61 = NEW_core__Array(&type_core__Array__nitc__MType);
8563 {
8564 core___core__Array___with_capacity(var61, 1l); /* Direct call array$Array$with_capacity on <var61:Array[MType]>*/
8565 }
8566 var_62 = var61;
8567 {
8568 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_62, var_t1); /* Direct call array$AbstractArray$push on <var_62:Array[MType]>*/
8569 }
8570 {
8571 var63 = nitc___nitc__MClass___get_mtype(var_mclass, var_62);
8572 }
8573 var_mtype = var63;
8574 } else {
8575 if (unlikely(varonce64==NULL)) {
8576 var65 = NEW_core__NativeArray((int)5l, &type_core__NativeArray__core__String);
8577 if (likely(varonce66!=NULL)) {
8578 var67 = varonce66;
8579 } else {
8580 var68 = "Type Error: cannot create range: `";
8581 var70 = (val*)(34l<<2|1);
8582 var71 = (val*)(34l<<2|1);
8583 var72 = (val*)((long)(0)<<2|3);
8584 var73 = (val*)((long)(0)<<2|3);
8585 var69 = core__flat___CString___to_s_unsafe(var68, var70, var71, var72, var73);
8586 var67 = var69;
8587 varonce66 = var67;
8588 }
8589 ((struct instance_core__NativeArray*)var65)->values[0]=var67;
8590 if (likely(varonce74!=NULL)) {
8591 var75 = varonce74;
8592 } else {
8593 var76 = "` vs `";
8594 var78 = (val*)(6l<<2|1);
8595 var79 = (val*)(6l<<2|1);
8596 var80 = (val*)((long)(0)<<2|3);
8597 var81 = (val*)((long)(0)<<2|3);
8598 var77 = core__flat___CString___to_s_unsafe(var76, var78, var79, var80, var81);
8599 var75 = var77;
8600 varonce74 = var75;
8601 }
8602 ((struct instance_core__NativeArray*)var65)->values[2]=var75;
8603 if (likely(varonce82!=NULL)) {
8604 var83 = varonce82;
8605 } else {
8606 var84 = "`.";
8607 var86 = (val*)(2l<<2|1);
8608 var87 = (val*)(2l<<2|1);
8609 var88 = (val*)((long)(0)<<2|3);
8610 var89 = (val*)((long)(0)<<2|3);
8611 var85 = core__flat___CString___to_s_unsafe(var84, var86, var87, var88, var89);
8612 var83 = var85;
8613 varonce82 = var83;
8614 }
8615 ((struct instance_core__NativeArray*)var65)->values[4]=var83;
8616 } else {
8617 var65 = varonce64;
8618 varonce64 = NULL;
8619 }
8620 {
8621 var90 = ((val*(*)(val* self))(var_t1->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t1); /* to_s on <var_t1:nullable MType(MType)>*/
8622 }
8623 ((struct instance_core__NativeArray*)var65)->values[1]=var90;
8624 {
8625 var91 = ((val*(*)(val* self))(var_t2->class->vft[COLOR_core__abstract_text__Object__to_s]))(var_t2); /* to_s on <var_t2:nullable MType(MType)>*/
8626 }
8627 ((struct instance_core__NativeArray*)var65)->values[3]=var91;
8628 {
8629 var92 = ((val*(*)(val* self))(var65->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var65); /* native_to_s on <var65:NativeArray[String]>*/
8630 }
8631 varonce64 = var65;
8632 {
8633 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var92); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
8634 }
8635 goto RET_LABEL;
8636 }
8637 }
8638 {
8639 { /* Inline typing$AExpr$mtype= (self,var_mtype) on <self:ARangeExpr> */
8640 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:ARangeExpr> */
8641 RET_LABEL93:(void)0;
8642 }
8643 }
8644 /* <self:ARangeExpr> isa ACrangeExpr */
8645 cltype = type_nitc__ACrangeExpr.color;
8646 idtype = type_nitc__ACrangeExpr.id;
8647 if(cltype >= self->type->table_size) {
8648 var94 = 0;
8649 } else {
8650 var94 = self->type->type_table[cltype] == idtype;
8651 }
8652 if (var94){
8653 if (likely(varonce95!=NULL)) {
8654 var96 = varonce95;
8655 } else {
8656 var97 = "init";
8657 var99 = (val*)(4l<<2|1);
8658 var100 = (val*)(4l<<2|1);
8659 var101 = (val*)((long)(0)<<2|3);
8660 var102 = (val*)((long)(0)<<2|3);
8661 var98 = core__flat___CString___to_s_unsafe(var97, var99, var100, var101, var102);
8662 var96 = var98;
8663 varonce95 = var96;
8664 }
8665 {
8666 var103 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var96, 0);
8667 }
8668 var_callsite = var103;
8669 } else {
8670 /* <self:ARangeExpr> isa AOrangeExpr */
8671 cltype105 = type_nitc__AOrangeExpr.color;
8672 idtype106 = type_nitc__AOrangeExpr.id;
8673 if(cltype105 >= self->type->table_size) {
8674 var104 = 0;
8675 } else {
8676 var104 = self->type->type_table[cltype105] == idtype106;
8677 }
8678 if (var104){
8679 if (likely(varonce107!=NULL)) {
8680 var108 = varonce107;
8681 } else {
8682 var109 = "without_last";
8683 var111 = (val*)(12l<<2|1);
8684 var112 = (val*)(12l<<2|1);
8685 var113 = (val*)((long)(0)<<2|3);
8686 var114 = (val*)((long)(0)<<2|3);
8687 var110 = core__flat___CString___to_s_unsafe(var109, var111, var112, var113, var114);
8688 var108 = var110;
8689 varonce107 = var108;
8690 }
8691 {
8692 var115 = nitc__typing___nitc__typing__TypeVisitor___get_method(var_v, self, var_mtype, var108, 0);
8693 }
8694 var_callsite = var115;
8695 } else {
8696 if(catchStack.cursor >= 0){
8697 longjmp(catchStack.envs[catchStack.cursor], 1);
8698 }
8699 PRINT_ERROR("Runtime error: %s", "Aborted");
8700 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1660);
8701 fatal_exit(1);
8702 }
8703 }
8704 {
8705 { /* Inline typing$ARangeExpr$init_callsite= (self,var_callsite) on <self:ARangeExpr> */
8706 self->attrs[COLOR_nitc__typing__ARangeExpr___init_callsite].val = var_callsite; /* _init_callsite on <self:ARangeExpr> */
8707 RET_LABEL116:(void)0;
8708 }
8709 }
8710 RET_LABEL:;
8711 }
8712 /* method typing$ANullExpr$accept_typing for (self: ANullExpr, TypeVisitor) */
8713 void nitc__typing___ANullExpr___AExpr__accept_typing(val* self, val* p0) {
8714 val* var_v /* var v: TypeVisitor */;
8715 val* var /* : MModule */;
8716 val* var2 /* : MModule */;
8717 val* var3 /* : Model */;
8718 val* var5 /* : Model */;
8719 val* var6 /* : MNullType */;
8720 val* var8 /* : MNullType */;
8721 var_v = p0;
8722 {
8723 { /* Inline typing$TypeVisitor$mmodule (var_v) on <var_v:TypeVisitor> */
8724 var2 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___mmodule].val; /* _mmodule on <var_v:TypeVisitor> */
8725 if (unlikely(var2 == NULL)) {
8726 if(catchStack.cursor >= 0){
8727 longjmp(catchStack.envs[catchStack.cursor], 1);
8728 }
8729 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8730 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 37);
8731 fatal_exit(1);
8732 }
8733 var = var2;
8734 RET_LABEL1:(void)0;
8735 }
8736 }
8737 {
8738 { /* Inline mmodule$MModule$model (var) on <var:MModule> */
8739 var5 = var->attrs[COLOR_nitc__mmodule__MModule___model].val; /* _model on <var:MModule> */
8740 if (unlikely(var5 == NULL)) {
8741 if(catchStack.cursor >= 0){
8742 longjmp(catchStack.envs[catchStack.cursor], 1);
8743 }
8744 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _model");
8745 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mmodule, 77);
8746 fatal_exit(1);
8747 }
8748 var3 = var5;
8749 RET_LABEL4:(void)0;
8750 }
8751 }
8752 {
8753 { /* Inline model$Model$null_type (var3) on <var3:Model> */
8754 var8 = var3->attrs[COLOR_nitc__model__Model___null_type].val; /* _null_type on <var3:Model> */
8755 if (unlikely(var8 == NULL)) {
8756 if(catchStack.cursor >= 0){
8757 longjmp(catchStack.envs[catchStack.cursor], 1);
8758 }
8759 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _null_type");
8760 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model, 103);
8761 fatal_exit(1);
8762 }
8763 var6 = var8;
8764 RET_LABEL7:(void)0;
8765 }
8766 }
8767 {
8768 { /* Inline typing$AExpr$mtype= (self,var6) on <self:ANullExpr> */
8769 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var6; /* _mtype on <self:ANullExpr> */
8770 RET_LABEL9:(void)0;
8771 }
8772 }
8773 RET_LABEL:;
8774 }
8775 /* method typing$AIsaExpr$cast_type for (self: AIsaExpr): nullable MType */
8776 val* nitc__typing___AIsaExpr___cast_type(val* self) {
8777 val* var /* : nullable MType */;
8778 val* var1 /* : nullable MType */;
8779 var1 = self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val; /* _cast_type on <self:AIsaExpr> */
8780 var = var1;
8781 RET_LABEL:;
8782 return var;
8783 }
8784 /* method typing$AIsaExpr$cast_type= for (self: AIsaExpr, nullable MType) */
8785 void nitc__typing___AIsaExpr___cast_type_61d(val* self, val* p0) {
8786 self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val = p0; /* _cast_type on <self:AIsaExpr> */
8787 RET_LABEL:;
8788 }
8789 /* method typing$AIsaExpr$accept_typing for (self: AIsaExpr, TypeVisitor) */
8790 void nitc__typing___AIsaExpr___AExpr__accept_typing(val* self, val* p0) {
8791 val* var_v /* var v: TypeVisitor */;
8792 val* var /* : AExpr */;
8793 val* var2 /* : AExpr */;
8794 val* var3 /* : nullable MType */;
8795 val* var4 /* : AType */;
8796 val* var6 /* : AType */;
8797 val* var7 /* : nullable MType */;
8798 val* var_mtype /* var mtype: nullable MType */;
8799 val* var9 /* : AExpr */;
8800 val* var11 /* : AExpr */;
8801 val* var12 /* : nullable Variable */;
8802 val* var_variable /* var variable: nullable Variable */;
8803 short int var13 /* : Bool */;
8804 short int var14 /* : Bool */;
8805 val* var_other /* var other: nullable Object */;
8806 short int var16 /* : Bool */;
8807 short int var17 /* : Bool */;
8808 val* var18 /* : AExpr */;
8809 val* var20 /* : AExpr */;
8810 val* var21 /* : nullable MType */;
8811 val* var_orig /* var orig: nullable MType */;
8812 short int var22 /* : Bool */;
8813 short int var23 /* : Bool */;
8814 short int var24 /* : Bool */;
8815 short int var25 /* : Bool */;
8816 val* var_other27 /* var other: nullable Object */;
8817 short int var28 /* : Bool */;
8818 short int var30 /* : Bool */;
8819 short int var_ /* var : Bool */;
8820 short int var31 /* : Bool */;
8821 short int var32 /* : Bool */;
8822 short int var34 /* : Bool */;
8823 short int var36 /* : Bool */;
8824 short int var_37 /* var : Bool */;
8825 short int var38 /* : Bool */;
8826 short int var39 /* : Bool */;
8827 val* var40 /* : nullable FlowContext */;
8828 val* var42 /* : nullable FlowContext */;
8829 val* var43 /* : FlowContext */;
8830 val* var45 /* : FlowContext */;
8831 val* var46 /* : nullable MType */;
8832 var_v = p0;
8833 {
8834 { /* Inline parser_nodes$AIsaExpr$n_expr (self) on <self:AIsaExpr> */
8835 var2 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
8836 if (unlikely(var2 == NULL)) {
8837 if(catchStack.cursor >= 0){
8838 longjmp(catchStack.envs[catchStack.cursor], 1);
8839 }
8840 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8841 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234);
8842 fatal_exit(1);
8843 }
8844 var = var2;
8845 RET_LABEL1:(void)0;
8846 }
8847 }
8848 {
8849 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
8850 }
8851 {
8852 { /* Inline parser_nodes$AIsaExpr$n_type (self) on <self:AIsaExpr> */
8853 var6 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
8854 if (unlikely(var6 == NULL)) {
8855 if(catchStack.cursor >= 0){
8856 longjmp(catchStack.envs[catchStack.cursor], 1);
8857 }
8858 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
8859 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2240);
8860 fatal_exit(1);
8861 }
8862 var4 = var6;
8863 RET_LABEL5:(void)0;
8864 }
8865 }
8866 {
8867 var7 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var4);
8868 }
8869 var_mtype = var7;
8870 {
8871 { /* Inline typing$AIsaExpr$cast_type= (self,var_mtype) on <self:AIsaExpr> */
8872 self->attrs[COLOR_nitc__typing__AIsaExpr___cast_type].val = var_mtype; /* _cast_type on <self:AIsaExpr> */
8873 RET_LABEL8:(void)0;
8874 }
8875 }
8876 {
8877 { /* Inline parser_nodes$AIsaExpr$n_expr (self) on <self:AIsaExpr> */
8878 var11 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
8879 if (unlikely(var11 == NULL)) {
8880 if(catchStack.cursor >= 0){
8881 longjmp(catchStack.envs[catchStack.cursor], 1);
8882 }
8883 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8884 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234);
8885 fatal_exit(1);
8886 }
8887 var9 = var11;
8888 RET_LABEL10:(void)0;
8889 }
8890 }
8891 {
8892 var12 = ((val*(*)(val* self))(var9->class->vft[COLOR_nitc__typing__AExpr__its_variable]))(var9); /* its_variable on <var9:AExpr>*/
8893 }
8894 var_variable = var12;
8895 if (var_variable == NULL) {
8896 var13 = 0; /* is null */
8897 } else {
8898 var13 = 1; /* arg is null and recv is not */
8899 }
8900 if (0) {
8901 { /* Inline kernel$Object$!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
8902 var_other = ((val*)NULL);
8903 {
8904 var16 = ((short int(*)(val* self, val* p0))(var_variable->class->vft[COLOR_core__kernel__Object___61d_61d]))(var_variable, var_other); /* == on <var_variable:nullable Variable(Variable)>*/
8905 }
8906 var17 = !var16;
8907 var14 = var17;
8908 goto RET_LABEL15;
8909 RET_LABEL15:(void)0;
8910 }
8911 var13 = var14;
8912 }
8913 if (var13){
8914 {
8915 { /* Inline parser_nodes$AIsaExpr$n_expr (self) on <self:AIsaExpr> */
8916 var20 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
8917 if (unlikely(var20 == NULL)) {
8918 if(catchStack.cursor >= 0){
8919 longjmp(catchStack.envs[catchStack.cursor], 1);
8920 }
8921 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
8922 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234);
8923 fatal_exit(1);
8924 }
8925 var18 = var20;
8926 RET_LABEL19:(void)0;
8927 }
8928 }
8929 {
8930 var21 = ((val*(*)(val* self))(var18->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var18); /* mtype on <var18:AExpr>*/
8931 }
8932 var_orig = var21;
8933 if (var_mtype == NULL) {
8934 var24 = 1; /* is null */
8935 } else {
8936 var24 = 0; /* arg is null but recv is not */
8937 }
8938 if (0) {
8939 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
8940 var_other27 = ((val*)NULL);
8941 {
8942 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other27) on <var_mtype:nullable MType(MType)> */
8943 var30 = var_mtype == var_other27;
8944 var28 = var30;
8945 goto RET_LABEL29;
8946 RET_LABEL29:(void)0;
8947 }
8948 }
8949 var25 = var28;
8950 goto RET_LABEL26;
8951 RET_LABEL26:(void)0;
8952 }
8953 var24 = var25;
8954 }
8955 var_ = var24;
8956 if (var24){
8957 var23 = var_;
8958 } else {
8959 if (var_orig == NULL) {
8960 var31 = 1; /* is null */
8961 } else {
8962 var31 = 0; /* arg is null but recv is not */
8963 }
8964 if (0) {
8965 { /* Inline kernel$Object$== (var_orig,((val*)NULL)) on <var_orig:nullable MType> */
8966 var_other27 = ((val*)NULL);
8967 {
8968 { /* Inline kernel$Object$is_same_instance (var_orig,var_other27) on <var_orig:nullable MType(MType)> */
8969 var36 = var_orig == var_other27;
8970 var34 = var36;
8971 goto RET_LABEL35;
8972 RET_LABEL35:(void)0;
8973 }
8974 }
8975 var32 = var34;
8976 goto RET_LABEL33;
8977 RET_LABEL33:(void)0;
8978 }
8979 var31 = var32;
8980 }
8981 var23 = var31;
8982 }
8983 var_37 = var23;
8984 if (var23){
8985 var22 = var_37;
8986 } else {
8987 {
8988 var38 = nitc__typing___nitc__typing__TypeVisitor___is_subtype(var_v, var_orig, var_mtype);
8989 }
8990 var39 = !var38;
8991 var22 = var39;
8992 }
8993 if (var22){
8994 {
8995 { /* Inline flow$AExpr$after_flow_context (self) on <self:AIsaExpr> */
8996 var42 = self->attrs[COLOR_nitc__flow__AExpr___after_flow_context].val; /* _after_flow_context on <self:AIsaExpr> */
8997 var40 = var42;
8998 RET_LABEL41:(void)0;
8999 }
9000 }
9001 if (var40 == NULL) {
9002 if(catchStack.cursor >= 0){
9003 longjmp(catchStack.envs[catchStack.cursor], 1);
9004 }
9005 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9006 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 1694);
9007 fatal_exit(1);
9008 } else {
9009 { /* Inline flow$FlowContext$when_true (var40) on <var40:nullable FlowContext> */
9010 if (unlikely(var40 == NULL)) {
9011 if(catchStack.cursor >= 0){
9012 longjmp(catchStack.envs[catchStack.cursor], 1);
9013 }
9014 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9015 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow, 225);
9016 fatal_exit(1);
9017 }
9018 var45 = var40->attrs[COLOR_nitc__flow__FlowContext___when_true].val; /* _when_true on <var40:nullable FlowContext> */
9019 if (unlikely(var45 == NULL)) {
9020 if(catchStack.cursor >= 0){
9021 longjmp(catchStack.envs[catchStack.cursor], 1);
9022 }
9023 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
9024 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow, 225);
9025 fatal_exit(1);
9026 }
9027 var43 = var45;
9028 RET_LABEL44:(void)0;
9029 }
9030 }
9031 {
9032 nitc__typing___FlowContext___set_var(var43, var_v, var_variable, var_mtype); /* Direct call typing$FlowContext$set_var on <var43:FlowContext>*/
9033 }
9034 } else {
9035 }
9036 } else {
9037 }
9038 {
9039 var46 = nitc__typing___nitc__typing__TypeVisitor___type_bool(var_v, self);
9040 }
9041 {
9042 { /* Inline typing$AExpr$mtype= (self,var46) on <self:AIsaExpr> */
9043 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var46; /* _mtype on <self:AIsaExpr> */
9044 RET_LABEL47:(void)0;
9045 }
9046 }
9047 RET_LABEL:;
9048 }
9049 /* method typing$AIsaExpr$accept_post_typing for (self: AIsaExpr, TypeVisitor) */
9050 void nitc__typing___AIsaExpr___ANode__accept_post_typing(val* self, val* p0) {
9051 val* var_v /* var v: TypeVisitor */;
9052 val* var /* : AExpr */;
9053 val* var2 /* : AExpr */;
9054 val* var3 /* : AType */;
9055 val* var5 /* : AType */;
9056 val* var6 /* : nullable MType */;
9057 var_v = p0;
9058 {
9059 { /* Inline parser_nodes$AIsaExpr$n_expr (self) on <self:AIsaExpr> */
9060 var2 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_expr].val; /* _n_expr on <self:AIsaExpr> */
9061 if (unlikely(var2 == NULL)) {
9062 if(catchStack.cursor >= 0){
9063 longjmp(catchStack.envs[catchStack.cursor], 1);
9064 }
9065 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9066 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2234);
9067 fatal_exit(1);
9068 }
9069 var = var2;
9070 RET_LABEL1:(void)0;
9071 }
9072 }
9073 {
9074 { /* Inline parser_nodes$AIsaExpr$n_type (self) on <self:AIsaExpr> */
9075 var5 = self->attrs[COLOR_nitc__parser_nodes__AIsaExpr___n_type].val; /* _n_type on <self:AIsaExpr> */
9076 if (unlikely(var5 == NULL)) {
9077 if(catchStack.cursor >= 0){
9078 longjmp(catchStack.envs[catchStack.cursor], 1);
9079 }
9080 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9081 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2240);
9082 fatal_exit(1);
9083 }
9084 var3 = var5;
9085 RET_LABEL4:(void)0;
9086 }
9087 }
9088 {
9089 var6 = nitc__typing___nitc__typing__TypeVisitor___check_expr_cast(var_v, self, var, var3);
9090 }
9091 RET_LABEL:;
9092 }
9093 /* method typing$AAsCastExpr$accept_typing for (self: AAsCastExpr, TypeVisitor) */
9094 void nitc__typing___AAsCastExpr___AExpr__accept_typing(val* self, val* p0) {
9095 val* var_v /* var v: TypeVisitor */;
9096 val* var /* : AExpr */;
9097 val* var2 /* : AExpr */;
9098 val* var3 /* : nullable MType */;
9099 val* var4 /* : AType */;
9100 val* var6 /* : AType */;
9101 val* var7 /* : nullable MType */;
9102 var_v = p0;
9103 {
9104 { /* Inline parser_nodes$AAsCastForm$n_expr (self) on <self:AAsCastExpr> */
9105 var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
9106 if (unlikely(var2 == NULL)) {
9107 if(catchStack.cursor >= 0){
9108 longjmp(catchStack.envs[catchStack.cursor], 1);
9109 }
9110 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9111 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667);
9112 fatal_exit(1);
9113 }
9114 var = var2;
9115 RET_LABEL1:(void)0;
9116 }
9117 }
9118 {
9119 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
9120 }
9121 {
9122 { /* Inline parser_nodes$AAsCastExpr$n_type (self) on <self:AAsCastExpr> */
9123 var6 = self->attrs[COLOR_nitc__parser_nodes__AAsCastExpr___n_type].val; /* _n_type on <self:AAsCastExpr> */
9124 if (unlikely(var6 == NULL)) {
9125 if(catchStack.cursor >= 0){
9126 longjmp(catchStack.envs[catchStack.cursor], 1);
9127 }
9128 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9129 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2684);
9130 fatal_exit(1);
9131 }
9132 var4 = var6;
9133 RET_LABEL5:(void)0;
9134 }
9135 }
9136 {
9137 var7 = nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v, var4);
9138 }
9139 {
9140 { /* Inline typing$AExpr$mtype= (self,var7) on <self:AAsCastExpr> */
9141 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var7; /* _mtype on <self:AAsCastExpr> */
9142 RET_LABEL8:(void)0;
9143 }
9144 }
9145 RET_LABEL:;
9146 }
9147 /* method typing$AAsCastExpr$accept_post_typing for (self: AAsCastExpr, TypeVisitor) */
9148 void nitc__typing___AAsCastExpr___ANode__accept_post_typing(val* self, val* p0) {
9149 val* var_v /* var v: TypeVisitor */;
9150 val* var /* : AExpr */;
9151 val* var2 /* : AExpr */;
9152 val* var3 /* : AType */;
9153 val* var5 /* : AType */;
9154 val* var6 /* : nullable MType */;
9155 var_v = p0;
9156 {
9157 { /* Inline parser_nodes$AAsCastForm$n_expr (self) on <self:AAsCastExpr> */
9158 var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsCastExpr> */
9159 if (unlikely(var2 == NULL)) {
9160 if(catchStack.cursor >= 0){
9161 longjmp(catchStack.envs[catchStack.cursor], 1);
9162 }
9163 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9164 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667);
9165 fatal_exit(1);
9166 }
9167 var = var2;
9168 RET_LABEL1:(void)0;
9169 }
9170 }
9171 {
9172 { /* Inline parser_nodes$AAsCastExpr$n_type (self) on <self:AAsCastExpr> */
9173 var5 = self->attrs[COLOR_nitc__parser_nodes__AAsCastExpr___n_type].val; /* _n_type on <self:AAsCastExpr> */
9174 if (unlikely(var5 == NULL)) {
9175 if(catchStack.cursor >= 0){
9176 longjmp(catchStack.envs[catchStack.cursor], 1);
9177 }
9178 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_type");
9179 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2684);
9180 fatal_exit(1);
9181 }
9182 var3 = var5;
9183 RET_LABEL4:(void)0;
9184 }
9185 }
9186 {
9187 var6 = nitc__typing___nitc__typing__TypeVisitor___check_expr_cast(var_v, self, var, var3);
9188 }
9189 RET_LABEL:;
9190 }
9191 /* method typing$AAsNotnullExpr$accept_typing for (self: AAsNotnullExpr, TypeVisitor) */
9192 void nitc__typing___AAsNotnullExpr___AExpr__accept_typing(val* self, val* p0) {
9193 val* var_v /* var v: TypeVisitor */;
9194 val* var /* : AExpr */;
9195 val* var2 /* : AExpr */;
9196 val* var3 /* : nullable MType */;
9197 val* var_mtype /* var mtype: nullable MType */;
9198 short int var4 /* : Bool */;
9199 short int var5 /* : Bool */;
9200 val* var_other /* var other: nullable Object */;
9201 short int var7 /* : Bool */;
9202 short int var9 /* : Bool */;
9203 short int var10 /* : Bool */;
9204 int cltype;
9205 int idtype;
9206 static val* varonce;
9207 val* var11 /* : String */;
9208 char* var12 /* : CString */;
9209 val* var13 /* : String */;
9210 val* var14 /* : nullable Int */;
9211 val* var15 /* : nullable Int */;
9212 val* var16 /* : nullable Bool */;
9213 val* var17 /* : nullable Bool */;
9214 short int var18 /* : Bool */;
9215 val* var19 /* : MType */;
9216 var_v = p0;
9217 {
9218 { /* Inline parser_nodes$AAsCastForm$n_expr (self) on <self:AAsNotnullExpr> */
9219 var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsNotnullExpr> */
9220 if (unlikely(var2 == NULL)) {
9221 if(catchStack.cursor >= 0){
9222 longjmp(catchStack.envs[catchStack.cursor], 1);
9223 }
9224 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9225 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667);
9226 fatal_exit(1);
9227 }
9228 var = var2;
9229 RET_LABEL1:(void)0;
9230 }
9231 }
9232 {
9233 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
9234 }
9235 var_mtype = var3;
9236 if (var_mtype == NULL) {
9237 var4 = 1; /* is null */
9238 } else {
9239 var4 = 0; /* arg is null but recv is not */
9240 }
9241 if (0) {
9242 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9243 var_other = ((val*)NULL);
9244 {
9245 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9246 var9 = var_mtype == var_other;
9247 var7 = var9;
9248 goto RET_LABEL8;
9249 RET_LABEL8:(void)0;
9250 }
9251 }
9252 var5 = var7;
9253 goto RET_LABEL6;
9254 RET_LABEL6:(void)0;
9255 }
9256 var4 = var5;
9257 }
9258 if (var4){
9259 goto RET_LABEL;
9260 } else {
9261 }
9262 /* <var_mtype:nullable MType(MType)> isa MNullType */
9263 cltype = type_nitc__MNullType.color;
9264 idtype = type_nitc__MNullType.id;
9265 if(cltype >= var_mtype->type->table_size) {
9266 var10 = 0;
9267 } else {
9268 var10 = var_mtype->type->type_table[cltype] == idtype;
9269 }
9270 if (var10){
9271 if (likely(varonce!=NULL)) {
9272 var11 = varonce;
9273 } else {
9274 var12 = "Type Error: `as(not null)` on `null`.";
9275 var14 = (val*)(37l<<2|1);
9276 var15 = (val*)(37l<<2|1);
9277 var16 = (val*)((long)(0)<<2|3);
9278 var17 = (val*)((long)(0)<<2|3);
9279 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
9280 var11 = var13;
9281 varonce = var11;
9282 }
9283 {
9284 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var11); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
9285 }
9286 goto RET_LABEL;
9287 } else {
9288 }
9289 {
9290 var18 = nitc__typing___nitc__typing__TypeVisitor___can_be_null(var_v, var_mtype);
9291 }
9292 if (var18){
9293 {
9294 var19 = ((val*(*)(val* self))(var_mtype->class->vft[COLOR_nitc__model__MType__as_notnull]))(var_mtype); /* as_notnull on <var_mtype:nullable MType(MType)>*/
9295 }
9296 var_mtype = var19;
9297 } else {
9298 }
9299 {
9300 { /* Inline typing$AExpr$mtype= (self,var_mtype) on <self:AAsNotnullExpr> */
9301 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var_mtype; /* _mtype on <self:AAsNotnullExpr> */
9302 RET_LABEL20:(void)0;
9303 }
9304 }
9305 RET_LABEL:;
9306 }
9307 /* method typing$AAsNotnullExpr$accept_post_typing for (self: AAsNotnullExpr, TypeVisitor) */
9308 void nitc__typing___AAsNotnullExpr___ANode__accept_post_typing(val* self, val* p0) {
9309 val* var_v /* var v: TypeVisitor */;
9310 val* var /* : AExpr */;
9311 val* var2 /* : AExpr */;
9312 val* var3 /* : nullable MType */;
9313 val* var_mtype /* var mtype: nullable MType */;
9314 short int var4 /* : Bool */;
9315 short int var5 /* : Bool */;
9316 val* var_other /* var other: nullable Object */;
9317 short int var7 /* : Bool */;
9318 short int var9 /* : Bool */;
9319 val* var10 /* : AExpr */;
9320 val* var12 /* : AExpr */;
9321 short int var13 /* : Bool */;
9322 var_v = p0;
9323 {
9324 { /* Inline parser_nodes$AAsCastForm$n_expr (self) on <self:AAsNotnullExpr> */
9325 var2 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsNotnullExpr> */
9326 if (unlikely(var2 == NULL)) {
9327 if(catchStack.cursor >= 0){
9328 longjmp(catchStack.envs[catchStack.cursor], 1);
9329 }
9330 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9331 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667);
9332 fatal_exit(1);
9333 }
9334 var = var2;
9335 RET_LABEL1:(void)0;
9336 }
9337 }
9338 {
9339 var3 = ((val*(*)(val* self))(var->class->vft[COLOR_nitc__typing__AExpr__mtype]))(var); /* mtype on <var:AExpr>*/
9340 }
9341 var_mtype = var3;
9342 if (var_mtype == NULL) {
9343 var4 = 1; /* is null */
9344 } else {
9345 var4 = 0; /* arg is null but recv is not */
9346 }
9347 if (0) {
9348 { /* Inline kernel$Object$== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9349 var_other = ((val*)NULL);
9350 {
9351 { /* Inline kernel$Object$is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9352 var9 = var_mtype == var_other;
9353 var7 = var9;
9354 goto RET_LABEL8;
9355 RET_LABEL8:(void)0;
9356 }
9357 }
9358 var5 = var7;
9359 goto RET_LABEL6;
9360 RET_LABEL6:(void)0;
9361 }
9362 var4 = var5;
9363 }
9364 if (var4){
9365 goto RET_LABEL;
9366 } else {
9367 }
9368 {
9369 { /* Inline parser_nodes$AAsCastForm$n_expr (self) on <self:AAsNotnullExpr> */
9370 var12 = self->attrs[COLOR_nitc__parser_nodes__AAsCastForm___n_expr].val; /* _n_expr on <self:AAsNotnullExpr> */
9371 if (unlikely(var12 == NULL)) {
9372 if(catchStack.cursor >= 0){
9373 longjmp(catchStack.envs[catchStack.cursor], 1);
9374 }
9375 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9376 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2667);
9377 fatal_exit(1);
9378 }
9379 var10 = var12;
9380 RET_LABEL11:(void)0;
9381 }
9382 }
9383 {
9384 var13 = nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(var_v, var10, var_mtype);
9385 }
9386 RET_LABEL:;
9387 }
9388 /* method typing$AParExpr$accept_typing for (self: AParExpr, TypeVisitor) */
9389 void nitc__typing___AParExpr___AExpr__accept_typing(val* self, val* p0) {
9390 val* var_v /* var v: TypeVisitor */;
9391 val* var /* : AExpr */;
9392 val* var2 /* : AExpr */;
9393 val* var3 /* : nullable MType */;
9394 var_v = p0;
9395 {
9396 { /* Inline parser_nodes$AParExpr$n_expr (self) on <self:AParExpr> */
9397 var2 = self->attrs[COLOR_nitc__parser_nodes__AParExpr___n_expr].val; /* _n_expr on <self:AParExpr> */
9398 if (unlikely(var2 == NULL)) {
9399 if(catchStack.cursor >= 0){
9400 longjmp(catchStack.envs[catchStack.cursor], 1);
9401 }
9402 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9403 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2656);
9404 fatal_exit(1);
9405 }
9406 var = var2;
9407 RET_LABEL1:(void)0;
9408 }
9409 }
9410 {
9411 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
9412 }
9413 {
9414 { /* Inline typing$AExpr$mtype= (self,var3) on <self:AParExpr> */
9415 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var3; /* _mtype on <self:AParExpr> */
9416 RET_LABEL4:(void)0;
9417 }
9418 }
9419 RET_LABEL:;
9420 }
9421 /* method typing$AOnceExpr$accept_typing for (self: AOnceExpr, TypeVisitor) */
9422 void nitc__typing___AOnceExpr___AExpr__accept_typing(val* self, val* p0) {
9423 val* var_v /* var v: TypeVisitor */;
9424 val* var /* : AExpr */;
9425 val* var2 /* : AExpr */;
9426 val* var3 /* : nullable MType */;
9427 var_v = p0;
9428 {
9429 { /* Inline parser_nodes$AOnceExpr$n_expr (self) on <self:AOnceExpr> */
9430 var2 = self->attrs[COLOR_nitc__parser_nodes__AOnceExpr___n_expr].val; /* _n_expr on <self:AOnceExpr> */
9431 if (unlikely(var2 == NULL)) {
9432 if(catchStack.cursor >= 0){
9433 longjmp(catchStack.envs[catchStack.cursor], 1);
9434 }
9435 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9436 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2095);
9437 fatal_exit(1);
9438 }
9439 var = var2;
9440 RET_LABEL1:(void)0;
9441 }
9442 }
9443 {
9444 var3 = nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v, var);
9445 }
9446 {
9447 { /* Inline typing$AExpr$mtype= (self,var3) on <self:AOnceExpr> */
9448 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var3; /* _mtype on <self:AOnceExpr> */
9449 RET_LABEL4:(void)0;
9450 }
9451 }
9452 RET_LABEL:;
9453 }
9454 /* method typing$ASelfExpr$its_variable for (self: ASelfExpr): nullable Variable */
9455 val* nitc__typing___ASelfExpr___AExpr__its_variable(val* self) {
9456 val* var /* : nullable Variable */;
9457 val* var1 /* : nullable Variable */;
9458 var1 = self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val; /* _its_variable on <self:ASelfExpr> */
9459 var = var1;
9460 RET_LABEL:;
9461 return var;
9462 }
9463 /* method typing$ASelfExpr$its_variable= for (self: ASelfExpr, nullable Variable) */
9464 void nitc__typing___ASelfExpr___its_variable_61d(val* self, val* p0) {
9465 self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = p0; /* _its_variable on <self:ASelfExpr> */
9466 RET_LABEL:;
9467 }
9468 /* method typing$ASelfExpr$accept_typing for (self: ASelfExpr, TypeVisitor) */
9469 void nitc__typing___ASelfExpr___AExpr__accept_typing(val* self, val* p0) {
9470 val* var_v /* var v: TypeVisitor */;
9471 short int var /* : Bool */;
9472 short int var1 /* : Bool */;
9473 short int var3 /* : Bool */;
9474 short int var_ /* var : Bool */;
9475 short int var4 /* : Bool */;
9476 int cltype;
9477 int idtype;
9478 short int var5 /* : Bool */;
9479 static val* varonce;
9480 val* var6 /* : String */;
9481 char* var7 /* : CString */;
9482 val* var8 /* : String */;
9483 val* var9 /* : nullable Int */;
9484 val* var10 /* : nullable Int */;
9485 val* var11 /* : nullable Bool */;
9486 val* var12 /* : nullable Bool */;
9487 val* var13 /* : Variable */;
9488 val* var15 /* : Variable */;
9489 val* var_variable /* var variable: Variable */;
9490 val* var17 /* : nullable MType */;
9491 var_v = p0;
9492 {
9493 { /* Inline typing$TypeVisitor$is_toplevel_context (var_v) on <var_v:TypeVisitor> */
9494 var3 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___is_toplevel_context].s; /* _is_toplevel_context on <var_v:TypeVisitor> */
9495 var1 = var3;
9496 RET_LABEL2:(void)0;
9497 }
9498 }
9499 var_ = var1;
9500 if (var1){
9501 /* <self:ASelfExpr> isa AImplicitSelfExpr */
9502 cltype = type_nitc__AImplicitSelfExpr.color;
9503 idtype = type_nitc__AImplicitSelfExpr.id;
9504 if(cltype >= self->type->table_size) {
9505 var4 = 0;
9506 } else {
9507 var4 = self->type->type_table[cltype] == idtype;
9508 }
9509 var5 = !var4;
9510 var = var5;
9511 } else {
9512 var = var_;
9513 }
9514 if (var){
9515 if (likely(varonce!=NULL)) {
9516 var6 = varonce;
9517 } else {
9518 var7 = "Error: `self` cannot be used in top-level method.";
9519 var9 = (val*)(49l<<2|1);
9520 var10 = (val*)(49l<<2|1);
9521 var11 = (val*)((long)(0)<<2|3);
9522 var12 = (val*)((long)(0)<<2|3);
9523 var8 = core__flat___CString___to_s_unsafe(var7, var9, var10, var11, var12);
9524 var6 = var8;
9525 varonce = var6;
9526 }
9527 {
9528 nitc__typing___nitc__typing__TypeVisitor___error(var_v, self, var6); /* Direct call typing$TypeVisitor$error on <var_v:TypeVisitor>*/
9529 }
9530 } else {
9531 }
9532 {
9533 { /* Inline typing$TypeVisitor$selfvariable (var_v) on <var_v:TypeVisitor> */
9534 var15 = var_v->attrs[COLOR_nitc__typing__TypeVisitor___selfvariable].val; /* _selfvariable on <var_v:TypeVisitor> */
9535 if (unlikely(var15 == NULL)) {
9536 if(catchStack.cursor >= 0){
9537 longjmp(catchStack.envs[catchStack.cursor], 1);
9538 }
9539 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
9540 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing, 51);
9541 fatal_exit(1);
9542 }
9543 var13 = var15;
9544 RET_LABEL14:(void)0;
9545 }
9546 }
9547 var_variable = var13;
9548 {
9549 { /* Inline typing$ASelfExpr$its_variable= (self,var_variable) on <self:ASelfExpr> */
9550 self->attrs[COLOR_nitc__typing__ASelfExpr___its_variable].val = var_variable; /* _its_variable on <self:ASelfExpr> */
9551 RET_LABEL16:(void)0;
9552 }
9553 }
9554 {
9555 var17 = nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v, self, var_variable);
9556 }
9557 {
9558 { /* Inline typing$AExpr$mtype= (self,var17) on <self:ASelfExpr> */
9559 self->attrs[COLOR_nitc__typing__AExpr___mtype].val = var17; /* _mtype on <self:ASelfExpr> */
9560 RET_LABEL18:(void)0;
9561 }
9562 }
9563 RET_LABEL:;
9564 }
9565 /* method typing$AImplicitSelfExpr$is_sys for (self: AImplicitSelfExpr): Bool */
9566 short int nitc__typing___AImplicitSelfExpr___is_sys(val* self) {
9567 short int var /* : Bool */;
9568 short int var1 /* : Bool */;
9569 var1 = self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s; /* _is_sys on <self:AImplicitSelfExpr> */
9570 var = var1;
9571 RET_LABEL:;
9572 return var;
9573 }
9574 /* method typing$AImplicitSelfExpr$is_sys= for (self: AImplicitSelfExpr, Bool) */
9575 void nitc__typing___AImplicitSelfExpr___is_sys_61d(val* self, short int p0) {
9576 self->attrs[COLOR_nitc__typing__AImplicitSelfExpr___is_sys].s = p0; /* _is_sys on <self:AImplicitSelfExpr> */
9577 RET_LABEL:;
9578 }
9579 /* method typing$ASendExpr$callsite for (self: ASendExpr): nullable CallSite */
9580 val* nitc__typing___ASendExpr___callsite(val* self) {
9581 val* var /* : nullable CallSite */;
9582 val* var1 /* : nullable CallSite */;
9583 var1 = self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val; /* _callsite on <self:ASendExpr> */
9584 var = var1;
9585 RET_LABEL:;
9586 return var;
9587 }
9588 /* method typing$ASendExpr$callsite= for (self: ASendExpr, nullable CallSite) */
9589 void nitc__typing___ASendExpr___callsite_61d(val* self, val* p0) {
9590 self->attrs[COLOR_nitc__typing__ASendExpr___callsite].val = p0; /* _callsite on <self:ASendExpr> */
9591 RET_LABEL:;
9592 }
9593 /* method typing$ASendExpr$bad_expr_message for (self: ASendExpr, AExpr): nullable String */
9594 val* nitc__typing___ASendExpr___ANode__bad_expr_message(val* self, val* p0) {
9595 val* var /* : nullable String */;
9596 val* var_child /* var child: AExpr */;
9597 val* var1 /* : AExpr */;
9598 val* var3 /* : AExpr */;
9599 short int var4 /* : Bool */;
9600 val* var_other /* var other: nullable Object */;
9601 short int var6 /* : Bool */;
9602 short int var8 /* : Bool */;
9603 val* var9 /* : NativeArray[String] */;
9604 static val* varonce;
9605 static val* varonce10;
9606 val* var11 /* : String */;
9607 char* var12 /* : CString */;
9608 val* var13 /* : String */;
9609 val* var14 /* : nullable Int */;
9610 val* var15 /* : nullable Int */;
9611 val* var16 /* : nullable Bool */;
9612 val* var17 /* : nullable Bool */;
9613 static val* varonce18;
9614 val* var19 /* : String */;
9615 char* var20 /* : CString */;
9616 val* var21 /* : String */;
9617 val* var22 /* : nullable Int */;
9618 val* var23 /* : nullable Int */;
9619 val* var24 /* : nullable Bool */;
9620 val* var25 /* : nullable Bool */;
9621 val* var26 /* : String */;
9622 val* var27 /* : String */;
9623 var_child = p0;
9624 {
9625 { /* Inline parser_nodes$ASendExpr$n_expr (self) on <self:ASendExpr> */
9626 var3 = self->attrs[COLOR_nitc__parser_nodes__ASendExpr___n_expr].val; /* _n_expr on <self:ASendExpr> */
9627 if (unlikely(var3 == NULL)) {
9628 if(catchStack.cursor >= 0){
9629 longjmp(catchStack.envs[catchStack.cursor], 1);
9630 }
9631 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9632 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes, 2103);
9633 fatal_exit(1);
9634 }
9635 var1 = var3;
9636 RET_LABEL2:(void)0;
9637 }
9638 }
9639 {
9640 { /* Inline kernel$Object$== (var_child,var1) on <var_child:AExpr> */
9641 var_other = var1;
9642 {
9643 { /* Inline kernel$Object$is_same_instance (var_child,var_other) on <var_child:AExpr> */
9644 var8 = var_child == var_other;
9645 var6 = var8;
9646 goto RET_LABEL7;
9647 RET_LABEL7:(void)0;
9648 }
9649 }
9650 var4 = var6;
9651 goto RET_LABEL5;
9652 RET_LABEL5:(void)0;
9653 }
9654 }
9655 if (var4){
9656 if (unlikely(varonce==NULL)) {
9657 var9 = NEW_core__NativeArray((int)3l, &type_core__NativeArray__core__String);
9658 if (likely(varonce10!=NULL)) {
9659 var11 = varonce10;
9660 } else {
9661 var12 = "to be the receiver of `";
9662 var14 = (val*)(23l<<2|1);
9663 var15 = (val*)(23l<<2|1);
9664 var16 = (val*)((long)(0)<<2|3);
9665 var17 = (val*)((long)(0)<<2|3);
9666 var13 = core__flat___CString___to_s_unsafe(var12, var14, var15, var16, var17);
9667 var11 = var13;
9668 varonce10 = var11;
9669 }
9670 ((struct instance_core__NativeArray*)var9)->values[0]=var11;
9671 if (likely(varonce18!=NULL)) {
9672 var19 = varonce18;
9673 } else {
9674 var20 = "`";
9675 var22 = (val*)(1l<<2|1);
9676 var23 = (val*)(1l<<2|1);
9677 var24 = (val*)((long)(0)<<2|3);
9678 var25 = (val*)((long)(0)<<2|3);
9679 var21 = core__flat___CString___to_s_unsafe(var20, var22, var23, var24, var25);
9680 var19 = var21;
9681 varonce18 = var19;
9682 }
9683 ((struct instance_core__NativeArray*)var9)->values[2]=var19;
9684 } else {
9685 var9 = varonce;
9686 varonce = NULL;
9687 }
9688 {
9689 var26 = ((val*(*)(val* self))(self->class->vft[COLOR_nitc__typing__ASendExpr__property_name]))(self); /* property_name on <self:ASendExpr>*/
9690 }
9691 ((struct instance_core__NativeArray*)var9)->values[1]=var26;
9692 {
9693 var27 = ((val*(*)(val* self))(var9->class->vft[COLOR_core__abstract_text__NativeArray__native_to_s]))(var9); /* native_to_s on <var9:NativeArray[String]>*/
9694 }
9695 varonce = var9;
9696 var = var27;
9697 goto RET_LABEL;
9698 } else {
9699 }
9700 var = ((val*)NULL);
9701 goto RET_LABEL;
9702 RET_LABEL:;
9703 return var;
9704 }