1 #include "nitc__typing.sep.0.h"
2 /* method typing#ToolContext#typing_phase for (self: ToolContext): Phase */
3 val
* nitc__typing___ToolContext___typing_phase(val
* self
) {
4 val
* var
/* : Phase */;
5 val
* var1
/* : Phase */;
6 var1
= self
->attrs
[COLOR_nitc__typing__ToolContext___typing_phase
].val
; /* _typing_phase on <self:ToolContext> */
7 if (unlikely(var1
== NULL
)) {
8 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _typing_phase");
9 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 26);
16 /* method typing#TypingPhase#process_npropdef for (self: TypingPhase, APropdef) */
17 void nitc__typing___nitc__typing__TypingPhase___nitc__phase__Phase__process_npropdef(val
* self
, val
* p0
) {
18 val
* var_npropdef
/* var npropdef: APropdef */;
19 val
* var
/* : ToolContext */;
20 val
* var2
/* : ToolContext */;
21 val
* var3
/* : ModelBuilder */;
24 { /* Inline phase#Phase#toolcontext (self) on <self:TypingPhase> */
25 var2
= self
->attrs
[COLOR_nitc__phase__Phase___toolcontext
].val
; /* _toolcontext on <self:TypingPhase> */
26 if (unlikely(var2
== NULL
)) {
27 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
28 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__phase
, 200);
36 var3
= nitc__modelbuilder_base___ToolContext___modelbuilder(var
);
39 ((void(*)(val
* self
, val
* p0
))(var_npropdef
->class->vft
[COLOR_nitc__typing__APropdef__do_typing
]))(var_npropdef
, var3
); /* do_typing on <var_npropdef:APropdef>*/
43 /* method typing#TypeVisitor#modelbuilder for (self: TypeVisitor): ModelBuilder */
44 val
* nitc__typing___nitc__typing__TypeVisitor___modelbuilder(val
* self
) {
45 val
* var
/* : ModelBuilder */;
46 val
* var1
/* : ModelBuilder */;
47 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
48 if (unlikely(var1
== NULL
)) {
49 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
50 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
57 /* method typing#TypeVisitor#modelbuilder= for (self: TypeVisitor, ModelBuilder) */
58 void nitc__typing___nitc__typing__TypeVisitor___modelbuilder_61d(val
* self
, val
* p0
) {
59 self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
= p0
; /* _modelbuilder on <self:TypeVisitor> */
62 /* method typing#TypeVisitor#mmodule for (self: TypeVisitor): MModule */
63 val
* nitc__typing___nitc__typing__TypeVisitor___mmodule(val
* self
) {
64 val
* var
/* : MModule */;
65 val
* var1
/* : MModule */;
66 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
67 if (unlikely(var1
== NULL
)) {
68 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
69 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
76 /* method typing#TypeVisitor#mmodule= for (self: TypeVisitor, MModule) */
77 void nitc__typing___nitc__typing__TypeVisitor___mmodule_61d(val
* self
, val
* p0
) {
78 self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
= p0
; /* _mmodule on <self:TypeVisitor> */
81 /* method typing#TypeVisitor#anchor for (self: TypeVisitor): nullable MClassType */
82 val
* nitc__typing___nitc__typing__TypeVisitor___anchor(val
* self
) {
83 val
* var
/* : nullable MClassType */;
84 val
* var1
/* : nullable MClassType */;
85 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
90 /* method typing#TypeVisitor#anchor= for (self: TypeVisitor, nullable MClassType) */
91 void nitc__typing___nitc__typing__TypeVisitor___anchor_61d(val
* self
, val
* p0
) {
92 self
->attrs
[COLOR_nitc__typing__TypeVisitor___anchor
].val
= p0
; /* _anchor on <self:TypeVisitor> */
95 /* method typing#TypeVisitor#mclassdef for (self: TypeVisitor): nullable MClassDef */
96 val
* nitc__typing___nitc__typing__TypeVisitor___mclassdef(val
* self
) {
97 val
* var
/* : nullable MClassDef */;
98 val
* var1
/* : nullable MClassDef */;
99 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:TypeVisitor> */
104 /* method typing#TypeVisitor#mclassdef= for (self: TypeVisitor, nullable MClassDef) */
105 void nitc__typing___nitc__typing__TypeVisitor___mclassdef_61d(val
* self
, val
* p0
) {
106 self
->attrs
[COLOR_nitc__typing__TypeVisitor___mclassdef
].val
= p0
; /* _mclassdef on <self:TypeVisitor> */
109 /* method typing#TypeVisitor#mpropdef for (self: TypeVisitor): nullable MPropDef */
110 val
* nitc__typing___nitc__typing__TypeVisitor___mpropdef(val
* self
) {
111 val
* var
/* : nullable MPropDef */;
112 val
* var1
/* : nullable MPropDef */;
113 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
118 /* method typing#TypeVisitor#mpropdef= for (self: TypeVisitor, nullable MPropDef) */
119 void nitc__typing___nitc__typing__TypeVisitor___mpropdef_61d(val
* self
, val
* p0
) {
120 self
->attrs
[COLOR_nitc__typing__TypeVisitor___mpropdef
].val
= p0
; /* _mpropdef on <self:TypeVisitor> */
123 /* method typing#TypeVisitor#selfvariable for (self: TypeVisitor): Variable */
124 val
* nitc__typing___nitc__typing__TypeVisitor___selfvariable(val
* self
) {
125 val
* var
/* : Variable */;
126 val
* var1
/* : Variable */;
127 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <self:TypeVisitor> */
128 if (unlikely(var1
== NULL
)) {
129 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
130 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 51);
137 /* method typing#TypeVisitor#selfvariable= for (self: TypeVisitor, Variable) */
138 void nitc__typing___nitc__typing__TypeVisitor___selfvariable_61d(val
* self
, val
* p0
) {
139 self
->attrs
[COLOR_nitc__typing__TypeVisitor___selfvariable
].val
= p0
; /* _selfvariable on <self:TypeVisitor> */
142 /* method typing#TypeVisitor#is_toplevel_context for (self: TypeVisitor): Bool */
143 short int nitc__typing___nitc__typing__TypeVisitor___is_toplevel_context(val
* self
) {
144 short int var
/* : Bool */;
145 short int var1
/* : Bool */;
146 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <self:TypeVisitor> */
151 /* method typing#TypeVisitor#is_toplevel_context= for (self: TypeVisitor, Bool) */
152 void nitc__typing___nitc__typing__TypeVisitor___is_toplevel_context_61d(val
* self
, short int p0
) {
153 self
->attrs
[COLOR_nitc__typing__TypeVisitor___is_toplevel_context
].s
= p0
; /* _is_toplevel_context on <self:TypeVisitor> */
156 /* method typing#TypeVisitor#init for (self: TypeVisitor) */
157 void nitc__typing___nitc__typing__TypeVisitor___core__kernel__Object__init(val
* self
) {
158 val
* var
/* : nullable MPropDef */;
159 val
* var2
/* : nullable MPropDef */;
160 val
* var_mpropdef
/* var mpropdef: nullable MPropDef */;
161 short int var3
/* : Bool */;
162 short int var4
/* : Bool */;
163 val
* var_other
/* var other: nullable Object */;
164 short int var6
/* : Bool */;
165 short int var7
/* : Bool */;
166 val
* var9
/* : MClassDef */;
167 val
* var11
/* : MClassDef */;
168 val
* var_mclassdef
/* var mclassdef: MClassDef */;
169 val
* var13
/* : MClassType */;
170 val
* var15
/* : MClassType */;
171 val
* var17
/* : MClass */;
172 val
* var19
/* : MClass */;
173 val
* var_mclass
/* var mclass: MClass */;
174 val
* var20
/* : Variable */;
176 val
* var21
/* : String */;
177 char* var22
/* : NativeString */;
178 val
* var23
/* : String */;
179 val
* var_selfvariable
/* var selfvariable: Variable */;
180 val
* var25
/* : MClassType */;
181 val
* var27
/* : MClassType */;
182 val
* var29
/* : MProperty */;
183 val
* var31
/* : MProperty */;
184 val
* var_mprop
/* var mprop: MProperty */;
185 short int var32
/* : Bool */;
186 short int var33
/* : Bool */;
189 short int var_
/* var : Bool */;
190 short int var34
/* : Bool */;
191 short int var36
/* : Bool */;
193 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__typing___nitc__typing__TypeVisitor___core__kernel__Object__init
]))(self
); /* init on <self:TypeVisitor>*/
196 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:TypeVisitor> */
197 var2
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
203 if (var_mpropdef
== NULL
) {
204 var3
= 0; /* is null */
206 var3
= 1; /* arg is null and recv is not */
209 { /* Inline kernel#Object#!= (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MPropDef> */
210 var_other
= ((val
*)NULL
);
212 var6
= ((short int(*)(val
* self
, val
* p0
))(var_mpropdef
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_mpropdef
, var_other
); /* == on <var_mpropdef:nullable MPropDef(MPropDef)>*/
223 { /* Inline typing#TypeVisitor#mpropdef= (self,var_mpropdef) on <self:TypeVisitor> */
224 self
->attrs
[COLOR_nitc__typing__TypeVisitor___mpropdef
].val
= var_mpropdef
; /* _mpropdef on <self:TypeVisitor> */
229 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
230 var11
= var_mpropdef
->attrs
[COLOR_nitc__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MPropDef(MPropDef)> */
231 if (unlikely(var11
== NULL
)) {
232 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
233 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2227);
240 var_mclassdef
= var9
;
242 { /* Inline typing#TypeVisitor#mclassdef= (self,var_mclassdef) on <self:TypeVisitor> */
243 self
->attrs
[COLOR_nitc__typing__TypeVisitor___mclassdef
].val
= var_mclassdef
; /* _mclassdef on <self:TypeVisitor> */
248 { /* Inline model#MClassDef#bound_mtype (var_mclassdef) on <var_mclassdef:MClassDef> */
249 var15
= var_mclassdef
->attrs
[COLOR_nitc__model__MClassDef___bound_mtype
].val
; /* _bound_mtype on <var_mclassdef:MClassDef> */
250 if (unlikely(var15
== NULL
)) {
251 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _bound_mtype");
252 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 579);
260 { /* Inline typing#TypeVisitor#anchor= (self,var13) on <self:TypeVisitor> */
261 self
->attrs
[COLOR_nitc__typing__TypeVisitor___anchor
].val
= var13
; /* _anchor on <self:TypeVisitor> */
266 { /* Inline model#MClassDef#mclass (var_mclassdef) on <var_mclassdef:MClassDef> */
267 var19
= var_mclassdef
->attrs
[COLOR_nitc__model__MClassDef___mclass
].val
; /* _mclass on <var_mclassdef:MClassDef> */
268 if (unlikely(var19
== NULL
)) {
269 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass");
270 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 576);
278 var20
= NEW_nitc__Variable(&type_nitc__Variable
);
279 if (likely(varonce
!=NULL
)) {
283 var23
= core__flat___NativeString___to_s_full(var22
, 4l, 4l);
288 ((void(*)(val
* self
, val
* p0
))(var20
->class->vft
[COLOR_nitc__scope__Variable__name_61d
]))(var20
, var21
); /* name= on <var20:Variable>*/
291 ((void(*)(val
* self
))(var20
->class->vft
[COLOR_core__kernel__Object__init
]))(var20
); /* init on <var20:Variable>*/
293 var_selfvariable
= var20
;
295 { /* Inline typing#TypeVisitor#selfvariable= (self,var_selfvariable) on <self:TypeVisitor> */
296 self
->attrs
[COLOR_nitc__typing__TypeVisitor___selfvariable
].val
= var_selfvariable
; /* _selfvariable on <self:TypeVisitor> */
301 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:MClass> */
302 var27
= var_mclass
->attrs
[COLOR_nitc__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:MClass> */
303 if (unlikely(var27
== NULL
)) {
304 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
305 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 507);
313 { /* Inline typing#Variable#declared_type= (var_selfvariable,var25) on <var_selfvariable:Variable> */
314 var_selfvariable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
= var25
; /* _declared_type on <var_selfvariable:Variable> */
319 { /* Inline model#MPropDef#mproperty (var_mpropdef) on <var_mpropdef:nullable MPropDef(MPropDef)> */
320 var31
= var_mpropdef
->attrs
[COLOR_nitc__model__MPropDef___mproperty
].val
; /* _mproperty on <var_mpropdef:nullable MPropDef(MPropDef)> */
321 if (unlikely(var31
== NULL
)) {
322 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
323 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2230);
331 /* <var_mprop:MProperty> isa MMethod */
332 cltype
= type_nitc__MMethod
.color
;
333 idtype
= type_nitc__MMethod
.id
;
334 if(cltype
>= var_mprop
->type
->table_size
) {
337 var33
= var_mprop
->type
->type_table
[cltype
] == idtype
;
342 { /* Inline model#MMethod#is_new (var_mprop) on <var_mprop:MProperty(MMethod)> */
343 var36
= var_mprop
->attrs
[COLOR_nitc__model__MMethod___is_new
].s
; /* _is_new on <var_mprop:MProperty(MMethod)> */
354 { /* Inline typing#TypeVisitor#is_toplevel_context= (self,1) on <self:TypeVisitor> */
355 self
->attrs
[COLOR_nitc__typing__TypeVisitor___is_toplevel_context
].s
= 1; /* _is_toplevel_context on <self:TypeVisitor> */
365 /* method typing#TypeVisitor#anchor_to for (self: TypeVisitor, MType): MType */
366 val
* nitc__typing___nitc__typing__TypeVisitor___anchor_to(val
* self
, val
* p0
) {
367 val
* var
/* : MType */;
368 val
* var_mtype
/* var mtype: MType */;
369 val
* var1
/* : nullable MClassType */;
370 val
* var3
/* : nullable MClassType */;
371 val
* var_anchor
/* var anchor: nullable MClassType */;
372 short int var4
/* : Bool */;
373 short int var5
/* : Bool */;
374 val
* var_other
/* var other: nullable Object */;
375 short int var7
/* : Bool */;
376 short int var9
/* : Bool */;
377 short int var10
/* : Bool */;
378 short int var11
/* : Bool */;
379 val
* var12
/* : MModule */;
380 val
* var14
/* : MModule */;
381 val
* var15
/* : MType */;
384 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
385 var3
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
391 if (var_anchor
== NULL
) {
392 var4
= 1; /* is null */
394 var4
= 0; /* arg is null but recv is not */
397 { /* Inline kernel#Object#== (var_anchor,((val*)NULL)) on <var_anchor:nullable MClassType> */
398 var_other
= ((val
*)NULL
);
400 { /* Inline kernel#Object#is_same_instance (var_anchor,var_other) on <var_anchor:nullable MClassType(MClassType)> */
401 var9
= var_anchor
== var_other
;
415 var10
= ((short int(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model__MType__need_anchor
]))(var_mtype
); /* need_anchor on <var_mtype:MType>*/
418 if (unlikely(!var11
)) {
419 PRINT_ERROR("Runtime error: %s", "Assert failed");
420 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 86);
428 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
429 var14
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
430 if (unlikely(var14
== NULL
)) {
431 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
432 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
440 var15
= ((val
*(*)(val
* self
, val
* p0
, val
* p1
))(var_mtype
->class->vft
[COLOR_nitc__model__MType__anchor_to
]))(var_mtype
, var12
, var_anchor
); /* anchor_to on <var_mtype:MType>*/
447 /* method typing#TypeVisitor#is_subtype for (self: TypeVisitor, MType, MType): Bool */
448 short int nitc__typing___nitc__typing__TypeVisitor___is_subtype(val
* self
, val
* p0
, val
* p1
) {
449 short int var
/* : Bool */;
450 val
* var_sub
/* var sub: MType */;
451 val
* var_sup
/* var sup: MType */;
452 val
* var1
/* : MModule */;
453 val
* var3
/* : MModule */;
454 val
* var4
/* : nullable MClassType */;
455 val
* var6
/* : nullable MClassType */;
456 short int var7
/* : Bool */;
460 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
461 var3
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
462 if (unlikely(var3
== NULL
)) {
463 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
464 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
472 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
473 var6
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
479 var7
= nitc___nitc__MType___is_subtype(var_sub
, var1
, var4
, var_sup
);
486 /* method typing#TypeVisitor#resolve_for for (self: TypeVisitor, MType, MType, Bool): MType */
487 val
* nitc__typing___nitc__typing__TypeVisitor___resolve_for(val
* self
, val
* p0
, val
* p1
, short int p2
) {
488 val
* var
/* : MType */;
489 val
* var_mtype
/* var mtype: MType */;
490 val
* var_subtype
/* var subtype: MType */;
491 short int var_for_self
/* var for_self: Bool */;
492 val
* var1
/* : nullable MClassType */;
493 val
* var3
/* : nullable MClassType */;
494 val
* var4
/* : MModule */;
495 val
* var6
/* : MModule */;
496 short int var7
/* : Bool */;
497 val
* var8
/* : MType */;
498 val
* var_res
/* var res: MType */;
503 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
504 var3
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
510 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
511 var6
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
512 if (unlikely(var6
== NULL
)) {
513 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
514 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
521 var7
= !var_for_self
;
523 var8
= ((val
*(*)(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
))(var_mtype
->class->vft
[COLOR_nitc__model__MType__resolve_for
]))(var_mtype
, var_subtype
, var1
, var4
, var7
); /* resolve_for on <var_mtype:MType>*/
531 /* method typing#TypeVisitor#check_subtype for (self: TypeVisitor, ANode, MType, MType, Bool): nullable MType */
532 val
* nitc__typing___nitc__typing__TypeVisitor___check_subtype(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
533 val
* var
/* : nullable MType */;
534 val
* var_node
/* var node: ANode */;
535 val
* var_sub
/* var sub: MType */;
536 val
* var_sup
/* var sup: MType */;
537 short int var_autocast
/* var autocast: Bool */;
538 short int var1
/* : Bool */;
539 short int var2
/* : Bool */;
540 short int var_
/* var : Bool */;
541 val
* var3
/* : MType */;
542 short int var4
/* : Bool */;
543 short int var5
/* : Bool */;
546 short int var6
/* : Bool */;
547 val
* var7
/* : MType */;
548 val
* var_u
/* var u: MType */;
549 val
* var8
/* : ModelBuilder */;
550 val
* var10
/* : ModelBuilder */;
551 val
* var11
/* : NativeArray[String] */;
553 static val
* varonce12
;
554 val
* var13
/* : String */;
555 char* var14
/* : NativeString */;
556 val
* var15
/* : String */;
557 static val
* varonce16
;
558 val
* var17
/* : String */;
559 char* var18
/* : NativeString */;
560 val
* var19
/* : String */;
561 static val
* varonce20
;
562 val
* var21
/* : String */;
563 char* var22
/* : NativeString */;
564 val
* var23
/* : String */;
565 static val
* varonce24
;
566 val
* var25
/* : String */;
567 char* var26
/* : NativeString */;
568 val
* var27
/* : String */;
569 val
* var28
/* : String */;
570 val
* var29
/* : String */;
571 val
* var30
/* : String */;
572 val
* var31
/* : String */;
573 val
* var32
/* : ModelBuilder */;
574 val
* var34
/* : ModelBuilder */;
575 val
* var36
/* : NativeArray[String] */;
576 static val
* varonce35
;
577 static val
* varonce37
;
578 val
* var38
/* : String */;
579 char* var39
/* : NativeString */;
580 val
* var40
/* : String */;
581 static val
* varonce41
;
582 val
* var42
/* : String */;
583 char* var43
/* : NativeString */;
584 val
* var44
/* : String */;
585 static val
* varonce45
;
586 val
* var46
/* : String */;
587 char* var47
/* : NativeString */;
588 val
* var48
/* : String */;
589 val
* var49
/* : String */;
590 val
* var50
/* : String */;
591 val
* var51
/* : String */;
597 var1
= nitc__typing___nitc__typing__TypeVisitor___is_subtype(self
, var_sub
, var_sup
);
607 var3
= nitc__typing___nitc__typing__TypeVisitor___anchor_to(self
, var_sup
);
610 var4
= nitc__typing___nitc__typing__TypeVisitor___is_subtype(self
, var_sub
, var3
);
621 /* <var_sup:MType> isa MBottomType */
622 cltype
= type_nitc__MBottomType
.color
;
623 idtype
= type_nitc__MBottomType
.id
;
624 if(cltype
>= var_sup
->type
->table_size
) {
627 var5
= var_sup
->type
->type_table
[cltype
] == idtype
;
635 var6
= ((short int(*)(val
* self
))(var_sub
->class->vft
[COLOR_nitc__model__MType__need_anchor
]))(var_sub
); /* need_anchor on <var_sub:MType>*/
639 var7
= nitc__typing___nitc__typing__TypeVisitor___anchor_to(self
, var_sub
);
643 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
644 var10
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
645 if (unlikely(var10
== NULL
)) {
646 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
647 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
654 if (unlikely(varonce
==NULL
)) {
655 var11
= NEW_core__NativeArray(7l, &type_core__NativeArray__core__String
);
656 if (likely(varonce12
!=NULL
)) {
659 var14
= "Type Error: expected `";
660 var15
= core__flat___NativeString___to_s_full(var14
, 22l, 22l);
664 ((struct instance_core__NativeArray
*)var11
)->values
[0]=var13
;
665 if (likely(varonce16
!=NULL
)) {
669 var19
= core__flat___NativeString___to_s_full(var18
, 8l, 8l);
673 ((struct instance_core__NativeArray
*)var11
)->values
[2]=var17
;
674 if (likely(varonce20
!=NULL
)) {
678 var23
= core__flat___NativeString___to_s_full(var22
, 2l, 2l);
682 ((struct instance_core__NativeArray
*)var11
)->values
[4]=var21
;
683 if (likely(varonce24
!=NULL
)) {
687 var27
= core__flat___NativeString___to_s_full(var26
, 2l, 2l);
691 ((struct instance_core__NativeArray
*)var11
)->values
[6]=var25
;
697 var28
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_sup
); /* to_s on <var_sup:MType>*/
699 ((struct instance_core__NativeArray
*)var11
)->values
[1]=var28
;
701 var29
= ((val
*(*)(val
* self
))(var_sub
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_sub
); /* to_s on <var_sub:MType>*/
703 ((struct instance_core__NativeArray
*)var11
)->values
[3]=var29
;
705 var30
= ((val
*(*)(val
* self
))(var_u
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_u
); /* to_s on <var_u:MType>*/
707 ((struct instance_core__NativeArray
*)var11
)->values
[5]=var30
;
709 var31
= ((val
*(*)(val
* self
))(var11
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var11
); /* native_to_s on <var11:NativeArray[String]>*/
713 nitc___nitc__ModelBuilder___error(var8
, var_node
, var31
); /* Direct call modelbuilder_base#ModelBuilder#error on <var8:ModelBuilder>*/
717 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
718 var34
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
719 if (unlikely(var34
== NULL
)) {
720 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
721 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
728 if (unlikely(varonce35
==NULL
)) {
729 var36
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
730 if (likely(varonce37
!=NULL
)) {
733 var39
= "Type Error: expected `";
734 var40
= core__flat___NativeString___to_s_full(var39
, 22l, 22l);
738 ((struct instance_core__NativeArray
*)var36
)->values
[0]=var38
;
739 if (likely(varonce41
!=NULL
)) {
743 var44
= core__flat___NativeString___to_s_full(var43
, 8l, 8l);
747 ((struct instance_core__NativeArray
*)var36
)->values
[2]=var42
;
748 if (likely(varonce45
!=NULL
)) {
752 var48
= core__flat___NativeString___to_s_full(var47
, 2l, 2l);
756 ((struct instance_core__NativeArray
*)var36
)->values
[4]=var46
;
762 var49
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_sup
); /* to_s on <var_sup:MType>*/
764 ((struct instance_core__NativeArray
*)var36
)->values
[1]=var49
;
766 var50
= ((val
*(*)(val
* self
))(var_sub
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_sub
); /* to_s on <var_sub:MType>*/
768 ((struct instance_core__NativeArray
*)var36
)->values
[3]=var50
;
770 var51
= ((val
*(*)(val
* self
))(var36
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var36
); /* native_to_s on <var36:NativeArray[String]>*/
774 nitc___nitc__ModelBuilder___error(var32
, var_node
, var51
); /* Direct call modelbuilder_base#ModelBuilder#error on <var32:ModelBuilder>*/
782 /* method typing#TypeVisitor#visit_stmt for (self: TypeVisitor, nullable AExpr) */
783 void nitc__typing___nitc__typing__TypeVisitor___visit_stmt(val
* self
, val
* p0
) {
784 val
* var_nexpr
/* var nexpr: nullable AExpr */;
785 short int var
/* : Bool */;
786 short int var1
/* : Bool */;
787 val
* var_other
/* var other: nullable Object */;
788 short int var3
/* : Bool */;
789 short int var5
/* : Bool */;
791 if (var_nexpr
== NULL
) {
792 var
= 1; /* is null */
794 var
= 0; /* arg is null but recv is not */
797 { /* Inline kernel#Object#== (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
798 var_other
= ((val
*)NULL
);
800 { /* Inline kernel#Object#is_same_instance (var_nexpr,var_other) on <var_nexpr:nullable AExpr(AExpr)> */
801 var5
= var_nexpr
== var_other
;
818 ((void(*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_nitc__typing__AExpr__accept_typing
]))(var_nexpr
, self
); /* accept_typing on <var_nexpr:nullable AExpr(AExpr)>*/
822 /* method typing#TypeVisitor#visit_expr for (self: TypeVisitor, AExpr): nullable MType */
823 val
* nitc__typing___nitc__typing__TypeVisitor___visit_expr(val
* self
, val
* p0
) {
824 val
* var
/* : nullable MType */;
825 val
* var_nexpr
/* var nexpr: AExpr */;
826 val
* var1
/* : nullable MType */;
827 val
* var_mtype
/* var mtype: nullable MType */;
828 short int var2
/* : Bool */;
829 short int var3
/* : Bool */;
830 val
* var_other
/* var other: nullable Object */;
831 short int var5
/* : Bool */;
832 short int var6
/* : Bool */;
833 short int var7
/* : Bool */;
834 short int var9
/* : Bool */;
835 short int var10
/* : Bool */;
836 val
* var11
/* : ModelBuilder */;
837 val
* var13
/* : ModelBuilder */;
838 val
* var14
/* : ToolContext */;
839 val
* var16
/* : ToolContext */;
840 long var17
/* : Int */;
841 long var19
/* : Int */;
842 short int var20
/* : Bool */;
843 short int var22
/* : Bool */;
846 const char* var_class_name
;
847 short int var23
/* : Bool */;
848 short int var24
/* : Bool */;
849 val
* var25
/* : ModelBuilder */;
850 val
* var27
/* : ModelBuilder */;
851 val
* var28
/* : ToolContext */;
852 val
* var30
/* : ToolContext */;
853 long var31
/* : Int */;
854 long var33
/* : Int */;
855 short int var34
/* : Bool */;
856 short int var36
/* : Bool */;
859 const char* var_class_name39
;
860 short int var40
/* : Bool */;
862 val
* var41
/* : String */;
863 char* var42
/* : NativeString */;
864 val
* var43
/* : String */;
865 static val
* varonce44
;
866 val
* var45
/* : String */;
867 char* var46
/* : NativeString */;
868 val
* var47
/* : String */;
871 ((void(*)(val
* self
, val
* p0
))(var_nexpr
->class->vft
[COLOR_nitc__typing__AExpr__accept_typing
]))(var_nexpr
, self
); /* accept_typing on <var_nexpr:AExpr>*/
874 var1
= ((val
*(*)(val
* self
))(var_nexpr
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(var_nexpr
); /* mtype on <var_nexpr:AExpr>*/
877 if (var_mtype
== NULL
) {
878 var2
= 0; /* is null */
880 var2
= 1; /* arg is null and recv is not */
883 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
884 var_other
= ((val
*)NULL
);
886 var5
= ((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)>*/
901 { /* Inline typing#AExpr#is_typed (var_nexpr) on <var_nexpr:AExpr> */
902 var9
= var_nexpr
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
; /* _is_typed on <var_nexpr:AExpr> */
910 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
911 var13
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
912 if (unlikely(var13
== NULL
)) {
913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
914 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
922 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var11) on <var11:ModelBuilder> */
923 var16
= var11
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var11:ModelBuilder> */
924 if (unlikely(var16
== NULL
)) {
925 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
926 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
934 { /* Inline toolcontext#ToolContext#error_count (var14) on <var14:ToolContext> */
935 var19
= var14
->attrs
[COLOR_nitc__toolcontext__ToolContext___error_count
].l
; /* _error_count on <var14:ToolContext> */
941 { /* Inline kernel#Int#> (var17,0l) on <var17:Int> */
942 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
943 /* <0l:Int> isa OTHER */
944 var22
= 1; /* easy <0l:Int> isa OTHER*/
945 if (unlikely(!var22
)) {
946 var_class_name
= type_core__Int
.name
;
947 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
948 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
960 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
961 var27
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
962 if (unlikely(var27
== NULL
)) {
963 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
964 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
972 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var25) on <var25:ModelBuilder> */
973 var30
= var25
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var25:ModelBuilder> */
974 if (unlikely(var30
== NULL
)) {
975 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
976 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
984 { /* Inline toolcontext#ToolContext#verbose_level (var28) on <var28:ToolContext> */
985 var33
= var28
->attrs
[COLOR_nitc__toolcontext__ToolContext___verbose_level
].l
; /* _verbose_level on <var28:ToolContext> */
991 { /* Inline kernel#Int#> (var31,1l) on <var31:Int> */
992 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
993 /* <1l:Int> isa OTHER */
994 var36
= 1; /* easy <1l:Int> isa OTHER*/
995 if (unlikely(!var36
)) {
996 var_class_name39
= type_core__Int
.name
;
997 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name39
);
998 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
1004 RET_LABEL35
:(void)0;
1008 if (likely(varonce
!=NULL
)) {
1011 var42
= "No return type but no error.";
1012 var43
= core__flat___NativeString___to_s_full(var42
, 28l, 28l);
1017 nitc___nitc__ANode___debug(var_nexpr
, var41
); /* Direct call parser_nodes#ANode#debug on <var_nexpr:AExpr>*/
1027 if (likely(varonce44
!=NULL
)) {
1030 var46
= "Error: expected an expression.";
1031 var47
= core__flat___NativeString___to_s_full(var46
, 30l, 30l);
1036 nitc__typing___nitc__typing__TypeVisitor___error(self
, var_nexpr
, var45
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
1043 /* method typing#TypeVisitor#visit_expr_subtype for (self: TypeVisitor, AExpr, nullable MType): nullable MType */
1044 val
* nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(val
* self
, val
* p0
, val
* p1
) {
1045 val
* var
/* : nullable MType */;
1046 val
* var_nexpr
/* var nexpr: AExpr */;
1047 val
* var_sup
/* var sup: nullable MType */;
1048 val
* var1
/* : nullable MType */;
1049 val
* var_sub
/* var sub: nullable MType */;
1050 short int var2
/* : Bool */;
1051 short int var3
/* : Bool */;
1052 val
* var_other
/* var other: nullable Object */;
1053 short int var5
/* : Bool */;
1054 short int var7
/* : Bool */;
1055 short int var8
/* : Bool */;
1056 short int var9
/* : Bool */;
1057 short int var11
/* : Bool */;
1058 short int var13
/* : Bool */;
1059 val
* var14
/* : nullable MType */;
1060 val
* var_res
/* var res: nullable MType */;
1061 short int var15
/* : Bool */;
1062 short int var16
/* : Bool */;
1063 val
* var_other18
/* var other: nullable Object */;
1064 short int var19
/* : Bool */;
1065 short int var20
/* : Bool */;
1069 var1
= nitc__typing___nitc__typing__TypeVisitor___visit_expr(self
, var_nexpr
);
1072 if (var_sub
== NULL
) {
1073 var2
= 1; /* is null */
1075 var2
= 0; /* arg is null but recv is not */
1078 { /* Inline kernel#Object#== (var_sub,((val*)NULL)) on <var_sub:nullable MType> */
1079 var_other
= ((val
*)NULL
);
1081 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
1082 var7
= var_sub
== var_other
;
1099 if (var_sup
== NULL
) {
1100 var8
= 1; /* is null */
1102 var8
= 0; /* arg is null but recv is not */
1105 { /* Inline kernel#Object#== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
1106 var_other
= ((val
*)NULL
);
1108 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1109 var13
= var_sup
== var_other
;
1112 RET_LABEL12
:(void)0;
1117 RET_LABEL10
:(void)0;
1127 var14
= nitc__typing___nitc__typing__TypeVisitor___check_subtype(self
, var_nexpr
, var_sub
, var_sup
, 1);
1130 if (var_res
== NULL
) {
1131 var15
= 1; /* <var_sub:nullable MType(MType)> cannot be null */
1133 { /* Inline kernel#Object#!= (var_res,var_sub) on <var_res:nullable MType> */
1134 var_other18
= var_sub
;
1136 var19
= ((short int(*)(val
* self
, val
* p0
))(var_res
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_res
, var_other18
); /* == on <var_res:nullable MType(MType)>*/
1141 RET_LABEL17
:(void)0;
1147 { /* Inline typing#AExpr#implicit_cast_to= (var_nexpr,var_res) on <var_nexpr:AExpr> */
1148 var_nexpr
->attrs
[COLOR_nitc__typing__AExpr___implicit_cast_to
].val
= var_res
; /* _implicit_cast_to on <var_nexpr:AExpr> */
1149 RET_LABEL21
:(void)0;
1159 /* method typing#TypeVisitor#visit_expr_bool for (self: TypeVisitor, AExpr): nullable MType */
1160 val
* nitc__typing___nitc__typing__TypeVisitor___visit_expr_bool(val
* self
, val
* p0
) {
1161 val
* var
/* : nullable MType */;
1162 val
* var_nexpr
/* var nexpr: AExpr */;
1163 val
* var1
/* : nullable MType */;
1164 val
* var2
/* : nullable MType */;
1167 var1
= nitc__typing___nitc__typing__TypeVisitor___type_bool(self
, var_nexpr
);
1170 var2
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(self
, var_nexpr
, var1
);
1177 /* method typing#TypeVisitor#check_expr_cast for (self: TypeVisitor, ANode, AExpr, AType): nullable MType */
1178 val
* nitc__typing___nitc__typing__TypeVisitor___check_expr_cast(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
1179 val
* var
/* : nullable MType */;
1180 val
* var_node
/* var node: ANode */;
1181 val
* var_nexpr
/* var nexpr: AExpr */;
1182 val
* var_ntype
/* var ntype: AType */;
1183 val
* var1
/* : nullable MType */;
1184 val
* var_sub
/* var sub: nullable MType */;
1185 short int var2
/* : Bool */;
1186 short int var3
/* : Bool */;
1187 val
* var_other
/* var other: nullable Object */;
1188 short int var5
/* : Bool */;
1189 short int var7
/* : Bool */;
1190 val
* var8
/* : nullable MType */;
1191 val
* var10
/* : nullable MType */;
1192 val
* var_sup
/* var sup: nullable MType */;
1193 short int var11
/* : Bool */;
1194 short int var12
/* : Bool */;
1195 short int var14
/* : Bool */;
1196 short int var16
/* : Bool */;
1197 short int var17
/* : Bool */;
1198 short int var19
/* : Bool */;
1199 short int var21
/* : Bool */;
1200 val
* var22
/* : ModelBuilder */;
1201 val
* var24
/* : ModelBuilder */;
1202 static val
* varonce
;
1203 val
* var25
/* : String */;
1204 char* var26
/* : NativeString */;
1205 val
* var27
/* : String */;
1206 val
* var29
/* : NativeArray[String] */;
1207 static val
* varonce28
;
1208 static val
* varonce30
;
1209 val
* var31
/* : String */;
1210 char* var32
/* : NativeString */;
1211 val
* var33
/* : String */;
1212 static val
* varonce34
;
1213 val
* var35
/* : String */;
1214 char* var36
/* : NativeString */;
1215 val
* var37
/* : String */;
1216 val
* var38
/* : String */;
1217 val
* var39
/* : String */;
1218 short int var40
/* : Bool */;
1219 val
* var41
/* : ModelBuilder */;
1220 val
* var43
/* : ModelBuilder */;
1221 static val
* varonce44
;
1222 val
* var45
/* : String */;
1223 char* var46
/* : NativeString */;
1224 val
* var47
/* : String */;
1225 val
* var49
/* : NativeArray[String] */;
1226 static val
* varonce48
;
1227 static val
* varonce50
;
1228 val
* var51
/* : String */;
1229 char* var52
/* : NativeString */;
1230 val
* var53
/* : String */;
1231 static val
* varonce54
;
1232 val
* var55
/* : String */;
1233 char* var56
/* : NativeString */;
1234 val
* var57
/* : String */;
1235 static val
* varonce58
;
1236 val
* var59
/* : String */;
1237 char* var60
/* : NativeString */;
1238 val
* var61
/* : String */;
1239 val
* var62
/* : String */;
1240 val
* var63
/* : String */;
1241 val
* var64
/* : String */;
1246 var1
= ((val
*(*)(val
* self
))(var_nexpr
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(var_nexpr
); /* mtype on <var_nexpr:AExpr>*/
1249 if (var_sub
== NULL
) {
1250 var2
= 1; /* is null */
1252 var2
= 0; /* arg is null but recv is not */
1255 { /* Inline kernel#Object#== (var_sub,((val*)NULL)) on <var_sub:nullable MType> */
1256 var_other
= ((val
*)NULL
);
1258 { /* Inline kernel#Object#is_same_instance (var_sub,var_other) on <var_sub:nullable MType(MType)> */
1259 var7
= var_sub
== var_other
;
1277 { /* Inline modelbuilder_base#AType#mtype (var_ntype) on <var_ntype:AType> */
1278 var10
= var_ntype
->attrs
[COLOR_nitc__modelbuilder_base__AType___mtype
].val
; /* _mtype on <var_ntype:AType> */
1284 if (var_sup
== NULL
) {
1285 var11
= 1; /* is null */
1287 var11
= 0; /* arg is null but recv is not */
1290 { /* Inline kernel#Object#== (var_sup,((val*)NULL)) on <var_sup:nullable MType> */
1291 var_other
= ((val
*)NULL
);
1293 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1294 var16
= var_sup
== var_other
;
1297 RET_LABEL15
:(void)0;
1302 RET_LABEL13
:(void)0;
1312 { /* Inline kernel#Object#== (var_sup,var_sub) on <var_sup:nullable MType(MType)> */
1313 var_other
= var_sub
;
1315 { /* Inline kernel#Object#is_same_instance (var_sup,var_other) on <var_sup:nullable MType(MType)> */
1316 var21
= var_sup
== var_other
;
1319 RET_LABEL20
:(void)0;
1324 RET_LABEL18
:(void)0;
1329 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1330 var24
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1331 if (unlikely(var24
== NULL
)) {
1332 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1333 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
1337 RET_LABEL23
:(void)0;
1340 if (likely(varonce
!=NULL
)) {
1343 var26
= "useless-type-test";
1344 var27
= core__flat___NativeString___to_s_full(var26
, 17l, 17l);
1348 if (unlikely(varonce28
==NULL
)) {
1349 var29
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1350 if (likely(varonce30
!=NULL
)) {
1353 var32
= "Warning: expression is already a `";
1354 var33
= core__flat___NativeString___to_s_full(var32
, 34l, 34l);
1358 ((struct instance_core__NativeArray
*)var29
)->values
[0]=var31
;
1359 if (likely(varonce34
!=NULL
)) {
1363 var37
= core__flat___NativeString___to_s_full(var36
, 2l, 2l);
1367 ((struct instance_core__NativeArray
*)var29
)->values
[2]=var35
;
1373 var38
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_sup
); /* to_s on <var_sup:nullable MType(MType)>*/
1375 ((struct instance_core__NativeArray
*)var29
)->values
[1]=var38
;
1377 var39
= ((val
*(*)(val
* self
))(var29
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var29
); /* native_to_s on <var29:NativeArray[String]>*/
1381 nitc___nitc__ModelBuilder___warning(var22
, var_node
, var25
, var39
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var22:ModelBuilder>*/
1385 var40
= nitc__typing___nitc__typing__TypeVisitor___is_subtype(self
, var_sub
, var_sup
);
1389 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1390 var43
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1391 if (unlikely(var43
== NULL
)) {
1392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1393 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
1397 RET_LABEL42
:(void)0;
1400 if (likely(varonce44
!=NULL
)) {
1403 var46
= "useless-type-test";
1404 var47
= core__flat___NativeString___to_s_full(var46
, 17l, 17l);
1408 if (unlikely(varonce48
==NULL
)) {
1409 var49
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
1410 if (likely(varonce50
!=NULL
)) {
1413 var52
= "Warning: expression is already a `";
1414 var53
= core__flat___NativeString___to_s_full(var52
, 34l, 34l);
1418 ((struct instance_core__NativeArray
*)var49
)->values
[0]=var51
;
1419 if (likely(varonce54
!=NULL
)) {
1422 var56
= "` since it is a `";
1423 var57
= core__flat___NativeString___to_s_full(var56
, 17l, 17l);
1427 ((struct instance_core__NativeArray
*)var49
)->values
[2]=var55
;
1428 if (likely(varonce58
!=NULL
)) {
1432 var61
= core__flat___NativeString___to_s_full(var60
, 2l, 2l);
1436 ((struct instance_core__NativeArray
*)var49
)->values
[4]=var59
;
1442 var62
= ((val
*(*)(val
* self
))(var_sup
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_sup
); /* to_s on <var_sup:nullable MType(MType)>*/
1444 ((struct instance_core__NativeArray
*)var49
)->values
[1]=var62
;
1446 var63
= ((val
*(*)(val
* self
))(var_sub
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_sub
); /* to_s on <var_sub:nullable MType(MType)>*/
1448 ((struct instance_core__NativeArray
*)var49
)->values
[3]=var63
;
1450 var64
= ((val
*(*)(val
* self
))(var49
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var49
); /* native_to_s on <var49:NativeArray[String]>*/
1454 nitc___nitc__ModelBuilder___warning(var41
, var_node
, var45
, var64
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var41:ModelBuilder>*/
1464 /* method typing#TypeVisitor#can_be_null for (self: TypeVisitor, MType): Bool */
1465 short int nitc__typing___nitc__typing__TypeVisitor___can_be_null(val
* self
, val
* p0
) {
1466 short int var
/* : Bool */;
1467 val
* var_mtype
/* var mtype: MType */;
1468 short int var1
/* : Bool */;
1469 short int var2
/* : Bool */;
1472 short int var_
/* var : Bool */;
1473 short int var3
/* : Bool */;
1476 short int var6
/* : Bool */;
1479 val
* var9
/* : MType */;
1480 val
* var_x
/* var x: MType */;
1481 short int var10
/* : Bool */;
1482 short int var11
/* : Bool */;
1485 short int var_14
/* var : Bool */;
1486 short int var15
/* : Bool */;
1490 /* <var_mtype:MType> isa MNullableType */
1491 cltype
= type_nitc__MNullableType
.color
;
1492 idtype
= type_nitc__MNullableType
.id
;
1493 if(cltype
>= var_mtype
->type
->table_size
) {
1496 var2
= var_mtype
->type
->type_table
[cltype
] == idtype
;
1502 /* <var_mtype:MType> isa MNullType */
1503 cltype4
= type_nitc__MNullType
.color
;
1504 idtype5
= type_nitc__MNullType
.id
;
1505 if(cltype4
>= var_mtype
->type
->table_size
) {
1508 var3
= var_mtype
->type
->type_table
[cltype4
] == idtype5
;
1517 /* <var_mtype:MType> isa MFormalType */
1518 cltype7
= type_nitc__MFormalType
.color
;
1519 idtype8
= type_nitc__MFormalType
.id
;
1520 if(cltype7
>= var_mtype
->type
->table_size
) {
1523 var6
= var_mtype
->type
->type_table
[cltype7
] == idtype8
;
1527 var9
= nitc__typing___nitc__typing__TypeVisitor___anchor_to(self
, var_mtype
);
1530 /* <var_x:MType> isa MNullableType */
1531 cltype12
= type_nitc__MNullableType
.color
;
1532 idtype13
= type_nitc__MNullableType
.id
;
1533 if(cltype12
>= var_x
->type
->table_size
) {
1536 var11
= var_x
->type
->type_table
[cltype12
] == idtype13
;
1542 /* <var_x:MType> isa MNullType */
1543 cltype16
= type_nitc__MNullType
.color
;
1544 idtype17
= type_nitc__MNullType
.id
;
1545 if(cltype16
>= var_x
->type
->table_size
) {
1548 var15
= var_x
->type
->type_table
[cltype16
] == idtype17
;
1564 /* method typing#TypeVisitor#check_can_be_null for (self: TypeVisitor, ANode, MType): Bool */
1565 short int nitc__typing___nitc__typing__TypeVisitor___check_can_be_null(val
* self
, val
* p0
, val
* p1
) {
1566 short int var
/* : Bool */;
1567 val
* var_anode
/* var anode: ANode */;
1568 val
* var_mtype
/* var mtype: MType */;
1569 short int var1
/* : Bool */;
1572 val
* var2
/* : ModelBuilder */;
1573 val
* var4
/* : ModelBuilder */;
1574 static val
* varonce
;
1575 val
* var5
/* : String */;
1576 char* var6
/* : NativeString */;
1577 val
* var7
/* : String */;
1578 static val
* varonce8
;
1579 val
* var9
/* : String */;
1580 char* var10
/* : NativeString */;
1581 val
* var11
/* : String */;
1582 short int var12
/* : Bool */;
1583 short int var13
/* : Bool */;
1586 val
* var16
/* : MType */;
1587 val
* var_res
/* var res: MType */;
1588 val
* var17
/* : ModelBuilder */;
1589 val
* var19
/* : ModelBuilder */;
1590 static val
* varonce20
;
1591 val
* var21
/* : String */;
1592 char* var22
/* : NativeString */;
1593 val
* var23
/* : String */;
1594 val
* var25
/* : NativeArray[String] */;
1595 static val
* varonce24
;
1596 static val
* varonce26
;
1597 val
* var27
/* : String */;
1598 char* var28
/* : NativeString */;
1599 val
* var29
/* : String */;
1600 static val
* varonce30
;
1601 val
* var31
/* : String */;
1602 char* var32
/* : NativeString */;
1603 val
* var33
/* : String */;
1604 static val
* varonce34
;
1605 val
* var35
/* : String */;
1606 char* var36
/* : NativeString */;
1607 val
* var37
/* : String */;
1608 val
* var38
/* : String */;
1609 val
* var39
/* : String */;
1610 val
* var40
/* : String */;
1611 val
* var41
/* : ModelBuilder */;
1612 val
* var43
/* : ModelBuilder */;
1613 static val
* varonce44
;
1614 val
* var45
/* : String */;
1615 char* var46
/* : NativeString */;
1616 val
* var47
/* : String */;
1617 val
* var49
/* : NativeArray[String] */;
1618 static val
* varonce48
;
1619 static val
* varonce50
;
1620 val
* var51
/* : String */;
1621 char* var52
/* : NativeString */;
1622 val
* var53
/* : String */;
1623 static val
* varonce54
;
1624 val
* var55
/* : String */;
1625 char* var56
/* : NativeString */;
1626 val
* var57
/* : String */;
1627 val
* var58
/* : String */;
1628 val
* var59
/* : String */;
1631 /* <var_mtype:MType> isa MNullType */
1632 cltype
= type_nitc__MNullType
.color
;
1633 idtype
= type_nitc__MNullType
.id
;
1634 if(cltype
>= var_mtype
->type
->table_size
) {
1637 var1
= var_mtype
->type
->type_table
[cltype
] == idtype
;
1641 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1642 var4
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1643 if (unlikely(var4
== NULL
)) {
1644 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1645 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
1652 if (likely(varonce
!=NULL
)) {
1655 var6
= "useless-null-test";
1656 var7
= core__flat___NativeString___to_s_full(var6
, 17l, 17l);
1660 if (likely(varonce8
!=NULL
)) {
1663 var10
= "Warning: expression is always `null`.";
1664 var11
= core__flat___NativeString___to_s_full(var10
, 37l, 37l);
1669 nitc___nitc__ModelBuilder___warning(var2
, var_anode
, var5
, var9
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var2:ModelBuilder>*/
1676 var12
= nitc__typing___nitc__typing__TypeVisitor___can_be_null(self
, var_mtype
);
1683 /* <var_mtype:MType> isa MFormalType */
1684 cltype14
= type_nitc__MFormalType
.color
;
1685 idtype15
= type_nitc__MFormalType
.id
;
1686 if(cltype14
>= var_mtype
->type
->table_size
) {
1689 var13
= var_mtype
->type
->type_table
[cltype14
] == idtype15
;
1693 var16
= nitc__typing___nitc__typing__TypeVisitor___anchor_to(self
, var_mtype
);
1697 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1698 var19
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1699 if (unlikely(var19
== NULL
)) {
1700 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1701 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
1705 RET_LABEL18
:(void)0;
1708 if (likely(varonce20
!=NULL
)) {
1711 var22
= "useless-null-test";
1712 var23
= core__flat___NativeString___to_s_full(var22
, 17l, 17l);
1716 if (unlikely(varonce24
==NULL
)) {
1717 var25
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
1718 if (likely(varonce26
!=NULL
)) {
1721 var28
= "Warning: expression is not null, since it is a `";
1722 var29
= core__flat___NativeString___to_s_full(var28
, 48l, 48l);
1726 ((struct instance_core__NativeArray
*)var25
)->values
[0]=var27
;
1727 if (likely(varonce30
!=NULL
)) {
1731 var33
= core__flat___NativeString___to_s_full(var32
, 2l, 2l);
1735 ((struct instance_core__NativeArray
*)var25
)->values
[2]=var31
;
1736 if (likely(varonce34
!=NULL
)) {
1740 var37
= core__flat___NativeString___to_s_full(var36
, 2l, 2l);
1744 ((struct instance_core__NativeArray
*)var25
)->values
[4]=var35
;
1750 var38
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType(MFormalType)>*/
1752 ((struct instance_core__NativeArray
*)var25
)->values
[1]=var38
;
1754 var39
= ((val
*(*)(val
* self
))(var_res
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_res
); /* to_s on <var_res:MType>*/
1756 ((struct instance_core__NativeArray
*)var25
)->values
[3]=var39
;
1758 var40
= ((val
*(*)(val
* self
))(var25
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var25
); /* native_to_s on <var25:NativeArray[String]>*/
1762 nitc___nitc__ModelBuilder___warning(var17
, var_anode
, var21
, var40
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var17:ModelBuilder>*/
1766 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
1767 var43
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
1768 if (unlikely(var43
== NULL
)) {
1769 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
1770 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
1774 RET_LABEL42
:(void)0;
1777 if (likely(varonce44
!=NULL
)) {
1780 var46
= "useless-null-test";
1781 var47
= core__flat___NativeString___to_s_full(var46
, 17l, 17l);
1785 if (unlikely(varonce48
==NULL
)) {
1786 var49
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
1787 if (likely(varonce50
!=NULL
)) {
1790 var52
= "Warning: expression is not null, since it is a `";
1791 var53
= core__flat___NativeString___to_s_full(var52
, 48l, 48l);
1795 ((struct instance_core__NativeArray
*)var49
)->values
[0]=var51
;
1796 if (likely(varonce54
!=NULL
)) {
1800 var57
= core__flat___NativeString___to_s_full(var56
, 2l, 2l);
1804 ((struct instance_core__NativeArray
*)var49
)->values
[2]=var55
;
1810 var58
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mtype
); /* to_s on <var_mtype:MType>*/
1812 ((struct instance_core__NativeArray
*)var49
)->values
[1]=var58
;
1814 var59
= ((val
*(*)(val
* self
))(var49
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var49
); /* native_to_s on <var49:NativeArray[String]>*/
1818 nitc___nitc__ModelBuilder___warning(var41
, var_anode
, var45
, var59
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var41:ModelBuilder>*/
1826 /* method typing#TypeVisitor#null_test for (self: TypeVisitor, ABinopExpr) */
1827 void nitc__typing___nitc__typing__TypeVisitor___null_test(val
* self
, val
* p0
) {
1828 val
* var_anode
/* var anode: ABinopExpr */;
1829 val
* var
/* : AExpr */;
1830 val
* var2
/* : AExpr */;
1831 val
* var3
/* : nullable MType */;
1832 val
* var_mtype
/* var mtype: nullable MType */;
1833 val
* var4
/* : AExpr */;
1834 val
* var6
/* : AExpr */;
1835 val
* var7
/* : nullable MType */;
1836 val
* var_mtype2
/* var mtype2: nullable MType */;
1837 short int var8
/* : Bool */;
1838 short int var9
/* : Bool */;
1839 short int var10
/* : Bool */;
1840 val
* var_other
/* var other: nullable Object */;
1841 short int var12
/* : Bool */;
1842 short int var14
/* : Bool */;
1843 short int var_
/* var : Bool */;
1844 short int var15
/* : Bool */;
1845 short int var16
/* : Bool */;
1846 short int var18
/* : Bool */;
1847 short int var20
/* : Bool */;
1848 short int var21
/* : Bool */;
1851 short int var22
/* : Bool */;
1852 short int var23
/* : Bool */;
1853 short int var24
/* : Bool */;
1854 short int var25
/* : Bool */;
1857 val
* var28
/* : MType */;
1858 val
* var29
/* : AExpr */;
1859 val
* var31
/* : AExpr */;
1860 val
* var32
/* : nullable Variable */;
1861 val
* var_variable
/* var variable: nullable Variable */;
1862 short int var33
/* : Bool */;
1863 short int var34
/* : Bool */;
1864 short int var36
/* : Bool */;
1865 short int var38
/* : Bool */;
1866 short int var39
/* : Bool */;
1869 val
* var42
/* : nullable FlowContext */;
1870 val
* var44
/* : nullable FlowContext */;
1871 val
* var45
/* : FlowContext */;
1872 val
* var47
/* : FlowContext */;
1873 val
* var48
/* : nullable FlowContext */;
1874 val
* var50
/* : nullable FlowContext */;
1875 val
* var51
/* : FlowContext */;
1876 val
* var53
/* : FlowContext */;
1877 short int var54
/* : Bool */;
1880 val
* var57
/* : nullable FlowContext */;
1881 val
* var59
/* : nullable FlowContext */;
1882 val
* var60
/* : FlowContext */;
1883 val
* var62
/* : FlowContext */;
1884 val
* var63
/* : nullable FlowContext */;
1885 val
* var65
/* : nullable FlowContext */;
1886 val
* var66
/* : FlowContext */;
1887 val
* var68
/* : FlowContext */;
1890 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
1891 var2
= var_anode
->attrs
[COLOR_nitc__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
1892 if (unlikely(var2
== NULL
)) {
1893 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
1894 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2022);
1902 var3
= ((val
*(*)(val
* self
))(var
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(var
); /* mtype on <var:AExpr>*/
1906 { /* Inline parser_nodes#ABinopExpr#n_expr2 (var_anode) on <var_anode:ABinopExpr> */
1907 var6
= var_anode
->attrs
[COLOR_nitc__parser_nodes__ABinopExpr___n_expr2
].val
; /* _n_expr2 on <var_anode:ABinopExpr> */
1908 if (unlikely(var6
== NULL
)) {
1909 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr2");
1910 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2033);
1918 var7
= ((val
*(*)(val
* self
))(var4
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(var4
); /* mtype on <var4:AExpr>*/
1921 if (var_mtype
== NULL
) {
1922 var9
= 1; /* is null */
1924 var9
= 0; /* arg is null but recv is not */
1927 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
1928 var_other
= ((val
*)NULL
);
1930 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
1931 var14
= var_mtype
== var_other
;
1934 RET_LABEL13
:(void)0;
1939 RET_LABEL11
:(void)0;
1947 if (var_mtype2
== NULL
) {
1948 var15
= 1; /* is null */
1950 var15
= 0; /* arg is null but recv is not */
1953 { /* Inline kernel#Object#== (var_mtype2,((val*)NULL)) on <var_mtype2:nullable MType> */
1954 var_other
= ((val
*)NULL
);
1956 { /* Inline kernel#Object#is_same_instance (var_mtype2,var_other) on <var_mtype2:nullable MType(MType)> */
1957 var20
= var_mtype2
== var_other
;
1960 RET_LABEL19
:(void)0;
1965 RET_LABEL17
:(void)0;
1975 /* <var_mtype2:nullable MType(MType)> isa MNullType */
1976 cltype
= type_nitc__MNullType
.color
;
1977 idtype
= type_nitc__MNullType
.id
;
1978 if(cltype
>= var_mtype2
->type
->table_size
) {
1981 var21
= var_mtype2
->type
->type_table
[cltype
] == idtype
;
1989 var23
= nitc__typing___nitc__typing__TypeVisitor___can_be_null(self
, var_mtype
);
1996 /* <var_mtype:nullable MType(MType)> isa MNullType */
1997 cltype26
= type_nitc__MNullType
.color
;
1998 idtype27
= type_nitc__MNullType
.id
;
1999 if(cltype26
>= var_mtype
->type
->table_size
) {
2002 var25
= var_mtype
->type
->type_table
[cltype26
] == idtype27
;
2005 var_mtype
= ((val
*)NULL
);
2008 var28
= ((val
*(*)(val
* self
))(var_mtype
->class->vft
[COLOR_nitc__model__MType__as_notnull
]))(var_mtype
); /* as_notnull on <var_mtype:nullable MType(MType)>*/
2013 { /* Inline parser_nodes#ASendExpr#n_expr (var_anode) on <var_anode:ABinopExpr> */
2014 var31
= var_anode
->attrs
[COLOR_nitc__parser_nodes__ASendExpr___n_expr
].val
; /* _n_expr on <var_anode:ABinopExpr> */
2015 if (unlikely(var31
== NULL
)) {
2016 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
2017 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2022);
2021 RET_LABEL30
:(void)0;
2025 var32
= ((val
*(*)(val
* self
))(var29
->class->vft
[COLOR_nitc__typing__AExpr__its_variable
]))(var29
); /* its_variable on <var29:AExpr>*/
2027 var_variable
= var32
;
2028 if (var_variable
== NULL
) {
2029 var33
= 1; /* is null */
2031 var33
= 0; /* arg is null but recv is not */
2034 { /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
2035 var_other
= ((val
*)NULL
);
2037 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
2038 var38
= var_variable
== var_other
;
2041 RET_LABEL37
:(void)0;
2046 RET_LABEL35
:(void)0;
2054 /* <var_anode:ABinopExpr> isa AEqExpr */
2055 cltype40
= type_nitc__AEqExpr
.color
;
2056 idtype41
= type_nitc__AEqExpr
.id
;
2057 if(cltype40
>= var_anode
->type
->table_size
) {
2060 var39
= var_anode
->type
->type_table
[cltype40
] == idtype41
;
2064 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
2065 var44
= var_anode
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
2067 RET_LABEL43
:(void)0;
2070 if (var42
== NULL
) {
2071 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2072 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 265);
2075 { /* Inline flow#FlowContext#when_true (var42) on <var42:nullable FlowContext> */
2076 if (unlikely(var42
== NULL
)) {
2077 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2078 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2081 var47
= var42
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var42:nullable FlowContext> */
2082 if (unlikely(var47
== NULL
)) {
2083 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2084 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2088 RET_LABEL46
:(void)0;
2092 nitc__typing___FlowContext___set_var(var45
, self
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var45:FlowContext>*/
2095 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(AEqExpr)> */
2096 var50
= var_anode
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(AEqExpr)> */
2098 RET_LABEL49
:(void)0;
2101 if (var48
== NULL
) {
2102 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2103 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 266);
2106 { /* Inline flow#FlowContext#when_false (var48) on <var48:nullable FlowContext> */
2107 if (unlikely(var48
== NULL
)) {
2108 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2109 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2112 var53
= var48
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var48:nullable FlowContext> */
2113 if (unlikely(var53
== NULL
)) {
2114 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2115 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2119 RET_LABEL52
:(void)0;
2123 nitc__typing___FlowContext___set_var(var51
, self
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var51:FlowContext>*/
2126 /* <var_anode:ABinopExpr> isa ANeExpr */
2127 cltype55
= type_nitc__ANeExpr
.color
;
2128 idtype56
= type_nitc__ANeExpr
.id
;
2129 if(cltype55
>= var_anode
->type
->table_size
) {
2132 var54
= var_anode
->type
->type_table
[cltype55
] == idtype56
;
2136 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
2137 var59
= var_anode
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
2139 RET_LABEL58
:(void)0;
2142 if (var57
== NULL
) {
2143 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2144 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 268);
2147 { /* Inline flow#FlowContext#when_false (var57) on <var57:nullable FlowContext> */
2148 if (unlikely(var57
== NULL
)) {
2149 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2150 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2153 var62
= var57
->attrs
[COLOR_nitc__flow__FlowContext___when_false
].val
; /* _when_false on <var57:nullable FlowContext> */
2154 if (unlikely(var62
== NULL
)) {
2155 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_false");
2156 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 228);
2160 RET_LABEL61
:(void)0;
2164 nitc__typing___FlowContext___set_var(var60
, self
, var_variable
, var_mtype2
); /* Direct call typing#FlowContext#set_var on <var60:FlowContext>*/
2167 { /* Inline flow#AExpr#after_flow_context (var_anode) on <var_anode:ABinopExpr(ANeExpr)> */
2168 var65
= var_anode
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_anode:ABinopExpr(ANeExpr)> */
2170 RET_LABEL64
:(void)0;
2173 if (var63
== NULL
) {
2174 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2175 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 269);
2178 { /* Inline flow#FlowContext#when_true (var63) on <var63:nullable FlowContext> */
2179 if (unlikely(var63
== NULL
)) {
2180 PRINT_ERROR("Runtime error: %s", "Receiver is null");
2181 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2184 var68
= var63
->attrs
[COLOR_nitc__flow__FlowContext___when_true
].val
; /* _when_true on <var63:nullable FlowContext> */
2185 if (unlikely(var68
== NULL
)) {
2186 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _when_true");
2187 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 225);
2191 RET_LABEL67
:(void)0;
2195 nitc__typing___FlowContext___set_var(var66
, self
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var66:FlowContext>*/
2198 PRINT_ERROR("Runtime error: %s", "Aborted");
2199 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 271);
2205 /* method typing#TypeVisitor#try_get_mproperty_by_name2 for (self: TypeVisitor, ANode, MType, String): nullable MProperty */
2206 val
* nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
2207 val
* var
/* : nullable MProperty */;
2208 val
* var_anode
/* var anode: ANode */;
2209 val
* var_mtype
/* var mtype: MType */;
2210 val
* var_name
/* var name: String */;
2211 val
* var1
/* : ModelBuilder */;
2212 val
* var3
/* : ModelBuilder */;
2213 val
* var4
/* : MModule */;
2214 val
* var6
/* : MModule */;
2215 val
* var7
/* : nullable MProperty */;
2220 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2221 var3
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2222 if (unlikely(var3
== NULL
)) {
2223 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2224 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
2232 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2233 var6
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2234 if (unlikely(var6
== NULL
)) {
2235 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2236 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
2244 var7
= nitc___nitc__ModelBuilder___try_get_mproperty_by_name2(var1
, var_anode
, var4
, var_mtype
, var_name
);
2251 /* method typing#TypeVisitor#resolve_mtype for (self: TypeVisitor, AType): nullable MType */
2252 val
* nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(val
* self
, val
* p0
) {
2253 val
* var
/* : nullable MType */;
2254 val
* var_node
/* var node: AType */;
2255 val
* var1
/* : ModelBuilder */;
2256 val
* var3
/* : ModelBuilder */;
2257 val
* var4
/* : MModule */;
2258 val
* var6
/* : MModule */;
2259 val
* var7
/* : nullable MClassDef */;
2260 val
* var9
/* : nullable MClassDef */;
2261 val
* var10
/* : nullable MType */;
2264 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2265 var3
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2266 if (unlikely(var3
== NULL
)) {
2267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2268 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
2276 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2277 var6
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2278 if (unlikely(var6
== NULL
)) {
2279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2280 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
2288 { /* Inline typing#TypeVisitor#mclassdef (self) on <self:TypeVisitor> */
2289 var9
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mclassdef
].val
; /* _mclassdef on <self:TypeVisitor> */
2295 var10
= nitc___nitc__ModelBuilder___resolve_mtype(var1
, var4
, var7
, var_node
);
2302 /* method typing#TypeVisitor#try_get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
2303 val
* nitc__typing___nitc__typing__TypeVisitor___try_get_mclass(val
* self
, val
* p0
, val
* p1
) {
2304 val
* var
/* : nullable MClass */;
2305 val
* var_node
/* var node: ANode */;
2306 val
* var_name
/* var name: String */;
2307 val
* var1
/* : ModelBuilder */;
2308 val
* var3
/* : ModelBuilder */;
2309 val
* var4
/* : MModule */;
2310 val
* var6
/* : MModule */;
2311 val
* var7
/* : nullable MClass */;
2312 val
* var_mclass
/* var mclass: nullable MClass */;
2316 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2317 var3
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2318 if (unlikely(var3
== NULL
)) {
2319 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2320 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
2328 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2329 var6
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2330 if (unlikely(var6
== NULL
)) {
2331 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2332 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
2340 var7
= nitc___nitc__ModelBuilder___try_get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2348 /* method typing#TypeVisitor#get_mclass for (self: TypeVisitor, ANode, String): nullable MClass */
2349 val
* nitc__typing___nitc__typing__TypeVisitor___get_mclass(val
* self
, val
* p0
, val
* p1
) {
2350 val
* var
/* : nullable MClass */;
2351 val
* var_node
/* var node: ANode */;
2352 val
* var_name
/* var name: String */;
2353 val
* var1
/* : ModelBuilder */;
2354 val
* var3
/* : ModelBuilder */;
2355 val
* var4
/* : MModule */;
2356 val
* var6
/* : MModule */;
2357 val
* var7
/* : nullable MClass */;
2358 val
* var_mclass
/* var mclass: nullable MClass */;
2362 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
2363 var3
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
2364 if (unlikely(var3
== NULL
)) {
2365 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
2366 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
2374 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
2375 var6
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
2376 if (unlikely(var6
== NULL
)) {
2377 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
2378 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
2386 var7
= nitc___nitc__ModelBuilder___get_mclass_by_name(var1
, var_node
, var4
, var_name
);
2394 /* method typing#TypeVisitor#type_bool for (self: TypeVisitor, ANode): nullable MType */
2395 val
* nitc__typing___nitc__typing__TypeVisitor___type_bool(val
* self
, val
* p0
) {
2396 val
* var
/* : nullable MType */;
2397 val
* var_node
/* var node: ANode */;
2398 static val
* varonce
;
2399 val
* var1
/* : String */;
2400 char* var2
/* : NativeString */;
2401 val
* var3
/* : String */;
2402 val
* var4
/* : nullable MClass */;
2403 val
* var_mclass
/* var mclass: nullable MClass */;
2404 short int var5
/* : Bool */;
2405 short int var6
/* : Bool */;
2406 val
* var_other
/* var other: nullable Object */;
2407 short int var8
/* : Bool */;
2408 short int var10
/* : Bool */;
2409 val
* var11
/* : MClassType */;
2410 val
* var13
/* : MClassType */;
2412 if (likely(varonce
!=NULL
)) {
2416 var3
= core__flat___NativeString___to_s_full(var2
, 4l, 4l);
2421 var4
= nitc__typing___nitc__typing__TypeVisitor___get_mclass(self
, var_node
, var1
);
2424 if (var_mclass
== NULL
) {
2425 var5
= 1; /* is null */
2427 var5
= 0; /* arg is null but recv is not */
2430 { /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
2431 var_other
= ((val
*)NULL
);
2433 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
2434 var10
= var_mclass
== var_other
;
2452 { /* Inline model#MClass#mclass_type (var_mclass) on <var_mclass:nullable MClass(MClass)> */
2453 var13
= var_mclass
->attrs
[COLOR_nitc__model__MClass___mclass_type
].val
; /* _mclass_type on <var_mclass:nullable MClass(MClass)> */
2454 if (unlikely(var13
== NULL
)) {
2455 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2456 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 507);
2460 RET_LABEL12
:(void)0;
2468 /* method typing#TypeVisitor#get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
2469 val
* nitc__typing___nitc__typing__TypeVisitor___get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
2470 val
* var
/* : nullable CallSite */;
2471 val
* var_node
/* var node: ANode */;
2472 val
* var_recvtype
/* var recvtype: MType */;
2473 val
* var_name
/* var name: String */;
2474 short int var_recv_is_self
/* var recv_is_self: Bool */;
2475 val
* var1
/* : MType */;
2476 val
* var_unsafe_type
/* var unsafe_type: MType */;
2477 short int var2
/* : Bool */;
2480 static val
* varonce
;
2481 val
* var3
/* : String */;
2482 char* var4
/* : NativeString */;
2483 val
* var5
/* : String */;
2484 val
* var6
/* : nullable MClass */;
2485 val
* var_objclass
/* var objclass: nullable MClass */;
2486 short int var7
/* : Bool */;
2487 short int var8
/* : Bool */;
2488 val
* var_other
/* var other: nullable Object */;
2489 short int var10
/* : Bool */;
2490 short int var12
/* : Bool */;
2491 val
* var13
/* : MClassType */;
2492 val
* var15
/* : MClassType */;
2493 val
* var16
/* : nullable MProperty */;
2494 val
* var_mproperty
/* var mproperty: nullable MProperty */;
2495 short int var17
/* : Bool */;
2496 static val
* varonce18
;
2497 val
* var19
/* : String */;
2498 char* var20
/* : NativeString */;
2499 val
* var21
/* : String */;
2500 short int var22
/* : Bool */;
2501 short int var_
/* var : Bool */;
2502 short int var23
/* : Bool */;
2503 short int var24
/* : Bool */;
2504 short int var26
/* : Bool */;
2505 short int var28
/* : Bool */;
2506 static val
* varonce29
;
2507 val
* var30
/* : String */;
2508 char* var31
/* : NativeString */;
2509 val
* var32
/* : String */;
2510 val
* var33
/* : nullable MProperty */;
2511 short int var34
/* : Bool */;
2512 short int var35
/* : Bool */;
2513 short int var37
/* : Bool */;
2514 short int var39
/* : Bool */;
2515 val
* var40
/* : ModelBuilder */;
2516 val
* var42
/* : ModelBuilder */;
2517 val
* var44
/* : NativeArray[String] */;
2518 static val
* varonce43
;
2519 static val
* varonce45
;
2520 val
* var46
/* : String */;
2521 char* var47
/* : NativeString */;
2522 val
* var48
/* : String */;
2523 static val
* varonce49
;
2524 val
* var50
/* : String */;
2525 char* var51
/* : NativeString */;
2526 val
* var52
/* : String */;
2527 static val
* varonce53
;
2528 val
* var54
/* : String */;
2529 char* var55
/* : NativeString */;
2530 val
* var56
/* : String */;
2531 val
* var57
/* : String */;
2532 val
* var58
/* : String */;
2533 short int var59
/* : Bool */;
2534 val
* var60
/* : ModelBuilder */;
2535 val
* var62
/* : ModelBuilder */;
2536 val
* var64
/* : NativeArray[String] */;
2537 static val
* varonce63
;
2538 static val
* varonce65
;
2539 val
* var66
/* : String */;
2540 char* var67
/* : NativeString */;
2541 val
* var68
/* : String */;
2542 static val
* varonce69
;
2543 val
* var70
/* : String */;
2544 char* var71
/* : NativeString */;
2545 val
* var72
/* : String */;
2546 static val
* varonce73
;
2547 val
* var74
/* : String */;
2548 char* var75
/* : NativeString */;
2549 val
* var76
/* : String */;
2550 static val
* varonce77
;
2551 val
* var78
/* : String */;
2552 char* var79
/* : NativeString */;
2553 val
* var80
/* : String */;
2554 val
* var81
/* : String */;
2555 val
* var82
/* : String */;
2556 val
* var83
/* : String */;
2557 val
* var84
/* : ModelBuilder */;
2558 val
* var86
/* : ModelBuilder */;
2559 val
* var88
/* : NativeArray[String] */;
2560 static val
* varonce87
;
2561 static val
* varonce89
;
2562 val
* var90
/* : String */;
2563 char* var91
/* : NativeString */;
2564 val
* var92
/* : String */;
2565 static val
* varonce93
;
2566 val
* var94
/* : String */;
2567 char* var95
/* : NativeString */;
2568 val
* var96
/* : String */;
2569 static val
* varonce97
;
2570 val
* var98
/* : String */;
2571 char* var99
/* : NativeString */;
2572 val
* var100
/* : String */;
2573 val
* var101
/* : String */;
2574 val
* var102
/* : String */;
2575 short int var103
/* : Bool */;
2578 short int var106
/* : Bool */;
2579 short int var107
/* : Bool */;
2582 short int var_110
/* var : Bool */;
2583 short int var111
/* : Bool */;
2584 short int var112
/* : Bool */;
2585 val
* var114
/* : NativeArray[String] */;
2586 static val
* varonce113
;
2587 static val
* varonce115
;
2588 val
* var116
/* : String */;
2589 char* var117
/* : NativeString */;
2590 val
* var118
/* : String */;
2591 static val
* varonce119
;
2592 val
* var120
/* : String */;
2593 char* var121
/* : NativeString */;
2594 val
* var122
/* : String */;
2595 val
* var123
/* : String */;
2596 short int var124
/* : Bool */;
2597 short int var125
/* : Bool */;
2600 short int var_128
/* var : Bool */;
2601 short int var129
/* : Bool */;
2602 short int var130
/* : Bool */;
2603 val
* var131
/* : ModelBuilder */;
2604 val
* var133
/* : ModelBuilder */;
2605 static val
* varonce134
;
2606 val
* var135
/* : String */;
2607 char* var136
/* : NativeString */;
2608 val
* var137
/* : String */;
2609 val
* var139
/* : NativeArray[String] */;
2610 static val
* varonce138
;
2611 static val
* varonce140
;
2612 val
* var141
/* : String */;
2613 char* var142
/* : NativeString */;
2614 val
* var143
/* : String */;
2615 static val
* varonce144
;
2616 val
* var145
/* : String */;
2617 char* var146
/* : NativeString */;
2618 val
* var147
/* : String */;
2619 val
* var148
/* : String */;
2620 val
* var149
/* : String */;
2621 short int var150
/* : Bool */;
2622 short int var151
/* : Bool */;
2623 short int var152
/* : Bool */;
2624 short int var154
/* : Bool */;
2625 short int var_155
/* var : Bool */;
2626 short int var_156
/* var : Bool */;
2627 short int var157
/* : Bool */;
2628 short int var159
/* : Bool */;
2629 short int var160
/* : Bool */;
2630 val
* var162
/* : NativeArray[String] */;
2631 static val
* varonce161
;
2632 static val
* varonce163
;
2633 val
* var164
/* : String */;
2634 char* var165
/* : NativeString */;
2635 val
* var166
/* : String */;
2636 static val
* varonce167
;
2637 val
* var168
/* : String */;
2638 char* var169
/* : NativeString */;
2639 val
* var170
/* : String */;
2640 val
* var171
/* : String */;
2641 short int var172
/* : Bool */;
2642 short int var173
/* : Bool */;
2643 short int var_174
/* var : Bool */;
2644 short int var175
/* : Bool */;
2645 short int var177
/* : Bool */;
2646 val
* var179
/* : NativeArray[String] */;
2647 static val
* varonce178
;
2648 static val
* varonce180
;
2649 val
* var181
/* : String */;
2650 char* var182
/* : NativeString */;
2651 val
* var183
/* : String */;
2652 static val
* varonce184
;
2653 val
* var185
/* : String */;
2654 char* var186
/* : NativeString */;
2655 val
* var187
/* : String */;
2656 val
* var188
/* : String */;
2657 short int var189
/* : Bool */;
2658 short int var190
/* : Bool */;
2659 short int var191
/* : Bool */;
2660 val
* var192
/* : MVisibility */;
2661 val
* var194
/* : MVisibility */;
2662 val
* var195
/* : Sys */;
2663 val
* var196
/* : MVisibility */;
2664 short int var197
/* : Bool */;
2665 short int var199
/* : Bool */;
2666 short int var201
/* : Bool */;
2667 short int var_202
/* var : Bool */;
2668 short int var203
/* : Bool */;
2669 short int var_204
/* var : Bool */;
2670 val
* var205
/* : MModule */;
2671 val
* var207
/* : MModule */;
2672 val
* var208
/* : MClassDef */;
2673 val
* var210
/* : MClassDef */;
2674 val
* var211
/* : MModule */;
2675 val
* var213
/* : MModule */;
2676 val
* var214
/* : MVisibility */;
2677 val
* var215
/* : Sys */;
2678 val
* var216
/* : MVisibility */;
2679 short int var217
/* : Bool */;
2680 short int var_218
/* var : Bool */;
2681 val
* var219
/* : ModelBuilder */;
2682 val
* var221
/* : ModelBuilder */;
2683 val
* var222
/* : ToolContext */;
2684 val
* var224
/* : ToolContext */;
2685 val
* var225
/* : OptionBool */;
2686 val
* var227
/* : OptionBool */;
2687 val
* var228
/* : nullable Object */;
2688 val
* var230
/* : nullable Object */;
2689 short int var231
/* : Bool */;
2690 short int var232
/* : Bool */;
2691 val
* var233
/* : ModelBuilder */;
2692 val
* var235
/* : ModelBuilder */;
2693 val
* var237
/* : NativeArray[String] */;
2694 static val
* varonce236
;
2695 static val
* varonce238
;
2696 val
* var239
/* : String */;
2697 char* var240
/* : NativeString */;
2698 val
* var241
/* : String */;
2699 static val
* varonce242
;
2700 val
* var243
/* : String */;
2701 char* var244
/* : NativeString */;
2702 val
* var245
/* : String */;
2703 val
* var246
/* : String */;
2704 val
* var247
/* : nullable MDeprecationInfo */;
2705 val
* var249
/* : nullable MDeprecationInfo */;
2706 val
* var_info
/* var info: nullable MDeprecationInfo */;
2707 short int var250
/* : Bool */;
2708 short int var251
/* : Bool */;
2709 short int var252
/* : Bool */;
2710 val
* var_other254
/* var other: nullable Object */;
2711 short int var255
/* : Bool */;
2712 short int var256
/* : Bool */;
2713 short int var_257
/* var : Bool */;
2714 val
* var258
/* : nullable MPropDef */;
2715 val
* var260
/* : nullable MPropDef */;
2716 val
* var261
/* : MProperty */;
2717 val
* var263
/* : MProperty */;
2718 val
* var264
/* : nullable MDeprecationInfo */;
2719 val
* var266
/* : nullable MDeprecationInfo */;
2720 short int var267
/* : Bool */;
2721 short int var268
/* : Bool */;
2722 short int var270
/* : Bool */;
2723 short int var272
/* : Bool */;
2724 val
* var273
/* : nullable MDoc */;
2725 val
* var275
/* : nullable MDoc */;
2726 val
* var_mdoc
/* var mdoc: nullable MDoc */;
2727 short int var276
/* : Bool */;
2728 short int var277
/* : Bool */;
2729 short int var279
/* : Bool */;
2730 short int var280
/* : Bool */;
2731 val
* var281
/* : ModelBuilder */;
2732 val
* var283
/* : ModelBuilder */;
2733 static val
* varonce284
;
2734 val
* var285
/* : String */;
2735 char* var286
/* : NativeString */;
2736 val
* var287
/* : String */;
2737 val
* var289
/* : NativeArray[String] */;
2738 static val
* varonce288
;
2739 static val
* varonce290
;
2740 val
* var291
/* : String */;
2741 char* var292
/* : NativeString */;
2742 val
* var293
/* : String */;
2743 static val
* varonce294
;
2744 val
* var295
/* : String */;
2745 char* var296
/* : NativeString */;
2746 val
* var297
/* : String */;
2747 val
* var298
/* : Array[String] */;
2748 val
* var300
/* : Array[String] */;
2749 val
* var301
/* : nullable Object */;
2750 val
* var302
/* : String */;
2751 val
* var303
/* : ModelBuilder */;
2752 val
* var305
/* : ModelBuilder */;
2753 static val
* varonce306
;
2754 val
* var307
/* : String */;
2755 char* var308
/* : NativeString */;
2756 val
* var309
/* : String */;
2757 val
* var311
/* : NativeArray[String] */;
2758 static val
* varonce310
;
2759 static val
* varonce312
;
2760 val
* var313
/* : String */;
2761 char* var314
/* : NativeString */;
2762 val
* var315
/* : String */;
2763 static val
* varonce316
;
2764 val
* var317
/* : String */;
2765 char* var318
/* : NativeString */;
2766 val
* var319
/* : String */;
2767 val
* var320
/* : String */;
2768 val
* var321
/* : MModule */;
2769 val
* var323
/* : MModule */;
2770 val
* var324
/* : Array[MPropDef] */;
2771 val
* var_propdefs
/* var propdefs: Array[MMethodDef] */;
2772 long var325
/* : Int */;
2773 long var327
/* : Int */;
2774 short int var328
/* : Bool */;
2775 short int var330
/* : Bool */;
2776 val
* var331
/* : ModelBuilder */;
2777 val
* var333
/* : ModelBuilder */;
2778 val
* var335
/* : NativeArray[String] */;
2779 static val
* varonce334
;
2780 static val
* varonce336
;
2781 val
* var337
/* : String */;
2782 char* var338
/* : NativeString */;
2783 val
* var339
/* : String */;
2784 static val
* varonce340
;
2785 val
* var341
/* : String */;
2786 char* var342
/* : NativeString */;
2787 val
* var343
/* : String */;
2788 static val
* varonce344
;
2789 val
* var345
/* : String */;
2790 char* var346
/* : NativeString */;
2791 val
* var347
/* : String */;
2792 val
* var348
/* : String */;
2793 val
* var349
/* : String */;
2794 long var350
/* : Int */;
2795 long var352
/* : Int */;
2796 short int var353
/* : Bool */;
2797 short int var355
/* : Bool */;
2798 val
* var356
/* : nullable Object */;
2799 val
* var_mpropdef
/* var mpropdef: nullable Object */;
2800 val
* var357
/* : ModelBuilder */;
2801 val
* var359
/* : ModelBuilder */;
2802 static val
* varonce360
;
2803 val
* var361
/* : String */;
2804 char* var362
/* : NativeString */;
2805 val
* var363
/* : String */;
2806 val
* var365
/* : NativeArray[String] */;
2807 static val
* varonce364
;
2808 static val
* varonce366
;
2809 val
* var367
/* : String */;
2810 char* var368
/* : NativeString */;
2811 val
* var369
/* : String */;
2812 static val
* varonce370
;
2813 val
* var371
/* : String */;
2814 char* var372
/* : NativeString */;
2815 val
* var373
/* : String */;
2816 static val
* varonce374
;
2817 val
* var375
/* : String */;
2818 char* var376
/* : NativeString */;
2819 val
* var377
/* : String */;
2820 val
* var378
/* : String */;
2821 static val
* varonce379
;
2822 val
* var380
/* : String */;
2823 char* var381
/* : NativeString */;
2824 val
* var382
/* : String */;
2825 val
* var383
/* : String */;
2826 val
* var384
/* : String */;
2827 val
* var385
/* : MPropDef */;
2828 val
* var387
/* : MPropDef */;
2829 val
* var388
/* : nullable MSignature */;
2830 val
* var389
/* : nullable MSignature */;
2831 val
* var391
/* : nullable MSignature */;
2832 val
* var392
/* : nullable MSignature */;
2833 val
* var394
/* : nullable MSignature */;
2834 val
* var_msignature
/* var msignature: nullable MSignature */;
2835 short int var395
/* : Bool */;
2836 short int var396
/* : Bool */;
2837 short int var398
/* : Bool */;
2838 short int var400
/* : Bool */;
2839 val
* var401
/* : MType */;
2840 short int var402
/* : Bool */;
2843 const char* var_class_name
;
2844 short int var_erasure_cast
/* var erasure_cast: Bool */;
2845 val
* var405
/* : nullable MSignature */;
2846 val
* var407
/* : nullable MSignature */;
2847 val
* var408
/* : nullable MType */;
2848 val
* var410
/* : nullable MType */;
2849 val
* var_rettype
/* var rettype: nullable MType */;
2850 short int var411
/* : Bool */;
2851 short int var412
/* : Bool */;
2852 short int var_413
/* var : Bool */;
2853 short int var414
/* : Bool */;
2854 short int var415
/* : Bool */;
2855 short int var417
/* : Bool */;
2856 short int var418
/* : Bool */;
2857 val
* var419
/* : MType */;
2858 short int var420
/* : Bool */;
2861 val
* var423
/* : nullable MType */;
2862 val
* var425
/* : nullable MType */;
2863 val
* var_erased_rettype
/* var erased_rettype: nullable MType */;
2864 short int var426
/* : Bool */;
2865 short int var427
/* : Bool */;
2866 short int var429
/* : Bool */;
2867 short int var430
/* : Bool */;
2868 val
* var431
/* : CallSite */;
2869 val
* var432
/* : Location */;
2870 val
* var433
/* : MModule */;
2871 val
* var435
/* : MModule */;
2872 val
* var436
/* : nullable MClassType */;
2873 val
* var438
/* : nullable MClassType */;
2874 val
* var_callsite
/* var callsite: CallSite */;
2878 var_recv_is_self
= p3
;
2880 var1
= nitc__typing___nitc__typing__TypeVisitor___anchor_to(self
, var_recvtype
);
2882 var_unsafe_type
= var1
;
2883 /* <var_recvtype:MType> isa MNullType */
2884 cltype
= type_nitc__MNullType
.color
;
2885 idtype
= type_nitc__MNullType
.id
;
2886 if(cltype
>= var_recvtype
->type
->table_size
) {
2889 var2
= var_recvtype
->type
->type_table
[cltype
] == idtype
;
2892 if (likely(varonce
!=NULL
)) {
2896 var5
= core__flat___NativeString___to_s_full(var4
, 6l, 6l);
2901 var6
= nitc__typing___nitc__typing__TypeVisitor___get_mclass(self
, var_node
, var3
);
2903 var_objclass
= var6
;
2904 if (var_objclass
== NULL
) {
2905 var7
= 1; /* is null */
2907 var7
= 0; /* arg is null but recv is not */
2910 { /* Inline kernel#Object#== (var_objclass,((val*)NULL)) on <var_objclass:nullable MClass> */
2911 var_other
= ((val
*)NULL
);
2913 { /* Inline kernel#Object#is_same_instance (var_objclass,var_other) on <var_objclass:nullable MClass(MClass)> */
2914 var12
= var_objclass
== var_other
;
2917 RET_LABEL11
:(void)0;
2932 { /* Inline model#MClass#mclass_type (var_objclass) on <var_objclass:nullable MClass(MClass)> */
2933 var15
= var_objclass
->attrs
[COLOR_nitc__model__MClass___mclass_type
].val
; /* _mclass_type on <var_objclass:nullable MClass(MClass)> */
2934 if (unlikely(var15
== NULL
)) {
2935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
2936 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 507);
2940 RET_LABEL14
:(void)0;
2943 var_unsafe_type
= var13
;
2947 var16
= nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
2949 var_mproperty
= var16
;
2950 if (likely(varonce18
!=NULL
)) {
2954 var21
= core__flat___NativeString___to_s_full(var20
, 3l, 3l);
2959 var22
= ((short int(*)(val
* self
, val
* p0
))(var_name
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_name
, var19
); /* == on <var_name:String>*/
2963 if (var_mproperty
== NULL
) {
2964 var23
= 1; /* is null */
2966 var23
= 0; /* arg is null but recv is not */
2969 { /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
2970 var_other
= ((val
*)NULL
);
2972 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
2973 var28
= var_mproperty
== var_other
;
2976 RET_LABEL27
:(void)0;
2981 RET_LABEL25
:(void)0;
2990 if (likely(varonce29
!=NULL
)) {
2994 var32
= core__flat___NativeString___to_s_full(var31
, 4l, 4l);
3000 var33
= nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
3002 var_mproperty
= var33
;
3005 if (var_mproperty
== NULL
) {
3006 var34
= 1; /* is null */
3008 var34
= 0; /* arg is null but recv is not */
3011 { /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
3012 var_other
= ((val
*)NULL
);
3014 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
3015 var39
= var_mproperty
== var_other
;
3018 RET_LABEL38
:(void)0;
3023 RET_LABEL36
:(void)0;
3028 if (var_recv_is_self
){
3030 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3031 var42
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3032 if (unlikely(var42
== NULL
)) {
3033 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3034 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3038 RET_LABEL41
:(void)0;
3041 if (unlikely(varonce43
==NULL
)) {
3042 var44
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
3043 if (likely(varonce45
!=NULL
)) {
3046 var47
= "Error: method or variable `";
3047 var48
= core__flat___NativeString___to_s_full(var47
, 27l, 27l);
3051 ((struct instance_core__NativeArray
*)var44
)->values
[0]=var46
;
3052 if (likely(varonce49
!=NULL
)) {
3055 var51
= "` unknown in `";
3056 var52
= core__flat___NativeString___to_s_full(var51
, 14l, 14l);
3060 ((struct instance_core__NativeArray
*)var44
)->values
[2]=var50
;
3061 if (likely(varonce53
!=NULL
)) {
3065 var56
= core__flat___NativeString___to_s_full(var55
, 2l, 2l);
3069 ((struct instance_core__NativeArray
*)var44
)->values
[4]=var54
;
3074 ((struct instance_core__NativeArray
*)var44
)->values
[1]=var_name
;
3076 var57
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3078 ((struct instance_core__NativeArray
*)var44
)->values
[3]=var57
;
3080 var58
= ((val
*(*)(val
* self
))(var44
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var44
); /* native_to_s on <var44:NativeArray[String]>*/
3084 nitc___nitc__ModelBuilder___error(var40
, var_node
, var58
); /* Direct call modelbuilder_base#ModelBuilder#error on <var40:ModelBuilder>*/
3088 var59
= ((short int(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_nitc__model__MType__need_anchor
]))(var_recvtype
); /* need_anchor on <var_recvtype:MType>*/
3092 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3093 var62
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3094 if (unlikely(var62
== NULL
)) {
3095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3096 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3100 RET_LABEL61
:(void)0;
3103 if (unlikely(varonce63
==NULL
)) {
3104 var64
= NEW_core__NativeArray(7l, &type_core__NativeArray__core__String
);
3105 if (likely(varonce65
!=NULL
)) {
3108 var67
= "Error: method `";
3109 var68
= core__flat___NativeString___to_s_full(var67
, 15l, 15l);
3113 ((struct instance_core__NativeArray
*)var64
)->values
[0]=var66
;
3114 if (likely(varonce69
!=NULL
)) {
3117 var71
= "` does not exists in `";
3118 var72
= core__flat___NativeString___to_s_full(var71
, 22l, 22l);
3122 ((struct instance_core__NativeArray
*)var64
)->values
[2]=var70
;
3123 if (likely(varonce73
!=NULL
)) {
3127 var76
= core__flat___NativeString___to_s_full(var75
, 2l, 2l);
3131 ((struct instance_core__NativeArray
*)var64
)->values
[4]=var74
;
3132 if (likely(varonce77
!=NULL
)) {
3136 var80
= core__flat___NativeString___to_s_full(var79
, 2l, 2l);
3140 ((struct instance_core__NativeArray
*)var64
)->values
[6]=var78
;
3145 ((struct instance_core__NativeArray
*)var64
)->values
[1]=var_name
;
3147 var81
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3149 ((struct instance_core__NativeArray
*)var64
)->values
[3]=var81
;
3151 var82
= ((val
*(*)(val
* self
))(var_unsafe_type
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_unsafe_type
); /* to_s on <var_unsafe_type:MType>*/
3153 ((struct instance_core__NativeArray
*)var64
)->values
[5]=var82
;
3155 var83
= ((val
*(*)(val
* self
))(var64
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var64
); /* native_to_s on <var64:NativeArray[String]>*/
3159 nitc___nitc__ModelBuilder___error(var60
, var_node
, var83
); /* Direct call modelbuilder_base#ModelBuilder#error on <var60:ModelBuilder>*/
3163 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3164 var86
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3165 if (unlikely(var86
== NULL
)) {
3166 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3167 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3171 RET_LABEL85
:(void)0;
3174 if (unlikely(varonce87
==NULL
)) {
3175 var88
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
3176 if (likely(varonce89
!=NULL
)) {
3179 var91
= "Error: method `";
3180 var92
= core__flat___NativeString___to_s_full(var91
, 15l, 15l);
3184 ((struct instance_core__NativeArray
*)var88
)->values
[0]=var90
;
3185 if (likely(varonce93
!=NULL
)) {
3188 var95
= "` does not exists in `";
3189 var96
= core__flat___NativeString___to_s_full(var95
, 22l, 22l);
3193 ((struct instance_core__NativeArray
*)var88
)->values
[2]=var94
;
3194 if (likely(varonce97
!=NULL
)) {
3198 var100
= core__flat___NativeString___to_s_full(var99
, 2l, 2l);
3202 ((struct instance_core__NativeArray
*)var88
)->values
[4]=var98
;
3207 ((struct instance_core__NativeArray
*)var88
)->values
[1]=var_name
;
3209 var101
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3211 ((struct instance_core__NativeArray
*)var88
)->values
[3]=var101
;
3213 var102
= ((val
*(*)(val
* self
))(var88
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var88
); /* native_to_s on <var88:NativeArray[String]>*/
3217 nitc___nitc__ModelBuilder___error(var84
, var_node
, var102
); /* Direct call modelbuilder_base#ModelBuilder#error on <var84:ModelBuilder>*/
3225 /* <var_mproperty:nullable MProperty(MProperty)> isa MMethod */
3226 cltype104
= type_nitc__MMethod
.color
;
3227 idtype105
= type_nitc__MMethod
.id
;
3228 if(cltype104
>= var_mproperty
->type
->table_size
) {
3231 var103
= var_mproperty
->type
->type_table
[cltype104
] == idtype105
;
3233 if (unlikely(!var103
)) {
3234 PRINT_ERROR("Runtime error: %s", "Assert failed");
3235 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 332);
3238 /* <var_recvtype:MType> isa MNullType */
3239 cltype108
= type_nitc__MNullType
.color
;
3240 idtype109
= type_nitc__MNullType
.id
;
3241 if(cltype108
>= var_recvtype
->type
->table_size
) {
3244 var107
= var_recvtype
->type
->type_table
[cltype108
] == idtype109
;
3249 var111
= nitc___nitc__MMethod___is_null_safe(var_mproperty
);
3257 if (unlikely(varonce113
==NULL
)) {
3258 var114
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3259 if (likely(varonce115
!=NULL
)) {
3260 var116
= varonce115
;
3262 var117
= "Error: method `";
3263 var118
= core__flat___NativeString___to_s_full(var117
, 15l, 15l);
3265 varonce115
= var116
;
3267 ((struct instance_core__NativeArray
*)var114
)->values
[0]=var116
;
3268 if (likely(varonce119
!=NULL
)) {
3269 var120
= varonce119
;
3271 var121
= "` called on `null`.";
3272 var122
= core__flat___NativeString___to_s_full(var121
, 19l, 19l);
3274 varonce119
= var120
;
3276 ((struct instance_core__NativeArray
*)var114
)->values
[2]=var120
;
3278 var114
= varonce113
;
3281 ((struct instance_core__NativeArray
*)var114
)->values
[1]=var_name
;
3283 var123
= ((val
*(*)(val
* self
))(var114
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var114
); /* native_to_s on <var114:NativeArray[String]>*/
3285 varonce113
= var114
;
3287 nitc__typing___nitc__typing__TypeVisitor___error(self
, var_node
, var123
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3292 /* <var_unsafe_type:MType> isa MNullableType */
3293 cltype126
= type_nitc__MNullableType
.color
;
3294 idtype127
= type_nitc__MNullableType
.id
;
3295 if(cltype126
>= var_unsafe_type
->type
->table_size
) {
3298 var125
= var_unsafe_type
->type
->type_table
[cltype126
] == idtype127
;
3303 var129
= nitc___nitc__MMethod___is_null_safe(var_mproperty
);
3312 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3313 var133
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3314 if (unlikely(var133
== NULL
)) {
3315 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3316 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3320 RET_LABEL132
:(void)0;
3323 if (likely(varonce134
!=NULL
)) {
3324 var135
= varonce134
;
3326 var136
= "call-on-nullable";
3327 var137
= core__flat___NativeString___to_s_full(var136
, 16l, 16l);
3329 varonce134
= var135
;
3331 if (unlikely(varonce138
==NULL
)) {
3332 var139
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3333 if (likely(varonce140
!=NULL
)) {
3334 var141
= varonce140
;
3336 var142
= "Warning: method call on a nullable receiver `";
3337 var143
= core__flat___NativeString___to_s_full(var142
, 45l, 45l);
3339 varonce140
= var141
;
3341 ((struct instance_core__NativeArray
*)var139
)->values
[0]=var141
;
3342 if (likely(varonce144
!=NULL
)) {
3343 var145
= varonce144
;
3346 var147
= core__flat___NativeString___to_s_full(var146
, 2l, 2l);
3348 varonce144
= var145
;
3350 ((struct instance_core__NativeArray
*)var139
)->values
[2]=var145
;
3352 var139
= varonce138
;
3356 var148
= ((val
*(*)(val
* self
))(var_recvtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_recvtype
); /* to_s on <var_recvtype:MType>*/
3358 ((struct instance_core__NativeArray
*)var139
)->values
[1]=var148
;
3360 var149
= ((val
*(*)(val
* self
))(var139
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var139
); /* native_to_s on <var139:NativeArray[String]>*/
3362 varonce138
= var139
;
3364 nitc___nitc__ModelBuilder___advice(var131
, var_node
, var135
, var149
); /* Direct call modelbuilder_base#ModelBuilder#advice on <var131:ModelBuilder>*/
3370 { /* Inline typing#TypeVisitor#is_toplevel_context (self) on <self:TypeVisitor> */
3371 var154
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___is_toplevel_context
].s
; /* _is_toplevel_context on <self:TypeVisitor> */
3373 RET_LABEL153
:(void)0;
3378 var151
= var_recv_is_self
;
3385 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3386 var159
= var_mproperty
->attrs
[COLOR_nitc__model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3388 RET_LABEL158
:(void)0;
3397 if (unlikely(varonce161
==NULL
)) {
3398 var162
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3399 if (likely(varonce163
!=NULL
)) {
3400 var164
= varonce163
;
3402 var165
= "Error: `";
3403 var166
= core__flat___NativeString___to_s_full(var165
, 8l, 8l);
3405 varonce163
= var164
;
3407 ((struct instance_core__NativeArray
*)var162
)->values
[0]=var164
;
3408 if (likely(varonce167
!=NULL
)) {
3409 var168
= varonce167
;
3411 var169
= "` is not a top-level method, thus need a receiver.";
3412 var170
= core__flat___NativeString___to_s_full(var169
, 50l, 50l);
3414 varonce167
= var168
;
3416 ((struct instance_core__NativeArray
*)var162
)->values
[2]=var168
;
3418 var162
= varonce161
;
3421 ((struct instance_core__NativeArray
*)var162
)->values
[1]=var_name
;
3423 var171
= ((val
*(*)(val
* self
))(var162
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var162
); /* native_to_s on <var162:NativeArray[String]>*/
3425 varonce161
= var162
;
3427 nitc__typing___nitc__typing__TypeVisitor___error(self
, var_node
, var171
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3431 var173
= !var_recv_is_self
;
3435 { /* Inline model#MMethod#is_toplevel (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3436 var177
= var_mproperty
->attrs
[COLOR_nitc__model__MMethod___is_toplevel
].s
; /* _is_toplevel on <var_mproperty:nullable MProperty(MMethod)> */
3438 RET_LABEL176
:(void)0;
3446 if (unlikely(varonce178
==NULL
)) {
3447 var179
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3448 if (likely(varonce180
!=NULL
)) {
3449 var181
= varonce180
;
3451 var182
= "Error: cannot call `";
3452 var183
= core__flat___NativeString___to_s_full(var182
, 20l, 20l);
3454 varonce180
= var181
;
3456 ((struct instance_core__NativeArray
*)var179
)->values
[0]=var181
;
3457 if (likely(varonce184
!=NULL
)) {
3458 var185
= varonce184
;
3460 var186
= "`, a top-level method, with a receiver.";
3461 var187
= core__flat___NativeString___to_s_full(var186
, 39l, 39l);
3463 varonce184
= var185
;
3465 ((struct instance_core__NativeArray
*)var179
)->values
[2]=var185
;
3467 var179
= varonce178
;
3470 ((struct instance_core__NativeArray
*)var179
)->values
[1]=var_name
;
3472 var188
= ((val
*(*)(val
* self
))(var179
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var179
); /* native_to_s on <var179:NativeArray[String]>*/
3474 varonce178
= var179
;
3476 nitc__typing___nitc__typing__TypeVisitor___error(self
, var_node
, var188
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
3481 { /* Inline model#MProperty#visibility (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3482 var194
= var_mproperty
->attrs
[COLOR_nitc__model__MProperty___visibility
].val
; /* _visibility on <var_mproperty:nullable MProperty(MMethod)> */
3483 if (unlikely(var194
== NULL
)) {
3484 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _visibility");
3485 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1967);
3489 RET_LABEL193
:(void)0;
3494 var196
= nitc__model_base___core__Sys___protected_visibility(var195
);
3497 { /* Inline kernel#Object#== (var192,var196) on <var192:MVisibility> */
3500 { /* Inline kernel#Object#is_same_instance (var192,var_other) on <var192:MVisibility> */
3501 var201
= var192
== var_other
;
3504 RET_LABEL200
:(void)0;
3509 RET_LABEL198
:(void)0;
3514 var203
= !var_recv_is_self
;
3522 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3523 var207
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3524 if (unlikely(var207
== NULL
)) {
3525 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3526 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
3530 RET_LABEL206
:(void)0;
3534 { /* Inline model#MProperty#intro_mclassdef (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3535 var210
= var_mproperty
->attrs
[COLOR_nitc__model__MProperty___intro_mclassdef
].val
; /* _intro_mclassdef on <var_mproperty:nullable MProperty(MMethod)> */
3536 if (unlikely(var210
== NULL
)) {
3537 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro_mclassdef");
3538 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1946);
3542 RET_LABEL209
:(void)0;
3546 { /* Inline model#MClassDef#mmodule (var208) on <var208:MClassDef> */
3547 var213
= var208
->attrs
[COLOR_nitc__model__MClassDef___mmodule
].val
; /* _mmodule on <var208:MClassDef> */
3548 if (unlikely(var213
== NULL
)) {
3549 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3550 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 573);
3554 RET_LABEL212
:(void)0;
3558 var214
= nitc___nitc__MModule___visibility_for(var205
, var211
);
3562 var216
= nitc__model_base___core__Sys___intrude_visibility(var215
);
3565 var217
= nitc___nitc__MVisibility___core__kernel__Comparable___60d(var214
, var216
);
3574 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3575 var221
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3576 if (unlikely(var221
== NULL
)) {
3577 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3578 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3582 RET_LABEL220
:(void)0;
3586 { /* Inline modelbuilder_base#ModelBuilder#toolcontext (var219) on <var219:ModelBuilder> */
3587 var224
= var219
->attrs
[COLOR_nitc__modelbuilder_base__ModelBuilder___toolcontext
].val
; /* _toolcontext on <var219:ModelBuilder> */
3588 if (unlikely(var224
== NULL
)) {
3589 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _toolcontext");
3590 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder_base
, 47);
3594 RET_LABEL223
:(void)0;
3598 { /* Inline modelbuilder#ToolContext#opt_ignore_visibility (var222) on <var222:ToolContext> */
3599 var227
= var222
->attrs
[COLOR_nitc__modelbuilder__ToolContext___opt_ignore_visibility
].val
; /* _opt_ignore_visibility on <var222:ToolContext> */
3600 if (unlikely(var227
== NULL
)) {
3601 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _opt_ignore_visibility");
3602 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__modelbuilder
, 27);
3606 RET_LABEL226
:(void)0;
3610 { /* Inline opts#Option#value (var225) on <var225:OptionBool> */
3611 var230
= var225
->attrs
[COLOR_opts__Option___value
].val
; /* _value on <var225:OptionBool> */
3613 RET_LABEL229
:(void)0;
3616 var231
= (short int)((long)(var228
)>>2);
3624 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3625 var235
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3626 if (unlikely(var235
== NULL
)) {
3627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3628 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3632 RET_LABEL234
:(void)0;
3635 if (unlikely(varonce236
==NULL
)) {
3636 var237
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3637 if (likely(varonce238
!=NULL
)) {
3638 var239
= varonce238
;
3640 var240
= "Error: method `";
3641 var241
= core__flat___NativeString___to_s_full(var240
, 15l, 15l);
3643 varonce238
= var239
;
3645 ((struct instance_core__NativeArray
*)var237
)->values
[0]=var239
;
3646 if (likely(varonce242
!=NULL
)) {
3647 var243
= varonce242
;
3649 var244
= "` is protected and can only accessed by `self`.";
3650 var245
= core__flat___NativeString___to_s_full(var244
, 47l, 47l);
3652 varonce242
= var243
;
3654 ((struct instance_core__NativeArray
*)var237
)->values
[2]=var243
;
3656 var237
= varonce236
;
3659 ((struct instance_core__NativeArray
*)var237
)->values
[1]=var_name
;
3661 var246
= ((val
*(*)(val
* self
))(var237
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var237
); /* native_to_s on <var237:NativeArray[String]>*/
3663 varonce236
= var237
;
3665 nitc___nitc__ModelBuilder___error(var233
, var_node
, var246
); /* Direct call modelbuilder_base#ModelBuilder#error on <var233:ModelBuilder>*/
3672 { /* Inline mdoc#MEntity#deprecation (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
3673 var249
= var_mproperty
->attrs
[COLOR_nitc__mdoc__MEntity___deprecation
].val
; /* _deprecation on <var_mproperty:nullable MProperty(MMethod)> */
3675 RET_LABEL248
:(void)0;
3679 if (var_info
== NULL
) {
3680 var251
= 0; /* is null */
3682 var251
= 1; /* arg is null and recv is not */
3685 { /* Inline kernel#Object#!= (var_info,((val*)NULL)) on <var_info:nullable MDeprecationInfo> */
3686 var_other254
= ((val
*)NULL
);
3688 var255
= ((short int(*)(val
* self
, val
* p0
))(var_info
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_info
, var_other254
); /* == on <var_info:nullable MDeprecationInfo(MDeprecationInfo)>*/
3693 RET_LABEL253
:(void)0;
3700 { /* Inline typing#TypeVisitor#mpropdef (self) on <self:TypeVisitor> */
3701 var260
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mpropdef
].val
; /* _mpropdef on <self:TypeVisitor> */
3703 RET_LABEL259
:(void)0;
3706 if (var258
== NULL
) {
3707 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3708 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 355);
3711 { /* Inline model#MPropDef#mproperty (var258) on <var258:nullable MPropDef> */
3712 if (unlikely(var258
== NULL
)) {
3713 PRINT_ERROR("Runtime error: %s", "Receiver is null");
3714 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2230);
3717 var263
= var258
->attrs
[COLOR_nitc__model__MPropDef___mproperty
].val
; /* _mproperty on <var258:nullable MPropDef> */
3718 if (unlikely(var263
== NULL
)) {
3719 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
3720 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2230);
3724 RET_LABEL262
:(void)0;
3728 { /* Inline mdoc#MEntity#deprecation (var261) on <var261:MProperty> */
3729 var266
= var261
->attrs
[COLOR_nitc__mdoc__MEntity___deprecation
].val
; /* _deprecation on <var261:MProperty> */
3731 RET_LABEL265
:(void)0;
3734 if (var264
== NULL
) {
3735 var267
= 1; /* is null */
3737 var267
= 0; /* arg is null but recv is not */
3740 { /* Inline kernel#Object#== (var264,((val*)NULL)) on <var264:nullable MDeprecationInfo> */
3741 var_other
= ((val
*)NULL
);
3743 { /* Inline kernel#Object#is_same_instance (var264,var_other) on <var264:nullable MDeprecationInfo(MDeprecationInfo)> */
3744 var272
= var264
== var_other
;
3747 RET_LABEL271
:(void)0;
3752 RET_LABEL269
:(void)0;
3762 { /* Inline mdoc#MDeprecationInfo#mdoc (var_info) on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3763 var275
= var_info
->attrs
[COLOR_nitc__mdoc__MDeprecationInfo___mdoc
].val
; /* _mdoc on <var_info:nullable MDeprecationInfo(MDeprecationInfo)> */
3765 RET_LABEL274
:(void)0;
3769 if (var_mdoc
== NULL
) {
3770 var276
= 0; /* is null */
3772 var276
= 1; /* arg is null and recv is not */
3775 { /* Inline kernel#Object#!= (var_mdoc,((val*)NULL)) on <var_mdoc:nullable MDoc> */
3776 var_other254
= ((val
*)NULL
);
3778 var279
= ((short int(*)(val
* self
, val
* p0
))(var_mdoc
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_mdoc
, var_other254
); /* == on <var_mdoc:nullable MDoc(MDoc)>*/
3783 RET_LABEL278
:(void)0;
3789 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3790 var283
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3791 if (unlikely(var283
== NULL
)) {
3792 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3793 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3797 RET_LABEL282
:(void)0;
3800 if (likely(varonce284
!=NULL
)) {
3801 var285
= varonce284
;
3803 var286
= "deprecated-method";
3804 var287
= core__flat___NativeString___to_s_full(var286
, 17l, 17l);
3806 varonce284
= var285
;
3808 if (unlikely(varonce288
==NULL
)) {
3809 var289
= NEW_core__NativeArray(4l, &type_core__NativeArray__core__String
);
3810 if (likely(varonce290
!=NULL
)) {
3811 var291
= varonce290
;
3813 var292
= "Deprecation Warning: method `";
3814 var293
= core__flat___NativeString___to_s_full(var292
, 29l, 29l);
3816 varonce290
= var291
;
3818 ((struct instance_core__NativeArray
*)var289
)->values
[0]=var291
;
3819 if (likely(varonce294
!=NULL
)) {
3820 var295
= varonce294
;
3822 var296
= "` is deprecated: ";
3823 var297
= core__flat___NativeString___to_s_full(var296
, 17l, 17l);
3825 varonce294
= var295
;
3827 ((struct instance_core__NativeArray
*)var289
)->values
[2]=var295
;
3829 var289
= varonce288
;
3832 ((struct instance_core__NativeArray
*)var289
)->values
[1]=var_name
;
3834 { /* Inline mdoc#MDoc#content (var_mdoc) on <var_mdoc:nullable MDoc(MDoc)> */
3835 var300
= var_mdoc
->attrs
[COLOR_nitc__mdoc__MDoc___content
].val
; /* _content on <var_mdoc:nullable MDoc(MDoc)> */
3836 if (unlikely(var300
== NULL
)) {
3837 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _content");
3838 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__mdoc
, 23);
3842 RET_LABEL299
:(void)0;
3846 var301
= core___core__SequenceRead___Collection__first(var298
);
3848 ((struct instance_core__NativeArray
*)var289
)->values
[3]=var301
;
3850 var302
= ((val
*(*)(val
* self
))(var289
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var289
); /* native_to_s on <var289:NativeArray[String]>*/
3852 varonce288
= var289
;
3854 nitc___nitc__ModelBuilder___warning(var281
, var_node
, var285
, var302
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var281:ModelBuilder>*/
3858 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3859 var305
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3860 if (unlikely(var305
== NULL
)) {
3861 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3862 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3866 RET_LABEL304
:(void)0;
3869 if (likely(varonce306
!=NULL
)) {
3870 var307
= varonce306
;
3872 var308
= "deprecated-method";
3873 var309
= core__flat___NativeString___to_s_full(var308
, 17l, 17l);
3875 varonce306
= var307
;
3877 if (unlikely(varonce310
==NULL
)) {
3878 var311
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
3879 if (likely(varonce312
!=NULL
)) {
3880 var313
= varonce312
;
3882 var314
= "Deprecation Warning: method `";
3883 var315
= core__flat___NativeString___to_s_full(var314
, 29l, 29l);
3885 varonce312
= var313
;
3887 ((struct instance_core__NativeArray
*)var311
)->values
[0]=var313
;
3888 if (likely(varonce316
!=NULL
)) {
3889 var317
= varonce316
;
3891 var318
= "` is deprecated.";
3892 var319
= core__flat___NativeString___to_s_full(var318
, 16l, 16l);
3894 varonce316
= var317
;
3896 ((struct instance_core__NativeArray
*)var311
)->values
[2]=var317
;
3898 var311
= varonce310
;
3901 ((struct instance_core__NativeArray
*)var311
)->values
[1]=var_name
;
3903 var320
= ((val
*(*)(val
* self
))(var311
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var311
); /* native_to_s on <var311:NativeArray[String]>*/
3905 varonce310
= var311
;
3907 nitc___nitc__ModelBuilder___warning(var303
, var_node
, var307
, var320
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var303:ModelBuilder>*/
3913 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
3914 var323
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
3915 if (unlikely(var323
== NULL
)) {
3916 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
3917 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
3921 RET_LABEL322
:(void)0;
3925 var324
= nitc___nitc__MProperty___lookup_definitions(var_mproperty
, var321
, var_unsafe_type
);
3927 var_propdefs
= var324
;
3929 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
3930 var327
= var_propdefs
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
3932 RET_LABEL326
:(void)0;
3936 { /* Inline kernel#Int#== (var325,0l) on <var325:Int> */
3937 var330
= var325
== 0l;
3940 RET_LABEL329
:(void)0;
3945 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
3946 var333
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
3947 if (unlikely(var333
== NULL
)) {
3948 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
3949 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
3953 RET_LABEL332
:(void)0;
3956 if (unlikely(varonce334
==NULL
)) {
3957 var335
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
3958 if (likely(varonce336
!=NULL
)) {
3959 var337
= varonce336
;
3961 var338
= "Type Error: no definition found for property `";
3962 var339
= core__flat___NativeString___to_s_full(var338
, 46l, 46l);
3964 varonce336
= var337
;
3966 ((struct instance_core__NativeArray
*)var335
)->values
[0]=var337
;
3967 if (likely(varonce340
!=NULL
)) {
3968 var341
= varonce340
;
3971 var343
= core__flat___NativeString___to_s_full(var342
, 6l, 6l);
3973 varonce340
= var341
;
3975 ((struct instance_core__NativeArray
*)var335
)->values
[2]=var341
;
3976 if (likely(varonce344
!=NULL
)) {
3977 var345
= varonce344
;
3980 var347
= core__flat___NativeString___to_s_full(var346
, 2l, 2l);
3982 varonce344
= var345
;
3984 ((struct instance_core__NativeArray
*)var335
)->values
[4]=var345
;
3986 var335
= varonce334
;
3989 ((struct instance_core__NativeArray
*)var335
)->values
[1]=var_name
;
3991 var348
= ((val
*(*)(val
* self
))(var_unsafe_type
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_unsafe_type
); /* to_s on <var_unsafe_type:MType>*/
3993 ((struct instance_core__NativeArray
*)var335
)->values
[3]=var348
;
3995 var349
= ((val
*(*)(val
* self
))(var335
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var335
); /* native_to_s on <var335:NativeArray[String]>*/
3997 varonce334
= var335
;
3999 nitc___nitc__ModelBuilder___error(var331
, var_node
, var349
); /* Direct call modelbuilder_base#ModelBuilder#error on <var331:ModelBuilder>*/
4005 { /* Inline array#AbstractArrayRead#length (var_propdefs) on <var_propdefs:Array[MMethodDef]> */
4006 var352
= var_propdefs
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_propdefs:Array[MMethodDef]> */
4008 RET_LABEL351
:(void)0;
4012 { /* Inline kernel#Int#== (var350,1l) on <var350:Int> */
4013 var355
= var350
== 1l;
4016 RET_LABEL354
:(void)0;
4021 var356
= core___core__SequenceRead___Collection__first(var_propdefs
);
4023 var_mpropdef
= var356
;
4026 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4027 var359
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4028 if (unlikely(var359
== NULL
)) {
4029 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4030 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
4034 RET_LABEL358
:(void)0;
4037 if (likely(varonce360
!=NULL
)) {
4038 var361
= varonce360
;
4040 var362
= "property-conflict";
4041 var363
= core__flat___NativeString___to_s_full(var362
, 17l, 17l);
4043 varonce360
= var361
;
4045 if (unlikely(varonce364
==NULL
)) {
4046 var365
= NEW_core__NativeArray(6l, &type_core__NativeArray__core__String
);
4047 if (likely(varonce366
!=NULL
)) {
4048 var367
= varonce366
;
4050 var368
= "Warning: conflicting property definitions for property `";
4051 var369
= core__flat___NativeString___to_s_full(var368
, 56l, 56l);
4053 varonce366
= var367
;
4055 ((struct instance_core__NativeArray
*)var365
)->values
[0]=var367
;
4056 if (likely(varonce370
!=NULL
)) {
4057 var371
= varonce370
;
4060 var373
= core__flat___NativeString___to_s_full(var372
, 6l, 6l);
4062 varonce370
= var371
;
4064 ((struct instance_core__NativeArray
*)var365
)->values
[2]=var371
;
4065 if (likely(varonce374
!=NULL
)) {
4066 var375
= varonce374
;
4069 var377
= core__flat___NativeString___to_s_full(var376
, 3l, 3l);
4071 varonce374
= var375
;
4073 ((struct instance_core__NativeArray
*)var365
)->values
[4]=var375
;
4075 var365
= varonce364
;
4078 ((struct instance_core__NativeArray
*)var365
)->values
[1]=var_name
;
4080 var378
= ((val
*(*)(val
* self
))(var_unsafe_type
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_unsafe_type
); /* to_s on <var_unsafe_type:MType>*/
4082 ((struct instance_core__NativeArray
*)var365
)->values
[3]=var378
;
4083 if (likely(varonce379
!=NULL
)) {
4084 var380
= varonce379
;
4087 var382
= core__flat___NativeString___to_s_full(var381
, 1l, 1l);
4089 varonce379
= var380
;
4092 var383
= core__abstract_text___Collection___join(var_propdefs
, var380
);
4094 ((struct instance_core__NativeArray
*)var365
)->values
[5]=var383
;
4096 var384
= ((val
*(*)(val
* self
))(var365
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var365
); /* native_to_s on <var365:NativeArray[String]>*/
4098 varonce364
= var365
;
4100 nitc___nitc__ModelBuilder___warning(var357
, var_node
, var361
, var384
); /* Direct call modelbuilder_base#ModelBuilder#warning on <var357:ModelBuilder>*/
4103 { /* Inline model#MProperty#intro (var_mproperty) on <var_mproperty:nullable MProperty(MMethod)> */
4104 var387
= var_mproperty
->attrs
[COLOR_nitc__model__MProperty___intro
].val
; /* _intro on <var_mproperty:nullable MProperty(MMethod)> */
4105 if (unlikely(var387
== NULL
)) {
4106 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _intro");
4107 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1986);
4111 RET_LABEL386
:(void)0;
4114 var_mpropdef
= var385
;
4118 { /* Inline model#MMethodDef#new_msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4119 var391
= var_mpropdef
->attrs
[COLOR_nitc__model__MMethodDef___new_msignature
].val
; /* _new_msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4121 RET_LABEL390
:(void)0;
4128 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4129 var394
= var_mpropdef
->attrs
[COLOR_nitc__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4131 RET_LABEL393
:(void)0;
4136 var_msignature
= var388
;
4137 if (var_msignature
== NULL
) {
4138 var395
= 1; /* is null */
4140 var395
= 0; /* arg is null but recv is not */
4143 { /* Inline kernel#Object#== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
4144 var_other
= ((val
*)NULL
);
4146 { /* Inline kernel#Object#is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
4147 var400
= var_msignature
== var_other
;
4150 RET_LABEL399
:(void)0;
4155 RET_LABEL397
:(void)0;
4165 var401
= nitc__typing___nitc__typing__TypeVisitor___resolve_for(self
, var_msignature
, var_recvtype
, var_recv_is_self
);
4167 /* <var401:MType> isa MSignature */
4168 cltype403
= type_nitc__MSignature
.color
;
4169 idtype404
= type_nitc__MSignature
.id
;
4170 if(cltype403
>= var401
->type
->table_size
) {
4173 var402
= var401
->type
->type_table
[cltype403
] == idtype404
;
4175 if (unlikely(!var402
)) {
4176 var_class_name
= var401
== NULL ?
"null" : var401
->type
->name
;
4177 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "MSignature", var_class_name
);
4178 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 379);
4181 var_msignature
= var401
;
4182 var_erasure_cast
= 0;
4184 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable Object(MMethodDef)> */
4185 var407
= var_mpropdef
->attrs
[COLOR_nitc__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable Object(MMethodDef)> */
4187 RET_LABEL406
:(void)0;
4190 if (var405
== NULL
) {
4191 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4192 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 382);
4195 { /* Inline model#MSignature#return_mtype (var405) on <var405:nullable MSignature> */
4196 if (unlikely(var405
== NULL
)) {
4197 PRINT_ERROR("Runtime error: %s", "Receiver is null");
4198 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1795);
4201 var410
= var405
->attrs
[COLOR_nitc__model__MSignature___return_mtype
].val
; /* _return_mtype on <var405:nullable MSignature> */
4203 RET_LABEL409
:(void)0;
4206 var_rettype
= var408
;
4207 var412
= !var_recv_is_self
;
4210 if (var_rettype
== NULL
) {
4211 var414
= 0; /* is null */
4213 var414
= 1; /* arg is null and recv is not */
4216 { /* Inline kernel#Object#!= (var_rettype,((val*)NULL)) on <var_rettype:nullable MType> */
4217 var_other254
= ((val
*)NULL
);
4219 var417
= ((short int(*)(val
* self
, val
* p0
))(var_rettype
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_rettype
, var_other254
); /* == on <var_rettype:nullable MType(MType)>*/
4224 RET_LABEL416
:(void)0;
4234 var419
= ((val
*(*)(val
* self
))(var_rettype
->class->vft
[COLOR_nitc__model__MType__undecorate
]))(var_rettype
); /* undecorate on <var_rettype:nullable MType(MType)>*/
4236 var_rettype
= var419
;
4237 /* <var_rettype:nullable MType(MType)> isa MParameterType */
4238 cltype421
= type_nitc__MParameterType
.color
;
4239 idtype422
= type_nitc__MParameterType
.id
;
4240 if(cltype421
>= var_rettype
->type
->table_size
) {
4243 var420
= var_rettype
->type
->type_table
[cltype421
] == idtype422
;
4247 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
4248 var425
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
4250 RET_LABEL424
:(void)0;
4253 var_erased_rettype
= var423
;
4254 if (var_erased_rettype
== NULL
) {
4255 var426
= 0; /* is null */
4257 var426
= 1; /* arg is null and recv is not */
4260 { /* Inline kernel#Object#!= (var_erased_rettype,((val*)NULL)) on <var_erased_rettype:nullable MType> */
4261 var_other254
= ((val
*)NULL
);
4263 var429
= ((short int(*)(val
* self
, val
* p0
))(var_erased_rettype
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_erased_rettype
, var_other254
); /* == on <var_erased_rettype:nullable MType(MType)>*/
4268 RET_LABEL428
:(void)0;
4272 if (unlikely(!var426
)) {
4273 PRINT_ERROR("Runtime error: %s", "Assert failed");
4274 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 387);
4277 var_erasure_cast
= 1;
4282 var431
= NEW_nitc__CallSite(&type_nitc__CallSite
);
4284 var432
= ((val
*(*)(val
* self
))(var_node
->class->vft
[COLOR_nitc__parser_nodes__ANode__hot_location
]))(var_node
); /* hot_location on <var_node:ANode>*/
4287 { /* Inline typing#TypeVisitor#mmodule (self) on <self:TypeVisitor> */
4288 var435
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___mmodule
].val
; /* _mmodule on <self:TypeVisitor> */
4289 if (unlikely(var435
== NULL
)) {
4290 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
4291 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 37);
4295 RET_LABEL434
:(void)0;
4299 { /* Inline typing#TypeVisitor#anchor (self) on <self:TypeVisitor> */
4300 var438
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___anchor
].val
; /* _anchor on <self:TypeVisitor> */
4302 RET_LABEL437
:(void)0;
4306 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__location_61d
]))(var431
, var432
); /* location= on <var431:CallSite>*/
4309 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__recv_61d
]))(var431
, var_recvtype
); /* recv= on <var431:CallSite>*/
4312 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__mmodule_61d
]))(var431
, var433
); /* mmodule= on <var431:CallSite>*/
4315 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__anchor_61d
]))(var431
, var436
); /* anchor= on <var431:CallSite>*/
4318 ((void(*)(val
* self
, short int p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__recv_is_self_61d
]))(var431
, var_recv_is_self
); /* recv_is_self= on <var431:CallSite>*/
4321 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__mproperty_61d
]))(var431
, var_mproperty
); /* mproperty= on <var431:CallSite>*/
4324 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__mpropdef_61d
]))(var431
, var_mpropdef
); /* mpropdef= on <var431:CallSite>*/
4327 ((void(*)(val
* self
, val
* p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__msignature_61d
]))(var431
, var_msignature
); /* msignature= on <var431:CallSite>*/
4330 ((void(*)(val
* self
, short int p0
))(var431
->class->vft
[COLOR_nitc__typing__CallSite__erasure_cast_61d
]))(var431
, var_erasure_cast
); /* erasure_cast= on <var431:CallSite>*/
4333 ((void(*)(val
* self
))(var431
->class->vft
[COLOR_core__kernel__Object__init
]))(var431
); /* init on <var431:CallSite>*/
4335 var_callsite
= var431
;
4341 /* method typing#TypeVisitor#try_get_method for (self: TypeVisitor, ANode, MType, String, Bool): nullable CallSite */
4342 val
* nitc__typing___nitc__typing__TypeVisitor___try_get_method(val
* self
, val
* p0
, val
* p1
, val
* p2
, short int p3
) {
4343 val
* var
/* : nullable CallSite */;
4344 val
* var_node
/* var node: ANode */;
4345 val
* var_recvtype
/* var recvtype: MType */;
4346 val
* var_name
/* var name: String */;
4347 short int var_recv_is_self
/* var recv_is_self: Bool */;
4348 val
* var1
/* : MType */;
4349 val
* var_unsafe_type
/* var unsafe_type: MType */;
4350 val
* var2
/* : nullable MProperty */;
4351 val
* var_mproperty
/* var mproperty: nullable MProperty */;
4352 short int var3
/* : Bool */;
4353 short int var4
/* : Bool */;
4354 val
* var_other
/* var other: nullable Object */;
4355 short int var6
/* : Bool */;
4356 short int var8
/* : Bool */;
4357 val
* var9
/* : nullable CallSite */;
4361 var_recv_is_self
= p3
;
4363 var1
= nitc__typing___nitc__typing__TypeVisitor___anchor_to(self
, var_recvtype
);
4365 var_unsafe_type
= var1
;
4367 var2
= nitc__typing___nitc__typing__TypeVisitor___try_get_mproperty_by_name2(self
, var_node
, var_unsafe_type
, var_name
);
4369 var_mproperty
= var2
;
4370 if (var_mproperty
== NULL
) {
4371 var3
= 1; /* is null */
4373 var3
= 0; /* arg is null but recv is not */
4376 { /* Inline kernel#Object#== (var_mproperty,((val*)NULL)) on <var_mproperty:nullable MProperty> */
4377 var_other
= ((val
*)NULL
);
4379 { /* Inline kernel#Object#is_same_instance (var_mproperty,var_other) on <var_mproperty:nullable MProperty(MProperty)> */
4380 var8
= var_mproperty
== var_other
;
4398 var9
= nitc__typing___nitc__typing__TypeVisitor___get_method(self
, var_node
, var_recvtype
, var_name
, var_recv_is_self
);
4405 /* method typing#TypeVisitor#check_signature for (self: TypeVisitor, ANode, Array[AExpr], MProperty, MSignature): nullable SignatureMap */
4406 val
* nitc__typing___nitc__typing__TypeVisitor___check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
, val
* p3
) {
4407 val
* var
/* : nullable SignatureMap */;
4408 val
* var_node
/* var node: ANode */;
4409 val
* var_args
/* var args: Array[AExpr] */;
4410 val
* var_mproperty
/* var mproperty: MProperty */;
4411 val
* var_msignature
/* var msignature: MSignature */;
4412 long var1
/* : Int */;
4413 long var3
/* : Int */;
4414 long var_vararg_rank
/* var vararg_rank: Int */;
4415 short int var4
/* : Bool */;
4416 short int var6
/* : Bool */;
4419 const char* var_class_name
;
4420 short int var7
/* : Bool */;
4421 long var8
/* : Int */;
4422 long var10
/* : Int */;
4423 long var11
/* : Int */;
4424 short int var12
/* : Bool */;
4425 short int var14
/* : Bool */;
4428 const char* var_class_name17
;
4429 short int var18
/* : Bool */;
4430 val
* var19
/* : ModelBuilder */;
4431 val
* var21
/* : ModelBuilder */;
4432 val
* var22
/* : NativeArray[String] */;
4433 static val
* varonce
;
4434 static val
* varonce23
;
4435 val
* var24
/* : String */;
4436 char* var25
/* : NativeString */;
4437 val
* var26
/* : String */;
4438 static val
* varonce27
;
4439 val
* var28
/* : String */;
4440 char* var29
/* : NativeString */;
4441 val
* var30
/* : String */;
4442 static val
* varonce31
;
4443 val
* var32
/* : String */;
4444 char* var33
/* : NativeString */;
4445 val
* var34
/* : String */;
4446 static val
* varonce35
;
4447 val
* var36
/* : String */;
4448 char* var37
/* : NativeString */;
4449 val
* var38
/* : String */;
4450 static val
* varonce39
;
4451 val
* var40
/* : String */;
4452 char* var41
/* : NativeString */;
4453 val
* var42
/* : String */;
4454 long var43
/* : Int */;
4455 val
* var44
/* : String */;
4456 val
* var45
/* : String */;
4457 val
* var46
/* : String */;
4458 long var47
/* : Int */;
4459 long var49
/* : Int */;
4460 val
* var50
/* : String */;
4461 val
* var51
/* : String */;
4462 val
* var52
/* : String */;
4463 long var53
/* : Int */;
4464 long var55
/* : Int */;
4465 long var56
/* : Int */;
4466 short int var57
/* : Bool */;
4467 short int var59
/* : Bool */;
4468 short int var60
/* : Bool */;
4469 long var61
/* : Int */;
4470 long var63
/* : Int */;
4471 long var64
/* : Int */;
4472 short int var65
/* : Bool */;
4473 short int var67
/* : Bool */;
4476 const char* var_class_name70
;
4477 short int var71
/* : Bool */;
4478 val
* var72
/* : ModelBuilder */;
4479 val
* var74
/* : ModelBuilder */;
4480 val
* var76
/* : NativeArray[String] */;
4481 static val
* varonce75
;
4482 static val
* varonce77
;
4483 val
* var78
/* : String */;
4484 char* var79
/* : NativeString */;
4485 val
* var80
/* : String */;
4486 static val
* varonce81
;
4487 val
* var82
/* : String */;
4488 char* var83
/* : NativeString */;
4489 val
* var84
/* : String */;
4490 static val
* varonce85
;
4491 val
* var86
/* : String */;
4492 char* var87
/* : NativeString */;
4493 val
* var88
/* : String */;
4494 static val
* varonce89
;
4495 val
* var90
/* : String */;
4496 char* var91
/* : NativeString */;
4497 val
* var92
/* : String */;
4498 static val
* varonce93
;
4499 val
* var94
/* : String */;
4500 char* var95
/* : NativeString */;
4501 val
* var96
/* : String */;
4502 long var97
/* : Int */;
4503 val
* var98
/* : String */;
4504 val
* var99
/* : String */;
4505 val
* var100
/* : String */;
4506 long var101
/* : Int */;
4507 long var103
/* : Int */;
4508 val
* var104
/* : String */;
4509 val
* var105
/* : String */;
4510 val
* var106
/* : String */;
4511 val
* var107
/* : SignatureMap */;
4512 val
* var_map
/* var map: SignatureMap */;
4513 val
* var109
/* : String */;
4514 val
* var111
/* : String */;
4515 val
* var112
/* : SequenceRead[Char] */;
4516 val
* var113
/* : nullable Object */;
4517 short int var114
/* : Bool */;
4518 short int var116
/* : Bool */;
4519 uint32_t var117
/* : Char */;
4520 short int var_last_is_padded
/* var last_is_padded: Bool */;
4521 long var118
/* : Int */;
4522 long var120
/* : Int */;
4523 long var_nbargs
/* var nbargs: Int */;
4524 long var121
/* : Int */;
4525 short int var123
/* : Bool */;
4528 const char* var_class_name126
;
4529 long var127
/* : Int */;
4530 val
* var128
/* : nullable Object */;
4531 short int var129
/* : Bool */;
4534 short int var132
/* : Bool */;
4535 val
* var133
/* : ArrayMap[Int, Int] */;
4536 val
* var135
/* : ArrayMap[Int, Int] */;
4537 long var136
/* : Int */;
4538 long var137
/* : Int */;
4539 short int var139
/* : Bool */;
4542 const char* var_class_name142
;
4543 long var143
/* : Int */;
4544 long var144
/* : Int */;
4545 long var146
/* : Int */;
4546 long var147
/* : Int */;
4547 short int var149
/* : Bool */;
4550 const char* var_class_name152
;
4551 long var153
/* : Int */;
4552 val
* var154
/* : nullable Object */;
4553 val
* var155
/* : nullable Object */;
4554 val
* var156
/* : nullable Object */;
4555 val
* var157
/* : Array[MParameter] */;
4556 val
* var159
/* : Array[MParameter] */;
4557 val
* var160
/* : nullable Object */;
4558 val
* var161
/* : MType */;
4559 val
* var163
/* : MType */;
4560 val
* var164
/* : nullable MType */;
4561 long var_i
/* var i: Int */;
4562 long var165
/* : Int */;
4563 long var167
/* : Int */;
4564 long var_
/* var : Int */;
4565 short int var168
/* : Bool */;
4566 short int var170
/* : Bool */;
4569 const char* var_class_name173
;
4570 short int var174
/* : Bool */;
4571 val
* var175
/* : nullable Object */;
4572 val
* var_e
/* var e: AExpr */;
4573 short int var176
/* : Bool */;
4576 short int var179
/* : Bool */;
4577 val
* var181
/* : TId */;
4578 val
* var183
/* : TId */;
4579 val
* var184
/* : String */;
4580 val
* var_name
/* var name: String */;
4581 val
* var185
/* : nullable MParameter */;
4582 val
* var_param
/* var param: nullable MParameter */;
4583 short int var186
/* : Bool */;
4584 short int var187
/* : Bool */;
4585 val
* var_other
/* var other: nullable Object */;
4586 short int var189
/* : Bool */;
4587 short int var191
/* : Bool */;
4588 val
* var192
/* : ModelBuilder */;
4589 val
* var194
/* : ModelBuilder */;
4590 val
* var195
/* : TId */;
4591 val
* var197
/* : TId */;
4592 val
* var199
/* : NativeArray[String] */;
4593 static val
* varonce198
;
4594 static val
* varonce200
;
4595 val
* var201
/* : String */;
4596 char* var202
/* : NativeString */;
4597 val
* var203
/* : String */;
4598 static val
* varonce204
;
4599 val
* var205
/* : String */;
4600 char* var206
/* : NativeString */;
4601 val
* var207
/* : String */;
4602 static val
* varonce208
;
4603 val
* var209
/* : String */;
4604 char* var210
/* : NativeString */;
4605 val
* var211
/* : String */;
4606 val
* var212
/* : String */;
4607 val
* var213
/* : String */;
4608 val
* var214
/* : String */;
4609 val
* var215
/* : Array[MParameter] */;
4610 val
* var217
/* : Array[MParameter] */;
4611 long var218
/* : Int */;
4612 long var_idx
/* var idx: Int */;
4613 val
* var219
/* : ArrayMap[Int, Int] */;
4614 val
* var221
/* : ArrayMap[Int, Int] */;
4615 val
* var222
/* : nullable Object */;
4616 val
* var223
/* : nullable Object */;
4617 val
* var_prev
/* var prev: nullable Int */;
4618 short int var224
/* : Bool */;
4619 short int var225
/* : Bool */;
4620 short int var227
/* : Bool */;
4621 short int var228
/* : Bool */;
4622 val
* var229
/* : ModelBuilder */;
4623 val
* var231
/* : ModelBuilder */;
4624 val
* var233
/* : NativeArray[String] */;
4625 static val
* varonce232
;
4626 static val
* varonce234
;
4627 val
* var235
/* : String */;
4628 char* var236
/* : NativeString */;
4629 val
* var237
/* : String */;
4630 static val
* varonce238
;
4631 val
* var239
/* : String */;
4632 char* var240
/* : NativeString */;
4633 val
* var241
/* : String */;
4634 static val
* varonce242
;
4635 val
* var243
/* : String */;
4636 char* var244
/* : NativeString */;
4637 val
* var245
/* : String */;
4638 static val
* varonce246
;
4639 val
* var247
/* : String */;
4640 char* var248
/* : NativeString */;
4641 val
* var249
/* : String */;
4642 val
* var250
/* : String */;
4643 long var251
/* : Int */;
4644 val
* var252
/* : String */;
4645 val
* var253
/* : String */;
4646 val
* var254
/* : String */;
4647 val
* var255
/* : ArrayMap[Int, Int] */;
4648 val
* var257
/* : ArrayMap[Int, Int] */;
4649 val
* var258
/* : nullable Object */;
4650 val
* var259
/* : nullable Object */;
4651 val
* var260
/* : AExpr */;
4652 val
* var262
/* : AExpr */;
4653 val
* var263
/* : MType */;
4654 val
* var265
/* : MType */;
4655 val
* var266
/* : nullable MType */;
4656 long var268
/* : Int */;
4657 long var_min_arity
/* var min_arity: Int */;
4658 long var269
/* : Int */;
4659 long var271
/* : Int */;
4660 long var272
/* : Int */;
4661 long var273
/* : Int */;
4662 short int var275
/* : Bool */;
4665 const char* var_class_name278
;
4666 long var279
/* : Int */;
4667 long var_vararg_decl
/* var vararg_decl: Int */;
4668 long var_j
/* var j: Int */;
4669 long var_i280
/* var i: Int */;
4670 long var281
/* : Int */;
4671 long var_282
/* var : Int */;
4672 short int var283
/* : Bool */;
4673 short int var285
/* : Bool */;
4676 const char* var_class_name288
;
4677 short int var289
/* : Bool */;
4678 val
* var291
/* : ArrayMap[Int, Int] */;
4679 val
* var293
/* : ArrayMap[Int, Int] */;
4680 short int var294
/* : Bool */;
4681 val
* var295
/* : nullable Object */;
4682 val
* var297
/* : Array[MParameter] */;
4683 val
* var299
/* : Array[MParameter] */;
4684 val
* var300
/* : nullable Object */;
4685 val
* var_param301
/* var param: MParameter */;
4686 short int var302
/* : Bool */;
4687 short int var303
/* : Bool */;
4688 short int var305
/* : Bool */;
4691 const char* var_class_name308
;
4692 short int var309
/* : Bool */;
4693 short int var_310
/* var : Bool */;
4694 val
* var311
/* : nullable Object */;
4695 short int var312
/* : Bool */;
4698 long var315
/* : Int */;
4699 short int var317
/* : Bool */;
4702 const char* var_class_name320
;
4703 long var321
/* : Int */;
4704 short int var323
/* : Bool */;
4705 short int var325
/* : Bool */;
4708 const char* var_class_name328
;
4709 short int var329
/* : Bool */;
4710 val
* var330
/* : MType */;
4711 val
* var332
/* : MType */;
4712 short int var333
/* : Bool */;
4715 short int var336
/* : Bool */;
4716 long var337
/* : Int */;
4717 short int var339
/* : Bool */;
4720 const char* var_class_name342
;
4721 long var343
/* : Int */;
4722 long var344
/* : Int */;
4723 short int var346
/* : Bool */;
4726 const char* var_class_name349
;
4727 long var350
/* : Int */;
4728 val
* var351
/* : nullable Object */;
4729 val
* var_arg
/* var arg: AExpr */;
4730 val
* var352
/* : ArrayMap[Int, Int] */;
4731 val
* var354
/* : ArrayMap[Int, Int] */;
4732 val
* var355
/* : nullable Object */;
4733 val
* var356
/* : nullable Object */;
4734 long var357
/* : Int */;
4735 short int var359
/* : Bool */;
4738 const char* var_class_name362
;
4739 long var363
/* : Int */;
4740 short int var364
/* : Bool */;
4741 short int var366
/* : Bool */;
4742 long var367
/* : Int */;
4743 short int var369
/* : Bool */;
4746 const char* var_class_name372
;
4747 long var373
/* : Int */;
4748 short int var374
/* : Bool */;
4749 short int var376
/* : Bool */;
4750 short int var377
/* : Bool */;
4751 val
* var378
/* : MType */;
4752 val
* var380
/* : MType */;
4753 val
* var_paramtype
/* var paramtype: MType */;
4754 val
* var381
/* : nullable MType */;
4755 short int var382
/* : Bool */;
4756 long var383
/* : Int */;
4757 short int var384
/* : Bool */;
4758 short int var386
/* : Bool */;
4761 const char* var_class_name389
;
4762 short int var390
/* : Bool */;
4763 long var391
/* : Int */;
4764 short int var393
/* : Bool */;
4767 const char* var_class_name396
;
4768 long var397
/* : Int */;
4769 long var398
/* : Int */;
4770 short int var399
/* : Bool */;
4771 short int var401
/* : Bool */;
4774 const char* var_class_name404
;
4775 short int var405
/* : Bool */;
4776 val
* var406
/* : ModelBuilder */;
4777 val
* var408
/* : ModelBuilder */;
4778 val
* var410
/* : NativeArray[String] */;
4779 static val
* varonce409
;
4780 static val
* varonce411
;
4781 val
* var412
/* : String */;
4782 char* var413
/* : NativeString */;
4783 val
* var414
/* : String */;
4784 static val
* varonce415
;
4785 val
* var416
/* : String */;
4786 char* var417
/* : NativeString */;
4787 val
* var418
/* : String */;
4788 static val
* varonce419
;
4789 val
* var420
/* : String */;
4790 char* var421
/* : NativeString */;
4791 val
* var422
/* : String */;
4792 static val
* varonce423
;
4793 val
* var424
/* : String */;
4794 char* var425
/* : NativeString */;
4795 val
* var426
/* : String */;
4796 static val
* varonce427
;
4797 val
* var428
/* : String */;
4798 char* var429
/* : NativeString */;
4799 val
* var430
/* : String */;
4800 val
* var431
/* : String */;
4801 val
* var432
/* : String */;
4802 val
* var433
/* : String */;
4803 long var434
/* : Int */;
4804 long var436
/* : Int */;
4805 val
* var437
/* : String */;
4806 val
* var438
/* : String */;
4807 val
* var439
/* : String */;
4808 val
* var440
/* : ModelBuilder */;
4809 val
* var442
/* : ModelBuilder */;
4810 val
* var444
/* : NativeArray[String] */;
4811 static val
* varonce443
;
4812 static val
* varonce445
;
4813 val
* var446
/* : String */;
4814 char* var447
/* : NativeString */;
4815 val
* var448
/* : String */;
4816 static val
* varonce449
;
4817 val
* var450
/* : String */;
4818 char* var451
/* : NativeString */;
4819 val
* var452
/* : String */;
4820 static val
* varonce453
;
4821 val
* var454
/* : String */;
4822 char* var455
/* : NativeString */;
4823 val
* var456
/* : String */;
4824 static val
* varonce457
;
4825 val
* var458
/* : String */;
4826 char* var459
/* : NativeString */;
4827 val
* var460
/* : String */;
4828 static val
* varonce461
;
4829 val
* var462
/* : String */;
4830 char* var463
/* : NativeString */;
4831 val
* var464
/* : String */;
4832 val
* var465
/* : String */;
4833 val
* var466
/* : String */;
4834 val
* var467
/* : String */;
4835 long var468
/* : Int */;
4836 long var470
/* : Int */;
4837 val
* var471
/* : String */;
4838 val
* var472
/* : String */;
4839 val
* var473
/* : String */;
4840 short int var474
/* : Bool */;
4841 short int var476
/* : Bool */;
4844 const char* var_class_name479
;
4845 short int var480
/* : Bool */;
4846 val
* var481
/* : Array[MParameter] */;
4847 val
* var483
/* : Array[MParameter] */;
4848 val
* var484
/* : nullable Object */;
4849 val
* var485
/* : MType */;
4850 val
* var487
/* : MType */;
4851 val
* var_paramtype488
/* var paramtype: MType */;
4852 val
* var489
/* : nullable Object */;
4853 val
* var_first
/* var first: AExpr */;
4854 short int var490
/* : Bool */;
4855 short int var492
/* : Bool */;
4856 val
* var493
/* : Array[MParameter] */;
4857 val
* var495
/* : Array[MParameter] */;
4858 val
* var496
/* : nullable Object */;
4859 short int var497
/* : Bool */;
4860 short int var498
/* : Bool */;
4861 long var499
/* : Int */;
4862 short int var501
/* : Bool */;
4865 const char* var_class_name504
;
4866 long var505
/* : Int */;
4867 long var_i507
/* var i: Int */;
4868 long var508
/* : Int */;
4869 short int var510
/* : Bool */;
4872 const char* var_class_name513
;
4873 long var514
/* : Int */;
4874 long var_515
/* var : Int */;
4875 short int var516
/* : Bool */;
4876 short int var518
/* : Bool */;
4879 const char* var_class_name521
;
4880 short int var522
/* : Bool */;
4881 val
* var524
/* : nullable Object */;
4882 val
* var525
/* : nullable MType */;
4883 long var526
/* : Int */;
4887 var_msignature
= p3
;
4889 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:MSignature> */
4890 var3
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:MSignature> */
4895 var_vararg_rank
= var1
;
4897 { /* Inline kernel#Int#>= (var_vararg_rank,0l) on <var_vararg_rank:Int> */
4898 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
4899 /* <0l:Int> isa OTHER */
4900 var6
= 1; /* easy <0l:Int> isa OTHER*/
4901 if (unlikely(!var6
)) {
4902 var_class_name
= type_core__Int
.name
;
4903 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
4904 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 729);
4907 var7
= var_vararg_rank
>= 0l;
4915 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
4916 var10
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
4922 var11
= nitc___nitc__MSignature___arity(var_msignature
);
4925 { /* Inline kernel#Int#< (var8,var11) on <var8:Int> */
4926 /* Covariant cast for argument 0 (i) <var11:Int> isa OTHER */
4927 /* <var11:Int> isa OTHER */
4928 var14
= 1; /* easy <var11:Int> isa OTHER*/
4929 if (unlikely(!var14
)) {
4930 var_class_name17
= type_core__Int
.name
;
4931 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name17
);
4932 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
4935 var18
= var8
< var11
;
4938 RET_LABEL13
:(void)0;
4943 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
4944 var21
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
4945 if (unlikely(var21
== NULL
)) {
4946 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
4947 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
4951 RET_LABEL20
:(void)0;
4954 if (unlikely(varonce
==NULL
)) {
4955 var22
= NEW_core__NativeArray(10l, &type_core__NativeArray__core__String
);
4956 if (likely(varonce23
!=NULL
)) {
4959 var25
= "Error: expected at least ";
4960 var26
= core__flat___NativeString___to_s_full(var25
, 25l, 25l);
4964 ((struct instance_core__NativeArray
*)var22
)->values
[0]=var24
;
4965 if (likely(varonce27
!=NULL
)) {
4968 var29
= " argument(s) for `";
4969 var30
= core__flat___NativeString___to_s_full(var29
, 18l, 18l);
4973 ((struct instance_core__NativeArray
*)var22
)->values
[2]=var28
;
4974 if (likely(varonce31
!=NULL
)) {
4978 var34
= core__flat___NativeString___to_s_full(var33
, 7l, 7l);
4982 ((struct instance_core__NativeArray
*)var22
)->values
[5]=var32
;
4983 if (likely(varonce35
!=NULL
)) {
4986 var37
= ". See introduction at `";
4987 var38
= core__flat___NativeString___to_s_full(var37
, 23l, 23l);
4991 ((struct instance_core__NativeArray
*)var22
)->values
[7]=var36
;
4992 if (likely(varonce39
!=NULL
)) {
4996 var42
= core__flat___NativeString___to_s_full(var41
, 2l, 2l);
5000 ((struct instance_core__NativeArray
*)var22
)->values
[9]=var40
;
5006 var43
= nitc___nitc__MSignature___arity(var_msignature
);
5008 var44
= core__flat___Int___core__abstract_text__Object__to_s(var43
);
5009 ((struct instance_core__NativeArray
*)var22
)->values
[1]=var44
;
5011 var45
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5013 ((struct instance_core__NativeArray
*)var22
)->values
[3]=var45
;
5015 var46
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5017 ((struct instance_core__NativeArray
*)var22
)->values
[4]=var46
;
5019 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5020 var49
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5022 RET_LABEL48
:(void)0;
5025 var50
= core__flat___Int___core__abstract_text__Object__to_s(var47
);
5026 ((struct instance_core__NativeArray
*)var22
)->values
[6]=var50
;
5028 var51
= nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mproperty
);
5030 ((struct instance_core__NativeArray
*)var22
)->values
[8]=var51
;
5032 var52
= ((val
*(*)(val
* self
))(var22
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var22
); /* native_to_s on <var22:NativeArray[String]>*/
5036 nitc___nitc__ModelBuilder___error(var19
, var_node
, var52
); /* Direct call modelbuilder_base#ModelBuilder#error on <var19:ModelBuilder>*/
5044 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5045 var55
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5047 RET_LABEL54
:(void)0;
5051 var56
= nitc___nitc__MSignature___arity(var_msignature
);
5054 { /* Inline kernel#Int#!= (var53,var56) on <var53:Int> */
5055 var59
= var53
== var56
;
5059 RET_LABEL58
:(void)0;
5064 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5065 var63
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5067 RET_LABEL62
:(void)0;
5071 var64
= nitc___nitc__MSignature___arity(var_msignature
);
5074 { /* Inline kernel#Int#> (var61,var64) on <var61:Int> */
5075 /* Covariant cast for argument 0 (i) <var64:Int> isa OTHER */
5076 /* <var64:Int> isa OTHER */
5077 var67
= 1; /* easy <var64:Int> isa OTHER*/
5078 if (unlikely(!var67
)) {
5079 var_class_name70
= type_core__Int
.name
;
5080 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name70
);
5081 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
5084 var71
= var61
> var64
;
5087 RET_LABEL66
:(void)0;
5092 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5093 var74
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5094 if (unlikely(var74
== NULL
)) {
5095 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5096 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
5100 RET_LABEL73
:(void)0;
5103 if (unlikely(varonce75
==NULL
)) {
5104 var76
= NEW_core__NativeArray(10l, &type_core__NativeArray__core__String
);
5105 if (likely(varonce77
!=NULL
)) {
5108 var79
= "Error: expected ";
5109 var80
= core__flat___NativeString___to_s_full(var79
, 16l, 16l);
5113 ((struct instance_core__NativeArray
*)var76
)->values
[0]=var78
;
5114 if (likely(varonce81
!=NULL
)) {
5117 var83
= " argument(s) for `";
5118 var84
= core__flat___NativeString___to_s_full(var83
, 18l, 18l);
5122 ((struct instance_core__NativeArray
*)var76
)->values
[2]=var82
;
5123 if (likely(varonce85
!=NULL
)) {
5127 var88
= core__flat___NativeString___to_s_full(var87
, 7l, 7l);
5131 ((struct instance_core__NativeArray
*)var76
)->values
[5]=var86
;
5132 if (likely(varonce89
!=NULL
)) {
5135 var91
= ". See introduction at `";
5136 var92
= core__flat___NativeString___to_s_full(var91
, 23l, 23l);
5140 ((struct instance_core__NativeArray
*)var76
)->values
[7]=var90
;
5141 if (likely(varonce93
!=NULL
)) {
5145 var96
= core__flat___NativeString___to_s_full(var95
, 2l, 2l);
5149 ((struct instance_core__NativeArray
*)var76
)->values
[9]=var94
;
5155 var97
= nitc___nitc__MSignature___arity(var_msignature
);
5157 var98
= core__flat___Int___core__abstract_text__Object__to_s(var97
);
5158 ((struct instance_core__NativeArray
*)var76
)->values
[1]=var98
;
5160 var99
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5162 ((struct instance_core__NativeArray
*)var76
)->values
[3]=var99
;
5164 var100
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5166 ((struct instance_core__NativeArray
*)var76
)->values
[4]=var100
;
5168 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5169 var103
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5171 RET_LABEL102
:(void)0;
5174 var104
= core__flat___Int___core__abstract_text__Object__to_s(var101
);
5175 ((struct instance_core__NativeArray
*)var76
)->values
[6]=var104
;
5177 var105
= nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mproperty
);
5179 ((struct instance_core__NativeArray
*)var76
)->values
[8]=var105
;
5181 var106
= ((val
*(*)(val
* self
))(var76
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var76
); /* native_to_s on <var76:NativeArray[String]>*/
5185 nitc___nitc__ModelBuilder___error(var72
, var_node
, var106
); /* Direct call modelbuilder_base#ModelBuilder#error on <var72:ModelBuilder>*/
5194 var107
= NEW_nitc__SignatureMap(&type_nitc__SignatureMap
);
5196 { /* Inline kernel#Object#init (var107) on <var107:SignatureMap> */
5197 RET_LABEL108
:(void)0;
5202 { /* Inline model#MProperty#name (var_mproperty) on <var_mproperty:MProperty> */
5203 var111
= var_mproperty
->attrs
[COLOR_nitc__model__MProperty___name
].val
; /* _name on <var_mproperty:MProperty> */
5204 if (unlikely(var111
== NULL
)) {
5205 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
5206 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1951);
5210 RET_LABEL110
:(void)0;
5214 var112
= ((val
*(*)(val
* self
))(var109
->class->vft
[COLOR_core__abstract_text__Text__chars
]))(var109
); /* chars on <var109:String>*/
5217 var113
= ((val
*(*)(val
* self
))((((long)var112
&3)?class_info
[((long)var112
&3)]:var112
->class)->vft
[COLOR_core__abstract_collection__SequenceRead__last
]))(var112
); /* last on <var112:SequenceRead[Char]>*/
5220 { /* Inline kernel#Char#== (var113,'=') on <var113:nullable Object(Char)> */
5221 var117
= (uint32_t)((long)(var113
)>>2);
5222 var116
= var117
== '=';
5225 RET_LABEL115
:(void)0;
5228 var_last_is_padded
= var114
;
5230 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5231 var120
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5233 RET_LABEL119
:(void)0;
5236 var_nbargs
= var118
;
5237 if (var_last_is_padded
){
5239 { /* Inline kernel#Int#- (var_nbargs,1l) on <var_nbargs:Int> */
5240 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5241 /* <1l:Int> isa OTHER */
5242 var123
= 1; /* easy <1l:Int> isa OTHER*/
5243 if (unlikely(!var123
)) {
5244 var_class_name126
= type_core__Int
.name
;
5245 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name126
);
5246 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
5249 var127
= var_nbargs
- 1l;
5252 RET_LABEL122
:(void)0;
5255 var_nbargs
= var121
;
5257 var128
= core___core__SequenceRead___last(var_args
);
5259 /* <var128:nullable Object(AExpr)> isa ANamedargExpr */
5260 cltype130
= type_nitc__ANamedargExpr
.color
;
5261 idtype131
= type_nitc__ANamedargExpr
.id
;
5262 if(cltype130
>= var128
->type
->table_size
) {
5265 var129
= var128
->type
->type_table
[cltype130
] == idtype131
;
5268 if (unlikely(!var132
)) {
5269 PRINT_ERROR("Runtime error: %s", "Assert failed");
5270 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 438);
5274 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5275 var135
= var_map
->attrs
[COLOR_nitc__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5276 if (unlikely(var135
== NULL
)) {
5277 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5278 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 628);
5282 RET_LABEL134
:(void)0;
5286 var136
= nitc___nitc__MSignature___arity(var_msignature
);
5289 { /* Inline kernel#Int#- (var136,1l) on <var136:Int> */
5290 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5291 /* <1l:Int> isa OTHER */
5292 var139
= 1; /* easy <1l:Int> isa OTHER*/
5293 if (unlikely(!var139
)) {
5294 var_class_name142
= type_core__Int
.name
;
5295 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name142
);
5296 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
5299 var143
= var136
- 1l;
5302 RET_LABEL138
:(void)0;
5306 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5307 var146
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5309 RET_LABEL145
:(void)0;
5313 { /* Inline kernel#Int#- (var144,1l) on <var144:Int> */
5314 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5315 /* <1l:Int> isa OTHER */
5316 var149
= 1; /* easy <1l:Int> isa OTHER*/
5317 if (unlikely(!var149
)) {
5318 var_class_name152
= type_core__Int
.name
;
5319 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name152
);
5320 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
5323 var153
= var144
- 1l;
5326 RET_LABEL148
:(void)0;
5330 var154
= (val
*)(var137
<<2|1);
5331 var155
= (val
*)(var147
<<2|1);
5332 core___core__ArrayMap___core__abstract_collection__Map___91d_93d_61d(var133
, var154
, var155
); /* Direct call array#ArrayMap#[]= on <var133:ArrayMap[Int, Int]>*/
5335 var156
= core___core__SequenceRead___last(var_args
);
5338 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
5339 var159
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
5340 if (unlikely(var159
== NULL
)) {
5341 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5342 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1783);
5346 RET_LABEL158
:(void)0;
5350 var160
= core___core__SequenceRead___last(var157
);
5353 { /* Inline model#MParameter#mtype (var160) on <var160:nullable Object(MParameter)> */
5354 var163
= var160
->attrs
[COLOR_nitc__model__MParameter___mtype
].val
; /* _mtype on <var160:nullable Object(MParameter)> */
5355 if (unlikely(var163
== NULL
)) {
5356 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5357 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1900);
5361 RET_LABEL162
:(void)0;
5365 var164
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(self
, var156
, var161
);
5371 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5372 var167
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5374 RET_LABEL166
:(void)0;
5380 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
5381 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
5382 /* <var_:Int> isa OTHER */
5383 var170
= 1; /* easy <var_:Int> isa OTHER*/
5384 if (unlikely(!var170
)) {
5385 var_class_name173
= type_core__Int
.name
;
5386 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name173
);
5387 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
5390 var174
= var_i
< var_
;
5393 RET_LABEL169
:(void)0;
5401 var175
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_args
, var_i
);
5404 /* <var_e:AExpr> isa ANamedargExpr */
5405 cltype177
= type_nitc__ANamedargExpr
.color
;
5406 idtype178
= type_nitc__ANamedargExpr
.id
;
5407 if(cltype177
>= var_e
->type
->table_size
) {
5410 var176
= var_e
->type
->type_table
[cltype177
] == idtype178
;
5414 goto BREAK_label180
;
5418 { /* Inline parser_nodes#ANamedargExpr#n_id (var_e) on <var_e:AExpr(ANamedargExpr)> */
5419 var183
= var_e
->attrs
[COLOR_nitc__parser_nodes__ANamedargExpr___n_id
].val
; /* _n_id on <var_e:AExpr(ANamedargExpr)> */
5420 if (unlikely(var183
== NULL
)) {
5421 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5422 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2641);
5426 RET_LABEL182
:(void)0;
5430 var184
= nitc__lexer_work___Token___text(var181
);
5434 var185
= nitc___nitc__MSignature___mparameter_by_name(var_msignature
, var_name
);
5437 if (var_param
== NULL
) {
5438 var186
= 1; /* is null */
5440 var186
= 0; /* arg is null but recv is not */
5443 { /* Inline kernel#Object#== (var_param,((val*)NULL)) on <var_param:nullable MParameter> */
5444 var_other
= ((val
*)NULL
);
5446 { /* Inline kernel#Object#is_same_instance (var_param,var_other) on <var_param:nullable MParameter(MParameter)> */
5447 var191
= var_param
== var_other
;
5450 RET_LABEL190
:(void)0;
5455 RET_LABEL188
:(void)0;
5461 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5462 var194
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5463 if (unlikely(var194
== NULL
)) {
5464 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5465 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
5469 RET_LABEL193
:(void)0;
5473 { /* Inline parser_nodes#ANamedargExpr#n_id (var_e) on <var_e:AExpr(ANamedargExpr)> */
5474 var197
= var_e
->attrs
[COLOR_nitc__parser_nodes__ANamedargExpr___n_id
].val
; /* _n_id on <var_e:AExpr(ANamedargExpr)> */
5475 if (unlikely(var197
== NULL
)) {
5476 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_id");
5477 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2641);
5481 RET_LABEL196
:(void)0;
5484 if (unlikely(varonce198
==NULL
)) {
5485 var199
= NEW_core__NativeArray(6l, &type_core__NativeArray__core__String
);
5486 if (likely(varonce200
!=NULL
)) {
5487 var201
= varonce200
;
5489 var202
= "Error: no parameter `";
5490 var203
= core__flat___NativeString___to_s_full(var202
, 21l, 21l);
5492 varonce200
= var201
;
5494 ((struct instance_core__NativeArray
*)var199
)->values
[0]=var201
;
5495 if (likely(varonce204
!=NULL
)) {
5496 var205
= varonce204
;
5499 var207
= core__flat___NativeString___to_s_full(var206
, 7l, 7l);
5501 varonce204
= var205
;
5503 ((struct instance_core__NativeArray
*)var199
)->values
[2]=var205
;
5504 if (likely(varonce208
!=NULL
)) {
5505 var209
= varonce208
;
5508 var211
= core__flat___NativeString___to_s_full(var210
, 2l, 2l);
5510 varonce208
= var209
;
5512 ((struct instance_core__NativeArray
*)var199
)->values
[5]=var209
;
5514 var199
= varonce198
;
5517 ((struct instance_core__NativeArray
*)var199
)->values
[1]=var_name
;
5519 var212
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5521 ((struct instance_core__NativeArray
*)var199
)->values
[3]=var212
;
5523 var213
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5525 ((struct instance_core__NativeArray
*)var199
)->values
[4]=var213
;
5527 var214
= ((val
*(*)(val
* self
))(var199
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var199
); /* native_to_s on <var199:NativeArray[String]>*/
5529 varonce198
= var199
;
5531 nitc___nitc__ModelBuilder___error(var192
, var195
, var214
); /* Direct call modelbuilder_base#ModelBuilder#error on <var192:ModelBuilder>*/
5538 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
5539 var217
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
5540 if (unlikely(var217
== NULL
)) {
5541 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5542 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1783);
5546 RET_LABEL216
:(void)0;
5550 var218
= core___core__AbstractArrayRead___core__abstract_collection__SequenceRead__index_of(var215
, var_param
);
5554 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5555 var221
= var_map
->attrs
[COLOR_nitc__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5556 if (unlikely(var221
== NULL
)) {
5557 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5558 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 628);
5562 RET_LABEL220
:(void)0;
5566 var223
= (val
*)(var_idx
<<2|1);
5567 var222
= core___core__MapRead___get_or_null(var219
, var223
);
5570 if (var_prev
== NULL
) {
5571 var224
= 0; /* is null */
5573 var224
= 1; /* arg is null and recv is not */
5576 { /* Inline kernel#Int#!= (var_prev,((val*)NULL)) on <var_prev:nullable Int> */
5577 var227
= 0; /* incompatible types Int vs. null; cannot be NULL */
5581 RET_LABEL226
:(void)0;
5587 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
5588 var231
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
5589 if (unlikely(var231
== NULL
)) {
5590 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
5591 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
5595 RET_LABEL230
:(void)0;
5598 if (unlikely(varonce232
==NULL
)) {
5599 var233
= NEW_core__NativeArray(8l, &type_core__NativeArray__core__String
);
5600 if (likely(varonce234
!=NULL
)) {
5601 var235
= varonce234
;
5603 var236
= "Error: parameter `";
5604 var237
= core__flat___NativeString___to_s_full(var236
, 18l, 18l);
5606 varonce234
= var235
;
5608 ((struct instance_core__NativeArray
*)var233
)->values
[0]=var235
;
5609 if (likely(varonce238
!=NULL
)) {
5610 var239
= varonce238
;
5612 var240
= "` already associated with argument #";
5613 var241
= core__flat___NativeString___to_s_full(var240
, 36l, 36l);
5615 varonce238
= var239
;
5617 ((struct instance_core__NativeArray
*)var233
)->values
[2]=var239
;
5618 if (likely(varonce242
!=NULL
)) {
5619 var243
= varonce242
;
5622 var245
= core__flat___NativeString___to_s_full(var244
, 6l, 6l);
5624 varonce242
= var243
;
5626 ((struct instance_core__NativeArray
*)var233
)->values
[4]=var243
;
5627 if (likely(varonce246
!=NULL
)) {
5628 var247
= varonce246
;
5631 var249
= core__flat___NativeString___to_s_full(var248
, 2l, 2l);
5633 varonce246
= var247
;
5635 ((struct instance_core__NativeArray
*)var233
)->values
[7]=var247
;
5637 var233
= varonce232
;
5640 ((struct instance_core__NativeArray
*)var233
)->values
[1]=var_name
;
5641 var251
= (long)(var_prev
)>>2;
5642 var250
= core__flat___Int___core__abstract_text__Object__to_s(var251
);
5643 ((struct instance_core__NativeArray
*)var233
)->values
[3]=var250
;
5645 var252
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
5647 ((struct instance_core__NativeArray
*)var233
)->values
[5]=var252
;
5649 var253
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
5651 ((struct instance_core__NativeArray
*)var233
)->values
[6]=var253
;
5653 var254
= ((val
*(*)(val
* self
))(var233
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var233
); /* native_to_s on <var233:NativeArray[String]>*/
5655 varonce232
= var233
;
5657 nitc___nitc__ModelBuilder___error(var229
, var_e
, var254
); /* Direct call modelbuilder_base#ModelBuilder#error on <var229:ModelBuilder>*/
5664 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5665 var257
= var_map
->attrs
[COLOR_nitc__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5666 if (unlikely(var257
== NULL
)) {
5667 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5668 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 628);
5672 RET_LABEL256
:(void)0;
5676 var258
= (val
*)(var_idx
<<2|1);
5677 var259
= (val
*)(var_i
<<2|1);
5678 core___core__ArrayMap___core__abstract_collection__Map___91d_93d_61d(var255
, var258
, var259
); /* Direct call array#ArrayMap#[]= on <var255:ArrayMap[Int, Int]>*/
5681 { /* Inline parser_nodes#ANamedargExpr#n_expr (var_e) on <var_e:AExpr(ANamedargExpr)> */
5682 var262
= var_e
->attrs
[COLOR_nitc__parser_nodes__ANamedargExpr___n_expr
].val
; /* _n_expr on <var_e:AExpr(ANamedargExpr)> */
5683 if (unlikely(var262
== NULL
)) {
5684 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
5685 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2647);
5689 RET_LABEL261
:(void)0;
5693 { /* Inline model#MParameter#mtype (var_param) on <var_param:nullable MParameter(MParameter)> */
5694 var265
= var_param
->attrs
[COLOR_nitc__model__MParameter___mtype
].val
; /* _mtype on <var_param:nullable MParameter(MParameter)> */
5695 if (unlikely(var265
== NULL
)) {
5696 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5697 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1900);
5701 RET_LABEL264
:(void)0;
5705 var266
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(self
, var260
, var263
);
5708 { /* Inline typing#AExpr#mtype= (var_e,var266) on <var_e:AExpr(ANamedargExpr)> */
5709 var_e
->attrs
[COLOR_nitc__typing__AExpr___mtype
].val
= var266
; /* _mtype on <var_e:AExpr(ANamedargExpr)> */
5710 RET_LABEL267
:(void)0;
5713 BREAK_label180
: (void)0;
5715 var268
= core___core__Int___Discrete__successor(var_i
, 1l);
5719 BREAK_label
: (void)0;
5722 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
5723 var271
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
5725 RET_LABEL270
:(void)0;
5729 var272
= nitc___nitc__MSignature___arity(var_msignature
);
5732 { /* Inline kernel#Int#- (var269,var272) on <var269:Int> */
5733 /* Covariant cast for argument 0 (i) <var272:Int> isa OTHER */
5734 /* <var272:Int> isa OTHER */
5735 var275
= 1; /* easy <var272:Int> isa OTHER*/
5736 if (unlikely(!var275
)) {
5737 var_class_name278
= type_core__Int
.name
;
5738 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name278
);
5739 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 734);
5742 var279
= var269
- var272
;
5745 RET_LABEL274
:(void)0;
5748 var_vararg_decl
= var273
;
5752 var281
= nitc___nitc__MSignature___arity(var_msignature
);
5757 { /* Inline kernel#Int#< (var_i280,var_282) on <var_i280:Int> */
5758 /* Covariant cast for argument 0 (i) <var_282:Int> isa OTHER */
5759 /* <var_282:Int> isa OTHER */
5760 var285
= 1; /* easy <var_282:Int> isa OTHER*/
5761 if (unlikely(!var285
)) {
5762 var_class_name288
= type_core__Int
.name
;
5763 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name288
);
5764 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
5767 var289
= var_i280
< var_282
;
5770 RET_LABEL284
:(void)0;
5775 goto BREAK_label290
;
5778 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5779 var293
= var_map
->attrs
[COLOR_nitc__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5780 if (unlikely(var293
== NULL
)) {
5781 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5782 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 628);
5786 RET_LABEL292
:(void)0;
5790 var295
= (val
*)(var_i280
<<2|1);
5791 var294
= core___core__CoupleMap___MapRead__has_key(var291
, var295
);
5794 goto BREAK_label296
;
5798 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
5799 var299
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
5800 if (unlikely(var299
== NULL
)) {
5801 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
5802 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1783);
5806 RET_LABEL298
:(void)0;
5810 var300
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var297
, var_i280
);
5812 var_param301
= var300
;
5815 { /* Inline kernel#Int#< (var_j,var_nbargs) on <var_j:Int> */
5816 /* Covariant cast for argument 0 (i) <var_nbargs:Int> isa OTHER */
5817 /* <var_nbargs:Int> isa OTHER */
5818 var305
= 1; /* easy <var_nbargs:Int> isa OTHER*/
5819 if (unlikely(!var305
)) {
5820 var_class_name308
= type_core__Int
.name
;
5821 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name308
);
5822 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
5825 var309
= var_j
< var_nbargs
;
5828 RET_LABEL304
:(void)0;
5834 var311
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_args
, var_j
);
5836 /* <var311:nullable Object(AExpr)> isa ANamedargExpr */
5837 cltype313
= type_nitc__ANamedargExpr
.color
;
5838 idtype314
= type_nitc__ANamedargExpr
.id
;
5839 if(cltype313
>= var311
->type
->table_size
) {
5842 var312
= var311
->type
->type_table
[cltype313
] == idtype314
;
5850 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
5851 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5852 /* <1l:Int> isa OTHER */
5853 var317
= 1; /* easy <1l:Int> isa OTHER*/
5854 if (unlikely(!var317
)) {
5855 var_class_name320
= type_core__Int
.name
;
5856 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name320
);
5857 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
5860 var321
= var_j
+ 1l;
5863 RET_LABEL316
:(void)0;
5868 goto BREAK_label322
;
5871 BREAK_label322
: (void)0;
5873 { /* Inline kernel#Int#>= (var_j,var_nbargs) on <var_j:Int> */
5874 /* Covariant cast for argument 0 (i) <var_nbargs:Int> isa OTHER */
5875 /* <var_nbargs:Int> isa OTHER */
5876 var325
= 1; /* easy <var_nbargs:Int> isa OTHER*/
5877 if (unlikely(!var325
)) {
5878 var_class_name328
= type_core__Int
.name
;
5879 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name328
);
5880 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 729);
5883 var329
= var_j
>= var_nbargs
;
5886 RET_LABEL324
:(void)0;
5891 { /* Inline model#MParameter#mtype (var_param301) on <var_param301:MParameter> */
5892 var332
= var_param301
->attrs
[COLOR_nitc__model__MParameter___mtype
].val
; /* _mtype on <var_param301:MParameter> */
5893 if (unlikely(var332
== NULL
)) {
5894 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
5895 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1900);
5899 RET_LABEL331
:(void)0;
5902 /* <var330:MType> isa MNullableType */
5903 cltype334
= type_nitc__MNullableType
.color
;
5904 idtype335
= type_nitc__MNullableType
.id
;
5905 if(cltype334
>= var330
->type
->table_size
) {
5908 var333
= var330
->type
->type_table
[cltype334
] == idtype335
;
5913 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
5914 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5915 /* <1l:Int> isa OTHER */
5916 var339
= 1; /* easy <1l:Int> isa OTHER*/
5917 if (unlikely(!var339
)) {
5918 var_class_name342
= type_core__Int
.name
;
5919 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name342
);
5920 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
5923 var343
= var_j
+ 1l;
5926 RET_LABEL338
:(void)0;
5929 var_min_arity
= var337
;
5933 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
5934 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5935 /* <1l:Int> isa OTHER */
5936 var346
= 1; /* easy <1l:Int> isa OTHER*/
5937 if (unlikely(!var346
)) {
5938 var_class_name349
= type_core__Int
.name
;
5939 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name349
);
5940 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
5943 var350
= var_j
+ 1l;
5946 RET_LABEL345
:(void)0;
5950 goto BREAK_label296
;
5954 var351
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_args
, var_j
);
5958 { /* Inline typing#SignatureMap#map (var_map) on <var_map:SignatureMap> */
5959 var354
= var_map
->attrs
[COLOR_nitc__typing__SignatureMap___map
].val
; /* _map on <var_map:SignatureMap> */
5960 if (unlikely(var354
== NULL
)) {
5961 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
5962 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 628);
5966 RET_LABEL353
:(void)0;
5970 var355
= (val
*)(var_i280
<<2|1);
5971 var356
= (val
*)(var_j
<<2|1);
5972 core___core__ArrayMap___core__abstract_collection__Map___91d_93d_61d(var352
, var355
, var356
); /* Direct call array#ArrayMap#[]= on <var352:ArrayMap[Int, Int]>*/
5975 { /* Inline kernel#Int#+ (var_j,1l) on <var_j:Int> */
5976 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
5977 /* <1l:Int> isa OTHER */
5978 var359
= 1; /* easy <1l:Int> isa OTHER*/
5979 if (unlikely(!var359
)) {
5980 var_class_name362
= type_core__Int
.name
;
5981 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name362
);
5982 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
5985 var363
= var_j
+ 1l;
5988 RET_LABEL358
:(void)0;
5993 { /* Inline kernel#Int#== (var_i280,var_vararg_rank) on <var_i280:Int> */
5994 var366
= var_i280
== var_vararg_rank
;
5997 RET_LABEL365
:(void)0;
6002 { /* Inline kernel#Int#+ (var_j,var_vararg_decl) on <var_j:Int> */
6003 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
6004 /* <var_vararg_decl:Int> isa OTHER */
6005 var369
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
6006 if (unlikely(!var369
)) {
6007 var_class_name372
= type_core__Int
.name
;
6008 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name372
);
6009 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
6012 var373
= var_j
+ var_vararg_decl
;
6015 RET_LABEL368
:(void)0;
6019 goto BREAK_label296
;
6023 { /* Inline model#MParameter#is_vararg (var_param301) on <var_param301:MParameter> */
6024 var376
= var_param301
->attrs
[COLOR_nitc__model__MParameter___is_vararg
].s
; /* _is_vararg on <var_param301:MParameter> */
6026 RET_LABEL375
:(void)0;
6032 { /* Inline model#MParameter#mtype (var_param301) on <var_param301:MParameter> */
6033 var380
= var_param301
->attrs
[COLOR_nitc__model__MParameter___mtype
].val
; /* _mtype on <var_param301:MParameter> */
6034 if (unlikely(var380
== NULL
)) {
6035 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6036 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1900);
6040 RET_LABEL379
:(void)0;
6043 var_paramtype
= var378
;
6045 var381
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(self
, var_arg
, var_paramtype
);
6049 var382
= nitc__typing___nitc__typing__TypeVisitor___check_one_vararg(self
, var_arg
, var_param301
);
6052 BREAK_label296
: (void)0;
6054 var383
= core___core__Int___Discrete__successor(var_i280
, 1l);
6058 BREAK_label290
: (void)0;
6060 { /* Inline kernel#Int#> (var_min_arity,0l) on <var_min_arity:Int> */
6061 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6062 /* <0l:Int> isa OTHER */
6063 var386
= 1; /* easy <0l:Int> isa OTHER*/
6064 if (unlikely(!var386
)) {
6065 var_class_name389
= type_core__Int
.name
;
6066 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name389
);
6067 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 730);
6070 var390
= var_min_arity
> 0l;
6073 RET_LABEL385
:(void)0;
6077 if (var_last_is_padded
){
6079 { /* Inline kernel#Int#+ (var_min_arity,1l) on <var_min_arity:Int> */
6080 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6081 /* <1l:Int> isa OTHER */
6082 var393
= 1; /* easy <1l:Int> isa OTHER*/
6083 if (unlikely(!var393
)) {
6084 var_class_name396
= type_core__Int
.name
;
6085 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name396
);
6086 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
6089 var397
= var_min_arity
+ 1l;
6092 RET_LABEL392
:(void)0;
6095 var_min_arity
= var391
;
6099 var398
= nitc___nitc__MSignature___arity(var_msignature
);
6102 { /* Inline kernel#Int#< (var_min_arity,var398) on <var_min_arity:Int> */
6103 /* Covariant cast for argument 0 (i) <var398:Int> isa OTHER */
6104 /* <var398:Int> isa OTHER */
6105 var401
= 1; /* easy <var398:Int> isa OTHER*/
6106 if (unlikely(!var401
)) {
6107 var_class_name404
= type_core__Int
.name
;
6108 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name404
);
6109 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
6112 var405
= var_min_arity
< var398
;
6115 RET_LABEL400
:(void)0;
6120 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
6121 var408
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
6122 if (unlikely(var408
== NULL
)) {
6123 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6124 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
6128 RET_LABEL407
:(void)0;
6131 if (unlikely(varonce409
==NULL
)) {
6132 var410
= NEW_core__NativeArray(10l, &type_core__NativeArray__core__String
);
6133 if (likely(varonce411
!=NULL
)) {
6134 var412
= varonce411
;
6136 var413
= "Error: expected at least ";
6137 var414
= core__flat___NativeString___to_s_full(var413
, 25l, 25l);
6139 varonce411
= var412
;
6141 ((struct instance_core__NativeArray
*)var410
)->values
[0]=var412
;
6142 if (likely(varonce415
!=NULL
)) {
6143 var416
= varonce415
;
6145 var417
= " argument(s) for `";
6146 var418
= core__flat___NativeString___to_s_full(var417
, 18l, 18l);
6148 varonce415
= var416
;
6150 ((struct instance_core__NativeArray
*)var410
)->values
[2]=var416
;
6151 if (likely(varonce419
!=NULL
)) {
6152 var420
= varonce419
;
6155 var422
= core__flat___NativeString___to_s_full(var421
, 7l, 7l);
6157 varonce419
= var420
;
6159 ((struct instance_core__NativeArray
*)var410
)->values
[5]=var420
;
6160 if (likely(varonce423
!=NULL
)) {
6161 var424
= varonce423
;
6163 var425
= ". See introduction at `";
6164 var426
= core__flat___NativeString___to_s_full(var425
, 23l, 23l);
6166 varonce423
= var424
;
6168 ((struct instance_core__NativeArray
*)var410
)->values
[7]=var424
;
6169 if (likely(varonce427
!=NULL
)) {
6170 var428
= varonce427
;
6173 var430
= core__flat___NativeString___to_s_full(var429
, 2l, 2l);
6175 varonce427
= var428
;
6177 ((struct instance_core__NativeArray
*)var410
)->values
[9]=var428
;
6179 var410
= varonce409
;
6182 var431
= core__flat___Int___core__abstract_text__Object__to_s(var_min_arity
);
6183 ((struct instance_core__NativeArray
*)var410
)->values
[1]=var431
;
6185 var432
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
6187 ((struct instance_core__NativeArray
*)var410
)->values
[3]=var432
;
6189 var433
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
6191 ((struct instance_core__NativeArray
*)var410
)->values
[4]=var433
;
6193 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
6194 var436
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
6196 RET_LABEL435
:(void)0;
6199 var437
= core__flat___Int___core__abstract_text__Object__to_s(var434
);
6200 ((struct instance_core__NativeArray
*)var410
)->values
[6]=var437
;
6202 var438
= nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mproperty
);
6204 ((struct instance_core__NativeArray
*)var410
)->values
[8]=var438
;
6206 var439
= ((val
*(*)(val
* self
))(var410
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var410
); /* native_to_s on <var410:NativeArray[String]>*/
6208 varonce409
= var410
;
6210 nitc___nitc__ModelBuilder___error(var406
, var_node
, var439
); /* Direct call modelbuilder_base#ModelBuilder#error on <var406:ModelBuilder>*/
6214 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
6215 var442
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
6216 if (unlikely(var442
== NULL
)) {
6217 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6218 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
6222 RET_LABEL441
:(void)0;
6225 if (unlikely(varonce443
==NULL
)) {
6226 var444
= NEW_core__NativeArray(10l, &type_core__NativeArray__core__String
);
6227 if (likely(varonce445
!=NULL
)) {
6228 var446
= varonce445
;
6230 var447
= "Error: expected ";
6231 var448
= core__flat___NativeString___to_s_full(var447
, 16l, 16l);
6233 varonce445
= var446
;
6235 ((struct instance_core__NativeArray
*)var444
)->values
[0]=var446
;
6236 if (likely(varonce449
!=NULL
)) {
6237 var450
= varonce449
;
6239 var451
= " argument(s) for `";
6240 var452
= core__flat___NativeString___to_s_full(var451
, 18l, 18l);
6242 varonce449
= var450
;
6244 ((struct instance_core__NativeArray
*)var444
)->values
[2]=var450
;
6245 if (likely(varonce453
!=NULL
)) {
6246 var454
= varonce453
;
6249 var456
= core__flat___NativeString___to_s_full(var455
, 7l, 7l);
6251 varonce453
= var454
;
6253 ((struct instance_core__NativeArray
*)var444
)->values
[5]=var454
;
6254 if (likely(varonce457
!=NULL
)) {
6255 var458
= varonce457
;
6257 var459
= ". See introduction at `";
6258 var460
= core__flat___NativeString___to_s_full(var459
, 23l, 23l);
6260 varonce457
= var458
;
6262 ((struct instance_core__NativeArray
*)var444
)->values
[7]=var458
;
6263 if (likely(varonce461
!=NULL
)) {
6264 var462
= varonce461
;
6267 var464
= core__flat___NativeString___to_s_full(var463
, 2l, 2l);
6269 varonce461
= var462
;
6271 ((struct instance_core__NativeArray
*)var444
)->values
[9]=var462
;
6273 var444
= varonce443
;
6276 var465
= core__flat___Int___core__abstract_text__Object__to_s(var_min_arity
);
6277 ((struct instance_core__NativeArray
*)var444
)->values
[1]=var465
;
6279 var466
= ((val
*(*)(val
* self
))(var_mproperty
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_mproperty
); /* to_s on <var_mproperty:MProperty>*/
6281 ((struct instance_core__NativeArray
*)var444
)->values
[3]=var466
;
6283 var467
= ((val
*(*)(val
* self
))(var_msignature
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_msignature
); /* to_s on <var_msignature:MSignature>*/
6285 ((struct instance_core__NativeArray
*)var444
)->values
[4]=var467
;
6287 { /* Inline array#AbstractArrayRead#length (var_args) on <var_args:Array[AExpr]> */
6288 var470
= var_args
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_args:Array[AExpr]> */
6290 RET_LABEL469
:(void)0;
6293 var471
= core__flat___Int___core__abstract_text__Object__to_s(var468
);
6294 ((struct instance_core__NativeArray
*)var444
)->values
[6]=var471
;
6296 var472
= nitc___nitc__MProperty___nitc__model_base__MEntity__full_name(var_mproperty
);
6298 ((struct instance_core__NativeArray
*)var444
)->values
[8]=var472
;
6300 var473
= ((val
*(*)(val
* self
))(var444
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var444
); /* native_to_s on <var444:NativeArray[String]>*/
6302 varonce443
= var444
;
6304 nitc___nitc__ModelBuilder___error(var440
, var_node
, var473
); /* Direct call modelbuilder_base#ModelBuilder#error on <var440:ModelBuilder>*/
6312 { /* Inline kernel#Int#>= (var_vararg_rank,0l) on <var_vararg_rank:Int> */
6313 /* Covariant cast for argument 0 (i) <0l:Int> isa OTHER */
6314 /* <0l:Int> isa OTHER */
6315 var476
= 1; /* easy <0l:Int> isa OTHER*/
6316 if (unlikely(!var476
)) {
6317 var_class_name479
= type_core__Int
.name
;
6318 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name479
);
6319 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 729);
6322 var480
= var_vararg_rank
>= 0l;
6325 RET_LABEL475
:(void)0;
6330 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
6331 var483
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
6332 if (unlikely(var483
== NULL
)) {
6333 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6334 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1783);
6338 RET_LABEL482
:(void)0;
6342 var484
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var481
, var_vararg_rank
);
6345 { /* Inline model#MParameter#mtype (var484) on <var484:nullable Object(MParameter)> */
6346 var487
= var484
->attrs
[COLOR_nitc__model__MParameter___mtype
].val
; /* _mtype on <var484:nullable Object(MParameter)> */
6347 if (unlikely(var487
== NULL
)) {
6348 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6349 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1900);
6353 RET_LABEL486
:(void)0;
6356 var_paramtype488
= var485
;
6358 var489
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_args
, var_vararg_rank
);
6362 { /* Inline kernel#Int#== (var_vararg_decl,0l) on <var_vararg_decl:Int> */
6363 var492
= var_vararg_decl
== 0l;
6366 RET_LABEL491
:(void)0;
6371 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:MSignature> */
6372 var495
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:MSignature> */
6373 if (unlikely(var495
== NULL
)) {
6374 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
6375 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1783);
6379 RET_LABEL494
:(void)0;
6383 var496
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var493
, var_vararg_rank
);
6386 var497
= nitc__typing___nitc__typing__TypeVisitor___check_one_vararg(self
, var_first
, var496
);
6396 { /* Inline kernel#Int#+ (var_vararg_decl,1l) on <var_vararg_decl:Int> */
6397 /* Covariant cast for argument 0 (i) <1l:Int> isa OTHER */
6398 /* <1l:Int> isa OTHER */
6399 var501
= 1; /* easy <1l:Int> isa OTHER*/
6400 if (unlikely(!var501
)) {
6401 var_class_name504
= type_core__Int
.name
;
6402 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name504
);
6403 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
6406 var505
= var_vararg_decl
+ 1l;
6409 RET_LABEL500
:(void)0;
6413 { /* Inline typing#AExpr#vararg_decl= (var_first,var499) on <var_first:AExpr> */
6414 var_first
->attrs
[COLOR_nitc__typing__AExpr___vararg_decl
].l
= var499
; /* _vararg_decl on <var_first:AExpr> */
6415 RET_LABEL506
:(void)0;
6418 var_i507
= var_vararg_rank
;
6420 { /* Inline kernel#Int#+ (var_vararg_rank,var_vararg_decl) on <var_vararg_rank:Int> */
6421 /* Covariant cast for argument 0 (i) <var_vararg_decl:Int> isa OTHER */
6422 /* <var_vararg_decl:Int> isa OTHER */
6423 var510
= 1; /* easy <var_vararg_decl:Int> isa OTHER*/
6424 if (unlikely(!var510
)) {
6425 var_class_name513
= type_core__Int
.name
;
6426 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name513
);
6427 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 731);
6430 var514
= var_vararg_rank
+ var_vararg_decl
;
6433 RET_LABEL509
:(void)0;
6439 { /* Inline kernel#Int#<= (var_i507,var_515) on <var_i507:Int> */
6440 /* Covariant cast for argument 0 (i) <var_515:Int> isa OTHER */
6441 /* <var_515:Int> isa OTHER */
6442 var518
= 1; /* easy <var_515:Int> isa OTHER*/
6443 if (unlikely(!var518
)) {
6444 var_class_name521
= type_core__Int
.name
;
6445 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name521
);
6446 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 727);
6449 var522
= var_i507
<= var_515
;
6452 RET_LABEL517
:(void)0;
6457 goto BREAK_label523
;
6460 var524
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var_args
, var_i507
);
6463 var525
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(self
, var524
, var_paramtype488
);
6466 var526
= core___core__Int___Discrete__successor(var_i507
, 1l);
6470 BREAK_label523
: (void)0;
6479 /* method typing#TypeVisitor#check_one_vararg for (self: TypeVisitor, AExpr, MParameter): Bool */
6480 short int nitc__typing___nitc__typing__TypeVisitor___check_one_vararg(val
* self
, val
* p0
, val
* p1
) {
6481 short int var
/* : Bool */;
6482 val
* var_arg
/* var arg: AExpr */;
6483 val
* var_param
/* var param: MParameter */;
6484 val
* var1
/* : MType */;
6485 val
* var3
/* : MType */;
6486 val
* var_paramtype
/* var paramtype: MType */;
6487 static val
* varonce
;
6488 val
* var4
/* : String */;
6489 char* var5
/* : NativeString */;
6490 val
* var6
/* : String */;
6491 val
* var7
/* : nullable MClass */;
6492 val
* var_mclass
/* var mclass: nullable MClass */;
6493 short int var8
/* : Bool */;
6494 short int var9
/* : Bool */;
6495 val
* var_other
/* var other: nullable Object */;
6496 short int var11
/* : Bool */;
6497 short int var13
/* : Bool */;
6498 val
* var14
/* : Array[MType] */;
6499 val
* var_
/* var : Array[MType] */;
6500 val
* var15
/* : MClassType */;
6501 val
* var_array_mtype
/* var array_mtype: MClassType */;
6502 short int var16
/* : Bool */;
6505 val
* var17
/* : AExpr */;
6506 val
* var19
/* : AExpr */;
6507 val
* var20
/* : nullable MType */;
6508 val
* var21
/* : AExpr */;
6509 val
* var23
/* : AExpr */;
6510 val
* var24
/* : nullable MType */;
6511 val
* var26
/* : nullable MType */;
6512 val
* var_t
/* var t: nullable MType */;
6513 short int var27
/* : Bool */;
6514 short int var28
/* : Bool */;
6515 short int var30
/* : Bool */;
6516 short int var32
/* : Bool */;
6517 short int var33
/* : Bool */;
6518 short int var34
/* : Bool */;
6519 short int var35
/* : Bool */;
6520 short int var_36
/* var : Bool */;
6521 short int var37
/* : Bool */;
6522 val
* var39
/* : NativeArray[String] */;
6523 static val
* varonce38
;
6524 static val
* varonce40
;
6525 val
* var41
/* : String */;
6526 char* var42
/* : NativeString */;
6527 val
* var43
/* : String */;
6528 static val
* varonce44
;
6529 val
* var45
/* : String */;
6530 char* var46
/* : NativeString */;
6531 val
* var47
/* : String */;
6532 static val
* varonce48
;
6533 val
* var49
/* : String */;
6534 char* var50
/* : NativeString */;
6535 val
* var51
/* : String */;
6536 val
* var52
/* : String */;
6537 val
* var53
/* : String */;
6538 val
* var54
/* : String */;
6539 val
* var56
/* : nullable MType */;
6543 { /* Inline model#MParameter#mtype (var_param) on <var_param:MParameter> */
6544 var3
= var_param
->attrs
[COLOR_nitc__model__MParameter___mtype
].val
; /* _mtype on <var_param:MParameter> */
6545 if (unlikely(var3
== NULL
)) {
6546 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
6547 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1900);
6554 var_paramtype
= var1
;
6555 if (likely(varonce
!=NULL
)) {
6559 var6
= core__flat___NativeString___to_s_full(var5
, 5l, 5l);
6564 var7
= nitc__typing___nitc__typing__TypeVisitor___get_mclass(self
, var_arg
, var4
);
6567 if (var_mclass
== NULL
) {
6568 var8
= 1; /* is null */
6570 var8
= 0; /* arg is null but recv is not */
6573 { /* Inline kernel#Object#== (var_mclass,((val*)NULL)) on <var_mclass:nullable MClass> */
6574 var_other
= ((val
*)NULL
);
6576 { /* Inline kernel#Object#is_same_instance (var_mclass,var_other) on <var_mclass:nullable MClass(MClass)> */
6577 var13
= var_mclass
== var_other
;
6580 RET_LABEL12
:(void)0;
6585 RET_LABEL10
:(void)0;
6594 var14
= NEW_core__Array(&type_core__Array__nitc__MType
);
6596 core___core__Array___with_capacity(var14
, 1l); /* Direct call array#Array#with_capacity on <var14:Array[MType]>*/
6600 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, var_paramtype
); /* Direct call array#AbstractArray#push on <var_:Array[MType]>*/
6603 var15
= nitc___nitc__MClass___get_mtype(var_mclass
, var_
);
6605 var_array_mtype
= var15
;
6606 /* <var_arg:AExpr> isa AVarargExpr */
6607 cltype
= type_nitc__AVarargExpr
.color
;
6608 idtype
= type_nitc__AVarargExpr
.id
;
6609 if(cltype
>= var_arg
->type
->table_size
) {
6612 var16
= var_arg
->type
->type_table
[cltype
] == idtype
;
6616 { /* Inline parser_nodes#AVarargExpr#n_expr (var_arg) on <var_arg:AExpr(AVarargExpr)> */
6617 var19
= var_arg
->attrs
[COLOR_nitc__parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_arg:AExpr(AVarargExpr)> */
6618 if (unlikely(var19
== NULL
)) {
6619 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6620 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2630);
6624 RET_LABEL18
:(void)0;
6628 var20
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(self
, var17
, var_array_mtype
);
6631 { /* Inline parser_nodes#AVarargExpr#n_expr (var_arg) on <var_arg:AExpr(AVarargExpr)> */
6632 var23
= var_arg
->attrs
[COLOR_nitc__parser_nodes__AVarargExpr___n_expr
].val
; /* _n_expr on <var_arg:AExpr(AVarargExpr)> */
6633 if (unlikely(var23
== NULL
)) {
6634 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
6635 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 2630);
6639 RET_LABEL22
:(void)0;
6643 var24
= ((val
*(*)(val
* self
))(var21
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(var21
); /* mtype on <var21:AExpr>*/
6646 { /* Inline typing#AExpr#mtype= (var_arg,var24) on <var_arg:AExpr(AVarargExpr)> */
6647 var_arg
->attrs
[COLOR_nitc__typing__AExpr___mtype
].val
= var24
; /* _mtype on <var_arg:AExpr(AVarargExpr)> */
6648 RET_LABEL25
:(void)0;
6653 var26
= nitc__typing___nitc__typing__TypeVisitor___visit_expr(self
, var_arg
);
6656 if (var_t
== NULL
) {
6657 var27
= 1; /* is null */
6659 var27
= 0; /* arg is null but recv is not */
6662 { /* Inline kernel#Object#== (var_t,((val*)NULL)) on <var_t:nullable MType> */
6663 var_other
= ((val
*)NULL
);
6665 { /* Inline kernel#Object#is_same_instance (var_t,var_other) on <var_t:nullable MType(MType)> */
6666 var32
= var_t
== var_other
;
6669 RET_LABEL31
:(void)0;
6674 RET_LABEL29
:(void)0;
6684 var34
= nitc__typing___nitc__typing__TypeVisitor___is_subtype(self
, var_t
, var_paramtype
);
6690 var37
= nitc__typing___nitc__typing__TypeVisitor___is_subtype(self
, var_t
, var_array_mtype
);
6697 if (unlikely(varonce38
==NULL
)) {
6698 var39
= NEW_core__NativeArray(5l, &type_core__NativeArray__core__String
);
6699 if (likely(varonce40
!=NULL
)) {
6702 var42
= "Type Error: expected `";
6703 var43
= core__flat___NativeString___to_s_full(var42
, 22l, 22l);
6707 ((struct instance_core__NativeArray
*)var39
)->values
[0]=var41
;
6708 if (likely(varonce44
!=NULL
)) {
6712 var47
= core__flat___NativeString___to_s_full(var46
, 8l, 8l);
6716 ((struct instance_core__NativeArray
*)var39
)->values
[2]=var45
;
6717 if (likely(varonce48
!=NULL
)) {
6720 var50
= "`. Is an ellipsis `...` missing on the argument?";
6721 var51
= core__flat___NativeString___to_s_full(var50
, 48l, 48l);
6725 ((struct instance_core__NativeArray
*)var39
)->values
[4]=var49
;
6731 var52
= ((val
*(*)(val
* self
))(var_paramtype
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_paramtype
); /* to_s on <var_paramtype:MType>*/
6733 ((struct instance_core__NativeArray
*)var39
)->values
[1]=var52
;
6735 var53
= ((val
*(*)(val
* self
))(var_t
->class->vft
[COLOR_core__abstract_text__Object__to_s
]))(var_t
); /* to_s on <var_t:nullable MType(MType)>*/
6737 ((struct instance_core__NativeArray
*)var39
)->values
[3]=var53
;
6739 var54
= ((val
*(*)(val
* self
))(var39
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var39
); /* native_to_s on <var39:NativeArray[String]>*/
6743 nitc__typing___nitc__typing__TypeVisitor___error(self
, var_arg
, var54
); /* Direct call typing#TypeVisitor#error on <self:TypeVisitor>*/
6750 { /* Inline typing#AExpr#vararg_decl= (var_arg,1l) on <var_arg:AExpr> */
6751 var_arg
->attrs
[COLOR_nitc__typing__AExpr___vararg_decl
].l
= 1l; /* _vararg_decl on <var_arg:AExpr> */
6752 RET_LABEL55
:(void)0;
6756 var56
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(self
, var_arg
, var_paramtype
);
6764 /* method typing#TypeVisitor#error for (self: TypeVisitor, ANode, String) */
6765 void nitc__typing___nitc__typing__TypeVisitor___error(val
* self
, val
* p0
, val
* p1
) {
6766 val
* var_node
/* var node: ANode */;
6767 val
* var_message
/* var message: String */;
6768 val
* var
/* : ModelBuilder */;
6769 val
* var2
/* : ModelBuilder */;
6773 { /* Inline typing#TypeVisitor#modelbuilder (self) on <self:TypeVisitor> */
6774 var2
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <self:TypeVisitor> */
6775 if (unlikely(var2
== NULL
)) {
6776 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
6777 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
6785 nitc___nitc__ModelBuilder___error(var
, var_node
, var_message
); /* Direct call modelbuilder_base#ModelBuilder#error on <var:ModelBuilder>*/
6789 /* method typing#TypeVisitor#get_variable for (self: TypeVisitor, AExpr, Variable): nullable MType */
6790 val
* nitc__typing___nitc__typing__TypeVisitor___get_variable(val
* self
, val
* p0
, val
* p1
) {
6791 val
* var
/* : nullable MType */;
6792 val
* var_node
/* var node: AExpr */;
6793 val
* var_variable
/* var variable: Variable */;
6794 short int var1
/* : Bool */;
6795 short int var3
/* : Bool */;
6796 short int var4
/* : Bool */;
6797 val
* var5
/* : nullable MType */;
6798 val
* var7
/* : nullable MType */;
6799 val
* var8
/* : nullable FlowContext */;
6800 val
* var10
/* : nullable FlowContext */;
6801 val
* var_flow
/* var flow: nullable FlowContext */;
6802 short int var11
/* : Bool */;
6803 short int var12
/* : Bool */;
6804 val
* var_other
/* var other: nullable Object */;
6805 short int var14
/* : Bool */;
6806 short int var16
/* : Bool */;
6807 val
* var17
/* : HashMap[Variable, nullable MType] */;
6808 val
* var19
/* : HashMap[Variable, nullable MType] */;
6809 short int var20
/* : Bool */;
6810 val
* var21
/* : HashMap[Variable, nullable MType] */;
6811 val
* var23
/* : HashMap[Variable, nullable MType] */;
6812 val
* var24
/* : nullable Object */;
6813 val
* var25
/* : Array[nullable MType] */;
6814 val
* var_mtypes
/* var mtypes: Array[nullable MType] */;
6815 long var26
/* : Int */;
6816 long var28
/* : Int */;
6817 short int var29
/* : Bool */;
6818 short int var31
/* : Bool */;
6819 val
* var32
/* : nullable MType */;
6820 val
* var34
/* : nullable MType */;
6821 long var35
/* : Int */;
6822 long var37
/* : Int */;
6823 short int var38
/* : Bool */;
6824 short int var40
/* : Bool */;
6825 val
* var41
/* : nullable Object */;
6826 val
* var42
/* : nullable MType */;
6827 val
* var_res
/* var res: nullable MType */;
6828 short int var43
/* : Bool */;
6829 short int var44
/* : Bool */;
6830 short int var46
/* : Bool */;
6831 short int var48
/* : Bool */;
6832 val
* var49
/* : nullable MType */;
6833 val
* var51
/* : nullable MType */;
6837 { /* Inline typing#Variable#is_adapted (var_variable) on <var_variable:Variable> */
6838 var3
= var_variable
->attrs
[COLOR_nitc__typing__Variable___is_adapted
].s
; /* _is_adapted on <var_variable:Variable> */
6846 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
6847 var7
= var_variable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
6857 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
6858 var10
= var_node
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
6864 if (var_flow
== NULL
) {
6865 var11
= 1; /* is null */
6867 var11
= 0; /* arg is null but recv is not */
6870 { /* Inline kernel#Object#== (var_flow,((val*)NULL)) on <var_flow:nullable FlowContext> */
6871 var_other
= ((val
*)NULL
);
6873 { /* Inline kernel#Object#is_same_instance (var_flow,var_other) on <var_flow:nullable FlowContext(FlowContext)> */
6874 var16
= var_flow
== var_other
;
6877 RET_LABEL15
:(void)0;
6882 RET_LABEL13
:(void)0;
6892 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
6893 var19
= var_flow
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
6894 if (unlikely(var19
== NULL
)) {
6895 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6896 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
6900 RET_LABEL18
:(void)0;
6904 var20
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var17
, var_variable
);
6908 { /* Inline typing#FlowContext#vars (var_flow) on <var_flow:nullable FlowContext(FlowContext)> */
6909 var23
= var_flow
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <var_flow:nullable FlowContext(FlowContext)> */
6910 if (unlikely(var23
== NULL
)) {
6911 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
6912 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
6916 RET_LABEL22
:(void)0;
6920 var24
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var21
, var_variable
);
6926 var25
= nitc__typing___FlowContext___collect_types(var_flow
, var_variable
);
6930 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:Array[nullable MType]> */
6931 var28
= var_mtypes
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:Array[nullable MType]> */
6933 RET_LABEL27
:(void)0;
6937 { /* Inline kernel#Int#== (var26,0l) on <var26:Int> */
6938 var31
= var26
== 0l;
6941 RET_LABEL30
:(void)0;
6946 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
6947 var34
= var_variable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
6949 RET_LABEL33
:(void)0;
6956 { /* Inline array#AbstractArrayRead#length (var_mtypes) on <var_mtypes:Array[nullable MType]> */
6957 var37
= var_mtypes
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_mtypes:Array[nullable MType]> */
6959 RET_LABEL36
:(void)0;
6963 { /* Inline kernel#Int#== (var35,1l) on <var35:Int> */
6964 var40
= var35
== 1l;
6967 RET_LABEL39
:(void)0;
6972 var41
= core___core__SequenceRead___Collection__first(var_mtypes
);
6978 var42
= nitc__typing___nitc__typing__TypeVisitor___merge_types(self
, var_node
, var_mtypes
);
6981 if (var_res
== NULL
) {
6982 var43
= 1; /* is null */
6984 var43
= 0; /* arg is null but recv is not */
6987 { /* Inline kernel#Object#== (var_res,((val*)NULL)) on <var_res:nullable MType> */
6988 var_other
= ((val
*)NULL
);
6990 { /* Inline kernel#Object#is_same_instance (var_res,var_other) on <var_res:nullable MType(MType)> */
6991 var48
= var_res
== var_other
;
6994 RET_LABEL47
:(void)0;
6999 RET_LABEL45
:(void)0;
7005 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
7006 var51
= var_variable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
7008 RET_LABEL50
:(void)0;
7022 /* method typing#TypeVisitor#dirty for (self: TypeVisitor): Bool */
7023 short int nitc__typing___nitc__typing__TypeVisitor___dirty(val
* self
) {
7024 short int var
/* : Bool */;
7025 short int var1
/* : Bool */;
7026 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___dirty
].s
; /* _dirty on <self:TypeVisitor> */
7031 /* method typing#TypeVisitor#dirty= for (self: TypeVisitor, Bool) */
7032 void nitc__typing___nitc__typing__TypeVisitor___dirty_61d(val
* self
, short int p0
) {
7033 self
->attrs
[COLOR_nitc__typing__TypeVisitor___dirty
].s
= p0
; /* _dirty on <self:TypeVisitor> */
7036 /* method typing#TypeVisitor#has_loop for (self: TypeVisitor): Bool */
7037 short int nitc__typing___nitc__typing__TypeVisitor___has_loop(val
* self
) {
7038 short int var
/* : Bool */;
7039 short int var1
/* : Bool */;
7040 var1
= self
->attrs
[COLOR_nitc__typing__TypeVisitor___has_loop
].s
; /* _has_loop on <self:TypeVisitor> */
7045 /* method typing#TypeVisitor#has_loop= for (self: TypeVisitor, Bool) */
7046 void nitc__typing___nitc__typing__TypeVisitor___has_loop_61d(val
* self
, short int p0
) {
7047 self
->attrs
[COLOR_nitc__typing__TypeVisitor___has_loop
].s
= p0
; /* _has_loop on <self:TypeVisitor> */
7050 /* method typing#TypeVisitor#set_variable for (self: TypeVisitor, AExpr, Variable, nullable MType) */
7051 void nitc__typing___nitc__typing__TypeVisitor___set_variable(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7052 val
* var_node
/* var node: AExpr */;
7053 val
* var_variable
/* var variable: Variable */;
7054 val
* var_mtype
/* var mtype: nullable MType */;
7055 val
* var
/* : nullable FlowContext */;
7056 val
* var2
/* : nullable FlowContext */;
7057 val
* var_flow
/* var flow: nullable FlowContext */;
7058 short int var3
/* : Bool */;
7059 short int var4
/* : Bool */;
7060 val
* var_other
/* var other: nullable Object */;
7061 short int var6
/* : Bool */;
7062 short int var7
/* : Bool */;
7067 { /* Inline flow#AExpr#after_flow_context (var_node) on <var_node:AExpr> */
7068 var2
= var_node
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_node:AExpr> */
7074 if (var_flow
== NULL
) {
7075 var3
= 0; /* is null */
7077 var3
= 1; /* arg is null and recv is not */
7080 { /* Inline kernel#Object#!= (var_flow,((val*)NULL)) on <var_flow:nullable FlowContext> */
7081 var_other
= ((val
*)NULL
);
7083 var6
= ((short int(*)(val
* self
, val
* p0
))(var_flow
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_flow
, var_other
); /* == on <var_flow:nullable FlowContext(FlowContext)>*/
7092 if (unlikely(!var3
)) {
7093 PRINT_ERROR("Runtime error: %s", "Assert failed");
7094 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 594);
7098 nitc__typing___FlowContext___set_var(var_flow
, self
, var_variable
, var_mtype
); /* Direct call typing#FlowContext#set_var on <var_flow:nullable FlowContext(FlowContext)>*/
7102 /* method typing#TypeVisitor#merge_types for (self: TypeVisitor, ANode, Array[nullable MType]): nullable MType */
7103 val
* nitc__typing___nitc__typing__TypeVisitor___merge_types(val
* self
, val
* p0
, val
* p1
) {
7104 val
* var
/* : nullable MType */;
7105 val
* var_node
/* var node: ANode */;
7106 val
* var_col
/* var col: Array[nullable MType] */;
7107 long var1
/* : Int */;
7108 long var3
/* : Int */;
7109 short int var4
/* : Bool */;
7110 short int var6
/* : Bool */;
7111 val
* var7
/* : nullable Object */;
7112 val
* var_
/* var : Array[nullable MType] */;
7113 val
* var8
/* : IndexedIterator[nullable Object] */;
7114 val
* var_9
/* var : IndexedIterator[nullable MType] */;
7115 short int var10
/* : Bool */;
7116 val
* var11
/* : nullable Object */;
7117 val
* var_t1
/* var t1: nullable MType */;
7118 short int var12
/* : Bool */;
7119 short int var13
/* : Bool */;
7120 val
* var_other
/* var other: nullable Object */;
7121 short int var15
/* : Bool */;
7122 short int var17
/* : Bool */;
7123 short int var_found
/* var found: Bool */;
7124 val
* var_19
/* var : Array[nullable MType] */;
7125 val
* var20
/* : IndexedIterator[nullable Object] */;
7126 val
* var_21
/* var : IndexedIterator[nullable MType] */;
7127 short int var22
/* : Bool */;
7128 val
* var24
/* : nullable Object */;
7129 val
* var_t2
/* var t2: nullable MType */;
7130 short int var25
/* : Bool */;
7131 short int var26
/* : Bool */;
7132 short int var28
/* : Bool */;
7133 short int var30
/* : Bool */;
7134 short int var32
/* : Bool */;
7135 short int var33
/* : Bool */;
7136 short int var_34
/* var : Bool */;
7137 short int var35
/* : Bool */;
7138 short int var36
/* : Bool */;
7139 val
* var37
/* : MType */;
7140 short int var38
/* : Bool */;
7141 short int var39
/* : Bool */;
7145 { /* Inline array#AbstractArrayRead#length (var_col) on <var_col:Array[nullable MType]> */
7146 var3
= var_col
->attrs
[COLOR_core__array__AbstractArrayRead___length
].l
; /* _length on <var_col:Array[nullable MType]> */
7152 { /* Inline kernel#Int#== (var1,1l) on <var1:Int> */
7161 var7
= core___core__SequenceRead___Collection__first(var_col
);
7169 var8
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_
);
7174 var10
= ((short int(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__is_ok
]))(var_9
); /* is_ok on <var_9:IndexedIterator[nullable MType]>*/
7181 var11
= ((val
*(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__item
]))(var_9
); /* item on <var_9:IndexedIterator[nullable MType]>*/
7184 if (var_t1
== NULL
) {
7185 var12
= 1; /* is null */
7187 var12
= 0; /* arg is null but recv is not */
7190 { /* Inline kernel#Object#== (var_t1,((val*)NULL)) on <var_t1:nullable MType> */
7191 var_other
= ((val
*)NULL
);
7193 { /* Inline kernel#Object#is_same_instance (var_t1,var_other) on <var_t1:nullable MType(MType)> */
7194 var17
= var_t1
== var_other
;
7197 RET_LABEL16
:(void)0;
7202 RET_LABEL14
:(void)0;
7213 var20
= core___core__AbstractArrayRead___core__abstract_collection__Collection__iterator(var_19
);
7218 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:IndexedIterator[nullable MType]>*/
7225 var24
= ((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:IndexedIterator[nullable MType]>*/
7228 if (var_t2
== NULL
) {
7229 var25
= 1; /* is null */
7231 var25
= 0; /* arg is null but recv is not */
7234 { /* Inline kernel#Object#== (var_t2,((val*)NULL)) on <var_t2:nullable MType> */
7235 var_other
= ((val
*)NULL
);
7237 { /* Inline kernel#Object#is_same_instance (var_t2,var_other) on <var_t2:nullable MType(MType)> */
7238 var30
= var_t2
== var_other
;
7241 RET_LABEL29
:(void)0;
7246 RET_LABEL27
:(void)0;
7255 var33
= nitc__typing___nitc__typing__TypeVisitor___can_be_null(self
, var_t2
);
7260 var35
= nitc__typing___nitc__typing__TypeVisitor___can_be_null(self
, var_t1
);
7269 var37
= ((val
*(*)(val
* self
))(var_t1
->class->vft
[COLOR_nitc__model__MType__as_nullable
]))(var_t1
); /* as_nullable on <var_t1:nullable MType(MType)>*/
7275 var38
= nitc__typing___nitc__typing__TypeVisitor___is_subtype(self
, var_t2
, var_t1
);
7282 BREAK_label31
: (void)0;
7284 ((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:IndexedIterator[nullable MType]>*/
7287 BREAK_label23
: (void)0;
7289 ((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:IndexedIterator[nullable MType]>*/
7296 BREAK_label18
: (void)0;
7298 ((void(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__next
]))(var_9
); /* next on <var_9:IndexedIterator[nullable MType]>*/
7301 BREAK_label
: (void)0;
7303 ((void(*)(val
* self
))((((long)var_9
&3)?class_info
[((long)var_9
&3)]:var_9
->class)->vft
[COLOR_core__abstract_collection__Iterator__finish
]))(var_9
); /* finish on <var_9:IndexedIterator[nullable MType]>*/
7310 /* method typing#SignatureMap#map for (self: SignatureMap): ArrayMap[Int, Int] */
7311 val
* nitc___nitc__SignatureMap___map(val
* self
) {
7312 val
* var
/* : ArrayMap[Int, Int] */;
7313 val
* var1
/* : ArrayMap[Int, Int] */;
7314 var1
= self
->attrs
[COLOR_nitc__typing__SignatureMap___map
].val
; /* _map on <self:SignatureMap> */
7315 if (unlikely(var1
== NULL
)) {
7316 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _map");
7317 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 628);
7324 /* method typing#CallSite#location= for (self: CallSite, Location) */
7325 void nitc___nitc__CallSite___location_61d(val
* self
, val
* p0
) {
7326 self
->attrs
[COLOR_nitc__typing__CallSite___location
].val
= p0
; /* _location on <self:CallSite> */
7329 /* method typing#CallSite#recv for (self: CallSite): MType */
7330 val
* nitc___nitc__CallSite___recv(val
* self
) {
7331 val
* var
/* : MType */;
7332 val
* var1
/* : MType */;
7333 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___recv
].val
; /* _recv on <self:CallSite> */
7334 if (unlikely(var1
== NULL
)) {
7335 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _recv");
7336 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 639);
7343 /* method typing#CallSite#recv= for (self: CallSite, MType) */
7344 void nitc___nitc__CallSite___recv_61d(val
* self
, val
* p0
) {
7345 self
->attrs
[COLOR_nitc__typing__CallSite___recv
].val
= p0
; /* _recv on <self:CallSite> */
7348 /* method typing#CallSite#mmodule for (self: CallSite): MModule */
7349 val
* nitc___nitc__CallSite___mmodule(val
* self
) {
7350 val
* var
/* : MModule */;
7351 val
* var1
/* : MModule */;
7352 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___mmodule
].val
; /* _mmodule on <self:CallSite> */
7353 if (unlikely(var1
== NULL
)) {
7354 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
7355 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 642);
7362 /* method typing#CallSite#mmodule= for (self: CallSite, MModule) */
7363 void nitc___nitc__CallSite___mmodule_61d(val
* self
, val
* p0
) {
7364 self
->attrs
[COLOR_nitc__typing__CallSite___mmodule
].val
= p0
; /* _mmodule on <self:CallSite> */
7367 /* method typing#CallSite#anchor for (self: CallSite): nullable MClassType */
7368 val
* nitc___nitc__CallSite___anchor(val
* self
) {
7369 val
* var
/* : nullable MClassType */;
7370 val
* var1
/* : nullable MClassType */;
7371 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___anchor
].val
; /* _anchor on <self:CallSite> */
7376 /* method typing#CallSite#anchor= for (self: CallSite, nullable MClassType) */
7377 void nitc___nitc__CallSite___anchor_61d(val
* self
, val
* p0
) {
7378 self
->attrs
[COLOR_nitc__typing__CallSite___anchor
].val
= p0
; /* _anchor on <self:CallSite> */
7381 /* method typing#CallSite#recv_is_self= for (self: CallSite, Bool) */
7382 void nitc___nitc__CallSite___recv_is_self_61d(val
* self
, short int p0
) {
7383 self
->attrs
[COLOR_nitc__typing__CallSite___recv_is_self
].s
= p0
; /* _recv_is_self on <self:CallSite> */
7386 /* method typing#CallSite#mproperty for (self: CallSite): MMethod */
7387 val
* nitc___nitc__CallSite___mproperty(val
* self
) {
7388 val
* var
/* : MMethod */;
7389 val
* var1
/* : MMethod */;
7390 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
7391 if (unlikely(var1
== NULL
)) {
7392 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7393 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 653);
7400 /* method typing#CallSite#mproperty= for (self: CallSite, MMethod) */
7401 void nitc___nitc__CallSite___mproperty_61d(val
* self
, val
* p0
) {
7402 self
->attrs
[COLOR_nitc__typing__CallSite___mproperty
].val
= p0
; /* _mproperty on <self:CallSite> */
7405 /* method typing#CallSite#mpropdef for (self: CallSite): MMethodDef */
7406 val
* nitc___nitc__CallSite___mpropdef(val
* self
) {
7407 val
* var
/* : MMethodDef */;
7408 val
* var1
/* : MMethodDef */;
7409 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___mpropdef
].val
; /* _mpropdef on <self:CallSite> */
7410 if (unlikely(var1
== NULL
)) {
7411 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mpropdef");
7412 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 656);
7419 /* method typing#CallSite#mpropdef= for (self: CallSite, MMethodDef) */
7420 void nitc___nitc__CallSite___mpropdef_61d(val
* self
, val
* p0
) {
7421 self
->attrs
[COLOR_nitc__typing__CallSite___mpropdef
].val
= p0
; /* _mpropdef on <self:CallSite> */
7424 /* method typing#CallSite#msignature for (self: CallSite): MSignature */
7425 val
* nitc___nitc__CallSite___msignature(val
* self
) {
7426 val
* var
/* : MSignature */;
7427 val
* var1
/* : MSignature */;
7428 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
7429 if (unlikely(var1
== NULL
)) {
7430 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
7431 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 660);
7438 /* method typing#CallSite#msignature= for (self: CallSite, MSignature) */
7439 void nitc___nitc__CallSite___msignature_61d(val
* self
, val
* p0
) {
7440 self
->attrs
[COLOR_nitc__typing__CallSite___msignature
].val
= p0
; /* _msignature on <self:CallSite> */
7443 /* method typing#CallSite#erasure_cast for (self: CallSite): Bool */
7444 short int nitc___nitc__CallSite___erasure_cast(val
* self
) {
7445 short int var
/* : Bool */;
7446 short int var1
/* : Bool */;
7447 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___erasure_cast
].s
; /* _erasure_cast on <self:CallSite> */
7452 /* method typing#CallSite#erasure_cast= for (self: CallSite, Bool) */
7453 void nitc___nitc__CallSite___erasure_cast_61d(val
* self
, short int p0
) {
7454 self
->attrs
[COLOR_nitc__typing__CallSite___erasure_cast
].s
= p0
; /* _erasure_cast on <self:CallSite> */
7457 /* method typing#CallSite#signaturemap for (self: CallSite): nullable SignatureMap */
7458 val
* nitc___nitc__CallSite___signaturemap(val
* self
) {
7459 val
* var
/* : nullable SignatureMap */;
7460 val
* var1
/* : nullable SignatureMap */;
7461 var1
= self
->attrs
[COLOR_nitc__typing__CallSite___signaturemap
].val
; /* _signaturemap on <self:CallSite> */
7466 /* method typing#CallSite#signaturemap= for (self: CallSite, nullable SignatureMap) */
7467 void nitc___nitc__CallSite___signaturemap_61d(val
* self
, val
* p0
) {
7468 self
->attrs
[COLOR_nitc__typing__CallSite___signaturemap
].val
= p0
; /* _signaturemap on <self:CallSite> */
7471 /* method typing#CallSite#check_signature for (self: CallSite, TypeVisitor, ANode, Array[AExpr]): Bool */
7472 short int nitc___nitc__CallSite___check_signature(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7473 short int var
/* : Bool */;
7474 val
* var_v
/* var v: TypeVisitor */;
7475 val
* var_node
/* var node: ANode */;
7476 val
* var_args
/* var args: Array[AExpr] */;
7477 val
* var1
/* : MMethod */;
7478 val
* var3
/* : MMethod */;
7479 val
* var4
/* : MSignature */;
7480 val
* var6
/* : MSignature */;
7481 val
* var7
/* : nullable SignatureMap */;
7482 val
* var_map
/* var map: nullable SignatureMap */;
7483 short int var9
/* : Bool */;
7484 short int var10
/* : Bool */;
7485 val
* var_other
/* var other: nullable Object */;
7486 short int var12
/* : Bool */;
7487 short int var14
/* : Bool */;
7488 short int var16
/* : Bool */;
7489 short int var17
/* : Bool */;
7490 short int var19
/* : Bool */;
7491 short int var21
/* : Bool */;
7496 { /* Inline typing#CallSite#mproperty (self) on <self:CallSite> */
7497 var3
= self
->attrs
[COLOR_nitc__typing__CallSite___mproperty
].val
; /* _mproperty on <self:CallSite> */
7498 if (unlikely(var3
== NULL
)) {
7499 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mproperty");
7500 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 653);
7508 { /* Inline typing#CallSite#msignature (self) on <self:CallSite> */
7509 var6
= self
->attrs
[COLOR_nitc__typing__CallSite___msignature
].val
; /* _msignature on <self:CallSite> */
7510 if (unlikely(var6
== NULL
)) {
7511 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _msignature");
7512 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 660);
7520 var7
= nitc__typing___nitc__typing__TypeVisitor___check_signature(var_v
, var_node
, var_args
, var1
, var4
);
7524 { /* Inline typing#CallSite#signaturemap= (self,var_map) on <self:CallSite> */
7525 self
->attrs
[COLOR_nitc__typing__CallSite___signaturemap
].val
= var_map
; /* _signaturemap on <self:CallSite> */
7529 if (var_map
== NULL
) {
7530 var9
= 1; /* is null */
7532 var9
= 0; /* arg is null but recv is not */
7535 { /* Inline kernel#Object#== (var_map,((val*)NULL)) on <var_map:nullable SignatureMap> */
7536 var_other
= ((val
*)NULL
);
7538 { /* Inline kernel#Object#is_same_instance (var_map,var_other) on <var_map:nullable SignatureMap(SignatureMap)> */
7539 var14
= var_map
== var_other
;
7542 RET_LABEL13
:(void)0;
7547 RET_LABEL11
:(void)0;
7553 { /* Inline model_base#MEntity#is_broken= (self,1) on <self:CallSite> */
7554 self
->attrs
[COLOR_nitc__model_base__MEntity___is_broken
].s
= 1; /* _is_broken on <self:CallSite> */
7555 RET_LABEL15
:(void)0;
7560 if (var_map
== NULL
) {
7561 var16
= 1; /* is null */
7563 var16
= 0; /* arg is null but recv is not */
7566 { /* Inline kernel#Object#== (var_map,((val*)NULL)) on <var_map:nullable SignatureMap> */
7567 var_other
= ((val
*)NULL
);
7569 { /* Inline kernel#Object#is_same_instance (var_map,var_other) on <var_map:nullable SignatureMap(SignatureMap)> */
7570 var21
= var_map
== var_other
;
7573 RET_LABEL20
:(void)0;
7578 RET_LABEL18
:(void)0;
7587 /* method typing#CallSite#init for (self: CallSite) */
7588 void nitc___nitc__CallSite___core__kernel__Object__init(val
* self
) {
7590 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc___nitc__CallSite___core__kernel__Object__init
]))(self
); /* init on <self:CallSite>*/
7594 /* method typing#Variable#declared_type for (self: Variable): nullable MType */
7595 val
* nitc__typing___Variable___declared_type(val
* self
) {
7596 val
* var
/* : nullable MType */;
7597 val
* var1
/* : nullable MType */;
7598 var1
= self
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
; /* _declared_type on <self:Variable> */
7603 /* method typing#Variable#declared_type= for (self: Variable, nullable MType) */
7604 void nitc__typing___Variable___declared_type_61d(val
* self
, val
* p0
) {
7605 self
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
= p0
; /* _declared_type on <self:Variable> */
7608 /* method typing#Variable#is_adapted for (self: Variable): Bool */
7609 short int nitc__typing___Variable___is_adapted(val
* self
) {
7610 short int var
/* : Bool */;
7611 short int var1
/* : Bool */;
7612 var1
= self
->attrs
[COLOR_nitc__typing__Variable___is_adapted
].s
; /* _is_adapted on <self:Variable> */
7617 /* method typing#Variable#is_adapted= for (self: Variable, Bool) */
7618 void nitc__typing___Variable___is_adapted_61d(val
* self
, short int p0
) {
7619 self
->attrs
[COLOR_nitc__typing__Variable___is_adapted
].s
= p0
; /* _is_adapted on <self:Variable> */
7622 /* method typing#FlowContext#vars for (self: FlowContext): HashMap[Variable, nullable MType] */
7623 val
* nitc__typing___FlowContext___vars(val
* self
) {
7624 val
* var
/* : HashMap[Variable, nullable MType] */;
7625 val
* var1
/* : HashMap[Variable, nullable MType] */;
7626 var1
= self
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7627 if (unlikely(var1
== NULL
)) {
7628 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7629 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
7636 /* method typing#FlowContext#set_var for (self: FlowContext, TypeVisitor, Variable, nullable MType) */
7637 void nitc__typing___FlowContext___set_var(val
* self
, val
* p0
, val
* p1
, val
* p2
) {
7638 val
* var_v
/* var v: TypeVisitor */;
7639 val
* var_variable
/* var variable: Variable */;
7640 val
* var_mtype
/* var mtype: nullable MType */;
7641 short int var
/* : Bool */;
7642 val
* var1
/* : nullable MType */;
7643 val
* var3
/* : nullable MType */;
7644 short int var4
/* : Bool */;
7645 short int var5
/* : Bool */;
7646 val
* var_other
/* var other: nullable Object */;
7647 short int var7
/* : Bool */;
7648 short int var9
/* : Bool */;
7649 short int var_
/* var : Bool */;
7650 short int var10
/* : Bool */;
7651 short int var12
/* : Bool */;
7652 short int var13
/* : Bool */;
7653 short int var14
/* : Bool */;
7654 val
* var15
/* : HashMap[Variable, nullable MType] */;
7655 val
* var17
/* : HashMap[Variable, nullable MType] */;
7656 short int var18
/* : Bool */;
7657 short int var_19
/* var : Bool */;
7658 val
* var20
/* : HashMap[Variable, nullable MType] */;
7659 val
* var22
/* : HashMap[Variable, nullable MType] */;
7660 val
* var23
/* : nullable Object */;
7661 short int var24
/* : Bool */;
7662 short int var25
/* : Bool */;
7663 short int var27
/* : Bool */;
7664 short int var29
/* : Bool */;
7665 val
* var30
/* : HashMap[Variable, nullable MType] */;
7666 val
* var32
/* : HashMap[Variable, nullable MType] */;
7671 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
7672 var3
= var_variable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
7678 var4
= (var_mtype
== NULL
);
7680 { /* Inline kernel#Object#== (var1,var_mtype) on <var1:nullable MType> */
7681 var_other
= var_mtype
;
7683 { /* Inline kernel#Object#is_same_instance (var1,var_other) on <var1:nullable MType(MType)> */
7684 var9
= var1
== var_other
;
7699 { /* Inline typing#Variable#is_adapted (var_variable) on <var_variable:Variable> */
7700 var12
= var_variable
->attrs
[COLOR_nitc__typing__Variable___is_adapted
].s
; /* _is_adapted on <var_variable:Variable> */
7702 RET_LABEL11
:(void)0;
7715 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
7716 var17
= self
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7717 if (unlikely(var17
== NULL
)) {
7718 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7719 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
7723 RET_LABEL16
:(void)0;
7727 var18
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var15
, var_variable
);
7732 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
7733 var22
= self
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7734 if (unlikely(var22
== NULL
)) {
7735 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7736 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
7740 RET_LABEL21
:(void)0;
7744 var23
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var20
, var_variable
);
7746 if (var23
== NULL
) {
7747 var24
= (var_mtype
== NULL
);
7749 { /* Inline kernel#Object#== (var23,var_mtype) on <var23:nullable Object(nullable MType)> */
7750 var_other
= var_mtype
;
7752 { /* Inline kernel#Object#is_same_instance (var23,var_other) on <var23:nullable MType(MType)> */
7753 var29
= var23
== var_other
;
7756 RET_LABEL28
:(void)0;
7761 RET_LABEL26
:(void)0;
7774 { /* Inline typing#FlowContext#vars (self) on <self:FlowContext> */
7775 var32
= self
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <self:FlowContext> */
7776 if (unlikely(var32
== NULL
)) {
7777 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7778 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
7782 RET_LABEL31
:(void)0;
7786 core___core__HashMap___core__abstract_collection__Map___91d_93d_61d(var30
, var_variable
, var_mtype
); /* Direct call hash_collection#HashMap#[]= on <var30:HashMap[Variable, nullable MType]>*/
7789 { /* Inline typing#TypeVisitor#dirty= (var_v,1) on <var_v:TypeVisitor> */
7790 var_v
->attrs
[COLOR_nitc__typing__TypeVisitor___dirty
].s
= 1; /* _dirty on <var_v:TypeVisitor> */
7791 RET_LABEL33
:(void)0;
7795 { /* Inline typing#Variable#is_adapted= (var_variable,1) on <var_variable:Variable> */
7796 var_variable
->attrs
[COLOR_nitc__typing__Variable___is_adapted
].s
= 1; /* _is_adapted on <var_variable:Variable> */
7797 RET_LABEL34
:(void)0;
7802 /* method typing#FlowContext#collect_types for (self: FlowContext, Variable): Array[nullable MType] */
7803 val
* nitc__typing___FlowContext___collect_types(val
* self
, val
* p0
) {
7804 val
* var
/* : Array[nullable MType] */;
7805 val
* var_variable
/* var variable: Variable */;
7806 val
* var1
/* : Array[nullable MType] */;
7807 val
* var_res
/* var res: Array[nullable MType] */;
7808 val
* var2
/* : Array[FlowContext] */;
7809 val
* var_
/* var : Array[FlowContext] */;
7810 val
* var_todo
/* var todo: Array[FlowContext] */;
7811 val
* var3
/* : HashSet[FlowContext] */;
7812 val
* var_seen
/* var seen: HashSet[FlowContext] */;
7813 short int var4
/* : Bool */;
7814 short int var5
/* : Bool */;
7815 val
* var6
/* : nullable Object */;
7816 val
* var_f
/* var f: FlowContext */;
7817 short int var7
/* : Bool */;
7818 short int var8
/* : Bool */;
7819 val
* var9
/* : HashMap[Variable, nullable MType] */;
7820 val
* var11
/* : HashMap[Variable, nullable MType] */;
7821 short int var12
/* : Bool */;
7822 val
* var13
/* : HashMap[Variable, nullable MType] */;
7823 val
* var15
/* : HashMap[Variable, nullable MType] */;
7824 val
* var16
/* : nullable Object */;
7825 val
* var17
/* : Array[FlowContext] */;
7826 val
* var19
/* : Array[FlowContext] */;
7827 val
* var20
/* : Array[FlowContext] */;
7828 val
* var22
/* : Array[FlowContext] */;
7829 val
* var23
/* : Array[FlowContext] */;
7830 val
* var25
/* : Array[FlowContext] */;
7831 short int var26
/* : Bool */;
7832 val
* var27
/* : nullable MType */;
7833 val
* var29
/* : nullable MType */;
7835 var1
= NEW_core__Array(&type_core__Array__nullable__nitc__MType
);
7837 core___core__Array___core__kernel__Object__init(var1
); /* Direct call array#Array#init on <var1:Array[nullable MType]>*/
7840 var2
= NEW_core__Array(&type_core__Array__nitc__FlowContext
);
7842 core___core__Array___with_capacity(var2
, 1l); /* Direct call array#Array#with_capacity on <var2:Array[FlowContext]>*/
7846 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_
, self
); /* Direct call array#AbstractArray#push on <var_:Array[FlowContext]>*/
7849 var3
= NEW_core__HashSet(&type_core__HashSet__nitc__FlowContext
);
7851 core___core__HashSet___core__kernel__Object__init(var3
); /* Direct call hash_collection#HashSet#init on <var3:HashSet[FlowContext]>*/
7856 var4
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var_todo
);
7861 var6
= core___core__AbstractArray___core__abstract_collection__Sequence__pop(var_todo
);
7865 var7
= nitc___nitc__FlowContext___is_unreachable(var_f
);
7872 var8
= core___core__HashSet___core__abstract_collection__Collection__has(var_seen
, var_f
);
7879 core___core__HashSet___core__abstract_collection__SimpleCollection__add(var_seen
, var_f
); /* Direct call hash_collection#HashSet#add on <var_seen:HashSet[FlowContext]>*/
7882 { /* Inline typing#FlowContext#vars (var_f) on <var_f:FlowContext> */
7883 var11
= var_f
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <var_f:FlowContext> */
7884 if (unlikely(var11
== NULL
)) {
7885 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7886 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
7890 RET_LABEL10
:(void)0;
7894 var12
= core___core__HashMap___core__abstract_collection__MapRead__has_key(var9
, var_variable
);
7898 { /* Inline typing#FlowContext#vars (var_f) on <var_f:FlowContext> */
7899 var15
= var_f
->attrs
[COLOR_nitc__typing__FlowContext___vars
].val
; /* _vars on <var_f:FlowContext> */
7900 if (unlikely(var15
== NULL
)) {
7901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _vars");
7902 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 689);
7906 RET_LABEL14
:(void)0;
7910 var16
= core___core__HashMap___core__abstract_collection__MapRead___91d_93d(var13
, var_variable
);
7913 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res
, var16
); /* Direct call array#Array#add on <var_res:Array[nullable MType]>*/
7917 { /* Inline flow#FlowContext#previous (var_f) on <var_f:FlowContext> */
7918 var19
= var_f
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <var_f:FlowContext> */
7919 if (unlikely(var19
== NULL
)) {
7920 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
7921 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
7925 RET_LABEL18
:(void)0;
7929 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_todo
, var17
); /* Direct call array#Array#add_all on <var_todo:Array[FlowContext]>*/
7932 { /* Inline flow#FlowContext#loops (var_f) on <var_f:FlowContext> */
7933 var22
= var_f
->attrs
[COLOR_nitc__flow__FlowContext___loops
].val
; /* _loops on <var_f:FlowContext> */
7934 if (unlikely(var22
== NULL
)) {
7935 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _loops");
7936 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 192);
7940 RET_LABEL21
:(void)0;
7944 core___core__Array___core__abstract_collection__SimpleCollection__add_all(var_todo
, var20
); /* Direct call array#Array#add_all on <var_todo:Array[FlowContext]>*/
7947 { /* Inline flow#FlowContext#previous (var_f) on <var_f:FlowContext> */
7948 var25
= var_f
->attrs
[COLOR_nitc__flow__FlowContext___previous
].val
; /* _previous on <var_f:FlowContext> */
7949 if (unlikely(var25
== NULL
)) {
7950 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _previous");
7951 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__flow
, 189);
7955 RET_LABEL24
:(void)0;
7959 var26
= core___core__AbstractArrayRead___core__abstract_collection__Collection__is_empty(var23
);
7963 { /* Inline typing#Variable#declared_type (var_variable) on <var_variable:Variable> */
7964 var29
= var_variable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
; /* _declared_type on <var_variable:Variable> */
7966 RET_LABEL28
:(void)0;
7970 core___core__Array___core__abstract_collection__SimpleCollection__add(var_res
, var27
); /* Direct call array#Array#add on <var_res:Array[nullable MType]>*/
7978 BREAK_label
: (void)0;
7980 BREAK_label30
: (void)0;
7986 /* method typing#APropdef#do_typing for (self: APropdef, ModelBuilder) */
7987 void nitc__typing___APropdef___do_typing(val
* self
, val
* p0
) {
7988 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
7989 var_modelbuilder
= p0
;
7992 /* method typing#APropdef#selfvariable= for (self: APropdef, nullable Variable) */
7993 void nitc__typing___APropdef___selfvariable_61d(val
* self
, val
* p0
) {
7994 self
->attrs
[COLOR_nitc__typing__APropdef___selfvariable
].val
= p0
; /* _selfvariable on <self:APropdef> */
7997 /* method typing#AMethPropdef#do_typing for (self: AMethPropdef, ModelBuilder) */
7998 void nitc__typing___AMethPropdef___APropdef__do_typing(val
* self
, val
* p0
) {
7999 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
8000 val
* var
/* : nullable MPropDef */;
8001 val
* var2
/* : nullable MPropDef */;
8002 val
* var_mpropdef
/* var mpropdef: nullable MMethodDef */;
8003 short int var3
/* : Bool */;
8004 short int var4
/* : Bool */;
8005 val
* var_other
/* var other: nullable Object */;
8006 short int var6
/* : Bool */;
8007 short int var8
/* : Bool */;
8008 val
* var9
/* : TypeVisitor */;
8009 val
* var10
/* : MClassDef */;
8010 val
* var12
/* : MClassDef */;
8011 val
* var13
/* : MModule */;
8012 val
* var15
/* : MModule */;
8013 val
* var_v
/* var v: TypeVisitor */;
8014 val
* var16
/* : Variable */;
8015 val
* var18
/* : Variable */;
8016 val
* var20
/* : nullable MPropDef */;
8017 val
* var22
/* : nullable MPropDef */;
8018 val
* var_mmethoddef
/* var mmethoddef: MMethodDef */;
8019 val
* var23
/* : nullable MSignature */;
8020 val
* var25
/* : nullable MSignature */;
8021 val
* var_msignature
/* var msignature: nullable MSignature */;
8022 short int var26
/* : Bool */;
8023 short int var27
/* : Bool */;
8024 short int var29
/* : Bool */;
8025 short int var31
/* : Bool */;
8026 long var_i
/* var i: Int */;
8027 long var32
/* : Int */;
8028 long var_
/* var : Int */;
8029 short int var33
/* : Bool */;
8030 short int var35
/* : Bool */;
8033 const char* var_class_name
;
8034 short int var36
/* : Bool */;
8035 val
* var37
/* : Array[MParameter] */;
8036 val
* var39
/* : Array[MParameter] */;
8037 val
* var40
/* : nullable Object */;
8038 val
* var41
/* : MType */;
8039 val
* var43
/* : MType */;
8040 val
* var_mtype
/* var mtype: MType */;
8041 long var44
/* : Int */;
8042 long var46
/* : Int */;
8043 short int var47
/* : Bool */;
8044 short int var49
/* : Bool */;
8045 val
* var50
/* : nullable ASignature */;
8046 val
* var52
/* : nullable ASignature */;
8047 val
* var53
/* : ANodes[AParam] */;
8048 val
* var55
/* : ANodes[AParam] */;
8049 val
* var56
/* : ANode */;
8050 static val
* varonce
;
8051 val
* var57
/* : String */;
8052 char* var58
/* : NativeString */;
8053 val
* var59
/* : String */;
8054 val
* var60
/* : nullable MClass */;
8055 val
* var_arrayclass
/* var arrayclass: nullable MClass */;
8056 short int var61
/* : Bool */;
8057 short int var62
/* : Bool */;
8058 short int var64
/* : Bool */;
8059 short int var66
/* : Bool */;
8060 val
* var67
/* : Array[MType] */;
8061 val
* var_68
/* var : Array[MType] */;
8062 val
* var69
/* : MClassType */;
8063 val
* var70
/* : nullable ASignature */;
8064 val
* var72
/* : nullable ASignature */;
8065 val
* var73
/* : ANodes[AParam] */;
8066 val
* var75
/* : ANodes[AParam] */;
8067 val
* var76
/* : ANode */;
8068 val
* var77
/* : nullable Variable */;
8069 val
* var79
/* : nullable Variable */;
8070 val
* var_variable
/* var variable: nullable Variable */;
8071 short int var80
/* : Bool */;
8072 short int var81
/* : Bool */;
8073 val
* var_other83
/* var other: nullable Object */;
8074 short int var84
/* : Bool */;
8075 short int var85
/* : Bool */;
8076 long var87
/* : Int */;
8077 val
* var88
/* : nullable AExpr */;
8078 val
* var90
/* : nullable AExpr */;
8079 val
* var_nblock
/* var nblock: nullable AExpr */;
8080 short int var91
/* : Bool */;
8081 short int var92
/* : Bool */;
8082 short int var94
/* : Bool */;
8083 short int var96
/* : Bool */;
8084 short int var98
/* : Bool */;
8085 short int var99
/* : Bool */;
8086 short int var101
/* : Bool */;
8087 short int var102
/* : Bool */;
8088 short int var_103
/* var : Bool */;
8089 short int var104
/* : Bool */;
8090 short int var106
/* : Bool */;
8091 short int var107
/* : Bool */;
8092 val
* var109
/* : PostTypingVisitor */;
8093 val
* var_post_visitor
/* var post_visitor: PostTypingVisitor */;
8094 short int var110
/* : Bool */;
8095 val
* var111
/* : nullable FlowContext */;
8096 val
* var113
/* : nullable FlowContext */;
8097 short int var114
/* : Bool */;
8098 short int var115
/* : Bool */;
8099 short int var_116
/* var : Bool */;
8100 val
* var117
/* : nullable MType */;
8101 val
* var119
/* : nullable MType */;
8102 short int var120
/* : Bool */;
8103 short int var121
/* : Bool */;
8104 short int var123
/* : Bool */;
8105 short int var124
/* : Bool */;
8106 static val
* varonce125
;
8107 val
* var126
/* : String */;
8108 char* var127
/* : NativeString */;
8109 val
* var128
/* : String */;
8110 var_modelbuilder
= p0
;
8112 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
8113 var2
= self
->attrs
[COLOR_nitc__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
8119 if (var_mpropdef
== NULL
) {
8120 var3
= 1; /* is null */
8122 var3
= 0; /* arg is null but recv is not */
8125 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
8126 var_other
= ((val
*)NULL
);
8128 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8129 var8
= var_mpropdef
== var_other
;
8145 var9
= NEW_nitc__typing__TypeVisitor(&type_nitc__typing__TypeVisitor
);
8147 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8148 var12
= var_mpropdef
->attrs
[COLOR_nitc__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8149 if (unlikely(var12
== NULL
)) {
8150 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8151 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2227);
8155 RET_LABEL11
:(void)0;
8159 { /* Inline model#MClassDef#mmodule (var10) on <var10:MClassDef> */
8160 var15
= var10
->attrs
[COLOR_nitc__model__MClassDef___mmodule
].val
; /* _mmodule on <var10:MClassDef> */
8161 if (unlikely(var15
== NULL
)) {
8162 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8163 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 573);
8167 RET_LABEL14
:(void)0;
8171 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nitc__typing__TypeVisitor__modelbuilder_61d
]))(var9
, var_modelbuilder
); /* modelbuilder= on <var9:TypeVisitor>*/
8174 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nitc__typing__TypeVisitor__mmodule_61d
]))(var9
, var13
); /* mmodule= on <var9:TypeVisitor>*/
8177 ((void(*)(val
* self
, val
* p0
))(var9
->class->vft
[COLOR_nitc__typing__TypeVisitor__mpropdef_61d
]))(var9
, var_mpropdef
); /* mpropdef= on <var9:TypeVisitor>*/
8180 ((void(*)(val
* self
))(var9
->class->vft
[COLOR_core__kernel__Object__init
]))(var9
); /* init on <var9:TypeVisitor>*/
8184 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
8185 var18
= var_v
->attrs
[COLOR_nitc__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
8186 if (unlikely(var18
== NULL
)) {
8187 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
8188 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 51);
8192 RET_LABEL17
:(void)0;
8196 { /* Inline typing#APropdef#selfvariable= (self,var16) on <self:AMethPropdef> */
8197 self
->attrs
[COLOR_nitc__typing__APropdef___selfvariable
].val
= var16
; /* _selfvariable on <self:AMethPropdef> */
8198 RET_LABEL19
:(void)0;
8202 { /* Inline modelize_property#APropdef#mpropdef (self) on <self:AMethPropdef> */
8203 var22
= self
->attrs
[COLOR_nitc__modelize_property__APropdef___mpropdef
].val
; /* _mpropdef on <self:AMethPropdef> */
8205 RET_LABEL21
:(void)0;
8208 if (unlikely(var20
== NULL
)) {
8209 PRINT_ERROR("Runtime error: %s", "Cast failed");
8210 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 757);
8213 var_mmethoddef
= var20
;
8215 { /* Inline model#MMethodDef#msignature (var_mmethoddef) on <var_mmethoddef:MMethodDef> */
8216 var25
= var_mmethoddef
->attrs
[COLOR_nitc__model__MMethodDef___msignature
].val
; /* _msignature on <var_mmethoddef:MMethodDef> */
8218 RET_LABEL24
:(void)0;
8221 var_msignature
= var23
;
8222 if (var_msignature
== NULL
) {
8223 var26
= 1; /* is null */
8225 var26
= 0; /* arg is null but recv is not */
8228 { /* Inline kernel#Object#== (var_msignature,((val*)NULL)) on <var_msignature:nullable MSignature> */
8229 var_other
= ((val
*)NULL
);
8231 { /* Inline kernel#Object#is_same_instance (var_msignature,var_other) on <var_msignature:nullable MSignature(MSignature)> */
8232 var31
= var_msignature
== var_other
;
8235 RET_LABEL30
:(void)0;
8240 RET_LABEL28
:(void)0;
8250 var32
= nitc___nitc__MSignature___arity(var_msignature
);
8255 { /* Inline kernel#Int#< (var_i,var_) on <var_i:Int> */
8256 /* Covariant cast for argument 0 (i) <var_:Int> isa OTHER */
8257 /* <var_:Int> isa OTHER */
8258 var35
= 1; /* easy <var_:Int> isa OTHER*/
8259 if (unlikely(!var35
)) {
8260 var_class_name
= type_core__Int
.name
;
8261 PRINT_ERROR("Runtime error: Cast failed. Expected `%s`, got `%s`", "OTHER", var_class_name
);
8262 PRINT_ERROR(" (%s:%d)\n", FILE_core__kernel
, 728);
8265 var36
= var_i
< var_
;
8268 RET_LABEL34
:(void)0;
8276 { /* Inline model#MSignature#mparameters (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
8277 var39
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___mparameters
].val
; /* _mparameters on <var_msignature:nullable MSignature(MSignature)> */
8278 if (unlikely(var39
== NULL
)) {
8279 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mparameters");
8280 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1783);
8284 RET_LABEL38
:(void)0;
8288 var40
= core___core__Array___core__abstract_collection__SequenceRead___91d_93d(var37
, var_i
);
8291 { /* Inline model#MParameter#mtype (var40) on <var40:nullable Object(MParameter)> */
8292 var43
= var40
->attrs
[COLOR_nitc__model__MParameter___mtype
].val
; /* _mtype on <var40:nullable Object(MParameter)> */
8293 if (unlikely(var43
== NULL
)) {
8294 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mtype");
8295 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 1900);
8299 RET_LABEL42
:(void)0;
8304 { /* Inline model#MSignature#vararg_rank (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
8305 var46
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___vararg_rank
].l
; /* _vararg_rank on <var_msignature:nullable MSignature(MSignature)> */
8307 RET_LABEL45
:(void)0;
8311 { /* Inline kernel#Int#== (var44,var_i) on <var44:Int> */
8312 var49
= var44
== var_i
;
8315 RET_LABEL48
:(void)0;
8320 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
8321 var52
= self
->attrs
[COLOR_nitc__parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
8323 RET_LABEL51
:(void)0;
8326 if (var50
== NULL
) {
8327 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8328 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 763);
8331 { /* Inline parser_nodes#ASignature#n_params (var50) on <var50:nullable ASignature> */
8332 if (unlikely(var50
== NULL
)) {
8333 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8334 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1679);
8337 var55
= var50
->attrs
[COLOR_nitc__parser_nodes__ASignature___n_params
].val
; /* _n_params on <var50:nullable ASignature> */
8338 if (unlikely(var55
== NULL
)) {
8339 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
8340 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1679);
8344 RET_LABEL54
:(void)0;
8348 var56
= nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var53
, var_i
);
8350 if (likely(varonce
!=NULL
)) {
8354 var59
= core__flat___NativeString___to_s_full(var58
, 5l, 5l);
8359 var60
= nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v
, var56
, var57
);
8361 var_arrayclass
= var60
;
8362 if (var_arrayclass
== NULL
) {
8363 var61
= 1; /* is null */
8365 var61
= 0; /* arg is null but recv is not */
8368 { /* Inline kernel#Object#== (var_arrayclass,((val*)NULL)) on <var_arrayclass:nullable MClass> */
8369 var_other
= ((val
*)NULL
);
8371 { /* Inline kernel#Object#is_same_instance (var_arrayclass,var_other) on <var_arrayclass:nullable MClass(MClass)> */
8372 var66
= var_arrayclass
== var_other
;
8375 RET_LABEL65
:(void)0;
8380 RET_LABEL63
:(void)0;
8388 var67
= NEW_core__Array(&type_core__Array__nitc__MType
);
8390 core___core__Array___with_capacity(var67
, 1l); /* Direct call array#Array#with_capacity on <var67:Array[MType]>*/
8394 core___core__AbstractArray___core__abstract_collection__Sequence__push(var_68
, var_mtype
); /* Direct call array#AbstractArray#push on <var_68:Array[MType]>*/
8397 var69
= nitc___nitc__MClass___get_mtype(var_arrayclass
, var_68
);
8403 { /* Inline parser_nodes#AMethPropdef#n_signature (self) on <self:AMethPropdef> */
8404 var72
= self
->attrs
[COLOR_nitc__parser_nodes__AMethPropdef___n_signature
].val
; /* _n_signature on <self:AMethPropdef> */
8406 RET_LABEL71
:(void)0;
8409 if (var70
== NULL
) {
8410 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8411 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 767);
8414 { /* Inline parser_nodes#ASignature#n_params (var70) on <var70:nullable ASignature> */
8415 if (unlikely(var70
== NULL
)) {
8416 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8417 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1679);
8420 var75
= var70
->attrs
[COLOR_nitc__parser_nodes__ASignature___n_params
].val
; /* _n_params on <var70:nullable ASignature> */
8421 if (unlikely(var75
== NULL
)) {
8422 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_params");
8423 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1679);
8427 RET_LABEL74
:(void)0;
8431 var76
= nitc___nitc__ANodes___core__abstract_collection__SequenceRead___91d_93d(var73
, var_i
);
8434 { /* Inline scope#AParam#variable (var76) on <var76:ANode(AParam)> */
8435 var79
= var76
->attrs
[COLOR_nitc__scope__AParam___variable
].val
; /* _variable on <var76:ANode(AParam)> */
8437 RET_LABEL78
:(void)0;
8440 var_variable
= var77
;
8441 if (var_variable
== NULL
) {
8442 var80
= 0; /* is null */
8444 var80
= 1; /* arg is null and recv is not */
8447 { /* Inline kernel#Object#!= (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
8448 var_other83
= ((val
*)NULL
);
8450 var84
= ((short int(*)(val
* self
, val
* p0
))(var_variable
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var_variable
, var_other83
); /* == on <var_variable:nullable Variable(Variable)>*/
8455 RET_LABEL82
:(void)0;
8459 if (unlikely(!var80
)) {
8460 PRINT_ERROR("Runtime error: %s", "Assert failed");
8461 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 768);
8465 { /* Inline typing#Variable#declared_type= (var_variable,var_mtype) on <var_variable:nullable Variable(Variable)> */
8466 var_variable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
= var_mtype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
8467 RET_LABEL86
:(void)0;
8471 var87
= core___core__Int___Discrete__successor(var_i
, 1l);
8475 BREAK_label
: (void)0;
8477 { /* Inline parser_nodes#AMethPropdef#n_block (self) on <self:AMethPropdef> */
8478 var90
= self
->attrs
[COLOR_nitc__parser_nodes__AMethPropdef___n_block
].val
; /* _n_block on <self:AMethPropdef> */
8480 RET_LABEL89
:(void)0;
8484 if (var_nblock
== NULL
) {
8485 var91
= 1; /* is null */
8487 var91
= 0; /* arg is null but recv is not */
8490 { /* Inline kernel#Object#== (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
8491 var_other
= ((val
*)NULL
);
8493 { /* Inline kernel#Object#is_same_instance (var_nblock,var_other) on <var_nblock:nullable AExpr(AExpr)> */
8494 var96
= var_nblock
== var_other
;
8497 RET_LABEL95
:(void)0;
8502 RET_LABEL93
:(void)0;
8512 { /* Inline typing#TypeVisitor#dirty= (var_v,0) on <var_v:TypeVisitor> */
8513 var_v
->attrs
[COLOR_nitc__typing__TypeVisitor___dirty
].s
= 0; /* _dirty on <var_v:TypeVisitor> */
8514 RET_LABEL97
:(void)0;
8518 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
8521 { /* Inline typing#TypeVisitor#has_loop (var_v) on <var_v:TypeVisitor> */
8522 var101
= var_v
->attrs
[COLOR_nitc__typing__TypeVisitor___has_loop
].s
; /* _has_loop on <var_v:TypeVisitor> */
8524 RET_LABEL100
:(void)0;
8533 { /* Inline typing#TypeVisitor#dirty (var_v) on <var_v:TypeVisitor> */
8534 var106
= var_v
->attrs
[COLOR_nitc__typing__TypeVisitor___dirty
].s
; /* _dirty on <var_v:TypeVisitor> */
8536 RET_LABEL105
:(void)0;
8543 goto BREAK_label108
;
8547 BREAK_label108
: (void)0;
8548 var109
= NEW_nitc__typing__PostTypingVisitor(&type_nitc__typing__PostTypingVisitor
);
8550 ((void(*)(val
* self
, val
* p0
))(var109
->class->vft
[COLOR_nitc__typing__PostTypingVisitor__type_visitor_61d
]))(var109
, var_v
); /* type_visitor= on <var109:PostTypingVisitor>*/
8553 ((void(*)(val
* self
))(var109
->class->vft
[COLOR_core__kernel__Object__init
]))(var109
); /* init on <var109:PostTypingVisitor>*/
8555 var_post_visitor
= var109
;
8557 nitc___nitc__Visitor___enter_visit(var_post_visitor
, self
); /* Direct call parser_nodes#Visitor#enter_visit on <var_post_visitor:PostTypingVisitor>*/
8560 { /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
8561 var113
= var_nblock
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
8563 RET_LABEL112
:(void)0;
8566 if (var111
== NULL
) {
8567 PRINT_ERROR("Runtime error: %s", "Receiver is null");
8568 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 784);
8571 var114
= nitc___nitc__FlowContext___is_unreachable(var111
);
8577 { /* Inline model#MSignature#return_mtype (var_msignature) on <var_msignature:nullable MSignature(MSignature)> */
8578 var119
= var_msignature
->attrs
[COLOR_nitc__model__MSignature___return_mtype
].val
; /* _return_mtype on <var_msignature:nullable MSignature(MSignature)> */
8580 RET_LABEL118
:(void)0;
8583 if (var117
== NULL
) {
8584 var120
= 0; /* is null */
8586 var120
= 1; /* arg is null and recv is not */
8589 { /* Inline kernel#Object#!= (var117,((val*)NULL)) on <var117:nullable MType> */
8590 var_other83
= ((val
*)NULL
);
8592 var123
= ((short int(*)(val
* self
, val
* p0
))(var117
->class->vft
[COLOR_core__kernel__Object___61d_61d
]))(var117
, var_other83
); /* == on <var117:nullable MType(MType)>*/
8597 RET_LABEL122
:(void)0;
8606 if (likely(varonce125
!=NULL
)) {
8607 var126
= varonce125
;
8609 var127
= "Error: reached end of function; expected `return` with a value.";
8610 var128
= core__flat___NativeString___to_s_full(var127
, 63l, 63l);
8612 varonce125
= var126
;
8615 nitc__typing___nitc__typing__TypeVisitor___error(var_v
, self
, var126
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
8621 /* method typing#PostTypingVisitor#type_visitor for (self: PostTypingVisitor): TypeVisitor */
8622 val
* nitc__typing___nitc__typing__PostTypingVisitor___type_visitor(val
* self
) {
8623 val
* var
/* : TypeVisitor */;
8624 val
* var1
/* : TypeVisitor */;
8625 var1
= self
->attrs
[COLOR_nitc__typing__PostTypingVisitor___type_visitor
].val
; /* _type_visitor on <self:PostTypingVisitor> */
8626 if (unlikely(var1
== NULL
)) {
8627 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_visitor");
8628 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 793);
8635 /* method typing#PostTypingVisitor#type_visitor= for (self: PostTypingVisitor, TypeVisitor) */
8636 void nitc__typing___nitc__typing__PostTypingVisitor___type_visitor_61d(val
* self
, val
* p0
) {
8637 self
->attrs
[COLOR_nitc__typing__PostTypingVisitor___type_visitor
].val
= p0
; /* _type_visitor on <self:PostTypingVisitor> */
8640 /* method typing#PostTypingVisitor#visit for (self: PostTypingVisitor, ANode) */
8641 void nitc__typing___nitc__typing__PostTypingVisitor___nitc__parser_nodes__Visitor__visit(val
* self
, val
* p0
) {
8642 val
* var_n
/* var n: ANode */;
8643 val
* var
/* : TypeVisitor */;
8644 val
* var2
/* : TypeVisitor */;
8645 short int var3
/* : Bool */;
8646 short int var4
/* : Bool */;
8647 short int var5
/* : Bool */;
8650 short int var_
/* var : Bool */;
8651 val
* var6
/* : nullable MType */;
8652 short int var7
/* : Bool */;
8653 short int var8
/* : Bool */;
8654 val
* var_other
/* var other: nullable Object */;
8655 short int var10
/* : Bool */;
8656 short int var12
/* : Bool */;
8657 short int var_13
/* var : Bool */;
8658 short int var14
/* : Bool */;
8659 short int var16
/* : Bool */;
8660 short int var17
/* : Bool */;
8663 ((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>*/
8666 { /* Inline typing#PostTypingVisitor#type_visitor (self) on <self:PostTypingVisitor> */
8667 var2
= self
->attrs
[COLOR_nitc__typing__PostTypingVisitor___type_visitor
].val
; /* _type_visitor on <self:PostTypingVisitor> */
8668 if (unlikely(var2
== NULL
)) {
8669 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _type_visitor");
8670 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 793);
8678 ((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>*/
8680 /* <var_n:ANode> isa AExpr */
8681 cltype
= type_nitc__AExpr
.color
;
8682 idtype
= type_nitc__AExpr
.id
;
8683 if(cltype
>= var_n
->type
->table_size
) {
8686 var5
= var_n
->type
->type_table
[cltype
] == idtype
;
8691 var6
= ((val
*(*)(val
* self
))(var_n
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(var_n
); /* mtype on <var_n:ANode(AExpr)>*/
8694 var7
= 1; /* is null */
8696 var7
= 0; /* arg is null but recv is not */
8699 { /* Inline kernel#Object#== (var6,((val*)NULL)) on <var6:nullable MType> */
8700 var_other
= ((val
*)NULL
);
8702 { /* Inline kernel#Object#is_same_instance (var6,var_other) on <var6:nullable MType(MType)> */
8703 var12
= var6
== var_other
;
8706 RET_LABEL11
:(void)0;
8722 { /* Inline typing#AExpr#is_typed (var_n) on <var_n:ANode(AExpr)> */
8723 var16
= var_n
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
; /* _is_typed on <var_n:ANode(AExpr)> */
8725 RET_LABEL15
:(void)0;
8735 { /* Inline modelbuilder_base#ANode#is_broken= (var_n,1) on <var_n:ANode(AExpr)> */
8736 var_n
->attrs
[COLOR_nitc__modelbuilder_base__ANode___is_broken
].s
= 1; /* _is_broken on <var_n:ANode(AExpr)> */
8737 RET_LABEL18
:(void)0;
8744 /* method typing#PostTypingVisitor#init for (self: PostTypingVisitor) */
8745 void nitc__typing___nitc__typing__PostTypingVisitor___core__kernel__Object__init(val
* self
) {
8747 ((void(*)(val
* self
))(self
->class->vft
[COLOR_nitc__typing___nitc__typing__PostTypingVisitor___core__kernel__Object__init
]))(self
); /* init on <self:PostTypingVisitor>*/
8751 /* method typing#ANode#accept_post_typing for (self: ANode, TypeVisitor) */
8752 void nitc__typing___ANode___accept_post_typing(val
* self
, val
* p0
) {
8753 val
* var_v
/* var v: TypeVisitor */;
8757 /* method typing#AAttrPropdef#do_typing for (self: AAttrPropdef, ModelBuilder) */
8758 void nitc__typing___AAttrPropdef___APropdef__do_typing(val
* self
, val
* p0
) {
8759 val
* var_modelbuilder
/* var modelbuilder: ModelBuilder */;
8760 short int var
/* : Bool */;
8761 short int var2
/* : Bool */;
8762 short int var3
/* : Bool */;
8763 val
* var4
/* : nullable MMethodDef */;
8764 val
* var6
/* : nullable MMethodDef */;
8765 val
* var_mpropdef
/* var mpropdef: nullable MMethodDef */;
8766 short int var7
/* : Bool */;
8767 short int var8
/* : Bool */;
8768 short int var9
/* : Bool */;
8769 val
* var_other
/* var other: nullable Object */;
8770 short int var11
/* : Bool */;
8771 short int var13
/* : Bool */;
8772 short int var_
/* var : Bool */;
8773 val
* var14
/* : nullable MSignature */;
8774 val
* var16
/* : nullable MSignature */;
8775 short int var17
/* : Bool */;
8776 short int var18
/* : Bool */;
8777 short int var20
/* : Bool */;
8778 short int var22
/* : Bool */;
8779 val
* var23
/* : TypeVisitor */;
8780 val
* var24
/* : MClassDef */;
8781 val
* var26
/* : MClassDef */;
8782 val
* var27
/* : MModule */;
8783 val
* var29
/* : MModule */;
8784 val
* var_v
/* var v: TypeVisitor */;
8785 val
* var30
/* : Variable */;
8786 val
* var32
/* : Variable */;
8787 val
* var34
/* : nullable AExpr */;
8788 val
* var36
/* : nullable AExpr */;
8789 val
* var_nexpr
/* var nexpr: nullable AExpr */;
8790 short int var37
/* : Bool */;
8791 short int var38
/* : Bool */;
8792 val
* var_other40
/* var other: nullable Object */;
8793 short int var41
/* : Bool */;
8794 short int var42
/* : Bool */;
8795 val
* var43
/* : nullable MType */;
8796 val
* var45
/* : nullable MType */;
8797 val
* var_mtype
/* var mtype: nullable MType */;
8798 val
* var46
/* : nullable MType */;
8799 val
* var47
/* : nullable AExpr */;
8800 val
* var49
/* : nullable AExpr */;
8801 val
* var_nblock
/* var nblock: nullable AExpr */;
8802 short int var50
/* : Bool */;
8803 short int var51
/* : Bool */;
8804 short int var53
/* : Bool */;
8805 short int var54
/* : Bool */;
8806 val
* var55
/* : nullable FlowContext */;
8807 val
* var57
/* : nullable FlowContext */;
8808 short int var58
/* : Bool */;
8809 short int var59
/* : Bool */;
8810 static val
* varonce
;
8811 val
* var60
/* : String */;
8812 char* var61
/* : NativeString */;
8813 val
* var62
/* : String */;
8814 var_modelbuilder
= p0
;
8816 { /* Inline modelize_property#AAttrPropdef#has_value (self) on <self:AAttrPropdef> */
8817 var2
= self
->attrs
[COLOR_nitc__modelize_property__AAttrPropdef___has_value
].s
; /* _has_value on <self:AAttrPropdef> */
8828 { /* Inline modelize_property#AAttrPropdef#mreadpropdef (self) on <self:AAttrPropdef> */
8829 var6
= self
->attrs
[COLOR_nitc__modelize_property__AAttrPropdef___mreadpropdef
].val
; /* _mreadpropdef on <self:AAttrPropdef> */
8834 var_mpropdef
= var4
;
8835 if (var_mpropdef
== NULL
) {
8836 var8
= 1; /* is null */
8838 var8
= 0; /* arg is null but recv is not */
8841 { /* Inline kernel#Object#== (var_mpropdef,((val*)NULL)) on <var_mpropdef:nullable MMethodDef> */
8842 var_other
= ((val
*)NULL
);
8844 { /* Inline kernel#Object#is_same_instance (var_mpropdef,var_other) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8845 var13
= var_mpropdef
== var_other
;
8848 RET_LABEL12
:(void)0;
8853 RET_LABEL10
:(void)0;
8862 { /* Inline model#MMethodDef#msignature (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8863 var16
= var_mpropdef
->attrs
[COLOR_nitc__model__MMethodDef___msignature
].val
; /* _msignature on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8865 RET_LABEL15
:(void)0;
8868 if (var14
== NULL
) {
8869 var17
= 1; /* is null */
8871 var17
= 0; /* arg is null but recv is not */
8874 { /* Inline kernel#Object#== (var14,((val*)NULL)) on <var14:nullable MSignature> */
8875 var_other
= ((val
*)NULL
);
8877 { /* Inline kernel#Object#is_same_instance (var14,var_other) on <var14:nullable MSignature(MSignature)> */
8878 var22
= var14
== var_other
;
8881 RET_LABEL21
:(void)0;
8886 RET_LABEL19
:(void)0;
8896 var23
= NEW_nitc__typing__TypeVisitor(&type_nitc__typing__TypeVisitor
);
8898 { /* Inline model#MPropDef#mclassdef (var_mpropdef) on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8899 var26
= var_mpropdef
->attrs
[COLOR_nitc__model__MPropDef___mclassdef
].val
; /* _mclassdef on <var_mpropdef:nullable MMethodDef(MMethodDef)> */
8900 if (unlikely(var26
== NULL
)) {
8901 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclassdef");
8902 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 2227);
8906 RET_LABEL25
:(void)0;
8910 { /* Inline model#MClassDef#mmodule (var24) on <var24:MClassDef> */
8911 var29
= var24
->attrs
[COLOR_nitc__model__MClassDef___mmodule
].val
; /* _mmodule on <var24:MClassDef> */
8912 if (unlikely(var29
== NULL
)) {
8913 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mmodule");
8914 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 573);
8918 RET_LABEL28
:(void)0;
8922 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nitc__typing__TypeVisitor__modelbuilder_61d
]))(var23
, var_modelbuilder
); /* modelbuilder= on <var23:TypeVisitor>*/
8925 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nitc__typing__TypeVisitor__mmodule_61d
]))(var23
, var27
); /* mmodule= on <var23:TypeVisitor>*/
8928 ((void(*)(val
* self
, val
* p0
))(var23
->class->vft
[COLOR_nitc__typing__TypeVisitor__mpropdef_61d
]))(var23
, var_mpropdef
); /* mpropdef= on <var23:TypeVisitor>*/
8931 ((void(*)(val
* self
))(var23
->class->vft
[COLOR_core__kernel__Object__init
]))(var23
); /* init on <var23:TypeVisitor>*/
8935 { /* Inline typing#TypeVisitor#selfvariable (var_v) on <var_v:TypeVisitor> */
8936 var32
= var_v
->attrs
[COLOR_nitc__typing__TypeVisitor___selfvariable
].val
; /* _selfvariable on <var_v:TypeVisitor> */
8937 if (unlikely(var32
== NULL
)) {
8938 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _selfvariable");
8939 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 51);
8943 RET_LABEL31
:(void)0;
8947 { /* Inline typing#APropdef#selfvariable= (self,var30) on <self:AAttrPropdef> */
8948 self
->attrs
[COLOR_nitc__typing__APropdef___selfvariable
].val
= var30
; /* _selfvariable on <self:AAttrPropdef> */
8949 RET_LABEL33
:(void)0;
8953 { /* Inline parser_nodes#AAttrPropdef#n_expr (self) on <self:AAttrPropdef> */
8954 var36
= self
->attrs
[COLOR_nitc__parser_nodes__AAttrPropdef___n_expr
].val
; /* _n_expr on <self:AAttrPropdef> */
8956 RET_LABEL35
:(void)0;
8960 if (var_nexpr
== NULL
) {
8961 var37
= 0; /* is null */
8963 var37
= 1; /* arg is null and recv is not */
8966 { /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
8967 var_other40
= ((val
*)NULL
);
8969 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)>*/
8974 RET_LABEL39
:(void)0;
8980 { /* Inline modelize_property#AAttrPropdef#mtype (self) on <self:AAttrPropdef> */
8981 var45
= self
->attrs
[COLOR_nitc__modelize_property__AAttrPropdef___mtype
].val
; /* _mtype on <self:AAttrPropdef> */
8983 RET_LABEL44
:(void)0;
8988 var46
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
8993 { /* Inline parser_nodes#AAttrPropdef#n_block (self) on <self:AAttrPropdef> */
8994 var49
= self
->attrs
[COLOR_nitc__parser_nodes__AAttrPropdef___n_block
].val
; /* _n_block on <self:AAttrPropdef> */
8996 RET_LABEL48
:(void)0;
9000 if (var_nblock
== NULL
) {
9001 var50
= 0; /* is null */
9003 var50
= 1; /* arg is null and recv is not */
9006 { /* Inline kernel#Object#!= (var_nblock,((val*)NULL)) on <var_nblock:nullable AExpr> */
9007 var_other40
= ((val
*)NULL
);
9009 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)>*/
9014 RET_LABEL52
:(void)0;
9020 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v
, var_nblock
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9023 { /* Inline flow#AExpr#after_flow_context (var_nblock) on <var_nblock:nullable AExpr(AExpr)> */
9024 var57
= var_nblock
->attrs
[COLOR_nitc__flow__AExpr___after_flow_context
].val
; /* _after_flow_context on <var_nblock:nullable AExpr(AExpr)> */
9026 RET_LABEL56
:(void)0;
9029 if (var55
== NULL
) {
9030 PRINT_ERROR("Runtime error: %s", "Receiver is null");
9031 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 826);
9034 var58
= nitc___nitc__FlowContext___is_unreachable(var55
);
9038 if (likely(varonce
!=NULL
)) {
9041 var61
= "Error: reached end of block; expected `return`.";
9042 var62
= core__flat___NativeString___to_s_full(var61
, 47l, 47l);
9047 nitc__typing___nitc__typing__TypeVisitor___error(var_v
, self
, var60
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9055 /* method typing#AExpr#mtype for (self: AExpr): nullable MType */
9056 val
* nitc__typing___AExpr___mtype(val
* self
) {
9057 val
* var
/* : nullable MType */;
9058 val
* var1
/* : nullable MType */;
9059 var1
= self
->attrs
[COLOR_nitc__typing__AExpr___mtype
].val
; /* _mtype on <self:AExpr> */
9064 /* method typing#AExpr#mtype= for (self: AExpr, nullable MType) */
9065 void nitc__typing___AExpr___mtype_61d(val
* self
, val
* p0
) {
9066 self
->attrs
[COLOR_nitc__typing__AExpr___mtype
].val
= p0
; /* _mtype on <self:AExpr> */
9069 /* method typing#AExpr#is_typed for (self: AExpr): Bool */
9070 short int nitc__typing___AExpr___is_typed(val
* self
) {
9071 short int var
/* : Bool */;
9072 short int var1
/* : Bool */;
9073 var1
= self
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
; /* _is_typed on <self:AExpr> */
9078 /* method typing#AExpr#is_typed= for (self: AExpr, Bool) */
9079 void nitc__typing___AExpr___is_typed_61d(val
* self
, short int p0
) {
9080 self
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
= p0
; /* _is_typed on <self:AExpr> */
9083 /* method typing#AExpr#implicit_cast_to for (self: AExpr): nullable MType */
9084 val
* nitc__typing___AExpr___implicit_cast_to(val
* self
) {
9085 val
* var
/* : nullable MType */;
9086 val
* var1
/* : nullable MType */;
9087 var1
= self
->attrs
[COLOR_nitc__typing__AExpr___implicit_cast_to
].val
; /* _implicit_cast_to on <self:AExpr> */
9092 /* method typing#AExpr#implicit_cast_to= for (self: AExpr, nullable MType) */
9093 void nitc__typing___AExpr___implicit_cast_to_61d(val
* self
, val
* p0
) {
9094 self
->attrs
[COLOR_nitc__typing__AExpr___implicit_cast_to
].val
= p0
; /* _implicit_cast_to on <self:AExpr> */
9097 /* method typing#AExpr#its_variable for (self: AExpr): nullable Variable */
9098 val
* nitc__typing___AExpr___its_variable(val
* self
) {
9099 val
* var
/* : nullable Variable */;
9105 /* method typing#AExpr#accept_typing for (self: AExpr, TypeVisitor) */
9106 void nitc__typing___AExpr___accept_typing(val
* self
, val
* p0
) {
9107 val
* var_v
/* var v: TypeVisitor */;
9108 val
* var
/* : NativeArray[String] */;
9109 static val
* varonce
;
9110 static val
* varonce1
;
9111 val
* var2
/* : String */;
9112 char* var3
/* : NativeString */;
9113 val
* var4
/* : String */;
9114 val
* var5
/* : String */;
9115 val
* var6
/* : String */;
9117 if (unlikely(varonce
==NULL
)) {
9118 var
= NEW_core__NativeArray(2l, &type_core__NativeArray__core__String
);
9119 if (likely(varonce1
!=NULL
)) {
9122 var3
= "no implemented accept_typing for ";
9123 var4
= core__flat___NativeString___to_s_full(var3
, 33l, 33l);
9127 ((struct instance_core__NativeArray
*)var
)->values
[0]=var2
;
9133 var5
= core__abstract_text___Object___class_name(self
);
9135 ((struct instance_core__NativeArray
*)var
)->values
[1]=var5
;
9137 var6
= ((val
*(*)(val
* self
))(var
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var
); /* native_to_s on <var:NativeArray[String]>*/
9141 nitc__typing___nitc__typing__TypeVisitor___error(var_v
, self
, var6
); /* Direct call typing#TypeVisitor#error on <var_v:TypeVisitor>*/
9145 /* method typing#AExpr#comprehension for (self: AExpr): nullable AArrayExpr */
9146 val
* nitc__typing___AExpr___comprehension(val
* self
) {
9147 val
* var
/* : nullable AArrayExpr */;
9148 val
* var1
/* : nullable AArrayExpr */;
9149 var1
= self
->attrs
[COLOR_nitc__typing__AExpr___comprehension
].val
; /* _comprehension on <self:AExpr> */
9154 /* method typing#AExpr#comprehension= for (self: AExpr, nullable AArrayExpr) */
9155 void nitc__typing___AExpr___comprehension_61d(val
* self
, val
* p0
) {
9156 self
->attrs
[COLOR_nitc__typing__AExpr___comprehension
].val
= p0
; /* _comprehension on <self:AExpr> */
9159 /* method typing#AExpr#vararg_decl for (self: AExpr): Int */
9160 long nitc__typing___AExpr___vararg_decl(val
* self
) {
9161 long var
/* : Int */;
9162 long var1
/* : Int */;
9163 var1
= self
->attrs
[COLOR_nitc__typing__AExpr___vararg_decl
].l
; /* _vararg_decl on <self:AExpr> */
9168 /* method typing#AExpr#vararg_decl= for (self: AExpr, Int) */
9169 void nitc__typing___AExpr___vararg_decl_61d(val
* self
, long p0
) {
9170 self
->attrs
[COLOR_nitc__typing__AExpr___vararg_decl
].l
= p0
; /* _vararg_decl on <self:AExpr> */
9173 /* method typing#ABlockExpr#accept_typing for (self: ABlockExpr, TypeVisitor) */
9174 void nitc__typing___ABlockExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9175 val
* var_v
/* var v: TypeVisitor */;
9176 val
* var
/* : ANodes[AExpr] */;
9177 val
* var2
/* : ANodes[AExpr] */;
9178 val
* var_
/* var : ANodes[AExpr] */;
9179 val
* var3
/* : Iterator[ANode] */;
9180 val
* var_4
/* var : Iterator[AExpr] */;
9181 short int var5
/* : Bool */;
9182 val
* var6
/* : nullable Object */;
9183 val
* var_e
/* var e: AExpr */;
9186 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
9187 var2
= self
->attrs
[COLOR_nitc__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
9188 if (unlikely(var2
== NULL
)) {
9189 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9190 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1744);
9199 var3
= nitc___nitc__ANodes___core__abstract_collection__Collection__iterator(var_
);
9204 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]>*/
9211 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]>*/
9215 nitc__typing___nitc__typing__TypeVisitor___visit_stmt(var_v
, var_e
); /* Direct call typing#TypeVisitor#visit_stmt on <var_v:TypeVisitor>*/
9218 ((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]>*/
9221 BREAK_label
: (void)0;
9223 ((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]>*/
9226 { /* Inline typing#AExpr#is_typed= (self,1) on <self:ABlockExpr> */
9227 self
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
= 1; /* _is_typed on <self:ABlockExpr> */
9233 /* method typing#ABlockExpr#mtype for (self: ABlockExpr): nullable MType */
9234 val
* nitc__typing___ABlockExpr___AExpr__mtype(val
* self
) {
9235 val
* var
/* : nullable MType */;
9236 val
* var1
/* : ANodes[AExpr] */;
9237 val
* var3
/* : ANodes[AExpr] */;
9238 short int var4
/* : Bool */;
9239 val
* var5
/* : ANodes[AExpr] */;
9240 val
* var7
/* : ANodes[AExpr] */;
9241 val
* var8
/* : nullable Object */;
9242 val
* var9
/* : nullable MType */;
9244 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
9245 var3
= self
->attrs
[COLOR_nitc__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
9246 if (unlikely(var3
== NULL
)) {
9247 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9248 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1744);
9256 var4
= nitc___nitc__ANodes___core__abstract_collection__Collection__is_empty(var1
);
9264 { /* Inline parser_nodes#ABlockExpr#n_expr (self) on <self:ABlockExpr> */
9265 var7
= self
->attrs
[COLOR_nitc__parser_nodes__ABlockExpr___n_expr
].val
; /* _n_expr on <self:ABlockExpr> */
9266 if (unlikely(var7
== NULL
)) {
9267 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _n_expr");
9268 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__parser_nodes
, 1744);
9276 var8
= core___core__SequenceRead___last(var5
);
9279 var9
= ((val
*(*)(val
* self
))(var8
->class->vft
[COLOR_nitc__typing__AExpr__mtype
]))(var8
); /* mtype on <var8:nullable Object(AExpr)>*/
9286 /* method typing#AVardeclExpr#accept_typing for (self: AVardeclExpr, TypeVisitor) */
9287 void nitc__typing___AVardeclExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9288 val
* var_v
/* var v: TypeVisitor */;
9289 val
* var
/* : nullable Variable */;
9290 val
* var2
/* : nullable Variable */;
9291 val
* var_variable
/* var variable: nullable Variable */;
9292 short int var3
/* : Bool */;
9293 short int var4
/* : Bool */;
9294 val
* var_other
/* var other: nullable Object */;
9295 short int var6
/* : Bool */;
9296 short int var8
/* : Bool */;
9297 val
* var9
/* : nullable AType */;
9298 val
* var11
/* : nullable AType */;
9299 val
* var_ntype
/* var ntype: nullable AType */;
9300 short int var12
/* : Bool */;
9301 short int var13
/* : Bool */;
9302 short int var15
/* : Bool */;
9303 short int var17
/* : Bool */;
9304 val
* var_mtype
/* var mtype: nullable MType */;
9305 val
* var18
/* : nullable MType */;
9306 short int var19
/* : Bool */;
9307 short int var20
/* : Bool */;
9308 short int var22
/* : Bool */;
9309 short int var24
/* : Bool */;
9310 val
* var25
/* : nullable AExpr */;
9311 val
* var27
/* : nullable AExpr */;
9312 val
* var_nexpr
/* var nexpr: nullable AExpr */;
9313 short int var28
/* : Bool */;
9314 short int var29
/* : Bool */;
9315 val
* var_other31
/* var other: nullable Object */;
9316 short int var32
/* : Bool */;
9317 short int var33
/* : Bool */;
9318 short int var34
/* : Bool */;
9319 short int var35
/* : Bool */;
9320 short int var37
/* : Bool */;
9321 short int var38
/* : Bool */;
9322 val
* var39
/* : nullable MType */;
9323 val
* var_etype
/* var etype: nullable MType */;
9324 short int var40
/* : Bool */;
9325 short int var41
/* : Bool */;
9326 short int var43
/* : Bool */;
9327 short int var45
/* : Bool */;
9328 short int var46
/* : Bool */;
9329 short int var47
/* : Bool */;
9330 short int var49
/* : Bool */;
9331 short int var50
/* : Bool */;
9332 val
* var51
/* : ModelBuilder */;
9333 val
* var53
/* : ModelBuilder */;
9334 static val
* varonce
;
9335 val
* var54
/* : String */;
9336 char* var55
/* : NativeString */;
9337 val
* var56
/* : String */;
9338 val
* var58
/* : NativeArray[String] */;
9339 static val
* varonce57
;
9340 static val
* varonce59
;
9341 val
* var60
/* : String */;
9342 char* var61
/* : NativeString */;
9343 val
* var62
/* : String */;
9344 static val
* varonce63
;
9345 val
* var64
/* : String */;
9346 char* var65
/* : NativeString */;
9347 val
* var66
/* : String */;
9348 val
* var67
/* : String */;
9349 val
* var69
/* : String */;
9350 val
* var70
/* : String */;
9351 val
* var71
/* : nullable MType */;
9352 short int var72
/* : Bool */;
9353 short int var73
/* : Bool */;
9354 short int var75
/* : Bool */;
9355 short int var77
/* : Bool */;
9356 val
* var_decltype
/* var decltype: nullable MType */;
9357 short int var78
/* : Bool */;
9358 short int var79
/* : Bool */;
9359 short int var80
/* : Bool */;
9360 short int var82
/* : Bool */;
9361 short int var84
/* : Bool */;
9362 short int var_
/* var : Bool */;
9363 short int var85
/* : Bool */;
9366 static val
* varonce86
;
9367 val
* var87
/* : String */;
9368 char* var88
/* : NativeString */;
9369 val
* var89
/* : String */;
9370 val
* var90
/* : nullable MClass */;
9371 val
* var_objclass
/* var objclass: nullable MClass */;
9372 short int var91
/* : Bool */;
9373 short int var92
/* : Bool */;
9374 short int var94
/* : Bool */;
9375 short int var96
/* : Bool */;
9376 val
* var97
/* : MClassType */;
9377 val
* var99
/* : MClassType */;
9378 val
* var100
/* : MType */;
9379 short int var101
/* : Bool */;
9380 short int var102
/* : Bool */;
9381 short int var104
/* : Bool */;
9382 short int var106
/* : Bool */;
9385 { /* Inline scope#AVardeclExpr#variable (self) on <self:AVardeclExpr> */
9386 var2
= self
->attrs
[COLOR_nitc__scope__AVardeclExpr___variable
].val
; /* _variable on <self:AVardeclExpr> */
9392 if (var_variable
== NULL
) {
9393 var3
= 1; /* is null */
9395 var3
= 0; /* arg is null but recv is not */
9398 { /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
9399 var_other
= ((val
*)NULL
);
9401 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
9402 var8
= var_variable
== var_other
;
9419 { /* Inline parser_nodes#AVardeclExpr#n_type (self) on <self:AVardeclExpr> */
9420 var11
= self
->attrs
[COLOR_nitc__parser_nodes__AVardeclExpr___n_type
].val
; /* _n_type on <self:AVardeclExpr> */
9422 RET_LABEL10
:(void)0;
9426 if (var_ntype
== NULL
) {
9427 var12
= 1; /* is null */
9429 var12
= 0; /* arg is null but recv is not */
9432 { /* Inline kernel#Object#== (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
9433 var_other
= ((val
*)NULL
);
9435 { /* Inline kernel#Object#is_same_instance (var_ntype,var_other) on <var_ntype:nullable AType(AType)> */
9436 var17
= var_ntype
== var_other
;
9439 RET_LABEL16
:(void)0;
9444 RET_LABEL14
:(void)0;
9449 var_mtype
= ((val
*)NULL
);
9452 var18
= nitc__typing___nitc__typing__TypeVisitor___resolve_mtype(var_v
, var_ntype
);
9455 if (var_mtype
== NULL
) {
9456 var19
= 1; /* is null */
9458 var19
= 0; /* arg is null but recv is not */
9461 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9462 var_other
= ((val
*)NULL
);
9464 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9465 var24
= var_mtype
== var_other
;
9468 RET_LABEL23
:(void)0;
9473 RET_LABEL21
:(void)0;
9483 { /* Inline parser_nodes#AVardeclExpr#n_expr (self) on <self:AVardeclExpr> */
9484 var27
= self
->attrs
[COLOR_nitc__parser_nodes__AVardeclExpr___n_expr
].val
; /* _n_expr on <self:AVardeclExpr> */
9486 RET_LABEL26
:(void)0;
9490 if (var_nexpr
== NULL
) {
9491 var28
= 0; /* is null */
9493 var28
= 1; /* arg is null and recv is not */
9496 { /* Inline kernel#Object#!= (var_nexpr,((val*)NULL)) on <var_nexpr:nullable AExpr> */
9497 var_other31
= ((val
*)NULL
);
9499 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)>*/
9504 RET_LABEL30
:(void)0;
9509 if (var_mtype
== NULL
) {
9510 var34
= 0; /* is null */
9512 var34
= 1; /* arg is null and recv is not */
9515 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9516 var_other31
= ((val
*)NULL
);
9518 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)>*/
9523 RET_LABEL36
:(void)0;
9529 var39
= nitc__typing___nitc__typing__TypeVisitor___visit_expr_subtype(var_v
, var_nexpr
, var_mtype
);
9532 if (var_etype
== NULL
) {
9533 var40
= 0; /* <var_mtype:nullable MType(MType)> cannot be null */
9535 { /* Inline kernel#Object#== (var_etype,var_mtype) on <var_etype:nullable MType> */
9536 var_other
= var_mtype
;
9538 { /* Inline kernel#Object#is_same_instance (var_etype,var_other) on <var_etype:nullable MType(MType)> */
9539 var45
= var_etype
== var_other
;
9542 RET_LABEL44
:(void)0;
9547 RET_LABEL42
:(void)0;
9552 if (var_ntype
== NULL
) {
9553 var46
= 0; /* is null */
9555 var46
= 1; /* arg is null and recv is not */
9558 { /* Inline kernel#Object#!= (var_ntype,((val*)NULL)) on <var_ntype:nullable AType> */
9559 var_other31
= ((val
*)NULL
);
9561 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)>*/
9566 RET_LABEL48
:(void)0;
9570 if (unlikely(!var46
)) {
9571 PRINT_ERROR("Runtime error: %s", "Assert failed");
9572 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 911);
9576 { /* Inline typing#TypeVisitor#modelbuilder (var_v) on <var_v:TypeVisitor> */
9577 var53
= var_v
->attrs
[COLOR_nitc__typing__TypeVisitor___modelbuilder
].val
; /* _modelbuilder on <var_v:TypeVisitor> */
9578 if (unlikely(var53
== NULL
)) {
9579 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _modelbuilder");
9580 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__typing
, 35);
9584 RET_LABEL52
:(void)0;
9587 if (likely(varonce
!=NULL
)) {
9590 var55
= "useless-type";
9591 var56
= core__flat___NativeString___to_s_full(var55
, 12l, 12l);
9595 if (unlikely(varonce57
==NULL
)) {
9596 var58
= NEW_core__NativeArray(3l, &type_core__NativeArray__core__String
);
9597 if (likely(varonce59
!=NULL
)) {
9600 var61
= "Warning: useless type definition for variable `";
9601 var62
= core__flat___NativeString___to_s_full(var61
, 47l, 47l);
9605 ((struct instance_core__NativeArray
*)var58
)->values
[0]=var60
;
9606 if (likely(varonce63
!=NULL
)) {
9610 var66
= core__flat___NativeString___to_s_full(var65
, 1l, 1l);
9614 ((struct instance_core__NativeArray
*)var58
)->values
[2]=var64
;
9620 { /* Inline scope#Variable#name (var_variable) on <var_variable:nullable Variable(Variable)> */
9621 var69
= var_variable
->attrs
[COLOR_nitc__scope__Variable___name
].val
; /* _name on <var_variable:nullable Variable(Variable)> */
9622 if (unlikely(var69
== NULL
)) {
9623 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _name");
9624 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__scope
, 36);
9628 RET_LABEL68
:(void)0;
9631 ((struct instance_core__NativeArray
*)var58
)->values
[1]=var67
;
9633 var70
= ((val
*(*)(val
* self
))(var58
->class->vft
[COLOR_core__abstract_text__NativeArray__native_to_s
]))(var58
); /* native_to_s on <var58:NativeArray[String]>*/
9637 nitc___nitc__ModelBuilder___advice(var51
, var_ntype
, var54
, var70
); /* Direct call modelbuilder_base#ModelBuilder#advice on <var51:ModelBuilder>*/
9643 var71
= nitc__typing___nitc__typing__TypeVisitor___visit_expr(var_v
, var_nexpr
);
9646 if (var_mtype
== NULL
) {
9647 var72
= 1; /* is null */
9649 var72
= 0; /* arg is null but recv is not */
9652 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9653 var_other
= ((val
*)NULL
);
9655 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9656 var77
= var_mtype
== var_other
;
9659 RET_LABEL76
:(void)0;
9664 RET_LABEL74
:(void)0;
9675 var_decltype
= var_mtype
;
9676 if (var_mtype
== NULL
) {
9677 var79
= 1; /* is null */
9679 var79
= 0; /* arg is null but recv is not */
9682 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9683 var_other
= ((val
*)NULL
);
9685 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MType(MType)> */
9686 var84
= var_mtype
== var_other
;
9689 RET_LABEL83
:(void)0;
9694 RET_LABEL81
:(void)0;
9702 /* <var_mtype:nullable MType(MType)> isa MNullType */
9703 cltype
= type_nitc__MNullType
.color
;
9704 idtype
= type_nitc__MNullType
.id
;
9705 if(cltype
>= var_mtype
->type
->table_size
) {
9708 var85
= var_mtype
->type
->type_table
[cltype
] == idtype
;
9713 if (likely(varonce86
!=NULL
)) {
9717 var89
= core__flat___NativeString___to_s_full(var88
, 6l, 6l);
9722 var90
= nitc__typing___nitc__typing__TypeVisitor___get_mclass(var_v
, self
, var87
);
9724 var_objclass
= var90
;
9725 if (var_objclass
== NULL
) {
9726 var91
= 1; /* is null */
9728 var91
= 0; /* arg is null but recv is not */
9731 { /* Inline kernel#Object#== (var_objclass,((val*)NULL)) on <var_objclass:nullable MClass> */
9732 var_other
= ((val
*)NULL
);
9734 { /* Inline kernel#Object#is_same_instance (var_objclass,var_other) on <var_objclass:nullable MClass(MClass)> */
9735 var96
= var_objclass
== var_other
;
9738 RET_LABEL95
:(void)0;
9743 RET_LABEL93
:(void)0;
9752 { /* Inline model#MClass#mclass_type (var_objclass) on <var_objclass:nullable MClass(MClass)> */
9753 var99
= var_objclass
->attrs
[COLOR_nitc__model__MClass___mclass_type
].val
; /* _mclass_type on <var_objclass:nullable MClass(MClass)> */
9754 if (unlikely(var99
== NULL
)) {
9755 PRINT_ERROR("Runtime error: %s", "Uninitialized attribute _mclass_type");
9756 PRINT_ERROR(" (%s:%d)\n", FILE_nitc__model
, 507);
9760 RET_LABEL98
:(void)0;
9764 var100
= nitc___nitc__MType___as_nullable(var97
);
9766 var_decltype
= var100
;
9767 if (var_mtype
== NULL
) {
9768 var101
= 1; /* is null */
9770 var101
= 0; /* arg is null but recv is not */
9773 { /* Inline kernel#Object#== (var_mtype,((val*)NULL)) on <var_mtype:nullable MType(nullable MNullType)> */
9774 var_other
= ((val
*)NULL
);
9776 { /* Inline kernel#Object#is_same_instance (var_mtype,var_other) on <var_mtype:nullable MNullType(MNullType)> */
9777 var106
= var_mtype
== var_other
;
9780 RET_LABEL105
:(void)0;
9785 RET_LABEL103
:(void)0;
9790 var_mtype
= var_decltype
;
9796 { /* Inline typing#Variable#declared_type= (var_variable,var_decltype) on <var_variable:nullable Variable(Variable)> */
9797 var_variable
->attrs
[COLOR_nitc__typing__Variable___declared_type
].val
= var_decltype
; /* _declared_type on <var_variable:nullable Variable(Variable)> */
9798 RET_LABEL107
:(void)0;
9802 nitc__typing___nitc__typing__TypeVisitor___set_variable(var_v
, self
, var_variable
, var_mtype
); /* Direct call typing#TypeVisitor#set_variable on <var_v:TypeVisitor>*/
9805 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVardeclExpr> */
9806 self
->attrs
[COLOR_nitc__typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AVardeclExpr> */
9807 RET_LABEL108
:(void)0;
9811 { /* Inline typing#AExpr#is_typed= (self,1) on <self:AVardeclExpr> */
9812 self
->attrs
[COLOR_nitc__typing__AExpr___is_typed
].s
= 1; /* _is_typed on <self:AVardeclExpr> */
9813 RET_LABEL109
:(void)0;
9818 /* method typing#AVarExpr#its_variable for (self: AVarExpr): nullable Variable */
9819 val
* nitc__typing___AVarExpr___AExpr__its_variable(val
* self
) {
9820 val
* var
/* : nullable Variable */;
9821 val
* var1
/* : nullable Variable */;
9822 val
* var3
/* : nullable Variable */;
9824 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
9825 var3
= self
->attrs
[COLOR_nitc__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
9835 /* method typing#AVarExpr#accept_typing for (self: AVarExpr, TypeVisitor) */
9836 void nitc__typing___AVarExpr___AExpr__accept_typing(val
* self
, val
* p0
) {
9837 val
* var_v
/* var v: TypeVisitor */;
9838 val
* var
/* : nullable Variable */;
9839 val
* var2
/* : nullable Variable */;
9840 val
* var_variable
/* var variable: nullable Variable */;
9841 short int var3
/* : Bool */;
9842 short int var4
/* : Bool */;
9843 val
* var_other
/* var other: nullable Object */;
9844 short int var6
/* : Bool */;
9845 short int var8
/* : Bool */;
9846 val
* var9
/* : nullable MType */;
9847 val
* var_mtype
/* var mtype: nullable MType */;
9848 short int var10
/* : Bool */;
9849 short int var11
/* : Bool */;
9850 val
* var_other13
/* var other: nullable Object */;
9851 short int var14
/* : Bool */;
9852 short int var15
/* : Bool */;
9855 { /* Inline scope#AVarFormExpr#variable (self) on <self:AVarExpr> */
9856 var2
= self
->attrs
[COLOR_nitc__scope__AVarFormExpr___variable
].val
; /* _variable on <self:AVarExpr> */
9862 if (var_variable
== NULL
) {
9863 var3
= 1; /* is null */
9865 var3
= 0; /* arg is null but recv is not */
9868 { /* Inline kernel#Object#== (var_variable,((val*)NULL)) on <var_variable:nullable Variable> */
9869 var_other
= ((val
*)NULL
);
9871 { /* Inline kernel#Object#is_same_instance (var_variable,var_other) on <var_variable:nullable Variable(Variable)> */
9872 var8
= var_variable
== var_other
;
9889 var9
= nitc__typing___nitc__typing__TypeVisitor___get_variable(var_v
, self
, var_variable
);
9892 if (var_mtype
== NULL
) {
9893 var10
= 0; /* is null */
9895 var10
= 1; /* arg is null and recv is not */
9898 { /* Inline kernel#Object#!= (var_mtype,((val*)NULL)) on <var_mtype:nullable MType> */
9899 var_other13
= ((val
*)NULL
);
9901 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)>*/
9906 RET_LABEL12
:(void)0;
9914 { /* Inline typing#AExpr#mtype= (self,var_mtype) on <self:AVarExpr> */
9915 self
->attrs
[COLOR_nitc__typing__AExpr___mtype
].val
= var_mtype
; /* _mtype on <self:AVarExpr> */
9916 RET_LABEL16
:(void)0;